BAL and Maple Release 2.2

Signed-off-by: Shad Ansari <developer@Carbon.local>
diff --git a/bcm68620_release/release/host_driver/model/Makefile b/bcm68620_release/release/host_driver/model/Makefile
new file mode 100644
index 0000000..7416316
--- /dev/null
+++ b/bcm68620_release/release/host_driver/model/Makefile
@@ -0,0 +1,21 @@
+# Maple object model
+#
+MOD_NAME = model
+MOD_TYPE = lib
+MOD_DEPS = utils common_api
+MOD_INC_DIRS = $(MODEL_OUT_DIR)
+gen_srcs = bcmolt_model_types.c bcmolt_msg_pack.c
+
+ifeq ("$(OS_KERNEL)", "linux")
+    MOD_DEPS += sysmodel
+endif
+
+EXTRA_TYPES += pon_onu_id pon_alloc_id pon_gem_port_id pon_alloc_index pon_gem_port_index
+
+ifeq ("$(ENABLE_EPON)", "y")
+    EXTRA_TYPES += eni pon_rate ieee_8021as_time_sync 
+endif
+
+ifeq ("$(ENABLE_GPON)", "y")
+    EXTRA_TYPES += burst_profile mac_table_idx_main mac_table_idx_cam mac_table_idx_combined
+endif
diff --git a/bcm68620_release/release/host_driver/model/bcmolt_model_data.h b/bcm68620_release/release/host_driver/model/bcmolt_model_data.h
new file mode 100644
index 0000000..f83d4e7
--- /dev/null
+++ b/bcm68620_release/release/host_driver/model/bcmolt_model_data.h
@@ -0,0 +1,3893 @@
+/*
+<:copyright-BRCM:2016:proprietary:standard
+
+   Broadcom Proprietary and Confidential.(c) 2016 Broadcom
+   All Rights Reserved
+
+This program is the proprietary software of Broadcom Corporation and/or its
+licensors, and may only be used, duplicated, modified or distributed pursuant
+to the terms and conditions of a separate, written license agreement executed
+between you and Broadcom (an "Authorized License").  Except as set forth in
+an Authorized License, Broadcom grants no license (express or implied), right
+to use, or waiver of any kind with respect to the Software, and Broadcom
+expressly reserves all rights in and to the Software and all intellectual
+property rights therein.  IF YOU HAVE NO AUTHORIZED LICENSE, THEN YOU HAVE
+NO RIGHT TO USE THIS SOFTWARE IN ANY WAY, AND SHOULD IMMEDIATELY NOTIFY
+BROADCOM AND DISCONTINUE ALL USE OF THE SOFTWARE.
+
+Except as expressly set forth in the Authorized License,
+
+1. This program, including its structure, sequence and organization,
+    constitutes the valuable trade secrets of Broadcom, and you shall use
+    all reasonable efforts to protect the confidentiality thereof, and to
+    use this information only in connection with your use of Broadcom
+    integrated circuit products.
+
+2. TO THE MAXIMUM EXTENT PERMITTED BY LAW, THE SOFTWARE IS PROVIDED "AS IS"
+    AND WITH ALL FAULTS AND BROADCOM MAKES NO PROMISES, REPRESENTATIONS OR
+    WARRANTIES, EITHER EXPRESS, IMPLIED, STATUTORY, OR OTHERWISE, WITH
+    RESPECT TO THE SOFTWARE.  BROADCOM SPECIFICALLY DISCLAIMS ANY AND
+    ALL IMPLIED WARRANTIES OF TITLE, MERCHANTABILITY, NONINFRINGEMENT,
+    FITNESS FOR A PARTICULAR PURPOSE, LACK OF VIRUSES, ACCURACY OR
+    COMPLETENESS, QUIET ENJOYMENT, QUIET POSSESSION OR CORRESPONDENCE
+    TO DESCRIPTION. YOU ASSUME THE ENTIRE RISK ARISING OUT OF USE OR
+    PERFORMANCE OF THE SOFTWARE.
+
+3. TO THE MAXIMUM EXTENT PERMITTED BY LAW, IN NO EVENT SHALL BROADCOM OR
+    ITS LICENSORS BE LIABLE FOR (i) CONSEQUENTIAL, INCIDENTAL, SPECIAL,
+    INDIRECT, OR EXEMPLARY DAMAGES WHATSOEVER ARISING OUT OF OR IN ANY
+    WAY RELATING TO YOUR USE OF OR INABILITY TO USE THE SOFTWARE EVEN
+    IF BROADCOM HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES;
+    OR (ii) ANY AMOUNT IN EXCESS OF THE AMOUNT ACTUALLY PAID FOR THE
+    SOFTWARE ITSELF OR U.S. $1, WHICHEVER IS GREATER. THESE LIMITATIONS
+    SHALL APPLY NOTWITHSTANDING ANY FAILURE OF ESSENTIAL PURPOSE OF ANY
+    LIMITED REMEDY.
+:>
+*/
+#ifndef BCMOLT_MODEL_DATA_H_
+#define BCMOLT_MODEL_DATA_H_
+
+#include "bcmos_system.h"
+
+/** \addtogroup object_model
+ * @{
+ */
+typedef uint32_t bcmolt_time_quanta;                                /**< bcmolt_time_quanta: typed alias for a 32-bit unsigned integer. */
+typedef uint16_t bcmolt_ae_ni;                                      /**< bcmolt_ae_ni: typed alias for a 16-bit unsigned integer. */
+#define BCMOLT_AE_NI_AE_NI_INVALID  ((bcmolt_ae_ni) 65535U)
+typedef uint8_t bcmolt_aggregation_domain;                          /**< bcmolt_aggregation_domain: typed alias for a 8-bit unsigned integer. */
+typedef uint32_t bcmolt_bandwidth_Kbps;                             /**< bcmolt_bandwidth_Kbps: typed alias for a 32-bit unsigned integer. */
+typedef uint32_t bcmolt_ber_interval;                               /**< bcmolt_ber_interval: typed alias for a 32-bit unsigned integer. */
+#define BCMOLT_BER_INTERVAL_BER_INTERVAL_NOT_CONFIGURED ((bcmolt_ber_interval) 0)
+typedef uint8_t bcmolt_burst_profile_index;                         /**< bcmolt_burst_profile_index: typed alias for a 8-bit unsigned integer. */
+typedef uint8_t bcmolt_dba_port;                                    /**< bcmolt_dba_port: typed alias for a 8-bit unsigned integer. */
+#define BCMOLT_DBA_PORT_COUNT   ((bcmolt_dba_port) 8)
+typedef uint8_t bcmolt_epon_top;                                    /**< bcmolt_epon_top: typed alias for a 8-bit unsigned integer. */
+#define BCMOLT_EPON_TOP_COUNT   ((bcmolt_epon_top) 8)
+typedef uint8_t bcmolt_epm_lim_global;                              /**< bcmolt_epm_lim_global: typed alias for a 8-bit unsigned integer. */
+#define BCMOLT_EPM_LIM_GLOBAL_COUNT ((bcmolt_epm_lim_global) 16)
+typedef uint8_t bcmolt_xg2g_id;                                     /**< bcmolt_xg2g_id: typed alias for a 8-bit unsigned integer. */
+typedef uint16_t bcmolt_epon_llid;                                  /**< bcmolt_epon_llid: typed alias for a 16-bit unsigned integer. */
+#define BCMOLT_EPON_LLID_BROADCAST_LLID_10G ((bcmolt_epon_llid) 32766)
+#define BCMOLT_EPON_LLID_BROADCAST_LLID_1G  ((bcmolt_epon_llid) 32767)
+typedef uint32_t bcmolt_epon_tunnel_id;                             /**< bcmolt_epon_tunnel_id: typed alias for a 32-bit unsigned integer. */
+typedef uint16_t bcmolt_epon_ni;                                    /**< bcmolt_epon_ni: typed alias for a 16-bit unsigned integer. */
+#define BCMOLT_EPON_NI_INVALID  ((bcmolt_epon_ni) 65535U)
+typedef uint8_t bcmolt_epon_onu_id;                                 /**< bcmolt_epon_onu_id: typed alias for a 8-bit unsigned integer. */
+#define BCMOLT_EPON_ONU_ID_UNKNOWN_ONU  ((bcmolt_epon_onu_id) 255)
+typedef uint16_t bcmolt_flow_id;                                    /**< bcmolt_flow_id: typed alias for a 16-bit unsigned integer. */
+typedef uint16_t bcmolt_gpon_alloc_id;                              /**< bcmolt_gpon_alloc_id: typed alias for a 16-bit unsigned integer. */
+#define BCMOLT_GPON_ALLOC_ID_ANY        ((bcmolt_gpon_alloc_id) 65534U)
+#define BCMOLT_GPON_ALLOC_ID_INVALID    ((bcmolt_gpon_alloc_id) 65535U)
+typedef uint16_t bcmolt_vlan_id;                                    /**< bcmolt_vlan_id: typed alias for a 16-bit unsigned integer. */
+#define BCMOLT_VLAN_ID_MAX  ((bcmolt_vlan_id) 4095)
+#define BCMOLT_VLAN_ID_ANY  ((bcmolt_vlan_id) 65535U)
+typedef uint16_t bcmolt_gpon_gem_id;                                /**< bcmolt_gpon_gem_id: typed alias for a 16-bit unsigned integer. */
+#define BCMOLT_GPON_GEM_ID_ANY      ((bcmolt_gpon_gem_id) 65534U)
+#define BCMOLT_GPON_GEM_ID_INVALID  ((bcmolt_gpon_gem_id) 65535U)
+typedef uint16_t bcmolt_gpon_onu_id;                                /**< bcmolt_gpon_onu_id: typed alias for a 16-bit unsigned integer. */
+#define BCMOLT_GPON_ONU_ID_ANY      ((bcmolt_gpon_onu_id) 65534U)
+#define BCMOLT_GPON_ONU_ID_INVALID  ((bcmolt_gpon_onu_id) 65535U)
+typedef uint8_t bcmolt_gpon_ni;                                     /**< bcmolt_gpon_ni: typed alias for a 8-bit unsigned integer. */
+#define BCMOLT_GPON_NI_INVALID  ((bcmolt_gpon_ni) 255)
+typedef uint16_t bcmolt_pon_onu_id;                                 /**< bcmolt_pon_onu_id: typed alias for a 16-bit unsigned integer. */
+#define BCMOLT_PON_ONU_ID_INVALID   ((bcmolt_pon_onu_id) 65535U)
+typedef uint8_t bcmolt_mac_table_idx_cam;                           /**< bcmolt_mac_table_idx_cam: typed alias for a 8-bit unsigned integer. */
+#define BCMOLT_MAC_TABLE_IDX_CAM_NONE   ((bcmolt_mac_table_idx_cam) 255)
+typedef uint16_t bcmolt_mac_table_idx_combined;                     /**< bcmolt_mac_table_idx_combined: typed alias for a 16-bit unsigned integer. */
+#define BCMOLT_MAC_TABLE_IDX_COMBINED_NONE  ((bcmolt_mac_table_idx_combined) 65535U)
+typedef uint16_t bcmolt_mac_table_idx_main;                         /**< bcmolt_mac_table_idx_main: typed alias for a 16-bit unsigned integer. */
+#define BCMOLT_MAC_TABLE_IDX_MAIN_NONE  ((bcmolt_mac_table_idx_main) 65535U)
+typedef uint32_t bcmolt_meters;                                     /**< bcmolt_meters: typed alias for a 32-bit unsigned integer. */
+typedef uint16_t bcmolt_pon_alloc_id;                               /**< bcmolt_pon_alloc_id: typed alias for a 16-bit unsigned integer. */
+#define BCMOLT_PON_ALLOC_ID_INVALID ((bcmolt_pon_alloc_id) 65535U)
+typedef uint16_t bcmolt_pon_alloc_index;                            /**< bcmolt_pon_alloc_index: typed alias for a 16-bit unsigned integer. */
+#define BCMOLT_PON_ALLOC_INDEX_INVALID  ((bcmolt_pon_alloc_index) 65535U)
+typedef uint16_t bcmolt_pon_gem_port_id;                            /**< bcmolt_pon_gem_port_id: typed alias for a 16-bit unsigned integer. */
+#define BCMOLT_PON_GEM_PORT_ID_INVALID  ((bcmolt_pon_gem_port_id) 65535U)
+typedef uint16_t bcmolt_pon_gem_port_index;                         /**< bcmolt_pon_gem_port_index: typed alias for a 16-bit unsigned integer. */
+#define BCMOLT_PON_GEM_PORT_INDEX_INVALID   ((bcmolt_pon_gem_port_index) 65535U)
+typedef uint8_t bcmolt_pon_ni;                                      /**< bcmolt_pon_ni: typed alias for a 8-bit unsigned integer. */
+#define BCMOLT_PON_NI_INVALID   ((bcmolt_pon_ni) 255)
+typedef uint16_t bcmolt_xgpon_alloc_id;                             /**< bcmolt_xgpon_alloc_id: typed alias for a 16-bit unsigned integer. */
+#define BCMOLT_XGPON_ALLOC_ID_ANY       ((bcmolt_xgpon_alloc_id) 65534U)
+#define BCMOLT_XGPON_ALLOC_ID_INVALID   ((bcmolt_xgpon_alloc_id) 65535U)
+typedef uint16_t bcmolt_xgpon_gem_id;                               /**< bcmolt_xgpon_gem_id: typed alias for a 16-bit unsigned integer. */
+#define BCMOLT_XGPON_GEM_ID_ANY     ((bcmolt_xgpon_gem_id) 65534U)
+#define BCMOLT_XGPON_GEM_ID_INVALID ((bcmolt_xgpon_gem_id) 65535U)
+typedef uint8_t bcmolt_xgpon_ni;                                    /**< bcmolt_xgpon_ni: typed alias for a 8-bit unsigned integer. */
+#define BCMOLT_XGPON_NI_INVALID ((bcmolt_xgpon_ni) 255)
+typedef uint16_t bcmolt_xgpon_onu_id;                               /**< bcmolt_xgpon_onu_id: typed alias for a 16-bit unsigned integer. */
+#define BCMOLT_XGPON_ONU_ID_ANY     ((bcmolt_xgpon_onu_id) 65534U)
+#define BCMOLT_XGPON_ONU_ID_INVALID ((bcmolt_xgpon_onu_id) 65535U)
+
+/** activation fail reason. 
+ */
+typedef enum bcmolt_activation_fail_reason
+{
+    BCMOLT_ACTIVATION_FAIL_REASON__BEGIN                    = 0,
+    BCMOLT_ACTIVATION_FAIL_REASON_NONE                      = 0,    /**< None. */
+    BCMOLT_ACTIVATION_FAIL_REASON_RANGING                   = 1,    /**< Ranging. */
+    BCMOLT_ACTIVATION_FAIL_REASON_PASSWORD_AUTHENTICATION   = 2,    /**< Password authentication. */
+    BCMOLT_ACTIVATION_FAIL_REASON_LOS                       = 3,    /**< LOS. */
+    BCMOLT_ACTIVATION_FAIL_REASON_ONU_ALARM                 = 4,    /**< ONU Alarm. */
+    BCMOLT_ACTIVATION_FAIL_REASON__NUM_OF   /**< Number of enum entries, not an entry itself. */
+} bcmolt_activation_fail_reason;
+
+/** Additional BW eligibility. 
+ */
+typedef enum bcmolt_additional_bw_eligibility
+{
+    BCMOLT_ADDITIONAL_BW_ELIGIBILITY__BEGIN                 = 0,
+    BCMOLT_ADDITIONAL_BW_ELIGIBILITY_NONE                   = 0,    /**< None. */
+    BCMOLT_ADDITIONAL_BW_ELIGIBILITY_NON_ASSURED            = 1,    /**< Non Assured. */
+    BCMOLT_ADDITIONAL_BW_ELIGIBILITY_BEST_EFFORT            = 2,    /**< Best Effort. */
+    BCMOLT_ADDITIONAL_BW_ELIGIBILITY__NUM_OF                        /**< Number of enum entries, not an entry itself. */
+} bcmolt_additional_bw_eligibility;
+
+/** Enable state of the AE NI. 
+ */
+typedef enum bcmolt_ae_ni_en_state
+{
+    BCMOLT_AE_NI_EN_STATE__BEGIN                            = 0,
+    BCMOLT_AE_NI_EN_STATE_DISABLED                          = 0,    /**< AE NI is fully disabled. */
+    BCMOLT_AE_NI_EN_STATE_ENABLED                           = 1,    /**< AE NI is fully enabled. */
+    BCMOLT_AE_NI_EN_STATE__NUM_OF   /**< Number of enum entries, not an entry itself. */
+} bcmolt_ae_ni_en_state;
+
+/** Alloc operation. 
+ */
+typedef enum bcmolt_alloc_operation
+{
+    BCMOLT_ALLOC_OPERATION__BEGIN                           = 0,
+    BCMOLT_ALLOC_OPERATION_ACTIVATE                         = 0,    /**< Activate. */
+    BCMOLT_ALLOC_OPERATION_DEACTIVATE                       = 1,    /**< Deactivate. */
+    BCMOLT_ALLOC_OPERATION__NUM_OF  /**< Number of enum entries, not an entry itself. */
+} bcmolt_alloc_operation;
+
+/** Alloc State. 
+ */
+typedef enum bcmolt_alloc_state
+{
+    BCMOLT_ALLOC_STATE__BEGIN                               = 0,
+    BCMOLT_ALLOC_STATE_NOT_CONFIGURED                       = 0,    /**< Not configured. */
+    BCMOLT_ALLOC_STATE_INACTIVE                             = 1,    /**< Inactive. */
+    BCMOLT_ALLOC_STATE_PROCESSING                           = 2,    /**< Processing. */
+    BCMOLT_ALLOC_STATE_ACTIVE                               = 3,    /**< Active. */
+    BCMOLT_ALLOC_STATE__NUM_OF  /**< Number of enum entries, not an entry itself. */
+} bcmolt_alloc_state;
+
+/** Alloc Type. 
+ */
+typedef enum bcmolt_alloc_type
+{
+    BCMOLT_ALLOC_TYPE__BEGIN                                = 0,
+    BCMOLT_ALLOC_TYPE_NONE                                  = 0,    /**< None. */
+    BCMOLT_ALLOC_TYPE_NSR                                   = 1,    /**< Non Status Report. */
+    BCMOLT_ALLOC_TYPE_SR                                    = 2,    /**< Status Report. */
+    BCMOLT_ALLOC_TYPE__NUM_OF   /**< Number of enum entries, not an entry itself. */
+} bcmolt_alloc_type;
+
+/** Alloc Type to scan during the rogue onu detection process. 
+ */
+typedef enum bcmolt_alloc_type_to_scan
+{
+    BCMOLT_ALLOC_TYPE_TO_SCAN__BEGIN                        = 0,
+    BCMOLT_ALLOC_TYPE_TO_SCAN_UNUSED                        = 0,    /**< Scan only the Alloc-IDs that have not been used. */
+    BCMOLT_ALLOC_TYPE_TO_SCAN_PREVIOUSLY_USED               = 1,    /**< Scan only the Alloc-IDs that has been used but currently not being used.  This is for detecting the case when the OLT has released the Alloc, but the ONU is still holding it due to an error. */
+    BCMOLT_ALLOC_TYPE_TO_SCAN_ALL                           = 2,    /**< Scan both used and unused Alloc-IDs. */
+    BCMOLT_ALLOC_TYPE_TO_SCAN__NUM_OF   /**< Number of enum entries, not an entry itself. */
+} bcmolt_alloc_type_to_scan;
+
+/** What to do when the capture buffer is full. 
+ */
+typedef enum bcmolt_api_capture_buffer_mode
+{
+    BCMOLT_API_CAPTURE_BUFFER_MODE__BEGIN                   = 0,
+    BCMOLT_API_CAPTURE_BUFFER_MODE_OVERFLOW                 = 0,    /**< Drop messages when the buffer is full. */
+    BCMOLT_API_CAPTURE_BUFFER_MODE_WRAP                     = 1,    /**< Wrap back to the beginning when the buffer is full. */
+    BCMOLT_API_CAPTURE_BUFFER_MODE__NUM_OF  /**< Number of enum entries, not an entry itself. */
+} bcmolt_api_capture_buffer_mode;
+
+/** Where to perform the API capture. 
+ */
+typedef enum bcmolt_api_capture_location
+{
+    BCMOLT_API_CAPTURE_LOCATION__BEGIN                      = 0,
+    BCMOLT_API_CAPTURE_LOCATION_DEVICE                      = 0,    /**< On the device. */
+    BCMOLT_API_CAPTURE_LOCATION_HOST                        = 1,    /**< On the host. */
+    BCMOLT_API_CAPTURE_LOCATION__NUM_OF /**< Number of enum entries, not an entry itself. */
+} bcmolt_api_capture_location;
+
+/** Calibration Record. 
+ */
+typedef enum bcmolt_calibration_record
+{
+    BCMOLT_CALIBRATION_RECORD__BEGIN                        = 0,
+    BCMOLT_CALIBRATION_RECORD_UNSPECIFIED                   = 0,    /**< Unspecified. */
+    BCMOLT_CALIBRATION_RECORD_UNCALIBRATED                  = 1,    /**< Uncalibrated. */
+    BCMOLT_CALIBRATION_RECORD_LOOSE                         = 2,    /**< Loose. */
+    BCMOLT_CALIBRATION_RECORD_SUFFICIENT                    = 3,    /**< Sufficient. */
+    BCMOLT_CALIBRATION_RECORD__NUM_OF   /**< Number of enum entries, not an entry itself. */
+} bcmolt_calibration_record;
+
+/** sign. 
+ */
+typedef enum bcmolt_sign
+{
+    BCMOLT_SIGN__BEGIN                                      = 0,
+    BCMOLT_SIGN_POSITIVE                                    = 0,    /**< Positive. */
+    BCMOLT_SIGN_NEGATIVE                                    = 1,    /**< Negative. */
+    BCMOLT_SIGN__NUM_OF /**< Number of enum entries, not an entry itself. */
+} bcmolt_sign;
+
+/** XGPON ni upstream line rate capabilities 
+ */
+typedef enum bcmolt_upstream_line_rate_capabilities
+{
+    BCMOLT_UPSTREAM_LINE_RATE_CAPABILITIES__BEGIN           = 0,
+    BCMOLT_UPSTREAM_LINE_RATE_CAPABILITIES_RATE_2_P_5_G     = 0,    /**< 2.5G Upstream line rate capability */
+    BCMOLT_UPSTREAM_LINE_RATE_CAPABILITIES_RATE_10_G        = 1,    /**< 10G Upstream line rate capability */
+    BCMOLT_UPSTREAM_LINE_RATE_CAPABILITIES__NUM_OF                  /**< Number of enum entries, not an entry itself. */
+} bcmolt_upstream_line_rate_capabilities;
+
+/** Link type. 
+ */
+typedef enum bcmolt_link_type
+{
+    BCMOLT_LINK_TYPE__BEGIN                                 = 0,
+    BCMOLT_LINK_TYPE_UNSPECIFIED                            = 0,    /**< Link type unspecified */
+    BCMOLT_LINK_TYPE_B                                      = 1,    /**< Link type A is not supported, link type B is supported */
+    BCMOLT_LINK_TYPE_A                                      = 2,    /**< Link type A is supported, link type B is not supported */
+    BCMOLT_LINK_TYPE_A_AND_B                                = 3,    /**< Both link types A and B are supported */
+    BCMOLT_LINK_TYPE__NUM_OF    /**< Number of enum entries, not an entry itself. */
+} bcmolt_link_type;
+
+/** capture strobe signal. 
+ */
+typedef enum bcmolt_capture_strobe_signal
+{
+    BCMOLT_CAPTURE_STROBE_SIGNAL__BEGIN                     = 0,
+    BCMOLT_CAPTURE_STROBE_SIGNAL_GPON_BCDR_RESET            = 0,    /**< gpon bcdr reset. */
+    BCMOLT_CAPTURE_STROBE_SIGNAL_GPON_TRX_ED                = 1,    /**< gpon trx ed. */
+    BCMOLT_CAPTURE_STROBE_SIGNAL_GPON_RSSI                  = 2,    /**< gpon rssi. */
+    BCMOLT_CAPTURE_STROBE_SIGNAL_GPON_EOB                   = 3,    /**< gpon eob. */
+    BCMOLT_CAPTURE_STROBE_SIGNAL_SERDES_BURST_EN            = 4,    /**< serdes burst en. */
+    BCMOLT_CAPTURE_STROBE_SIGNAL_SERDES_RX_LOCK             = 5,    /**< serdes rx lock. */
+    BCMOLT_CAPTURE_STROBE_SIGNAL__NUM_OF    /**< Number of enum entries, not an entry itself. */
+} bcmolt_capture_strobe_signal;
+
+/** Console Redirection Type. 
+ */
+typedef enum bcmolt_console_redirection
+{
+    BCMOLT_CONSOLE_REDIRECTION__BEGIN                       = 0,
+    BCMOLT_CONSOLE_REDIRECTION_NONE                         = 0,    /**< No redirection */
+    BCMOLT_CONSOLE_REDIRECTION_REDIRECT                     = 1,    /**< Embedded console output is redirected to the host */
+    BCMOLT_CONSOLE_REDIRECTION_CLONE                        = 2,    /**< Embedded console output is cloned to the host */
+    BCMOLT_CONSOLE_REDIRECTION__NUM_OF  /**< Number of enum entries, not an entry itself. */
+} bcmolt_console_redirection;
+
+/** control state. 
+ */
+typedef enum bcmolt_control_state
+{
+    BCMOLT_CONTROL_STATE__BEGIN                             = 0,
+    BCMOLT_CONTROL_STATE_DISABLE                            = 0,    /**< Disabled. */
+    BCMOLT_CONTROL_STATE_ENABLE                             = 1,    /**< Enabled. */
+    BCMOLT_CONTROL_STATE__NUM_OF    /**< Number of enum entries, not an entry itself. */
+} bcmolt_control_state;
+
+/** dba mode. 
+ */
+typedef enum bcmolt_dba_mode
+{
+    BCMOLT_DBA_MODE__BEGIN                                  = 0,
+    BCMOLT_DBA_MODE_NORMAL                                  = 0,    /**< normal. */
+    BCMOLT_DBA_MODE_EXTENDED                                = 1,    /**< extended. */
+    BCMOLT_DBA_MODE__NUM_OF /**< Number of enum entries, not an entry itself. */
+} bcmolt_dba_mode;
+
+/** DBA RAM. 
+ */
+typedef enum bcmolt_dba_ram
+{
+    BCMOLT_DBA_RAM__BEGIN                                   = 0,
+    BCMOLT_DBA_RAM_GRANT_FIFO_RAM_0                         = 0,    /**< Grant FIFO RAM 0. */
+    BCMOLT_DBA_RAM_GRANT_FIFO_RAM_1                         = 1,    /**< Grant FIFO RAM 1. */
+    BCMOLT_DBA_RAM_GRANT_FIFO_RAM_2                         = 2,    /**< Grant FIFO RAM 2. */
+    BCMOLT_DBA_RAM_GRANT_FIFO_RAM_3                         = 3,    /**< Grant FIFO RAM 3. */
+    BCMOLT_DBA_RAM_GRANT_FIFO_RAM_4                         = 4,    /**< Grant FIFO RAM 4. */
+    BCMOLT_DBA_RAM_GRANT_FIFO_RAM_5                         = 5,    /**< Grant FIFO RAM 5. */
+    BCMOLT_DBA_RAM_GRANT_FIFO_RAM_6                         = 6,    /**< Grant FIFO RAM 6. */
+    BCMOLT_DBA_RAM_GRANT_FIFO_RAM_7                         = 7,    /**< Grant FIFO RAM 7. */
+    BCMOLT_DBA_RAM_GRANTS_OUT_RAM                           = 8,    /**< Grants Out RAM. */
+    BCMOLT_DBA_RAM_GRANTS_IN_RAM                            = 9,    /**< Grants In RAM. */
+    BCMOLT_DBA_RAM_GRANTS_RETIRED_RAM                       = 10,   /**< Grants Retired RAM. */
+    BCMOLT_DBA_RAM_REPORT_RAM                               = 11,   /**< Report RAM. */
+    BCMOLT_DBA_RAM_GRANT_CFG_RAM                            = 12,   /**< Grant Cfg RAM. */
+    BCMOLT_DBA_RAM_DEFAULT_TOKENS_RAM                       = 13,   /**< Default Tokens RAM. */
+    BCMOLT_DBA_RAM_POLL_RECORDS_RAM                         = 14,   /**< Poll Records RAM. */
+    BCMOLT_DBA_RAM_HEIR_POLL_RAM                            = 15,   /**< Heir Poll RAM. */
+    BCMOLT_DBA_RAM_LAST_POLL_TIME_RAM                       = 16,   /**< Last Poll Time RAM. */
+    BCMOLT_DBA_RAM_POLL_ORDER_RAM                           = 17,   /**< Poll Order RAM. */
+    BCMOLT_DBA_RAM_TDM_RAM_0                                = 18,   /**< TDM RAM 0. */
+    BCMOLT_DBA_RAM_TDM_RAM_1                                = 19,   /**< TDM RAM 1. */
+    BCMOLT_DBA_RAM_TDM_RAM_2                                = 20,   /**< TDM RAM 2. */
+    BCMOLT_DBA_RAM_TDM_RAM_3                                = 21,   /**< TDM RAM 3. */
+    BCMOLT_DBA_RAM_TDM_RAM_4                                = 22,   /**< TDM RAM 4. */
+    BCMOLT_DBA_RAM_TDM_RAM_5                                = 23,   /**< TDM RAM 5. */
+    BCMOLT_DBA_RAM_TDM_RAM_6                                = 24,   /**< TDM RAM 6. */
+    BCMOLT_DBA_RAM_TDM_RAM_7                                = 25,   /**< TDM RAM 7. */
+    BCMOLT_DBA_RAM__NUM_OF  /**< Number of enum entries, not an entry itself. */
+} bcmolt_dba_ram;
+
+/** DBA type. 
+ */
+typedef enum bcmolt_dba_type
+{
+    BCMOLT_DBA_TYPE__BEGIN                                  = 0,
+    BCMOLT_DBA_TYPE_INTERNAL                                = 0,    /**< DBA internal implementation */
+    BCMOLT_DBA_TYPE_PARTIAL_EXTERNAL                        = 1,    /**< DBA partial external implementation (DE, BA are implemented externally) */
+    BCMOLT_DBA_TYPE_EXTERNAL                                = 2,    /**< DBA external implementation  */
+    BCMOLT_DBA_TYPE__NUM_OF /**< Number of enum entries, not an entry itself. */
+} bcmolt_dba_type;
+
+/** DDR Test Status. 
+ */
+typedef enum bcmolt_ddr_test_status
+{
+    BCMOLT_DDR_TEST_STATUS__BEGIN                           = 0,
+    BCMOLT_DDR_TEST_STATUS_COMPLETED                        = 0,    /**< The DDR test ran to completion */
+    BCMOLT_DDR_TEST_STATUS_CONNECTION_FAILED                = 1,    /**< The DDR test failed due to an issue loading the bootloader */
+    BCMOLT_DDR_TEST_STATUS_TIMEOUT                          = 2,    /**< The DDR test failed to complete within the expected time */
+    BCMOLT_DDR_TEST_STATUS__NUM_OF  /**< Number of enum entries, not an entry itself. */
+} bcmolt_ddr_test_status;
+
+/** DDR Test Result. 
+ */
+typedef enum bcmolt_ddr_test_result
+{
+    BCMOLT_DDR_TEST_RESULT_SUCCESS                          = 0,        /**< Success. */
+    BCMOLT_DDR_TEST_RESULT_PHY_INIT_ERROR                   = 1,        /**< PHY Init Error. */
+    BCMOLT_DDR_TEST_RESULT_DRAM_INIT_ERROR                  = 2,        /**< DRAM Init Error. */
+    BCMOLT_DDR_TEST_RESULT_SHMOO_ERROR                      = 3,        /**< SHMOO Error. */
+    BCMOLT_DDR_TEST_RESULT_EDIS_TEST_ERROR                  = 4,        /**< EDIS Test Error. */
+    BCMOLT_DDR_TEST_RESULT_MEM_TEST_ERROR                   = 5,        /**< Mem Test Error. */
+    BCMOLT_DDR_TEST_RESULT_NOT_TESTED                       = 127       /**< Not Tested. */
+} bcmolt_ddr_test_result;
+
+/** Reasons why the connection between the host and the device failed 
+ */
+typedef enum bcmolt_host_connection_fail_reason
+{
+    BCMOLT_HOST_CONNECTION_FAIL_REASON__BEGIN                   = 0,
+    BCMOLT_HOST_CONNECTION_FAIL_REASON_TIMEOUT                  = 0,    /**< The connection process has timed out. */
+    BCMOLT_HOST_CONNECTION_FAIL_REASON_KEEPALIVE                = 1,    /**< Too much time has passed between keepalive messages from the device. */
+    BCMOLT_HOST_CONNECTION_FAIL_REASON_USER_CALLBACK_ERROR      = 2,    /**< A user callback returned a nonzero error code.  Check log output to determine which callback failed. */
+    BCMOLT_HOST_CONNECTION_FAIL_REASON_SOFTWARE_VERSION_MISMATCH= 3,    /**< The software version on the running device doesn't match the version in the host software.  Only the revision number is allowed to differ - major/minor/model must match. */
+    BCMOLT_HOST_CONNECTION_FAIL_REASON_SYSTEM_MODE_MISMATCH     = 4,    /**< The system mode on the running device doesn't match the version in the host software. */
+    BCMOLT_HOST_CONNECTION_FAIL_REASON_NNI_SPEED_MISMATCH       = 5,    /**< The NNI speed on the running device doesn't match the version in the host software. */
+    BCMOLT_HOST_CONNECTION_FAIL_REASON_RECONNECT_TIMEOUT        = 6,    /**< A running device didn't respond to the request to reconnect. */
+    BCMOLT_HOST_CONNECTION_FAIL_REASON_INTERNAL_ERROR           = 7,    /**< An unspecified internal error occurred - check the log output for details. */
+    BCMOLT_HOST_CONNECTION_FAIL_REASON_SYSTEM_MODE_NOT_SUPPORTED= 8,    /**< The given system mode is not supported on this device. */
+    BCMOLT_HOST_CONNECTION_FAIL_REASON_PARAMETER                = 9,    /**< One of the initial connection parameters was incorrect. */
+    BCMOLT_HOST_CONNECTION_FAIL_REASON__NUM_OF  /**< Number of enum entries, not an entry itself. */
+} bcmolt_host_connection_fail_reason;
+
+/** deactivation reason. 
+ */
+typedef enum bcmolt_deactivation_reason
+{
+    BCMOLT_DEACTIVATION_REASON__BEGIN                           = 0,
+    BCMOLT_DEACTIVATION_REASON_NONE                             = 0,    /**< none. */
+    BCMOLT_DEACTIVATION_REASON_DEACTIVATION                     = 1,    /**< deactivation. */
+    BCMOLT_DEACTIVATION_REASON_ACK_TIMEOUT                      = 2,    /**< ack timeout. */
+    BCMOLT_DEACTIVATION_REASON_SFI                              = 3,    /**< sfi alarm. */
+    BCMOLT_DEACTIVATION_REASON_TIWI                             = 4,    /**< tiwi. */
+    BCMOLT_DEACTIVATION_REASON_PASSWORD_AUTHENTICATION          = 5,    /**< password authentication. */
+    BCMOLT_DEACTIVATION_REASON_ONU_ALARM                        = 6,    /**< onu alarm. */
+    BCMOLT_DEACTIVATION_REASON_LOS                              = 7,    /**< los. */
+    BCMOLT_DEACTIVATION_REASON_LOKI                             = 8,    /**< loki. */
+    BCMOLT_DEACTIVATION_REASON_RERANGE_FAILURE                  = 9,    /**< re-range failure. */
+    BCMOLT_DEACTIVATION_REASON__NUM_OF  /**< Number of enum entries, not an entry itself. */
+} bcmolt_deactivation_reason;
+
+/** Revision of the BCM68620 device. 
+ */
+typedef enum bcmolt_device_chip_revision
+{
+    BCMOLT_DEVICE_CHIP_REVISION_A0                              = 160,  /**< A0. */
+    BCMOLT_DEVICE_CHIP_REVISION_B0                              = 176   /**< B0. */
+} bcmolt_device_chip_revision;
+
+/** Device Image Type. 
+ */
+typedef enum bcmolt_device_image_type
+{
+    BCMOLT_DEVICE_IMAGE_TYPE__BEGIN                             = 0,
+    BCMOLT_DEVICE_IMAGE_TYPE_BOOTLOADER                         = 0,    /**< Bootloader. */
+    BCMOLT_DEVICE_IMAGE_TYPE_APPLICATION                        = 1,    /**< Application. */
+    BCMOLT_DEVICE_IMAGE_TYPE_ITU_PON_ONU_FIRMWARE               = 2,    /**< ITU PON ONU firmware. */
+    BCMOLT_DEVICE_IMAGE_TYPE_EPON_ONU_FIRMWARE                  = 3,    /**< EPON ONU firmware. */
+    BCMOLT_DEVICE_IMAGE_TYPE__NUM_OF    /**< Number of enum entries, not an entry itself. */
+} bcmolt_device_image_type;
+
+/** Network interface speed 
+ */
+typedef enum bcmolt_nni_speed
+{
+    BCMOLT_NNI_SPEED__BEGIN                                     = 0,
+    BCMOLT_NNI_SPEED_GBPS_1                                     = 0,    /**< 1Gbps */
+    BCMOLT_NNI_SPEED_GBPS_2P5                                   = 1,    /**< 2.5Gbps */
+    BCMOLT_NNI_SPEED_GBPS_10                                    = 2,    /**< 10Gbps */
+    BCMOLT_NNI_SPEED_GBPS_12P5                                  = 3,    /**< 12.5Gbps */
+    BCMOLT_NNI_SPEED_GBPS_10_G_MUX                              = 4,    /**< 10Gbps Mux */
+    BCMOLT_NNI_SPEED__NUM_OF    /**< Number of enum entries, not an entry itself. */
+} bcmolt_nni_speed;
+
+/** Options for the reset operation. 
+ */
+typedef enum bcmolt_device_reset_mode
+{
+    BCMOLT_DEVICE_RESET_MODE_DEVICE                             = 1,    /**< Turn off the embedded device's processor. */
+    BCMOLT_DEVICE_RESET_MODE_HOST                               = 2,    /**< Reset the host processor. */
+    BCMOLT_DEVICE_RESET_MODE_ALL                                = 3     /**< Turn off the embedded device's processor and reset the host processor. */
+} bcmolt_device_reset_mode;
+
+/** The overall state of the host's connection to the device. 
+ */
+typedef enum bcmolt_device_state
+{
+    BCMOLT_DEVICE_STATE__BEGIN                                  = 0,
+    BCMOLT_DEVICE_STATE_DISCONNECTED                            = 0,    /**< The host is not connected to the device. */
+    BCMOLT_DEVICE_STATE_CONNECTING                              = 1,    /**< The host is in the process of connecting to the device. */
+    BCMOLT_DEVICE_STATE_READY                                   = 2,    /**< The device is connected to the host and is ready to accept any command from the host. */
+    BCMOLT_DEVICE_STATE_WAITING_FOR_DEVICE                      = 3,    /**< Waiting for the embedded side to respond to a configuration message. */
+    BCMOLT_DEVICE_STATE_TESTING_DDR                             = 4,    /**< A DDR test is currently in progress */
+    BCMOLT_DEVICE_STATE__NUM_OF /**< Number of enum entries, not an entry itself. */
+} bcmolt_device_state;
+
+/** Disable Serial Number Control. 
+ */
+typedef enum bcmolt_disable_serial_number_control
+{
+    BCMOLT_DISABLE_SERIAL_NUMBER_CONTROL__BEGIN                 = 0,
+    BCMOLT_DISABLE_SERIAL_NUMBER_CONTROL_UNICAST_DISABLE        = 0,    /**< Unicast Disable. */
+    BCMOLT_DISABLE_SERIAL_NUMBER_CONTROL_UNICAST_ENABLE         = 1,    /**< Unicast Enable. */
+    BCMOLT_DISABLE_SERIAL_NUMBER_CONTROL_BROADCAST_ENABLE       = 2,    /**< Broadcast Enable. */
+    BCMOLT_DISABLE_SERIAL_NUMBER_CONTROL_BROADCAST_DISABLE      = 3,    /**< Broadcast Disable. */
+    BCMOLT_DISABLE_SERIAL_NUMBER_CONTROL_DISABLE_DISCOVERY      = 4,    /**< Disable Discovery. */
+    BCMOLT_DISABLE_SERIAL_NUMBER_CONTROL__NUM_OF                        /**< Number of enum entries, not an entry itself. */
+} bcmolt_disable_serial_number_control;
+
+/** drv_icf_id. 
+ */
+typedef enum bcmolt_drv_icf_id
+{
+    BCMOLT_DRV_ICF_ID__BEGIN                                    = 0,
+    BCMOLT_DRV_ICF_ID_IDX0                                      = 0,    /**< IDX0. */
+    BCMOLT_DRV_ICF_ID_IDX1                                      = 1,    /**< IDX1. */
+    BCMOLT_DRV_ICF_ID_IDX2                                      = 2,    /**< IDX2. */
+    BCMOLT_DRV_ICF_ID_IDX3                                      = 3,    /**< IDX3. */
+    BCMOLT_DRV_ICF_ID__NUM_OF   /**< Number of enum entries, not an entry itself. */
+} bcmolt_drv_icf_id;
+
+/** drv_sgb_id. 
+ */
+typedef enum bcmolt_drv_sgb_id
+{
+    BCMOLT_DRV_SGB_ID__BEGIN                                    = 0,
+    BCMOLT_DRV_SGB_ID_IDX0                                      = 0,    /**< IDX0. */
+    BCMOLT_DRV_SGB_ID_IDX1                                      = 1,    /**< IDX1. */
+    BCMOLT_DRV_SGB_ID__NUM_OF   /**< Number of enum entries, not an entry itself. */
+} bcmolt_drv_sgb_id;
+
+/** DS VLAN action. 
+ */
+typedef enum bcmolt_ds_vlan_action
+{
+    BCMOLT_DS_VLAN_ACTION__BEGIN                                = 0,
+    BCMOLT_DS_VLAN_ACTION_REMOVE                                = 0,    /**< Remove. */
+    BCMOLT_DS_VLAN_ACTION_TRANSPARENT                           = 1,    /**< Transparent. */
+    BCMOLT_DS_VLAN_ACTION__NUM_OF   /**< Number of enum entries, not an entry itself. */
+} bcmolt_ds_vlan_action;
+
+/** TFB Trap Behavior. 
+ */
+typedef enum bcmolt_tfb_trap_behavior
+{
+    BCMOLT_TFB_TRAP_BEHAVIOR__BEGIN                             = 0,
+    BCMOLT_TFB_TRAP_BEHAVIOR_DROP                               = 0,    /**< Drop. */
+    BCMOLT_TFB_TRAP_BEHAVIOR_FORWARD_NNI                        = 1,    /**< Forward NNI. */
+    BCMOLT_TFB_TRAP_BEHAVIOR_FORWARD_CPU                        = 2,    /**< Forward CPU. */
+    BCMOLT_TFB_TRAP_BEHAVIOR_SNOOP                              = 3,    /**< Snoop. */
+    BCMOLT_TFB_TRAP_BEHAVIOR__NUM_OF    /**< Number of enum entries, not an entry itself. */
+} bcmolt_tfb_trap_behavior;
+
+/** TFB Mode. 
+ */
+typedef enum bcmolt_tfb_mode
+{
+    BCMOLT_TFB_MODE__BEGIN                                      = 0,
+    BCMOLT_TFB_MODE_GPON                                        = 0,    /**< GPON. */
+    BCMOLT_TFB_MODE_XGPON                                       = 1,    /**< XGPON. */
+    BCMOLT_TFB_MODE_EPON                                        = 2,    /**< EPON. */
+    BCMOLT_TFB_MODE_XEPON                                       = 3,    /**< XEPON. */
+    BCMOLT_TFB_MODE_COEX                                        = 4,    /**< COEX. */
+    BCMOLT_TFB_MODE__NUM_OF /**< Number of enum entries, not an entry itself. */
+} bcmolt_tfb_mode;
+
+/** LIM SEC Mode Up. 
+ */
+typedef enum bcmolt_lim_sec_mode_up
+{
+    BCMOLT_LIM_SEC_MODE_UP__BEGIN                               = 0,
+    BCMOLT_LIM_SEC_MODE_UP_TEK                                  = 0,    /**< Teknovus encryption mode */
+    BCMOLT_LIM_SEC_MODE_UP_PER_LLID                             = 1,    /**< Encryption per LLID, 802.1ae/zero-overhead */
+    BCMOLT_LIM_SEC_MODE_UP_NTT                                  = 2,    /**< EPON (NTT) encryption mode */
+    BCMOLT_LIM_SEC_MODE_UP__NUM_OF  /**< Number of enum entries, not an entry itself. */
+} bcmolt_lim_sec_mode_up;
+
+/** LIM SEC Mode Dn. 
+ */
+typedef enum bcmolt_lim_sec_mode_dn
+{
+    BCMOLT_LIM_SEC_MODE_DN__BEGIN                               = 0,
+    BCMOLT_LIM_SEC_MODE_DN_TEK                                  = 0,    /**< Teknovus encryption mode */
+    BCMOLT_LIM_SEC_MODE_DN_PER_LLID                             = 1,    /**< Encryption per LLID, 802.1ae/zero-overhead */
+    BCMOLT_LIM_SEC_MODE_DN_NTT                                  = 2,    /**< EPON (NTT) encryption mode */
+    BCMOLT_LIM_SEC_MODE_DN_CEPON                                = 3,    /**< CEPON (3Churn) encryption mode */
+    BCMOLT_LIM_SEC_MODE_DN__NUM_OF  /**< Number of enum entries, not an entry itself. */
+} bcmolt_lim_sec_mode_dn;
+
+/** XIM SEC Mode. 
+ */
+typedef enum bcmolt_xim_sec_mode
+{
+    BCMOLT_XIM_SEC_MODE__BEGIN                                  = 0,
+    BCMOLT_XIM_SEC_MODE_RESERVED_0                              = 0,    /**< Reserved 0. */
+    BCMOLT_XIM_SEC_MODE_PER_LLID                                = 1,    /**< Per LLID. */
+    BCMOLT_XIM_SEC_MODE_RESERVED_2                              = 2,    /**< Reserved 2. */
+    BCMOLT_XIM_SEC_MODE_CEPON                                   = 3,    /**< CEPON. */
+    BCMOLT_XIM_SEC_MODE__NUM_OF /**< Number of enum entries, not an entry itself. */
+} bcmolt_xim_sec_mode;
+
+/** HSC RAM. 
+ */
+typedef enum bcmolt_hsc_ram
+{
+    BCMOLT_HSC_RAM__BEGIN                                       = 0,
+    BCMOLT_HSC_RAM_LLC_T1                                       = 0,    /**< LLC T1. */
+    BCMOLT_HSC_RAM_LLC_T2                                       = 1,    /**< LLC T2. */
+    BCMOLT_HSC_RAM_LLC_T3                                       = 2,    /**< LLC T3. */
+    BCMOLT_HSC_RAM_GRP_T2                                       = 3,    /**< Grp T2. */
+    BCMOLT_HSC_RAM_GRP_T3                                       = 4,    /**< Grp T3. */
+    BCMOLT_HSC_RAM_SHP_T1                                       = 5,    /**< Shp T1. */
+    BCMOLT_HSC_RAM_SHP_T2                                       = 6,    /**< Shp T2. */
+    BCMOLT_HSC_RAM_SHP_T3                                       = 7,    /**< Shp T3. */
+    BCMOLT_HSC_RAM_PRF_T1                                       = 8,    /**< Prf T1. */
+    BCMOLT_HSC_RAM_PRF_T2                                       = 9,    /**< Prf T2. */
+    BCMOLT_HSC_RAM_PRF_T3                                       = 10,   /**< Prf T3. */
+    BCMOLT_HSC_RAM_CRE_T1                                       = 11,   /**< Cre T1. */
+    BCMOLT_HSC_RAM_CRE_T2                                       = 12,   /**< Cre T2. */
+    BCMOLT_HSC_RAM_CRE_T3                                       = 13,   /**< Cre T3. */
+    BCMOLT_HSC_RAM_ELU                                          = 14,   /**< ELU. */
+    BCMOLT_HSC_RAM_PTR_T1                                       = 15,   /**< Ptr T1. */
+    BCMOLT_HSC_RAM_PTR_T2                                       = 16,   /**< Ptr T2. */
+    BCMOLT_HSC_RAM_AGR_SHP_T1                                   = 17,   /**< Agr Shp T1. */
+    BCMOLT_HSC_RAM_AEM                                          = 18,   /**< AEM. */
+    BCMOLT_HSC_RAM_ALL_LLC                                      = 19,   /**< All LLC. */
+    BCMOLT_HSC_RAM__NUM_OF  /**< Number of enum entries, not an entry itself. */
+} bcmolt_hsc_ram;
+
+/** LIM RAM. 
+ */
+typedef enum bcmolt_lim_ram
+{
+    BCMOLT_LIM_RAM__BEGIN                                       = 0,
+    BCMOLT_LIM_RAM_LLID_UP                                      = 0,    /**< LLID Up. */
+    BCMOLT_LIM_RAM_PER_ONU_STAT                                 = 1,    /**< Per ONU Stat. */
+    BCMOLT_LIM_RAM_FEC_UP_FULL_S                                = 2,    /**< FEC Up Full S. */
+    BCMOLT_LIM_RAM_FEC_UP_DATA                                  = 3,    /**< FEC Up Data. */
+    BCMOLT_LIM_RAM__NUM_OF  /**< Number of enum entries, not an entry itself. */
+} bcmolt_lim_ram;
+
+/** LKY RAM. 
+ */
+typedef enum bcmolt_lky_ram
+{
+    BCMOLT_LKY_RAM__BEGIN                                       = 0,
+    BCMOLT_LKY_RAM_TX_KEY_RAM                                   = 0,    /**< Tx Key RAM. */
+    BCMOLT_LKY_RAM_TX_KEY_BUFFER                                = 1,    /**< Tx Key Buffer. */
+    BCMOLT_LKY_RAM_RX_KEY_RAM                                   = 2,    /**< Rx Key RAM. */
+    BCMOLT_LKY_RAM_RX_KEY_BUFFER                                = 3,    /**< Rx Key Buffer. */
+    BCMOLT_LKY_RAM__NUM_OF  /**< Number of enum entries, not an entry itself. */
+} bcmolt_lky_ram;
+
+/** MIC RAM. 
+ */
+typedef enum bcmolt_mic_ram
+{
+    BCMOLT_MIC_RAM__BEGIN                                       = 0,
+    BCMOLT_MIC_RAM_RANGE                                        = 0,    /**< Range. */
+    BCMOLT_MIC_RAM_LLID                                         = 1,    /**< LLID. */
+    BCMOLT_MIC_RAM_IDX                                          = 2,    /**< Index. */
+    BCMOLT_MIC_RAM_GRANT_MISS                                   = 3,    /**< Grant Miss. */
+    BCMOLT_MIC_RAM_GRANT_ID                                     = 4,    /**< Grant ID. */
+    BCMOLT_MIC_RAM_TX_IV                                        = 5,    /**< Tx IV. */
+    BCMOLT_MIC_RAM_RX_IV                                        = 6,    /**< Rx IV. */
+    BCMOLT_MIC_RAM_TX_PORT_STAT                                 = 7,    /**< Tx Port Stat. */
+    BCMOLT_MIC_RAM_RX_PORT_STAT                                 = 8,    /**< Rx Port Stat. */
+    BCMOLT_MIC_RAM__NUM_OF  /**< Number of enum entries, not an entry itself. */
+} bcmolt_mic_ram;
+
+/** XPCSRM RAM. 
+ */
+typedef enum bcmolt_xpcsrm_ram
+{
+    BCMOLT_XPCSRM_RAM__BEGIN                                    = 0,
+    BCMOLT_XPCSRM_RAM_CAPTURE_FIFO                              = 0,    /**< Capture FIFO. */
+    BCMOLT_XPCSRM_RAM_FEC_DECODE                                = 1,    /**< FEC Decode. */
+    BCMOLT_XPCSRM_RAM_FEC_STATS                                 = 2,    /**< FEC Stats. */
+    BCMOLT_XPCSRM_RAM_FEC_ENQUEUE                               = 3,    /**< FEC Enqueue. */
+    BCMOLT_XPCSRM_RAM_IDLE_INSERT                               = 4,    /**< Idle Insert. */
+    BCMOLT_XPCSRM_RAM__NUM_OF   /**< Number of enum entries, not an entry itself. */
+} bcmolt_xpcsrm_ram;
+
+/** embedded image transfer status. 
+ */
+typedef enum bcmolt_embedded_image_transfer_status
+{
+    BCMOLT_EMBEDDED_IMAGE_TRANSFER_STATUS__BEGIN                = 0,
+    BCMOLT_EMBEDDED_IMAGE_TRANSFER_STATUS_NONE                  = 0,    /**< No file.  Transfer has never started for this entry. */
+    BCMOLT_EMBEDDED_IMAGE_TRANSFER_STATUS_IN_PROGRESS           = 1,    /**< Transfer has started and not finished. */
+    BCMOLT_EMBEDDED_IMAGE_TRANSFER_STATUS_SUCCESS               = 2,    /**< Transfer has finished successfully. */
+    BCMOLT_EMBEDDED_IMAGE_TRANSFER_STATUS_FAILURE               = 3,    /**< Transfer failed.  Typically due to CRC error. */
+    BCMOLT_EMBEDDED_IMAGE_TRANSFER_STATUS__NUM_OF                       /**< Number of enum entries, not an entry itself. */
+} bcmolt_embedded_image_transfer_status;
+
+/** EPON Encryption information format. 
+ */
+typedef enum bcmolt_epon_encryption_information_format
+{
+    BCMOLT_EPON_ENCRYPTION_INFORMATION_FORMAT__BEGIN            = 0,
+    BCMOLT_EPON_ENCRYPTION_INFORMATION_FORMAT_CFB               = 0,    /**< CFB. */
+    BCMOLT_EPON_ENCRYPTION_INFORMATION_FORMAT_CTR               = 1,    /**< CTR. */
+    BCMOLT_EPON_ENCRYPTION_INFORMATION_FORMAT__NUM_OF                   /**< Number of enum entries, not an entry itself. */
+} bcmolt_epon_encryption_information_format;
+
+/** energy detect source. 
+ */
+typedef enum bcmolt_energy_detect_source
+{
+    BCMOLT_ENERGY_DETECT_SOURCE__BEGIN                          = 0,
+    BCMOLT_ENERGY_DETECT_SOURCE_INTERNAL                        = 0,    /**< internal. */
+    BCMOLT_ENERGY_DETECT_SOURCE_TRX                             = 1,    /**< TRX. */
+    BCMOLT_ENERGY_DETECT_SOURCE_BCDR                            = 2,    /**< BCDR. */
+    BCMOLT_ENERGY_DETECT_SOURCE__NUM_OF /**< Number of enum entries, not an entry itself. */
+} bcmolt_energy_detect_source;
+
+/** EPON turbo mode.  Enables double downstream speed (2G) on 1G EPON NIs 
+ */
+typedef enum bcmolt_epon_1g_turbo_mode
+{
+    BCMOLT_EPON_1G_TURBO_MODE__BEGIN                            = 0,
+    BCMOLT_EPON_1G_TURBO_MODE_DISABLED                          = 0,    /**< Turbo mode is disabled - EPON NI has a dowstream data rate of 1G. */
+    BCMOLT_EPON_1G_TURBO_MODE_ENABLED                           = 1,    /**< Turbo mode is enabled - EPON NI has a dowstream data rate of 2G. */
+    BCMOLT_EPON_1G_TURBO_MODE__NUM_OF   /**< Number of enum entries, not an entry itself. */
+} bcmolt_epon_1g_turbo_mode;
+
+/** EPON Clock Transport Mode. 
+ */
+typedef enum bcmolt_epon_clock_transport_mode
+{
+    BCMOLT_EPON_CLOCK_TRANSPORT_MODE__BEGIN                     = 0,
+    BCMOLT_EPON_CLOCK_TRANSPORT_MODE_HOST_DRIVEN                = 0,    /**< At each pulse, the Maple will issue an indication to the host containing the equivalent MPCP time for this PON. */
+    BCMOLT_EPON_CLOCK_TRANSPORT_MODE_EMBEDDED_DRIVEN            = 1,    /**< At each pulse, the Maple will parse the ToD from the second UART (if available) and then format and send down an IEEE 802.1as clock transport time sync message to each user link. */
+    BCMOLT_EPON_CLOCK_TRANSPORT_MODE__NUM_OF    /**< Number of enum entries, not an entry itself. */
+} bcmolt_epon_clock_transport_mode;
+
+/** Control for how the DBA handles received MPCP report frames. 
+ */
+typedef enum bcmolt_epon_dba_reporting_mode
+{
+    BCMOLT_EPON_DBA_REPORTING_MODE__BEGIN                       = 0,
+    BCMOLT_EPON_DBA_REPORTING_MODE_SIEPON_A                     = 0,    /**< Handle reports as specified by SIEPON package A. */
+    BCMOLT_EPON_DBA_REPORTING_MODE_SIEPON_B                     = 1,    /**< Handle reports as specified by SIEPON package B. */
+    BCMOLT_EPON_DBA_REPORTING_MODE_SIEPON_C                     = 2,    /**< Handle reports as specified by SIEPON package C */
+    BCMOLT_EPON_DBA_REPORTING_MODE__NUM_OF  /**< Number of enum entries, not an entry itself. */
+} bcmolt_epon_dba_reporting_mode;
+
+/** EPON link rate. 
+ */
+typedef enum bcmolt_epon_link_rate
+{
+    BCMOLT_EPON_LINK_RATE__BEGIN                                = 0,
+    BCMOLT_EPON_LINK_RATE_TEN_TEN                               = 0,    /**< Ten_Ten. */
+    BCMOLT_EPON_LINK_RATE_TEN_ONE                               = 1,    /**< Ten_One. */
+    BCMOLT_EPON_LINK_RATE_ONE_ONE                               = 2,    /**< One_One. */
+    BCMOLT_EPON_LINK_RATE__NUM_OF   /**< Number of enum entries, not an entry itself. */
+} bcmolt_epon_link_rate;
+
+/** Status. 
+ */
+typedef enum bcmolt_status
+{
+    BCMOLT_STATUS__BEGIN                                        = 0,
+    BCMOLT_STATUS_OFF                                           = 0,    /**< Status is off. */
+    BCMOLT_STATUS_ON                                            = 1,    /**< Status is on. */
+    BCMOLT_STATUS_NO_CHANGE                                     = 2,    /**< Status should not be changed (valid for SET API calls only). */
+    BCMOLT_STATUS__NUM_OF   /**< Number of enum entries, not an entry itself. */
+} bcmolt_status;
+
+/** EPON encryption mode. 
+ */
+typedef enum bcmolt_epon_encryption_mode
+{
+    BCMOLT_EPON_ENCRYPTION_MODE__BEGIN                          = 0,
+    BCMOLT_EPON_ENCRYPTION_MODE_NO_ENCRYPTION                   = 0,    /**< No encryption of any kind. */
+    BCMOLT_EPON_ENCRYPTION_MODE_EPON_TRIPLE_CHURNING            = 1,    /**< EPON triple-churning mode per CTC specification.  */
+    BCMOLT_EPON_ENCRYPTION_MODE_EPON_ZERO_OVERHEAD_AES          = 2,    /**< EPON zero-overhead AES mode. */
+    BCMOLT_EPON_ENCRYPTION_MODE__NUM_OF /**< Number of enum entries, not an entry itself. */
+} bcmolt_epon_encryption_mode;
+
+/** Epon Key Choice. 
+ */
+typedef enum bcmolt_epon_key_choice
+{
+    BCMOLT_EPON_KEY_CHOICE__BEGIN                               = 0,
+    BCMOLT_EPON_KEY_CHOICE_KEY_0                                = 0,    /**< Key 0. */
+    BCMOLT_EPON_KEY_CHOICE_KEY_1                                = 1,    /**< Key 1. */
+    BCMOLT_EPON_KEY_CHOICE__NUM_OF  /**< Number of enum entries, not an entry itself. */
+} bcmolt_epon_key_choice;
+
+/** EPON Encryption Direction. 
+ */
+typedef enum bcmolt_epon_encryption_direction
+{
+    BCMOLT_EPON_ENCRYPTION_DIRECTION__BEGIN                     = 0,
+    BCMOLT_EPON_ENCRYPTION_DIRECTION_DOWNSTREAM_ONLY            = 0,    /**< Encrypt downstream traffic only. */
+    BCMOLT_EPON_ENCRYPTION_DIRECTION__NUM_OF    /**< Number of enum entries, not an entry itself. */
+} bcmolt_epon_encryption_direction;
+
+/** EPON FEC enable state.  See flag descriptions for restrictions. 
+ */
+typedef enum bcmolt_epon_fec_en_state
+{
+    BCMOLT_EPON_FEC_EN_STATE__BEGIN                             = 0,
+    BCMOLT_EPON_FEC_EN_STATE_DISABLED                           = 0,    /**< FEC is disabled. */
+    BCMOLT_EPON_FEC_EN_STATE_ENABLED                            = 1,    /**< FEC is enabled.   Note: FEC can only be enabled and disabled PON-wide for 10G paths, but can be enabled and disabled with logical link granularity for 1G paths. */
+    BCMOLT_EPON_FEC_EN_STATE__NUM_OF    /**< Number of enum entries, not an entry itself. */
+} bcmolt_epon_fec_en_state;
+
+/** The types of OAM to choose from. 
+ */
+typedef enum bcmolt_epon_oam_type
+{
+    BCMOLT_EPON_OAM_TYPE__BEGIN                                 = 0,
+    BCMOLT_EPON_OAM_TYPE_BROADCOM                               = 0,    /**< Broadcom OAM (formerly TEK). */
+    BCMOLT_EPON_OAM_TYPE_CTC                                    = 1,    /**< CTC OAM. */
+    BCMOLT_EPON_OAM_TYPE_DPOE                                   = 2,    /**< DPoE OAM */
+    BCMOLT_EPON_OAM_TYPE_SIEPONA                                = 3,    /**< SiEPON OAM. (Mostly similar to DPoE). */
+    BCMOLT_EPON_OAM_TYPE__NUM_OF    /**< Number of enum entries, not an entry itself. */
+} bcmolt_epon_oam_type;
+
+/** epon link fec state. 
+ */
+typedef enum bcmolt_epon_link_fec_state
+{
+    BCMOLT_EPON_LINK_FEC_STATE__BEGIN                           = 0,
+    BCMOLT_EPON_LINK_FEC_STATE_DISABLED                         = 0,    /**< Disabled. */
+    BCMOLT_EPON_LINK_FEC_STATE_ENABLED                          = 1,    /**< Enabled. */
+    BCMOLT_EPON_LINK_FEC_STATE_USE_DEFAULT                      = 2,    /**< Use defaults. */
+    BCMOLT_EPON_LINK_FEC_STATE__NUM_OF  /**< Number of enum entries, not an entry itself. */
+} bcmolt_epon_link_fec_state;
+
+/** The current registration status of a link. 
+ */
+typedef enum bcmolt_epon_link_status
+{
+    BCMOLT_EPON_LINK_STATUS_NONE                                = 0,
+    BCMOLT_EPON_LINK_STATUS_DISCOVERED                          = 0x0001,   /**< Link has completed MPCP registration. */
+    BCMOLT_EPON_LINK_STATUS_REGISTRATION_PREVENTED              = 0x0008    /**< Link is being prevented from registering. */
+} bcmolt_epon_link_status;
+
+/** MPCP discovery info. 
+ */
+typedef enum bcmolt_mpcp_discovery_info
+{
+    BCMOLT_MPCP_DISCOVERY_INFO_NONE                             = 0,
+    BCMOLT_MPCP_DISCOVERY_INFO_ONE_G_CAPABLE                    = 0x0001,   /**< 1G Capable. */
+    BCMOLT_MPCP_DISCOVERY_INFO_TEN_G_CAPABLE                    = 0x0002,   /**< 10G Capable. */
+    BCMOLT_MPCP_DISCOVERY_INFO_ONE_G_WINDOW                     = 0x0010,   /**< 1G window. */
+    BCMOLT_MPCP_DISCOVERY_INFO_TEN_G_WINDOW                     = 0x0020    /**< 10G window. */
+} bcmolt_mpcp_discovery_info;
+
+/** EPON link state flags reflect the current status of the link.  
+ */
+typedef enum bcmolt_epon_link_state_flags
+{
+    BCMOLT_EPON_LINK_STATE_FLAGS_NONE                           = 0,
+    BCMOLT_EPON_LINK_STATE_FLAGS_MPCP_REGISTRATION_COMPLETE     = 0x0001    /**< Link has completed MPCP registration. */
+} bcmolt_epon_link_state_flags;
+
+/** EPON Link Type. 
+ */
+typedef enum bcmolt_epon_link_type
+{
+    BCMOLT_EPON_LINK_TYPE__BEGIN                                = 0,
+    BCMOLT_EPON_LINK_TYPE_SYSTEM                                = 0,        /**< A Link automatically created for system usage. */
+    BCMOLT_EPON_LINK_TYPE_DOWNSTREAM_ONLY                       = 1,        /**< A Link that does not consume upstream bandwidth. */
+    BCMOLT_EPON_LINK_TYPE_BIDIRECTIONAL                         = 2,        /**< A Link that undergoes the MPCP registration process. */
+    BCMOLT_EPON_LINK_TYPE__NUM_OF   /**< Number of enum entries, not an entry itself. */
+} bcmolt_epon_link_type;
+
+/** MPCP gate mode. 
+ */
+typedef enum bcmolt_mpcp_gate_mode
+{
+    BCMOLT_MPCP_GATE_MODE__BEGIN                                = 0,
+    BCMOLT_MPCP_GATE_MODE_TEKNOVUS                              = 0,    /**< Teknovus MPCP registration mode. */
+    BCMOLT_MPCP_GATE_MODE_CUSTOM                                = 1,    /**< Non-Teknovus MPCP registration mode. */
+    BCMOLT_MPCP_GATE_MODE__NUM_OF   /**< Number of enum entries, not an entry itself. */
+} bcmolt_mpcp_gate_mode;
+
+/** MPCP registration gate flags. 
+ */
+typedef enum bcmolt_mpcp_registration_gate_flags
+{
+    BCMOLT_MPCP_REGISTRATION_GATE_FLAGS_NONE                    = 0,
+    BCMOLT_MPCP_REGISTRATION_GATE_FLAGS_FORCE_REPORT            = 0x0001    /**< Force report bit. */
+} bcmolt_mpcp_registration_gate_flags;
+
+/** Enable state of the EPON NI.  Initially the only enable states defined are 
+ * `disabled' and `enabled', but this may later be extended to include 
+ * different degrees of enablement. 
+ */
+typedef enum bcmolt_epon_ni_en_state
+{
+    BCMOLT_EPON_NI_EN_STATE__BEGIN                              = 0,
+    BCMOLT_EPON_NI_EN_STATE_DISABLED                            = 0,        /**< EPON NI is fully disabled. */
+    BCMOLT_EPON_NI_EN_STATE_ENABLED                             = 1,        /**< EPON NI is fully enabled. */
+    BCMOLT_EPON_NI_EN_STATE_PROTECTED_WORKING                   = 2,        /**< EPON NI is fully enabled. redundant and activily carrying traffic. */
+    BCMOLT_EPON_NI_EN_STATE_PROTECTED_STANDBY                   = 3,        /**< EPON NI is fully enabled. redundant and protecting another PON. */
+    BCMOLT_EPON_NI_EN_STATE_PROCESSING                          = 4,        /**< EPON NI is currently transitioning between states */
+    BCMOLT_EPON_NI_EN_STATE__NUM_OF /**< Number of enum entries, not an entry itself. */
+} bcmolt_epon_ni_en_state;
+
+/** EPON OAM Extension Type. 
+ */
+typedef enum bcmolt_epon_oam_extension_type
+{
+    BCMOLT_EPON_OAM_EXTENSION_TYPE__BEGIN                       = 0,
+    BCMOLT_EPON_OAM_EXTENSION_TYPE_RESERVED                     = 0,    /**< Reserved */
+    BCMOLT_EPON_OAM_EXTENSION_TYPE_BROADCOM                     = 1,    /**< Broadcom */
+    BCMOLT_EPON_OAM_EXTENSION_TYPE_CTC                          = 2,    /**< China Telecom */
+    BCMOLT_EPON_OAM_EXTENSION_TYPE_DASAN                        = 3,    /**< Dasan Networks */
+    BCMOLT_EPON_OAM_EXTENSION_TYPE_KT                           = 4,    /**< Korea Telecom */
+    BCMOLT_EPON_OAM_EXTENSION_TYPE_DPOE                         = 5,    /**< DPoE */
+    BCMOLT_EPON_OAM_EXTENSION_TYPE__NUM_OF  /**< Number of enum entries, not an entry itself. */
+} bcmolt_epon_oam_extension_type;
+
+/** 1 to 11 matche the DPoE response code.  Refer to DPoE-SP-OAMv1.0-I08-140807, 
+ * Cl. 12.1.3. 21 to 28 are used for CTC. 
+ */
+typedef enum bcmolt_epon_onu_upgrade_onu_response_code
+{
+    BCMOLT_EPON_ONU_UPGRADE_ONU_RESPONSE_CODE_OK                    = 0,    /**< No errors. */
+    BCMOLT_EPON_ONU_UPGRADE_ONU_RESPONSE_CODE_UNDEFINED             = 1,    /**< Unknown error, or one not covered elsewhere. */
+    BCMOLT_EPON_ONU_UPGRADE_ONU_RESPONSE_CODE_NOT_FOUND             = 2,    /**< Read requested file that is not available. */
+    BCMOLT_EPON_ONU_UPGRADE_ONU_RESPONSE_CODE_NO_ACCESS             = 3,    /**< Access permissions do not allow the requested read/write. */
+    BCMOLT_EPON_ONU_UPGRADE_ONU_RESPONSE_CODE_FULL                  = 4,    /**< Storage is full, and cannot hold the written file. */
+    BCMOLT_EPON_ONU_UPGRADE_ONU_RESPONSE_CODE_ILLEGAL_OPERATION     = 5,    /**< Cannot perform requested operation in current state. */
+    BCMOLT_EPON_ONU_UPGRADE_ONU_RESPONSE_CODE_UNKNOWN_ID            = 6,    /**< Requested file ID is not supported by this device. */
+    BCMOLT_EPON_ONU_UPGRADE_ONU_RESPONSE_CODE_BAD_BLOCK             = 7,    /**< Block received in error. */
+    BCMOLT_EPON_ONU_UPGRADE_ONU_RESPONSE_CODE_TIMEOUT               = 8,    /**< No block received before timer expiration. */
+    BCMOLT_EPON_ONU_UPGRADE_ONU_RESPONSE_CODE_BUSY                  = 9,    /**< Cannot perform requested action due to other activity. */
+    BCMOLT_EPON_ONU_UPGRADE_ONU_RESPONSE_CODE_INCOMPATIBLE_FILE     = 10,   /**< Received file is incompatible with this device. File incompatibility is determined by the device vendor. */
+    BCMOLT_EPON_ONU_UPGRADE_ONU_RESPONSE_CODE_CORRUPTED_FILE        = 11,   /**< File was received corrupted and is unusable by this device. File integrity is determined by the device vendor. */
+    BCMOLT_EPON_ONU_UPGRADE_ONU_RESPONSE_CODE_ERROR_NOT_DEFINED     = 21,   /**< ONU returned ERROR PDU: Undefined error code. */
+    BCMOLT_EPON_ONU_UPGRADE_ONU_RESPONSE_CODE_ERROR_ALLOC_EXCEEDED  = 22,   /**< ONU returned ERROR PDU: Disk full or allocation exceeded. */
+    BCMOLT_EPON_ONU_UPGRADE_ONU_RESPONSE_CODE_ERROR_ILLEGAL_OP      = 23,   /**< ONU returned ERROR PDU: Illegal TFTP operation. */
+    BCMOLT_EPON_ONU_UPGRADE_ONU_RESPONSE_CODE_ERROR_FILE_EXISTS     = 24,   /**< ONU returned ERROR PDU: Mirror file already exists. */
+    BCMOLT_EPON_ONU_UPGRADE_ONU_RESPONSE_CODE_END_WRITING_NVS       = 25,   /**< ONU returned END RESPONSE PDU with error: Writing file to NVS */
+    BCMOLT_EPON_ONU_UPGRADE_ONU_RESPONSE_CODE_END_CRC_ERROR         = 26,   /**< ONU returned END RESPONSE PDU with error: CRC32 error */
+    BCMOLT_EPON_ONU_UPGRADE_ONU_RESPONSE_CODE_END_PARAM_ERROR       = 27,   /**< ONU returned END RESPONSE PDU with error: Parameter error */
+    BCMOLT_EPON_ONU_UPGRADE_ONU_RESPONSE_CODE_END_CMD_UNSUPPORTED   = 28,   /**< ONU returned END RESPONSE PDU with error: Command not supported */
+    BCMOLT_EPON_ONU_UPGRADE_ONU_RESPONSE_CODE_LAST                  = 29    /**< Last. */
+} bcmolt_epon_onu_upgrade_onu_response_code;
+
+/** EPON ONU Upgrade Return Code. 
+ */
+typedef enum bcmolt_epon_onu_upgrade_return_code
+{
+    BCMOLT_EPON_ONU_UPGRADE_RETURN_CODE__BEGIN                      = 0,
+    BCMOLT_EPON_ONU_UPGRADE_RETURN_CODE_SUCCESS                     = 0,    /**< Command succeeded. */
+    BCMOLT_EPON_ONU_UPGRADE_RETURN_CODE_ONU_RESPONSE_TIMEOUT        = 1,    /**< ONU did not respond to a message within the time specified by the "Write request timeout". */
+    BCMOLT_EPON_ONU_UPGRADE_RETURN_CODE_ONU_ERROR_RESPONSE          = 2,    /**< Error found in the ONU response. */
+    BCMOLT_EPON_ONU_UPGRADE_RETURN_CODE_SYNC_ERROR                  = 3,    /**< Block number sync error. */
+    BCMOLT_EPON_ONU_UPGRADE_RETURN_CODE_COMMIT_FAILED               = 4,    /**< Commit software command failed. */
+    BCMOLT_EPON_ONU_UPGRADE_RETURN_CODE_INTERNAL                    = 5,    /**< Internal error. */
+    BCMOLT_EPON_ONU_UPGRADE_RETURN_CODE_PARSE_ERROR                 = 6,    /**< Unable to parse the ONU response. */
+    BCMOLT_EPON_ONU_UPGRADE_RETURN_CODE__NUM_OF /**< Number of enum entries, not an entry itself. */
+} bcmolt_epon_onu_upgrade_return_code;
+
+/** Indicates whether links are unprotected, protected standby, or protected 
+ * working. 
+ */
+typedef enum bcmolt_epon_protection_state
+{
+    BCMOLT_EPON_PROTECTION_STATE__BEGIN                             = 0,
+    BCMOLT_EPON_PROTECTION_STATE_UNPROTECTED                        = 0,    /**< The link is not a member of a protection pair. */
+    BCMOLT_EPON_PROTECTION_STATE_PROTECTED_STANDBY                  = 1,    /**< The link is a member of a protection pair in the standby role. */
+    BCMOLT_EPON_PROTECTION_STATE_PROTECTED_WORKING                  = 2,    /**< The link is a member of a protection pair in the working role. */
+    BCMOLT_EPON_PROTECTION_STATE__NUM_OF    /**< Number of enum entries, not an entry itself. */
+} bcmolt_epon_protection_state;
+
+/** EPON Protection Switching Type. 
+ */
+typedef enum bcmolt_epon_protection_switching_type
+{
+    BCMOLT_EPON_PROTECTION_SWITCHING_TYPE__BEGIN                        = 0,
+    BCMOLT_EPON_PROTECTION_SWITCHING_TYPE_NO_PROTECTION_SWTICHING       = 0,    /**< No protection swtiching. */
+    BCMOLT_EPON_PROTECTION_SWITCHING_TYPE_LINE_CARD_PROTECTION_SWITCHING= 1,    /**< Line card protection switching. */
+    BCMOLT_EPON_PROTECTION_SWITCHING_TYPE__NUM_OF   /**< Number of enum entries, not an entry itself. */
+} bcmolt_epon_protection_switching_type;
+
+/** Protection Switching Detection Options. 
+ */
+typedef enum bcmolt_protection_switching_detection_options
+{
+    BCMOLT_PROTECTION_SWITCHING_DETECTION_OPTIONS_NONE                  = 0,
+    BCMOLT_PROTECTION_SWITCHING_DETECTION_OPTIONS_STANDBY_LOS_DETECTION = 0x0001            /**< Standby LOS detection. */
+} bcmolt_protection_switching_detection_options;
+
+/** Criteria for logical link selection during re-ranging process 
+ */
+typedef enum bcmolt_epon_protection_switching_reranging_options
+{
+    BCMOLT_EPON_PROTECTION_SWITCHING_RERANGING_OPTIONS_RERANGE_NONE                 = 1,    /**< No re-ranging at all */
+    BCMOLT_EPON_PROTECTION_SWITCHING_RERANGING_OPTIONS_RERANGE_SINGLE_LOGICAL_LINK  = 2,    /**< Pick minimum logical links to re-range */
+    BCMOLT_EPON_PROTECTION_SWITCHING_RERANGING_OPTIONS_RERANGE_ALL_LOGICAL_LINKS    = 4     /**< Individually re-range all logical links */
+} bcmolt_epon_protection_switching_reranging_options;
+
+/** GPIO pin number. 
+ */
+typedef enum bcmolt_gpio_pin
+{
+    BCMOLT_GPIO_PIN_PIN0                                                            = 0,    /**< GPIO pin 0. */
+    BCMOLT_GPIO_PIN_PIN1                                                            = 1,    /**< GPIO pin 1. */
+    BCMOLT_GPIO_PIN_PIN2                                                            = 2,    /**< GPIO pin 2. */
+    BCMOLT_GPIO_PIN_PIN3                                                            = 3,    /**< GPIO pin 3. */
+    BCMOLT_GPIO_PIN_PIN4                                                            = 4,    /**< GPIO pin 4. */
+    BCMOLT_GPIO_PIN_PIN5                                                            = 5,    /**< GPIO pin 5. */
+    BCMOLT_GPIO_PIN_PIN6                                                            = 6,    /**< GPIO pin 6. */
+    BCMOLT_GPIO_PIN_PIN7                                                            = 7,    /**< GPIO pin 7. */
+    BCMOLT_GPIO_PIN_PIN8                                                            = 8,    /**< GPIO pin 8. */
+    BCMOLT_GPIO_PIN_PIN9                                                            = 9,    /**< GPIO pin 9. */
+    BCMOLT_GPIO_PIN_PIN10                                                           = 10,   /**< GPIO pin 10. */
+    BCMOLT_GPIO_PIN_PIN11                                                           = 11,   /**< GPIO pin 11. */
+    BCMOLT_GPIO_PIN_PIN12                                                           = 12,   /**< GPIO pin 12. */
+    BCMOLT_GPIO_PIN_PIN13                                                           = 13,   /**< GPIO pin 13. */
+    BCMOLT_GPIO_PIN_PIN14                                                           = 14,   /**< GPIO pin 14. */
+    BCMOLT_GPIO_PIN_PIN15                                                           = 15,   /**< GPIO pin 15. */
+    BCMOLT_GPIO_PIN_PIN16                                                           = 16,   /**< GPIO pin 16. */
+    BCMOLT_GPIO_PIN_PIN17                                                           = 17,   /**< GPIO pin 17. */
+    BCMOLT_GPIO_PIN_PIN18                                                           = 18,   /**< GPIO pin 18. */
+    BCMOLT_GPIO_PIN_PIN19                                                           = 19,   /**< GPIO pin 19. */
+    BCMOLT_GPIO_PIN_PIN20                                                           = 20,   /**< GPIO pin 20. */
+    BCMOLT_GPIO_PIN_PIN21                                                           = 21,   /**< GPIO pin 21. */
+    BCMOLT_GPIO_PIN_PIN22                                                           = 22,   /**< GPIO pin 22. */
+    BCMOLT_GPIO_PIN_PIN23                                                           = 23,   /**< GPIO pin 23. */
+    BCMOLT_GPIO_PIN_PIN24                                                           = 24,   /**< GPIO pin 24. */
+    BCMOLT_GPIO_PIN_PIN25                                                           = 25,   /**< GPIO pin 25. */
+    BCMOLT_GPIO_PIN_PIN26                                                           = 26,   /**< GPIO pin 26. */
+    BCMOLT_GPIO_PIN_PIN27                                                           = 27,   /**< GPIO pin 27. */
+    BCMOLT_GPIO_PIN_PIN28                                                           = 28,   /**< GPIO pin 28. */
+    BCMOLT_GPIO_PIN_PIN29                                                           = 29,   /**< GPIO pin 29. */
+    BCMOLT_GPIO_PIN_PIN30                                                           = 30,   /**< GPIO pin 30. */
+    BCMOLT_GPIO_PIN_PIN31                                                           = 31,   /**< GPIO pin 31. */
+    BCMOLT_GPIO_PIN_PIN32                                                           = 32,   /**< GPIO pin 32. */
+    BCMOLT_GPIO_PIN_PIN33                                                           = 33,   /**< GPIO pin 33. */
+    BCMOLT_GPIO_PIN_PIN34                                                           = 34,   /**< GPIO pin 34. */
+    BCMOLT_GPIO_PIN_PIN35                                                           = 35,   /**< GPIO pin 35. */
+    BCMOLT_GPIO_PIN_PIN36                                                           = 36,   /**< GPIO pin 36. */
+    BCMOLT_GPIO_PIN_PIN37                                                           = 37,   /**< GPIO pin 37. */
+    BCMOLT_GPIO_PIN_PIN38                                                           = 38,   /**< GPIO pin 38. */
+    BCMOLT_GPIO_PIN_PIN39                                                           = 39,   /**< GPIO pin 39. */
+    BCMOLT_GPIO_PIN_PIN40                                                           = 40,   /**< GPIO pin 40. */
+    BCMOLT_GPIO_PIN_PIN41                                                           = 41,   /**< GPIO pin 41. */
+    BCMOLT_GPIO_PIN_PIN42                                                           = 42,   /**< GPIO pin 42. */
+    BCMOLT_GPIO_PIN_PIN43                                                           = 43,   /**< GPIO pin 43. */
+    BCMOLT_GPIO_PIN_PIN44                                                           = 44,   /**< GPIO pin 44. */
+    BCMOLT_GPIO_PIN_PIN45                                                           = 45,   /**< GPIO pin 45. */
+    BCMOLT_GPIO_PIN_PIN46                                                           = 46,   /**< GPIO pin 46. */
+    BCMOLT_GPIO_PIN_PIN47                                                           = 47,   /**< GPIO pin 47. */
+    BCMOLT_GPIO_PIN_PIN48                                                           = 48,   /**< GPIO pin 48. */
+    BCMOLT_GPIO_PIN_PIN49                                                           = 49,   /**< GPIO pin 49. */
+    BCMOLT_GPIO_PIN_PIN50                                                           = 50,   /**< GPIO pin 50. */
+    BCMOLT_GPIO_PIN_PIN51                                                           = 51,   /**< GPIO pin 51. */
+    BCMOLT_GPIO_PIN_PIN52                                                           = 52,   /**< GPIO pin 52. */
+    BCMOLT_GPIO_PIN_PIN53                                                           = 53,   /**< GPIO pin 53. */
+    BCMOLT_GPIO_PIN_PIN54                                                           = 54,   /**< GPIO pin 54. */
+    BCMOLT_GPIO_PIN_PIN55                                                           = 55,   /**< GPIO pin 55. */
+    BCMOLT_GPIO_PIN_PIN56                                                           = 56,   /**< GPIO pin 56. */
+    BCMOLT_GPIO_PIN_PIN57                                                           = 57,   /**< GPIO pin 57. */
+    BCMOLT_GPIO_PIN_PIN58                                                           = 58,   /**< GPIO pin 58. */
+    BCMOLT_GPIO_PIN_PIN59                                                           = 59,   /**< GPIO pin 59. */
+    BCMOLT_GPIO_PIN_PIN60                                                           = 60,   /**< GPIO pin 60. */
+    BCMOLT_GPIO_PIN_PIN61                                                           = 61,   /**< GPIO pin 61. */
+    BCMOLT_GPIO_PIN_PIN62                                                           = 62,   /**< GPIO pin 62. */
+    BCMOLT_GPIO_PIN_PIN63                                                           = 63,   /**< GPIO pin 63. */
+    BCMOLT_GPIO_PIN_PIN64                                                           = 64,   /**< GPIO pin 64. */
+    BCMOLT_GPIO_PIN_PIN65                                                           = 65,   /**< GPIO pin 65. */
+    BCMOLT_GPIO_PIN_PIN66                                                           = 66,   /**< GPIO pin 66. */
+    BCMOLT_GPIO_PIN_PIN67                                                           = 67,   /**< GPIO pin 67. */
+    BCMOLT_GPIO_PIN_PIN68                                                           = 68,   /**< GPIO pin 68. */
+    BCMOLT_GPIO_PIN_PIN69                                                           = 69,   /**< GPIO pin 69. */
+    BCMOLT_GPIO_PIN_PIN70                                                           = 70,   /**< GPIO pin 70. */
+    BCMOLT_GPIO_PIN_PIN71                                                           = 71,   /**< GPIO pin 71. */
+    BCMOLT_GPIO_PIN_PIN72                                                           = 72,   /**< GPIO pin 72. */
+    BCMOLT_GPIO_PIN_PIN73                                                           = 73,   /**< GPIO pin 73. */
+    BCMOLT_GPIO_PIN_PIN74                                                           = 74,   /**< GPIO pin 74. */
+    BCMOLT_GPIO_PIN_PIN75                                                           = 75,   /**< GPIO pin 75. */
+    BCMOLT_GPIO_PIN_PIN76                                                           = 76,   /**< GPIO pin 76. */
+    BCMOLT_GPIO_PIN_PIN77                                                           = 77,   /**< GPIO pin 77. */
+    BCMOLT_GPIO_PIN_PIN78                                                           = 78,   /**< GPIO pin 78. */
+    BCMOLT_GPIO_PIN_PIN79                                                           = 79,   /**< GPIO pin 79. */
+    BCMOLT_GPIO_PIN_PIN80                                                           = 80,   /**< GPIO pin 80. */
+    BCMOLT_GPIO_PIN_PIN81                                                           = 81,   /**< GPIO pin 81. */
+    BCMOLT_GPIO_PIN_PIN82                                                           = 82,   /**< GPIO pin 82. */
+    BCMOLT_GPIO_PIN_PIN83                                                           = 83,   /**< GPIO pin 83. */
+    BCMOLT_GPIO_PIN_PIN84                                                           = 84,   /**< GPIO pin 84. */
+    BCMOLT_GPIO_PIN_PIN85                                                           = 85,   /**< GPIO pin 85. */
+    BCMOLT_GPIO_PIN_PIN86                                                           = 86,   /**< GPIO pin 86. */
+    BCMOLT_GPIO_PIN_PIN87                                                           = 87,   /**< GPIO pin 87. */
+    BCMOLT_GPIO_PIN_PIN88                                                           = 88,   /**< GPIO pin 88. */
+    BCMOLT_GPIO_PIN_PIN89                                                           = 89,   /**< GPIO pin 89. */
+    BCMOLT_GPIO_PIN_PIN90                                                           = 90,   /**< GPIO pin 90. */
+    BCMOLT_GPIO_PIN_PIN91                                                           = 91,   /**< GPIO pin 91. */
+    BCMOLT_GPIO_PIN_PIN92                                                           = 92,   /**< GPIO pin 92. */
+    BCMOLT_GPIO_PIN_PIN93                                                           = 93,   /**< GPIO pin 93. */
+    BCMOLT_GPIO_PIN_PIN94                                                           = 94,   /**< GPIO pin 94. */
+    BCMOLT_GPIO_PIN_PIN95                                                           = 95,   /**< GPIO pin 95. */
+    BCMOLT_GPIO_PIN_PIN96                                                           = 96,   /**< GPIO pin 96. */
+    BCMOLT_GPIO_PIN_PIN97                                                           = 97,   /**< GPIO pin 97. */
+    BCMOLT_GPIO_PIN_PIN98                                                           = 98,   /**< GPIO pin 98. */
+    BCMOLT_GPIO_PIN_PIN99                                                           = 99,   /**< GPIO pin 99. */
+    BCMOLT_GPIO_PIN_PIN100                                                          = 100,  /**< GPIO pin 100. */
+    BCMOLT_GPIO_PIN_PIN101                                                          = 101,  /**< GPIO pin 101. */
+    BCMOLT_GPIO_PIN_PIN102                                                          = 102,  /**< GPIO pin 102. */
+    BCMOLT_GPIO_PIN_PIN103                                                          = 103,  /**< GPIO pin 103. */
+    BCMOLT_GPIO_PIN_PIN104                                                          = 104,  /**< GPIO pin 104. */
+    BCMOLT_GPIO_PIN_PIN105                                                          = 105,  /**< GPIO pin 105. */
+    BCMOLT_GPIO_PIN_PIN106                                                          = 106,  /**< GPIO pin 106. */
+    BCMOLT_GPIO_PIN_UNCONFIGURED                                                    = 255   /**< Unconfigured GPIO pin. */
+} bcmolt_gpio_pin;
+
+/** GPIO Polarity. 
+ */
+typedef enum bcmolt_gpio_polarity
+{
+    BCMOLT_GPIO_POLARITY__BEGIN                                                     = 0,
+    BCMOLT_GPIO_POLARITY_ACTIVE_LOW                                                 = 0,    /**< Active Low. */
+    BCMOLT_GPIO_POLARITY_ACTIVE_HIGH                                                = 1,    /**< Active High. */
+    BCMOLT_GPIO_POLARITY__NUM_OF    /**< Number of enum entries, not an entry itself. */
+} bcmolt_gpio_polarity;
+
+/** External IRQ. 
+ */
+typedef enum bcmolt_ext_irq
+{
+    BCMOLT_EXT_IRQ_EXT_IRQ0                                                         = 0,    /**< External IRQ 0. */
+    BCMOLT_EXT_IRQ_EXT_IRQ1                                                         = 1,    /**< External IRQ 1. */
+    BCMOLT_EXT_IRQ_EXT_IRQ2                                                         = 2,    /**< External IRQ 2. */
+    BCMOLT_EXT_IRQ_EXT_IRQ3                                                         = 3,    /**< External IRQ 3. */
+    BCMOLT_EXT_IRQ_EXT_IRQ4                                                         = 4,    /**< External IRQ 4. */
+    BCMOLT_EXT_IRQ_EXT_IRQ5                                                         = 5,    /**< External IRQ 5. */
+    BCMOLT_EXT_IRQ_UNCONFIGURED                                                     = 255   /**< Unconfigured external IRQ. */
+} bcmolt_ext_irq;
+
+/** Flush MAC table option. 
+ */
+typedef enum bcmolt_flush_mac_table_option
+{
+    BCMOLT_FLUSH_MAC_TABLE_OPTION__BEGIN                                            = 0,
+    BCMOLT_FLUSH_MAC_TABLE_OPTION_ALL                                               = 0,    /**< All. */
+    BCMOLT_FLUSH_MAC_TABLE_OPTION_PER_VID                                           = 1,    /**< PER VID. */
+    BCMOLT_FLUSH_MAC_TABLE_OPTION_PER_FLOW                                          = 2,    /**< PER flow. */
+    BCMOLT_FLUSH_MAC_TABLE_OPTION_VID_PLUS_FLOW                                     = 3,    /**< VID+flow. */
+    BCMOLT_FLUSH_MAC_TABLE_OPTION__NUM_OF   /**< Number of enum entries, not an entry itself. */
+} bcmolt_flush_mac_table_option;
+
+/** Frequency adjustment direction 
+ */
+typedef enum bcmolt_frequency_adjustment_direction
+{
+    BCMOLT_FREQUENCY_ADJUSTMENT_DIRECTION__BEGIN                                    = 0,
+    BCMOLT_FREQUENCY_ADJUSTMENT_DIRECTION_LOWER                                     = 0,    /**< Lower */
+    BCMOLT_FREQUENCY_ADJUSTMENT_DIRECTION_HIGHER                                    = 1,    /**< Higher */
+    BCMOLT_FREQUENCY_ADJUSTMENT_DIRECTION__NUM_OF   /**< Number of enum entries, not an entry itself. */
+} bcmolt_frequency_adjustment_direction;
+
+/** GEM port ID direction. 
+ */
+typedef enum bcmolt_gem_port_direction
+{
+    BCMOLT_GEM_PORT_DIRECTION__BEGIN                                                = 0,
+    BCMOLT_GEM_PORT_DIRECTION_DOWNSTREAM                                            = 0,    /**< downstream port ID. */
+    BCMOLT_GEM_PORT_DIRECTION_UPSTREAM                                              = 1,    /**< upstream port ID. */
+    BCMOLT_GEM_PORT_DIRECTION_BIDIRECTIONAL                                         = 2,    /**< bidirectional port  ID. */
+    BCMOLT_GEM_PORT_DIRECTION__NUM_OF   /**< Number of enum entries, not an entry itself. */
+} bcmolt_gem_port_direction;
+
+/** GEM port type. 
+ */
+typedef enum bcmolt_gem_port_type
+{
+    BCMOLT_GEM_PORT_TYPE__BEGIN                                                     = 0,
+    BCMOLT_GEM_PORT_TYPE_UNICAST                                                    = 0,    /**< unicast port ID. */
+    BCMOLT_GEM_PORT_TYPE_MULTICAST                                                  = 1,    /**< multicast port ID. */
+    BCMOLT_GEM_PORT_TYPE__NUM_OF    /**< Number of enum entries, not an entry itself. */
+} bcmolt_gem_port_type;
+
+/** GEM port operation. 
+ */
+typedef enum bcmolt_gem_port_operation
+{
+    BCMOLT_GEM_PORT_OPERATION__BEGIN                                                = 0,
+    BCMOLT_GEM_PORT_OPERATION_ACTIVATE                                              = 0,    /**< Activate. */
+    BCMOLT_GEM_PORT_OPERATION_DEACTIVATE                                            = 1,    /**< Deactivate. */
+    BCMOLT_GEM_PORT_OPERATION__NUM_OF   /**< Number of enum entries, not an entry itself. */
+} bcmolt_gem_port_operation;
+
+/** GPIO PIN Direction. 
+ */
+typedef enum bcmolt_gpio_pin_dir
+{
+    BCMOLT_GPIO_PIN_DIR__BEGIN                                                      = 0,
+    BCMOLT_GPIO_PIN_DIR_INPUT                                                       = 0,    /**< Input. */
+    BCMOLT_GPIO_PIN_DIR_OUTPUT                                                      = 1,    /**< Output. */
+    BCMOLT_GPIO_PIN_DIR__NUM_OF /**< Number of enum entries, not an entry itself. */
+} bcmolt_gpio_pin_dir;
+
+/** GPIO Value. 
+ */
+typedef enum bcmolt_gpio_value
+{
+    BCMOLT_GPIO_VALUE__BEGIN                                                        = 0,
+    BCMOLT_GPIO_VALUE_CLEAR                                                         = 0,    /**< Clear. */
+    BCMOLT_GPIO_VALUE_SET                                                           = 1,    /**< Set. */
+    BCMOLT_GPIO_VALUE__NUM_OF   /**< Number of enum entries, not an entry itself. */
+} bcmolt_gpio_value;
+
+/** GPON GEM Port State. 
+ */
+typedef enum bcmolt_gpon_gem_port_state
+{
+    BCMOLT_GPON_GEM_PORT_STATE__BEGIN                                               = 0,
+    BCMOLT_GPON_GEM_PORT_STATE_NOT_CONFIGURED                                       = 0,    /**< not configured. */
+    BCMOLT_GPON_GEM_PORT_STATE_INACTIVE                                             = 1,    /**< inactive. */
+    BCMOLT_GPON_GEM_PORT_STATE_PROCESSING                                           = 2,    /**< processing. */
+    BCMOLT_GPON_GEM_PORT_STATE_ACTIVE                                               = 3,    /**< active. */
+    BCMOLT_GPON_GEM_PORT_STATE__NUM_OF  /**< Number of enum entries, not an entry itself. */
+} bcmolt_gpon_gem_port_state;
+
+/** Key exchange mode. 
+ */
+typedef enum bcmolt_key_exchange_mode
+{
+    BCMOLT_KEY_EXCHANGE_MODE__BEGIN                                                 = 0,
+    BCMOLT_KEY_EXCHANGE_MODE_NORMAL                                                 = 0,    /**< Normal. */
+    BCMOLT_KEY_EXCHANGE_MODE_ENHANCED                                               = 1,    /**< Enhanced. */
+    BCMOLT_KEY_EXCHANGE_MODE__NUM_OF    /**< Number of enum entries, not an entry itself. */
+} bcmolt_key_exchange_mode;
+
+/** OMCI Device ID. 
+ */
+typedef enum bcmolt_omci_device_id
+{
+    BCMOLT_OMCI_DEVICE_ID_BASELINE                                                  = 10,   /**< Baseline. */
+    BCMOLT_OMCI_DEVICE_ID_EXTENDED                                                  = 11    /**< Extended. */
+} bcmolt_omci_device_id;
+
+/** GPON ONU Upgrade Return Code. 
+ */
+typedef enum bcmolt_gpon_onu_upgrade_return_code
+{
+    BCMOLT_GPON_ONU_UPGRADE_RETURN_CODE__BEGIN                                      = 0,
+    BCMOLT_GPON_ONU_UPGRADE_RETURN_CODE_SUCCESS                                     = 0,    /**< Command succeeded. */
+    BCMOLT_GPON_ONU_UPGRADE_RETURN_CODE_ONU_RESPONSE_TIMEOUT                        = 1,    /**< ONU did not respond to a message within the time specified by the "Write request timeout". */
+    BCMOLT_GPON_ONU_UPGRADE_RETURN_CODE_ONU_ERROR_RESPONSE                          = 2,    /**< Error found in the ONU response. */
+    BCMOLT_GPON_ONU_UPGRADE_RETURN_CODE_TCI_MISMATCH                                = 3,    /**< Transaction ID mismatch. */
+    BCMOLT_GPON_ONU_UPGRADE_RETURN_CODE_GET_IMAGE_FAILED                            = 4,    /**< Get Image Info command failed. */
+    BCMOLT_GPON_ONU_UPGRADE_RETURN_CODE_ACTIVATION_FAILED                           = 5,    /**< Activation software command failed. */
+    BCMOLT_GPON_ONU_UPGRADE_RETURN_CODE_INTERNAL                                    = 6,    /**< Internal error. */
+    BCMOLT_GPON_ONU_UPGRADE_RETURN_CODE__NUM_OF /**< Number of enum entries, not an entry itself. */
+} bcmolt_gpon_onu_upgrade_return_code;
+
+/** G.988 OMCI Result Code. 
+ */
+typedef enum bcmolt_omci_result_code
+{
+    BCMOLT_OMCI_RESULT_CODE__BEGIN                                                  = 0,
+    BCMOLT_OMCI_RESULT_CODE_NO_ERROR                                                = 0,    /**< Command processed successfully. */
+    BCMOLT_OMCI_RESULT_CODE_PROCESSING_ERROR                                        = 1,    /**< Command processing error. */
+    BCMOLT_OMCI_RESULT_CODE_NOT_SUPPORTED                                           = 2,    /**< Command not supported, or not applicable for End software download message. */
+    BCMOLT_OMCI_RESULT_CODE_PARAMETER_ERROR                                         = 3,    /**< Parameter error, or not applicable for End software download message. */
+    BCMOLT_OMCI_RESULT_CODE_UNKNOWN_ENTITY                                          = 4,    /**< Unknown managed entity. */
+    BCMOLT_OMCI_RESULT_CODE_UNKNOWN_INSTANCE                                        = 5,    /**< Unknown managed entity instance. */
+    BCMOLT_OMCI_RESULT_CODE_DEVICE_BUSY                                             = 6,    /**< Device busy. */
+    BCMOLT_OMCI_RESULT_CODE__NUM_OF /**< Number of enum entries, not an entry itself. */
+} bcmolt_omci_result_code;
+
+/** ONU state. 
+ */
+typedef enum bcmolt_onu_state
+{
+    BCMOLT_ONU_STATE_NOT_CONFIGURED                                                 = 0,    /**< not_configured. */
+    BCMOLT_ONU_STATE_INACTIVE                                                       = 1,    /**< inactive. */
+    BCMOLT_ONU_STATE_ACTIVE                                                         = 2,    /**< active. */
+    BCMOLT_ONU_STATE_ACTIVE_STANDBY                                                 = 3,    /**< active standby. */
+    BCMOLT_ONU_STATE_DISABLED                                                       = 4,    /**< disabled. */
+    BCMOLT_ONU_STATE_AWAKE_FREE                                                     = 5,    /**< ONU is active, but power management is enabled. ONU is allowed to enter low power states at its own discretion. */
+    BCMOLT_ONU_STATE_PROCESSING                                                     = 7,    /**< processing. */
+    BCMOLT_ONU_STATE_LOW_POWER_DOZE                                                 = 8,    /**< ONU has entered the Doze low power state. */
+    BCMOLT_ONU_STATE_LOW_POWER_SLEEP                                                = 9,    /**< ONU has entered the Sleep low power state. */
+    BCMOLT_ONU_STATE_LOW_POWER_WATCH                                                = 10,   /**< ONU has entered the Watchful Sleep low power state. */
+    BCMOLT_ONU_STATE_UNAWARE                                                        = 11    /**< ONU is added to data base but no bws is saved  */
+} bcmolt_onu_state;
+
+/** rssi location sign. 
+ */
+typedef enum bcmolt_rssi_location_sign
+{
+    BCMOLT_RSSI_LOCATION_SIGN__BEGIN                                                = 0,
+    BCMOLT_RSSI_LOCATION_SIGN_BEFORE                                                = 0,    /**< before. */
+    BCMOLT_RSSI_LOCATION_SIGN_AFTER                                                 = 1,    /**< after. */
+    BCMOLT_RSSI_LOCATION_SIGN__NUM_OF   /**< Number of enum entries, not an entry itself. */
+} bcmolt_rssi_location_sign;
+
+/** ONU post discovery mode. 
+ */
+typedef enum bcmolt_onu_post_discovery_mode
+{
+    BCMOLT_ONU_POST_DISCOVERY_MODE__BEGIN                                           = 0,
+    BCMOLT_ONU_POST_DISCOVERY_MODE_NONE                                             = 0,    /**< none. */
+    BCMOLT_ONU_POST_DISCOVERY_MODE_ACTIVATE                                         = 1,    /**< activate. */
+    BCMOLT_ONU_POST_DISCOVERY_MODE_DISABLE                                          = 2,    /**< disable. */
+    BCMOLT_ONU_POST_DISCOVERY_MODE__NUM_OF  /**< Number of enum entries, not an entry itself. */
+} bcmolt_onu_post_discovery_mode;
+
+/** Image transfer status. 
+ */
+typedef enum bcmolt_image_transfer_status
+{
+    BCMOLT_IMAGE_TRANSFER_STATUS__BEGIN                                             = 0,
+    BCMOLT_IMAGE_TRANSFER_STATUS_SUCCESS                                            = 0,    /**< Success. */
+    BCMOLT_IMAGE_TRANSFER_STATUS_MEMORY_ALLOCATION_FAILURE                          = 1,    /**< Memory allocation failure. */
+    BCMOLT_IMAGE_TRANSFER_STATUS_UNSUPPORTED_FILE_TYPE                              = 2,    /**< Unsupported file type. */
+    BCMOLT_IMAGE_TRANSFER_STATUS_CRC_ERROR                                          = 3,    /**< CRC checksum error. */
+    BCMOLT_IMAGE_TRANSFER_STATUS_BLOCK_OUT_OF_SYNC                                  = 4,    /**< Block out of sync. */
+    BCMOLT_IMAGE_TRANSFER_STATUS_INTERNAL_ERROR                                     = 5,    /**< Internal error. */
+    BCMOLT_IMAGE_TRANSFER_STATUS_INVALID_STATE                                      = 6,    /**< Invalid state. */
+    BCMOLT_IMAGE_TRANSFER_STATUS_PREMATURE_TERMINATION                              = 7,    /**< Premature termination. */
+    BCMOLT_IMAGE_TRANSFER_STATUS_ACK_TIMEOUT                                        = 8,    /**< ACK timeout. */
+    BCMOLT_IMAGE_TRANSFER_STATUS__NUM_OF    /**< Number of enum entries, not an entry itself. */
+} bcmolt_image_transfer_status;
+
+/** iwf mode. 
+ */
+typedef enum bcmolt_iwf_mode
+{
+    BCMOLT_IWF_MODE__BEGIN                                                          = 0,
+    BCMOLT_IWF_MODE_DIRECT_MAPPING_MODE                                             = 0,    /**< DIRECT MAPPING MODE. */
+    BCMOLT_IWF_MODE_PER_FLOW_MODE                                                   = 1,    /**< PER FLOW MODE. */
+    BCMOLT_IWF_MODE__NUM_OF /**< Number of enum entries, not an entry itself. */
+} bcmolt_iwf_mode;
+
+/** log file id. 
+ */
+typedef enum bcmolt_log_file_id
+{
+    BCMOLT_LOG_FILE_ID__BEGIN                                                       = 0,
+    BCMOLT_LOG_FILE_ID_SRAM                                                         = 0,    /**< SRAM. */
+    BCMOLT_LOG_FILE_ID_DDR                                                          = 1,    /**< DDR. */
+    BCMOLT_LOG_FILE_ID__NUM_OF  /**< Number of enum entries, not an entry itself. */
+} bcmolt_log_file_id;
+
+/** log level. 
+ */
+typedef enum bcmolt_log_level
+{
+    BCMOLT_LOG_LEVEL__BEGIN                                                         = 0,
+    BCMOLT_LOG_LEVEL_NO_LOG                                                         = 0,    /**< no log. */
+    BCMOLT_LOG_LEVEL_FATAL                                                          = 1,    /**< fatal. */
+    BCMOLT_LOG_LEVEL_ERROR                                                          = 2,    /**< error. */
+    BCMOLT_LOG_LEVEL_WARNING                                                        = 3,    /**< warning. */
+    BCMOLT_LOG_LEVEL_INFO                                                           = 4,    /**< info. */
+    BCMOLT_LOG_LEVEL_DEBUG                                                          = 5,    /**< debug. */
+    BCMOLT_LOG_LEVEL__NUM_OF    /**< Number of enum entries, not an entry itself. */
+} bcmolt_log_level;
+
+/** log style. 
+ */
+typedef enum bcmolt_log_style
+{
+    BCMOLT_LOG_STYLE__BEGIN                                                         = 0,
+    BCMOLT_LOG_STYLE_NORMAL                                                         = 0,    /**< normal. */
+    BCMOLT_LOG_STYLE_BOLD                                                           = 1,    /**< bold. */
+    BCMOLT_LOG_STYLE_UNDERLINE                                                      = 2,    /**< underline. */
+    BCMOLT_LOG_STYLE_BLINK                                                          = 3,    /**< blink. */
+    BCMOLT_LOG_STYLE_REVERSE_VIDEO                                                  = 4,    /**< reverse video. */
+    BCMOLT_LOG_STYLE__NUM_OF    /**< Number of enum entries, not an entry itself. */
+} bcmolt_log_style;
+
+/** log type. 
+ */
+typedef enum bcmolt_log_type
+{
+    BCMOLT_LOG_TYPE__BEGIN                                                          = 0,
+    BCMOLT_LOG_TYPE_NONE                                                            = 0,    /**< dont show log  */
+    BCMOLT_LOG_TYPE_PRINT                                                           = 1,    /**< print. */
+    BCMOLT_LOG_TYPE_SAVE                                                            = 2,    /**< save. */
+    BCMOLT_LOG_TYPE_BOTH                                                            = 3,    /**< both. */
+    BCMOLT_LOG_TYPE__NUM_OF /**< Number of enum entries, not an entry itself. */
+} bcmolt_log_type;
+
+/** MAC table miss fallback. 
+ */
+typedef enum bcmolt_mac_table_miss_fallback
+{
+    BCMOLT_MAC_TABLE_MISS_FALLBACK__BEGIN                                           = 0,
+    BCMOLT_MAC_TABLE_MISS_FALLBACK_DROP                                             = 0,    /**< The packet is dropped. */
+    BCMOLT_MAC_TABLE_MISS_FALLBACK_DEFAULT_FLOW                                     = 1,    /**< The packet is forwarded with the provisioned default flow ID. */
+    BCMOLT_MAC_TABLE_MISS_FALLBACK_VID                                              = 2,    /**< The packet is forwarded with a flow ID equal to its VID. */
+    BCMOLT_MAC_TABLE_MISS_FALLBACK__NUM_OF  /**< Number of enum entries, not an entry itself. */
+} bcmolt_mac_table_miss_fallback;
+
+/** MAC table Learning mode. 
+ */
+typedef enum bcmolt_mac_table_learning_mode
+{
+    BCMOLT_MAC_TABLE_LEARNING_MODE__BEGIN                                           = 0,
+    BCMOLT_MAC_TABLE_LEARNING_MODE_NORMAL                                           = 0,    /**< Normal mode: upstream traffic that matches on MAC/VID but doesn't match on flow ID is still allowed to pass. */
+    BCMOLT_MAC_TABLE_LEARNING_MODE_MOVE                                             = 1,    /**< Normal mode: upstream traffic that matches on MAC/VID but doesn't match on flow ID is considered to be a MAC move condition. */
+    BCMOLT_MAC_TABLE_LEARNING_MODE__NUM_OF  /**< Number of enum entries, not an entry itself. */
+} bcmolt_mac_table_learning_mode;
+
+/** Mapping tag method. 
+ */
+typedef enum bcmolt_mapping_tag_method
+{
+    BCMOLT_MAPPING_TAG_METHOD_OUTER_VID                                             = 1,    /**< Outer VID. */
+    BCMOLT_MAPPING_TAG_METHOD_INNER_VID                                             = 0     /**< Inner VID. */
+} bcmolt_mapping_tag_method;
+
+/** NNI Connection. 
+ */
+typedef enum bcmolt_nni_connection
+{
+    BCMOLT_NNI_CONNECTION__BEGIN                                                    = 0,
+    BCMOLT_NNI_CONNECTION_PRIMARY                                                   = 0,    /**< Primary. */
+    BCMOLT_NNI_CONNECTION_BACKUP                                                    = 1,    /**< Backup. */
+    BCMOLT_NNI_CONNECTION__NUM_OF   /**< Number of enum entries, not an entry itself. */
+} bcmolt_nni_connection;
+
+/** Trivalent. 
+ */
+typedef enum bcmolt_trivalent
+{
+    BCMOLT_TRIVALENT__BEGIN                                                         = 0,
+    BCMOLT_TRIVALENT_FALSE                                                          = 0,    /**< False. */
+    BCMOLT_TRIVALENT_TRUE                                                           = 1,    /**< True. */
+    BCMOLT_TRIVALENT_NOT_APPLICABLE                                                 = 2,    /**< Not Applicable. */
+    BCMOLT_TRIVALENT__NUM_OF    /**< Number of enum entries, not an entry itself. */
+} bcmolt_trivalent;
+
+/** ODN Class. 
+ */
+typedef enum bcmolt_odn_class
+{
+    BCMOLT_ODN_CLASS_N1                                                             = 0,    /**< N1. */
+    BCMOLT_ODN_CLASS_N2                                                             = 1,    /**< N2. */
+    BCMOLT_ODN_CLASS_E1                                                             = 3,    /**< E1. */
+    BCMOLT_ODN_CLASS_E2                                                             = 4     /**< E2. */
+} bcmolt_odn_class;
+
+/** OMCI Port ID operation. 
+ */
+typedef enum bcmolt_omci_port_id_operation
+{
+    BCMOLT_OMCI_PORT_ID_OPERATION__BEGIN                                            = 0,
+    BCMOLT_OMCI_PORT_ID_OPERATION_CONFIGURE                                         = 0,    /**< configure. */
+    BCMOLT_OMCI_PORT_ID_OPERATION_REMOVE                                            = 1,    /**< remove. */
+    BCMOLT_OMCI_PORT_ID_OPERATION__NUM_OF   /**< Number of enum entries, not an entry itself. */
+} bcmolt_omci_port_id_operation;
+
+/** ONU operation. 
+ */
+typedef enum bcmolt_onu_operation
+{
+    BCMOLT_ONU_OPERATION__BEGIN                                                     = 0,
+    BCMOLT_ONU_OPERATION_INACTIVE                                                   = 0,    /**< Inactive. */
+    BCMOLT_ONU_OPERATION_ACTIVE                                                     = 1,    /**< Active. */
+    BCMOLT_ONU_OPERATION_DISABLE                                                    = 2,    /**< Disable. */
+    BCMOLT_ONU_OPERATION_ENABLE                                                     = 3,    /**< Enable. */
+    BCMOLT_ONU_OPERATION_ACTIVE_STANDBY                                             = 4,    /**< Active Standby. */
+    BCMOLT_ONU_OPERATION_AWAKE_FREE                                                 = 5,    /**< Transitions the ONU to an active state with power management enabled. Allowed in inactive, disabled, and active states. */
+    BCMOLT_ONU_OPERATION__NUM_OF    /**< Number of enum entries, not an entry itself. */
+} bcmolt_onu_operation;
+
+/** ONU Power level. 
+ */
+typedef enum bcmolt_onu_power_level
+{
+    BCMOLT_ONU_POWER_LEVEL__BEGIN                                                   = 0,
+    BCMOLT_ONU_POWER_LEVEL_INCREASE                                                 = 0,    /**< increase. */
+    BCMOLT_ONU_POWER_LEVEL_DECREASE                                                 = 1,    /**< decrease. */
+    BCMOLT_ONU_POWER_LEVEL__NUM_OF  /**< Number of enum entries, not an entry itself. */
+} bcmolt_onu_power_level;
+
+/** TC layer protocol. 
+ */
+typedef enum bcmolt_tc_protocol
+{
+    BCMOLT_TC_PROTOCOL__BEGIN                                                       = 0,
+    BCMOLT_TC_PROTOCOL_TC_LAYER_PROTOCOL_G_987_P_3                                  = 0,    /**< TC layer protocol G.987.3 */
+    BCMOLT_TC_PROTOCOL_TC_LAYER_PROTOCOL_G_989_P_3                                  = 1,    /**< TC layer protocol G.989.3 */
+    BCMOLT_TC_PROTOCOL__NUM_OF  /**< Number of enum entries, not an entry itself. */
+} bcmolt_tc_protocol;
+
+/** Packet Injection Error. 
+ */
+typedef enum bcmolt_packet_injection_error
+{
+    BCMOLT_PACKET_INJECTION_ERROR__BEGIN                                            = 0,
+    BCMOLT_PACKET_INJECTION_ERROR_GEM_PORT_NOT_ACTIVE                               = 0,    /**< GEM Port Not Active. */
+    BCMOLT_PACKET_INJECTION_ERROR__NUM_OF   /**< Number of enum entries, not an entry itself. */
+} bcmolt_packet_injection_error;
+
+/** packet type. 
+ */
+typedef enum bcmolt_packet_type
+{
+    BCMOLT_PACKET_TYPE__BEGIN                                                       = 0,
+    BCMOLT_PACKET_TYPE_CPU                                                          = 0,    /**< CPU. */
+    BCMOLT_PACKET_TYPE_OMCI                                                         = 1,    /**< OMCI. */
+    BCMOLT_PACKET_TYPE__NUM_OF  /**< Number of enum entries, not an entry itself. */
+} bcmolt_packet_type;
+
+/** Password authentication fail reason. 
+ */
+typedef enum bcmolt_password_authentication_fail_reason
+{
+    BCMOLT_PASSWORD_AUTHENTICATION_FAIL_REASON__BEGIN                               = 0,
+    BCMOLT_PASSWORD_AUTHENTICATION_FAIL_REASON_NONE                                 = 0,    /**< none. */
+    BCMOLT_PASSWORD_AUTHENTICATION_FAIL_REASON_PASSWORD_INCONSISTENCY               = 1,    /**< Password inconsistency. */
+    BCMOLT_PASSWORD_AUTHENTICATION_FAIL_REASON_PASSWORD_MISMATCH                    = 2,    /**< Password mismatch. */
+    BCMOLT_PASSWORD_AUTHENTICATION_FAIL_REASON_PASSWORD_AUTHENTICATION_TIMEOUT      = 3,    /**< Password authentication timeout. */
+    BCMOLT_PASSWORD_AUTHENTICATION_FAIL_REASON_ONU_ALARM                            = 4,    /**< onu alarm. */
+    BCMOLT_PASSWORD_AUTHENTICATION_FAIL_REASON_LOS_EVENT                            = 5,    /**< los event. */
+    BCMOLT_PASSWORD_AUTHENTICATION_FAIL_REASON_DISABLE_EVENT                        = 6,    /**< disable event. */
+    BCMOLT_PASSWORD_AUTHENTICATION_FAIL_REASON__NUM_OF  /**< Number of enum entries, not an entry itself. */
+} bcmolt_password_authentication_fail_reason;
+
+/** Polarity. 
+ */
+typedef enum bcmolt_polarity
+{
+    BCMOLT_POLARITY__BEGIN                                                          = 0,
+    BCMOLT_POLARITY_LOW                                                             = 0,    /**< Low. */
+    BCMOLT_POLARITY_HIGH                                                            = 1,    /**< High. */
+    BCMOLT_POLARITY__NUM_OF /**< Number of enum entries, not an entry itself. */
+} bcmolt_polarity;
+
+/** Polling Interval. 
+ */
+typedef enum bcmolt_polling_interval
+{
+    BCMOLT_POLLING_INTERVAL_POLLING_DISABLED                                        = 0,            /**< No polling gates will be sent to this LLID. */
+    BCMOLT_POLLING_INTERVAL_US_500                                                  = 500,          /**< 500 us. */
+    BCMOLT_POLLING_INTERVAL_MS_1                                                    = 1000,         /**< 1 ms. */
+    BCMOLT_POLLING_INTERVAL_MS_2                                                    = 2000,         /**< 2 ms. */
+    BCMOLT_POLLING_INTERVAL_MS_4                                                    = 4000,         /**< 4 ms. */
+    BCMOLT_POLLING_INTERVAL_MS_8                                                    = 8000,         /**< 8 ms. */
+    BCMOLT_POLLING_INTERVAL_MS_16                                                   = 16000,        /**< 16 ms. */
+    BCMOLT_POLLING_INTERVAL_AUTOMATIC                                               = 2147483647L   /**< Firmware will choose an appropriate value. */
+} bcmolt_polling_interval;
+
+/** PON Operation. 
+ */
+typedef enum bcmolt_pon_operation
+{
+    BCMOLT_PON_OPERATION__BEGIN                                                     = 0,
+    BCMOLT_PON_OPERATION_INACTIVE                                                   = 0,            /**< Inactive. */
+    BCMOLT_PON_OPERATION_ACTIVE_WORKING                                             = 1,            /**< Active Working. */
+    BCMOLT_PON_OPERATION_ACTIVE_STANDBY                                             = 2,            /**< Active Standby. */
+    BCMOLT_PON_OPERATION__NUM_OF    /**< Number of enum entries, not an entry itself. */
+} bcmolt_pon_operation;
+
+/** PON Protection Switching Options. 
+ */
+typedef enum bcmolt_pon_protection_switching_options
+{
+    BCMOLT_PON_PROTECTION_SWITCHING_OPTIONS_NONE                                    = 0,
+    BCMOLT_PON_PROTECTION_SWITCHING_OPTIONS_SWIFT_POPUP                             = 0x0001,   /**< If set, switchovers will utilize the Swift_POPUP and Ranging_Adjustment PLOAMs added in G.984 annex D. */
+    BCMOLT_PON_PROTECTION_SWITCHING_OPTIONS_DEBUG_FAST_RANGING                      = 0x0002    /**< If set, ONU EQDs will not be calculated as part of a switchover.  Instead, each ONU's new EQD will be equal to its last EQD when the PON NI was in active-working state.  This provides a fast switchover, but can only be used if the trunk distance never changes. */
+} bcmolt_pon_protection_switching_options;
+
+/** PON state. 
+ */
+typedef enum bcmolt_pon_state
+{
+    BCMOLT_PON_STATE__BEGIN                                                         = 0,
+    BCMOLT_PON_STATE_INACTIVE                                                       = 0,        /**< Inactive. */
+    BCMOLT_PON_STATE_PROCESSING                                                     = 1,        /**< Processing. */
+    BCMOLT_PON_STATE_ACTIVE_WORKING                                                 = 2,        /**< Active Working. */
+    BCMOLT_PON_STATE_ACTIVE_STANDBY                                                 = 3,        /**< Active Standby. */
+    BCMOLT_PON_STATE__NUM_OF    /**< Number of enum entries, not an entry itself. */
+} bcmolt_pon_state;
+
+/** power levelling control. 
+ */
+typedef enum bcmolt_power_levelling_control
+{
+    BCMOLT_POWER_LEVELLING_CONTROL__BEGIN                                           = 0,
+    BCMOLT_POWER_LEVELLING_CONTROL_DIRECT                                           = 0,    /**< Direct. */
+    BCMOLT_POWER_LEVELLING_CONTROL_DECREASE                                         = 1,    /**< Decrease. */
+    BCMOLT_POWER_LEVELLING_CONTROL_INCREASE                                         = 2,    /**< Increase. */
+    BCMOLT_POWER_LEVELLING_CONTROL__NUM_OF  /**< Number of enum entries, not an entry itself. */
+} bcmolt_power_levelling_control;
+
+/** The reason that a power management state change occurred. 
+ */
+typedef enum bcmolt_power_management_transition_reason
+{
+    BCMOLT_POWER_MANAGEMENT_TRANSITION_REASON__BEGIN                                = 0,
+    BCMOLT_POWER_MANAGEMENT_TRANSITION_REASON_POWER_MANAGEMENT_ENABLED              = 0,    /**< Host requested power management enable. */
+    BCMOLT_POWER_MANAGEMENT_TRANSITION_REASON_POWER_MANAGEMENT_DISABLED             = 1,    /**< Host requested power management disable. */
+    BCMOLT_POWER_MANAGEMENT_TRANSITION_REASON_SLEEP_REQUEST_AWAKE                   = 2,    /**< Received sleep request PLOAM from ONU. */
+    BCMOLT_POWER_MANAGEMENT_TRANSITION_REASON_SLEEP_REQUEST_DOZE                    = 3,    /**< Received sleep request PLOAM from ONU. */
+    BCMOLT_POWER_MANAGEMENT_TRANSITION_REASON_SLEEP_REQUEST_SLEEP                   = 4,    /**< Received sleep request PLOAM from ONU. */
+    BCMOLT_POWER_MANAGEMENT_TRANSITION_REASON_SLEEP_REQUEST_WATCH                   = 5,    /**< Received sleep request PLOAM from ONU. */
+    BCMOLT_POWER_MANAGEMENT_TRANSITION_REASON_TERI_EXPIRED                          = 6,    /**< Teri timer expired. It has been too long since we have received an upstream burst from an ONU in a low power state. */
+    BCMOLT_POWER_MANAGEMENT_TRANSITION_REASON_TALERTED_EXPIRED                      = 7,    /**< Talerted timer expired. It has been too long since the ONU was requested to wake up with no idication that it has complied. */
+    BCMOLT_POWER_MANAGEMENT_TRANSITION_REASON_ALARM                                 = 8,    /**< A LOSi/LOFi/LOBi alarm has ben raised against the ONU. */
+    BCMOLT_POWER_MANAGEMENT_TRANSITION_REASON__NUM_OF   /**< Number of enum entries, not an entry itself. */
+} bcmolt_power_management_transition_reason;
+
+/** PRBS Polynomial. 
+ */
+typedef enum bcmolt_prbs_polynomial
+{
+    BCMOLT_PRBS_POLYNOMIAL__BEGIN                                                   = 0,
+    BCMOLT_PRBS_POLYNOMIAL_PRBS_7                                                   = 0,    /**< PRBS_7. */
+    BCMOLT_PRBS_POLYNOMIAL_PRBS_9                                                   = 1,    /**< PRBS_9. */
+    BCMOLT_PRBS_POLYNOMIAL_PRBS_11                                                  = 2,    /**< PRBS_11. */
+    BCMOLT_PRBS_POLYNOMIAL_PRBS_15                                                  = 3,    /**< PRBS_15. */
+    BCMOLT_PRBS_POLYNOMIAL_PRBS_23                                                  = 4,    /**< PRBS_23. */
+    BCMOLT_PRBS_POLYNOMIAL_PRBS_31                                                  = 5,    /**< PRBS_31. */
+    BCMOLT_PRBS_POLYNOMIAL_PRBS_58                                                  = 6,    /**< PRBS_58. */
+    BCMOLT_PRBS_POLYNOMIAL__NUM_OF  /**< Number of enum entries, not an entry itself. */
+} bcmolt_prbs_polynomial;
+
+/** PRBS checker mode. 
+ */
+typedef enum bcmolt_prbs_checker_mode
+{
+    BCMOLT_PRBS_CHECKER_MODE__BEGIN                                                 = 0,
+    BCMOLT_PRBS_CHECKER_MODE_SELF_SYNC                                              = 0,    /**< Self-sync mode w/ hysteresis. PRBS seed register is continuously seeded with previous received bits.  This mode results in faster locking, but bit errors are counted multiple times (often by 3x).  */
+    BCMOLT_PRBS_CHECKER_MODE_INITIAL_SEED_MODE                                      = 1,    /**< Initial seed mode w/ hysteresis. PRBS seed registers is seeded with previous received bits only till PRBS lock is  acquired and then they run locally independently from the received data until the checker goes out of PRBS lock.  */
+    BCMOLT_PRBS_CHECKER_MODE_INITIAL_SEED_MODE_2                                    = 2,    /**< Initial seed mode w/o hysteresis. Similar to mode 1 above except once locked it stays locked until PRBS is disabled.    */
+    BCMOLT_PRBS_CHECKER_MODE__NUM_OF    /**< Number of enum entries, not an entry itself. */
+} bcmolt_prbs_checker_mode;
+
+/** PRBS Lock State. 
+ */
+typedef enum bcmolt_prbs_lock_state
+{
+    BCMOLT_PRBS_LOCK_STATE__BEGIN                                                   = 0,
+    BCMOLT_PRBS_LOCK_STATE_UNLOCKED                                                 = 0,    /**< PRBS Checker is out of LOCK state and state machine is searching for a LOCK */
+    BCMOLT_PRBS_LOCK_STATE_LOCKED                                                   = 1,    /**< PRBS Checker is in LOCKED state */
+    BCMOLT_PRBS_LOCK_STATE__NUM_OF  /**< Number of enum entries, not an entry itself. */
+} bcmolt_prbs_lock_state;
+
+/** Possible Raman Mitigation settings.  Raman mitigation injects pseudo-noise 
+ * into the 1G downstream data path to reduce interference with analog video 
+ * signals on other wavelengths. 
+ */
+typedef enum bcmolt_raman_mitigation_mode
+{
+    BCMOLT_RAMAN_MITIGATION_MODE__BEGIN                                             = 0,
+    BCMOLT_RAMAN_MITIGATION_MODE_DISABLED                                           = 0,    /**< No packets are generated. */
+    BCMOLT_RAMAN_MITIGATION_MODE_RANDOM                                             = 1,    /**< Pseudo-random packets are generated. */
+    BCMOLT_RAMAN_MITIGATION_MODE_FIXED                                              = 2,    /**< Fixed background packets are generated. */
+    BCMOLT_RAMAN_MITIGATION_MODE__NUM_OF    /**< Number of enum entries, not an entry itself. */
+} bcmolt_raman_mitigation_mode;
+
+/** Ranging fail reason. 
+ */
+typedef enum bcmolt_ranging_fail_reason
+{
+    BCMOLT_RANGING_FAIL_REASON__BEGIN                                               = 0,
+    BCMOLT_RANGING_FAIL_REASON_NONE                                                 = 0,    /**< none. */
+    BCMOLT_RANGING_FAIL_REASON_RANGING_ACK_TIMEOUT                                  = 1,    /**< ranging ack timeout. */
+    BCMOLT_RANGING_FAIL_REASON_PLOAM_DATA_MISMATCH                                  = 2,    /**< ploam data mismatch. */
+    BCMOLT_RANGING_FAIL_REASON_PLOAM_TYPE_MISMATCH                                  = 3,    /**< ploam type mismatch. */
+    BCMOLT_RANGING_FAIL_REASON_PLOAM_ONU_ID_MISMATCH                                = 4,    /**< ploam onu id mismatch. */
+    BCMOLT_RANGING_FAIL_REASON_DRIFT_EXCEEDED                                       = 5,    /**< drift exceeded. */
+    BCMOLT_RANGING_FAIL_REASON_NO_PLOAM_RECEIVED                                    = 6,    /**< no ploam received. */
+    BCMOLT_RANGING_FAIL_REASON_LOS                                                  = 7,    /**< los. */
+    BCMOLT_RANGING_FAIL_REASON_ALARMS                                               = 8,    /**< alarms. */
+    BCMOLT_RANGING_FAIL_REASON__NUM_OF  /**< Number of enum entries, not an entry itself. */
+} bcmolt_ranging_fail_reason;
+
+/** Registration Behavior. 
+ */
+typedef enum bcmolt_registration_behavior
+{
+    BCMOLT_REGISTRATION_BEHAVIOR__BEGIN                                             = 0,
+    BCMOLT_REGISTRATION_BEHAVIOR_AUTOMATIC                                          = 0,    /**< All links will be allowed to register. */
+    BCMOLT_REGISTRATION_BEHAVIOR_NOTIFY_UNKNOWN                                     = 1,    /**< Links that are not pre-provisioned will not be allowed to register.  A maskable indication will be sent to the host which can then decide if the link should be provisioned. */
+    BCMOLT_REGISTRATION_BEHAVIOR__NUM_OF    /**< Number of enum entries, not an entry itself. */
+} bcmolt_registration_behavior;
+
+/** request registration fail reason. 
+ */
+typedef enum bcmolt_request_registration_fail_reason
+{
+    BCMOLT_REQUEST_REGISTRATION_FAIL_REASON__BEGIN                                  = 0,
+    BCMOLT_REQUEST_REGISTRATION_FAIL_REASON_NONE                                    = 0,    /**< None. */
+    BCMOLT_REQUEST_REGISTRATION_FAIL_REASON_REGISTRATION_PLOAM_TIMEOUT              = 1,    /**< registration ploam timeout. */
+    BCMOLT_REQUEST_REGISTRATION_FAIL_REASON_ONU_ALARM                               = 2,    /**< onu alarm. */
+    BCMOLT_REQUEST_REGISTRATION_FAIL_REASON_DEACTIVATION                            = 3,    /**< deactivation. */
+    BCMOLT_REQUEST_REGISTRATION_FAIL_REASON_DISABLE                                 = 4,    /**< disable. */
+    BCMOLT_REQUEST_REGISTRATION_FAIL_REASON__NUM_OF /**< Number of enum entries, not an entry itself. */
+} bcmolt_request_registration_fail_reason;
+
+/** Result. 
+ */
+typedef enum bcmolt_result
+{
+    BCMOLT_RESULT__BEGIN                                                            = 0,
+    BCMOLT_RESULT_SUCCESS                                                           = 0,    /**< Success. */
+    BCMOLT_RESULT_FAIL                                                              = 1,    /**< Fail. */
+    BCMOLT_RESULT__NUM_OF   /**< Number of enum entries, not an entry itself. */
+} bcmolt_result;
+
+/** Type of the rogue detection algorithm. 
+ */
+typedef enum bcmolt_rogue_detection_algorithm_type
+{
+    BCMOLT_ROGUE_DETECTION_ALGORITHM_TYPE__BEGIN                                    = 0,
+    BCMOLT_ROGUE_DETECTION_ALGORITHM_TYPE_EARLY_ROGUE_DETECTION                     = 0,    /**< Firmware-driven periodic process which runs in the background to detect the potential rogue ONU. */
+    BCMOLT_ROGUE_DETECTION_ALGORITHM_TYPE_SPECIAL_MAP                               = 1,    /**< Use the user-provisioned special bandwidth map until it is told to stop. */
+    BCMOLT_ROGUE_DETECTION_ALGORITHM_TYPE_EXTENDED_GUARD_TIME                       = 2,    /**< Destructive tool that extends the guard time on all bursts. */
+    BCMOLT_ROGUE_DETECTION_ALGORITHM_TYPE__NUM_OF   /**< Number of enum entries, not an entry itself. */
+} bcmolt_rogue_detection_algorithm_type;
+
+/** Rogue ONU detection measurement type. 
+ */
+typedef enum bcmolt_rogue_detection_window
+{
+    BCMOLT_ROGUE_DETECTION_WINDOW__BEGIN                                            = 0,
+    BCMOLT_ROGUE_DETECTION_WINDOW_SILENT_WINDOW                                     = 0,    /**< Silent window measurement. */
+    BCMOLT_ROGUE_DETECTION_WINDOW_CUT_OFF_WINDOW                                    = 1,    /**< Cut-off window measurement. */
+    BCMOLT_ROGUE_DETECTION_WINDOW__NUM_OF   /**< Number of enum entries, not an entry itself. */
+} bcmolt_rogue_detection_window;
+
+/** Status of the rogue ONU detection result. 
+ */
+typedef enum bcmolt_rogue_measurement_result
+{
+    BCMOLT_ROGUE_MEASUREMENT_RESULT__BEGIN                                          = 0,
+    BCMOLT_ROGUE_MEASUREMENT_RESULT_RSSI_COMPLETE                                   = 0,    /**< Rogue ONU RSSI detection activity completed. */
+    BCMOLT_ROGUE_MEASUREMENT_RESULT_NOT_PERFORMED                                   = 1,    /**< Rogue ONU detection not performed. */
+    BCMOLT_ROGUE_MEASUREMENT_RESULT_ROGUE_CYCLE_STOP                                = 2,    /**< Rogue ONU cycle detection stopped. */
+    BCMOLT_ROGUE_MEASUREMENT_RESULT_RSSI_ERROR                                      = 3,    /**< There was an error in the RSSI measurement. */
+    BCMOLT_ROGUE_MEASUREMENT_RESULT_RSSI_NOT_COMPLETE                               = 4,    /**< The RSSI mesaurement was not complete. */
+    BCMOLT_ROGUE_MEASUREMENT_RESULT__NUM_OF /**< Number of enum entries, not an entry itself. */
+} bcmolt_rogue_measurement_result;
+
+/** Rogue Scan Indication Status . 
+ */
+typedef enum bcmolt_rogue_scan_status
+{
+    BCMOLT_ROGUE_SCAN_STATUS__BEGIN                                                 = 0,
+    BCMOLT_ROGUE_SCAN_STATUS_COMPLETE                                               = 0,    /**< Rogue Scan was completed. */
+    BCMOLT_ROGUE_SCAN_STATUS_LLID_STATE_IS_BAD                                      = 1,    /**< llid in targeted scan was an active link. */
+    BCMOLT_ROGUE_SCAN_STATUS_LLID_IS_OOR                                            = 2,    /**< llid in targeted scan is out of range for pon. */
+    BCMOLT_ROGUE_SCAN_STATUS_SCAN_ERR_NORES                                         = 3,    /**< There were no available LIM indexes for the scan.. */
+    BCMOLT_ROGUE_SCAN_STATUS_SCAN_ERR_INTERNAL                                      = 4,    /**< An internal software was encountered.. */
+    BCMOLT_ROGUE_SCAN_STATUS__NUM_OF    /**< Number of enum entries, not an entry itself. */
+} bcmolt_rogue_scan_status;
+
+/** RSSI measurement fail reason. 
+ */
+typedef enum bcmolt_rssi_measurement_fail_reason
+{
+    BCMOLT_RSSI_MEASUREMENT_FAIL_REASON__BEGIN                                      = 0,
+    BCMOLT_RSSI_MEASUREMENT_FAIL_REASON_NONE                                        = 0,    /**< None. */
+    BCMOLT_RSSI_MEASUREMENT_FAIL_REASON_NO_DELIMITER                                = 1,    /**< No delimiter. */
+    BCMOLT_RSSI_MEASUREMENT_FAIL_REASON_NO_ACCESS                                   = 2,    /**< No access. */
+    BCMOLT_RSSI_MEASUREMENT_FAIL_REASON__NUM_OF /**< Number of enum entries, not an entry itself. */
+} bcmolt_rssi_measurement_fail_reason;
+
+/** secure mutual authentication fail reason. 
+ */
+typedef enum bcmolt_secure_mutual_authentication_fail_reason
+{
+    BCMOLT_SECURE_MUTUAL_AUTHENTICATION_FAIL_REASON__BEGIN                          = 0,
+    BCMOLT_SECURE_MUTUAL_AUTHENTICATION_FAIL_REASON_TIMEOUT                         = 0,    /**< secure mutual authentication timeout. */
+    BCMOLT_SECURE_MUTUAL_AUTHENTICATION_FAIL_REASON__NUM_OF /**< Number of enum entries, not an entry itself. */
+} bcmolt_secure_mutual_authentication_fail_reason;
+
+/** serdes ranging mode. 
+ */
+typedef enum bcmolt_serdes_ranging_mode
+{
+    BCMOLT_SERDES_RANGING_MODE__BEGIN                                               = 0,
+    BCMOLT_SERDES_RANGING_MODE_ED_MODE                                              = 0,    /**< ed mode. */
+    BCMOLT_SERDES_RANGING_MODE_BCDR_RESET_MODE                                      = 1,    /**< BCDR reset mode. */
+    BCMOLT_SERDES_RANGING_MODE_FAST_MODE                                            = 2,    /**< fast mode. */
+    BCMOLT_SERDES_RANGING_MODE__NUM_OF  /**< Number of enum entries, not an entry itself. */
+} bcmolt_serdes_ranging_mode;
+
+/** SerDes Instance. 
+ */
+typedef enum bcmolt_serdes_instance
+{
+    BCMOLT_SERDES_INSTANCE__BEGIN                                                   = 0,
+    BCMOLT_SERDES_INSTANCE_INSTANCE_0                                               = 0,    /**< Primary Serdes, or 10G SerDes for EPON pon_ids. */
+    BCMOLT_SERDES_INSTANCE_INSTANCE_1                                               = 1,    /**< Secondary Serdes, or 1G/2G SerDes for EPON pon_ids. */
+    BCMOLT_SERDES_INSTANCE__NUM_OF  /**< Number of enum entries, not an entry itself. */
+} bcmolt_serdes_instance;
+
+/** Shaper Mode. 
+ */
+typedef enum bcmolt_shaper_mode
+{
+    BCMOLT_SHAPER_MODE__BEGIN                                                       = 0,
+    BCMOLT_SHAPER_MODE_LAYER_1                                                      = 0,    /**< Shapers will count IPG, preamble, frame, and FCS */
+    BCMOLT_SHAPER_MODE_LAYER_2                                                      = 1,    /**< Shapers will count frame and FCS. */
+    BCMOLT_SHAPER_MODE__NUM_OF  /**< Number of enum entries, not an entry itself. */
+} bcmolt_shaper_mode;
+
+/** All possible statistic alarm trigger conditions. 
+ */
+typedef enum bcmolt_stat_condition_type
+{
+    BCMOLT_STAT_CONDITION_TYPE__BEGIN                                               = 0,
+    BCMOLT_STAT_CONDITION_TYPE_NONE                                                 = 0,    /**< The alarm is disabled. */
+    BCMOLT_STAT_CONDITION_TYPE_RATE_THRESHOLD                                       = 1,    /**< The alarm is triggered if the stats delta value between samples crosses the configured threshold boundary. */
+    BCMOLT_STAT_CONDITION_TYPE_RATE_RANGE                                           = 2,    /**< The alarm is triggered if the stats delta value between samples deviates from the configured range. */
+    BCMOLT_STAT_CONDITION_TYPE_VALUE_THRESHOLD                                      = 3,    /**< The alarm is raised if the stats sample value becomes greater than this level.  The alarm is cleared when the host read the stats. */
+    BCMOLT_STAT_CONDITION_TYPE__NUM_OF  /**< Number of enum entries, not an entry itself. */
+} bcmolt_stat_condition_type;
+
+/** Switch over type c onu state. 
+ */
+typedef enum bcmolt_switch_over_type_c_onu_state
+{
+    BCMOLT_SWITCH_OVER_TYPE_C_ONU_STATE__BEGIN                                      = 0,
+    BCMOLT_SWITCH_OVER_TYPE_C_ONU_STATE_ACTIVE                                      = 0,    /**< Active. */
+    BCMOLT_SWITCH_OVER_TYPE_C_ONU_STATE_ACTIVE_STANDBY                              = 1,    /**< Active standby. */
+    BCMOLT_SWITCH_OVER_TYPE_C_ONU_STATE__NUM_OF /**< Number of enum entries, not an entry itself. */
+} bcmolt_switch_over_type_c_onu_state;
+
+/** System working mode (GPON/EPON etc.) 
+ */
+typedef enum bcmolt_system_mode
+{
+    BCMOLT_SYSTEM_MODE__BEGIN                                                       = 0,
+    BCMOLT_SYSTEM_MODE_GPON__16_X                                                   = 0,    /**< 16x GPON */
+    BCMOLT_SYSTEM_MODE_GPON__8_X                                                    = 1,    /**< 8x GPON */
+    BCMOLT_SYSTEM_MODE_GPON__4_X                                                    = 2,    /**< 4x GPON */
+    BCMOLT_SYSTEM_MODE_EPON__16_X                                                   = 3,    /**< 16x EPON */
+    BCMOLT_SYSTEM_MODE_XGPON_1__8_X                                                 = 4,    /**< 8x XGPON1 */
+    BCMOLT_SYSTEM_MODE_EPON__8_X_COEXISTENCE_TDMA                                   = 5,    /**< 8x EPON coexistence TDMA */
+    BCMOLT_SYSTEM_MODE_AE_8_X                                                       = 6,    /**< 8x 10G Active Ethernet */
+    BCMOLT_SYSTEM_MODE_EPON__8_X_10_G                                               = 7,    /**< 8x EPON (10/10 only) */
+    BCMOLT_SYSTEM_MODE_GPON_8_XGPON_4_X_COEXISTENCE                                 = 8,    /**< 8x GPON 4x XGPON coexistence */
+    BCMOLT_SYSTEM_MODE_EPON__8_X                                                    = 9,    /**< 8x EPON (1/1 only) */
+    BCMOLT_SYSTEM_MODE_EPON__4_X                                                    = 10,   /**< 4x EPON (1/1 only) */
+    BCMOLT_SYSTEM_MODE_EPON__4_X_COEXISTENCE_TDMA                                   = 11,   /**< 4x EPON coexistence TDMA */
+    BCMOLT_SYSTEM_MODE_EPON__4_X_10_G                                               = 12,   /**< 4x EPON (10/10 only) */
+    BCMOLT_SYSTEM_MODE_XGS__2_X_10_G                                                = 13,   /**< 2x XGS-PON (10/10) */
+    BCMOLT_SYSTEM_MODE_NGPON2__2_X_10_G                                             = 14,   /**< 2x NGPON2 (10/10) */
+    BCMOLT_SYSTEM_MODE_NGPON2__8_X_2_P_5_G                                          = 15,   /**< 8x NGPON2 (10/2.5) */
+    BCMOLT_SYSTEM_MODE_XGPON_1__4_X                                                 = 16,   /**< 4x XGPON1 */
+    BCMOLT_SYSTEM_MODE_EPON__2_X_10_G                                               = 17,   /**< 2x EPON (10/10 only) */
+    BCMOLT_SYSTEM_MODE__NUM_OF  /**< Number of enum entries, not an entry itself. */
+} bcmolt_system_mode;
+
+/** US operating wavelength bands. 
+ */
+typedef enum bcmolt_us_operating_wavelength_bands
+{
+    BCMOLT_US_OPERATING_WAVELENGTH_BANDS_EXPANDED_SPECTRUM_WIDE_BAND                = 0,    /**< Expanded spectrum wide band option */
+    BCMOLT_US_OPERATING_WAVELENGTH_BANDS_EXPANDED_SPECTRUM_REDUCED_BAND             = 1,    /**< Expanded spectrum reduced band option */
+    BCMOLT_US_OPERATING_WAVELENGTH_BANDS_EXPANDED_SPECTRUM_NARROW_BAND              = 2,    /**< Expanded spectrum reduced band option */
+    BCMOLT_US_OPERATING_WAVELENGTH_BANDS_SHARED_SPECTRUM_WIDE_BAND                  = 16,   /**< Shared spectrum wide band option */
+    BCMOLT_US_OPERATING_WAVELENGTH_BANDS_SHARED_SPECTRUM_REDUCED_BAND               = 17,   /**< Shared spectrum reduced band option */
+    BCMOLT_US_OPERATING_WAVELENGTH_BANDS_SHARED_SPECTRUM_NARROW_BAND                = 18    /**< Shared spectrum wide narrow option */
+} bcmolt_us_operating_wavelength_bands;
+
+/** Traffic resume result. 
+ */
+typedef enum bcmolt_traffic_resume_result
+{
+    BCMOLT_TRAFFIC_RESUME_RESULT__BEGIN                                             = 0,
+    BCMOLT_TRAFFIC_RESUME_RESULT_SUCCESS                                            = 0,    /**< Success. */
+    BCMOLT_TRAFFIC_RESUME_RESULT_FAILURE                                            = 1,    /**< Failure. */
+    BCMOLT_TRAFFIC_RESUME_RESULT_SUSPECTED_LOS                                      = 2,    /**< suspected_los. */
+    BCMOLT_TRAFFIC_RESUME_RESULT__NUM_OF    /**< Number of enum entries, not an entry itself. */
+} bcmolt_traffic_resume_result;
+
+/** trx calibration trigger. 
+ */
+typedef enum bcmolt_trx_calibration_trigger
+{
+    BCMOLT_TRX_CALIBRATION_TRIGGER__BEGIN                                           = 0,
+    BCMOLT_TRX_CALIBRATION_TRIGGER_EPON_STAT                                        = 0,    /**< epon stat. */
+    BCMOLT_TRX_CALIBRATION_TRIGGER_GPON_BCDR_RESET                                  = 1,    /**< gpon bcdr reset. */
+    BCMOLT_TRX_CALIBRATION_TRIGGER_GPON_TRX_RESET                                   = 2,    /**< gpon trx reset. */
+    BCMOLT_TRX_CALIBRATION_TRIGGER_GPON_TRX_ED                                      = 3,    /**< gpon trx ed. */
+    BCMOLT_TRX_CALIBRATION_TRIGGER_GPON_RSSI                                        = 4,    /**< gpon rssi. */
+    BCMOLT_TRX_CALIBRATION_TRIGGER_GPON_EOB                                         = 5,    /**< gpon eob. */
+    BCMOLT_TRX_CALIBRATION_TRIGGER_GPON_RANGING                                     = 6,    /**< gpon ranging. */
+    BCMOLT_TRX_CALIBRATION_TRIGGER_SERDES_BURST_EN                                  = 7,    /**< serdes burst en. */
+    BCMOLT_TRX_CALIBRATION_TRIGGER__NUM_OF  /**< Number of enum entries, not an entry itself. */
+} bcmolt_trx_calibration_trigger;
+
+/** trx calibration trigger position. 
+ */
+typedef enum bcmolt_trx_calibration_trigger_position
+{
+    BCMOLT_TRX_CALIBRATION_TRIGGER_POSITION__BEGIN                                  = 0,
+    BCMOLT_TRX_CALIBRATION_TRIGGER_POSITION_RISING                                  = 0,    /**< rising edge. */
+    BCMOLT_TRX_CALIBRATION_TRIGGER_POSITION_FALLING                                 = 1,    /**< falling edge. */
+    BCMOLT_TRX_CALIBRATION_TRIGGER_POSITION__NUM_OF /**< Number of enum entries, not an entry itself. */
+} bcmolt_trx_calibration_trigger_position;
+
+/** trx calibration window mode. 
+ */
+typedef enum bcmolt_trx_calibration_window_mode
+{
+    BCMOLT_TRX_CALIBRATION_WINDOW_MODE__BEGIN                                       = 0,
+    BCMOLT_TRX_CALIBRATION_WINDOW_MODE_RANGING                                      = 0,    /**< ranging. */
+    BCMOLT_TRX_CALIBRATION_WINDOW_MODE_NON_RANGING                                  = 1,    /**< non ranging. */
+    BCMOLT_TRX_CALIBRATION_WINDOW_MODE_BOTH                                         = 2,    /**< ranging and non ranging. */
+    BCMOLT_TRX_CALIBRATION_WINDOW_MODE__NUM_OF  /**< Number of enum entries, not an entry itself. */
+} bcmolt_trx_calibration_window_mode;
+
+/** TRX type. 
+ */
+typedef enum bcmolt_trx_type
+{
+    BCMOLT_TRX_TYPE__BEGIN                                                          = 0,
+    BCMOLT_TRX_TYPE_SPS_43_48_H_HP_CDE_SD_2013                                      = 0,    /**< SourcePhotonics - SPS-43-48H-HP-CDE-SD Reset is required BEFORE, TRX is Squelched. till 2013 rev.  */
+    BCMOLT_TRX_TYPE_SOG_4321_PSGB                                                   = 1,    /**< Superxon B+ type */
+    BCMOLT_TRX_TYPE_LTE_3680_M                                                      = 2,    /**< LIGENT LTE3680M. */
+    BCMOLT_TRX_TYPE_SOURCE_PHOTONICS                                                = 3,    /**< Source Photonics. */
+    BCMOLT_TRX_TYPE_LTE_3680_P_TYPE_C_PLUS                                          = 4,    /**< LIGENT LTE3680P_TYPE_C_PLUS. */
+    BCMOLT_TRX_TYPE_ANY                                                             = 5,    /**< Any. */
+    BCMOLT_TRX_TYPE_ANY_RESET_GUARD                                                 = 6,    /**< Any reset guard. */
+    BCMOLT_TRX_TYPE_ANY_RESET_PREAMBLE                                              = 7,    /**< Any reset preamble. */
+    BCMOLT_TRX_TYPE_WTD_RTXM_167_526_CPLUS                                          = 8,    /**< WTD RTXM167 526 C+. */
+    BCMOLT_TRX_TYPE_WTD_RTXM_167_522_BPLUS                                          = 9,    /**< WTD RTXM167 522 B+. */
+    BCMOLT_TRX_TYPE_LTE_3680_P_BC                                                   = 10,   /**< LIGENT HiSense LTE3680P-BC. */
+    BCMOLT_TRX_TYPE_SOGQ_4321_PSGB_C_PLUS                                           = 11,   /**< Superxon C+ type */
+    BCMOLT_TRX_TYPE_WTD_RTXM167_521                                                 = 12,   /**< WTD RTXM167_521. */
+    BCMOLT_TRX_TYPE_LTE3678                                                         = 13,   /**< LTE3678. */
+    BCMOLT_TRX_TYPE_SOGP_4321_PSGA                                                  = 14,   /**< Superxon SOGP4321-PSGA. */
+    BCMOLT_TRX_TYPE_GPON_GENERAL_1                                                  = 15,   /**< gpon general 1. */
+    BCMOLT_TRX_TYPE_GPON_GENERAL_2                                                  = 16,   /**< gpon general 2. */
+    BCMOLT_TRX_TYPE_GPON_GENERAL_3                                                  = 17,   /**< gpon general 3. */
+    BCMOLT_TRX_TYPE_GPON_GENERAL_4                                                  = 18,   /**< gpon general 4. */
+    BCMOLT_TRX_TYPE_GPON_GENERAL_5                                                  = 19,   /**< gpon general 5. */
+    BCMOLT_TRX_TYPE_GPON_GENERAL_6                                                  = 20,   /**< gpon general 6. */
+    BCMOLT_TRX_TYPE_GPON_GENERAL_7                                                  = 21,   /**< gpon general 7. */
+    BCMOLT_TRX_TYPE_GPON_GENERAL_8                                                  = 22,   /**< gpon general 8. */
+    BCMOLT_TRX_TYPE_GPON_GENERAL_9                                                  = 23,   /**< gpon general 9. */
+    BCMOLT_TRX_TYPE_GPON_GENERAL_10                                                 = 24,   /**< gpon general 10. */
+    BCMOLT_TRX_TYPE_GPON_GENERAL_11                                                 = 25,   /**< gpon general 11. */
+    BCMOLT_TRX_TYPE__NUM_OF /**< Number of enum entries, not an entry itself. */
+} bcmolt_trx_type;
+
+/** Tune in fail reason. 
+ */
+typedef enum bcmolt_tune_in_fail_reason
+{
+    BCMOLT_TUNE_IN_FAIL_REASON__BEGIN                                               = 0,
+    BCMOLT_TUNE_IN_FAIL_REASON_NONE                                                 = 0,    /**< none. */
+    BCMOLT_TUNE_IN_FAIL_REASON_NO_TUNING_RESPONSE_PLOAM_RECEIVED                    = 1,    /**< No tuning response ploam received. */
+    BCMOLT_TUNE_IN_FAIL_REASON_ONU_ACTIVATION_FAILED                                = 2,    /**< onu activation failed. */
+    BCMOLT_TUNE_IN_FAIL_REASON__NUM_OF  /**< Number of enum entries, not an entry itself. */
+} bcmolt_tune_in_fail_reason;
+
+/** Tune out fail reason. 
+ */
+typedef enum bcmolt_tune_out_fail_reason
+{
+    BCMOLT_TUNE_OUT_FAIL_REASON__BEGIN                                              = 0,
+    BCMOLT_TUNE_OUT_FAIL_REASON_NONE                                                = 0,    /**< none. */
+    BCMOLT_TUNE_OUT_FAIL_REASON_NACK_PLOAM_RECEIVED                                 = 1,    /**< NACK ploam received. */
+    BCMOLT_TUNE_OUT_FAIL_REASON_NO_TUNING_RESPONSE_PLOAM_RECEIVED                   = 2,    /**< no tuning response ploam received. */
+    BCMOLT_TUNE_OUT_FAIL_REASON_TSOURCE_TIMEOUT                                     = 3,    /**< tsource timeout. */
+    BCMOLT_TUNE_OUT_FAIL_REASON_ROLLBACK_REQUEST                                    = 4,    /**< rollback request. */
+    BCMOLT_TUNE_OUT_FAIL_REASON__NUM_OF /**< Number of enum entries, not an entry itself. */
+} bcmolt_tune_out_fail_reason;
+
+/** UART baud rate. 
+ */
+typedef enum bcmolt_uart_baudrate
+{
+    BCMOLT_UART_BAUDRATE__BEGIN                                                     = 0,
+    BCMOLT_UART_BAUDRATE_UART_RATE_4800                                             = 0,    /**< UART rate 4800. */
+    BCMOLT_UART_BAUDRATE_UART_RATE_9600                                             = 1,    /**< UART rate 9600. */
+    BCMOLT_UART_BAUDRATE_UART_RATE_14400                                            = 2,    /**< UART rate 14400. */
+    BCMOLT_UART_BAUDRATE_UART_RATE_19200                                            = 3,    /**< UART rate 19200. */
+    BCMOLT_UART_BAUDRATE_UART_RATE_38400                                            = 4,    /**< UART rate 38400. */
+    BCMOLT_UART_BAUDRATE_UART_RATE_57600                                            = 5,    /**< UART rate 57600. */
+    BCMOLT_UART_BAUDRATE_UART_RATE_115200                                           = 6,    /**< UART rate 115200. */
+    BCMOLT_UART_BAUDRATE_UART_RATE_230400                                           = 7,    /**< UART rate 230400. */
+    BCMOLT_UART_BAUDRATE_UART_RATE_380400                                           = 8,    /**< UART rate 380400. */
+    BCMOLT_UART_BAUDRATE_UART_RATE_460800                                           = 9,    /**< UART rate 460800. */
+    BCMOLT_UART_BAUDRATE_UART_RATE_921600                                           = 10,   /**< UART rate 921600. */
+    BCMOLT_UART_BAUDRATE__NUM_OF    /**< Number of enum entries, not an entry itself. */
+} bcmolt_uart_baudrate;
+
+/** us_gem_port_destination. 
+ */
+typedef enum bcmolt_us_gem_port_destination
+{
+    BCMOLT_US_GEM_PORT_DESTINATION__BEGIN                                           = 0,
+    BCMOLT_US_GEM_PORT_DESTINATION_DATA                                             = 0,    /**< data. */
+    BCMOLT_US_GEM_PORT_DESTINATION_CPU                                              = 1,    /**< cpu. */
+    BCMOLT_US_GEM_PORT_DESTINATION_OMCI                                             = 2,    /**< omci. */
+    BCMOLT_US_GEM_PORT_DESTINATION__NUM_OF  /**< Number of enum entries, not an entry itself. */
+} bcmolt_us_gem_port_destination;
+
+/** US VLAN action. 
+ */
+typedef enum bcmolt_us_vlan_action
+{
+    BCMOLT_US_VLAN_ACTION_ADD                                                       = 1,    /**< Add. */
+    BCMOLT_US_VLAN_ACTION_TRANSPARENT                                               = 0     /**< Transparent. */
+} bcmolt_us_vlan_action;
+
+/** VLAN to flow mapping method. 
+ */
+typedef enum bcmolt_vlan_to_flow_mapping_method
+{
+    BCMOLT_VLAN_TO_FLOW_MAPPING_METHOD__BEGIN                                       = 0,
+    BCMOLT_VLAN_TO_FLOW_MAPPING_METHOD_VID                                          = 0,    /**< VID. */
+    BCMOLT_VLAN_TO_FLOW_MAPPING_METHOD_MACPLUSVID                                   = 1,    /**< MAC+VID. */
+    BCMOLT_VLAN_TO_FLOW_MAPPING_METHOD__NUM_OF  /**< Number of enum entries, not an entry itself. */
+} bcmolt_vlan_to_flow_mapping_method;
+
+/** XGPON GEM Port State. 
+ */
+typedef enum bcmolt_xgpon_gem_port_state
+{
+    BCMOLT_XGPON_GEM_PORT_STATE_NOT_CONFIGURED                                      = 0,    /**< not configured. */
+    BCMOLT_XGPON_GEM_PORT_STATE_INACTIVE                                            = 1,    /**< inactive. */
+    BCMOLT_XGPON_GEM_PORT_STATE_ACTIVE                                              = 3     /**< active. */
+} bcmolt_xgpon_gem_port_state;
+
+/** xgpon num of onus. 
+ */
+typedef enum bcmolt_xgpon_num_of_onus
+{
+    BCMOLT_XGPON_NUM_OF_ONUS__BEGIN                                                 = 0,
+    BCMOLT_XGPON_NUM_OF_ONUS_XGPON_SUPPORT_256_ONUS                                 = 0,    /**< xgpon support 256 onus. */
+    BCMOLT_XGPON_NUM_OF_ONUS_XGPON_SUPPORT_510_ONUS                                 = 1,    /**< xgpon support 510 onus. */
+    BCMOLT_XGPON_NUM_OF_ONUS__NUM_OF    /**< Number of enum entries, not an entry itself. */
+} bcmolt_xgpon_num_of_onus;
+
+/** xgpon serdes ranging mode. 
+ */
+typedef enum bcmolt_xgpon_serdes_ranging_mode
+{
+    BCMOLT_XGPON_SERDES_RANGING_MODE__BEGIN                                         = 0,
+    BCMOLT_XGPON_SERDES_RANGING_MODE_ED                                             = 0,    /**< ed. */
+    BCMOLT_XGPON_SERDES_RANGING_MODE_BCDR                                           = 1,    /**< bcdr. */
+    BCMOLT_XGPON_SERDES_RANGING_MODE_FAST_RANGING1                                  = 2,    /**< fast ranging1. */
+    BCMOLT_XGPON_SERDES_RANGING_MODE_FAST_RANGING2                                  = 3,    /**< fast ranging2. */
+    BCMOLT_XGPON_SERDES_RANGING_MODE__NUM_OF    /**< Number of enum entries, not an entry itself. */
+} bcmolt_xgpon_serdes_ranging_mode;
+
+/** XGPON TRX type. 
+ */
+typedef enum bcmolt_xgpon_trx_type
+{
+    BCMOLT_XGPON_TRX_TYPE__BEGIN                                                    = 0,
+    BCMOLT_XGPON_TRX_TYPE_LTH_7222_PC                                               = 0,    /**< Ligent LTH 7222-PC. */
+    BCMOLT_XGPON_TRX_TYPE_USER_DEFINED                                              = 1,    /**< User Defined. */
+    BCMOLT_XGPON_TRX_TYPE_WTD_RTXM266_702                                           = 2,    /**< WTD_RTXM266_702. */
+    BCMOLT_XGPON_TRX_TYPE_LTH_7222_BC_PLUS                                          = 3,    /**< SFP+ */
+    BCMOLT_XGPON_TRX_TYPE_LTH_7226_PC                                               = 4,    /**< XGS */
+    BCMOLT_XGPON_TRX_TYPE_LTH_5302_PC                                               = 5,    /**< 10G EPON for XGS mode */
+    BCMOLT_XGPON_TRX_TYPE_XGPON_GENERAL_1                                           = 6,    /**< xgpon general 1. */
+    BCMOLT_XGPON_TRX_TYPE_XGPON_GENERAL_2                                           = 7,    /**< xgpon general 2. */
+    BCMOLT_XGPON_TRX_TYPE_LTW_627_X_PC                                              = 8,    /**< Supports NGPON2 TRx for various channels */
+    BCMOLT_XGPON_TRX_TYPE_XPP_XE_R_3_CDFB                                           = 9,    /**< 10G EPON for XGS mode */
+    BCMOLT_XGPON_TRX_TYPE__NUM_OF   /**< Number of enum entries, not an entry itself. */
+} bcmolt_xgpon_trx_type;
+
+/** Actual Scheduler/Shaper. 
+ */
+typedef struct bcmolt_actual_schedulershaper
+{
+    bcmolt_time_quanta actual_mbs_tq;       /**< Actual MBS (TQ). */
+    bcmolt_time_quanta actual_weight_tq;    /**< Actual Weight (TQ). */
+} bcmolt_actual_schedulershaper;
+
+/** 128-bit AES key used for ONU authentication. 
+ */
+typedef struct bcmolt_aes_key
+{
+    uint8_t bytes[16];  /**< Bytes that comprise the key. */
+} bcmolt_aes_key;
+
+/** What portion of the capture buffer to read. 
+ */
+typedef struct bcmolt_api_capture_buffer_reader
+{
+    uint32_t offset;    /**< The bytes offset to read from. */
+    uint32_t size;      /**< The number of bytes to read. */
+} bcmolt_api_capture_buffer_reader;
+
+/** Configuration for API capture. 
+ */
+typedef struct bcmolt_api_capture_config
+{
+    bcmolt_api_capture_location location;   /**< Where to perform the API capture. */
+    uint32_t buffer_size_bytes;             /**< Maximum number of bytes to capture. */
+    bcmolt_api_capture_buffer_mode buffer_mode; /**< What to do when the capture buffer is full. */
+} bcmolt_api_capture_config;
+
+/** Statistics on the most recent API capture. 
+ */
+typedef struct bcmolt_api_capture_stats
+{
+    uint32_t buffer_used_bytes; /**< Used space in the capture buffer (in bytes). */
+    uint32_t buffer_wrap_count; /**< Number of times the capture buffer has wrapped. */
+    uint32_t events_recorded;   /**< Number of events recorded in the capture buffer. */
+    uint32_t events_dropped;    /**< Number of events dropped due to overflow. */
+    uint32_t readable_bytes;    /**< Number of bytes needed to retrieve capture buffer. */
+} bcmolt_api_capture_stats;
+
+/** Bounds. 
+ */
+typedef struct bcmolt_bounds
+{
+    uint32_t best_case;     /**< Best Case. */
+    uint32_t worst_case;    /**< Worst Case. */
+} bcmolt_bounds;
+
+/** Fixed-Length list: 8x bounds. 
+ */
+typedef struct bcmolt_arr_bounds_8
+{
+    bcmolt_bounds arr[8];   /**< Array. */
+} bcmolt_arr_bounds_8;
+
+/** Fixed-Length list: 8x calibration_record. 
+ */
+typedef struct bcmolt_arr_calibration_record_8
+{
+    bcmolt_calibration_record arr[8];   /**< Array. */
+} bcmolt_arr_calibration_record_8;
+
+/** DS frequency offset. 
+ */
+typedef struct bcmolt_ds_frequency_offset
+{
+    bcmolt_sign sign;   /**< sign. */
+    uint8_t value;      /**< value. */
+} bcmolt_ds_frequency_offset;
+
+/** Channel Profile 
+ */
+typedef struct bcmolt_channel_profile
+{
+    uint8_t version;        /**< Channel profile version */
+    uint8_t channel_index;  /**< Channel profile index */
+    bcmolt_ds_frequency_offset ds_frequency_offset; /**< The difference between the actual OLT CT Tx frequency and the nominal central frequency for the given DWLCH ID, expressed in units of 0.1GHz */
+    uint8_t channel_partition;                      /**< Channel partition */
+    uint8_t uwlch_id;       /**< The assigned upstream wavelength channel ID */
+    uint32_t us_frequency;  /**< The nominal central frequency of the upstream wavelength channel or a root frequency of the cyclic set of central frequencies forming an upstream wavelength channel, indicates the value in units of 0.1 GHz. */
+    bcmolt_upstream_line_rate_capabilities us_rate; /**< US rate. */
+    uint8_t default_onu_attenuation;                /**< The default ONU attenuation level in steps of 3dB */
+    uint8_t response_threshold;                     /**< Threshold represent the maximum number of Ploams the ONU can transmit at non-zero attenuation level while attempting to establish communication with OLT CT */
+    bcmolt_link_type us_link_type;                  /**< US link type. */
+    bcmos_bool is_valid;    /**< is valid. */
+} bcmolt_channel_profile;
+
+/** Fixed-Length list: 8x channel_profile. 
+ */
+typedef struct bcmolt_arr_channel_profile_8
+{
+    bcmolt_channel_profile arr[8];  /**< Array. */
+} bcmolt_arr_channel_profile_8;
+
+/** Power consumption report per channel 
+ */
+typedef struct bcmolt_power_consumption_channel_report
+{
+    uint8_t ds_wavelength_channel_id;   /**< Downstream wavelength channel ID */
+    uint8_t us_wavelength_channel_id;   /**< Upstream wavelength channel ID */
+    uint16_t power_consumption;         /**< Power consumption */
+} bcmolt_power_consumption_channel_report;
+
+/** Fixed-Length list: 8x power_consumption_channel_report. 
+ */
+typedef struct bcmolt_arr_power_consumption_channel_report_8
+{
+    bcmolt_power_consumption_channel_report arr[8]; /**< Array. */
+} bcmolt_arr_power_consumption_channel_report_8;
+
+/** Fixed-Length list: 2x U16. 
+ */
+typedef struct bcmolt_arr_u16_2
+{
+    uint16_t arr[2];    /**< Array. */
+} bcmolt_arr_u16_2;
+
+/** Fixed-Length list: 2x U16. 
+ */
+typedef struct bcmolt_arr_u16_2_hex
+{
+    uint16_t arr[2];    /**< Array. */
+} bcmolt_arr_u16_2_hex;
+
+/** Fixed-Length list: 5x U16. 
+ */
+typedef struct bcmolt_arr_u16_5_hex
+{
+    uint16_t arr[5];    /**< Array. */
+} bcmolt_arr_u16_5_hex;
+
+/** Fixed-Length list: 7x U16. 
+ */
+typedef struct bcmolt_arr_u16_7
+{
+    uint16_t arr[7];    /**< Array. */
+} bcmolt_arr_u16_7;
+
+/** Fixed-Length list: 6x U32. 
+ */
+typedef struct bcmolt_arr_u32_6
+{
+    uint32_t arr[6];    /**< Array. */
+} bcmolt_arr_u32_6;
+
+/** Fixed-Length list: 10x U8. 
+ */
+typedef struct bcmolt_arr_u8_10
+{
+    uint8_t arr[10];    /**< Array. */
+} bcmolt_arr_u8_10;
+
+/** Fixed-Length list: 12x U8. 
+ */
+typedef struct bcmolt_arr_u8_12
+{
+    uint8_t arr[12];    /**< Array. */
+} bcmolt_arr_u8_12;
+
+/** Fixed-Length list: 13x U8. 
+ */
+typedef struct bcmolt_arr_u8_13
+{
+    uint8_t arr[13];    /**< Array. */
+} bcmolt_arr_u8_13;
+
+/** Fixed-Length list: 36x U8. 
+ */
+typedef struct bcmolt_arr_u8_36
+{
+    uint8_t arr[36];    /**< Array. */
+} bcmolt_arr_u8_36;
+
+/** Fixed-Length list: 4x U8. 
+ */
+typedef struct bcmolt_arr_u8_4
+{
+    uint8_t arr[4]; /**< Array. */
+} bcmolt_arr_u8_4;
+
+/** Fixed-Length list: 40x U8. 
+ */
+typedef struct bcmolt_arr_u8_40
+{
+    uint8_t arr[40];    /**< Array. */
+} bcmolt_arr_u8_40;
+
+/** XGPON burst profile. 
+ */
+typedef struct bcmolt_xgpon_burst_profile
+{
+    uint8_t profile_version;            /**< profile version. */
+    bcmos_bool is_fec_on;               /**< is fec on. */
+    uint8_t delimiter_size_in_bytes;    /**< delimiter size in bytes. */
+    uint32_t delimiter_pattern_high;    /**< delimiter pattern high. */
+    uint32_t delimiter_pattern_low;     /**< delimiter pattern low. */
+    uint8_t preamble_length_in_bytes;   /**< preamble length in bytes. */
+    uint8_t preamble_repeats_count;     /**< preamble repeats count. */
+    uint32_t preamble_pattern_high;     /**< preamble pattern high. */
+    uint32_t preamble_pattern_low;      /**< preamble pattern low. */
+    uint64_t pon_tag;                   /**< PON tag. */
+    uint32_t num_of_guard_bytes;        /**< number of guard bytes. */
+    bcmos_bool is_profile_valid;        /**< is profile valid. */
+    uint32_t burst_overhead_size_in_words;  /**< Burst overhead size in 4-byte words (word size is 4 bytes regardless of upstream data rate). */
+} bcmolt_xgpon_burst_profile;
+
+/** Fixed-Length list: 4x xgpon_burst_profile. 
+ */
+typedef struct bcmolt_arr_xgpon_burst_profile_4
+{
+    bcmolt_xgpon_burst_profile arr[4];  /**< Array. */
+} bcmolt_arr_xgpon_burst_profile_4;
+
+/** XGPON TRX configuration. 
+ */
+typedef struct bcmolt_xgpon_trx_configuration
+{
+    uint32_t trx_reset_pattern_first;           /**< trx reset pattern first. */
+    uint32_t trx_reset_pattern_middle;          /**< trx reset pattern middle. */
+    uint32_t trx_reset_pattern_last;            /**< trx reset pattern last. */
+    uint8_t trx_reset_middle_repeats_count;     /**< trx reset middle repeats count. */
+    uint16_t trx_reset_location;                /**< trx reset location. */
+    bcmos_bool trx_reset_polarity;              /**< trx reset polarity. */
+    uint32_t bcdr_reset_pattern_first;          /**< bcdr reset pattern first. */
+    uint32_t bcdr_reset_pattern_middle;         /**< bcdr reset pattern middle. */
+    uint32_t bcdr_reset_pattern_last;           /**< bcdr reset pattern last. */
+    uint8_t bcdr_reset_middle_repeats_count;    /**< bcdr reset middle repeats count. */
+    uint8_t bcdr_reset_location;                /**< bcdr reset location. */
+    bcmos_bool bcdr_reset_polarity;             /**< bcdr reset polarity. */
+} bcmolt_xgpon_trx_configuration;
+
+/** Fixed-Length list: 4x xgpon_trx_configuration. 
+ */
+typedef struct bcmolt_arr_xgpon_trx_configuration_4
+{
+    bcmolt_xgpon_trx_configuration arr[4];  /**< Array. */
+} bcmolt_arr_xgpon_trx_configuration_4;
+
+/** Automatic ONU deactivation. 
+ */
+typedef struct bcmolt_automatic_onu_deactivation
+{
+    bcmos_bool los;         /**< Auto deactivate ONU due to LOS */
+    bcmos_bool onu_alarms;  /**< Auto deactivate ONU due to ONU alarms */
+    bcmos_bool tiwi;        /**< Auto deactivate ONU due to TIWi alarm */
+    bcmos_bool ack_timeout; /**< Auto deactivate ONU due to Ack timeout */
+    bcmos_bool sfi;         /**< Auto deactivate ONU due to SFi alarm */
+    bcmos_bool loki;        /**< Auto deactivate ONU due to Loki alarm */
+} bcmolt_automatic_onu_deactivation;
+
+/** TRX Resync pattern control. 
+ */
+typedef struct bcmolt_resync_control
+{
+    uint8_t start_pattern;      /**< start pattern. */
+    uint8_t middle_pattern;     /**< middle pattern. */
+    uint8_t last_pattern;       /**< last pattern. */
+    uint8_t middle_repetition;  /**< middle repetition. */
+    uint8_t location;           /**< location. */
+} bcmolt_resync_control;
+
+/** BCDR resync pattern configuration. 
+ */
+typedef struct bcmolt_bcdr_resync_pattern_configuration
+{
+    bcmolt_resync_control resync_control;           /**< resync control. */
+    bcmolt_resync_control ranging_resync_control;   /**< ranging resync control. */
+} bcmolt_bcdr_resync_pattern_configuration;
+
+/** BER monitoring parameters. 
+ */
+typedef struct bcmolt_ber_monitor_params
+{
+    uint32_t us_ber_interval;   /**< Interval in milliseconds for upstream BER monitoring (0 = disabled). */
+    uint8_t sf_threshold;       /**< Signal fail alarm is raised when BER raises to 10^-x, where x is this number. */
+    uint8_t sd_threshold;       /**< Signal degrade alarm is raised when BER raises to 10^-x, where x is this number. */
+} bcmolt_ber_monitor_params;
+
+/** CBR RT Allocation profile. 
+ */
+typedef struct bcmolt_cbr_rt_allocation_profile
+{
+    uint16_t ma_7;  /**< CBA maximum allocation size for frame gap 7 */
+    uint16_t ma_3;  /**< CBA maximum allocation size for frame gap 3 */
+    uint16_t ma_1;  /**< CBA maximum allocation size for frame gap 1 */
+} bcmolt_cbr_rt_allocation_profile;
+
+/** Results of the DDR test 
+ */
+typedef struct bcmolt_ddr_test_completed
+{
+    bcmolt_ddr_test_status status;  /**< Outcome of the DDR test */
+    union
+    {
+        struct
+        {
+            bcmolt_ddr_test_result cpu_result;          /**< CPU Result. */
+            bcmolt_ddr_test_result ras_0_result;        /**< RAS 0 Result. */
+            bcmolt_ddr_test_result ras_1_result;        /**< RAS 1 Result. */
+        } completed;
+
+        struct
+        {
+            bcmolt_host_connection_fail_reason reason;  /**< Connection fail reason. */
+        } connection_failed;
+    } u;
+} bcmolt_ddr_test_completed;
+
+/** Debug parameters for device configuration 
+ */
+typedef struct bcmolt_debug_device_cfg
+{
+    uint16_t host_dma_rx_queue_size;            /**< RX Queue size of the host DMA     */
+    uint16_t host_dma_tx_queue_size;            /**< TX Queue size of the host DMA     */
+    bcmos_bool avs_control;                     /**< AVS control. */
+    bcmos_bool use_prev_pon_serdes_firmware;    /**< This is a fallback option if there are issues with the new firmware */
+    bcmos_bool use_prev_nni_serdes_firmware;    /**< This is a fallback option if there are issues with the new firmware */
+} bcmolt_debug_device_cfg;
+
+/** Device NNI Speed. 
+ */
+typedef struct bcmolt_device_nni_speed
+{
+    bcmolt_nni_speed first_half;    /**< Interface speed for the first half of the NNI ports on the system. */
+    bcmolt_nni_speed second_half;   /**< Interface speed for the second half of the NNI ports on the system. */
+} bcmolt_device_nni_speed;
+
+/* \cond UNDOCUMENTED_SYMBOLS */
+
+/** Dummy Struct For Embedded Types. 
+ */
+typedef struct bcmolt_dummy_struct_for_embedded_types
+{
+    bcmolt_aggregation_domain ad;               /**< ad. */
+    bcmolt_epon_top et;                         /**< et. */
+    bcmolt_epm_lim_global elg;                  /**< elg. */
+    bcmolt_dba_port dba_port;                   /**< dba port. */
+    bcmolt_drv_sgb_id sgb;                      /**< sgb. */
+    bcmolt_drv_icf_id icf;                      /**< icf. */
+    bcmolt_tfb_trap_behavior tfb_trap_behavior; /**< tfb trap behavior. */
+    bcmolt_tfb_mode tfb_mode;                   /**< tfb mode. */
+    bcmolt_lim_sec_mode_up lim_sec_mode_up;     /**< lim sec mode up. */
+    bcmolt_lim_sec_mode_dn lim_sec_mode_dn;     /**< lim sec mode dn. */
+    bcmolt_xim_sec_mode xim_sec_mode;           /**< xim sec mode. */
+    bcmolt_dba_ram dba_ram;                     /**< dba ram. */
+    bcmolt_hsc_ram hsc_ram;                     /**< hsc ram. */
+    bcmolt_lim_ram lim_ram;                     /**< lim ram. */
+    bcmolt_lky_ram lky_ram;                     /**< lky ram. */
+    bcmolt_mic_ram mic_ram;                     /**< mic ram. */
+    bcmolt_xpcsrm_ram xpcs_ram;                 /**< xpcs ram. */
+    bcmolt_xg2g_id xg2g_id;                     /**< xg2g id. */
+} bcmolt_dummy_struct_for_embedded_types;
+
+/* \endcond */
+
+/** Embedded image entry. 
+ */
+typedef struct bcmolt_embedded_image_entry
+{
+    bcmolt_device_image_type image_type;    /**< Type of the embedded file image. */
+    uint32_t image_size;                    /**< Size of the embedded file image.  Unit is bytes. */
+    uint32_t crc32; /**< CRC 32 checksum of entire file image data. */
+    bcmolt_embedded_image_transfer_status status;   /**< Image transfer status. */
+    char image_name[64];    /**< Name of the file image.  Null-terminated string.  This is required for the DPoE ONU only.  DPoE requires the write request OAM contains the name of the file. */
+} bcmolt_embedded_image_entry;
+
+/** Variable-length list of embedded_image_entry. 
+ */
+typedef struct bcmolt_embedded_image_entry_list_u8
+{
+    uint8_t len;                        /**< List length. */
+    bcmolt_embedded_image_entry *val;   /**< List contents. */
+} bcmolt_embedded_image_entry_list_u8;
+
+/** Encryption_information_container. 
+ */
+typedef struct bcmolt_encryption_information_container
+{
+    bcmolt_epon_encryption_information_format format;   /**< Format. */
+    union
+    {
+        struct
+        {
+            uint8_t key[16];    /**< Key. */
+        } cfb;
+
+        struct
+        {
+            uint8_t key[16];    /**< Key. */
+            uint8_t sci[8];     /**< SCI. */
+        } ctr;
+    } u;
+} bcmolt_encryption_information_container;
+
+/** EPON clock transport configuration 
+ */
+typedef struct bcmolt_epon_clock_transport_configuration
+{
+    bcmolt_epon_clock_transport_mode epon_clock_transport_mode; /**< Clock Transport mode on this OLT PON Port. */
+} bcmolt_epon_clock_transport_configuration;
+
+/** Data of unknown link, including rate and alarm status 
+ */
+typedef struct bcmolt_unknown_link_status
+{
+    bcmolt_epon_link_rate link_rate;    /**< The rate of the unknown link */
+    bcmolt_status alarm_status;         /**< Whether the unknown link alarm is raised or cleared. */
+} bcmolt_unknown_link_status;
+
+/** Data of laser on/off violating link, including attempted laser on time, 
+ * attempted laser off time, and alarm status. 
+ */
+typedef struct bcmolt_laser_on_off_status
+{
+    bcmolt_time_quanta laser_on_time;   /**< The laser on time of the ONU that is violating. */
+    bcmolt_time_quanta laser_off_time;  /**< The laser off time of the ONU that is violating. */
+    bcmolt_status alarm_status;         /**< Whether the laser on/off violation alarm is raised or cleared. */
+} bcmolt_laser_on_off_status;
+
+/** Data of range violating link, including the range it attempted to use, and 
+ * alarm status. 
+ */
+typedef struct bcmolt_range_status
+{
+    bcmolt_time_quanta range;   /**< The range that the violating link attempted to register at. */
+    bcmolt_status alarm_status; /**< Whether the range violation alarm is raised or cleared. */
+} bcmolt_range_status;
+
+/** Details of Suspected Rogue ONU provided in Denied Link Alarm 
+ */
+typedef struct bcmolt_rogue_status
+{
+    bcmolt_epon_llid denied_llid;       /**< LLID. */
+    bcmolt_time_quanta denied_range;    /**< ONU Range. */
+    bcmolt_status alarm_status;         /**< Alarm State. */
+} bcmolt_rogue_status;
+
+/** The state of all alarms on an EPON Denied Link. 
+ */
+typedef struct bcmolt_epon_denied_link_alarm_state
+{
+    bcmolt_unknown_link_status unknown_link_violation;  /**< Unknown Link Violation. */
+    bcmolt_status overhead_profile_violation;           /**< Overhead Profile Violation. */
+    bcmolt_status max_link_violation;                   /**< Max Link Violation. */
+    bcmolt_status llid_pool_empty_violation;            /**< LLID Pool Empty Violation. */
+    bcmolt_laser_on_off_status laser_on_off_violation;  /**< Laser On/Off Violation. */
+    bcmolt_status system_resource_violation;            /**< System Resource Violation. */
+    bcmolt_range_status range_violation;                /**< Range Violation. */
+    bcmolt_status tdm_channels_exhausted;               /**< TDM Channels Exhausted. */
+    bcmolt_rogue_status rogue_violation;                /**< Rogue ONU Violation. */
+    bcmolt_status upstream_bandwidth_violation;         /**< Upstream Bandwidth Violation. */
+} bcmolt_epon_denied_link_alarm_state;
+
+/** Keys and mode for encrypting the EPON logical link. 
+ */
+typedef struct bcmolt_epon_encryption_config
+{
+    bcmolt_epon_encryption_mode downstream_mode;    /**< Downstream Mode. */
+    bcmolt_epon_key_choice downstream_key_choice;   /**< Downstream Key Choice. */
+    bcmolt_encryption_information_container downstream_encryption_information;  /**< Downstream Encryption Information. */
+    bcmolt_epon_encryption_mode upstream_mode;  /**< Upstream Mode. */
+    bcmolt_epon_key_choice upstream_key_choice; /**< Upstream Key Choice. */
+    bcmolt_encryption_information_container upstream_encryption_information;    /**< Upstream Encryption Information. */
+} bcmolt_epon_encryption_config;
+
+/** Key exchange configuration that applies to the EPON link. 
+ */
+typedef struct bcmolt_epon_key_exchange_config
+{
+    bcmolt_epon_oam_type oam_type;              /**< The type of OAM that is sent to start the key exchange. */
+    uint16_t period;                            /**< Key exchange period in seconds.  0 means disable encryption. */
+    bcmolt_epon_encryption_direction direction; /**< Encryption direction: Downstream only or Bi-directional. */
+} bcmolt_epon_key_exchange_config;
+
+/** EPON laser overhead parameters. (Laser On and Laser Off times) 
+ */
+typedef struct bcmolt_epon_laser_overhead_parameters
+{
+    bcmolt_time_quanta laser_on_time;   /**< Number of time quanta to allow for ONUs' laser-on transition. */
+    bcmolt_time_quanta laser_off_time;  /**< Number of time quanta to allow for ONUs' laser-off transition. */
+} bcmolt_epon_laser_overhead_parameters;
+
+/** The state of all alarms on an EPON Link. 
+ */
+typedef struct bcmolt_epon_link_alarm_state
+{
+    bcmolt_status key_exchange_failure;         /**< Key Exchange Failure. */
+    bcmolt_status invalid_mpcp_report_received; /**< Invalid MPCP Report Received. */
+    bcmolt_status mpcp_report_timeout;          /**< MPCP Report Timeout. */
+    bcmolt_status oam_keepalive_timeout;        /**< OAM Keepalive Timeout. */
+} bcmolt_epon_link_alarm_state;
+
+/** Downstream and upstream FEC enable state for an EPON link. 
+ */
+typedef struct bcmolt_epon_link_fec_en
+{
+    bcmolt_epon_link_fec_state upstream;    /**< FEC enable state for upstream path. */
+    bcmolt_epon_link_fec_state downstream;  /**< FEC enable state for downstream path. */
+} bcmolt_epon_link_fec_en;
+
+/** EPON logical link. 
+ */
+typedef struct bcmolt_epon_link_info
+{
+    bcmolt_epon_link_status link_status;            /**< Link status flags. */
+    bcmolt_epon_link_rate rate;                     /**< The rate at which the link operates. */
+    bcmolt_epon_llid llid;                          /**< The LLID of the link. */
+    bcmolt_mpcp_discovery_info mpcp_discovery_info; /**< Flags from MPCP discovery. */
+    bcmolt_time_quanta onu_laser_on_time_tq;        /**< Laser on time reported by ONU.  This is set to 0 for 1G/1G links as 1G MPCP does not include this field. */
+    bcmolt_time_quanta onu_laser_off_time_tq;       /**< Laser off time reported by ONU. */
+    uint8_t pending_grants;             /**< The number of pending grants. */
+    bcmolt_time_quanta range_value_tq;  /**< The link's range value in TQ. */
+    bcmolt_epon_tunnel_id tunnel_id;    /**< The tunnel ID to use when sending traffic to the link. */
+} bcmolt_epon_link_info;
+
+/** Gate parameters. 
+ */
+typedef struct bcmolt_gate_parameters
+{
+    bcmolt_mpcp_registration_gate_flags flags;  /**< Flags to set for this gate. */
+    uint32_t delay_before_ms;                   /**< Delay before sending this gate in milliseconds. */
+    bcmolt_time_quanta gate_size_tq;            /**< Size of this gate in time quanta. */
+} bcmolt_gate_parameters;
+
+/** Variable-length list of gate_parameters. 
+ */
+typedef struct bcmolt_gate_parameters_list_u32
+{
+    uint32_t len;                   /**< List length. */
+    bcmolt_gate_parameters *val;    /**< List contents. */
+} bcmolt_gate_parameters_list_u32;
+
+/** Specification of the EPON gate mode and associated parameters. 
+ */
+typedef struct bcmolt_epon_registration_gate_mode
+{
+    bcmolt_mpcp_gate_mode registration_gate_mode;   /**< MPCP registration gate mode. */
+    union
+    {
+        struct
+        {
+            uint16_t reg_ack_timeout_ms;            /**< Amount of time to wait for a link to respond with a register ack after a register is sent. */
+        } teknovus;
+
+        struct
+        {
+            bcmolt_gate_parameters_list_u32 gates;  /**< Gates to send for REG ACK. */
+        } custom;
+    } u;
+} bcmolt_epon_registration_gate_mode;
+
+/** Configuration related to EPON logical link registration and reporting. 
+ */
+typedef struct bcmolt_epon_logical_link_options
+{
+    bcmolt_epon_registration_gate_mode registration_gate_mode;  /**< EPON registration gate mode. */
+    bcmolt_epon_dba_reporting_mode reporting_mode;              /**< Control for how the DBA handles received MPCP report frames. */
+    uint16_t max_links; /**< Maximum number of links to register on the EPON NI.  A value of zero indicates no fixed limit. This is an aggregate limit on the number of non-system links on a PON. This limit applies to both registered and non-registered links. This value cannot be reduced below the count of links currently allocated, nor is it valid to increase it above the sum of the per RP mac_links limits. */
+} bcmolt_epon_logical_link_options;
+
+/** The list of alarms defined for an EPON NI 
+ */
+typedef struct bcmolt_epon_ni_alarm_state
+{
+    bcmolt_status no_reports;   /**< No Reports. */
+} bcmolt_epon_ni_alarm_state;
+
+/** Encryption configuration that applies to the EPON NI as a whole. 
+ */
+typedef struct bcmolt_epon_ni_encryption_cfg
+{
+    bcmolt_epon_encryption_mode downstream_encryption_mode; /**< Downstream encryption mode. */
+    bcmolt_epon_encryption_mode upstream_encryption_mode;   /**< Upstream encryption mode. */
+} bcmolt_epon_ni_encryption_cfg;
+
+/** EPON ONU Upgrade Parameters. 
+ */
+typedef struct bcmolt_epon_onu_upgrade_params
+{
+    bcmolt_epon_oam_extension_type oam_extension_type;  /**< OAM Extension Type. */
+    union
+    {
+        struct
+        {
+            uint32_t response_timeout_ms;               /**< The length of time that the OLT will wait for the ONU to respond. */
+        } broadcom;
+
+        struct
+        {
+            uint32_t response_timeout_ms;               /**< The length of time that the OLT will wait for the ONU to respond. */
+        } ctc;
+
+        struct
+        {
+            uint32_t response_timeout_ms;               /**< The length of time that the OLT will wait for the ONU to respond. */
+        } dasan;
+
+        struct
+        {
+            uint32_t response_timeout_ms;               /**< The length of time that the OLT will wait for the ONU to respond. */
+        } kt;
+
+        struct
+        {
+            uint32_t response_timeout_ms;               /**< The length of time that the OLT will wait for the ONU to respond. */
+            uint16_t block_size;                        /**< Number of byte per data block. */
+            uint32_t final_ack_response_timeout;        /**< Timeout for the final ACK response.  The DPoE standard 1.0 specifies this should be at least 15 seconds.  Unit is seconds. */
+        } dpoe;
+    } u;
+} bcmolt_epon_onu_upgrade_params;
+
+/** EPON ONU Upgrade Status. 
+ */
+typedef struct bcmolt_epon_onu_upgrade_status
+{
+    bcmos_mac_address onu_id;                       /**< ONU ID. */
+    bcmolt_epon_onu_upgrade_return_code error_code; /**< Upgrade status. */
+    bcmolt_epon_onu_upgrade_onu_response_code onu_return_code;  /**< Response code from the ONU. */
+} bcmolt_epon_onu_upgrade_status;
+
+/** Variable-length list of epon_onu_upgrade_status. 
+ */
+typedef struct bcmolt_epon_onu_upgrade_status_list_u32
+{
+    uint32_t len;   /**< List length. */
+    bcmolt_epon_onu_upgrade_status *val;    /**< List contents. */
+} bcmolt_epon_onu_upgrade_status_list_u32;
+
+/** EPON protection switching configuration 
+ */
+typedef struct bcmolt_epon_protection_switching_configuration
+{
+    bcmolt_epon_protection_switching_type protection_type;  /**< Protection scheme. */
+    bcmolt_protection_switching_detection_options protection_switching_options; /**< Protection switching options. */
+    bcmolt_epon_protection_switching_reranging_options rerange_options;         /**< Re-ranging algorithm selection */
+    uint8_t rerange_attempts;                   /**< Number of times to re range during a switch */
+    uint16_t rerange_interval;                  /**< Interval between re-range attempts. */
+    uint16_t sync_gate_duration;                /**< Duration of sync gate. */
+    bcmolt_gpio_pin gpio_input;                 /**< Configures state on PON (working/standby) */
+    bcmolt_gpio_polarity gpio_input_polarity;   /**< GPIO Input Polarity. */
+    bcmolt_gpio_pin gpio_output;                /**< Indicates state on PON (working/standby) */
+    bcmolt_gpio_polarity gpio_output_polarity;  /**< GPIO Output Polarity. */
+} bcmolt_epon_protection_switching_configuration;
+
+/** Variable-length list of U8. 
+ */
+typedef struct bcmolt_u8_list_u16
+{
+    uint16_t len;   /**< List length. */
+    uint8_t *val;   /**< List contents. */
+} bcmolt_u8_list_u16;
+
+/** A template for an Ethernet frame of some fixed length, accompanied by a mask 
+ * vector of equal size.  When used in the context of frame transmission, the 
+ * mask vector distinguishes bit regions of the template that should be 
+ * transmitted verbatim (e.g. the content of an OAM message) from bit regions 
+ * that should be filled in farther along the data path (e.g. Ethernet source 
+ * or destination addresses).  When used in the context of frame reception, the 
+ * mask vector distinguishes bit regions of the template that are to be 
+ * compared with received frames (e.g. flags within OAM heartbeat messages 
+ * received from ONUs) from "don't care" bit regions (e.g. Ethernet source 
+ * addresses from those same messages).  
+ */
+typedef struct bcmolt_ethernet_frame_masked
+{
+    bcmolt_u8_list_u16 frame_octets;    /**< A complete Ethernet frame.  For every zero bit in the mask_octets */
+    bcmolt_u8_list_u16 mask_octets;     /**< A bit vector of the same length as frame_octets. */
+} bcmolt_ethernet_frame_masked;
+
+/** A complete Ethernet frame, beginning with the DA (layer 2 destination 
+ * address) and ending just before the FCS (frame check sequence).  In contrast 
+ * to `masked Ethernet frames,' which see, unmasked Ethernet frames are 
+ * transmitted or interpreted/relayed verbatim.  
+ */
+typedef struct bcmolt_ethernet_frame_unmasked
+{
+    bcmolt_u8_list_u16 frame_octets;    /**< Complete content of the Ethernet frame, beginning with the DA (layer 2 destination */
+} bcmolt_ethernet_frame_unmasked;
+
+/** Extended Guard Time. 
+ */
+typedef struct bcmolt_extended_guard_time
+{
+    uint32_t additional_preburst_guard_time;    /**< Additional guard time (in bytes) before all bursts for this ONU. */
+    uint32_t additional_postburst_guard_time;   /**< Additional guard time (in bytes) after all bursts for this ONU. */
+} bcmolt_extended_guard_time;
+
+/** Firmware SW Version 
+ */
+typedef struct bcmolt_firmware_sw_version
+{
+    uint8_t major;          /**< Major . */
+    uint8_t minor;          /**< Minor. */
+    uint8_t revision;       /**< Revision. */
+    uint32_t model;         /**< Model. */
+    char build_time[32];    /**< Firmware SW build time */
+} bcmolt_firmware_sw_version;
+
+/** GEM port configuration. 
+ */
+typedef struct bcmolt_gem_port_configuration
+{
+    bcmolt_gem_port_direction direction;    /**< GEM port direction */
+    bcmolt_gem_port_type type;              /**< GEM port type */
+} bcmolt_gem_port_configuration;
+
+/** GPON Alloc With State. 
+ */
+typedef struct bcmolt_gpon_alloc_with_state
+{
+    bcmolt_gpon_alloc_id alloc_id;  /**< Alloc ID. */
+    bcmolt_alloc_state state;       /**< State. */
+} bcmolt_gpon_alloc_with_state;
+
+/** Variable-length list of gpon_alloc_with_state. 
+ */
+typedef struct bcmolt_gpon_alloc_with_state_list_u16_max_32
+{
+    uint16_t len;                       /**< List length. */
+    bcmolt_gpon_alloc_with_state *val;  /**< List contents. */
+} bcmolt_gpon_alloc_with_state_list_u16_max_32;
+
+/** GPON Debug Flow Config. 
+ */
+typedef struct bcmolt_gpon_debug_flow_config
+{
+    bcmolt_control_state untagged_flow; /**< If enabled, this GEM port will expect upstream traffic to be untagged and downstream traffic to use a custom VLAN tag. */
+    bcmolt_vlan_id untagged_vid;        /**< The VLAN ID to use when adding MAC table entries for untagged traffic. */
+} bcmolt_gpon_debug_flow_config;
+
+/** Variable-length list of gpon_gem_id. 
+ */
+typedef struct bcmolt_gpon_gem_id_list_u8_max_16
+{
+    uint8_t len;                /**< List length. */
+    bcmolt_gpon_gem_id *val;    /**< List contents. */
+} bcmolt_gpon_gem_id_list_u8_max_16;
+
+/** GPON GEM Port With State. 
+ */
+typedef struct bcmolt_gpon_gem_port_with_state
+{
+    bcmolt_gpon_gem_id gem_id;          /**< GEM ID. */
+    bcmolt_gpon_gem_port_state state;   /**< State. */
+} bcmolt_gpon_gem_port_with_state;
+
+/** Variable-length list of gpon_gem_port_with_state. 
+ */
+typedef struct bcmolt_gpon_gem_port_with_state_list_u16_max_128
+{
+    uint16_t len;   /**< List length. */
+    bcmolt_gpon_gem_port_with_state *val;   /**< List contents. */
+} bcmolt_gpon_gem_port_with_state_list_u16_max_128;
+
+/** Variable-length list of gpon_gem_port_with_state. 
+ */
+typedef struct bcmolt_gpon_gem_port_with_state_list_u16_max_256
+{
+    uint16_t len;   /**< List length. */
+    bcmolt_gpon_gem_port_with_state *val;   /**< List contents. */
+} bcmolt_gpon_gem_port_with_state_list_u16_max_256;
+
+/** Options for configuring the "untagged flow" feature. 
+ */
+typedef struct bcmolt_gpon_iwf_debug_flow_config
+{
+    bcmos_bool learn_untagged_flow_vids;        /**< When a MAC/VID is learned on an untagged flow, learn the received MAC address with both the untagged VID and the received VID (even though it will be invalid). */
+    uint16_t untagged_flow_shaping_ms_per_sec;  /**< If this value is greater than 0, learning events on untagged flows will only be enabled for N milliseconds every second.  For example, a value of 10 would mean learning is only enabled for 1% of the total time. */
+} bcmolt_gpon_iwf_debug_flow_config;
+
+/** GPON Key Exchange . 
+ */
+typedef struct bcmolt_gpon_key_exchange
+{
+    uint32_t interval;              /**< Key Exchange process interval in milliseconds */
+    bcmolt_control_state control;   /**< Enable\disable periodic process of Key Exchange for active ONUs */
+    bcmolt_key_exchange_mode mode;  /**< Key exchange mode */
+    bcmolt_control_state encrypted_ports_only;  /**< Perform key exchange only to ONUs with GEM ports that have downstream encryption enabled */
+} bcmolt_gpon_key_exchange;
+
+/** GPON MAC table scan result for a single MAC table entry. 
+ */
+typedef struct bcmolt_gpon_mac_table_scan_result
+{
+    bcmolt_vlan_id vlan;            /**< The VLAN ID of the entry. */
+    bcmolt_flow_id flow_id;         /**< The flow ID assigned to traffic that matches this MAC table entry. */
+    bcmos_bool stat;                /**< Whether or not the MAC entry is static.  Static entries don't age. */
+    bcmolt_gpon_gem_id gem_port_id; /**< The GEM port ID of the traffic that created this table entry.  This only applies to automatically-learned entries.  Manually-added entries will have the value BCMOLT_PON_GEM_PORT_ID_INVALID. */
+    bcmolt_gpon_onu_id onu_id;      /**< The ONU ID for the traffic that created this table entry.  This only valid if gem_port_id is valid.  Otherwise this will be set to BCMOLT_GPON_ONU_ID_INVALID. */
+} bcmolt_gpon_mac_table_scan_result;
+
+/** Variable-length list of gpon_mac_table_scan_result. 
+ */
+typedef struct bcmolt_gpon_mac_table_scan_result_list_u16
+{
+    uint16_t len;   /**< List length. */
+    bcmolt_gpon_mac_table_scan_result *val; /**< List contents. */
+} bcmolt_gpon_mac_table_scan_result_list_u16;
+
+/** GPON NI Debug parameters 
+ */
+typedef struct bcmolt_gpon_ni_debug
+{
+    uint16_t number_of_gem_ports_per_onu;   /**< Number of Gem ports per ONU */
+} bcmolt_gpon_ni_debug;
+
+/** GPON ONU activation. 
+ */
+typedef struct bcmolt_gpon_onu_activation
+{
+    bcmolt_control_state key_exchange;              /**< Perform single key exchange during activation. */
+    bcmolt_control_state password_authentication;   /**< Perform password authentication during activation */
+    bcmolt_control_state fail_due_to_password_authentication_failure;   /**< Deactivate ONU due to password authentication failure */
+} bcmolt_gpon_onu_activation;
+
+/** GPON ONU alarm status. 
+ */
+typedef struct bcmolt_gpon_onu_alarm_state
+{
+    bcmolt_status losi;     /**< Loss of signal. */
+    bcmolt_status lofi;     /**< Loss of frame. */
+    bcmolt_status loami;    /**< Loss of PLOAM. */
+    bcmolt_status dgi;      /**< Dying Gasp. */
+    bcmolt_status tiwi;     /**< Transmission interference Alarm. */
+    bcmolt_status dowi;     /**< Drift of Window. */
+    bcmolt_status sufi;     /**< Start UP Failure. */
+    bcmolt_status sfi;      /**< Signal Fail. */
+    bcmolt_status sdi;      /**< Signal Degraded. */
+    bcmolt_status dfi;      /**< Deactivation Failure. */
+    bcmolt_status loai;     /**< Loss of ack. */
+    bcmolt_status loki;     /**< loss of key. */
+} bcmolt_gpon_onu_alarm_state;
+
+/** GPON ONU alarms. 
+ */
+typedef struct bcmolt_gpon_onu_alarms
+{
+    bcmolt_status losi;     /**< LOSi. */
+    bcmolt_status lofi;     /**< LOFi. */
+    bcmolt_status loami;    /**< LOAMi. */
+} bcmolt_gpon_onu_alarms;
+
+/** GPON ONU alarms thresholds. 
+ */
+typedef struct bcmolt_gpon_onu_alarms_thresholds
+{
+    uint8_t losi;   /**< Threshold for asserting LOSi alarm */
+    uint8_t lofi;   /**< Threshold for asserting LOFi alarm */
+    uint8_t loami;  /**< Threshold for asserting LOAMi alarm */
+} bcmolt_gpon_onu_alarms_thresholds;
+
+/** GPON ONU EQD. 
+ */
+typedef struct bcmolt_gpon_onu_eqd
+{
+    bcmolt_gpon_onu_id onu_id;  /**< ONU ID. */
+    uint32_t eqd;               /**< EQD. */
+} bcmolt_gpon_onu_eqd;
+
+/** Variable-length list of gpon_onu_eqd. 
+ */
+typedef struct bcmolt_gpon_onu_eqd_list_u32
+{
+    uint32_t len;               /**< List length. */
+    bcmolt_gpon_onu_eqd *val;   /**< List contents. */
+} bcmolt_gpon_onu_eqd_list_u32;
+
+/** Variable-length list of gpon_onu_id. 
+ */
+typedef struct bcmolt_gpon_onu_id_list_u32_max_256
+{
+    uint32_t len;               /**< List length. */
+    bcmolt_gpon_onu_id *val;    /**< List contents. */
+} bcmolt_gpon_onu_id_list_u32_max_256;
+
+/** GPON ONU upgrade params. 
+ */
+typedef struct bcmolt_gpon_onu_upgrade_params
+{
+    uint32_t response_timeout_ms;       /**< The length of time that the OLT will wait for the ONU to respond. */
+    uint8_t max_retry_count;            /**< The number of retries. */
+    bcmolt_omci_device_id omci_format;  /**< Baseline (0x0A) or Extended (0x0B). */
+    uint16_t window_size;               /**< Number of sections per window. */
+    bcmos_bool activate_commit;         /**< Automatically activate the new image and commit. */
+    uint32_t delay_for_commit_ms;       /**< Delay time before COMMIT command.  Unit is milliseconds. */
+    uint8_t max_activation_attempts;    /**< Maximum number of re-attempts to activate the ONU. */
+} bcmolt_gpon_onu_upgrade_params;
+
+/** GPON ONU Upgrade Status. 
+ */
+typedef struct bcmolt_gpon_onu_upgrade_status
+{
+    bcmolt_pon_onu_id onu_id;   /**< ONU ID. */
+    bcmolt_gpon_onu_upgrade_return_code error_code; /**< Error Code. */
+    bcmolt_omci_result_code fail_reason;            /**< Failure reason specific to the Error Code above. */
+} bcmolt_gpon_onu_upgrade_status;
+
+/** Variable-length list of gpon_onu_upgrade_status. 
+ */
+typedef struct bcmolt_gpon_onu_upgrade_status_list_u32
+{
+    uint32_t len;   /**< List length. */
+    bcmolt_gpon_onu_upgrade_status *val;    /**< List contents. */
+} bcmolt_gpon_onu_upgrade_status_list_u32;
+
+/** GPON ONU With State. 
+ */
+typedef struct bcmolt_gpon_onu_with_state
+{
+    bcmolt_gpon_onu_id onu_id;  /**< ONU ID. */
+    bcmolt_onu_state state;     /**< State. */
+} bcmolt_gpon_onu_with_state;
+
+/** Variable-length list of gpon_onu_with_state. 
+ */
+typedef struct bcmolt_gpon_onu_with_state_list_u16_max_128
+{
+    uint16_t len;                       /**< List length. */
+    bcmolt_gpon_onu_with_state *val;    /**< List contents. */
+} bcmolt_gpon_onu_with_state_list_u16_max_128;
+
+/** gpon RSSI general configuration. 
+ */
+typedef struct bcmolt_gpon_rssi_general_configuration
+{
+    uint8_t location;   /**< the pattern activation location in clock cycles relative (before) to start of burst. */
+    bcmolt_rssi_location_sign location_sign;    /**< this bit determines whether the location of the RSSI in data mode (configured as RSSI pattern 1) will be before or after the burst start. */
+    uint8_t start_pattern;                      /**< the value of the first cycle of the pattern (will be transmitted once). */
+    uint8_t middle_pattern;                     /**< the value of the pattern that will be transmitted middle_repetition times between the start and the end of the pattern. */
+    uint8_t last_pattern;                       /**< the value of the last cycle of the pattern. will be transmitted once. */
+    uint8_t middle_repertition;                 /**< the number of times the middle pattern will be repeated. */
+    uint16_t minimum_burst;                     /**< the minimum burst size needed measurement */
+} bcmolt_gpon_rssi_general_configuration;
+
+/** GPON SN Acquisition. 
+ */
+typedef struct bcmolt_gpon_sn_acquisition
+{
+    uint32_t interval;              /**< SN process interval in milliseconds */
+    bcmolt_control_state control;   /**< SN process control */
+    bcmolt_onu_post_discovery_mode onu_post_discovery_mode; /**< Automatic operation following ONU discovery */
+} bcmolt_gpon_sn_acquisition;
+
+/** Host SW Version 
+ */
+typedef struct bcmolt_host_sw_version
+{
+    uint8_t major;          /**< Major . */
+    uint8_t minor;          /**< Minor. */
+    uint8_t revision;       /**< Revision. */
+    uint32_t model;         /**< Model. */
+    char build_time[32];    /**< Firmware SW build time */
+} bcmolt_host_sw_version;
+
+/** HW PON ID. 
+ */
+typedef struct bcmolt_hw_pon_id
+{
+    uint32_t pon_id_1;  /**< LSB 32 bits of PON ID. */
+    uint32_t pon_id_2;  /**< MSB 19 bits of PON ID. */
+} bcmolt_hw_pon_id;
+
+/** Port Identity used in IEEE 802.1as Clock Tranport. 
+ */
+typedef struct bcmolt_ieee_8021as_port_identity
+{
+    uint8_t clock_identity[8];  /**< Clock identity is a unique identifier used in IEEE 802.1as clock transport. */
+    uint16_t port_number;       /**< Port Number. */
+} bcmolt_ieee_8021as_port_identity;
+
+/** Timestamp used in IEEE 802.1as clock transport. 
+ */
+typedef struct bcmolt_ieee_8021as_timestamp
+{
+    uint16_t seconds_high;  /**< The high 16 bits of the 48 bit seconds field as required by IEEE. */
+    uint32_t seconds_low;   /**< The low 32 bts of the 48 bit seconds field as required by IEEE. */
+    uint32_t nanoseconds;   /**< The Nanoseconds part of the timestamp. */
+} bcmolt_ieee_8021as_timestamp;
+
+/** Full frame of the IEEE 802.1as time sync message used in clock transport. 
+ */
+typedef struct bcmolt_ieee_8021as_time_sync
+{
+    bcmos_mac_address destination_mac;  /**< Destination MAC Address. */
+    bcmos_mac_address source_mac;       /**< Source MAC Address. */
+    uint16_t eth_type_len;              /**< Type of Ethernet PDU. */
+    uint8_t eth_subtype;                /**< Slow protocol Subtype. */
+    uint8_t ieee_oui[3];                /**< IEEE OUI. */
+    uint16_t msg_id;                    /**< Message ID. */
+    uint32_t x; /**< Reference Time. */
+    bcmolt_ieee_8021as_timestamp tod;               /**< Time of day timestamp. */
+    bcmolt_ieee_8021as_port_identity port_identity; /**< Source port identity. */
+    int8_t log_msg_interval;                        /**< Log message interval (currently unused but required by spec). */
+    double rate_ratio;                  /**< Ratio of local second to grandmaster second. */
+    uint16_t gm_time_base_indicator;    /**< Grandmaster time base indicator (currently unused but required by spec). */
+    uint8_t last_gm_phase_change[12];   /**< Time of the current grandmaster minus the time of the previous grandmaster, in units of 2^-16 ns (currently unused but required by spec). */
+    int32_t last_frequency_change;      /**< Fractional frequency offset of the current grandmaster relative to the previous grandmaster (Not currently used but required by spec). */
+} bcmolt_ieee_8021as_time_sync;
+
+/** Rate limiting / shaping for the indication channel. 
+ */
+typedef struct bcmolt_indication_shaping
+{
+    bcmos_bool enabled; /**< Whether or not the device will limit the rate of indications sent to the host. */
+    uint32_t max_rate;  /**< Maximum number of indications per second to be generated by the device. */
+    uint32_t max_burst; /**< Maximum number of indications that are allowed to be sent back-to-back. */
+} bcmolt_indication_shaping;
+
+/** LA resync pattern configuration. 
+ */
+typedef struct bcmolt_la_resync_pattern_configuration
+{
+    bcmolt_resync_control resync_control;   /**< used in normal mode */
+    bcmolt_resync_control ranging_resync_control;   /**< used in ranging mode at the beginning of each ranging cycle */
+} bcmolt_la_resync_pattern_configuration;
+
+/** log buffer. 
+ */
+typedef struct bcmolt_log_buffer
+{
+    char buff[2048];        /**< buff. */
+    uint32_t msg_to_read;   /**< msg_to_read. */
+} bcmolt_log_buffer;
+
+/** MAC table configuration. 
+ */
+typedef struct bcmolt_mac_table_configuration
+{
+    bcmolt_mac_table_miss_fallback miss_fallback;   /**< Behavior for downstream traffic when MAC table lookup fails. */
+    bcmolt_flow_id default_flow_id;                 /**< Flow ID assigned to upstream traffic on a MAC table miss if miss_fallback is set to default_flow. */
+    uint32_t aging_time;    /**< Aging time in seconds.  If no traffic is seen for a given MAC address / VID for this length of time, the entry will age and the host will be notified via indication. */
+    bcmolt_mac_table_learning_mode learning_mode;   /**< Learning table mode. */
+    bcmolt_control_state automatic_mac_learning;    /**< If enabled, new MAC table entries are added automatically the first time a new MAC address/VID combination is seen.  If disabled, no actions are taken automatically except notifying the host via indication. */
+    bcmolt_control_state automatic_mac_aging;       /**< If enabled, MAC table entries are deleted automatically when they age.  If disabled, no actions are taken automatically except notifying the host via indication. */
+    bcmolt_control_state automatic_mac_move;        /**< Only applicable if learning_mode is move.  If enabled, MAC table entries are automatically updated when a MAC move condition is encountered.  If disabled, no actions are taken automatically except notifying the host via indication. */
+    bcmos_bool automatic_static_mode;               /**< If enabled, all MAC entries that are added automatically via automatic_mac_learning and automatic_mac_move will be treated as static (not aging). */
+} bcmolt_mac_table_configuration;
+
+/** Variable-length list of MacAddress. 
+ */
+typedef struct bcmolt_macaddress_list_u32
+{
+    uint32_t len;           /**< List length. */
+    bcmos_mac_address *val; /**< List contents. */
+} bcmolt_macaddress_list_u32;
+
+/** Variable-length list of MacAddress. 
+ */
+typedef struct bcmolt_macaddress_list_u32_max_2048
+{
+    uint32_t len;           /**< List length. */
+    bcmos_mac_address *val; /**< List contents. */
+} bcmolt_macaddress_list_u32_max_2048;
+
+/** NNI Link Status. 
+ */
+typedef struct bcmolt_nni_link_status
+{
+    bcmolt_trivalent link_status;       /**< The local and remote partners are abled and ready to transmit/receive traffic. */
+    bcmolt_trivalent signal_detected;   /**< Serdes controller has detected energy on the line.  debugging purpose. */
+    bcmolt_trivalent pmd_locked;        /**< Indicates PMD locked.  debugging purpose.  If this is true, but the links status is not, that means the transceiver is not enabled. */
+} bcmolt_nni_link_status;
+
+/** OAM heartbeat configuration 
+ */
+typedef struct bcmolt_oam_heartbeat_config
+{
+    uint16_t send_period;               /**< The period at which to send OAM info frames, and expect info responses on this link (in seconds). */
+    bcmolt_u8_list_u16 transmit_frame;  /**< The OAM PDU payload from the Flags field (offset 15) to the end of the PDU (before the FCS). */
+    bcmolt_ethernet_frame_masked ignored_receive_frame_template;    /**< OAM packets matching this masked payload will be dropped rather than forwarded to the host. */
+    uint16_t receive_timeout;       /**< The time (in seconds) to report OAM timeout after the last received OAM frame. */
+    uint16_t maximum_receive_size;  /**< Maximum size of received frames.  Setting this value to zero will cause all OAM frames to be dropped. */
+} bcmolt_oam_heartbeat_config;
+
+/** Configuration parameters for the ONU power management feature. These should 
+ * match the parameters sent to the ONU via OMCI. 
+ */
+typedef struct bcmolt_onu_power_management_configuration
+{
+    uint32_t ilowpower;         /**< The maximum amount of time any ONU on this NI may spend in a low power state in units of 125us. */
+    uint32_t iaware;            /**< The minimum amount of time every ONU on his NI must spend in an aware state in units of 125us. */
+    uint16_t itransinit;        /**< The maximum amount of time required by any ONU on this NI to power up its transmitter only from a low power state in units of 125us. */
+    uint16_t itxinit;           /**< The maximum amount of time required by any ONU on this NI to power up its transceiver (transmitter + receiver) from a low power state in units of 125us. */
+    uint32_t irxoff;            /**< The maximum amount of time any ONU on this NI may spend with its receiver disabled in units of 125us. */
+    uint16_t low_power_clobi;   /**< The number of consecutive non-contiguous missing allocations to allow before raising the LOSi/LOFi/LOBi alarms on any ONU on this NI. */
+} bcmolt_onu_power_management_configuration;
+
+/** onu tuning configuration. 
+ */
+typedef struct bcmolt_onu_tuning_configuration
+{
+    uint32_t tsource;   /**< Tsource timer in msec */
+    uint32_t ttarget;   /**< Ttarget timer in msec */
+    bcmos_bool request_registration_required;   /**< is request registration part of the tuning in process */
+} bcmolt_onu_tuning_configuration;
+
+/** Identifies the TWDM channel termination within a certain domain 
+ */
+typedef struct bcmolt_pon_id
+{
+    uint32_t administrative_label;  /**< MSB 28 bit of the PON ID */
+    uint8_t dwlch_id;               /**< LSB 4 bits of the PON ID */
+} bcmolt_pon_id;
+
+/** Operation Control 
+ */
+typedef struct bcmolt_operation_control
+{
+    uint8_t re;                 /**< Indicates whether the Transmit Optical Level (TOL) contains the launch power of the OTL (RE=0) or of a reach extender (RE=1) */
+    bcmolt_odn_class odn_class; /**< Identifies the nominal optical parameters of the transceiver according to the ODN Optical Path Loss (OPL) */
+    bcmolt_control_state ds_fec_mode;   /**< Enable/Disable the downstream FEC. Default is Enable. Attribute can be set only when PON NI state is Inactive. */
+    bcmolt_tc_protocol protocol;        /**< When system mode is NGPON2, this parameter Indicate the TC layer protocol: ITU-T G.989.3 or ITU-T G.987.3 */
+    bcmolt_link_type ds_link_type;      /**< Optical link type (Unspecified, A, B, Both) */
+    bcmolt_pon_id pon_id;               /**< Identifies the TWDM channel termination within a certain domain */
+    uint8_t c;  /**< Transmit optical level (TOL) reference point indicator: S/R-CG or S/R-CP */
+} bcmolt_operation_control;
+
+/** Periodic Standby PON monitoring. 
+ */
+typedef struct bcmolt_periodic_standby_pon_monitoring
+{
+    uint32_t interval;              /**< interval in ms. */
+    bcmolt_control_state control;   /**< control. */
+} bcmolt_periodic_standby_pon_monitoring;
+
+/** Port Level Shaper Configuration:. 
+ */
+typedef struct bcmolt_pon_aggregate_shaper
+{
+    uint32_t bandwidth_kbps;    /**< Rate in kbps, 0 is disabled, If rate is >1G then use 256kbps increments, if rate is < 1G then use 64kbps increments.  */
+    uint32_t mbs_kB;            /**< Maximum Burst Size in KB : range is 2KB to 4MB in 1KB increments.  */
+} bcmolt_pon_aggregate_shaper;
+
+/** PON Alloc SLA. 
+ */
+typedef struct bcmolt_pon_alloc_sla
+{
+    uint32_t cbr_rt_bw;     /**< CBR Real Time Bandwidth which require shaping of the bandwidth allocations in a fine granularity.  */
+    uint32_t cbr_nrt_bw;    /**< Fixed Bandwidth with no critical requirement of shaping */
+    uint32_t guaranteed_bw; /**< Dynamic bandwidth which the OLT is committed to allocate upon demand */
+    uint32_t maximum_bw;    /**< Maximum allocated bandwidth allowed for this alloc ID */
+    bcmolt_additional_bw_eligibility additional_bw_eligibility; /**< Alloc ID additional BW eligibility */
+    bcmos_bool cbr_rt_compensation; /**< Set to True for AllocID with CBR RT Bandwidth that requires compensation for skipped allocations during quiet window */
+    uint8_t cbr_rt_ap_index;        /**< Allocation Profile index for CBR RT Bandwidth */
+    uint8_t cbr_nrt_ap_index;       /**< Allocation Profile index for CBR non-RT Bandwidth */
+    bcmolt_alloc_type alloc_type;   /**< Type of the alloc ID  */
+    uint8_t weight;                 /**< Alloc ID Weight used in case of Extended DBA mode */
+    uint8_t priority;               /**< Alloc ID Priority used in case of Extended DBA mode */
+} bcmolt_pon_alloc_sla;
+
+/** PON available bandwidth. 
+ */
+typedef struct bcmolt_pon_available_bandwidth
+{
+    uint32_t cbr_bw;            /**< Total BW available for CBR real-time traffic (bytes/sec). */
+    uint32_t total_bw;          /**< Total BW available for guaranteed traffic (bytes/sec) */
+    uint32_t next_onu_total_bw; /**< Total BW available for guaranteed traffic after new ONU is added (bytes/sec). */
+} bcmolt_pon_available_bandwidth;
+
+/** PON DBA. 
+ */
+typedef struct bcmolt_pon_dba
+{
+    uint8_t sr_reporting_block_size;    /**< ONU status report block size in bytes */
+    bcmolt_dba_mode dba_mode;           /**< DBA mode */
+} bcmolt_pon_dba;
+
+/** PON Distance. 
+ */
+typedef struct bcmolt_pon_distance
+{
+    uint32_t max_log_distance;  /**< Max logical distance of an ONU on the PON */
+    uint32_t max_diff_reach;    /**< Max distance between the closest and farthest ONU */
+} bcmolt_pon_distance;
+
+/** PON Drift Control. 
+ */
+typedef struct bcmolt_pon_drift_control
+{
+    uint32_t drift_interval;            /**< Interval in milliseconds for ONU transmission drift monitoring (0 = disabled). */
+    uint8_t drift_limit;                /**< DOWi threshold in bits */
+    uint8_t transmission_control_limit; /**< TIWi threshold in bits */
+} bcmolt_pon_drift_control;
+
+/** Variable-length list of pon_onu_id. 
+ */
+typedef struct bcmolt_pon_onu_id_list_u32
+{
+    uint32_t len;           /**< List length. */
+    bcmolt_pon_onu_id *val; /**< List contents. */
+} bcmolt_pon_onu_id_list_u32;
+
+/** PON Power Level. 
+ */
+typedef struct bcmolt_pon_power_level
+{
+    uint32_t pls_maximum_allocation_size;   /**< Max allocation size for PLS transmission */
+    uint8_t mode;   /**< ONU default power level mode */
+} bcmolt_pon_power_level;
+
+/** GPON protection switching configuration. 
+ */
+typedef struct bcmolt_pon_protection_switching
+{
+    uint16_t timeout;           /**< LOS switch over timeout in milliseconds */
+    bcmolt_gpio_pin gpio_pin;   /**< GPIO pin for input/output signal */
+    bcmolt_pon_protection_switching_options options;    /**< Options to control the protection switching process */
+} bcmolt_pon_protection_switching;
+
+/** PON Status. 
+ */
+typedef struct bcmolt_pon_status
+{
+    bcmolt_pon_state state;     /**< state. */
+    bcmolt_status los_status;   /**< LOS status. */
+} bcmolt_pon_status;
+
+/** PRBS checker config. 
+ */
+typedef struct bcmolt_prbs_checker_config
+{
+    bcmolt_prbs_polynomial polynom; /**< PRBS polynom type */
+    bcmolt_prbs_checker_mode mode;  /**< PRBS LOCK state machine. */
+    bcmos_bool data_invert;         /**< Invert or no invert for received PRBS data */
+    bcmolt_control_state control;   /**< Enable\Disable the US PRBS checker */
+} bcmolt_prbs_checker_config;
+
+/** PRBS Generator config. 
+ */
+typedef struct bcmolt_prbs_generator_config
+{
+    bcmolt_prbs_polynomial polynom; /**< PRBS polynom type */
+    bcmos_bool error_insert;        /**< 0 to 1 transition on this signal will insert single bit error in the MSB bit of the data bus. */
+    bcmos_bool invert;              /**< Invert or no invert for transmitted PRBS data */
+    bcmolt_control_state control;   /**< Enable\Disable the DS PRBS generator */
+} bcmolt_prbs_generator_config;
+
+/** That state of the PRBS test, lock state, and error counters. 
+ */
+typedef struct bcmolt_prbs_status
+{
+    bcmolt_prbs_lock_state lock_state;  /**< The state of the PRBS lock */
+    uint32_t error_counts;              /**< The bit errors observed during the PRBS test.  This field is clear on read. */
+} bcmolt_prbs_status;
+
+/** ranging control configuration. 
+ */
+typedef struct bcmolt_ranging_control_configuration
+{
+    uint8_t wait_state_1_window_size;   /**< wait state 1 window size. */
+    uint8_t wait_state_2_window_size;   /**< wait state 2 window size. */
+    bcmos_bool wait_after_resync_4;     /**< wait after resync 4. */
+} bcmolt_ranging_control_configuration;
+
+/** ranging resync conditions. 
+ */
+typedef struct bcmolt_ranging_resync_conditions
+{
+    bcmos_bool after_init;              /**< after init. */
+    bcmos_bool after_no_ed;             /**< after no ed. */
+    bcmos_bool after_ed;                /**< after ed. */
+    bcmos_bool after_no_del;            /**< after no del. */
+    bcmos_bool after_ranging_access;    /**< after ranging access. */
+    uint16_t med_val;                   /**< med val. */
+} bcmolt_ranging_resync_conditions;
+
+/** ranging rssi control. 
+ */
+typedef struct bcmolt_ranging_rssi_control
+{
+    bcmos_bool after_no_ed;     /**< after no ed. */
+    bcmos_bool after_ed;        /**< after ed. */
+    bcmos_bool after_reset_3;   /**< after reset 3. */
+} bcmolt_ranging_rssi_control;
+
+/** request registration status. 
+ */
+typedef struct bcmolt_request_registration_status
+{
+    bcmolt_control_state request_registration_state;    /**< request registration state. */
+    bcmos_bool sma_flag;    /**< is request registration is part of sma process */
+} bcmolt_request_registration_status;
+
+/** Rogue Detection Special Map. 
+ */
+typedef struct bcmolt_rogue_detection_special_map
+{
+    uint32_t plo_size;              /**< PLO size. */
+    bcmolt_pon_alloc_id alloc_id;   /**< Alloc ID. */
+    bcmolt_pon_onu_id onu_id;       /**< ONU ID. */
+    uint8_t access_size;            /**< Access size. */
+} bcmolt_rogue_detection_special_map;
+
+/** Variable-length list of rogue_detection_special_map. 
+ */
+typedef struct bcmolt_rogue_detection_special_map_list_u32_max_8
+{
+    uint32_t len;   /**< List length. */
+    bcmolt_rogue_detection_special_map *val;    /**< List contents. */
+} bcmolt_rogue_detection_special_map_list_u32_max_8;
+
+/** Type and attributes of the rogue detection algorithm. 
+ */
+typedef struct bcmolt_rogue_detection_algorithm
+{
+    bcmolt_rogue_detection_algorithm_type algorithm_type;   /**< Type of the rogue detection algorithm. */
+    union
+    {
+        struct
+        {
+            bcmolt_rogue_detection_window measurement_type; /**< Silent Window or Cut off Window */
+            uint32_t interval;                  /**< Periodic process timer interval in milliseconds */
+            bcmos_bool second_ranging_window;   /**< Determines whether the second ranging window should be invoked or not. */
+            bcmolt_alloc_type_to_scan alloc_type_to_scan;               /**< Alloc type to scan during rogue detection.  Unused, previously used, or all Alloc-IDs. */
+        } early_rogue_detection;
+
+        struct
+        {
+            bcmolt_rogue_detection_special_map_list_u32_max_8 accesses; /**< Accesses. */
+        } special_map;
+
+        struct
+        {
+            uint32_t additional_guard_time; /**< Additional guard time (in bytes) for all ONUs on this PON. */
+        } extended_guard_time;
+    } u;
+} bcmolt_rogue_detection_algorithm;
+
+/** Configures the attributes of the rogue ONU detection periodic process. 
+ */
+typedef struct bcmolt_rogue_onu_detection_process
+{
+    bcmolt_control_state control;   /**< Enable/Disable the rogue ONU detection process. */
+    bcmolt_rogue_detection_algorithm detection_algorithm;   /**< Type and attributes of the rogue detection algorithm. */
+} bcmolt_rogue_onu_detection_process;
+
+/** serdes configuration. 
+ */
+typedef struct bcmolt_serdes_configuration
+{
+    bcmolt_serdes_ranging_mode ranging_mode;    /**< Select ranging mode for GPON/XGPON */
+    bcmos_bool multi_ed_mode;                   /**< Allow for multiple ED for ED mode for GPON/XGPON */
+    uint16_t burst_enable_start_offset;         /**< Start offset for stat capture on SERDES channel */
+    uint16_t burst_enable_end_offset;           /**< End offset for stat capture on SERDES channel  */
+    bcmos_bool ed_invertion;                    /**< ed invertion. */
+} bcmolt_serdes_configuration;
+
+/** serial number. 
+ */
+typedef struct bcmolt_serial_number
+{
+    uint8_t vendor_id[4];       /**< vendor id. */
+    uint8_t vendor_specific[4]; /**< vendor specific. */
+} bcmolt_serial_number;
+
+/** Solicited Scheduler. 
+ */
+typedef struct bcmolt_solicited_scheduler
+{
+    bcmolt_bandwidth_Kbps bandwidth_Kbps;   /**< The maximum layer 1 throughput provided by this scheduler (in Kbps). */
+    bcmolt_time_quanta max_burst_size_tq;   /**< The maximum burst size (in TQ). */
+    uint8_t priority;                       /**< The priority at which this scheduler runs.  This field is read-only and fixed at 0 for the MIN Shaper/Scheduler  element. */
+    bcmolt_time_quanta weight_tq;           /**< The weight of this scheduler (in TQ rounded up to nearest 128). Must be greater than or equal to Grant Threshold. */
+} bcmolt_solicited_scheduler;
+
+/** Statistic alarm trigger configuration. 
+ */
+typedef struct bcmolt_stat_alarm_trigger_config
+{
+    bcmolt_stat_condition_type type;    /**< Type of condition to trigger the alarm. */
+    union
+    {
+        struct
+        {
+            uint64_t rising;            /**< The alarm is raised if the stats delta value per second becomes greater than this threshold level. */
+            uint64_t falling;           /**< The alarm is cleared if the stats delta value per second becomes less than this threshold level. */
+        } rate_threshold;
+
+        struct
+        {
+            uint64_t upper;             /**< The alarm is raised if the stats delta value per second becomes greater than this upper level. */
+            uint64_t lower;             /**< The alarm is raised if the stats delta value per second becomes less than this lower level. */
+        } rate_range;
+
+        struct
+        {
+            uint64_t limit;             /**< The alarm is raised if the stats sample value becomes greater than this level.  The alarm is cleared when the host clears the stats. */
+        } value_threshold;
+    } u;
+} bcmolt_stat_alarm_trigger_config;
+
+/** Statistics alarm soaking configuration 
+ */
+typedef struct bcmolt_stat_alarm_soak_config
+{
+    uint32_t active_soak_time;  /**< If the alarm condition is raised and stays in the raised state for at least this amount of time (unit=seconds), the alarm indication is sent to the host. */
+    uint32_t clear_soak_time;   /**< After the alarm is raised, if it is cleared and stays in the cleared state for at least this amount of time (unit=seconds), the alarm indication is sent to the host. */
+} bcmolt_stat_alarm_soak_config;
+
+/** Statistic alarm configuration. 
+ */
+typedef struct bcmolt_stat_alarm_config
+{
+    bcmolt_stat_alarm_trigger_config trigger;   /**< Statistics alarm trigger configuration. */
+    bcmolt_stat_alarm_soak_config soak;         /**< Statistics alarm soaking configuration */
+} bcmolt_stat_alarm_config;
+
+/** ASCII string with max length 100. 
+ */
+typedef struct bcmolt_str_100
+{
+    char str[100];  /**< String. */
+} bcmolt_str_100;
+
+/** ASCII string with max length 1000. 
+ */
+typedef struct bcmolt_str_1000
+{
+    char str[1000]; /**< String. */
+} bcmolt_str_1000;
+
+/** ASCII string with max length 2000. 
+ */
+typedef struct bcmolt_str_2000
+{
+    char str[2000]; /**< String. */
+} bcmolt_str_2000;
+
+/** ASCII string with max length 256. 
+ */
+typedef struct bcmolt_str_256
+{
+    char str[256];  /**< String. */
+} bcmolt_str_256;
+
+/** ASCII string with max length 64. 
+ */
+typedef struct bcmolt_str_64
+{
+    char str[64];   /**< String. */
+} bcmolt_str_64;
+
+/** SW Error. 
+ */
+typedef struct bcmolt_sw_error
+{
+    uint64_t first_error_time_us;   /**< Timestamp (in us) when his error first occurred */
+    uint64_t last_error_time_us;    /**< Timestamp (in us) when his error last occurred */
+    uint32_t line_number;           /**< Line Number. */
+    uint32_t error_counter;         /**< The number of times this error has occurred */
+    uint32_t instance;              /**< Instance. */
+    char filename[64];              /**< Filename. */
+    char task_name[64];             /**< Task Name. */
+} bcmolt_sw_error;
+
+/** System profile 
+ */
+typedef struct bcmolt_system_profile
+{
+    uint32_t ng_2_sys_id;       /**< 20-bit identifier of the NGPON2 system */
+    uint8_t version;            /**< System profile version. */
+    uint8_t channel_spacing;    /**< An integer indicating the channel spacing in units of 1GHz */
+    bcmolt_us_operating_wavelength_bands us_operating_wavelength_bands; /**< Upstream operating wavelength bands */
+    uint8_t us_mse; /**< Upstream Maximum Spectral Excursion (MSE) represented as an unsigned integer indicating the value in units of 1GHz */
+    bcmolt_calibration_record loose_calibration_bound;  /**< Spectral excursion bound below which a TWDM ONU can be considered as loosely calibrated */
+    uint16_t fsr;               /**< If a cyclic WM is used in the upstream, Free Spectral Range indicates the value in units of 0.1 GHz */
+    uint8_t twdm_channel_count; /**< The number of Channel_Profile PLOAM messages with distinct Channel Profile indices that an ONU can expect to receive while listening to this downstream wavelength channel */
+} bcmolt_system_profile;
+
+/** TRX Delimiter. 
+ */
+typedef struct bcmolt_trx_delimiter
+{
+    uint8_t pattern[3];     /**< pattern. */
+    uint8_t size;           /**< Size in bytes. */
+    uint8_t window_size;    /**< Window size. */
+} bcmolt_trx_delimiter;
+
+/** TRX Energy detect. 
+ */
+typedef struct bcmolt_trx_energy_detect
+{
+    bcmolt_energy_detect_source ranging_ed_source;      /**< Ranging ED source. */
+    bcmolt_energy_detect_source delimiter_ed_source;    /**< Delimiter ED source. */
+    uint8_t minimum_threshold;  /**< Minimum threshold. */
+    uint8_t maximum_threshold;  /**< Maximum threshold. */
+    uint8_t ed_pattern;         /**< ED pattern. */
+    uint8_t ed_pattern_size;    /**< ED pattern size. */
+    uint8_t window_size;        /**< Window size. */
+    bcmos_bool inversion;       /**< Inversion. */
+    uint8_t no_ed_threshold;    /**< no ed threshold. */
+} bcmolt_trx_energy_detect;
+
+/** TRX Preamble. 
+ */
+typedef struct bcmolt_trx_preamble
+{
+    uint8_t type_1_size;                /**< Type 1 size. */
+    uint8_t type_2_size;                /**< Type 2 size. */
+    uint8_t type_3_pre_ranging_size;    /**< Type 3 pre ranging size. */
+    uint8_t type_3_post_ranging_size;   /**< Type 3 post ranging size. */
+    uint8_t type_3_pattern;             /**< Type 3 pattern. */
+} bcmolt_trx_preamble;
+
+/** TRX RX configuration. 
+ */
+typedef struct bcmolt_trx_rx_configuration
+{
+    uint8_t wait_window_size;           /**< Wait Window size. */
+    uint8_t ranging_access_window_size; /**< Ranging access window size. */
+} bcmolt_trx_rx_configuration;
+
+/** Variable-length list of U32. 
+ */
+typedef struct bcmolt_u32_list_u32_max_500_hex
+{
+    uint32_t len;   /**< List length. */
+    uint32_t *val;  /**< List contents. */
+} bcmolt_u32_list_u32_max_500_hex;
+
+/** Variable-length list of U8. 
+ */
+typedef struct bcmolt_u8_list_u16_hex
+{
+    uint16_t len;   /**< List length. */
+    uint8_t *val;   /**< List contents. */
+} bcmolt_u8_list_u16_hex;
+
+/** Variable-length list of U8. 
+ */
+typedef struct bcmolt_u8_list_u32
+{
+    uint32_t len;   /**< List length. */
+    uint8_t *val;   /**< List contents. */
+} bcmolt_u8_list_u32;
+
+/** Variable-length list of U8. 
+ */
+typedef struct bcmolt_u8_list_u32_max_2048
+{
+    uint32_t len;   /**< List length. */
+    uint8_t *val;   /**< List contents. */
+} bcmolt_u8_list_u32_max_2048;
+
+/** UBD Info. 
+ */
+typedef struct bcmolt_ubd_info
+{
+    uint16_t actual_polling_interval;   /**< Units: 65.536us */
+    bcmolt_time_quanta actual_grant_threshold_tq;               /**< Actual Grant Threshold (TQ). */
+    bcmolt_actual_schedulershaper actual_min_schedulershaper;   /**< Actual Min Scheduler/Shaper. */
+    bcmolt_actual_schedulershaper actual_max_schedulershaper;   /**< Actual Max Scheduler/Shaper. */
+} bcmolt_ubd_info;
+
+/** The upstream bandwidth distribution for this LLID. 
+ */
+typedef struct bcmolt_upstream_bandwidth_distribution
+{
+    bcmolt_polling_interval polling_interval_us;    /**< The amount of time between when this LLID last reported upstream data and when it will next be polled (approximate: rounded down to the nearest 65.536 us). */
+    bcmolt_time_quanta grant_threshold_tq;          /**< Used to determine the maximum grant size that will be issued to this LLID (in TQ; rounded up to the nearest 128TQ; 1TQ = 16ns = 2Bytes@1G or 20Bytes@10G). */
+    bcmolt_solicited_scheduler min_schedulershaper; /**< Min Scheduler/Shaper. */
+    bcmolt_solicited_scheduler max_schedulershaper; /**< Max Scheduler/Shaper. */
+    bcmolt_time_quanta tdm_grant_size_tq;           /**< Size of TDM grants (in TQ). */
+    uint32_t tdm_grant_interval_us;                 /**< Interval between TDM grants (in us). */
+} bcmolt_upstream_bandwidth_distribution;
+
+/** VLAN tag. 
+ */
+typedef struct bcmolt_vlan_tag
+{
+    bcmolt_vlan_id vlan_id; /**< VLAN ID. */
+    uint8_t pbit;           /**< Pbit. */
+} bcmolt_vlan_tag;
+
+/** XGPON Alloc With State. 
+ */
+typedef struct bcmolt_xgpon_alloc_with_state
+{
+    bcmolt_xgpon_alloc_id alloc_id; /**< Alloc ID. */
+    bcmolt_alloc_state state;       /**< State. */
+} bcmolt_xgpon_alloc_with_state;
+
+/** Variable-length list of xgpon_alloc_with_state. 
+ */
+typedef struct bcmolt_xgpon_alloc_with_state_list_u16_max_32
+{
+    uint16_t len;                       /**< List length. */
+    bcmolt_xgpon_alloc_with_state *val; /**< List contents. */
+} bcmolt_xgpon_alloc_with_state_list_u16_max_32;
+
+/** xgpon ed state. 
+ */
+typedef struct bcmolt_xgpon_ed_state
+{
+    bcmos_bool reset_on_ed_fail;    /**< reset on ED fail. */
+    bcmos_bool reset_on_ed_success; /**< reset on ED success. */
+} bcmolt_xgpon_ed_state;
+
+/** Variable-length list of xgpon_gem_id. 
+ */
+typedef struct bcmolt_xgpon_gem_id_list_u8_max_16
+{
+    uint8_t len;                /**< List length. */
+    bcmolt_xgpon_gem_id *val;   /**< List contents. */
+} bcmolt_xgpon_gem_id_list_u8_max_16;
+
+/** XGPON GEM Port With State. 
+ */
+typedef struct bcmolt_xgpon_gem_port_with_state
+{
+    bcmolt_xgpon_gem_id gem_id;         /**< GEM ID. */
+    bcmolt_xgpon_gem_port_state state;  /**< State. */
+} bcmolt_xgpon_gem_port_with_state;
+
+/** Variable-length list of xgpon_gem_port_with_state. 
+ */
+typedef struct bcmolt_xgpon_gem_port_with_state_list_u16_max_128
+{
+    uint16_t len;   /**< List length. */
+    bcmolt_xgpon_gem_port_with_state *val;  /**< List contents. */
+} bcmolt_xgpon_gem_port_with_state_list_u16_max_128;
+
+/** Variable-length list of xgpon_gem_port_with_state. 
+ */
+typedef struct bcmolt_xgpon_gem_port_with_state_list_u16_max_256
+{
+    uint16_t len;   /**< List length. */
+    bcmolt_xgpon_gem_port_with_state *val;  /**< List contents. */
+} bcmolt_xgpon_gem_port_with_state_list_u16_max_256;
+
+/** XGPON Key Exchange. 
+ */
+typedef struct bcmolt_xgpon_key_exchange
+{
+    uint32_t interval;              /**< Key Exchange process interval in milliseconds */
+    bcmolt_control_state control;   /**< Enable\disable periodic process of Key Exchange for active ONUs */
+    bcmolt_control_state encrypted_ports_only;  /**< Perform key exchange only to ONUs with GEM ports that have downstream encryption enabled */
+} bcmolt_xgpon_key_exchange;
+
+/** XGPON Multicast key. 
+ */
+typedef struct bcmolt_xgpon_multicast_key
+{
+    bcmolt_aes_key key;     /**< AES encryption key for multicsat XGEM port IDs */
+    bcmos_bool key_control; /**< Enable\Disable encryption on multicast XGEM ports */
+} bcmolt_xgpon_multicast_key;
+
+/** XGPON NI Debug parameters 
+ */
+typedef struct bcmolt_xgpon_ni_debug
+{
+    bcmos_bool increase_available_cbr_bw;   /**< Use increase available CBR bandwidth for better BW utilization */
+    uint16_t inter_burst_gap_in_bytes;      /**< Gap between two consecutive bursts for the same ONU */
+    uint16_t number_of_gem_ports_per_onu;   /**< Number of gem ports per onu */
+} bcmolt_xgpon_ni_debug;
+
+/** XGPON ONU Activation. 
+ */
+typedef struct bcmolt_xgpon_onu_activation
+{
+    bcmolt_control_state key_exchange;  /**< Perform single key exchange during activation. */
+    bcmolt_control_state fail_due_to_regis_auto_fail;   /**< Deactivate ONU due to registration authentication failure */
+} bcmolt_xgpon_onu_activation;
+
+/** XGPON ONU AES KEY. 
+ */
+typedef struct bcmolt_xgpon_onu_aes_key
+{
+    bcmolt_aes_key encryption_key;  /**< encryption key. */
+    uint8_t key_index;              /**< key index. */
+} bcmolt_xgpon_onu_aes_key;
+
+/** XGPON ONU alarm status. 
+ */
+typedef struct bcmolt_xgpon_onu_alarm_state
+{
+    bcmolt_status losi;             /**< Loss of signal. */
+    bcmolt_status lobi;             /**< Loss of burst. */
+    bcmolt_status lopci;            /**< Loss of PLOAM channel. */
+    bcmolt_status lopci_mic_error;  /**< Mic error on ploam channel. */
+    bcmolt_status looci;            /**< Loss of OMCI channel. */
+    bcmolt_status tiwi;             /**< Transmission interference Alarm. */
+    bcmolt_status dowi;             /**< Drift of Window. */
+    bcmolt_status sufi;             /**< Start UP Failure. */
+    bcmolt_status sfi;              /**< Signal Fail. */
+    bcmolt_status sdi;              /**< Signal Degraded. */
+    bcmolt_status dfi;              /**< Deactivation Failure. */
+    bcmolt_status dgi;              /**< Dying gasp. */
+    bcmolt_status pqsi;             /**< Ploam queue status. */
+} bcmolt_xgpon_onu_alarm_state;
+
+/** XGPON ONU alarms. 
+ */
+typedef struct bcmolt_xgpon_onu_alarms
+{
+    bcmolt_status losi;             /**< LOSi. */
+    bcmolt_status lobi;             /**< LOBi. */
+    bcmolt_status lopci_miss;       /**< LOPCi miss. */
+    bcmolt_status lopci_mic_error;  /**< LOPCi mic error. */
+} bcmolt_xgpon_onu_alarms;
+
+/** XGPON ONU alarms thresholds. 
+ */
+typedef struct bcmolt_xgpon_onu_alarms_thresholds
+{
+    uint8_t losi;   /**< Threshold for asserting LOSi alarm. */
+    uint8_t lobi;   /**< Threshold for asserting LOBi alarm. */
+    uint8_t looci;  /**< Threshold for asserting LOOCi alarm. */
+    uint8_t lopci;  /**< Threshold for asserting LOPCi alarm.  */
+} bcmolt_xgpon_onu_alarms_thresholds;
+
+/** XGPON ONU EQD. 
+ */
+typedef struct bcmolt_xgpon_onu_eqd
+{
+    bcmolt_xgpon_onu_id onu_id; /**< ONU ID. */
+    uint32_t eqd;               /**< EQD. */
+} bcmolt_xgpon_onu_eqd;
+
+/** Variable-length list of xgpon_onu_eqd. 
+ */
+typedef struct bcmolt_xgpon_onu_eqd_list_u32
+{
+    uint32_t len;               /**< List length. */
+    bcmolt_xgpon_onu_eqd *val;  /**< List contents. */
+} bcmolt_xgpon_onu_eqd_list_u32;
+
+/** XGPON ONU registration keys. 
+ */
+typedef struct bcmolt_xgpon_onu_registration_keys
+{
+    bcmolt_aes_key ploam_ik;    /**< ploam ik. */
+    bcmolt_aes_key omci_ik;     /**< omci ik. */
+    bcmolt_aes_key omci_k1;     /**< omci k1. */
+    bcmolt_aes_key omci_k2;     /**< omci k2. */
+    bcmolt_aes_key kek;         /**< kek. */
+} bcmolt_xgpon_onu_registration_keys;
+
+/** XGPON ONU With State. 
+ */
+typedef struct bcmolt_xgpon_onu_with_state
+{
+    bcmolt_xgpon_onu_id onu_id; /**< ONU ID. */
+    bcmolt_onu_state state;     /**< State. */
+} bcmolt_xgpon_onu_with_state;
+
+/** Variable-length list of xgpon_onu_with_state. 
+ */
+typedef struct bcmolt_xgpon_onu_with_state_list_u16_max_510
+{
+    uint16_t len;                       /**< List length. */
+    bcmolt_xgpon_onu_with_state *val;   /**< List contents. */
+} bcmolt_xgpon_onu_with_state_list_u16_max_510;
+
+/** XGPON PLOAM handling. 
+ */
+typedef struct bcmolt_xgpon_ploam_handling
+{
+    uint32_t ack_timeout;               /**< Timeout for receiving ACK ploam */
+    uint8_t retrans_ranging_time;       /**< Number of Ranging Time ploam retransmissions in case of ACK timeout */
+    uint8_t retrans_assign_alloc_id;    /**< Number of Assign Alloc ID ploam retransmissions in case of ACK timeout */
+    uint8_t retrans_key_control;        /**< Number of Key Control ploam retransmissions in case of ACK timeout */
+    uint8_t retrans_request_registration;   /**< Number of Request Registration ploam retransmissions in case of ACK timeout */
+} bcmolt_xgpon_ploam_handling;
+
+/** XGPON protection switching configuration. 
+ */
+typedef struct bcmolt_xgpon_protection_switching
+{
+    uint16_t timeout;           /**< LOS switch over timeout in milliseconds */
+    bcmolt_gpio_pin gpio_pin;   /**< GPIO pin for input/output signal */
+    bcmos_bool fast_ranging;    /**< fast ranging  */
+} bcmolt_xgpon_protection_switching;
+
+/** xgpon protection switching debug. 
+ */
+typedef struct bcmolt_xgpon_protection_switching_debug
+{
+    uint16_t data_map_delay_ms;             /**< delay to wait after sending ranging time delta before running the data map   */
+    bcmos_bool rerange_send_ranging_time;   /**< Should the SM send the current ranging time before doing the re-ranging  */
+    uint16_t rerange_send_ranging_time_delay;   /**< the delay between sending the ranging time and starting the rerange  */
+} bcmolt_xgpon_protection_switching_debug;
+
+/** XGPON RSSI normal configuration. 
+ */
+typedef struct bcmolt_xgpon_rssi_normal_config
+{
+    bcmolt_polarity polarity;   /**< RSSI signal polarity */
+    uint8_t location;           /**< RSSI signal location in words */
+    bcmolt_sign location_sign;  /**< RSSI signal location sign */
+    uint16_t pulse_width;       /**< RSSI pulse width in words */
+    uint16_t minimum_burst;     /**< Data minimum burst size in words */
+} bcmolt_xgpon_rssi_normal_config;
+
+/** xgpon rssi ranging config. 
+ */
+typedef struct bcmolt_xgpon_rssi_ranging_config
+{
+    bcmos_bool start_on_ed;         /**< start on ED. */
+    uint8_t frame_delay;            /**< frame delay from ED */
+    uint16_t word_delay;            /**< word delay from ED */
+    uint8_t frame_delay_after_ed;   /**< frame delay from start  of ranging window */
+    uint16_t word_delay_after_ed;   /**< word delay from start  of ranging window */
+} bcmolt_xgpon_rssi_ranging_config;
+
+/** xgpon rx ranging SM patterns. 
+ */
+typedef struct bcmolt_xgpon_rx_ranging_sm_pattern
+{
+    uint32_t trx_reset_pattern_first;   /**< trx reset pattern first. */
+    uint32_t trx_reset_pattern_middle;  /**< trx reset pattern middle. */
+    uint32_t trx_reset_pattern_last;    /**< trx reset pattern last. */
+    uint8_t trx_reset_middle_repeats;   /**< trx reset middle repeats. */
+    uint8_t trx_reset_location;         /**< trx reset location. */
+    uint32_t bcdr_reset_pattern_first;  /**< bcdr reset pattern first. */
+    uint32_t bcdr_reset_pattern_middle; /**< bcdr reset pattern middle. */
+    uint32_t bcdr_reset_pattern_last;   /**< bcdr reset pattern last. */
+    uint8_t bcdr_reset_middle_repeats;  /**< bcdr reset middle repeats. */
+    uint8_t bcdr_reset_location;        /**< bcdr reset location. */
+    bcmos_bool bcdr_reset_polarity;     /**< bcdr reset polarity. */
+} bcmolt_xgpon_rx_ranging_sm_pattern;
+
+/** xgpon serdes configuration. 
+ */
+typedef struct bcmolt_xgpon_serdes_configuration
+{
+    bcmos_bool multi_ed_mode;   /**< multi ed mode. */
+    bcmolt_xgpon_serdes_ranging_mode ranging_mode;  /**< ranging mode. */
+} bcmolt_xgpon_serdes_configuration;
+
+/** XGPON SN Acquisition. 
+ */
+typedef struct bcmolt_xgpon_sn_acquisition
+{
+    uint32_t interval;              /**< SN process interval in milliseconds */
+    bcmolt_control_state control;   /**< SN process control */
+    bcmolt_onu_post_discovery_mode onu_post_discovery_mode; /**< Automatic operation following ONU discovery */
+    bcmolt_burst_profile_index burst_profile;               /**< Burst profile index to use during SN acquisition window */
+} bcmolt_xgpon_sn_acquisition;
+
+/** xgpon_trx_debug. 
+ */
+typedef struct bcmolt_xgpon_trx_debug
+{
+    bcmolt_control_state rx_reversed_polarity;  /**< transceiver reversed polarity */
+    bcmolt_control_state neg_out_bit;           /**< turn all 1 to 0 and all 0 to 1 at the output. default is not to make negative bits */
+} bcmolt_xgpon_trx_debug;
+
+/** @} */
+#endif /* BCMOLT_MODEL_DATA_H_ */
diff --git a/bcm68620_release/release/host_driver/model/bcmolt_model_ids.h b/bcm68620_release/release/host_driver/model/bcmolt_model_ids.h
new file mode 100644
index 0000000..4a1967c
--- /dev/null
+++ b/bcm68620_release/release/host_driver/model/bcmolt_model_ids.h
@@ -0,0 +1,9624 @@
+/*
+<:copyright-BRCM:2016:proprietary:standard
+ 
+   Broadcom Proprietary and Confidential.(c) 2016 Broadcom
+   All Rights Reserved
+ 
+This program is the proprietary software of Broadcom Corporation and/or its
+licensors, and may only be used, duplicated, modified or distributed pursuant
+to the terms and conditions of a separate, written license agreement executed
+between you and Broadcom (an "Authorized License").  Except as set forth in
+an Authorized License, Broadcom grants no license (express or implied), right
+to use, or waiver of any kind with respect to the Software, and Broadcom
+expressly reserves all rights in and to the Software and all intellectual
+property rights therein.  IF YOU HAVE NO AUTHORIZED LICENSE, THEN YOU HAVE
+NO RIGHT TO USE THIS SOFTWARE IN ANY WAY, AND SHOULD IMMEDIATELY NOTIFY
+BROADCOM AND DISCONTINUE ALL USE OF THE SOFTWARE.
+ 
+Except as expressly set forth in the Authorized License,
+ 
+1. This program, including its structure, sequence and organization,
+    constitutes the valuable trade secrets of Broadcom, and you shall use
+    all reasonable efforts to protect the confidentiality thereof, and to
+    use this information only in connection with your use of Broadcom
+    integrated circuit products.
+ 
+2. TO THE MAXIMUM EXTENT PERMITTED BY LAW, THE SOFTWARE IS PROVIDED "AS IS"
+    AND WITH ALL FAULTS AND BROADCOM MAKES NO PROMISES, REPRESENTATIONS OR
+    WARRANTIES, EITHER EXPRESS, IMPLIED, STATUTORY, OR OTHERWISE, WITH
+    RESPECT TO THE SOFTWARE.  BROADCOM SPECIFICALLY DISCLAIMS ANY AND
+    ALL IMPLIED WARRANTIES OF TITLE, MERCHANTABILITY, NONINFRINGEMENT,
+    FITNESS FOR A PARTICULAR PURPOSE, LACK OF VIRUSES, ACCURACY OR
+    COMPLETENESS, QUIET ENJOYMENT, QUIET POSSESSION OR CORRESPONDENCE
+    TO DESCRIPTION. YOU ASSUME THE ENTIRE RISK ARISING OUT OF USE OR
+    PERFORMANCE OF THE SOFTWARE.
+ 
+3. TO THE MAXIMUM EXTENT PERMITTED BY LAW, IN NO EVENT SHALL BROADCOM OR
+    ITS LICENSORS BE LIABLE FOR (i) CONSEQUENTIAL, INCIDENTAL, SPECIAL,
+    INDIRECT, OR EXEMPLARY DAMAGES WHATSOEVER ARISING OUT OF OR IN ANY
+    WAY RELATING TO YOUR USE OF OR INABILITY TO USE THE SOFTWARE EVEN
+    IF BROADCOM HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES;
+    OR (ii) ANY AMOUNT IN EXCESS OF THE AMOUNT ACTUALLY PAID FOR THE
+    SOFTWARE ITSELF OR U.S. $1, WHICHEVER IS GREATER. THESE LIMITATIONS
+    SHALL APPLY NOTWITHSTANDING ANY FAILURE OF ESSENTIAL PURPOSE OF ANY
+    LIMITED REMEDY.
+:>
+*/
+#ifndef BCMOLT_MODEL_IDS_H_
+#define BCMOLT_MODEL_IDS_H_
+
+/** \addtogroup api_data_types 
+ * @{ 
+ */
+
+/** Identifiers for all properties contained in the ae_ni_cfg group. 
+ */
+typedef enum bcmolt_ae_ni_cfg_id
+{
+    BCMOLT_AE_NI_CFG_ID__BEGIN          = 0,
+    BCMOLT_AE_NI_CFG_ID_MAC_ADDRESS     = 0,                /**< MAC Address. */
+    BCMOLT_AE_NI_CFG_ID_AE_NI_EN        = 1,                /**< AE NI enable state. */
+    BCMOLT_AE_NI_CFG_ID_MTU_10G         = 2,                /**< MTU. */
+    BCMOLT_AE_NI_CFG_ID_PRBS_GENERATOR  = 3,                /**< PRBS Generator. */
+    BCMOLT_AE_NI_CFG_ID_PRBS_CHECKER    = 4,                /**< PRBS Checker. */
+    BCMOLT_AE_NI_CFG_ID_PRBS_STATUS     = 5,                /**< PRBS status. */
+    BCMOLT_AE_NI_CFG_ID__NUM_OF                             /**< Number of enum entries, not an entry itself. */
+} bcmolt_ae_ni_cfg_id;
+
+/** Identifiers for all properties contained in the ae_ni_key group. 
+ */
+typedef enum bcmolt_ae_ni_key_id
+{
+    BCMOLT_AE_NI_KEY_ID__BEGIN          = 0,
+    BCMOLT_AE_NI_KEY_ID_AE_NI           = 0,                /**< AE NI number. */
+    BCMOLT_AE_NI_KEY_ID__NUM_OF                             /**< Number of enum entries, not an entry itself. */
+} bcmolt_ae_ni_key_id;
+
+/** Identifiers for all properties contained in the ae_ni_set_ae_ni_en_state 
+ * group. 
+ */
+typedef enum bcmolt_ae_ni_set_ae_ni_en_state_id
+{
+    BCMOLT_AE_NI_SET_AE_NI_EN_STATE_ID__BEGIN   = 0,
+    BCMOLT_AE_NI_SET_AE_NI_EN_STATE_ID_NEW_STATE= 0,        /**< New AE NI enable state. */
+    BCMOLT_AE_NI_SET_AE_NI_EN_STATE_ID__NUM_OF              /**< Number of enum entries, not an entry itself. */
+} bcmolt_ae_ni_set_ae_ni_en_state_id;
+
+/** Identifiers for all properties contained in the ae_path_ds_auto_cfg group. 
+ */
+typedef enum bcmolt_ae_path_ds_auto_cfg_id
+{
+    BCMOLT_AE_PATH_DS_AUTO_CFG_ID__BEGIN            = 0,
+    BCMOLT_AE_PATH_DS_AUTO_CFG_ID_STAT_ALARM_CLEARED= 0,    /**< Stat Alarm Cleared. */
+    BCMOLT_AE_PATH_DS_AUTO_CFG_ID_STAT_ALARM_RAISED = 1,    /**< Stat Alarm Raised. */
+    BCMOLT_AE_PATH_DS_AUTO_CFG_ID__NUM_OF                   /**< Number of enum entries, not an entry itself. */
+} bcmolt_ae_path_ds_auto_cfg_id;
+
+/** Identifiers for all properties contained in the ae_path_ds_key group. 
+ */
+typedef enum bcmolt_ae_path_ds_key_id
+{
+    BCMOLT_AE_PATH_DS_KEY_ID__BEGIN                 = 0,
+    BCMOLT_AE_PATH_DS_KEY_ID_AE_NI                  = 0,    /**< AE NI (Active Ethernet Network Interface) number. */
+    BCMOLT_AE_PATH_DS_KEY_ID__NUM_OF                        /**< Number of enum entries, not an entry itself. */
+} bcmolt_ae_path_ds_key_id;
+
+/** Identifiers for all properties contained in the 
+ * ae_path_ds_stat_alarm_cleared group. 
+ */
+typedef enum bcmolt_ae_path_ds_stat_alarm_cleared_id
+{
+    BCMOLT_AE_PATH_DS_STAT_ALARM_CLEARED_ID__BEGIN  = 0,
+    BCMOLT_AE_PATH_DS_STAT_ALARM_CLEARED_ID_STAT    = 0,    /**< Statistic ID. */
+    BCMOLT_AE_PATH_DS_STAT_ALARM_CLEARED_ID__NUM_OF         /**< Number of enum entries, not an entry itself. */
+} bcmolt_ae_path_ds_stat_alarm_cleared_id;
+
+/** Identifiers for all properties contained in the ae_path_ds_stat_alarm_raised 
+ * group. 
+ */
+typedef enum bcmolt_ae_path_ds_stat_alarm_raised_id
+{
+    BCMOLT_AE_PATH_DS_STAT_ALARM_RAISED_ID__BEGIN   = 0,
+    BCMOLT_AE_PATH_DS_STAT_ALARM_RAISED_ID_STAT     = 0,    /**< Statistic ID. */
+    BCMOLT_AE_PATH_DS_STAT_ALARM_RAISED_ID__NUM_OF          /**< Number of enum entries, not an entry itself. */
+} bcmolt_ae_path_ds_stat_alarm_raised_id;
+
+/** Identifiers for all properties contained in the ae_path_ds_stat_cfg group. 
+ */
+typedef enum bcmolt_ae_path_ds_stat_cfg_id
+{
+    BCMOLT_AE_PATH_DS_STAT_CFG_ID__BEGIN            = 0,
+    BCMOLT_AE_PATH_DS_STAT_CFG_ID_CFG               = 0,    /**< Configuration. */
+    BCMOLT_AE_PATH_DS_STAT_CFG_ID__NUM_OF                   /**< Number of enum entries, not an entry itself. */
+} bcmolt_ae_path_ds_stat_cfg_id;
+
+/** Identifiers for all properties contained in the ae_path_ds_stat group. 
+ */
+typedef enum bcmolt_ae_path_ds_stat_id
+{
+    BCMOLT_AE_PATH_DS_STAT_ID__BEGIN                = 0,
+    BCMOLT_AE_PATH_DS_STAT_ID_BYTES                 = 0,    /**< Bytes. */
+    BCMOLT_AE_PATH_DS_STAT_ID_FRAMES                = 1,    /**< Frames. */
+    BCMOLT_AE_PATH_DS_STAT_ID_FRAMES_64             = 2,    /**< 64 Byte Frames. */
+    BCMOLT_AE_PATH_DS_STAT_ID_FRAMES_65_127         = 3,    /**< 65-127 Byte Frames. */
+    BCMOLT_AE_PATH_DS_STAT_ID_FRAMES_128_255        = 4,    /**< 128-255 Byte Frames. */
+    BCMOLT_AE_PATH_DS_STAT_ID_FRAMES_256_511        = 5,    /**< 256-511 Byte Frames. */
+    BCMOLT_AE_PATH_DS_STAT_ID_FRAMES_512_1023       = 6,    /**< 512-1023 Byte Frames. */
+    BCMOLT_AE_PATH_DS_STAT_ID_FRAMES_1024_1518      = 7,    /**< 1024-1518 Byte Frames. */
+    BCMOLT_AE_PATH_DS_STAT_ID_FRAMES_1519_2047      = 8,    /**< 1519-2047 Byte Frames. */
+    BCMOLT_AE_PATH_DS_STAT_ID_FRAMES_2048_4095      = 9,    /**< 2048_4095 Byte Frames. */
+    BCMOLT_AE_PATH_DS_STAT_ID_FRAMES_4096_9216      = 10,   /**< 4096-9216 Byte Frames. */
+    BCMOLT_AE_PATH_DS_STAT_ID_FRAMES_9217_16383     = 11,   /**< 9217-16383 Byte Frames. */
+    BCMOLT_AE_PATH_DS_STAT_ID_BROADCAST_FRAMES      = 12,   /**< Broadcast Frames. */
+    BCMOLT_AE_PATH_DS_STAT_ID_DATA_BYTES            = 13,   /**< Data Bytes. */
+    BCMOLT_AE_PATH_DS_STAT_ID_MULTICAST_FRAMES      = 14,   /**< Mulitcast Frames. */
+    BCMOLT_AE_PATH_DS_STAT_ID_UNICAST_FRAMES        = 15,   /**< Unicast Frames. */
+    BCMOLT_AE_PATH_DS_STAT_ID_ABORT_FRAMES          = 16,   /**< Abort Frames. */
+    BCMOLT_AE_PATH_DS_STAT_ID__NUM_OF                       /**< Number of enum entries, not an entry itself. */
+} bcmolt_ae_path_ds_stat_id;
+
+/** Identifiers for all properties contained in the ae_path_us_auto_cfg group. 
+ */
+typedef enum bcmolt_ae_path_us_auto_cfg_id
+{
+    BCMOLT_AE_PATH_US_AUTO_CFG_ID__BEGIN            = 0,
+    BCMOLT_AE_PATH_US_AUTO_CFG_ID_STAT_ALARM_CLEARED= 0,    /**< Stat Alarm Cleared. */
+    BCMOLT_AE_PATH_US_AUTO_CFG_ID_STAT_ALARM_RAISED = 1,    /**< Stat Alarm Raised. */
+    BCMOLT_AE_PATH_US_AUTO_CFG_ID__NUM_OF                   /**< Number of enum entries, not an entry itself. */
+} bcmolt_ae_path_us_auto_cfg_id;
+
+/** Identifiers for all properties contained in the ae_path_us_key group. 
+ */
+typedef enum bcmolt_ae_path_us_key_id
+{
+    BCMOLT_AE_PATH_US_KEY_ID__BEGIN                 = 0,
+    BCMOLT_AE_PATH_US_KEY_ID_AE_NI                  = 0,    /**< AE NI. */
+    BCMOLT_AE_PATH_US_KEY_ID__NUM_OF                        /**< Number of enum entries, not an entry itself. */
+} bcmolt_ae_path_us_key_id;
+
+/** Identifiers for all properties contained in the 
+ * ae_path_us_stat_alarm_cleared group. 
+ */
+typedef enum bcmolt_ae_path_us_stat_alarm_cleared_id
+{
+    BCMOLT_AE_PATH_US_STAT_ALARM_CLEARED_ID__BEGIN  = 0,
+    BCMOLT_AE_PATH_US_STAT_ALARM_CLEARED_ID_STAT    = 0,    /**< Statistic ID. */
+    BCMOLT_AE_PATH_US_STAT_ALARM_CLEARED_ID__NUM_OF         /**< Number of enum entries, not an entry itself. */
+} bcmolt_ae_path_us_stat_alarm_cleared_id;
+
+/** Identifiers for all properties contained in the ae_path_us_stat_alarm_raised 
+ * group. 
+ */
+typedef enum bcmolt_ae_path_us_stat_alarm_raised_id
+{
+    BCMOLT_AE_PATH_US_STAT_ALARM_RAISED_ID__BEGIN   = 0,
+    BCMOLT_AE_PATH_US_STAT_ALARM_RAISED_ID_STAT     = 0,    /**< Statistic ID. */
+    BCMOLT_AE_PATH_US_STAT_ALARM_RAISED_ID__NUM_OF          /**< Number of enum entries, not an entry itself. */
+} bcmolt_ae_path_us_stat_alarm_raised_id;
+
+/** Identifiers for all properties contained in the ae_path_us_stat_cfg group. 
+ */
+typedef enum bcmolt_ae_path_us_stat_cfg_id
+{
+    BCMOLT_AE_PATH_US_STAT_CFG_ID__BEGIN            = 0,
+    BCMOLT_AE_PATH_US_STAT_CFG_ID_CFG               = 0,    /**< Configuration. */
+    BCMOLT_AE_PATH_US_STAT_CFG_ID__NUM_OF                   /**< Number of enum entries, not an entry itself. */
+} bcmolt_ae_path_us_stat_cfg_id;
+
+/** Identifiers for all properties contained in the ae_path_us_stat group. 
+ */
+typedef enum bcmolt_ae_path_us_stat_id
+{
+    BCMOLT_AE_PATH_US_STAT_ID__BEGIN                = 0,
+    BCMOLT_AE_PATH_US_STAT_ID_BYTES                 = 0,    /**< Bytes. */
+    BCMOLT_AE_PATH_US_STAT_ID_FRAMES                = 1,    /**< Frames. */
+    BCMOLT_AE_PATH_US_STAT_ID_FRAMES_64             = 2,    /**< 64 Byte Frames. */
+    BCMOLT_AE_PATH_US_STAT_ID_FRAMES_65_127         = 3,    /**< 65-127 Byte Frames. */
+    BCMOLT_AE_PATH_US_STAT_ID_FRAMES_128_255        = 4,    /**< 128-255 Byte Frames. */
+    BCMOLT_AE_PATH_US_STAT_ID_FRAMES_256_511        = 5,    /**< 256-511 Byte Frames. */
+    BCMOLT_AE_PATH_US_STAT_ID_FRAMES_512_1023       = 6,    /**< 512-1023 Byte Frames. */
+    BCMOLT_AE_PATH_US_STAT_ID_FRAMES_1024_1518      = 7,    /**< 1024-1518 Byte Frames. */
+    BCMOLT_AE_PATH_US_STAT_ID_FRAMES_1519_2047      = 8,    /**< 1519-2047 Byte Frames. */
+    BCMOLT_AE_PATH_US_STAT_ID_FRAMES_2048_4095      = 9,    /**< 2048_4095 Byte Frames. */
+    BCMOLT_AE_PATH_US_STAT_ID_FRAMES_4096_9216      = 10,   /**< 4096-9216 Byte Frames. */
+    BCMOLT_AE_PATH_US_STAT_ID_FRAMES_9217_16383     = 11,   /**< 9217-16383 Byte Frames. */
+    BCMOLT_AE_PATH_US_STAT_ID_BROADCAST_FRAMES      = 12,   /**< Broadcast Frames. */
+    BCMOLT_AE_PATH_US_STAT_ID_DATA_BYTES            = 13,   /**< Data Bytes. */
+    BCMOLT_AE_PATH_US_STAT_ID_MULTICAST_FRAMES      = 14,   /**< Mulitcast Frames. */
+    BCMOLT_AE_PATH_US_STAT_ID_UNICAST_FRAMES        = 15,   /**< Unicast Frames. */
+    BCMOLT_AE_PATH_US_STAT_ID_ABORT_FRAMES          = 16,   /**< Abort Frames. */
+    BCMOLT_AE_PATH_US_STAT_ID_FCS_ERROR             = 17,   /**< FCS Error. */
+    BCMOLT_AE_PATH_US_STAT_ID_OVERSIZE_ERROR        = 18,   /**< Oversize Error. */
+    BCMOLT_AE_PATH_US_STAT_ID_RUNT_ERROR            = 19,   /**< Runt Error. */
+    BCMOLT_AE_PATH_US_STAT_ID__NUM_OF                       /**< Number of enum entries, not an entry itself. */
+} bcmolt_ae_path_us_stat_id;
+
+/** Identifiers for all properties contained in the channel_cfg group. 
+ */
+typedef enum bcmolt_channel_cfg_id
+{
+    BCMOLT_CHANNEL_CFG_ID__BEGIN                    = 0,
+    BCMOLT_CHANNEL_CFG_ID_OPERATION_CONTROL         = 0,    /**< Operation control. */
+    BCMOLT_CHANNEL_CFG_ID_TOL                       = 1,    /**< TOL. */
+    BCMOLT_CHANNEL_CFG_ID_SYSTEM_PROFILE            = 2,    /**< System profile. */
+    BCMOLT_CHANNEL_CFG_ID_CHANNEL_PROFILE           = 3,    /**< Channel profile. */
+    BCMOLT_CHANNEL_CFG_ID__NUM_OF   /**< Number of enum entries, not an entry itself. */
+} bcmolt_channel_cfg_id;
+
+/** Identifiers for all properties contained in the channel_key group. 
+ */
+typedef enum bcmolt_channel_key_id
+{
+    BCMOLT_CHANNEL_KEY_ID__BEGIN                    = 0,
+    BCMOLT_CHANNEL_KEY_ID_PON_NI                    = 0,    /**< PON network interface. */
+    BCMOLT_CHANNEL_KEY_ID__NUM_OF   /**< Number of enum entries, not an entry itself. */
+} bcmolt_channel_key_id;
+
+/** Identifiers for all properties contained in the debug_auto_cfg group. 
+ */
+typedef enum bcmolt_debug_auto_cfg_id
+{
+    BCMOLT_DEBUG_AUTO_CFG_ID__BEGIN                 = 0,
+    BCMOLT_DEBUG_AUTO_CFG_ID_CLI_OUTPUT             = 0,    /**< cli_output. */
+    BCMOLT_DEBUG_AUTO_CFG_ID_FILE_ALMOST_FULL       = 1,    /**< file_almost_full. */
+    BCMOLT_DEBUG_AUTO_CFG_ID__NUM_OF                        /**< Number of enum entries, not an entry itself. */
+} bcmolt_debug_auto_cfg_id;
+
+/** Identifiers for all properties contained in the debug_cfg group. 
+ */
+typedef enum bcmolt_debug_cfg_id
+{
+    BCMOLT_DEBUG_CFG_ID__BEGIN                      = 0,
+    BCMOLT_DEBUG_CFG_ID_CONSOLE_REDIRECTION         = 0,    /**< Console_redirection. */
+    BCMOLT_DEBUG_CFG_ID_INDICATIONS_DROPPED         = 1,    /**< Indications Dropped. */
+    BCMOLT_DEBUG_CFG_ID_FILE_USED_PERCENT           = 2,    /**< File used percent. */
+    BCMOLT_DEBUG_CFG_ID_API_CAPTURE_CFG             = 3,    /**< API Capture Cfg. */
+    BCMOLT_DEBUG_CFG_ID_API_CAPTURE_STATS           = 4,    /**< API Capture Stats. */
+    BCMOLT_DEBUG_CFG_ID_API_CAPTURE_BUFFER_READ     = 5,    /**< API Capture Buffer Read. */
+    BCMOLT_DEBUG_CFG_ID_API_CAPTURE_BUFFER          = 6,    /**< API Capture Buffer. */
+    BCMOLT_DEBUG_CFG_ID__NUM_OF /**< Number of enum entries, not an entry itself. */
+} bcmolt_debug_cfg_id;
+
+/** Identifiers for all properties contained in the debug_cli_input group. 
+ */
+typedef enum bcmolt_debug_cli_input_id
+{
+    BCMOLT_DEBUG_CLI_INPUT_ID__BEGIN                = 0,
+    BCMOLT_DEBUG_CLI_INPUT_ID_DATA                  = 0,    /**< data. */
+    BCMOLT_DEBUG_CLI_INPUT_ID__NUM_OF                       /**< Number of enum entries, not an entry itself. */
+} bcmolt_debug_cli_input_id;
+
+/** Identifiers for all properties contained in the debug_cli_output group. 
+ */
+typedef enum bcmolt_debug_cli_output_id
+{
+    BCMOLT_DEBUG_CLI_OUTPUT_ID__BEGIN               = 0,
+    BCMOLT_DEBUG_CLI_OUTPUT_ID_DATA                 = 0,    /**< data. */
+    BCMOLT_DEBUG_CLI_OUTPUT_ID__NUM_OF                      /**< Number of enum entries, not an entry itself. */
+} bcmolt_debug_cli_output_id;
+
+/** Identifiers for all properties contained in the debug_file_almost_full 
+ * group. 
+ */
+typedef enum bcmolt_debug_file_almost_full_id
+{
+    BCMOLT_DEBUG_FILE_ALMOST_FULL_ID__NUM_OF                /**< Number of enum entries, not an entry itself. */
+} bcmolt_debug_file_almost_full_id;
+
+/** Identifiers for all properties contained in the debug_key group. 
+ */
+typedef enum bcmolt_debug_key_id
+{
+    BCMOLT_DEBUG_KEY_ID__BEGIN                      = 0,
+    BCMOLT_DEBUG_KEY_ID_RESERVED                    = 0,    /**< Reserved. */
+    BCMOLT_DEBUG_KEY_ID__NUM_OF                 /**< Number of enum entries, not an entry itself. */
+} bcmolt_debug_key_id;
+
+/** Identifiers for all properties contained in the debug_reset_api_capture 
+ * group. 
+ */
+typedef enum bcmolt_debug_reset_api_capture_id
+{
+    BCMOLT_DEBUG_RESET_API_CAPTURE_ID__NUM_OF   /**< Number of enum entries, not an entry itself. */
+} bcmolt_debug_reset_api_capture_id;
+
+/** Identifiers for all properties contained in the debug_start_api_capture 
+ * group. 
+ */
+typedef enum bcmolt_debug_start_api_capture_id
+{
+    BCMOLT_DEBUG_START_API_CAPTURE_ID__NUM_OF   /**< Number of enum entries, not an entry itself. */
+} bcmolt_debug_start_api_capture_id;
+
+/** Identifiers for all properties contained in the debug_stop_api_capture 
+ * group. 
+ */
+typedef enum bcmolt_debug_stop_api_capture_id
+{
+    BCMOLT_DEBUG_STOP_API_CAPTURE_ID__NUM_OF    /**< Number of enum entries, not an entry itself. */
+} bcmolt_debug_stop_api_capture_id;
+
+/** Identifiers for all properties contained in the device_auto_cfg group. 
+ */
+typedef enum bcmolt_device_auto_cfg_id
+{
+    BCMOLT_DEVICE_AUTO_CFG_ID__BEGIN                    = 0,
+    BCMOLT_DEVICE_AUTO_CFG_ID_CONNECTION_COMPLETE       = 0,    /**< Connection Complete. */
+    BCMOLT_DEVICE_AUTO_CFG_ID_CONNECTION_ESTABLISHED    = 1,    /**< Connection Established (Internal). */
+    BCMOLT_DEVICE_AUTO_CFG_ID_CONNECTION_FAILURE        = 2,    /**< Connection Failure. */
+    BCMOLT_DEVICE_AUTO_CFG_ID_DDR_TEST_COMPLETE         = 3,    /**< DDR Test Complete. */
+    BCMOLT_DEVICE_AUTO_CFG_ID_DEVICE_KEEP_ALIVE         = 4,    /**< Device Keep Alive (Internal). */
+    BCMOLT_DEVICE_AUTO_CFG_ID_DEVICE_READY              = 5,    /**< Device Ready (Internal). */
+    BCMOLT_DEVICE_AUTO_CFG_ID_DISCONNECTION_COMPLETE    = 6,    /**< Disconnection Complete. */
+    BCMOLT_DEVICE_AUTO_CFG_ID_IMAGE_TRANSFER_COMPLETE   = 7,    /**< Image Transfer Complete. */
+    BCMOLT_DEVICE_AUTO_CFG_ID_INDICATIONS_DROPPED       = 8,    /**< Indications Dropped. */
+    BCMOLT_DEVICE_AUTO_CFG_ID_SW_ERROR                  = 9,    /**< sw error. */
+    BCMOLT_DEVICE_AUTO_CFG_ID_SW_EXCEPTION              = 10,   /**< sw exception. */
+    BCMOLT_DEVICE_AUTO_CFG_ID__NUM_OF   /**< Number of enum entries, not an entry itself. */
+} bcmolt_device_auto_cfg_id;
+
+/** Identifiers for all properties contained in the device_cfg group. 
+ */
+typedef enum bcmolt_device_cfg_id
+{
+    BCMOLT_DEVICE_CFG_ID__BEGIN                             = 0,
+    BCMOLT_DEVICE_CFG_ID_SYSTEM_MODE                        = 0,    /**< system_mode. */
+    BCMOLT_DEVICE_CFG_ID_KEEPALIVE_INTERVAL                 = 1,    /**< Device Keepalive Interval. */
+    BCMOLT_DEVICE_CFG_ID_KEEPALIVE_TOLERANCE                = 2,    /**< Device Keepalive tolerance . */
+    BCMOLT_DEVICE_CFG_ID_FIRMWARE_SW_VERSION                = 3,    /**< Firmware SW Version. */
+    BCMOLT_DEVICE_CFG_ID_HOST_SW_VERSION                    = 4,    /**< Host SW Version. */
+    BCMOLT_DEVICE_CFG_ID_CHIP_REVISION                      = 5,    /**< Chip Revision. */
+    BCMOLT_DEVICE_CFG_ID_STATE                              = 6,    /**< Device state. */
+    BCMOLT_DEVICE_CFG_ID_DEBUG                              = 7,    /**< debug parameters. */
+    BCMOLT_DEVICE_CFG_ID_NNI_SPEED                          = 8,    /**< NNI Speed. */
+    BCMOLT_DEVICE_CFG_ID_PROTECTION_SWITCHING_EXT_IRQ       = 9,    /**< Protection Switching External IRQ. */
+    BCMOLT_DEVICE_CFG_ID_EPON_CLOCK_TRANSPORT_SAMPLE_DELAY  = 10,   /**< EPON Clock Transport Sample Delay. */
+    BCMOLT_DEVICE_CFG_ID_INDICATION_SHAPING                 = 11,   /**< Indication Shaping. */
+    BCMOLT_DEVICE_CFG_ID_CHIP_TEMPERATURE                   = 12,   /**< chip temperature . */
+    BCMOLT_DEVICE_CFG_ID_GPON_XGPON_TOD_ENABLE              = 13,   /**< GPON/XGPON ToD enable. */
+    BCMOLT_DEVICE_CFG_ID_GPON_XGPON_TOD_GPIO_PIN            = 14,   /**< GPON/XGPON ToD GPIO pin. */
+    BCMOLT_DEVICE_CFG_ID_GPON_XGPON_TOD_CONNECTED_INTERNALLY= 15,   /**< GPON/XGPON is ToD internally. */
+    BCMOLT_DEVICE_CFG_ID_EPON_8021_AS_TOD_FORMAT            = 16,   /**< EPON 802.1AS ToD Format. */
+    BCMOLT_DEVICE_CFG_ID_EPON_SHAPER_MODE                   = 17,   /**< EPON Shaper Mode. */
+    BCMOLT_DEVICE_CFG_ID_EMBEDDED_IMAGE_LIST                = 18,   /**< Embedded image list. */
+    BCMOLT_DEVICE_CFG_ID_CHIP_VOLTAGE                       = 19,   /**< chip voltage. */
+    BCMOLT_DEVICE_CFG_ID_EPON_TOD_STRING                    = 20,   /**< EPON ToD String. */
+    BCMOLT_DEVICE_CFG_ID_XGPON_NUM_OF_ONUS                  = 21,   /**< xgpon num of onus. */
+    BCMOLT_DEVICE_CFG_ID_DEVICE_IP_ADDRESS                  = 22,   /**< Device IP Address. */
+    BCMOLT_DEVICE_CFG_ID_DEVICE_UDP_PORT                    = 23,   /**< Device UDP port. */
+    BCMOLT_DEVICE_CFG_ID_TOD_UART_BAUDRATE                  = 24,   /**< UART baudrate. */
+    BCMOLT_DEVICE_CFG_ID_GPON_XGPON_TOD_STRING_LENGTH       = 25,   /**< GPON/XGPON ToD string length. */
+    BCMOLT_DEVICE_CFG_ID__NUM_OF        /**< Number of enum entries, not an entry itself. */
+} bcmolt_device_cfg_id;
+
+/** Identifiers for all properties contained in the device_connect group. 
+ */
+typedef enum bcmolt_device_connect_id
+{
+    BCMOLT_DEVICE_CONNECT_ID__NUM_OF    /**< Number of enum entries, not an entry itself. */
+} bcmolt_device_connect_id;
+
+/** Identifiers for all properties contained in the device_connection_complete 
+ * group. 
+ */
+typedef enum bcmolt_device_connection_complete_id
+{
+    BCMOLT_DEVICE_CONNECTION_COMPLETE_ID__BEGIN             = 0,
+    BCMOLT_DEVICE_CONNECTION_COMPLETE_ID_STANDALONE         = 0,    /**< Standalone. */
+    BCMOLT_DEVICE_CONNECTION_COMPLETE_ID__NUM_OF                    /**< Number of enum entries, not an entry itself. */
+} bcmolt_device_connection_complete_id;
+
+/** Identifiers for all properties contained in the 
+ * device_connection_established group. 
+ */
+typedef enum bcmolt_device_connection_established_id
+{
+    BCMOLT_DEVICE_CONNECTION_ESTABLISHED_ID__NUM_OF                 /**< Number of enum entries, not an entry itself. */
+} bcmolt_device_connection_established_id;
+
+/** Identifiers for all properties contained in the device_connection_failure 
+ * group. 
+ */
+typedef enum bcmolt_device_connection_failure_id
+{
+    BCMOLT_DEVICE_CONNECTION_FAILURE_ID__BEGIN              = 0,
+    BCMOLT_DEVICE_CONNECTION_FAILURE_ID_REASON              = 0,    /**< Connection fail reason. */
+    BCMOLT_DEVICE_CONNECTION_FAILURE_ID__NUM_OF                     /**< Number of enum entries, not an entry itself. */
+} bcmolt_device_connection_failure_id;
+
+/** Identifiers for all properties contained in the device_ddr_test_complete 
+ * group. 
+ */
+typedef enum bcmolt_device_ddr_test_complete_id
+{
+    BCMOLT_DEVICE_DDR_TEST_COMPLETE_ID__BEGIN               = 0,
+    BCMOLT_DEVICE_DDR_TEST_COMPLETE_ID_DDR_TEST             = 0,    /**< DDR Test. */
+    BCMOLT_DEVICE_DDR_TEST_COMPLETE_ID__NUM_OF                      /**< Number of enum entries, not an entry itself. */
+} bcmolt_device_ddr_test_complete_id;
+
+/** Identifiers for all properties contained in the device_device_keep_alive 
+ * group. 
+ */
+typedef enum bcmolt_device_device_keep_alive_id
+{
+    BCMOLT_DEVICE_DEVICE_KEEP_ALIVE_ID__BEGIN               = 0,
+    BCMOLT_DEVICE_DEVICE_KEEP_ALIVE_ID_SEQUENCE_NUMBER      = 0,    /**< sequence number. */
+    BCMOLT_DEVICE_DEVICE_KEEP_ALIVE_ID_TIME_STAMP           = 1,    /**< time stamp. */
+    BCMOLT_DEVICE_DEVICE_KEEP_ALIVE_ID__NUM_OF                      /**< Number of enum entries, not an entry itself. */
+} bcmolt_device_device_keep_alive_id;
+
+/** Identifiers for all properties contained in the device_device_ready group. 
+ */
+typedef enum bcmolt_device_device_ready_id
+{
+    BCMOLT_DEVICE_DEVICE_READY_ID__BEGIN                    = 0,
+    BCMOLT_DEVICE_DEVICE_READY_ID_FIRMWARE_SW_VERSION       = 0,    /**< Software Version. */
+    BCMOLT_DEVICE_DEVICE_READY_ID_SYSTEM_MODE               = 1,    /**< System Mode. */
+    BCMOLT_DEVICE_DEVICE_READY_ID_NNI_SPEED                 = 2,    /**< NNI Speed. */
+    BCMOLT_DEVICE_DEVICE_READY_ID_CHIP_REVISION             = 3,    /**< Chip Revision. */
+    BCMOLT_DEVICE_DEVICE_READY_ID_TOD_ENABLE                = 4,    /**< ToD control. */
+    BCMOLT_DEVICE_DEVICE_READY_ID_TOD_GPIO_PIN              = 5,    /**< GPIO pin is used when ToD UART is not connected to the embedded, and TOD value is obtained by the host. */
+    BCMOLT_DEVICE_DEVICE_READY_ID__NUM_OF           /**< Number of enum entries, not an entry itself. */
+} bcmolt_device_device_ready_id;
+
+/** Identifiers for all properties contained in the device_disconnect group. 
+ */
+typedef enum bcmolt_device_disconnect_id
+{
+    BCMOLT_DEVICE_DISCONNECT_ID__NUM_OF             /**< Number of enum entries, not an entry itself. */
+} bcmolt_device_disconnect_id;
+
+/** Identifiers for all properties contained in the 
+ * device_disconnection_complete group. 
+ */
+typedef enum bcmolt_device_disconnection_complete_id
+{
+    BCMOLT_DEVICE_DISCONNECTION_COMPLETE_ID__NUM_OF /**< Number of enum entries, not an entry itself. */
+} bcmolt_device_disconnection_complete_id;
+
+/** Identifiers for all properties contained in the device_host_keep_alive 
+ * group. 
+ */
+typedef enum bcmolt_device_host_keep_alive_id
+{
+    BCMOLT_DEVICE_HOST_KEEP_ALIVE_ID__BEGIN                 = 0,
+    BCMOLT_DEVICE_HOST_KEEP_ALIVE_ID_SEQUENCE_NUMBER        = 0,    /**< sequence number. */
+    BCMOLT_DEVICE_HOST_KEEP_ALIVE_ID_TIME_STAMP             = 1,    /**< time stamp. */
+    BCMOLT_DEVICE_HOST_KEEP_ALIVE_ID__NUM_OF                        /**< Number of enum entries, not an entry itself. */
+} bcmolt_device_host_keep_alive_id;
+
+/** Identifiers for all properties contained in the 
+ * device_image_transfer_complete group. 
+ */
+typedef enum bcmolt_device_image_transfer_complete_id
+{
+    BCMOLT_DEVICE_IMAGE_TRANSFER_COMPLETE_ID__BEGIN         = 0,
+    BCMOLT_DEVICE_IMAGE_TRANSFER_COMPLETE_ID_IMAGE_TYPE     = 0,    /**< Image type. */
+    BCMOLT_DEVICE_IMAGE_TRANSFER_COMPLETE_ID_BLOCK_NUMBER   = 1,    /**< Block number. */
+    BCMOLT_DEVICE_IMAGE_TRANSFER_COMPLETE_ID_STATUS         = 2,    /**< Status. */
+    BCMOLT_DEVICE_IMAGE_TRANSFER_COMPLETE_ID__NUM_OF                /**< Number of enum entries, not an entry itself. */
+} bcmolt_device_image_transfer_complete_id;
+
+/** Identifiers for all properties contained in the device_image_transfer_data 
+ * group. 
+ */
+typedef enum bcmolt_device_image_transfer_data_id
+{
+    BCMOLT_DEVICE_IMAGE_TRANSFER_DATA_ID__BEGIN             = 0,
+    BCMOLT_DEVICE_IMAGE_TRANSFER_DATA_ID_BLOCK_NUMBER       = 0,    /**< Block number. */
+    BCMOLT_DEVICE_IMAGE_TRANSFER_DATA_ID_MORE_DATA          = 1,    /**< More Data. */
+    BCMOLT_DEVICE_IMAGE_TRANSFER_DATA_ID_DATA               = 2,    /**< Data. */
+    BCMOLT_DEVICE_IMAGE_TRANSFER_DATA_ID__NUM_OF                    /**< Number of enum entries, not an entry itself. */
+} bcmolt_device_image_transfer_data_id;
+
+/** Identifiers for all properties contained in the device_image_transfer_start 
+ * group. 
+ */
+typedef enum bcmolt_device_image_transfer_start_id
+{
+    BCMOLT_DEVICE_IMAGE_TRANSFER_START_ID__BEGIN            = 0,
+    BCMOLT_DEVICE_IMAGE_TRANSFER_START_ID_IMAGE_TYPE        = 0,    /**< Image type. */
+    BCMOLT_DEVICE_IMAGE_TRANSFER_START_ID_IMAGE_SIZE        = 1,    /**< Image Size. */
+    BCMOLT_DEVICE_IMAGE_TRANSFER_START_ID_CRC32             = 2,    /**< CRC32. */
+    BCMOLT_DEVICE_IMAGE_TRANSFER_START_ID_IMAGE_NAME        = 3,    /**< Image name. */
+    BCMOLT_DEVICE_IMAGE_TRANSFER_START_ID__NUM_OF                   /**< Number of enum entries, not an entry itself. */
+} bcmolt_device_image_transfer_start_id;
+
+/** Identifiers for all properties contained in the device_indications_dropped 
+ * group. 
+ */
+typedef enum bcmolt_device_indications_dropped_id
+{
+    BCMOLT_DEVICE_INDICATIONS_DROPPED_ID__BEGIN             = 0,
+    BCMOLT_DEVICE_INDICATIONS_DROPPED_ID_TOTAL_COUNT        = 0,    /**< Total Count. */
+    BCMOLT_DEVICE_INDICATIONS_DROPPED_ID__NUM_OF                    /**< Number of enum entries, not an entry itself. */
+} bcmolt_device_indications_dropped_id;
+
+/** Identifiers for all properties contained in the device_key group. 
+ */
+typedef enum bcmolt_device_key_id
+{
+    BCMOLT_DEVICE_KEY_ID__BEGIN                             = 0,
+    BCMOLT_DEVICE_KEY_ID_RESERVED                           = 0,    /**< Reserved. */
+    BCMOLT_DEVICE_KEY_ID__NUM_OF    /**< Number of enum entries, not an entry itself. */
+} bcmolt_device_key_id;
+
+/** Identifiers for all properties contained in the device_reset group. 
+ */
+typedef enum bcmolt_device_reset_id
+{
+    BCMOLT_DEVICE_RESET_ID__BEGIN                           = 0,
+    BCMOLT_DEVICE_RESET_ID_MODE                             = 0,    /**< Mode. */
+    BCMOLT_DEVICE_RESET_ID__NUM_OF  /**< Number of enum entries, not an entry itself. */
+} bcmolt_device_reset_id;
+
+/** Identifiers for all properties contained in the device_run_ddr_test group. 
+ */
+typedef enum bcmolt_device_run_ddr_test_id
+{
+    BCMOLT_DEVICE_RUN_DDR_TEST_ID__BEGIN                    = 0,
+    BCMOLT_DEVICE_RUN_DDR_TEST_ID_CPU                       = 0,    /**< CPU. */
+    BCMOLT_DEVICE_RUN_DDR_TEST_ID_RAS_0                     = 1,    /**< RAS 0. */
+    BCMOLT_DEVICE_RUN_DDR_TEST_ID_RAS_1                     = 2,    /**< RAS 1. */
+    BCMOLT_DEVICE_RUN_DDR_TEST_ID__NUM_OF   /**< Number of enum entries, not an entry itself. */
+} bcmolt_device_run_ddr_test_id;
+
+/** Identifiers for all properties contained in the device_sw_error group. 
+ */
+typedef enum bcmolt_device_sw_error_id
+{
+    BCMOLT_DEVICE_SW_ERROR_ID__BEGIN                        = 0,
+    BCMOLT_DEVICE_SW_ERROR_ID_TASK_NAME                     = 0,    /**< task name. */
+    BCMOLT_DEVICE_SW_ERROR_ID_FILE_NAME                     = 1,    /**< file name. */
+    BCMOLT_DEVICE_SW_ERROR_ID_LINE_NUMBER                   = 2,    /**< line number. */
+    BCMOLT_DEVICE_SW_ERROR_ID_PON_NI                        = 3,    /**< pon_ni. */
+    BCMOLT_DEVICE_SW_ERROR_ID__NUM_OF   /**< Number of enum entries, not an entry itself. */
+} bcmolt_device_sw_error_id;
+
+/** Identifiers for all properties contained in the device_sw_exception group. 
+ */
+typedef enum bcmolt_device_sw_exception_id
+{
+    BCMOLT_DEVICE_SW_EXCEPTION_ID__BEGIN                    = 0,
+    BCMOLT_DEVICE_SW_EXCEPTION_ID_CPU_ID                    = 0,    /**< CPU ID. */
+    BCMOLT_DEVICE_SW_EXCEPTION_ID_TEXT                      = 1,    /**< text. */
+    BCMOLT_DEVICE_SW_EXCEPTION_ID__NUM_OF           /**< Number of enum entries, not an entry itself. */
+} bcmolt_device_sw_exception_id;
+
+/** Identifiers for all properties contained in the device_sw_upgrade_activate 
+ * group. 
+ */
+typedef enum bcmolt_device_sw_upgrade_activate_id
+{
+    BCMOLT_DEVICE_SW_UPGRADE_ACTIVATE_ID__NUM_OF    /**< Number of enum entries, not an entry itself. */
+} bcmolt_device_sw_upgrade_activate_id;
+
+/** Identifiers for all properties contained in the epon_denied_link_auto_cfg 
+ * group. 
+ */
+typedef enum bcmolt_epon_denied_link_auto_cfg_id
+{
+    BCMOLT_EPON_DENIED_LINK_AUTO_CFG_ID__BEGIN                      = 0,
+    BCMOLT_EPON_DENIED_LINK_AUTO_CFG_ID_LASER_ON_OFF_VIOLATION      = 0,    /**< Laser On/Off Violation. */
+    BCMOLT_EPON_DENIED_LINK_AUTO_CFG_ID_LLID_POOL_EMPTY_VIOLATION   = 1,    /**< LLID Pool Empty Violation. */
+    BCMOLT_EPON_DENIED_LINK_AUTO_CFG_ID_MAX_LINK_VIOLATION          = 2,    /**< Max Link Violation. */
+    BCMOLT_EPON_DENIED_LINK_AUTO_CFG_ID_OVERHEAD_PROFILE_VIOLATION  = 3,    /**< Overhead Profile Violation. */
+    BCMOLT_EPON_DENIED_LINK_AUTO_CFG_ID_RANGE_VIOLATION             = 4,    /**< Range Violation. */
+    BCMOLT_EPON_DENIED_LINK_AUTO_CFG_ID_ROGUE_VIOLATION             = 5,    /**< Rogue ONU Detected. */
+    BCMOLT_EPON_DENIED_LINK_AUTO_CFG_ID_SYSTEM_RESOURCE_VIOLATION   = 6,    /**< System Resource Violation. */
+    BCMOLT_EPON_DENIED_LINK_AUTO_CFG_ID_TDM_CHANNELS_EXHAUSTED      = 7,    /**< TDM Channels Exhausted. */
+    BCMOLT_EPON_DENIED_LINK_AUTO_CFG_ID_UNKNOWN_LINK_VIOLATION      = 8,    /**< Unknown Link Violation. */
+    BCMOLT_EPON_DENIED_LINK_AUTO_CFG_ID_UPSTREAM_BANDWIDTH_VIOLATION= 9,    /**< Upstream Bandwidth Violation. */
+    BCMOLT_EPON_DENIED_LINK_AUTO_CFG_ID__NUM_OF /**< Number of enum entries, not an entry itself. */
+} bcmolt_epon_denied_link_auto_cfg_id;
+
+/** Identifiers for all properties contained in the epon_denied_link_cfg group. 
+ */
+typedef enum bcmolt_epon_denied_link_cfg_id
+{
+    BCMOLT_EPON_DENIED_LINK_CFG_ID__BEGIN                           = 0,
+    BCMOLT_EPON_DENIED_LINK_CFG_ID_ALARM_STATE                      = 0,    /**< Alarm State. */
+    BCMOLT_EPON_DENIED_LINK_CFG_ID__NUM_OF  /**< Number of enum entries, not an entry itself. */
+} bcmolt_epon_denied_link_cfg_id;
+
+/** Identifiers for all properties contained in the epon_denied_link_key group. 
+ */
+typedef enum bcmolt_epon_denied_link_key_id
+{
+    BCMOLT_EPON_DENIED_LINK_KEY_ID__BEGIN                           = 0,
+    BCMOLT_EPON_DENIED_LINK_KEY_ID_EPON_NI                          = 0,    /**< EPON NI Identifier. */
+    BCMOLT_EPON_DENIED_LINK_KEY_ID_MAC_ADDRESS                      = 1,    /**< MAC Address. */
+    BCMOLT_EPON_DENIED_LINK_KEY_ID__NUM_OF  /**< Number of enum entries, not an entry itself. */
+} bcmolt_epon_denied_link_key_id;
+
+/** Identifiers for all properties contained in the 
+ * epon_denied_link_laser_on_off_violation group. 
+ */
+typedef enum bcmolt_epon_denied_link_laser_on_off_violation_id
+{
+    BCMOLT_EPON_DENIED_LINK_LASER_ON_OFF_VIOLATION_ID__BEGIN        = 0,
+    BCMOLT_EPON_DENIED_LINK_LASER_ON_OFF_VIOLATION_ID_ALARM_STATUS  = 0,        /**< Alarm Status. */
+    BCMOLT_EPON_DENIED_LINK_LASER_ON_OFF_VIOLATION_ID__NUM_OF                   /**< Number of enum entries, not an entry itself. */
+} bcmolt_epon_denied_link_laser_on_off_violation_id;
+
+/** Identifiers for all properties contained in the 
+ * epon_denied_link_llid_pool_empty_violation group. 
+ */
+typedef enum bcmolt_epon_denied_link_llid_pool_empty_violation_id
+{
+    BCMOLT_EPON_DENIED_LINK_LLID_POOL_EMPTY_VIOLATION_ID__BEGIN         = 0,
+    BCMOLT_EPON_DENIED_LINK_LLID_POOL_EMPTY_VIOLATION_ID_ALARM_STATUS   = 0,    /**< Alarm Status. */
+    BCMOLT_EPON_DENIED_LINK_LLID_POOL_EMPTY_VIOLATION_ID__NUM_OF                /**< Number of enum entries, not an entry itself. */
+} bcmolt_epon_denied_link_llid_pool_empty_violation_id;
+
+/** Identifiers for all properties contained in the 
+ * epon_denied_link_max_link_violation group. 
+ */
+typedef enum bcmolt_epon_denied_link_max_link_violation_id
+{
+    BCMOLT_EPON_DENIED_LINK_MAX_LINK_VIOLATION_ID__BEGIN                = 0,
+    BCMOLT_EPON_DENIED_LINK_MAX_LINK_VIOLATION_ID_ALARM_STATUS          = 0,    /**< Alarm Status. */
+    BCMOLT_EPON_DENIED_LINK_MAX_LINK_VIOLATION_ID__NUM_OF                       /**< Number of enum entries, not an entry itself. */
+} bcmolt_epon_denied_link_max_link_violation_id;
+
+/** Identifiers for all properties contained in the 
+ * epon_denied_link_overhead_profile_violation group. 
+ */
+typedef enum bcmolt_epon_denied_link_overhead_profile_violation_id
+{
+    BCMOLT_EPON_DENIED_LINK_OVERHEAD_PROFILE_VIOLATION_ID__BEGIN        = 0,
+    BCMOLT_EPON_DENIED_LINK_OVERHEAD_PROFILE_VIOLATION_ID_ALARM_STATUS  = 0,    /**< Alarm status. */
+    BCMOLT_EPON_DENIED_LINK_OVERHEAD_PROFILE_VIOLATION_ID__NUM_OF               /**< Number of enum entries, not an entry itself. */
+} bcmolt_epon_denied_link_overhead_profile_violation_id;
+
+/** Identifiers for all properties contained in the 
+ * epon_denied_link_range_violation group. 
+ */
+typedef enum bcmolt_epon_denied_link_range_violation_id
+{
+    BCMOLT_EPON_DENIED_LINK_RANGE_VIOLATION_ID__BEGIN                   = 0,
+    BCMOLT_EPON_DENIED_LINK_RANGE_VIOLATION_ID_ALARM_STATUS             = 0,    /**< Alarm Status. */
+    BCMOLT_EPON_DENIED_LINK_RANGE_VIOLATION_ID__NUM_OF  /**< Number of enum entries, not an entry itself. */
+} bcmolt_epon_denied_link_range_violation_id;
+
+/** Identifiers for all properties contained in the 
+ * epon_denied_link_rogue_violation group. 
+ */
+typedef enum bcmolt_epon_denied_link_rogue_violation_id
+{
+    BCMOLT_EPON_DENIED_LINK_ROGUE_VIOLATION_ID__BEGIN                   = 0,
+    BCMOLT_EPON_DENIED_LINK_ROGUE_VIOLATION_ID_ALARM_STATUS             = 0,    /**< Alarm Status. */
+    BCMOLT_EPON_DENIED_LINK_ROGUE_VIOLATION_ID__NUM_OF  /**< Number of enum entries, not an entry itself. */
+} bcmolt_epon_denied_link_rogue_violation_id;
+
+/** Identifiers for all properties contained in the 
+ * epon_denied_link_system_resource_violation group. 
+ */
+typedef enum bcmolt_epon_denied_link_system_resource_violation_id
+{
+    BCMOLT_EPON_DENIED_LINK_SYSTEM_RESOURCE_VIOLATION_ID__BEGIN         = 0,
+    BCMOLT_EPON_DENIED_LINK_SYSTEM_RESOURCE_VIOLATION_ID_ALARM_STATUS   = 0,    /**< Alarm Status. */
+    BCMOLT_EPON_DENIED_LINK_SYSTEM_RESOURCE_VIOLATION_ID__NUM_OF                /**< Number of enum entries, not an entry itself. */
+} bcmolt_epon_denied_link_system_resource_violation_id;
+
+/** Identifiers for all properties contained in the 
+ * epon_denied_link_tdm_channels_exhausted group. 
+ */
+typedef enum bcmolt_epon_denied_link_tdm_channels_exhausted_id
+{
+    BCMOLT_EPON_DENIED_LINK_TDM_CHANNELS_EXHAUSTED_ID__BEGIN            = 0,
+    BCMOLT_EPON_DENIED_LINK_TDM_CHANNELS_EXHAUSTED_ID_ALARM_STATUS      = 0,    /**< Alarm Status. */
+    BCMOLT_EPON_DENIED_LINK_TDM_CHANNELS_EXHAUSTED_ID__NUM_OF                   /**< Number of enum entries, not an entry itself. */
+} bcmolt_epon_denied_link_tdm_channels_exhausted_id;
+
+/** Identifiers for all properties contained in the 
+ * epon_denied_link_unknown_link_violation group. 
+ */
+typedef enum bcmolt_epon_denied_link_unknown_link_violation_id
+{
+    BCMOLT_EPON_DENIED_LINK_UNKNOWN_LINK_VIOLATION_ID__BEGIN            = 0,
+    BCMOLT_EPON_DENIED_LINK_UNKNOWN_LINK_VIOLATION_ID_ALARM_STATUS      = 0,    /**< Alarm Status. */
+    BCMOLT_EPON_DENIED_LINK_UNKNOWN_LINK_VIOLATION_ID__NUM_OF                   /**< Number of enum entries, not an entry itself. */
+} bcmolt_epon_denied_link_unknown_link_violation_id;
+
+/** Identifiers for all properties contained in the 
+ * epon_denied_link_upstream_bandwidth_violation group. 
+ */
+typedef enum bcmolt_epon_denied_link_upstream_bandwidth_violation_id
+{
+    BCMOLT_EPON_DENIED_LINK_UPSTREAM_BANDWIDTH_VIOLATION_ID__BEGIN      = 0,
+    BCMOLT_EPON_DENIED_LINK_UPSTREAM_BANDWIDTH_VIOLATION_ID_ALARM_STATUS= 0,    /**< Alarm Status. */
+    BCMOLT_EPON_DENIED_LINK_UPSTREAM_BANDWIDTH_VIOLATION_ID__NUM_OF             /**< Number of enum entries, not an entry itself. */
+} bcmolt_epon_denied_link_upstream_bandwidth_violation_id;
+
+/** Identifiers for all properties contained in the epon_link_auto_cfg group. 
+ */
+typedef enum bcmolt_epon_link_auto_cfg_id
+{
+    BCMOLT_EPON_LINK_AUTO_CFG_ID__BEGIN                                 = 0,
+    BCMOLT_EPON_LINK_AUTO_CFG_ID_DUPLICATE_MPCP_REGISTRATION_REQUEST    = 0,    /**< Duplicate MPCP Registration Request. */
+    BCMOLT_EPON_LINK_AUTO_CFG_ID_ENCRYPTION_ENABLED                     = 1,    /**< Encryption Enabled. */
+    BCMOLT_EPON_LINK_AUTO_CFG_ID_KEY_EXCHANGE_FAILURE                   = 2,    /**< Key Exchange Failure. */
+    BCMOLT_EPON_LINK_AUTO_CFG_ID_KEY_EXCHANGE_STARTED                   = 3,    /**< key_exchange_started. */
+    BCMOLT_EPON_LINK_AUTO_CFG_ID_KEY_EXCHANGE_STOPPED                   = 4,    /**< key_exchange_stopped. */
+    BCMOLT_EPON_LINK_AUTO_CFG_ID_LINK_DELETED                           = 5,    /**< Link Deleted. */
+    BCMOLT_EPON_LINK_AUTO_CFG_ID_LINK_SPEED_MISMATCH                    = 6,    /**< Link attempted to register at a different speed. */
+    BCMOLT_EPON_LINK_AUTO_CFG_ID_MPCP_DEREGISTERED                      = 7,    /**< MPCP Deregistered. */
+    BCMOLT_EPON_LINK_AUTO_CFG_ID_MPCP_DISCOVERED                        = 8,    /**< MPCP Discovered. */
+    BCMOLT_EPON_LINK_AUTO_CFG_ID_MPCP_REG_ACK_TIMEOUT                   = 9,    /**< MPCP Reg Ack Timeout. */
+    BCMOLT_EPON_LINK_AUTO_CFG_ID_MPCP_REPORT_TIMEOUT                    = 10,   /**< MPCP Report Timeout. */
+    BCMOLT_EPON_LINK_AUTO_CFG_ID_OAM_KEEPALIVE_TIMEOUT                  = 11,   /**< OAM Keepalive Timeout. */
+    BCMOLT_EPON_LINK_AUTO_CFG_ID_OAM_KEEPALIVE_TIMER_STARTED            = 12,   /**< OAM keepalive timer started. */
+    BCMOLT_EPON_LINK_AUTO_CFG_ID_OAM_KEEPALIVE_TIMER_STOPPED            = 13,   /**< OAM keepalive timer stopped. */
+    BCMOLT_EPON_LINK_AUTO_CFG_ID_PREPROVISIONED_LINK_CREATED            = 14,   /**< Preprovisioned Link Created. */
+    BCMOLT_EPON_LINK_AUTO_CFG_ID_PROTECTION_SWITCH_OCCURRED             = 15,   /**< Protection Switch Occurred. */
+    BCMOLT_EPON_LINK_AUTO_CFG_ID_RANGE_VALUE_CHANGED                    = 16,   /**< Range Value Changed. */
+    BCMOLT_EPON_LINK_AUTO_CFG_ID_RERANGE_FAILURE                        = 17,   /**< Re-range failure. */
+    BCMOLT_EPON_LINK_AUTO_CFG_ID_STAT_ALARM_CLEARED                     = 18,   /**< Stat Alarm Cleared. */
+    BCMOLT_EPON_LINK_AUTO_CFG_ID_STAT_ALARM_RAISED                      = 19,   /**< Stat Alarm Raised. */
+    BCMOLT_EPON_LINK_AUTO_CFG_ID_STATIC_REGISTRATION_DONE               = 20,   /**< Static registration done. */
+    BCMOLT_EPON_LINK_AUTO_CFG_ID__NUM_OF    /**< Number of enum entries, not an entry itself. */
+} bcmolt_epon_link_auto_cfg_id;
+
+/** Identifiers for all properties contained in the epon_link_cfg group. 
+ */
+typedef enum bcmolt_epon_link_cfg_id
+{
+    BCMOLT_EPON_LINK_CFG_ID__BEGIN                                      = 0,
+    BCMOLT_EPON_LINK_CFG_ID_LINK_RATE                                   = 0,    /**< EPON link rate. */
+    BCMOLT_EPON_LINK_CFG_ID_STATE_FLAGS                                 = 1,    /**< EPON link state flags. */
+    BCMOLT_EPON_LINK_CFG_ID_LLID                                        = 2,    /**< EPON logical link identifier. */
+    BCMOLT_EPON_LINK_CFG_ID_LASER_ON_TIME_TQ                            = 3,    /**< Laser-on time (TQ). */
+    BCMOLT_EPON_LINK_CFG_ID_LASER_OFF_TIME_TQ                           = 4,    /**< Laser-off time (TQ). */
+    BCMOLT_EPON_LINK_CFG_ID_RANGE_VALUE_TQ                              = 5,    /**< Range value (TQ). */
+    BCMOLT_EPON_LINK_CFG_ID_DISTANCE                                    = 6,    /**< Distance. */
+    BCMOLT_EPON_LINK_CFG_ID_ALARM_STATE                                 = 7,    /**< Alarm State. */
+    BCMOLT_EPON_LINK_CFG_ID_TUNNEL_ID                                   = 8,    /**< Tunnel ID. */
+    BCMOLT_EPON_LINK_CFG_ID_ONU_ID                                      = 9,    /**< Associated ONU. */
+    BCMOLT_EPON_LINK_CFG_ID_MIN_LASER_OVERHEAD                          = 10,   /**< Min Laser Overhead. */
+    BCMOLT_EPON_LINK_CFG_ID_KEY_EXCHANGE_CONFIG                         = 11,   /**< Key exchange configuration. */
+    BCMOLT_EPON_LINK_CFG_ID_EPON_ENCRYPTION                             = 12,   /**< EPON Encryption . */
+    BCMOLT_EPON_LINK_CFG_ID_FEC_ENABLE                                  = 13,   /**< FEC enable. */
+    BCMOLT_EPON_LINK_CFG_ID_OAM_HEARTBEAT_CONFIG                        = 14,   /**< OAM heartbeat configuration. */
+    BCMOLT_EPON_LINK_CFG_ID_UPSTREAM_BANDWIDTH                          = 15,   /**< Upstream Bandwidth. */
+    BCMOLT_EPON_LINK_CFG_ID_UBD_INFO                                    = 16,   /**< UBD Info. */
+    BCMOLT_EPON_LINK_CFG_ID_CLOCK_TRANSPORT_ENABLE                      = 17,   /**< Clock Transport Enable. */
+    BCMOLT_EPON_LINK_CFG_ID_PENDING_GRANTS                              = 18,   /**< Pending grants. */
+    BCMOLT_EPON_LINK_CFG_ID_LINK_TYPE                                   = 19,   /**< Link Type. */
+    BCMOLT_EPON_LINK_CFG_ID__NUM_OF         /**< Number of enum entries, not an entry itself. */
+} bcmolt_epon_link_cfg_id;
+
+/** Identifiers for all properties contained in the epon_link_delete_link group. 
+ */
+typedef enum bcmolt_epon_link_delete_link_id
+{
+    BCMOLT_EPON_LINK_DELETE_LINK_ID__NUM_OF /**< Number of enum entries, not an entry itself. */
+} bcmolt_epon_link_delete_link_id;
+
+/** Identifiers for all properties contained in the 
+ * epon_link_duplicate_mpcp_registration_request group. 
+ */
+typedef enum bcmolt_epon_link_duplicate_mpcp_registration_request_id
+{
+    BCMOLT_EPON_LINK_DUPLICATE_MPCP_REGISTRATION_REQUEST_ID__BEGIN          = 0,
+    BCMOLT_EPON_LINK_DUPLICATE_MPCP_REGISTRATION_REQUEST_ID_INITIAL_RANGE_TQ= 0,    /**< Initial range. */
+    BCMOLT_EPON_LINK_DUPLICATE_MPCP_REGISTRATION_REQUEST_ID_CURRENT_RANGE_TQ= 1,    /**< Current range. */
+    BCMOLT_EPON_LINK_DUPLICATE_MPCP_REGISTRATION_REQUEST_ID__NUM_OF                 /**< Number of enum entries, not an entry itself. */
+} bcmolt_epon_link_duplicate_mpcp_registration_request_id;
+
+/** Identifiers for all properties contained in the epon_link_encryption_enabled 
+ * group. 
+ */
+typedef enum bcmolt_epon_link_encryption_enabled_id
+{
+    BCMOLT_EPON_LINK_ENCRYPTION_ENABLED_ID__NUM_OF  /**< Number of enum entries, not an entry itself. */
+} bcmolt_epon_link_encryption_enabled_id;
+
+/** Identifiers for all properties contained in the epon_link_force_rediscovery 
+ * group. 
+ */
+typedef enum bcmolt_epon_link_force_rediscovery_id
+{
+    BCMOLT_EPON_LINK_FORCE_REDISCOVERY_ID__NUM_OF   /**< Number of enum entries, not an entry itself. */
+} bcmolt_epon_link_force_rediscovery_id;
+
+/** Identifiers for all properties contained in the epon_link_frame_captured 
+ * group. 
+ */
+typedef enum bcmolt_epon_link_frame_captured_id
+{
+    BCMOLT_EPON_LINK_FRAME_CAPTURED_ID__BEGIN                               = 0,
+    BCMOLT_EPON_LINK_FRAME_CAPTURED_ID_FRAME                                = 0,    /**< Received frame. */
+    BCMOLT_EPON_LINK_FRAME_CAPTURED_ID__NUM_OF  /**< Number of enum entries, not an entry itself. */
+} bcmolt_epon_link_frame_captured_id;
+
+/** Identifiers for all properties contained in the epon_link_inject_frame 
+ * group. 
+ */
+typedef enum bcmolt_epon_link_inject_frame_id
+{
+    BCMOLT_EPON_LINK_INJECT_FRAME_ID__BEGIN                                 = 0,
+    BCMOLT_EPON_LINK_INJECT_FRAME_ID_FRAME                                  = 0,    /**< Frame to transmit. */
+    BCMOLT_EPON_LINK_INJECT_FRAME_ID__NUM_OF    /**< Number of enum entries, not an entry itself. */
+} bcmolt_epon_link_inject_frame_id;
+
+/** Identifiers for all properties contained in the 
+ * epon_link_key_exchange_failure group. 
+ */
+typedef enum bcmolt_epon_link_key_exchange_failure_id
+{
+    BCMOLT_EPON_LINK_KEY_EXCHANGE_FAILURE_ID__BEGIN                         = 0,
+    BCMOLT_EPON_LINK_KEY_EXCHANGE_FAILURE_ID_ALARM_STATUS                   = 0,    /**< alarm status. */
+    BCMOLT_EPON_LINK_KEY_EXCHANGE_FAILURE_ID__NUM_OF    /**< Number of enum entries, not an entry itself. */
+} bcmolt_epon_link_key_exchange_failure_id;
+
+/** Identifiers for all properties contained in the epon_link_key_exchange_start 
+ * group. 
+ */
+typedef enum bcmolt_epon_link_key_exchange_start_id
+{
+    BCMOLT_EPON_LINK_KEY_EXCHANGE_START_ID__BEGIN                           = 0,
+    BCMOLT_EPON_LINK_KEY_EXCHANGE_START_ID_PERIOD                           = 0,    /**< period. */
+    BCMOLT_EPON_LINK_KEY_EXCHANGE_START_ID__NUM_OF      /**< Number of enum entries, not an entry itself. */
+} bcmolt_epon_link_key_exchange_start_id;
+
+/** Identifiers for all properties contained in the 
+ * epon_link_key_exchange_started group. 
+ */
+typedef enum bcmolt_epon_link_key_exchange_started_id
+{
+    BCMOLT_EPON_LINK_KEY_EXCHANGE_STARTED_ID__NUM_OF    /**< Number of enum entries, not an entry itself. */
+} bcmolt_epon_link_key_exchange_started_id;
+
+/** Identifiers for all properties contained in the epon_link_key_exchange_stop 
+ * group. 
+ */
+typedef enum bcmolt_epon_link_key_exchange_stop_id
+{
+    BCMOLT_EPON_LINK_KEY_EXCHANGE_STOP_ID__NUM_OF       /**< Number of enum entries, not an entry itself. */
+} bcmolt_epon_link_key_exchange_stop_id;
+
+/** Identifiers for all properties contained in the 
+ * epon_link_key_exchange_stopped group. 
+ */
+typedef enum bcmolt_epon_link_key_exchange_stopped_id
+{
+    BCMOLT_EPON_LINK_KEY_EXCHANGE_STOPPED_ID__NUM_OF    /**< Number of enum entries, not an entry itself. */
+} bcmolt_epon_link_key_exchange_stopped_id;
+
+/** Identifiers for all properties contained in the epon_link_key group. 
+ */
+typedef enum bcmolt_epon_link_key_id
+{
+    BCMOLT_EPON_LINK_KEY_ID__BEGIN                                          = 0,
+    BCMOLT_EPON_LINK_KEY_ID_EPON_NI                                         = 0,    /**< EPON NI identifier. */
+    BCMOLT_EPON_LINK_KEY_ID_MAC_ADDRESS                                     = 1,    /**< MAC address. */
+    BCMOLT_EPON_LINK_KEY_ID__NUM_OF             /**< Number of enum entries, not an entry itself. */
+} bcmolt_epon_link_key_id;
+
+/** Identifiers for all properties contained in the epon_link_link_deleted 
+ * group. 
+ */
+typedef enum bcmolt_epon_link_link_deleted_id
+{
+    BCMOLT_EPON_LINK_LINK_DELETED_ID__NUM_OF    /**< Number of enum entries, not an entry itself. */
+} bcmolt_epon_link_link_deleted_id;
+
+/** Identifiers for all properties contained in the 
+ * epon_link_link_speed_mismatch group. 
+ */
+typedef enum bcmolt_epon_link_link_speed_mismatch_id
+{
+    BCMOLT_EPON_LINK_LINK_SPEED_MISMATCH_ID__BEGIN                          = 0,
+    BCMOLT_EPON_LINK_LINK_SPEED_MISMATCH_ID_PREVIOUS_RATE                   = 0,    /**< Previous rate. */
+    BCMOLT_EPON_LINK_LINK_SPEED_MISMATCH_ID_CURRENT_RATE                    = 1,    /**< Current rate. */
+    BCMOLT_EPON_LINK_LINK_SPEED_MISMATCH_ID__NUM_OF /**< Number of enum entries, not an entry itself. */
+} bcmolt_epon_link_link_speed_mismatch_id;
+
+/** Identifiers for all properties contained in the epon_link_mpcp_deregistered 
+ * group. 
+ */
+typedef enum bcmolt_epon_link_mpcp_deregistered_id
+{
+    BCMOLT_EPON_LINK_MPCP_DEREGISTERED_ID__NUM_OF   /**< Number of enum entries, not an entry itself. */
+} bcmolt_epon_link_mpcp_deregistered_id;
+
+/** Identifiers for all properties contained in the epon_link_mpcp_discovered 
+ * group. 
+ */
+typedef enum bcmolt_epon_link_mpcp_discovered_id
+{
+    BCMOLT_EPON_LINK_MPCP_DISCOVERED_ID__BEGIN                              = 0,
+    BCMOLT_EPON_LINK_MPCP_DISCOVERED_ID_LINK_INFO                           = 0,    /**< Link information. */
+    BCMOLT_EPON_LINK_MPCP_DISCOVERED_ID__NUM_OF         /**< Number of enum entries, not an entry itself. */
+} bcmolt_epon_link_mpcp_discovered_id;
+
+/** Identifiers for all properties contained in the 
+ * epon_link_mpcp_reg_ack_timeout group. 
+ */
+typedef enum bcmolt_epon_link_mpcp_reg_ack_timeout_id
+{
+    BCMOLT_EPON_LINK_MPCP_REG_ACK_TIMEOUT_ID__NUM_OF    /**< Number of enum entries, not an entry itself. */
+} bcmolt_epon_link_mpcp_reg_ack_timeout_id;
+
+/** Identifiers for all properties contained in the 
+ * epon_link_mpcp_report_timeout group. 
+ */
+typedef enum bcmolt_epon_link_mpcp_report_timeout_id
+{
+    BCMOLT_EPON_LINK_MPCP_REPORT_TIMEOUT_ID__BEGIN                          = 0,
+    BCMOLT_EPON_LINK_MPCP_REPORT_TIMEOUT_ID_ALARM_STATUS                    = 0,    /**< Alarm Status. */
+    BCMOLT_EPON_LINK_MPCP_REPORT_TIMEOUT_ID__NUM_OF /**< Number of enum entries, not an entry itself. */
+} bcmolt_epon_link_mpcp_report_timeout_id;
+
+/** Identifiers for all properties contained in the 
+ * epon_link_oam_keepalive_timeout group. 
+ */
+typedef enum bcmolt_epon_link_oam_keepalive_timeout_id
+{
+    BCMOLT_EPON_LINK_OAM_KEEPALIVE_TIMEOUT_ID__BEGIN                        = 0,
+    BCMOLT_EPON_LINK_OAM_KEEPALIVE_TIMEOUT_ID_ALARM_STATUS                  = 0,    /**< Alarm Status. */
+    BCMOLT_EPON_LINK_OAM_KEEPALIVE_TIMEOUT_ID__NUM_OF   /**< Number of enum entries, not an entry itself. */
+} bcmolt_epon_link_oam_keepalive_timeout_id;
+
+/** Identifiers for all properties contained in the 
+ * epon_link_oam_keepalive_timer_start group. 
+ */
+typedef enum bcmolt_epon_link_oam_keepalive_timer_start_id
+{
+    BCMOLT_EPON_LINK_OAM_KEEPALIVE_TIMER_START_ID__BEGIN                    = 0,
+    BCMOLT_EPON_LINK_OAM_KEEPALIVE_TIMER_START_ID_SEND_PERIOD               = 0,    /**< Send period. */
+    BCMOLT_EPON_LINK_OAM_KEEPALIVE_TIMER_START_ID__NUM_OF   /**< Number of enum entries, not an entry itself. */
+} bcmolt_epon_link_oam_keepalive_timer_start_id;
+
+/** Identifiers for all properties contained in the 
+ * epon_link_oam_keepalive_timer_started group. 
+ */
+typedef enum bcmolt_epon_link_oam_keepalive_timer_started_id
+{
+    BCMOLT_EPON_LINK_OAM_KEEPALIVE_TIMER_STARTED_ID__NUM_OF /**< Number of enum entries, not an entry itself. */
+} bcmolt_epon_link_oam_keepalive_timer_started_id;
+
+/** Identifiers for all properties contained in the 
+ * epon_link_oam_keepalive_timer_stop group. 
+ */
+typedef enum bcmolt_epon_link_oam_keepalive_timer_stop_id
+{
+    BCMOLT_EPON_LINK_OAM_KEEPALIVE_TIMER_STOP_ID__NUM_OF    /**< Number of enum entries, not an entry itself. */
+} bcmolt_epon_link_oam_keepalive_timer_stop_id;
+
+/** Identifiers for all properties contained in the 
+ * epon_link_oam_keepalive_timer_stopped group. 
+ */
+typedef enum bcmolt_epon_link_oam_keepalive_timer_stopped_id
+{
+    BCMOLT_EPON_LINK_OAM_KEEPALIVE_TIMER_STOPPED_ID__NUM_OF /**< Number of enum entries, not an entry itself. */
+} bcmolt_epon_link_oam_keepalive_timer_stopped_id;
+
+/** Identifiers for all properties contained in the 
+ * epon_link_preprovisioned_link_created group. 
+ */
+typedef enum bcmolt_epon_link_preprovisioned_link_created_id
+{
+    BCMOLT_EPON_LINK_PREPROVISIONED_LINK_CREATED_ID__BEGIN                  = 0,
+    BCMOLT_EPON_LINK_PREPROVISIONED_LINK_CREATED_ID_LINK_INFO               = 0,    /**< Link information. */
+    BCMOLT_EPON_LINK_PREPROVISIONED_LINK_CREATED_ID__NUM_OF /**< Number of enum entries, not an entry itself. */
+} bcmolt_epon_link_preprovisioned_link_created_id;
+
+/** Identifiers for all properties contained in the 
+ * epon_link_protection_switch_occurred group. 
+ */
+typedef enum bcmolt_epon_link_protection_switch_occurred_id
+{
+    BCMOLT_EPON_LINK_PROTECTION_SWITCH_OCCURRED_ID__BEGIN                   = 0,
+    BCMOLT_EPON_LINK_PROTECTION_SWITCH_OCCURRED_ID_PROTECTION_STATUS        = 0,    /**< Protection status. */
+    BCMOLT_EPON_LINK_PROTECTION_SWITCH_OCCURRED_ID_RANGE_VALUE_TQ           = 1,    /**< Range value in time quanta. */
+    BCMOLT_EPON_LINK_PROTECTION_SWITCH_OCCURRED_ID__NUM_OF  /**< Number of enum entries, not an entry itself. */
+} bcmolt_epon_link_protection_switch_occurred_id;
+
+/** Identifiers for all properties contained in the 
+ * epon_link_range_value_changed group. 
+ */
+typedef enum bcmolt_epon_link_range_value_changed_id
+{
+    BCMOLT_EPON_LINK_RANGE_VALUE_CHANGED_ID__BEGIN                          = 0,
+    BCMOLT_EPON_LINK_RANGE_VALUE_CHANGED_ID_RANGE_VALUE_TQ                  = 0,    /**< Range value in time quanta. */
+    BCMOLT_EPON_LINK_RANGE_VALUE_CHANGED_ID__NUM_OF /**< Number of enum entries, not an entry itself. */
+} bcmolt_epon_link_range_value_changed_id;
+
+/** Identifiers for all properties contained in the epon_link_rerange_failure 
+ * group. 
+ */
+typedef enum bcmolt_epon_link_rerange_failure_id
+{
+    BCMOLT_EPON_LINK_RERANGE_FAILURE_ID__NUM_OF     /**< Number of enum entries, not an entry itself. */
+} bcmolt_epon_link_rerange_failure_id;
+
+/** Identifiers for all properties contained in the epon_link_stat_alarm_cleared 
+ * group. 
+ */
+typedef enum bcmolt_epon_link_stat_alarm_cleared_id
+{
+    BCMOLT_EPON_LINK_STAT_ALARM_CLEARED_ID__BEGIN                           = 0,
+    BCMOLT_EPON_LINK_STAT_ALARM_CLEARED_ID_STAT                             = 0,    /**< Statistic ID. */
+    BCMOLT_EPON_LINK_STAT_ALARM_CLEARED_ID__NUM_OF  /**< Number of enum entries, not an entry itself. */
+} bcmolt_epon_link_stat_alarm_cleared_id;
+
+/** Identifiers for all properties contained in the epon_link_stat_alarm_raised 
+ * group. 
+ */
+typedef enum bcmolt_epon_link_stat_alarm_raised_id
+{
+    BCMOLT_EPON_LINK_STAT_ALARM_RAISED_ID__BEGIN                            = 0,
+    BCMOLT_EPON_LINK_STAT_ALARM_RAISED_ID_STAT                              = 0,    /**< Statistic ID. */
+    BCMOLT_EPON_LINK_STAT_ALARM_RAISED_ID__NUM_OF   /**< Number of enum entries, not an entry itself. */
+} bcmolt_epon_link_stat_alarm_raised_id;
+
+/** Identifiers for all properties contained in the epon_link_stat_cfg group. 
+ */
+typedef enum bcmolt_epon_link_stat_cfg_id
+{
+    BCMOLT_EPON_LINK_STAT_CFG_ID__BEGIN                                     = 0,
+    BCMOLT_EPON_LINK_STAT_CFG_ID_CFG                                        = 0,    /**< Configuration. */
+    BCMOLT_EPON_LINK_STAT_CFG_ID__NUM_OF    /**< Number of enum entries, not an entry itself. */
+} bcmolt_epon_link_stat_cfg_id;
+
+/** Identifiers for all properties contained in the epon_link_stat group. 
+ */
+typedef enum bcmolt_epon_link_stat_id
+{
+    BCMOLT_EPON_LINK_STAT_ID__BEGIN                                         = 0,
+    BCMOLT_EPON_LINK_STAT_ID_RX_DATA_BYTES                                  = 0,    /**< Data Bytes RX. */
+    BCMOLT_EPON_LINK_STAT_ID_RX_DATA_FRAMES                                 = 1,    /**< Data Frames RX. */
+    BCMOLT_EPON_LINK_STAT_ID_RX_FRAMES_64                                   = 2,    /**< 64 Byte Frames RX. */
+    BCMOLT_EPON_LINK_STAT_ID_RX_FRAMES_65_127                               = 3,    /**< 65-127 Byte Frames RX. */
+    BCMOLT_EPON_LINK_STAT_ID_RX_FRAMES_128_255                              = 4,    /**< 128-255 Byte Frames RX. */
+    BCMOLT_EPON_LINK_STAT_ID_RX_FRAMES_256_511                              = 5,    /**< 256-511 Byte Frames RX. */
+    BCMOLT_EPON_LINK_STAT_ID_RX_FRAMES_512_1023                             = 6,    /**< 512-1023 Byte Frames RX. */
+    BCMOLT_EPON_LINK_STAT_ID_RX_FRAMES_1024_1518                            = 7,    /**< 1024-1518 Byte Frames RX. */
+    BCMOLT_EPON_LINK_STAT_ID_RX_FRAMES_1519_2047                            = 8,    /**< 1519-2047 Byte Frames RX. */
+    BCMOLT_EPON_LINK_STAT_ID_RX_FRAMES_2048_4095                            = 9,    /**< 2048-4095 Byte Frames RX. */
+    BCMOLT_EPON_LINK_STAT_ID_RX_FRAMES_4096_9216                            = 10,   /**< 4096-9216 Byte Frames RX. */
+    BCMOLT_EPON_LINK_STAT_ID_RX_FRAMES_9217_16383                           = 11,   /**< 9217-16383 Byte Frames RX. */
+    BCMOLT_EPON_LINK_STAT_ID_RX_OAM_BYTES                                   = 12,   /**< OAM Bytes RX. */
+    BCMOLT_EPON_LINK_STAT_ID_RX_OAM_FRAMES                                  = 13,   /**< OAM Frames RX. */
+    BCMOLT_EPON_LINK_STAT_ID_RX_MPCP_FRAMES                                 = 14,   /**< MPCP Frames RX. */
+    BCMOLT_EPON_LINK_STAT_ID_RX_BROADCAST_FRAMES                            = 15,   /**< Broadcast Frames RX. */
+    BCMOLT_EPON_LINK_STAT_ID_RX_UNICAST_FRAMES                              = 16,   /**< Unicast Frames RX. */
+    BCMOLT_EPON_LINK_STAT_ID_RX_MULTICAST_FRAMES                            = 17,   /**< Multicast Frames RX. */
+    BCMOLT_EPON_LINK_STAT_ID_RX_REPORT_FRAMES                               = 18,   /**< Report Frames RX. */
+    BCMOLT_EPON_LINK_STAT_ID_RX_FCS_ERROR                                   = 19,   /**< FCS Error RX. */
+    BCMOLT_EPON_LINK_STAT_ID_RX_OVERSIZE_ERROR                              = 20,   /**< Oversize Error RX. */
+    BCMOLT_EPON_LINK_STAT_ID_RX_RUNT_ERROR                                  = 21,   /**< Runt Error RX. */
+    BCMOLT_EPON_LINK_STAT_ID_RX_LINE_CODE_ERROR                             = 22,   /**< Line Code Error RX. */
+    BCMOLT_EPON_LINK_STAT_ID_RX_LINE_CODE_ERROR_MAX                         = 23,   /**< Line Code Error Max RX. */
+    BCMOLT_EPON_LINK_STAT_ID_TX_DATA_BYTES                                  = 24,   /**< Data Bytes TX. */
+    BCMOLT_EPON_LINK_STAT_ID_TX_DATA_FRAMES                                 = 25,   /**< Data Frames TX. */
+    BCMOLT_EPON_LINK_STAT_ID_TX_FRAMES_64                                   = 26,   /**< 64 Byte Frames TX. */
+    BCMOLT_EPON_LINK_STAT_ID_TX_FRAMES_65_127                               = 27,   /**< 65-127 Byte Frames TX. */
+    BCMOLT_EPON_LINK_STAT_ID_TX_FRAMES_128_255                              = 28,   /**< 128-255 Byte Frames TX. */
+    BCMOLT_EPON_LINK_STAT_ID_TX_FRAMES_256_511                              = 29,   /**< 256-511 Byte Frames TX. */
+    BCMOLT_EPON_LINK_STAT_ID_TX_FRAMES_512_1023                             = 30,   /**< 512-1023 Byte Frames TX. */
+    BCMOLT_EPON_LINK_STAT_ID_TX_FRAMES_1024_1518                            = 31,   /**< 1024-1518 Byte Frames TX. */
+    BCMOLT_EPON_LINK_STAT_ID_TX_FRAMES_1519_2047                            = 32,   /**< 1519-2047 Byte Frames TX. */
+    BCMOLT_EPON_LINK_STAT_ID_TX_FRAMES_2048_4095                            = 33,   /**< 2048-4095 Byte Frames TX. */
+    BCMOLT_EPON_LINK_STAT_ID_TX_FRAMES_4096_9216                            = 34,   /**< 4096-9216 Byte Frames TX. */
+    BCMOLT_EPON_LINK_STAT_ID_TX_FRAMES_9217_16383                           = 35,   /**< 9217-16383 Byte Frames TX. */
+    BCMOLT_EPON_LINK_STAT_ID_TX_OAM_BYTES                                   = 36,   /**< OAM Bytes TX. */
+    BCMOLT_EPON_LINK_STAT_ID_TX_OAM_FRAMES                                  = 37,   /**< OAM Frames TX. */
+    BCMOLT_EPON_LINK_STAT_ID_TX_MPCP_FRAMES                                 = 38,   /**< MPCP Frames TX. */
+    BCMOLT_EPON_LINK_STAT_ID_TX_BROADCAST_FRAMES                            = 39,   /**< Broadcast Frames TX. */
+    BCMOLT_EPON_LINK_STAT_ID_TX_UNICAST_FRAMES                              = 40,   /**< Unicast Frames TX. */
+    BCMOLT_EPON_LINK_STAT_ID_TX_MULTICAST_FRAMES                            = 41,   /**< Multicast Frames TX. */
+    BCMOLT_EPON_LINK_STAT_ID_TX_GATES                                       = 42,   /**< Gates TX. */
+    BCMOLT_EPON_LINK_STAT_ID__NUM_OF                        /**< Number of enum entries, not an entry itself. */
+} bcmolt_epon_link_stat_id;
+
+/** Identifiers for all properties contained in the 
+ * epon_link_static_registration_done group. 
+ */
+typedef enum bcmolt_epon_link_static_registration_done_id
+{
+    BCMOLT_EPON_LINK_STATIC_REGISTRATION_DONE_ID__NUM_OF    /**< Number of enum entries, not an entry itself. */
+} bcmolt_epon_link_static_registration_done_id;
+
+/** Identifiers for all properties contained in the 
+ * epon_link_static_registration group. 
+ */
+typedef enum bcmolt_epon_link_static_registration_id
+{
+    BCMOLT_EPON_LINK_STATIC_REGISTRATION_ID__BEGIN                          = 0,
+    BCMOLT_EPON_LINK_STATIC_REGISTRATION_ID_LASERON_TIME_TQ                 = 0,    /**< Laser-on time (TQ). */
+    BCMOLT_EPON_LINK_STATIC_REGISTRATION_ID_LASEROFF_TIME_TQ                = 1,    /**< Laser-off time (TQ). */
+    BCMOLT_EPON_LINK_STATIC_REGISTRATION_ID_RANGE_VALUE_TQ                  = 2,    /**< Range value (TQ). */
+    BCMOLT_EPON_LINK_STATIC_REGISTRATION_ID_PENDING_GRANTS                  = 3,    /**< Pending Grants. */
+    BCMOLT_EPON_LINK_STATIC_REGISTRATION_ID__NUM_OF /**< Number of enum entries, not an entry itself. */
+} bcmolt_epon_link_static_registration_id;
+
+/** Identifiers for all properties contained in the epon_ni_add_link group. 
+ */
+typedef enum bcmolt_epon_ni_add_link_id
+{
+    BCMOLT_EPON_NI_ADD_LINK_ID__BEGIN                                       = 0,
+    BCMOLT_EPON_NI_ADD_LINK_ID_MAC_ADDRESS                                  = 0,    /**< MAC address. */
+    BCMOLT_EPON_NI_ADD_LINK_ID_RATE                                         = 1,    /**< Rate. */
+    BCMOLT_EPON_NI_ADD_LINK_ID__NUM_OF  /**< Number of enum entries, not an entry itself. */
+} bcmolt_epon_ni_add_link_id;
+
+/** Identifiers for all properties contained in the epon_ni_add_multicast_link 
+ * group. 
+ */
+typedef enum bcmolt_epon_ni_add_multicast_link_id
+{
+    BCMOLT_EPON_NI_ADD_MULTICAST_LINK_ID__BEGIN                             = 0,
+    BCMOLT_EPON_NI_ADD_MULTICAST_LINK_ID_MAC_ADDRESS                        = 0,    /**< MAC address. */
+    BCMOLT_EPON_NI_ADD_MULTICAST_LINK_ID_RATE                               = 1,    /**< Rate. */
+    BCMOLT_EPON_NI_ADD_MULTICAST_LINK_ID__NUM_OF    /**< Number of enum entries, not an entry itself. */
+} bcmolt_epon_ni_add_multicast_link_id;
+
+/** Identifiers for all properties contained in the 
+ * epon_ni_add_protected_standby_link group. 
+ */
+typedef enum bcmolt_epon_ni_add_protected_standby_link_id
+{
+    BCMOLT_EPON_NI_ADD_PROTECTED_STANDBY_LINK_ID__BEGIN                     = 0,
+    BCMOLT_EPON_NI_ADD_PROTECTED_STANDBY_LINK_ID_MAC_ADDRESS                = 0,    /**< MAC address. */
+    BCMOLT_EPON_NI_ADD_PROTECTED_STANDBY_LINK_ID_WORKING_LINK_INFO          = 1,    /**< Working link info. */
+    BCMOLT_EPON_NI_ADD_PROTECTED_STANDBY_LINK_ID__NUM_OF    /**< Number of enum entries, not an entry itself. */
+} bcmolt_epon_ni_add_protected_standby_link_id;
+
+/** Identifiers for all properties contained in the epon_ni_auto_cfg group. 
+ */
+typedef enum bcmolt_epon_ni_auto_cfg_id
+{
+    BCMOLT_EPON_NI_AUTO_CFG_ID__BEGIN                                       = 0,
+    BCMOLT_EPON_NI_AUTO_CFG_ID_AUTO_ROGUE_SCAN_10G_FAILURE                  = 0,    /**< 10G Epon Autonomous Rogue Scan failure detected. */
+    BCMOLT_EPON_NI_AUTO_CFG_ID_AUTO_ROGUE_SCAN_1G_FAILURE                   = 1,    /**< 1G Epon Autonomous Rogue Scan failure detected. */
+    BCMOLT_EPON_NI_AUTO_CFG_ID_LLID_QUARANTINED                             = 2,    /**< LLID Quarantined. */
+    BCMOLT_EPON_NI_AUTO_CFG_ID_MPCP_TIMESTAMP_CHANGED                       = 3,    /**< MPCP Timestamp Changed. */
+    BCMOLT_EPON_NI_AUTO_CFG_ID_NO_REPORTS                                   = 4,    /**< No Reports. */
+    BCMOLT_EPON_NI_AUTO_CFG_ID_ONU_UPGRADE_COMPLETE                         = 5,    /**< ONU Upgrade Complete. */
+    BCMOLT_EPON_NI_AUTO_CFG_ID_RERANGE_FAILURE                              = 6,    /**< Re-range failure. */
+    BCMOLT_EPON_NI_AUTO_CFG_ID_ROGUE_SCAN_COMPLETE                          = 7,    /**< Rogue Scan is Complete. */
+    BCMOLT_EPON_NI_AUTO_CFG_ID_RSSI_MEASUREMENT_COMPLETED                   = 8,    /**< RSSI Measurement Completed. */
+    BCMOLT_EPON_NI_AUTO_CFG_ID_STATE_CHANGE_COMPLETED                       = 9,    /**< State Change Completed. */
+    BCMOLT_EPON_NI_AUTO_CFG_ID__NUM_OF                      /**< Number of enum entries, not an entry itself. */
+} bcmolt_epon_ni_auto_cfg_id;
+
+/** Identifiers for all properties contained in the 
+ * epon_ni_auto_rogue_scan_10g_failure group. 
+ */
+typedef enum bcmolt_epon_ni_auto_rogue_scan_10g_failure_id
+{
+    BCMOLT_EPON_NI_AUTO_ROGUE_SCAN_10G_FAILURE_ID__NUM_OF   /**< Number of enum entries, not an entry itself. */
+} bcmolt_epon_ni_auto_rogue_scan_10g_failure_id;
+
+/** Identifiers for all properties contained in the 
+ * epon_ni_auto_rogue_scan_1g_failure group. 
+ */
+typedef enum bcmolt_epon_ni_auto_rogue_scan_1g_failure_id
+{
+    BCMOLT_EPON_NI_AUTO_ROGUE_SCAN_1G_FAILURE_ID__NUM_OF    /**< Number of enum entries, not an entry itself. */
+} bcmolt_epon_ni_auto_rogue_scan_1g_failure_id;
+
+/** Identifiers for all properties contained in the epon_ni_cfg group. 
+ */
+typedef enum bcmolt_epon_ni_cfg_id
+{
+    BCMOLT_EPON_NI_CFG_ID__BEGIN                                            = 0,
+    BCMOLT_EPON_NI_CFG_ID_MAC_ADDRESS                                       = 0,    /**< MAC Address. */
+    BCMOLT_EPON_NI_CFG_ID_EPON_NI_EN                                        = 1,    /**< EPON NI enable state. */
+    BCMOLT_EPON_NI_CFG_ID_REGISTRATION_BEHAVIOR                             = 2,    /**< Registration Behavior. */
+    BCMOLT_EPON_NI_CFG_ID_MTU_1G                                            = 3,    /**< 1G MTU. */
+    BCMOLT_EPON_NI_CFG_ID_MTU_10G                                           = 4,    /**< 10G MTU. */
+    BCMOLT_EPON_NI_CFG_ID_MINIMUM_FIBER_LENGTH                              = 5,    /**< Minimum Fiber Length. */
+    BCMOLT_EPON_NI_CFG_ID_MAXIMUM_FIBER_LENGTH                              = 6,    /**< Maximum Fiber Length. */
+    BCMOLT_EPON_NI_CFG_ID_GRANT_SPACING_TQ                                  = 7,    /**< Grant Spacing (TQ). */
+    BCMOLT_EPON_NI_CFG_ID_EPON_LOGICAL_LINK_OPTIONS                         = 8,    /**< EPON logical link options. */
+    BCMOLT_EPON_NI_CFG_ID_MPCP_DISCOVERY_PERIOD_MS                          = 9,    /**< MPCP discovery period in milliseconds. */
+    BCMOLT_EPON_NI_CFG_ID_ALARM_STATE                                       = 10,   /**< Alarm State. */
+    BCMOLT_EPON_NI_CFG_ID_ALL_LINKS                                         = 11,   /**< All links. */
+    BCMOLT_EPON_NI_CFG_ID_ENCRYPTION_CFG                                    = 12,   /**< EPON NI encryption configuration. */
+    BCMOLT_EPON_NI_CFG_ID_PROTECTION_SWITCHING_CFG                          = 13,   /**< Protection switching configuration. */
+    BCMOLT_EPON_NI_CFG_ID_CLOCK_TRANSPORT_CFG                               = 14,   /**< Clock transport configuration. */
+    BCMOLT_EPON_NI_CFG_ID_DROPDOWN_WEIGHTS                                  = 15,   /**< Drop-down Weights. */
+    BCMOLT_EPON_NI_CFG_ID_APPROXIMATE_SOLICITED_USAGE                       = 16,   /**< Approximate Solicited Usage. */
+    BCMOLT_EPON_NI_CFG_ID_APPROXIMATE_TDM_USAGE                             = 17,   /**< Approximate TDM Usage. */
+    BCMOLT_EPON_NI_CFG_ID_NO_REPORTS_SOAK_TIME                              = 18,   /**< No Reports soak time. */
+    BCMOLT_EPON_NI_CFG_ID_PON_AGGREGATE_SHAPER                              = 19,   /**< PON Aggregate Shaper. */
+    BCMOLT_EPON_NI_CFG_ID_ESTIMATED_PON_LATENCY_TQ                          = 20,   /**< Estimated PON Latency (TQ). */
+    BCMOLT_EPON_NI_CFG_ID_ONU_UPGRADE_PARAMS                                = 21,   /**< ONU upgrade params. */
+    BCMOLT_EPON_NI_CFG_ID_AUTO_ROGUE_DETECT_10G_EN                          = 22,   /**< 10G Epon Autonomous Rogue Detection Enable. */
+    BCMOLT_EPON_NI_CFG_ID_AUTO_ROGUE_DETECT_1G_EN                           = 23,   /**< 1G Epon Autonomous Rogue Detect Enable. */
+    BCMOLT_EPON_NI_CFG_ID_AUTO_ROGUE_DETECT_10G_THRESHOLD                   = 24,   /**< 10G Epon Auto Rogue Detect Threshold. */
+    BCMOLT_EPON_NI_CFG_ID__NUM_OF   /**< Number of enum entries, not an entry itself. */
+} bcmolt_epon_ni_cfg_id;
+
+/** Identifiers for all properties contained in the epon_ni_issue_rssi_grant 
+ * group. 
+ */
+typedef enum bcmolt_epon_ni_issue_rssi_grant_id
+{
+    BCMOLT_EPON_NI_ISSUE_RSSI_GRANT_ID__BEGIN                               = 0,
+    BCMOLT_EPON_NI_ISSUE_RSSI_GRANT_ID_GRANTED_LINK                         = 0,    /**< Granted Link. */
+    BCMOLT_EPON_NI_ISSUE_RSSI_GRANT_ID_TRIGGER_WIDTH                        = 1,    /**< Rssi Trigger Width in ns. */
+    BCMOLT_EPON_NI_ISSUE_RSSI_GRANT_ID_TRIGGER_DELAY                        = 2,    /**< Rssi Trigger Delay in ns. */
+    BCMOLT_EPON_NI_ISSUE_RSSI_GRANT_ID_SAMPLE_PERIOD                        = 3,    /**< Rssi Sampe Period in us. */
+    BCMOLT_EPON_NI_ISSUE_RSSI_GRANT_ID__NUM_OF  /**< Number of enum entries, not an entry itself. */
+} bcmolt_epon_ni_issue_rssi_grant_id;
+
+/** Identifiers for all properties contained in the epon_ni_key group. 
+ */
+typedef enum bcmolt_epon_ni_key_id
+{
+    BCMOLT_EPON_NI_KEY_ID__BEGIN                                            = 0,
+    BCMOLT_EPON_NI_KEY_ID_EPON_NI                                           = 0,    /**< EPON NI number. */
+    BCMOLT_EPON_NI_KEY_ID__NUM_OF   /**< Number of enum entries, not an entry itself. */
+} bcmolt_epon_ni_key_id;
+
+/** Identifiers for all properties contained in the epon_ni_llid_quarantined 
+ * group. 
+ */
+typedef enum bcmolt_epon_ni_llid_quarantined_id
+{
+    BCMOLT_EPON_NI_LLID_QUARANTINED_ID__BEGIN                               = 0,
+    BCMOLT_EPON_NI_LLID_QUARANTINED_ID_LLID                                 = 0,    /**< LLID. */
+    BCMOLT_EPON_NI_LLID_QUARANTINED_ID_LINK_RATE                            = 1,    /**< Link Rate. */
+    BCMOLT_EPON_NI_LLID_QUARANTINED_ID_LINK_MAC                             = 2,    /**< Link MAC. */
+    BCMOLT_EPON_NI_LLID_QUARANTINED_ID_RANGE_VALUE_TQ                       = 3,    /**< Range value in time quanta. */
+    BCMOLT_EPON_NI_LLID_QUARANTINED_ID__NUM_OF  /**< Number of enum entries, not an entry itself. */
+} bcmolt_epon_ni_llid_quarantined_id;
+
+/** Identifiers for all properties contained in the 
+ * epon_ni_mpcp_timestamp_changed group. 
+ */
+typedef enum bcmolt_epon_ni_mpcp_timestamp_changed_id
+{
+    BCMOLT_EPON_NI_MPCP_TIMESTAMP_CHANGED_ID__BEGIN                         = 0,
+    BCMOLT_EPON_NI_MPCP_TIMESTAMP_CHANGED_ID_MPCP_TIMESTAMP                 = 0,    /**< MPCP Timestamp. */
+    BCMOLT_EPON_NI_MPCP_TIMESTAMP_CHANGED_ID__NUM_OF    /**< Number of enum entries, not an entry itself. */
+} bcmolt_epon_ni_mpcp_timestamp_changed_id;
+
+/** Identifiers for all properties contained in the epon_ni_no_reports group. 
+ */
+typedef enum bcmolt_epon_ni_no_reports_id
+{
+    BCMOLT_EPON_NI_NO_REPORTS_ID__BEGIN                                     = 0,
+    BCMOLT_EPON_NI_NO_REPORTS_ID_ALARM_STATUS                               = 0,    /**< Alarm Status. */
+    BCMOLT_EPON_NI_NO_REPORTS_ID__NUM_OF    /**< Number of enum entries, not an entry itself. */
+} bcmolt_epon_ni_no_reports_id;
+
+/** Identifiers for all properties contained in the epon_ni_onu_upgrade_complete 
+ * group. 
+ */
+typedef enum bcmolt_epon_ni_onu_upgrade_complete_id
+{
+    BCMOLT_EPON_NI_ONU_UPGRADE_COMPLETE_ID__BEGIN                           = 0,
+    BCMOLT_EPON_NI_ONU_UPGRADE_COMPLETE_ID_STATUS                           = 0,    /**< Status. */
+    BCMOLT_EPON_NI_ONU_UPGRADE_COMPLETE_ID_LIST_OF_FAILED_ENTITIES          = 1,    /**< List of failed entities. */
+    BCMOLT_EPON_NI_ONU_UPGRADE_COMPLETE_ID__NUM_OF  /**< Number of enum entries, not an entry itself. */
+} bcmolt_epon_ni_onu_upgrade_complete_id;
+
+/** Identifiers for all properties contained in the 
+ * epon_ni_protection_switching_apply_rerange_delta group. 
+ */
+typedef enum bcmolt_epon_ni_protection_switching_apply_rerange_delta_id
+{
+    BCMOLT_EPON_NI_PROTECTION_SWITCHING_APPLY_RERANGE_DELTA_ID__BEGIN       = 0,
+    BCMOLT_EPON_NI_PROTECTION_SWITCHING_APPLY_RERANGE_DELTA_ID_RERANGE_DELTA= 0,    /**< Re-range delta. */
+    BCMOLT_EPON_NI_PROTECTION_SWITCHING_APPLY_RERANGE_DELTA_ID__NUM_OF              /**< Number of enum entries, not an entry itself. */
+} bcmolt_epon_ni_protection_switching_apply_rerange_delta_id;
+
+/** Identifiers for all properties contained in the epon_ni_rerange_failure 
+ * group. 
+ */
+typedef enum bcmolt_epon_ni_rerange_failure_id
+{
+    BCMOLT_EPON_NI_RERANGE_FAILURE_ID__NUM_OF   /**< Number of enum entries, not an entry itself. */
+} bcmolt_epon_ni_rerange_failure_id;
+
+/** Identifiers for all properties contained in the epon_ni_rogue_llid_scan 
+ * group. 
+ */
+typedef enum bcmolt_epon_ni_rogue_llid_scan_id
+{
+    BCMOLT_EPON_NI_ROGUE_LLID_SCAN_ID__BEGIN                                = 0,
+    BCMOLT_EPON_NI_ROGUE_LLID_SCAN_ID_MODE                                  = 0,    /**< Scan All. */
+    BCMOLT_EPON_NI_ROGUE_LLID_SCAN_ID_LLID                                  = 1,    /**< LLID. */
+    BCMOLT_EPON_NI_ROGUE_LLID_SCAN_ID__NUM_OF   /**< Number of enum entries, not an entry itself. */
+} bcmolt_epon_ni_rogue_llid_scan_id;
+
+/** Identifiers for all properties contained in the epon_ni_rogue_scan_complete 
+ * group. 
+ */
+typedef enum bcmolt_epon_ni_rogue_scan_complete_id
+{
+    BCMOLT_EPON_NI_ROGUE_SCAN_COMPLETE_ID__BEGIN                            = 0,
+    BCMOLT_EPON_NI_ROGUE_SCAN_COMPLETE_ID_RETURN_IND_STATUS                 = 0,    /**< Status of completed scan. */
+    BCMOLT_EPON_NI_ROGUE_SCAN_COMPLETE_ID__NUM_OF   /**< Number of enum entries, not an entry itself. */
+} bcmolt_epon_ni_rogue_scan_complete_id;
+
+/** Identifiers for all properties contained in the 
+ * epon_ni_rssi_measurement_completed group. 
+ */
+typedef enum bcmolt_epon_ni_rssi_measurement_completed_id
+{
+    BCMOLT_EPON_NI_RSSI_MEASUREMENT_COMPLETED_ID__BEGIN                     = 0,
+    BCMOLT_EPON_NI_RSSI_MEASUREMENT_COMPLETED_ID_STATUS                     = 0,    /**< status. */
+    BCMOLT_EPON_NI_RSSI_MEASUREMENT_COMPLETED_ID_LLID                       = 1,    /**< LLID. */
+    BCMOLT_EPON_NI_RSSI_MEASUREMENT_COMPLETED_ID_LINK_MAC                   = 2,    /**< Link MAC . */
+    BCMOLT_EPON_NI_RSSI_MEASUREMENT_COMPLETED_ID__NUM_OF    /**< Number of enum entries, not an entry itself. */
+} bcmolt_epon_ni_rssi_measurement_completed_id;
+
+/** Identifiers for all properties contained in the epon_ni_set_epon_ni_en_state 
+ * group. 
+ */
+typedef enum bcmolt_epon_ni_set_epon_ni_en_state_id
+{
+    BCMOLT_EPON_NI_SET_EPON_NI_EN_STATE_ID__BEGIN                           = 0,
+    BCMOLT_EPON_NI_SET_EPON_NI_EN_STATE_ID_NEW_STATE                        = 0,    /**< New EPON NI enable state. */
+    BCMOLT_EPON_NI_SET_EPON_NI_EN_STATE_ID__NUM_OF  /**< Number of enum entries, not an entry itself. */
+} bcmolt_epon_ni_set_epon_ni_en_state_id;
+
+/** Identifiers for all properties contained in the epon_ni_start_onu_upgrade 
+ * group. 
+ */
+typedef enum bcmolt_epon_ni_start_onu_upgrade_id
+{
+    BCMOLT_EPON_NI_START_ONU_UPGRADE_ID__BEGIN                              = 0,
+    BCMOLT_EPON_NI_START_ONU_UPGRADE_ID_LIST_OF_ONU_IDS                     = 0,    /**< List of ONU IDs. */
+    BCMOLT_EPON_NI_START_ONU_UPGRADE_ID__NUM_OF /**< Number of enum entries, not an entry itself. */
+} bcmolt_epon_ni_start_onu_upgrade_id;
+
+/** Identifiers for all properties contained in the 
+ * epon_ni_state_change_completed group. 
+ */
+typedef enum bcmolt_epon_ni_state_change_completed_id
+{
+    BCMOLT_EPON_NI_STATE_CHANGE_COMPLETED_ID__BEGIN                         = 0,
+    BCMOLT_EPON_NI_STATE_CHANGE_COMPLETED_ID_NEW_STATE                      = 0,    /**< New EPON NI enable state. */
+    BCMOLT_EPON_NI_STATE_CHANGE_COMPLETED_ID__NUM_OF    /**< Number of enum entries, not an entry itself. */
+} bcmolt_epon_ni_state_change_completed_id;
+
+/** Identifiers for all properties contained in the epon_onu_10g_us_auto_cfg 
+ * group. 
+ */
+typedef enum bcmolt_epon_onu_10g_us_auto_cfg_id
+{
+    BCMOLT_EPON_ONU_10G_US_AUTO_CFG_ID__BEGIN                               = 0,
+    BCMOLT_EPON_ONU_10G_US_AUTO_CFG_ID_STAT_ALARM_CLEARED                   = 0,    /**< Stat Alarm Cleared. */
+    BCMOLT_EPON_ONU_10G_US_AUTO_CFG_ID_STAT_ALARM_RAISED                    = 1,    /**< Stat Alarm Raised. */
+    BCMOLT_EPON_ONU_10G_US_AUTO_CFG_ID__NUM_OF  /**< Number of enum entries, not an entry itself. */
+} bcmolt_epon_onu_10g_us_auto_cfg_id;
+
+/** Identifiers for all properties contained in the epon_onu_10g_us_cfg group. 
+ */
+typedef enum bcmolt_epon_onu_10g_us_cfg_id
+{
+    BCMOLT_EPON_ONU_10G_US_CFG_ID__BEGIN                                    = 0,
+    BCMOLT_EPON_ONU_10G_US_CFG_ID_ALL_LINKS                                 = 0,    /**< All Links. */
+    BCMOLT_EPON_ONU_10G_US_CFG_ID__NUM_OF   /**< Number of enum entries, not an entry itself. */
+} bcmolt_epon_onu_10g_us_cfg_id;
+
+/** Identifiers for all properties contained in the epon_onu_10g_us_key group. 
+ */
+typedef enum bcmolt_epon_onu_10g_us_key_id
+{
+    BCMOLT_EPON_ONU_10G_US_KEY_ID__BEGIN                                    = 0,
+    BCMOLT_EPON_ONU_10G_US_KEY_ID_EPON_NI                                   = 0,    /**< EPON NI. */
+    BCMOLT_EPON_ONU_10G_US_KEY_ID_ONU_ID                                    = 1,    /**< ONU ID. */
+    BCMOLT_EPON_ONU_10G_US_KEY_ID__NUM_OF   /**< Number of enum entries, not an entry itself. */
+} bcmolt_epon_onu_10g_us_key_id;
+
+/** Identifiers for all properties contained in the 
+ * epon_onu_10g_us_stat_alarm_cleared group. 
+ */
+typedef enum bcmolt_epon_onu_10g_us_stat_alarm_cleared_id
+{
+    BCMOLT_EPON_ONU_10G_US_STAT_ALARM_CLEARED_ID__BEGIN                     = 0,
+    BCMOLT_EPON_ONU_10G_US_STAT_ALARM_CLEARED_ID_STAT                       = 0,    /**< Statistic ID. */
+    BCMOLT_EPON_ONU_10G_US_STAT_ALARM_CLEARED_ID__NUM_OF    /**< Number of enum entries, not an entry itself. */
+} bcmolt_epon_onu_10g_us_stat_alarm_cleared_id;
+
+/** Identifiers for all properties contained in the 
+ * epon_onu_10g_us_stat_alarm_raised group. 
+ */
+typedef enum bcmolt_epon_onu_10g_us_stat_alarm_raised_id
+{
+    BCMOLT_EPON_ONU_10G_US_STAT_ALARM_RAISED_ID__BEGIN                      = 0,
+    BCMOLT_EPON_ONU_10G_US_STAT_ALARM_RAISED_ID_STAT                        = 0,    /**< Statistic ID. */
+    BCMOLT_EPON_ONU_10G_US_STAT_ALARM_RAISED_ID__NUM_OF /**< Number of enum entries, not an entry itself. */
+} bcmolt_epon_onu_10g_us_stat_alarm_raised_id;
+
+/** Identifiers for all properties contained in the epon_onu_10g_us_stat_cfg 
+ * group. 
+ */
+typedef enum bcmolt_epon_onu_10g_us_stat_cfg_id
+{
+    BCMOLT_EPON_ONU_10G_US_STAT_CFG_ID__BEGIN                               = 0,
+    BCMOLT_EPON_ONU_10G_US_STAT_CFG_ID_CFG                                  = 0,    /**< Configuration. */
+    BCMOLT_EPON_ONU_10G_US_STAT_CFG_ID__NUM_OF  /**< Number of enum entries, not an entry itself. */
+} bcmolt_epon_onu_10g_us_stat_cfg_id;
+
+/** Identifiers for all properties contained in the epon_onu_10g_us_stat group. 
+ */
+typedef enum bcmolt_epon_onu_10g_us_stat_id
+{
+    BCMOLT_EPON_ONU_10G_US_STAT_ID__BEGIN                                   = 0,
+    BCMOLT_EPON_ONU_10G_US_STAT_ID_FEC_CODE_WORDS_TOTAL                     = 0,    /**< FEC Code Words Total. */
+    BCMOLT_EPON_ONU_10G_US_STAT_ID_FEC_CODE_WORDS_DECODE_FAILS              = 1,    /**< FEC Code Words Decode Fails. */
+    BCMOLT_EPON_ONU_10G_US_STAT_ID_FEC_ZEROES_CORRECTED                     = 2,    /**< FEC Zeroes Corrected. */
+    BCMOLT_EPON_ONU_10G_US_STAT_ID_FEC_ONES_CORRECTED                       = 3,    /**< FEC Ones Corrected. */
+    BCMOLT_EPON_ONU_10G_US_STAT_ID__NUM_OF  /**< Number of enum entries, not an entry itself. */
+} bcmolt_epon_onu_10g_us_stat_id;
+
+/** Identifiers for all properties contained in the epon_onu_1g_us_auto_cfg 
+ * group. 
+ */
+typedef enum bcmolt_epon_onu_1g_us_auto_cfg_id
+{
+    BCMOLT_EPON_ONU_1G_US_AUTO_CFG_ID__BEGIN                                = 0,
+    BCMOLT_EPON_ONU_1G_US_AUTO_CFG_ID_STAT_ALARM_CLEARED                    = 0,    /**< Stat Alarm Cleared. */
+    BCMOLT_EPON_ONU_1G_US_AUTO_CFG_ID_STAT_ALARM_RAISED                     = 1,    /**< Stat Alarm Raised. */
+    BCMOLT_EPON_ONU_1G_US_AUTO_CFG_ID__NUM_OF   /**< Number of enum entries, not an entry itself. */
+} bcmolt_epon_onu_1g_us_auto_cfg_id;
+
+/** Identifiers for all properties contained in the epon_onu_1g_us_cfg group. 
+ */
+typedef enum bcmolt_epon_onu_1g_us_cfg_id
+{
+    BCMOLT_EPON_ONU_1G_US_CFG_ID__BEGIN                                     = 0,
+    BCMOLT_EPON_ONU_1G_US_CFG_ID_ALL_LINKS                                  = 0,    /**< All Links. */
+    BCMOLT_EPON_ONU_1G_US_CFG_ID__NUM_OF    /**< Number of enum entries, not an entry itself. */
+} bcmolt_epon_onu_1g_us_cfg_id;
+
+/** Identifiers for all properties contained in the epon_onu_1g_us_key group. 
+ */
+typedef enum bcmolt_epon_onu_1g_us_key_id
+{
+    BCMOLT_EPON_ONU_1G_US_KEY_ID__BEGIN                                     = 0,
+    BCMOLT_EPON_ONU_1G_US_KEY_ID_EPON_NI                                    = 0,    /**< EPON NI. */
+    BCMOLT_EPON_ONU_1G_US_KEY_ID_ONU_ID                                     = 1,    /**< ONU ID. */
+    BCMOLT_EPON_ONU_1G_US_KEY_ID__NUM_OF    /**< Number of enum entries, not an entry itself. */
+} bcmolt_epon_onu_1g_us_key_id;
+
+/** Identifiers for all properties contained in the 
+ * epon_onu_1g_us_stat_alarm_cleared group. 
+ */
+typedef enum bcmolt_epon_onu_1g_us_stat_alarm_cleared_id
+{
+    BCMOLT_EPON_ONU_1G_US_STAT_ALARM_CLEARED_ID__BEGIN                      = 0,
+    BCMOLT_EPON_ONU_1G_US_STAT_ALARM_CLEARED_ID_STAT                        = 0,    /**< Statistic ID. */
+    BCMOLT_EPON_ONU_1G_US_STAT_ALARM_CLEARED_ID__NUM_OF /**< Number of enum entries, not an entry itself. */
+} bcmolt_epon_onu_1g_us_stat_alarm_cleared_id;
+
+/** Identifiers for all properties contained in the 
+ * epon_onu_1g_us_stat_alarm_raised group. 
+ */
+typedef enum bcmolt_epon_onu_1g_us_stat_alarm_raised_id
+{
+    BCMOLT_EPON_ONU_1G_US_STAT_ALARM_RAISED_ID__BEGIN                       = 0,
+    BCMOLT_EPON_ONU_1G_US_STAT_ALARM_RAISED_ID_STAT                         = 0,    /**< Statistic ID. */
+    BCMOLT_EPON_ONU_1G_US_STAT_ALARM_RAISED_ID__NUM_OF  /**< Number of enum entries, not an entry itself. */
+} bcmolt_epon_onu_1g_us_stat_alarm_raised_id;
+
+/** Identifiers for all properties contained in the epon_onu_1g_us_stat_cfg 
+ * group. 
+ */
+typedef enum bcmolt_epon_onu_1g_us_stat_cfg_id
+{
+    BCMOLT_EPON_ONU_1G_US_STAT_CFG_ID__BEGIN                                = 0,
+    BCMOLT_EPON_ONU_1G_US_STAT_CFG_ID_CFG                                   = 0,    /**< Configuration. */
+    BCMOLT_EPON_ONU_1G_US_STAT_CFG_ID__NUM_OF   /**< Number of enum entries, not an entry itself. */
+} bcmolt_epon_onu_1g_us_stat_cfg_id;
+
+/** Identifiers for all properties contained in the epon_onu_1g_us_stat group. 
+ */
+typedef enum bcmolt_epon_onu_1g_us_stat_id
+{
+    BCMOLT_EPON_ONU_1G_US_STAT_ID__BEGIN                                    = 0,
+    BCMOLT_EPON_ONU_1G_US_STAT_ID_GOOD_FRAMES                               = 0,    /**< Good frames. */
+    BCMOLT_EPON_ONU_1G_US_STAT_ID_GOOD_BYTES                                = 1,    /**< Good bytes. */
+    BCMOLT_EPON_ONU_1G_US_STAT_ID_OVERSZ_FRAMES                             = 2,    /**< Oversized frames. */
+    BCMOLT_EPON_ONU_1G_US_STAT_ID_NON_FEC_GOOD_FRAMES                       = 3,    /**< Non-FEC Good Frames. */
+    BCMOLT_EPON_ONU_1G_US_STAT_ID_NON_FEC_GOOD_BYTES                        = 4,    /**< Non-FEC Good Bytes. */
+    BCMOLT_EPON_ONU_1G_US_STAT_ID_FEC_GOOD_FRAMES                           = 5,    /**< FEC Good Frames. */
+    BCMOLT_EPON_ONU_1G_US_STAT_ID_FEC_GOOD_BYTES                            = 6,    /**< FEC Good Bytes. */
+    BCMOLT_EPON_ONU_1G_US_STAT_ID_FEC_FRAMES_EXC_ERRS                       = 7,    /**< FEC Frames which exceeded 8 symbol errors. */
+    BCMOLT_EPON_ONU_1G_US_STAT_ID_FEC_BLKS_NO_ERRS                          = 8,    /**< FEC Blocks with no errors. */
+    BCMOLT_EPON_ONU_1G_US_STAT_ID_FEC_BLKS_CORR_ERRS                        = 9,    /**< FEC Blocks with correctable errors. */
+    BCMOLT_EPON_ONU_1G_US_STAT_ID_FEC_BLKS_UNCORR_ERRS                      = 10,   /**< FEC Blocks with uncorrectable errors. */
+    BCMOLT_EPON_ONU_1G_US_STAT_ID_FEC_CORR_BYTES                            = 11,   /**< FEC Corrected Bytes. */
+    BCMOLT_EPON_ONU_1G_US_STAT_ID_FEC_CORR_ZEROES                           = 12,   /**< FEC Corrected Zeroes. */
+    BCMOLT_EPON_ONU_1G_US_STAT_ID_FEC_CORR_ONES                             = 13,   /**< FEC Corrected Ones. */
+    BCMOLT_EPON_ONU_1G_US_STAT_ID_UNDERSZ_FRAMES                            = 14,   /**< Undersize frames. */
+    BCMOLT_EPON_ONU_1G_US_STAT_ID_ERRORSZ_FRAMES                            = 15,   /**< Errored frame . */
+    BCMOLT_EPON_ONU_1G_US_STAT_ID__NUM_OF   /**< Number of enum entries, not an entry itself. */
+} bcmolt_epon_onu_1g_us_stat_id;
+
+/** Identifiers for all properties contained in the epon_path_10g_ds_auto_cfg 
+ * group. 
+ */
+typedef enum bcmolt_epon_path_10g_ds_auto_cfg_id
+{
+    BCMOLT_EPON_PATH_10G_DS_AUTO_CFG_ID__BEGIN                              = 0,
+    BCMOLT_EPON_PATH_10G_DS_AUTO_CFG_ID_STAT_ALARM_CLEARED                  = 0,    /**< Stat Alarm Cleared. */
+    BCMOLT_EPON_PATH_10G_DS_AUTO_CFG_ID_STAT_ALARM_RAISED                   = 1,    /**< Stat Alarm Raised. */
+    BCMOLT_EPON_PATH_10G_DS_AUTO_CFG_ID__NUM_OF /**< Number of enum entries, not an entry itself. */
+} bcmolt_epon_path_10g_ds_auto_cfg_id;
+
+/** Identifiers for all properties contained in the epon_path_10g_ds_cfg group. 
+ */
+typedef enum bcmolt_epon_path_10g_ds_cfg_id
+{
+    BCMOLT_EPON_PATH_10G_DS_CFG_ID__BEGIN                                   = 0,
+    BCMOLT_EPON_PATH_10G_DS_CFG_ID_FEC_STATE                                = 0,    /**< Path FEC state. */
+    BCMOLT_EPON_PATH_10G_DS_CFG_ID_PRBS_GENERATOR                           = 1,    /**< PRBS Generator. */
+    BCMOLT_EPON_PATH_10G_DS_CFG_ID__NUM_OF  /**< Number of enum entries, not an entry itself. */
+} bcmolt_epon_path_10g_ds_cfg_id;
+
+/** Identifiers for all properties contained in the epon_path_10g_ds_key group. 
+ */
+typedef enum bcmolt_epon_path_10g_ds_key_id
+{
+    BCMOLT_EPON_PATH_10G_DS_KEY_ID__BEGIN                                   = 0,
+    BCMOLT_EPON_PATH_10G_DS_KEY_ID_EPON_NI                                  = 0,    /**< EPON NI (EPON Network Interface) number. */
+    BCMOLT_EPON_PATH_10G_DS_KEY_ID__NUM_OF  /**< Number of enum entries, not an entry itself. */
+} bcmolt_epon_path_10g_ds_key_id;
+
+/** Identifiers for all properties contained in the 
+ * epon_path_10g_ds_stat_alarm_cleared group. 
+ */
+typedef enum bcmolt_epon_path_10g_ds_stat_alarm_cleared_id
+{
+    BCMOLT_EPON_PATH_10G_DS_STAT_ALARM_CLEARED_ID__BEGIN                    = 0,
+    BCMOLT_EPON_PATH_10G_DS_STAT_ALARM_CLEARED_ID_STAT                      = 0,    /**< Statistic ID. */
+    BCMOLT_EPON_PATH_10G_DS_STAT_ALARM_CLEARED_ID__NUM_OF   /**< Number of enum entries, not an entry itself. */
+} bcmolt_epon_path_10g_ds_stat_alarm_cleared_id;
+
+/** Identifiers for all properties contained in the 
+ * epon_path_10g_ds_stat_alarm_raised group. 
+ */
+typedef enum bcmolt_epon_path_10g_ds_stat_alarm_raised_id
+{
+    BCMOLT_EPON_PATH_10G_DS_STAT_ALARM_RAISED_ID__BEGIN                     = 0,
+    BCMOLT_EPON_PATH_10G_DS_STAT_ALARM_RAISED_ID_STAT                       = 0,    /**< Statistic ID. */
+    BCMOLT_EPON_PATH_10G_DS_STAT_ALARM_RAISED_ID__NUM_OF    /**< Number of enum entries, not an entry itself. */
+} bcmolt_epon_path_10g_ds_stat_alarm_raised_id;
+
+/** Identifiers for all properties contained in the epon_path_10g_ds_stat_cfg 
+ * group. 
+ */
+typedef enum bcmolt_epon_path_10g_ds_stat_cfg_id
+{
+    BCMOLT_EPON_PATH_10G_DS_STAT_CFG_ID__BEGIN                              = 0,
+    BCMOLT_EPON_PATH_10G_DS_STAT_CFG_ID_CFG                                 = 0,    /**< Configuration. */
+    BCMOLT_EPON_PATH_10G_DS_STAT_CFG_ID__NUM_OF /**< Number of enum entries, not an entry itself. */
+} bcmolt_epon_path_10g_ds_stat_cfg_id;
+
+/** Identifiers for all properties contained in the epon_path_10g_ds_stat group. 
+ */
+typedef enum bcmolt_epon_path_10g_ds_stat_id
+{
+    BCMOLT_EPON_PATH_10G_DS_STAT_ID__BEGIN                                  = 0,
+    BCMOLT_EPON_PATH_10G_DS_STAT_ID_BYTES                                   = 0,    /**< Bytes. */
+    BCMOLT_EPON_PATH_10G_DS_STAT_ID_FRAMES                                  = 1,    /**< Frames. */
+    BCMOLT_EPON_PATH_10G_DS_STAT_ID_FRAMES_64                               = 2,    /**< 64 Byte Frames. */
+    BCMOLT_EPON_PATH_10G_DS_STAT_ID_FRAMES_65_127                           = 3,    /**< 65-127 Byte Frames. */
+    BCMOLT_EPON_PATH_10G_DS_STAT_ID_FRAMES_128_255                          = 4,    /**< 128-255 Byte Frames. */
+    BCMOLT_EPON_PATH_10G_DS_STAT_ID_FRAMES_256_511                          = 5,    /**< 256-511 Byte Frames. */
+    BCMOLT_EPON_PATH_10G_DS_STAT_ID_FRAMES_512_1023                         = 6,    /**< 512-1023 Byte Frames. */
+    BCMOLT_EPON_PATH_10G_DS_STAT_ID_FRAMES_1024_1518                        = 7,    /**< 1024-1518 Byte Frames. */
+    BCMOLT_EPON_PATH_10G_DS_STAT_ID_FRAMES_1519_2047                        = 8,    /**< 1519-2047 Byte Frames. */
+    BCMOLT_EPON_PATH_10G_DS_STAT_ID_FRAMES_2048_4095                        = 9,    /**< 2048_4095 Byte Frames. */
+    BCMOLT_EPON_PATH_10G_DS_STAT_ID_FRAMES_4096_9216                        = 10,   /**< 4096-9216 Byte Frames. */
+    BCMOLT_EPON_PATH_10G_DS_STAT_ID_FRAMES_9217_16383                       = 11,   /**< 9217-16383 Byte Frames. */
+    BCMOLT_EPON_PATH_10G_DS_STAT_ID_BROADCAST_FRAMES                        = 12,   /**< Broadcast Frames. */
+    BCMOLT_EPON_PATH_10G_DS_STAT_ID_DATA_BYTES                              = 13,   /**< Data Bytes. */
+    BCMOLT_EPON_PATH_10G_DS_STAT_ID_MULTICAST_FRAMES                        = 14,   /**< Mulitcast Frames. */
+    BCMOLT_EPON_PATH_10G_DS_STAT_ID_UNICAST_FRAMES                          = 15,   /**< Unicast Frames. */
+    BCMOLT_EPON_PATH_10G_DS_STAT_ID_OAM_BYTES                               = 16,   /**< OAM Bytes. */
+    BCMOLT_EPON_PATH_10G_DS_STAT_ID_OAM_FRAMES                              = 17,   /**< OAM Frames. */
+    BCMOLT_EPON_PATH_10G_DS_STAT_ID_GATE_FRAMES                             = 18,   /**< Gate Frames. */
+    BCMOLT_EPON_PATH_10G_DS_STAT_ID_MPCP_FRAMES                             = 19,   /**< MPCP Frames. */
+    BCMOLT_EPON_PATH_10G_DS_STAT_ID_ABORT_FRAMES                            = 20,   /**< Abort Frames. */
+    BCMOLT_EPON_PATH_10G_DS_STAT_ID__NUM_OF /**< Number of enum entries, not an entry itself. */
+} bcmolt_epon_path_10g_ds_stat_id;
+
+/** Identifiers for all properties contained in the epon_path_10g_us_auto_cfg 
+ * group. 
+ */
+typedef enum bcmolt_epon_path_10g_us_auto_cfg_id
+{
+    BCMOLT_EPON_PATH_10G_US_AUTO_CFG_ID__BEGIN                              = 0,
+    BCMOLT_EPON_PATH_10G_US_AUTO_CFG_ID_STAT_ALARM_CLEARED                  = 0,    /**< Stat Alarm Cleared. */
+    BCMOLT_EPON_PATH_10G_US_AUTO_CFG_ID_STAT_ALARM_RAISED                   = 1,    /**< Stat Alarm Raised. */
+    BCMOLT_EPON_PATH_10G_US_AUTO_CFG_ID__NUM_OF /**< Number of enum entries, not an entry itself. */
+} bcmolt_epon_path_10g_us_auto_cfg_id;
+
+/** Identifiers for all properties contained in the epon_path_10g_us_cfg group. 
+ */
+typedef enum bcmolt_epon_path_10g_us_cfg_id
+{
+    BCMOLT_EPON_PATH_10G_US_CFG_ID__BEGIN                                   = 0,
+    BCMOLT_EPON_PATH_10G_US_CFG_ID_FEC_STATE                                = 0,    /**< Path FEC state. */
+    BCMOLT_EPON_PATH_10G_US_CFG_ID_SYNC_TIME_TQ                             = 1,    /**< Sync Time (TQ). */
+    BCMOLT_EPON_PATH_10G_US_CFG_ID_PRBS_CHECKER                             = 2,    /**< PRBS Checker. */
+    BCMOLT_EPON_PATH_10G_US_CFG_ID_PRBS_STATUS                              = 3,    /**< PRBS status. */
+    BCMOLT_EPON_PATH_10G_US_CFG_ID__NUM_OF  /**< Number of enum entries, not an entry itself. */
+} bcmolt_epon_path_10g_us_cfg_id;
+
+/** Identifiers for all properties contained in the epon_path_10g_us_key group. 
+ */
+typedef enum bcmolt_epon_path_10g_us_key_id
+{
+    BCMOLT_EPON_PATH_10G_US_KEY_ID__BEGIN                                   = 0,
+    BCMOLT_EPON_PATH_10G_US_KEY_ID_EPON_NI                                  = 0,    /**< EPON NI. */
+    BCMOLT_EPON_PATH_10G_US_KEY_ID__NUM_OF  /**< Number of enum entries, not an entry itself. */
+} bcmolt_epon_path_10g_us_key_id;
+
+/** Identifiers for all properties contained in the 
+ * epon_path_10g_us_stat_alarm_cleared group. 
+ */
+typedef enum bcmolt_epon_path_10g_us_stat_alarm_cleared_id
+{
+    BCMOLT_EPON_PATH_10G_US_STAT_ALARM_CLEARED_ID__BEGIN                    = 0,
+    BCMOLT_EPON_PATH_10G_US_STAT_ALARM_CLEARED_ID_STAT                      = 0,    /**< Statistic ID. */
+    BCMOLT_EPON_PATH_10G_US_STAT_ALARM_CLEARED_ID__NUM_OF   /**< Number of enum entries, not an entry itself. */
+} bcmolt_epon_path_10g_us_stat_alarm_cleared_id;
+
+/** Identifiers for all properties contained in the 
+ * epon_path_10g_us_stat_alarm_raised group. 
+ */
+typedef enum bcmolt_epon_path_10g_us_stat_alarm_raised_id
+{
+    BCMOLT_EPON_PATH_10G_US_STAT_ALARM_RAISED_ID__BEGIN                     = 0,
+    BCMOLT_EPON_PATH_10G_US_STAT_ALARM_RAISED_ID_STAT                       = 0,    /**< Statistic ID. */
+    BCMOLT_EPON_PATH_10G_US_STAT_ALARM_RAISED_ID__NUM_OF    /**< Number of enum entries, not an entry itself. */
+} bcmolt_epon_path_10g_us_stat_alarm_raised_id;
+
+/** Identifiers for all properties contained in the epon_path_10g_us_stat_cfg 
+ * group. 
+ */
+typedef enum bcmolt_epon_path_10g_us_stat_cfg_id
+{
+    BCMOLT_EPON_PATH_10G_US_STAT_CFG_ID__BEGIN                              = 0,
+    BCMOLT_EPON_PATH_10G_US_STAT_CFG_ID_CFG                                 = 0,    /**< Configuration. */
+    BCMOLT_EPON_PATH_10G_US_STAT_CFG_ID__NUM_OF /**< Number of enum entries, not an entry itself. */
+} bcmolt_epon_path_10g_us_stat_cfg_id;
+
+/** Identifiers for all properties contained in the epon_path_10g_us_stat group. 
+ */
+typedef enum bcmolt_epon_path_10g_us_stat_id
+{
+    BCMOLT_EPON_PATH_10G_US_STAT_ID__BEGIN                                  = 0,
+    BCMOLT_EPON_PATH_10G_US_STAT_ID_BYTES                                   = 0,    /**< Bytes. */
+    BCMOLT_EPON_PATH_10G_US_STAT_ID_FRAMES                                  = 1,    /**< Frames. */
+    BCMOLT_EPON_PATH_10G_US_STAT_ID_FRAMES_64                               = 2,    /**< 64 Byte Frames. */
+    BCMOLT_EPON_PATH_10G_US_STAT_ID_FRAMES_65_127                           = 3,    /**< 65-127 Byte Frames. */
+    BCMOLT_EPON_PATH_10G_US_STAT_ID_FRAMES_128_255                          = 4,    /**< 128-255 Byte Frames. */
+    BCMOLT_EPON_PATH_10G_US_STAT_ID_FRAMES_256_511                          = 5,    /**< 256-511 Byte Frames. */
+    BCMOLT_EPON_PATH_10G_US_STAT_ID_FRAMES_512_1023                         = 6,    /**< 512-1023 Byte Frames. */
+    BCMOLT_EPON_PATH_10G_US_STAT_ID_FRAMES_1024_1518                        = 7,    /**< 1024-1518 Byte Frames. */
+    BCMOLT_EPON_PATH_10G_US_STAT_ID_FRAMES_1519_2047                        = 8,    /**< 1519-2047 Byte Frames. */
+    BCMOLT_EPON_PATH_10G_US_STAT_ID_FRAMES_2048_4095                        = 9,    /**< 2048_4095 Byte Frames. */
+    BCMOLT_EPON_PATH_10G_US_STAT_ID_FRAMES_4096_9216                        = 10,   /**< 4096-9216 Byte Frames. */
+    BCMOLT_EPON_PATH_10G_US_STAT_ID_FRAMES_9217_16383                       = 11,   /**< 9217-16383 Byte Frames. */
+    BCMOLT_EPON_PATH_10G_US_STAT_ID_BROADCAST_FRAMES                        = 12,   /**< Broadcast Frames. */
+    BCMOLT_EPON_PATH_10G_US_STAT_ID_DATA_BYTES                              = 13,   /**< Data Bytes. */
+    BCMOLT_EPON_PATH_10G_US_STAT_ID_MULTICAST_FRAMES                        = 14,   /**< Mulitcast Frames. */
+    BCMOLT_EPON_PATH_10G_US_STAT_ID_UNICAST_FRAMES                          = 15,   /**< Unicast Frames. */
+    BCMOLT_EPON_PATH_10G_US_STAT_ID_MPCP_FRAMES                             = 16,   /**< MPCP Frames. */
+    BCMOLT_EPON_PATH_10G_US_STAT_ID_OAM_BYTES                               = 17,   /**< OAM Bytes. */
+    BCMOLT_EPON_PATH_10G_US_STAT_ID_OAM_FRAMES                              = 18,   /**< OAM Frames. */
+    BCMOLT_EPON_PATH_10G_US_STAT_ID_REPORT_FRAMES                           = 19,   /**< Report Frames. */
+    BCMOLT_EPON_PATH_10G_US_STAT_ID_ABORT_FRAMES                            = 20,   /**< Abort Frames. */
+    BCMOLT_EPON_PATH_10G_US_STAT_ID_FCS_ERROR                               = 21,   /**< FCS Error. */
+    BCMOLT_EPON_PATH_10G_US_STAT_ID_CRC_8_ERROR                             = 22,   /**< CRC8 Error. */
+    BCMOLT_EPON_PATH_10G_US_STAT_ID_OUT_OF_SLOT                             = 23,   /**< Out of Slot. */
+    BCMOLT_EPON_PATH_10G_US_STAT_ID_OVERSIZE_ERROR                          = 24,   /**< Oversize Error. */
+    BCMOLT_EPON_PATH_10G_US_STAT_ID_RUNT_ERROR                              = 25,   /**< Runt Error. */
+    BCMOLT_EPON_PATH_10G_US_STAT_ID__NUM_OF /**< Number of enum entries, not an entry itself. */
+} bcmolt_epon_path_10g_us_stat_id;
+
+/** Identifiers for all properties contained in the epon_path_1g_ds_auto_cfg 
+ * group. 
+ */
+typedef enum bcmolt_epon_path_1g_ds_auto_cfg_id
+{
+    BCMOLT_EPON_PATH_1G_DS_AUTO_CFG_ID__BEGIN                               = 0,
+    BCMOLT_EPON_PATH_1G_DS_AUTO_CFG_ID_STAT_ALARM_CLEARED                   = 0,    /**< Stat Alarm Cleared. */
+    BCMOLT_EPON_PATH_1G_DS_AUTO_CFG_ID_STAT_ALARM_RAISED                    = 1,    /**< Stat Alarm Raised. */
+    BCMOLT_EPON_PATH_1G_DS_AUTO_CFG_ID__NUM_OF  /**< Number of enum entries, not an entry itself. */
+} bcmolt_epon_path_1g_ds_auto_cfg_id;
+
+/** Identifiers for all properties contained in the epon_path_1g_ds_cfg group. 
+ */
+typedef enum bcmolt_epon_path_1g_ds_cfg_id
+{
+    BCMOLT_EPON_PATH_1G_DS_CFG_ID__BEGIN                                    = 0,
+    BCMOLT_EPON_PATH_1G_DS_CFG_ID_DEFAULT_FEC_STATE                         = 0,    /**< Default FEC state. */
+    BCMOLT_EPON_PATH_1G_DS_CFG_ID_RAMAN_MODE                                = 1,    /**< Raman mode. */
+    BCMOLT_EPON_PATH_1G_DS_CFG_ID_TURBO_2G_MODE                             = 2,    /**< Turbo 2G mode. */
+    BCMOLT_EPON_PATH_1G_DS_CFG_ID_PRBS_GENERATOR                            = 3,    /**< PRBS Generator. */
+    BCMOLT_EPON_PATH_1G_DS_CFG_ID__NUM_OF   /**< Number of enum entries, not an entry itself. */
+} bcmolt_epon_path_1g_ds_cfg_id;
+
+/** Identifiers for all properties contained in the epon_path_1g_ds_key group. 
+ */
+typedef enum bcmolt_epon_path_1g_ds_key_id
+{
+    BCMOLT_EPON_PATH_1G_DS_KEY_ID__BEGIN                                    = 0,
+    BCMOLT_EPON_PATH_1G_DS_KEY_ID_EPON_NI                                   = 0,    /**< EPON NI. */
+    BCMOLT_EPON_PATH_1G_DS_KEY_ID__NUM_OF   /**< Number of enum entries, not an entry itself. */
+} bcmolt_epon_path_1g_ds_key_id;
+
+/** Identifiers for all properties contained in the 
+ * epon_path_1g_ds_stat_alarm_cleared group. 
+ */
+typedef enum bcmolt_epon_path_1g_ds_stat_alarm_cleared_id
+{
+    BCMOLT_EPON_PATH_1G_DS_STAT_ALARM_CLEARED_ID__BEGIN                     = 0,
+    BCMOLT_EPON_PATH_1G_DS_STAT_ALARM_CLEARED_ID_STAT                       = 0,    /**< Statistic ID. */
+    BCMOLT_EPON_PATH_1G_DS_STAT_ALARM_CLEARED_ID__NUM_OF    /**< Number of enum entries, not an entry itself. */
+} bcmolt_epon_path_1g_ds_stat_alarm_cleared_id;
+
+/** Identifiers for all properties contained in the 
+ * epon_path_1g_ds_stat_alarm_raised group. 
+ */
+typedef enum bcmolt_epon_path_1g_ds_stat_alarm_raised_id
+{
+    BCMOLT_EPON_PATH_1G_DS_STAT_ALARM_RAISED_ID__BEGIN                      = 0,
+    BCMOLT_EPON_PATH_1G_DS_STAT_ALARM_RAISED_ID_STAT                        = 0,    /**< Statistic ID. */
+    BCMOLT_EPON_PATH_1G_DS_STAT_ALARM_RAISED_ID__NUM_OF /**< Number of enum entries, not an entry itself. */
+} bcmolt_epon_path_1g_ds_stat_alarm_raised_id;
+
+/** Identifiers for all properties contained in the epon_path_1g_ds_stat_cfg 
+ * group. 
+ */
+typedef enum bcmolt_epon_path_1g_ds_stat_cfg_id
+{
+    BCMOLT_EPON_PATH_1G_DS_STAT_CFG_ID__BEGIN                               = 0,
+    BCMOLT_EPON_PATH_1G_DS_STAT_CFG_ID_CFG                                  = 0,    /**< Configuration. */
+    BCMOLT_EPON_PATH_1G_DS_STAT_CFG_ID__NUM_OF  /**< Number of enum entries, not an entry itself. */
+} bcmolt_epon_path_1g_ds_stat_cfg_id;
+
+/** Identifiers for all properties contained in the epon_path_1g_ds_stat group. 
+ */
+typedef enum bcmolt_epon_path_1g_ds_stat_id
+{
+    BCMOLT_EPON_PATH_1G_DS_STAT_ID__BEGIN                                   = 0,
+    BCMOLT_EPON_PATH_1G_DS_STAT_ID_BYTES                                    = 0,    /**< Bytes. */
+    BCMOLT_EPON_PATH_1G_DS_STAT_ID_FRAMES                                   = 1,    /**< Frames. */
+    BCMOLT_EPON_PATH_1G_DS_STAT_ID_FRAMES_64                                = 2,    /**< 64 Byte Frames. */
+    BCMOLT_EPON_PATH_1G_DS_STAT_ID_FRAMES_65_127                            = 3,    /**< 65-127 Byte Frames. */
+    BCMOLT_EPON_PATH_1G_DS_STAT_ID_FRAMES_128_255                           = 4,    /**< 128-255 Byte Frames. */
+    BCMOLT_EPON_PATH_1G_DS_STAT_ID_FRAMES_256_511                           = 5,    /**< 256-511 Byte Frames. */
+    BCMOLT_EPON_PATH_1G_DS_STAT_ID_FRAMES_512_1023                          = 6,    /**< 512-1023 Byte Frames. */
+    BCMOLT_EPON_PATH_1G_DS_STAT_ID_FRAMES_1024_1518                         = 7,    /**< 1024-1518 Byte Frames. */
+    BCMOLT_EPON_PATH_1G_DS_STAT_ID_FRAMES_1519_2047                         = 8,    /**< 1519-2047 Byte Frames. */
+    BCMOLT_EPON_PATH_1G_DS_STAT_ID_FRAMES_2048_4095                         = 9,    /**< 2048_4095 Byte Frames. */
+    BCMOLT_EPON_PATH_1G_DS_STAT_ID_FRAMES_4096_9216                         = 10,   /**< 4096-9216 Byte Frames. */
+    BCMOLT_EPON_PATH_1G_DS_STAT_ID_FRAMES_9217_16383                        = 11,   /**< 9217-16383 Byte Frames. */
+    BCMOLT_EPON_PATH_1G_DS_STAT_ID_BROADCAST_FRAMES                         = 12,   /**< Broadcast Frames. */
+    BCMOLT_EPON_PATH_1G_DS_STAT_ID_DATA_BYTES                               = 13,   /**< Data Bytes. */
+    BCMOLT_EPON_PATH_1G_DS_STAT_ID_MULTICAST_FRAMES                         = 14,   /**< Mulitcast Frames. */
+    BCMOLT_EPON_PATH_1G_DS_STAT_ID_UNICAST_FRAMES                           = 15,   /**< Unicast Frames. */
+    BCMOLT_EPON_PATH_1G_DS_STAT_ID_OAM_BYTES                                = 16,   /**< OAM Bytes. */
+    BCMOLT_EPON_PATH_1G_DS_STAT_ID_OAM_FRAMES                               = 17,   /**< OAM Frames. */
+    BCMOLT_EPON_PATH_1G_DS_STAT_ID_GATE_FRAMES                              = 18,   /**< Gate Frames. */
+    BCMOLT_EPON_PATH_1G_DS_STAT_ID_MPCP_FRAMES                              = 19,   /**< MPCP Frames. */
+    BCMOLT_EPON_PATH_1G_DS_STAT_ID_ABORT_FRAMES                             = 20,   /**< Abort Frames. */
+    BCMOLT_EPON_PATH_1G_DS_STAT_ID__NUM_OF  /**< Number of enum entries, not an entry itself. */
+} bcmolt_epon_path_1g_ds_stat_id;
+
+/** Identifiers for all properties contained in the epon_path_1g_us_auto_cfg 
+ * group. 
+ */
+typedef enum bcmolt_epon_path_1g_us_auto_cfg_id
+{
+    BCMOLT_EPON_PATH_1G_US_AUTO_CFG_ID__BEGIN                               = 0,
+    BCMOLT_EPON_PATH_1G_US_AUTO_CFG_ID_STAT_ALARM_CLEARED                   = 0,    /**< Stat Alarm Cleared. */
+    BCMOLT_EPON_PATH_1G_US_AUTO_CFG_ID_STAT_ALARM_RAISED                    = 1,    /**< Stat Alarm Raised. */
+    BCMOLT_EPON_PATH_1G_US_AUTO_CFG_ID__NUM_OF  /**< Number of enum entries, not an entry itself. */
+} bcmolt_epon_path_1g_us_auto_cfg_id;
+
+/** Identifiers for all properties contained in the epon_path_1g_us_cfg group. 
+ */
+typedef enum bcmolt_epon_path_1g_us_cfg_id
+{
+    BCMOLT_EPON_PATH_1G_US_CFG_ID__BEGIN                                    = 0,
+    BCMOLT_EPON_PATH_1G_US_CFG_ID_DEFAULT_FEC_STATE                         = 0,    /**< Default FEC state. */
+    BCMOLT_EPON_PATH_1G_US_CFG_ID_SYNC_TIME_TQ                              = 1,    /**< Sync Time (TQ). */
+    BCMOLT_EPON_PATH_1G_US_CFG_ID_PRBS_CHECKER                              = 2,    /**< PRBS Checker. */
+    BCMOLT_EPON_PATH_1G_US_CFG_ID_PRBS_STATUS                               = 3,    /**< PRBS status. */
+    BCMOLT_EPON_PATH_1G_US_CFG_ID__NUM_OF   /**< Number of enum entries, not an entry itself. */
+} bcmolt_epon_path_1g_us_cfg_id;
+
+/** Identifiers for all properties contained in the epon_path_1g_us_key group. 
+ */
+typedef enum bcmolt_epon_path_1g_us_key_id
+{
+    BCMOLT_EPON_PATH_1G_US_KEY_ID__BEGIN                                    = 0,
+    BCMOLT_EPON_PATH_1G_US_KEY_ID_EPON_NI                                   = 0,    /**< EPON NI. */
+    BCMOLT_EPON_PATH_1G_US_KEY_ID__NUM_OF   /**< Number of enum entries, not an entry itself. */
+} bcmolt_epon_path_1g_us_key_id;
+
+/** Identifiers for all properties contained in the 
+ * epon_path_1g_us_stat_alarm_cleared group. 
+ */
+typedef enum bcmolt_epon_path_1g_us_stat_alarm_cleared_id
+{
+    BCMOLT_EPON_PATH_1G_US_STAT_ALARM_CLEARED_ID__BEGIN                     = 0,
+    BCMOLT_EPON_PATH_1G_US_STAT_ALARM_CLEARED_ID_STAT                       = 0,    /**< Statistic ID. */
+    BCMOLT_EPON_PATH_1G_US_STAT_ALARM_CLEARED_ID__NUM_OF    /**< Number of enum entries, not an entry itself. */
+} bcmolt_epon_path_1g_us_stat_alarm_cleared_id;
+
+/** Identifiers for all properties contained in the 
+ * epon_path_1g_us_stat_alarm_raised group. 
+ */
+typedef enum bcmolt_epon_path_1g_us_stat_alarm_raised_id
+{
+    BCMOLT_EPON_PATH_1G_US_STAT_ALARM_RAISED_ID__BEGIN                      = 0,
+    BCMOLT_EPON_PATH_1G_US_STAT_ALARM_RAISED_ID_STAT                        = 0,    /**< Statistic ID. */
+    BCMOLT_EPON_PATH_1G_US_STAT_ALARM_RAISED_ID__NUM_OF /**< Number of enum entries, not an entry itself. */
+} bcmolt_epon_path_1g_us_stat_alarm_raised_id;
+
+/** Identifiers for all properties contained in the epon_path_1g_us_stat_cfg 
+ * group. 
+ */
+typedef enum bcmolt_epon_path_1g_us_stat_cfg_id
+{
+    BCMOLT_EPON_PATH_1G_US_STAT_CFG_ID__BEGIN                               = 0,
+    BCMOLT_EPON_PATH_1G_US_STAT_CFG_ID_CFG                                  = 0,    /**< Configuration. */
+    BCMOLT_EPON_PATH_1G_US_STAT_CFG_ID__NUM_OF  /**< Number of enum entries, not an entry itself. */
+} bcmolt_epon_path_1g_us_stat_cfg_id;
+
+/** Identifiers for all properties contained in the epon_path_1g_us_stat group. 
+ */
+typedef enum bcmolt_epon_path_1g_us_stat_id
+{
+    BCMOLT_EPON_PATH_1G_US_STAT_ID__BEGIN                                   = 0,
+    BCMOLT_EPON_PATH_1G_US_STAT_ID_BYTES                                    = 0,    /**< Bytes. */
+    BCMOLT_EPON_PATH_1G_US_STAT_ID_FRAMES                                   = 1,    /**< Frames. */
+    BCMOLT_EPON_PATH_1G_US_STAT_ID_FRAMES_64                                = 2,    /**< 64 Byte Frames. */
+    BCMOLT_EPON_PATH_1G_US_STAT_ID_FRAMES_65_127                            = 3,    /**< 65-127 Byte Frames. */
+    BCMOLT_EPON_PATH_1G_US_STAT_ID_FRAMES_128_255                           = 4,    /**< 128-255 Byte Frames. */
+    BCMOLT_EPON_PATH_1G_US_STAT_ID_FRAMES_256_511                           = 5,    /**< 256-511 Byte Frames. */
+    BCMOLT_EPON_PATH_1G_US_STAT_ID_FRAMES_512_1023                          = 6,    /**< 512-1023 Byte Frames. */
+    BCMOLT_EPON_PATH_1G_US_STAT_ID_FRAMES_1024_1518                         = 7,    /**< 1024-1518 Byte Frames. */
+    BCMOLT_EPON_PATH_1G_US_STAT_ID_FRAMES_1519_2047                         = 8,    /**< 1519-2047 Byte Frames. */
+    BCMOLT_EPON_PATH_1G_US_STAT_ID_FRAMES_2048_4095                         = 9,    /**< 2048_4095 Byte Frames. */
+    BCMOLT_EPON_PATH_1G_US_STAT_ID_FRAMES_4096_9216                         = 10,   /**< 4096-9216 Byte Frames. */
+    BCMOLT_EPON_PATH_1G_US_STAT_ID_FRAMES_9217_16383                        = 11,   /**< 9217-16383 Byte Frames. */
+    BCMOLT_EPON_PATH_1G_US_STAT_ID_BROADCAST_FRAMES                         = 12,   /**< Broadcast Frames. */
+    BCMOLT_EPON_PATH_1G_US_STAT_ID_DATA_BYTES                               = 13,   /**< Data Bytes. */
+    BCMOLT_EPON_PATH_1G_US_STAT_ID_MULTICAST_FRAMES                         = 14,   /**< Mulitcast Frames. */
+    BCMOLT_EPON_PATH_1G_US_STAT_ID_UNICAST_FRAMES                           = 15,   /**< Unicast Frames. */
+    BCMOLT_EPON_PATH_1G_US_STAT_ID_MPCP_FRAMES                              = 16,   /**< MPCP Frames. */
+    BCMOLT_EPON_PATH_1G_US_STAT_ID_OAM_BYTES                                = 17,   /**< OAM Bytes. */
+    BCMOLT_EPON_PATH_1G_US_STAT_ID_OAM_FRAMES                               = 18,   /**< OAM Frames. */
+    BCMOLT_EPON_PATH_1G_US_STAT_ID_REPORT_FRAMES                            = 19,   /**< Report Frames. */
+    BCMOLT_EPON_PATH_1G_US_STAT_ID_ABORT_FRAMES                             = 20,   /**< Abort Frames. */
+    BCMOLT_EPON_PATH_1G_US_STAT_ID_FCS_ERROR                                = 21,   /**< FCS Error. */
+    BCMOLT_EPON_PATH_1G_US_STAT_ID_CRC_8_ERROR                              = 22,   /**< CRC8 Error. */
+    BCMOLT_EPON_PATH_1G_US_STAT_ID_OUT_OF_SLOT                              = 23,   /**< Out of Slot. */
+    BCMOLT_EPON_PATH_1G_US_STAT_ID_OVERSIZE_ERROR                           = 24,   /**< Oversize Error. */
+    BCMOLT_EPON_PATH_1G_US_STAT_ID_RUNT_ERROR                               = 25,   /**< Runt Error. */
+    BCMOLT_EPON_PATH_1G_US_STAT_ID__NUM_OF  /**< Number of enum entries, not an entry itself. */
+} bcmolt_epon_path_1g_us_stat_id;
+
+/** Identifiers for all properties contained in the epon_rp_cfg group. 
+ */
+typedef enum bcmolt_epon_rp_cfg_id
+{
+    BCMOLT_EPON_RP_CFG_ID__BEGIN                                            = 0,
+    BCMOLT_EPON_RP_CFG_ID_BASE_LLID                                         = 0,    /**< Base logical link identifier. */
+    BCMOLT_EPON_RP_CFG_ID_MPCP_DISC_EN                                      = 1,    /**< MPCP discovery enable. */
+    BCMOLT_EPON_RP_CFG_ID_MPCP_DISC_GNT_LEN_TQ                              = 2,    /**< MPCP discovery grant length TQ. */
+    BCMOLT_EPON_RP_CFG_ID_MPCP_REPORT_TIMEOUT                               = 3,    /**< MPCP report timeout mS. */
+    BCMOLT_EPON_RP_CFG_ID_MAX_MPCP_REG_PER_DISC_WINDOW                      = 4,    /**< Maximum MPCP registrations per discovery window. */
+    BCMOLT_EPON_RP_CFG_ID_MAX_LINKS                                         = 5,    /**< Maximum number of links. */
+    BCMOLT_EPON_RP_CFG_ID_DEFAULT_UPSTREAM_BANDWIDTH                        = 6,    /**< Default Upstream Bandwidth. */
+    BCMOLT_EPON_RP_CFG_ID_RATE_OF_REFRACTION                                = 7,    /**< Rate of Refraction. */
+    BCMOLT_EPON_RP_CFG_ID__NUM_OF   /**< Number of enum entries, not an entry itself. */
+} bcmolt_epon_rp_cfg_id;
+
+/** Identifiers for all properties contained in the epon_rp_key group. 
+ */
+typedef enum bcmolt_epon_rp_key_id
+{
+    BCMOLT_EPON_RP_KEY_ID__BEGIN                                            = 0,
+    BCMOLT_EPON_RP_KEY_ID_EPON_NI                                           = 0,    /**< EPON NI number. */
+    BCMOLT_EPON_RP_KEY_ID_LINK_RATE                                         = 1,    /**< Link rate. */
+    BCMOLT_EPON_RP_KEY_ID__NUM_OF   /**< Number of enum entries, not an entry itself. */
+} bcmolt_epon_rp_key_id;
+
+/** Identifiers for all properties contained in the gpio_cfg group. 
+ */
+typedef enum bcmolt_gpio_cfg_id
+{
+    BCMOLT_GPIO_CFG_ID__BEGIN                                               = 0,
+    BCMOLT_GPIO_CFG_ID_DIRECTION                                            = 0,    /**< Direction. */
+    BCMOLT_GPIO_CFG_ID_VALUE                                                = 1,    /**< Value. */
+    BCMOLT_GPIO_CFG_ID__NUM_OF  /**< Number of enum entries, not an entry itself. */
+} bcmolt_gpio_cfg_id;
+
+/** Identifiers for all properties contained in the gpio_key group. 
+ */
+typedef enum bcmolt_gpio_key_id
+{
+    BCMOLT_GPIO_KEY_ID__BEGIN                                               = 0,
+    BCMOLT_GPIO_KEY_ID_RESERVED                                             = 0,    /**< Reserved. */
+    BCMOLT_GPIO_KEY_ID_GPIO_ID                                              = 1,    /**< GPIO ID. */
+    BCMOLT_GPIO_KEY_ID__NUM_OF  /**< Number of enum entries, not an entry itself. */
+} bcmolt_gpio_key_id;
+
+/** Identifiers for all properties contained in the gpon_alloc_auto_cfg group. 
+ */
+typedef enum bcmolt_gpon_alloc_auto_cfg_id
+{
+    BCMOLT_GPON_ALLOC_AUTO_CFG_ID__BEGIN                                    = 0,
+    BCMOLT_GPON_ALLOC_AUTO_CFG_ID_CONFIGURATION_COMPLETED                   = 0,    /**< Configuration Completed. */
+    BCMOLT_GPON_ALLOC_AUTO_CFG_ID_GET_ALLOC_STATS_COMPLETED                 = 1,    /**< Get alloc ID statistics completed. */
+    BCMOLT_GPON_ALLOC_AUTO_CFG_ID_STAT_ALARM_CLEARED                        = 2,    /**< Stat Alarm Cleared. */
+    BCMOLT_GPON_ALLOC_AUTO_CFG_ID_STAT_ALARM_RAISED                         = 3,    /**< Stat Alarm Raised. */
+    BCMOLT_GPON_ALLOC_AUTO_CFG_ID__NUM_OF   /**< Number of enum entries, not an entry itself. */
+} bcmolt_gpon_alloc_auto_cfg_id;
+
+/** Identifiers for all properties contained in the gpon_alloc_cfg group. 
+ */
+typedef enum bcmolt_gpon_alloc_cfg_id
+{
+    BCMOLT_GPON_ALLOC_CFG_ID__BEGIN                                         = 0,
+    BCMOLT_GPON_ALLOC_CFG_ID_STATE                                          = 0,    /**< Alloc ID state. */
+    BCMOLT_GPON_ALLOC_CFG_ID_SLA                                            = 1,    /**< Alloc ID SLA. */
+    BCMOLT_GPON_ALLOC_CFG_ID_ONU_ID                                         = 2,    /**< onu_id. */
+    BCMOLT_GPON_ALLOC_CFG_ID_COLLECT_STATS                                  = 3,    /**< Enable statistics collection on the alloc id. */
+    BCMOLT_GPON_ALLOC_CFG_ID__NUM_OF    /**< Number of enum entries, not an entry itself. */
+} bcmolt_gpon_alloc_cfg_id;
+
+/** Identifiers for all properties contained in the 
+ * gpon_alloc_configuration_completed group. 
+ */
+typedef enum bcmolt_gpon_alloc_configuration_completed_id
+{
+    BCMOLT_GPON_ALLOC_CONFIGURATION_COMPLETED_ID__BEGIN                     = 0,
+    BCMOLT_GPON_ALLOC_CONFIGURATION_COMPLETED_ID_STATUS                     = 0,    /**< Status. */
+    BCMOLT_GPON_ALLOC_CONFIGURATION_COMPLETED_ID_NEW_STATE                  = 1,    /**< new state. */
+    BCMOLT_GPON_ALLOC_CONFIGURATION_COMPLETED_ID__NUM_OF    /**< Number of enum entries, not an entry itself. */
+} bcmolt_gpon_alloc_configuration_completed_id;
+
+/** Identifiers for all properties contained in the 
+ * gpon_alloc_get_alloc_stats_completed group. 
+ */
+typedef enum bcmolt_gpon_alloc_get_alloc_stats_completed_id
+{
+    BCMOLT_GPON_ALLOC_GET_ALLOC_STATS_COMPLETED_ID__BEGIN                   = 0,
+    BCMOLT_GPON_ALLOC_GET_ALLOC_STATS_COMPLETED_ID_STATUS                   = 0,    /**< status. */
+    BCMOLT_GPON_ALLOC_GET_ALLOC_STATS_COMPLETED_ID_AVERAGE_NSR_USED         = 1,    /**< Average NSR used bytes. */
+    BCMOLT_GPON_ALLOC_GET_ALLOC_STATS_COMPLETED_ID_AVERAGE_NSR_ALLOCATED    = 2,    /**< Average NSR allocated bytes. */
+    BCMOLT_GPON_ALLOC_GET_ALLOC_STATS_COMPLETED_ID_AVERAGE_SR_REPORT        = 3,    /**< Average SR report. */
+    BCMOLT_GPON_ALLOC_GET_ALLOC_STATS_COMPLETED_ID__NUM_OF  /**< Number of enum entries, not an entry itself. */
+} bcmolt_gpon_alloc_get_alloc_stats_completed_id;
+
+/** Identifiers for all properties contained in the gpon_alloc_get_stats group. 
+ */
+typedef enum bcmolt_gpon_alloc_get_stats_id
+{
+    BCMOLT_GPON_ALLOC_GET_STATS_ID__BEGIN                                   = 0,
+    BCMOLT_GPON_ALLOC_GET_STATS_ID_NUM_OF_CYCLES                            = 0,    /**< Number of cycles. */
+    BCMOLT_GPON_ALLOC_GET_STATS_ID__NUM_OF  /**< Number of enum entries, not an entry itself. */
+} bcmolt_gpon_alloc_get_stats_id;
+
+/** Identifiers for all properties contained in the gpon_alloc_key group. 
+ */
+typedef enum bcmolt_gpon_alloc_key_id
+{
+    BCMOLT_GPON_ALLOC_KEY_ID__BEGIN                                         = 0,
+    BCMOLT_GPON_ALLOC_KEY_ID_PON_NI                                         = 0,    /**< PON network interface. */
+    BCMOLT_GPON_ALLOC_KEY_ID_ALLOC_ID                                       = 1,    /**< Alloc ID. */
+    BCMOLT_GPON_ALLOC_KEY_ID__NUM_OF    /**< Number of enum entries, not an entry itself. */
+} bcmolt_gpon_alloc_key_id;
+
+/** Identifiers for all properties contained in the gpon_alloc_set_state group. 
+ */
+typedef enum bcmolt_gpon_alloc_set_state_id
+{
+    BCMOLT_GPON_ALLOC_SET_STATE_ID__BEGIN                                   = 0,
+    BCMOLT_GPON_ALLOC_SET_STATE_ID_STATE                                    = 0,    /**< State. */
+    BCMOLT_GPON_ALLOC_SET_STATE_ID__NUM_OF  /**< Number of enum entries, not an entry itself. */
+} bcmolt_gpon_alloc_set_state_id;
+
+/** Identifiers for all properties contained in the 
+ * gpon_alloc_stat_alarm_cleared group. 
+ */
+typedef enum bcmolt_gpon_alloc_stat_alarm_cleared_id
+{
+    BCMOLT_GPON_ALLOC_STAT_ALARM_CLEARED_ID__BEGIN                          = 0,
+    BCMOLT_GPON_ALLOC_STAT_ALARM_CLEARED_ID_STAT                            = 0,    /**< Statistic ID. */
+    BCMOLT_GPON_ALLOC_STAT_ALARM_CLEARED_ID__NUM_OF /**< Number of enum entries, not an entry itself. */
+} bcmolt_gpon_alloc_stat_alarm_cleared_id;
+
+/** Identifiers for all properties contained in the gpon_alloc_stat_alarm_raised 
+ * group. 
+ */
+typedef enum bcmolt_gpon_alloc_stat_alarm_raised_id
+{
+    BCMOLT_GPON_ALLOC_STAT_ALARM_RAISED_ID__BEGIN                           = 0,
+    BCMOLT_GPON_ALLOC_STAT_ALARM_RAISED_ID_STAT                             = 0,    /**< Statistic ID. */
+    BCMOLT_GPON_ALLOC_STAT_ALARM_RAISED_ID__NUM_OF  /**< Number of enum entries, not an entry itself. */
+} bcmolt_gpon_alloc_stat_alarm_raised_id;
+
+/** Identifiers for all properties contained in the gpon_alloc_stat_cfg group. 
+ */
+typedef enum bcmolt_gpon_alloc_stat_cfg_id
+{
+    BCMOLT_GPON_ALLOC_STAT_CFG_ID__BEGIN                                    = 0,
+    BCMOLT_GPON_ALLOC_STAT_CFG_ID_CFG                                       = 0,    /**< Configuration. */
+    BCMOLT_GPON_ALLOC_STAT_CFG_ID__NUM_OF   /**< Number of enum entries, not an entry itself. */
+} bcmolt_gpon_alloc_stat_cfg_id;
+
+/** Identifiers for all properties contained in the gpon_alloc_stat group. 
+ */
+typedef enum bcmolt_gpon_alloc_stat_id
+{
+    BCMOLT_GPON_ALLOC_STAT_ID__BEGIN                                        = 0,
+    BCMOLT_GPON_ALLOC_STAT_ID_RX_BYTES                                      = 0,    /**< Received Bytes. */
+    BCMOLT_GPON_ALLOC_STAT_ID__NUM_OF   /**< Number of enum entries, not an entry itself. */
+} bcmolt_gpon_alloc_stat_id;
+
+/** Identifiers for all properties contained in the gpon_gem_port_auto_cfg 
+ * group. 
+ */
+typedef enum bcmolt_gpon_gem_port_auto_cfg_id
+{
+    BCMOLT_GPON_GEM_PORT_AUTO_CFG_ID__BEGIN                                 = 0,
+    BCMOLT_GPON_GEM_PORT_AUTO_CFG_ID_CONFIGURATION_COMPLETED                = 0,    /**< Configuration Completed. */
+    BCMOLT_GPON_GEM_PORT_AUTO_CFG_ID_STAT_ALARM_CLEARED                     = 1,    /**< Stat Alarm Cleared. */
+    BCMOLT_GPON_GEM_PORT_AUTO_CFG_ID_STAT_ALARM_RAISED                      = 2,    /**< Stat Alarm Raised. */
+    BCMOLT_GPON_GEM_PORT_AUTO_CFG_ID__NUM_OF    /**< Number of enum entries, not an entry itself. */
+} bcmolt_gpon_gem_port_auto_cfg_id;
+
+/** Identifiers for all properties contained in the gpon_gem_port_cfg group. 
+ */
+typedef enum bcmolt_gpon_gem_port_cfg_id
+{
+    BCMOLT_GPON_GEM_PORT_CFG_ID__BEGIN                                      = 0,
+    BCMOLT_GPON_GEM_PORT_CFG_ID_CONFIGURATION                               = 0,    /**< Configuration. */
+    BCMOLT_GPON_GEM_PORT_CFG_ID_ONU_ID                                      = 1,    /**< ONU ID. */
+    BCMOLT_GPON_GEM_PORT_CFG_ID_GEM_PORT_STATE                              = 2,    /**< gem port state. */
+    BCMOLT_GPON_GEM_PORT_CFG_ID_DOWNSTREAM_ENCRYPTION_MODE                  = 3,    /**< Downstream encryption mode. */
+    BCMOLT_GPON_GEM_PORT_CFG_ID_UPSTREAM_DESTINATION_QUEUE                  = 4,    /**< Upstream destination queue. */
+    BCMOLT_GPON_GEM_PORT_CFG_ID_CONTROL                                     = 5,    /**< control. */
+    BCMOLT_GPON_GEM_PORT_CFG_ID_DEBUG_FLOW_CONFIG                           = 6,    /**< Debug flow config. */
+    BCMOLT_GPON_GEM_PORT_CFG_ID_MAC_TABLE_ENTRY_LIMIT                       = 7,    /**< MAC table entry limit. */
+    BCMOLT_GPON_GEM_PORT_CFG_ID__NUM_OF /**< Number of enum entries, not an entry itself. */
+} bcmolt_gpon_gem_port_cfg_id;
+
+/** Identifiers for all properties contained in the 
+ * gpon_gem_port_configuration_completed group. 
+ */
+typedef enum bcmolt_gpon_gem_port_configuration_completed_id
+{
+    BCMOLT_GPON_GEM_PORT_CONFIGURATION_COMPLETED_ID__BEGIN                  = 0,
+    BCMOLT_GPON_GEM_PORT_CONFIGURATION_COMPLETED_ID_STATUS                  = 0,    /**< status. */
+    BCMOLT_GPON_GEM_PORT_CONFIGURATION_COMPLETED_ID_NEW_STATE               = 1,    /**< new state. */
+    BCMOLT_GPON_GEM_PORT_CONFIGURATION_COMPLETED_ID__NUM_OF /**< Number of enum entries, not an entry itself. */
+} bcmolt_gpon_gem_port_configuration_completed_id;
+
+/** Identifiers for all properties contained in the gpon_gem_port_key group. 
+ */
+typedef enum bcmolt_gpon_gem_port_key_id
+{
+    BCMOLT_GPON_GEM_PORT_KEY_ID__BEGIN                                      = 0,
+    BCMOLT_GPON_GEM_PORT_KEY_ID_PON_NI                                      = 0,    /**< PON network interface. */
+    BCMOLT_GPON_GEM_PORT_KEY_ID_GEM_PORT_ID                                 = 1,    /**< GEM Port ID. */
+    BCMOLT_GPON_GEM_PORT_KEY_ID__NUM_OF /**< Number of enum entries, not an entry itself. */
+} bcmolt_gpon_gem_port_key_id;
+
+/** Identifiers for all properties contained in the gpon_gem_port_set_state 
+ * group. 
+ */
+typedef enum bcmolt_gpon_gem_port_set_state_id
+{
+    BCMOLT_GPON_GEM_PORT_SET_STATE_ID__BEGIN                                = 0,
+    BCMOLT_GPON_GEM_PORT_SET_STATE_ID_STATE                                 = 0,    /**< State. */
+    BCMOLT_GPON_GEM_PORT_SET_STATE_ID__NUM_OF   /**< Number of enum entries, not an entry itself. */
+} bcmolt_gpon_gem_port_set_state_id;
+
+/** Identifiers for all properties contained in the 
+ * gpon_gem_port_stat_alarm_cleared group. 
+ */
+typedef enum bcmolt_gpon_gem_port_stat_alarm_cleared_id
+{
+    BCMOLT_GPON_GEM_PORT_STAT_ALARM_CLEARED_ID__BEGIN                       = 0,
+    BCMOLT_GPON_GEM_PORT_STAT_ALARM_CLEARED_ID_STAT                         = 0,    /**< Statistic ID. */
+    BCMOLT_GPON_GEM_PORT_STAT_ALARM_CLEARED_ID__NUM_OF  /**< Number of enum entries, not an entry itself. */
+} bcmolt_gpon_gem_port_stat_alarm_cleared_id;
+
+/** Identifiers for all properties contained in the 
+ * gpon_gem_port_stat_alarm_raised group. 
+ */
+typedef enum bcmolt_gpon_gem_port_stat_alarm_raised_id
+{
+    BCMOLT_GPON_GEM_PORT_STAT_ALARM_RAISED_ID__BEGIN                        = 0,
+    BCMOLT_GPON_GEM_PORT_STAT_ALARM_RAISED_ID_STAT                          = 0,    /**< Statistic ID. */
+    BCMOLT_GPON_GEM_PORT_STAT_ALARM_RAISED_ID__NUM_OF   /**< Number of enum entries, not an entry itself. */
+} bcmolt_gpon_gem_port_stat_alarm_raised_id;
+
+/** Identifiers for all properties contained in the gpon_gem_port_stat_cfg 
+ * group. 
+ */
+typedef enum bcmolt_gpon_gem_port_stat_cfg_id
+{
+    BCMOLT_GPON_GEM_PORT_STAT_CFG_ID__BEGIN                                 = 0,
+    BCMOLT_GPON_GEM_PORT_STAT_CFG_ID_CFG                                    = 0,    /**< Configuration. */
+    BCMOLT_GPON_GEM_PORT_STAT_CFG_ID__NUM_OF    /**< Number of enum entries, not an entry itself. */
+} bcmolt_gpon_gem_port_stat_cfg_id;
+
+/** Identifiers for all properties contained in the gpon_gem_port_stat group. 
+ */
+typedef enum bcmolt_gpon_gem_port_stat_id
+{
+    BCMOLT_GPON_GEM_PORT_STAT_ID__BEGIN                                     = 0,
+    BCMOLT_GPON_GEM_PORT_STAT_ID_RX_PACKETS                                 = 0,    /**< Received GEM frames. */
+    BCMOLT_GPON_GEM_PORT_STAT_ID_RX_BYTES                                   = 1,    /**< Received bytes. */
+    BCMOLT_GPON_GEM_PORT_STAT_ID_TX_PACKETS                                 = 2,    /**< Transmitted GEM frames. */
+    BCMOLT_GPON_GEM_PORT_STAT_ID_TX_BYTES                                   = 3,    /**< Transmitted bytes. */
+    BCMOLT_GPON_GEM_PORT_STAT_ID__NUM_OF    /**< Number of enum entries, not an entry itself. */
+} bcmolt_gpon_gem_port_stat_id;
+
+/** Identifiers for all properties contained in the gpon_iwf_auto_cfg group. 
+ */
+typedef enum bcmolt_gpon_iwf_auto_cfg_id
+{
+    BCMOLT_GPON_IWF_AUTO_CFG_ID__BEGIN                                      = 0,
+    BCMOLT_GPON_IWF_AUTO_CFG_ID_FLUSH_MAC_TABLE_COMPLETED                   = 0,    /**< Flush MAC Table Completed. */
+    BCMOLT_GPON_IWF_AUTO_CFG_ID_SCAN_MAC_TABLE_COMPLETED                    = 1,    /**< Scan MAC Table Completed. */
+    BCMOLT_GPON_IWF_AUTO_CFG_ID_STAT_ALARM_CLEARED                          = 2,    /**< Stat Alarm Cleared. */
+    BCMOLT_GPON_IWF_AUTO_CFG_ID_STAT_ALARM_RAISED                           = 3,    /**< Stat Alarm Raised. */
+    BCMOLT_GPON_IWF_AUTO_CFG_ID__NUM_OF /**< Number of enum entries, not an entry itself. */
+} bcmolt_gpon_iwf_auto_cfg_id;
+
+/** Identifiers for all properties contained in the gpon_iwf_cfg group. 
+ */
+typedef enum bcmolt_gpon_iwf_cfg_id
+{
+    BCMOLT_GPON_IWF_CFG_ID__BEGIN                                           = 0,
+    BCMOLT_GPON_IWF_CFG_ID_IWF_MODE                                         = 0,    /**< IWF mode. */
+    BCMOLT_GPON_IWF_CFG_ID_US_TPID_PER_FLOW                                 = 1,    /**< US tpid per flow. */
+    BCMOLT_GPON_IWF_CFG_ID_US_OTAG_DIRECT_TPID                              = 2,    /**< US otag direct tpid. */
+    BCMOLT_GPON_IWF_CFG_ID_US_OTAG_DIRECT_PBIT                              = 3,    /**< US otag direct pbit. */
+    BCMOLT_GPON_IWF_CFG_ID_DS_TPID                                          = 4,    /**< DS tpid. */
+    BCMOLT_GPON_IWF_CFG_ID_MAC_TABLE_CONFIGURATION                          = 5,    /**< MAC table configuration. */
+    BCMOLT_GPON_IWF_CFG_ID_DEBUG_FLOW_CONFIGURATION                         = 6,    /**< Debug flow configuration. */
+    BCMOLT_GPON_IWF_CFG_ID_MAC_TABLE_COUNT                                  = 7,    /**< MAC table entry count. */
+    BCMOLT_GPON_IWF_CFG_ID_FORBIDDEN_VLAN_FLOW_GEM_RANGE_START              = 8,    /**< Vlan, flow, Gem forbidden range start value. */
+    BCMOLT_GPON_IWF_CFG_ID__NUM_OF  /**< Number of enum entries, not an entry itself. */
+} bcmolt_gpon_iwf_cfg_id;
+
+/** Identifiers for all properties contained in the gpon_iwf_ds_egress_flow_cfg 
+ * group. 
+ */
+typedef enum bcmolt_gpon_iwf_ds_egress_flow_cfg_id
+{
+    BCMOLT_GPON_IWF_DS_EGRESS_FLOW_CFG_ID__BEGIN                            = 0,
+    BCMOLT_GPON_IWF_DS_EGRESS_FLOW_CFG_ID_GEM_PORT                          = 0,    /**< GEM port. */
+    BCMOLT_GPON_IWF_DS_EGRESS_FLOW_CFG_ID_PBIT_CONTROL                      = 1,    /**< Pbit control. */
+    BCMOLT_GPON_IWF_DS_EGRESS_FLOW_CFG_ID__NUM_OF   /**< Number of enum entries, not an entry itself. */
+} bcmolt_gpon_iwf_ds_egress_flow_cfg_id;
+
+/** Identifiers for all properties contained in the gpon_iwf_ds_egress_flow_key 
+ * group. 
+ */
+typedef enum bcmolt_gpon_iwf_ds_egress_flow_key_id
+{
+    BCMOLT_GPON_IWF_DS_EGRESS_FLOW_KEY_ID__BEGIN                            = 0,
+    BCMOLT_GPON_IWF_DS_EGRESS_FLOW_KEY_ID_PON_NI                            = 0,    /**< PON network interface. */
+    BCMOLT_GPON_IWF_DS_EGRESS_FLOW_KEY_ID_FLOW_ID                           = 1,    /**< Flow ID. */
+    BCMOLT_GPON_IWF_DS_EGRESS_FLOW_KEY_ID__NUM_OF   /**< Number of enum entries, not an entry itself. */
+} bcmolt_gpon_iwf_ds_egress_flow_key_id;
+
+/** Identifiers for all properties contained in the gpon_iwf_ds_ingress_flow_cfg 
+ * group. 
+ */
+typedef enum bcmolt_gpon_iwf_ds_ingress_flow_cfg_id
+{
+    BCMOLT_GPON_IWF_DS_INGRESS_FLOW_CFG_ID__BEGIN                           = 0,
+    BCMOLT_GPON_IWF_DS_INGRESS_FLOW_CFG_ID_MAPPING_METHOD                   = 0,    /**< Mapping method. */
+    BCMOLT_GPON_IWF_DS_INGRESS_FLOW_CFG_ID_MAPPING_TAG                      = 1,    /**< Mapping tag. */
+    BCMOLT_GPON_IWF_DS_INGRESS_FLOW_CFG_ID_VLAN_ACTION                      = 2,    /**< VLAN action. */
+    BCMOLT_GPON_IWF_DS_INGRESS_FLOW_CFG_ID__NUM_OF  /**< Number of enum entries, not an entry itself. */
+} bcmolt_gpon_iwf_ds_ingress_flow_cfg_id;
+
+/** Identifiers for all properties contained in the gpon_iwf_ds_ingress_flow_key 
+ * group. 
+ */
+typedef enum bcmolt_gpon_iwf_ds_ingress_flow_key_id
+{
+    BCMOLT_GPON_IWF_DS_INGRESS_FLOW_KEY_ID__BEGIN                           = 0,
+    BCMOLT_GPON_IWF_DS_INGRESS_FLOW_KEY_ID_PON_NI                           = 0,    /**< PON network interface. */
+    BCMOLT_GPON_IWF_DS_INGRESS_FLOW_KEY_ID_VLAN_ID                          = 1,    /**< vlan ID. */
+    BCMOLT_GPON_IWF_DS_INGRESS_FLOW_KEY_ID__NUM_OF          /**< Number of enum entries, not an entry itself. */
+} bcmolt_gpon_iwf_ds_ingress_flow_key_id;
+
+/** Identifiers for all properties contained in the 
+ * gpon_iwf_flush_mac_table_completed group. 
+ */
+typedef enum bcmolt_gpon_iwf_flush_mac_table_completed_id
+{
+    BCMOLT_GPON_IWF_FLUSH_MAC_TABLE_COMPLETED_ID__NUM_OF    /**< Number of enum entries, not an entry itself. */
+} bcmolt_gpon_iwf_flush_mac_table_completed_id;
+
+/** Identifiers for all properties contained in the gpon_iwf_flush_mac_table 
+ * group. 
+ */
+typedef enum bcmolt_gpon_iwf_flush_mac_table_id
+{
+    BCMOLT_GPON_IWF_FLUSH_MAC_TABLE_ID__BEGIN                               = 0,
+    BCMOLT_GPON_IWF_FLUSH_MAC_TABLE_ID_CONTROL                              = 0,    /**< control. */
+    BCMOLT_GPON_IWF_FLUSH_MAC_TABLE_ID_VID                                  = 1,    /**< VID. */
+    BCMOLT_GPON_IWF_FLUSH_MAC_TABLE_ID_FLOW_ID                              = 2,    /**< FLOW ID. */
+    BCMOLT_GPON_IWF_FLUSH_MAC_TABLE_ID__NUM_OF  /**< Number of enum entries, not an entry itself. */
+} bcmolt_gpon_iwf_flush_mac_table_id;
+
+/** Identifiers for all properties contained in the gpon_iwf_key group. 
+ */
+typedef enum bcmolt_gpon_iwf_key_id
+{
+    BCMOLT_GPON_IWF_KEY_ID__BEGIN                                           = 0,
+    BCMOLT_GPON_IWF_KEY_ID_PON_NI                                           = 0,    /**< PON network interface. */
+    BCMOLT_GPON_IWF_KEY_ID__NUM_OF  /**< Number of enum entries, not an entry itself. */
+} bcmolt_gpon_iwf_key_id;
+
+/** Identifiers for all properties contained in the gpon_iwf_mac_table_auto_cfg 
+ * group. 
+ */
+typedef enum bcmolt_gpon_iwf_mac_table_auto_cfg_id
+{
+    BCMOLT_GPON_IWF_MAC_TABLE_AUTO_CFG_ID__BEGIN                            = 0,
+    BCMOLT_GPON_IWF_MAC_TABLE_AUTO_CFG_ID_MAC_AGED                          = 0,    /**< MAC Aged. */
+    BCMOLT_GPON_IWF_MAC_TABLE_AUTO_CFG_ID_MAC_DROPPED                       = 1,    /**< MAC Dropped. */
+    BCMOLT_GPON_IWF_MAC_TABLE_AUTO_CFG_ID_MAC_MOVE                          = 2,    /**< MAC Move. */
+    BCMOLT_GPON_IWF_MAC_TABLE_AUTO_CFG_ID_NEW_MAC                           = 3,    /**< New MAC. */
+    BCMOLT_GPON_IWF_MAC_TABLE_AUTO_CFG_ID__NUM_OF   /**< Number of enum entries, not an entry itself. */
+} bcmolt_gpon_iwf_mac_table_auto_cfg_id;
+
+/** Identifiers for all properties contained in the gpon_iwf_mac_table_cfg 
+ * group. 
+ */
+typedef enum bcmolt_gpon_iwf_mac_table_cfg_id
+{
+    BCMOLT_GPON_IWF_MAC_TABLE_CFG_ID__BEGIN                                 = 0,
+    BCMOLT_GPON_IWF_MAC_TABLE_CFG_ID_FLOW_ID                                = 0,    /**< Flow ID. */
+    BCMOLT_GPON_IWF_MAC_TABLE_CFG_ID_STAT                                   = 1,    /**< static. */
+    BCMOLT_GPON_IWF_MAC_TABLE_CFG_ID_GEM_PORT_ID                            = 2,    /**< GEM Port ID. */
+    BCMOLT_GPON_IWF_MAC_TABLE_CFG_ID_ONU_ID                                 = 3,    /**< ONU ID. */
+    BCMOLT_GPON_IWF_MAC_TABLE_CFG_ID__NUM_OF    /**< Number of enum entries, not an entry itself. */
+} bcmolt_gpon_iwf_mac_table_cfg_id;
+
+/** Identifiers for all properties contained in the gpon_iwf_mac_table_key 
+ * group. 
+ */
+typedef enum bcmolt_gpon_iwf_mac_table_key_id
+{
+    BCMOLT_GPON_IWF_MAC_TABLE_KEY_ID__BEGIN                                 = 0,
+    BCMOLT_GPON_IWF_MAC_TABLE_KEY_ID_PON_NI                                 = 0,    /**< PON network interface. */
+    BCMOLT_GPON_IWF_MAC_TABLE_KEY_ID_MAC_ADDRESS                            = 1,    /**< MAC address. */
+    BCMOLT_GPON_IWF_MAC_TABLE_KEY_ID_VLAN                                   = 2,    /**< VLAN. */
+    BCMOLT_GPON_IWF_MAC_TABLE_KEY_ID__NUM_OF        /**< Number of enum entries, not an entry itself. */
+} bcmolt_gpon_iwf_mac_table_key_id;
+
+/** Identifiers for all properties contained in the gpon_iwf_mac_table_mac_aged 
+ * group. 
+ */
+typedef enum bcmolt_gpon_iwf_mac_table_mac_aged_id
+{
+    BCMOLT_GPON_IWF_MAC_TABLE_MAC_AGED_ID__NUM_OF   /**< Number of enum entries, not an entry itself. */
+} bcmolt_gpon_iwf_mac_table_mac_aged_id;
+
+/** Identifiers for all properties contained in the 
+ * gpon_iwf_mac_table_mac_dropped group. 
+ */
+typedef enum bcmolt_gpon_iwf_mac_table_mac_dropped_id
+{
+    BCMOLT_GPON_IWF_MAC_TABLE_MAC_DROPPED_ID__BEGIN                         = 0,
+    BCMOLT_GPON_IWF_MAC_TABLE_MAC_DROPPED_ID_FLOW_ID                        = 0,    /**< flow ID. */
+    BCMOLT_GPON_IWF_MAC_TABLE_MAC_DROPPED_ID__NUM_OF    /**< Number of enum entries, not an entry itself. */
+} bcmolt_gpon_iwf_mac_table_mac_dropped_id;
+
+/** Identifiers for all properties contained in the gpon_iwf_mac_table_mac_move 
+ * group. 
+ */
+typedef enum bcmolt_gpon_iwf_mac_table_mac_move_id
+{
+    BCMOLT_GPON_IWF_MAC_TABLE_MAC_MOVE_ID__BEGIN                            = 0,
+    BCMOLT_GPON_IWF_MAC_TABLE_MAC_MOVE_ID_OLD_FLOW_ID                       = 0,    /**< old flow ID. */
+    BCMOLT_GPON_IWF_MAC_TABLE_MAC_MOVE_ID_NEW_FLOW_ID                       = 1,    /**< new flow id. */
+    BCMOLT_GPON_IWF_MAC_TABLE_MAC_MOVE_ID__NUM_OF   /**< Number of enum entries, not an entry itself. */
+} bcmolt_gpon_iwf_mac_table_mac_move_id;
+
+/** Identifiers for all properties contained in the gpon_iwf_mac_table_new_mac 
+ * group. 
+ */
+typedef enum bcmolt_gpon_iwf_mac_table_new_mac_id
+{
+    BCMOLT_GPON_IWF_MAC_TABLE_NEW_MAC_ID__BEGIN                             = 0,
+    BCMOLT_GPON_IWF_MAC_TABLE_NEW_MAC_ID_FLOW_ID                            = 0,    /**< flow ID. */
+    BCMOLT_GPON_IWF_MAC_TABLE_NEW_MAC_ID__NUM_OF    /**< Number of enum entries, not an entry itself. */
+} bcmolt_gpon_iwf_mac_table_new_mac_id;
+
+/** Identifiers for all properties contained in the 
+ * gpon_iwf_scan_mac_table_completed group. 
+ */
+typedef enum bcmolt_gpon_iwf_scan_mac_table_completed_id
+{
+    BCMOLT_GPON_IWF_SCAN_MAC_TABLE_COMPLETED_ID__BEGIN                      = 0,
+    BCMOLT_GPON_IWF_SCAN_MAC_TABLE_COMPLETED_ID_MAC_ADDRESS                 = 0,    /**< MAC Address. */
+    BCMOLT_GPON_IWF_SCAN_MAC_TABLE_COMPLETED_ID_ENTRIES                     = 1,    /**< Entries. */
+    BCMOLT_GPON_IWF_SCAN_MAC_TABLE_COMPLETED_ID__NUM_OF /**< Number of enum entries, not an entry itself. */
+} bcmolt_gpon_iwf_scan_mac_table_completed_id;
+
+/** Identifiers for all properties contained in the gpon_iwf_scan_mac_table 
+ * group. 
+ */
+typedef enum bcmolt_gpon_iwf_scan_mac_table_id
+{
+    BCMOLT_GPON_IWF_SCAN_MAC_TABLE_ID__BEGIN                                = 0,
+    BCMOLT_GPON_IWF_SCAN_MAC_TABLE_ID_MAC_ADDRESS                           = 0,    /**< MAC Address. */
+    BCMOLT_GPON_IWF_SCAN_MAC_TABLE_ID__NUM_OF   /**< Number of enum entries, not an entry itself. */
+} bcmolt_gpon_iwf_scan_mac_table_id;
+
+/** Identifiers for all properties contained in the gpon_iwf_stat_alarm_cleared 
+ * group. 
+ */
+typedef enum bcmolt_gpon_iwf_stat_alarm_cleared_id
+{
+    BCMOLT_GPON_IWF_STAT_ALARM_CLEARED_ID__BEGIN                            = 0,
+    BCMOLT_GPON_IWF_STAT_ALARM_CLEARED_ID_STAT                              = 0,    /**< Statistic ID. */
+    BCMOLT_GPON_IWF_STAT_ALARM_CLEARED_ID__NUM_OF   /**< Number of enum entries, not an entry itself. */
+} bcmolt_gpon_iwf_stat_alarm_cleared_id;
+
+/** Identifiers for all properties contained in the gpon_iwf_stat_alarm_raised 
+ * group. 
+ */
+typedef enum bcmolt_gpon_iwf_stat_alarm_raised_id
+{
+    BCMOLT_GPON_IWF_STAT_ALARM_RAISED_ID__BEGIN                             = 0,
+    BCMOLT_GPON_IWF_STAT_ALARM_RAISED_ID_STAT                               = 0,    /**< Statistic ID. */
+    BCMOLT_GPON_IWF_STAT_ALARM_RAISED_ID__NUM_OF    /**< Number of enum entries, not an entry itself. */
+} bcmolt_gpon_iwf_stat_alarm_raised_id;
+
+/** Identifiers for all properties contained in the gpon_iwf_stat_cfg group. 
+ */
+typedef enum bcmolt_gpon_iwf_stat_cfg_id
+{
+    BCMOLT_GPON_IWF_STAT_CFG_ID__BEGIN                                      = 0,
+    BCMOLT_GPON_IWF_STAT_CFG_ID_CFG                                         = 0,    /**< Configuration. */
+    BCMOLT_GPON_IWF_STAT_CFG_ID__NUM_OF /**< Number of enum entries, not an entry itself. */
+} bcmolt_gpon_iwf_stat_cfg_id;
+
+/** Identifiers for all properties contained in the gpon_iwf_stat group. 
+ */
+typedef enum bcmolt_gpon_iwf_stat_id
+{
+    BCMOLT_GPON_IWF_STAT_ID__BEGIN                                          = 0,
+    BCMOLT_GPON_IWF_STAT_ID_DS_HIT_EVENT                                    = 0,    /**< DS hit event. */
+    BCMOLT_GPON_IWF_STAT_ID_DS_MISS_EVENT                                   = 1,    /**< DS miss event. */
+    BCMOLT_GPON_IWF_STAT_ID_DS_DROP_DUE_TO_MISS_EVENT                       = 2,    /**< DS drop due to miss event. */
+    BCMOLT_GPON_IWF_STAT_ID_DS_DROP_DUE_TO_HIT_EVENT                        = 3,    /**< DS drop due to hit event. */
+    BCMOLT_GPON_IWF_STAT_ID_DS_DROP_TO_DISABLED_GEM                         = 4,    /**< DS drop to disabled GEM. */
+    BCMOLT_GPON_IWF_STAT_ID_NEW_MAC_DISCOVERED                              = 5,    /**< New MAC discovered. */
+    BCMOLT_GPON_IWF_STAT_ID_MOVE_EVENT                                      = 6,    /**< Move event. */
+    BCMOLT_GPON_IWF_STAT_ID_NEW_MAC_DROP_DUE_TO_FIFO_FULL                   = 7,    /**< New MAC drop due to fifo full. */
+    BCMOLT_GPON_IWF_STAT_ID__NUM_OF /**< Number of enum entries, not an entry itself. */
+} bcmolt_gpon_iwf_stat_id;
+
+/** Identifiers for all properties contained in the gpon_iwf_us_flow_cfg group. 
+ */
+typedef enum bcmolt_gpon_iwf_us_flow_cfg_id
+{
+    BCMOLT_GPON_IWF_US_FLOW_CFG_ID__BEGIN                                   = 0,
+    BCMOLT_GPON_IWF_US_FLOW_CFG_ID_FLOW_ID                                  = 0,    /**< Flow ID. */
+    BCMOLT_GPON_IWF_US_FLOW_CFG_ID_MAC_LEARNING                             = 1,    /**< MAC learning. */
+    BCMOLT_GPON_IWF_US_FLOW_CFG_ID_VLAN_ACTION                              = 2,    /**< VLAN action. */
+    BCMOLT_GPON_IWF_US_FLOW_CFG_ID_VLAN_TAG                                 = 3,    /**< Vlan tag. */
+    BCMOLT_GPON_IWF_US_FLOW_CFG_ID_TPID_INDEX                               = 4,    /**< TPID index. */
+    BCMOLT_GPON_IWF_US_FLOW_CFG_ID__NUM_OF  /**< Number of enum entries, not an entry itself. */
+} bcmolt_gpon_iwf_us_flow_cfg_id;
+
+/** Identifiers for all properties contained in the gpon_iwf_us_flow_key group. 
+ */
+typedef enum bcmolt_gpon_iwf_us_flow_key_id
+{
+    BCMOLT_GPON_IWF_US_FLOW_KEY_ID__BEGIN                                   = 0,
+    BCMOLT_GPON_IWF_US_FLOW_KEY_ID_PON_NI                                   = 0,    /**< PON network interface. */
+    BCMOLT_GPON_IWF_US_FLOW_KEY_ID_GEM_PORT_ID                              = 1,    /**< GEM Port  ID. */
+    BCMOLT_GPON_IWF_US_FLOW_KEY_ID__NUM_OF                  /**< Number of enum entries, not an entry itself. */
+} bcmolt_gpon_iwf_us_flow_key_id;
+
+/** Identifiers for all properties contained in the 
+ * gpon_ni_activate_all_onus_completed group. 
+ */
+typedef enum bcmolt_gpon_ni_activate_all_onus_completed_id
+{
+    BCMOLT_GPON_NI_ACTIVATE_ALL_ONUS_COMPLETED_ID__NUM_OF   /**< Number of enum entries, not an entry itself. */
+} bcmolt_gpon_ni_activate_all_onus_completed_id;
+
+/** Identifiers for all properties contained in the gpon_ni_auto_cfg group. 
+ */
+typedef enum bcmolt_gpon_ni_auto_cfg_id
+{
+    BCMOLT_GPON_NI_AUTO_CFG_ID__BEGIN                                       = 0,
+    BCMOLT_GPON_NI_AUTO_CFG_ID_ACTIVATE_ALL_ONUS_COMPLETED                  = 0,    /**< activate all onus completed. */
+    BCMOLT_GPON_NI_AUTO_CFG_ID_CPU_PACKETS_FAILURE                          = 1,    /**< CPU Packets Failure. */
+    BCMOLT_GPON_NI_AUTO_CFG_ID_DEACTIVATE_ALL_ONUS_COMPLETED                = 2,    /**< deactivate all onus completed. */
+    BCMOLT_GPON_NI_AUTO_CFG_ID_DISABLE_ALL_ONUS_COMPLETED                   = 3,    /**< disable all onus completed. */
+    BCMOLT_GPON_NI_AUTO_CFG_ID_ENABLE_ALL_ONUS_COMPLETED                    = 4,    /**< enable all onus completed. */
+    BCMOLT_GPON_NI_AUTO_CFG_ID_LOS                                          = 5,    /**< LOS. */
+    BCMOLT_GPON_NI_AUTO_CFG_ID_ONU_DISCOVERED                               = 6,    /**< ONU Discovered. */
+    BCMOLT_GPON_NI_AUTO_CFG_ID_ONU_UPGRADE_COMPLETE                         = 7,    /**< ONU Upgrade Complete. */
+    BCMOLT_GPON_NI_AUTO_CFG_ID_PROTECTION_SWITCHING_ONUS_RANGED             = 8,    /**< Protection Switching ONUs Ranged. */
+    BCMOLT_GPON_NI_AUTO_CFG_ID_PROTECTION_SWITCHING_SWITCHOVER_COMPLETED    = 9,    /**< Protection Switching Switchover Completed. */
+    BCMOLT_GPON_NI_AUTO_CFG_ID_PROTECTION_SWITCHING_TRAFFIC_RESUME          = 10,   /**< Protection Switching Traffic Resume. */
+    BCMOLT_GPON_NI_AUTO_CFG_ID_ROGUE_DETECTION_COMPLETED                    = 11,   /**< Rogue detection completed. */
+    BCMOLT_GPON_NI_AUTO_CFG_ID_ROGUE_ONU_SPECIAL_MAP_CYCLE_START            = 12,   /**< Rogue ONU special map cycle start. */
+    BCMOLT_GPON_NI_AUTO_CFG_ID_SERIAL_NUMBER_ACQUISITION_CYCLE_START        = 13,   /**< Serial Number Acquisition Cycle Start. */
+    BCMOLT_GPON_NI_AUTO_CFG_ID_STANDBY_PON_MONITORING_CYCLE_COMPLETED       = 14,   /**< Standby PON Monitoring Cycle Completed. */
+    BCMOLT_GPON_NI_AUTO_CFG_ID_STAT_ALARM_CLEARED                           = 15,   /**< Stat Alarm Cleared. */
+    BCMOLT_GPON_NI_AUTO_CFG_ID_STAT_ALARM_RAISED                            = 16,   /**< Stat Alarm Raised. */
+    BCMOLT_GPON_NI_AUTO_CFG_ID_STATE_CHANGE_COMPLETED                       = 17,   /**< State Change Completed. */
+    BCMOLT_GPON_NI_AUTO_CFG_ID_TOD_REQUEST_COMPLETED                        = 18,   /**< TOD request completed. */
+    BCMOLT_GPON_NI_AUTO_CFG_ID__NUM_OF  /**< Number of enum entries, not an entry itself. */
+} bcmolt_gpon_ni_auto_cfg_id;
+
+/** Identifiers for all properties contained in the 
+ * gpon_ni_broadcast_ploam_packet group. 
+ */
+typedef enum bcmolt_gpon_ni_broadcast_ploam_packet_id
+{
+    BCMOLT_GPON_NI_BROADCAST_PLOAM_PACKET_ID__BEGIN                         = 0,
+    BCMOLT_GPON_NI_BROADCAST_PLOAM_PACKET_ID_PLOAM                          = 0,    /**< ploam. */
+    BCMOLT_GPON_NI_BROADCAST_PLOAM_PACKET_ID__NUM_OF    /**< Number of enum entries, not an entry itself. */
+} bcmolt_gpon_ni_broadcast_ploam_packet_id;
+
+/** Identifiers for all properties contained in the gpon_ni_cfg group. 
+ */
+typedef enum bcmolt_gpon_ni_cfg_id
+{
+    BCMOLT_GPON_NI_CFG_ID__BEGIN                                            = 0,
+    BCMOLT_GPON_NI_CFG_ID_PON_STATUS                                        = 0,    /**< PON status. */
+    BCMOLT_GPON_NI_CFG_ID_AVAILABLE_BANDWIDTH                               = 1,    /**< Available Bandwidth. */
+    BCMOLT_GPON_NI_CFG_ID_NUMBER_OF_ACTIVE_ONUS                             = 2,    /**< number of active onus. */
+    BCMOLT_GPON_NI_CFG_ID_NUMBER_OF_ACTIVE_STANDBY_ONUS                     = 3,    /**< number of active standby onus. */
+    BCMOLT_GPON_NI_CFG_ID_PRBS_STATUS                                       = 4,    /**< PRBS status. */
+    BCMOLT_GPON_NI_CFG_ID_PON_DISTANCE                                      = 5,    /**< Pon distance. */
+    BCMOLT_GPON_NI_CFG_ID_RANGING_WINDOW_SIZE                               = 6,    /**< Ranging window size. */
+    BCMOLT_GPON_NI_CFG_ID_PREASSIGNED_EQUALIZATION_DELAY                    = 7,    /**< Pre-assigned Equalization Delay [bits]. */
+    BCMOLT_GPON_NI_CFG_ID_EQD_CYCLES_NUMBER                                 = 8,    /**< EqD measurement cycles number. */
+    BCMOLT_GPON_NI_CFG_ID_POWER_LEVEL                                       = 9,    /**< Power level. */
+    BCMOLT_GPON_NI_CFG_ID_DS_FEC_MODE                                       = 10,   /**< DS FEC mode. */
+    BCMOLT_GPON_NI_CFG_ID_DRIFT_CONTROL                                     = 11,   /**< Drift control. */
+    BCMOLT_GPON_NI_CFG_ID_DS_BER_REPORTING_INTERVAL                         = 12,   /**< DS BER reporting interval in ms. */
+    BCMOLT_GPON_NI_CFG_ID_LOS_ALARM_THRESHOLD                               = 13,   /**< LOS alarm threshold. */
+    BCMOLT_GPON_NI_CFG_ID_LOS_INITIAL_VALUE                                 = 14,   /**< LOS initial value. */
+    BCMOLT_GPON_NI_CFG_ID_ONU_ALARMS_THRESHOLDS                             = 15,   /**< ONU alarms thresholds. */
+    BCMOLT_GPON_NI_CFG_ID_BER_MONITOR                                       = 16,   /**< BER monitoring params. */
+    BCMOLT_GPON_NI_CFG_ID_PLOAM_ACK_TIMEOUT                                 = 17,   /**< Ploam ACK timeout. */
+    BCMOLT_GPON_NI_CFG_ID_ONU_ACTIVATION                                    = 18,   /**< ONU activation. */
+    BCMOLT_GPON_NI_CFG_ID_SN_ACQUISITION                                    = 19,   /**< SN Acquisition . */
+    BCMOLT_GPON_NI_CFG_ID_KEY_EXCHANGE                                      = 20,   /**< Key exchange. */
+    BCMOLT_GPON_NI_CFG_ID_PROTECTION_SWITCHING                              = 21,   /**< Protection switching. */
+    BCMOLT_GPON_NI_CFG_ID_CBR_RT_ALLOCATION_PROFILE                         = 22,   /**< CBR RT Allocation profile. */
+    BCMOLT_GPON_NI_CFG_ID_CBR_NRT_ALLOCATION_PROFILE                        = 23,   /**< CBR NRT Allocation Profile. */
+    BCMOLT_GPON_NI_CFG_ID_DBA                                               = 24,   /**< DBA. */
+    BCMOLT_GPON_NI_CFG_ID_POWER_MANAGEMENT                                  = 25,   /**< Power Management. */
+    BCMOLT_GPON_NI_CFG_ID_ROGUE_ONU_DETECTION_PROCESS                       = 26,   /**< Rogue ONU detection process. */
+    BCMOLT_GPON_NI_CFG_ID_PERIODIC_STANDBY_PON_MONITORING                   = 27,   /**< Periodic Standby PON monitoring. */
+    BCMOLT_GPON_NI_CFG_ID_PRBS_CHECKER                                      = 28,   /**< PRBS Checker. */
+    BCMOLT_GPON_NI_CFG_ID_PRBS_GENERATOR                                    = 29,   /**< PRBS Generator. */
+    BCMOLT_GPON_NI_CFG_ID_MIN_DATA_ALLOC_ID                                 = 30,   /**< Minimum Data Alloc ID. */
+    BCMOLT_GPON_NI_CFG_ID_AUTOMATIC_ONU_DEACTIVATION                        = 31,   /**< Automatic ONU deactivation. */
+    BCMOLT_GPON_NI_CFG_ID_US_BANDWIDTH_LIMIT                                = 32,   /**< US bandwidth Limit. */
+    BCMOLT_GPON_NI_CFG_ID_ALL_ONUS                                          = 33,   /**< all ONUs. */
+    BCMOLT_GPON_NI_CFG_ID_ALL_MCAST_GEM_PORTS                               = 34,   /**< all multicast GEM ports. */
+    BCMOLT_GPON_NI_CFG_ID_DEBUG                                             = 35,   /**< PON NI debug parameters. */
+    BCMOLT_GPON_NI_CFG_ID_ONU_UPGRADE_PARAMS                                = 36,   /**< ONU upgrade params. */
+    BCMOLT_GPON_NI_CFG_ID_PS_C_WAIT_BEFORE_DEACTIVATION_TIMEOUT             = 37,   /**< protection switching type c wait before deactivation timeout. */
+    BCMOLT_GPON_NI_CFG_ID_BIP32_INDICATION_CONTROL                          = 38,   /**< bip32 indication control. */
+    BCMOLT_GPON_NI_CFG_ID__NUM_OF   /**< Number of enum entries, not an entry itself. */
+} bcmolt_gpon_ni_cfg_id;
+
+/** Identifiers for all properties contained in the gpon_ni_cpu_packets_failure 
+ * group. 
+ */
+typedef enum bcmolt_gpon_ni_cpu_packets_failure_id
+{
+    BCMOLT_GPON_NI_CPU_PACKETS_FAILURE_ID__BEGIN                            = 0,
+    BCMOLT_GPON_NI_CPU_PACKETS_FAILURE_ID_ERROR                             = 0,    /**< Error. */
+    BCMOLT_GPON_NI_CPU_PACKETS_FAILURE_ID_GEM_PORT_ID                       = 1,    /**< GEM Port ID. */
+    BCMOLT_GPON_NI_CPU_PACKETS_FAILURE_ID__NUM_OF   /**< Number of enum entries, not an entry itself. */
+} bcmolt_gpon_ni_cpu_packets_failure_id;
+
+/** Identifiers for all properties contained in the gpon_ni_cpu_packets group. 
+ */
+typedef enum bcmolt_gpon_ni_cpu_packets_id
+{
+    BCMOLT_GPON_NI_CPU_PACKETS_ID__BEGIN                                    = 0,
+    BCMOLT_GPON_NI_CPU_PACKETS_ID_PACKET_TYPE                               = 0,    /**< packet type. */
+    BCMOLT_GPON_NI_CPU_PACKETS_ID_CALC_CRC                                  = 1,    /**< calc crc. */
+    BCMOLT_GPON_NI_CPU_PACKETS_ID_GEM_PORT_LIST                             = 2,    /**< gem port list. */
+    BCMOLT_GPON_NI_CPU_PACKETS_ID_BUFFER                                    = 3,    /**< buffer. */
+    BCMOLT_GPON_NI_CPU_PACKETS_ID__NUM_OF                   /**< Number of enum entries, not an entry itself. */
+} bcmolt_gpon_ni_cpu_packets_id;
+
+/** Identifiers for all properties contained in the 
+ * gpon_ni_deactivate_all_onus_completed group. 
+ */
+typedef enum bcmolt_gpon_ni_deactivate_all_onus_completed_id
+{
+    BCMOLT_GPON_NI_DEACTIVATE_ALL_ONUS_COMPLETED_ID__NUM_OF /**< Number of enum entries, not an entry itself. */
+} bcmolt_gpon_ni_deactivate_all_onus_completed_id;
+
+/** Identifiers for all properties contained in the 
+ * gpon_ni_disable_all_onus_completed group. 
+ */
+typedef enum bcmolt_gpon_ni_disable_all_onus_completed_id
+{
+    BCMOLT_GPON_NI_DISABLE_ALL_ONUS_COMPLETED_ID__NUM_OF    /**< Number of enum entries, not an entry itself. */
+} bcmolt_gpon_ni_disable_all_onus_completed_id;
+
+/** Identifiers for all properties contained in the 
+ * gpon_ni_disable_serial_number group. 
+ */
+typedef enum bcmolt_gpon_ni_disable_serial_number_id
+{
+    BCMOLT_GPON_NI_DISABLE_SERIAL_NUMBER_ID__BEGIN                          = 0,
+    BCMOLT_GPON_NI_DISABLE_SERIAL_NUMBER_ID_CONTROL                         = 0,    /**< control. */
+    BCMOLT_GPON_NI_DISABLE_SERIAL_NUMBER_ID_SERIAL_NUMBER                   = 1,    /**< serial number. */
+    BCMOLT_GPON_NI_DISABLE_SERIAL_NUMBER_ID__NUM_OF     /**< Number of enum entries, not an entry itself. */
+} bcmolt_gpon_ni_disable_serial_number_id;
+
+/** Identifiers for all properties contained in the 
+ * gpon_ni_enable_all_onus_completed group. 
+ */
+typedef enum bcmolt_gpon_ni_enable_all_onus_completed_id
+{
+    BCMOLT_GPON_NI_ENABLE_ALL_ONUS_COMPLETED_ID__NUM_OF /**< Number of enum entries, not an entry itself. */
+} bcmolt_gpon_ni_enable_all_onus_completed_id;
+
+/** Identifiers for all properties contained in the gpon_ni_key group. 
+ */
+typedef enum bcmolt_gpon_ni_key_id
+{
+    BCMOLT_GPON_NI_KEY_ID__BEGIN                                            = 0,
+    BCMOLT_GPON_NI_KEY_ID_PON_NI                                            = 0,    /**< PON network interface. */
+    BCMOLT_GPON_NI_KEY_ID__NUM_OF   /**< Number of enum entries, not an entry itself. */
+} bcmolt_gpon_ni_key_id;
+
+/** Identifiers for all properties contained in the gpon_ni_los group. 
+ */
+typedef enum bcmolt_gpon_ni_los_id
+{
+    BCMOLT_GPON_NI_LOS_ID__BEGIN                                            = 0,
+    BCMOLT_GPON_NI_LOS_ID_STATUS                                            = 0,    /**< status. */
+    BCMOLT_GPON_NI_LOS_ID__NUM_OF   /**< Number of enum entries, not an entry itself. */
+} bcmolt_gpon_ni_los_id;
+
+/** Identifiers for all properties contained in the gpon_ni_onu_discovered 
+ * group. 
+ */
+typedef enum bcmolt_gpon_ni_onu_discovered_id
+{
+    BCMOLT_GPON_NI_ONU_DISCOVERED_ID__BEGIN                                 = 0,
+    BCMOLT_GPON_NI_ONU_DISCOVERED_ID_SERIAL_NUMBER                          = 0,    /**< serial number. */
+    BCMOLT_GPON_NI_ONU_DISCOVERED_ID_RANGING_TIME                           = 1,    /**< ranging time. */
+    BCMOLT_GPON_NI_ONU_DISCOVERED_ID_ONU_ID                                 = 2,    /**< onu_id. */
+    BCMOLT_GPON_NI_ONU_DISCOVERED_ID__NUM_OF    /**< Number of enum entries, not an entry itself. */
+} bcmolt_gpon_ni_onu_discovered_id;
+
+/** Identifiers for all properties contained in the gpon_ni_onu_upgrade_complete 
+ * group. 
+ */
+typedef enum bcmolt_gpon_ni_onu_upgrade_complete_id
+{
+    BCMOLT_GPON_NI_ONU_UPGRADE_COMPLETE_ID__BEGIN                           = 0,
+    BCMOLT_GPON_NI_ONU_UPGRADE_COMPLETE_ID_STATUS                           = 0,    /**< Status. */
+    BCMOLT_GPON_NI_ONU_UPGRADE_COMPLETE_ID_LIST_OF_FAILED_ENTITIES          = 1,    /**< List of failed entities. */
+    BCMOLT_GPON_NI_ONU_UPGRADE_COMPLETE_ID__NUM_OF  /**< Number of enum entries, not an entry itself. */
+} bcmolt_gpon_ni_onu_upgrade_complete_id;
+
+/** Identifiers for all properties contained in the 
+ * gpon_ni_protection_switching_onus_ranged group. 
+ */
+typedef enum bcmolt_gpon_ni_protection_switching_onus_ranged_id
+{
+    BCMOLT_GPON_NI_PROTECTION_SWITCHING_ONUS_RANGED_ID__BEGIN               = 0,
+    BCMOLT_GPON_NI_PROTECTION_SWITCHING_ONUS_RANGED_ID_ONUS                 = 0,            /**< ONUs. */
+    BCMOLT_GPON_NI_PROTECTION_SWITCHING_ONUS_RANGED_ID__NUM_OF                              /**< Number of enum entries, not an entry itself. */
+} bcmolt_gpon_ni_protection_switching_onus_ranged_id;
+
+/** Identifiers for all properties contained in the 
+ * gpon_ni_protection_switching_switchover_completed group. 
+ */
+typedef enum bcmolt_gpon_ni_protection_switching_switchover_completed_id
+{
+    BCMOLT_GPON_NI_PROTECTION_SWITCHING_SWITCHOVER_COMPLETED_ID__BEGIN      = 0,
+    BCMOLT_GPON_NI_PROTECTION_SWITCHING_SWITCHOVER_COMPLETED_ID_RESULT      = 0,            /**< Result. */
+    BCMOLT_GPON_NI_PROTECTION_SWITCHING_SWITCHOVER_COMPLETED_ID__NUM_OF                     /**< Number of enum entries, not an entry itself. */
+} bcmolt_gpon_ni_protection_switching_switchover_completed_id;
+
+/** Identifiers for all properties contained in the 
+ * gpon_ni_protection_switching_traffic_resume group. 
+ */
+typedef enum bcmolt_gpon_ni_protection_switching_traffic_resume_id
+{
+    BCMOLT_GPON_NI_PROTECTION_SWITCHING_TRAFFIC_RESUME_ID__BEGIN            = 0,
+    BCMOLT_GPON_NI_PROTECTION_SWITCHING_TRAFFIC_RESUME_ID_RESULT            = 0,            /**< Result. */
+    BCMOLT_GPON_NI_PROTECTION_SWITCHING_TRAFFIC_RESUME_ID__NUM_OF                           /**< Number of enum entries, not an entry itself. */
+} bcmolt_gpon_ni_protection_switching_traffic_resume_id;
+
+/** Identifiers for all properties contained in the 
+ * gpon_ni_protection_switching_type_c_set_multiple_onu_state group. 
+ */
+typedef enum bcmolt_gpon_ni_protection_switching_type_c_set_multiple_onu_state_id
+{
+    BCMOLT_GPON_NI_PROTECTION_SWITCHING_TYPE_C_SET_MULTIPLE_ONU_STATE_ID__BEGIN     = 0,
+    BCMOLT_GPON_NI_PROTECTION_SWITCHING_TYPE_C_SET_MULTIPLE_ONU_STATE_ID_ONU_STATE  = 0,    /**< onu state. */
+    BCMOLT_GPON_NI_PROTECTION_SWITCHING_TYPE_C_SET_MULTIPLE_ONU_STATE_ID_ONU_LIST   = 1,    /**< onu list. */
+    BCMOLT_GPON_NI_PROTECTION_SWITCHING_TYPE_C_SET_MULTIPLE_ONU_STATE_ID__NUM_OF            /**< Number of enum entries, not an entry itself. */
+} bcmolt_gpon_ni_protection_switching_type_c_set_multiple_onu_state_id;
+
+/** Identifiers for all properties contained in the gpon_ni_reset group. 
+ */
+typedef enum bcmolt_gpon_ni_reset_id
+{
+    BCMOLT_GPON_NI_RESET_ID__NUM_OF /**< Number of enum entries, not an entry itself. */
+} bcmolt_gpon_ni_reset_id;
+
+/** Identifiers for all properties contained in the 
+ * gpon_ni_rogue_detection_completed group. 
+ */
+typedef enum bcmolt_gpon_ni_rogue_detection_completed_id
+{
+    BCMOLT_GPON_NI_ROGUE_DETECTION_COMPLETED_ID__BEGIN                              = 0,
+    BCMOLT_GPON_NI_ROGUE_DETECTION_COMPLETED_ID_WINDOW_TYPE                         = 0,    /**< Window type. */
+    BCMOLT_GPON_NI_ROGUE_DETECTION_COMPLETED_ID_MEASUREMENT_STATUS                  = 1,    /**< Measurement status. */
+    BCMOLT_GPON_NI_ROGUE_DETECTION_COMPLETED_ID_ALLOC_ID                            = 2,    /**< Alloc ID. */
+    BCMOLT_GPON_NI_ROGUE_DETECTION_COMPLETED_ID_ONU_ID                              = 3,    /**< ONU ID. */
+    BCMOLT_GPON_NI_ROGUE_DETECTION_COMPLETED_ID_IS_DELINEATION                      = 4,    /**< Is delineation. */
+    BCMOLT_GPON_NI_ROGUE_DETECTION_COMPLETED_ID_IS_ED                               = 5,    /**< Is ED. */
+    BCMOLT_GPON_NI_ROGUE_DETECTION_COMPLETED_ID_RX_DATA                             = 6,    /**< Received data. */
+    BCMOLT_GPON_NI_ROGUE_DETECTION_COMPLETED_ID_PLOAM_RECEIVED_ONU_ID               = 7,    /**< ploam_received_onu_id. */
+    BCMOLT_GPON_NI_ROGUE_DETECTION_COMPLETED_ID_PLOAM_RECEIVED_CRC_ERROR            = 8,    /**< ploam_received_crc_error. */
+    BCMOLT_GPON_NI_ROGUE_DETECTION_COMPLETED_ID__NUM_OF /**< Number of enum entries, not an entry itself. */
+} bcmolt_gpon_ni_rogue_detection_completed_id;
+
+/** Identifiers for all properties contained in the 
+ * gpon_ni_rogue_detection_window group. 
+ */
+typedef enum bcmolt_gpon_ni_rogue_detection_window_id
+{
+    BCMOLT_GPON_NI_ROGUE_DETECTION_WINDOW_ID__BEGIN                                 = 0,
+    BCMOLT_GPON_NI_ROGUE_DETECTION_WINDOW_ID_WINDOW_TYPE                            = 0,    /**< Window type. */
+    BCMOLT_GPON_NI_ROGUE_DETECTION_WINDOW_ID_ALLOC_ID                               = 1,    /**< Alloc ID. */
+    BCMOLT_GPON_NI_ROGUE_DETECTION_WINDOW_ID_ONU_ID                                 = 2,    /**< ONU ID. */
+    BCMOLT_GPON_NI_ROGUE_DETECTION_WINDOW_ID_SECOND_RANGING_WINDOW                  = 3,    /**< Second ranging window. */
+    BCMOLT_GPON_NI_ROGUE_DETECTION_WINDOW_ID__NUM_OF                /**< Number of enum entries, not an entry itself. */
+} bcmolt_gpon_ni_rogue_detection_window_id;
+
+/** Identifiers for all properties contained in the 
+ * gpon_ni_rogue_onu_special_map_cycle_start group. 
+ */
+typedef enum bcmolt_gpon_ni_rogue_onu_special_map_cycle_start_id
+{
+    BCMOLT_GPON_NI_ROGUE_ONU_SPECIAL_MAP_CYCLE_START_ID__NUM_OF     /**< Number of enum entries, not an entry itself. */
+} bcmolt_gpon_ni_rogue_onu_special_map_cycle_start_id;
+
+/** Identifiers for all properties contained in the 
+ * gpon_ni_serial_number_acquisition_cycle_start group. 
+ */
+typedef enum bcmolt_gpon_ni_serial_number_acquisition_cycle_start_id
+{
+    BCMOLT_GPON_NI_SERIAL_NUMBER_ACQUISITION_CYCLE_START_ID__NUM_OF /**< Number of enum entries, not an entry itself. */
+} bcmolt_gpon_ni_serial_number_acquisition_cycle_start_id;
+
+/** Identifiers for all properties contained in the gpon_ni_set_onu_state group. 
+ */
+typedef enum bcmolt_gpon_ni_set_onu_state_id
+{
+    BCMOLT_GPON_NI_SET_ONU_STATE_ID__BEGIN                                          = 0,
+    BCMOLT_GPON_NI_SET_ONU_STATE_ID_ONU_STATE                                       = 0,    /**< ONU state. */
+    BCMOLT_GPON_NI_SET_ONU_STATE_ID__NUM_OF /**< Number of enum entries, not an entry itself. */
+} bcmolt_gpon_ni_set_onu_state_id;
+
+/** Identifiers for all properties contained in the gpon_ni_set_pon_state group. 
+ */
+typedef enum bcmolt_gpon_ni_set_pon_state_id
+{
+    BCMOLT_GPON_NI_SET_PON_STATE_ID__BEGIN                                          = 0,
+    BCMOLT_GPON_NI_SET_PON_STATE_ID_PON_STATE                                       = 0,    /**< PON state. */
+    BCMOLT_GPON_NI_SET_PON_STATE_ID__NUM_OF /**< Number of enum entries, not an entry itself. */
+} bcmolt_gpon_ni_set_pon_state_id;
+
+/** Identifiers for all properties contained in the 
+ * gpon_ni_single_request_standby_pon_monitoring group. 
+ */
+typedef enum bcmolt_gpon_ni_single_request_standby_pon_monitoring_id
+{
+    BCMOLT_GPON_NI_SINGLE_REQUEST_STANDBY_PON_MONITORING_ID__NUM_OF /**< Number of enum entries, not an entry itself. */
+} bcmolt_gpon_ni_single_request_standby_pon_monitoring_id;
+
+/** Identifiers for all properties contained in the 
+ * gpon_ni_standby_pon_monitoring_cycle_completed group. 
+ */
+typedef enum bcmolt_gpon_ni_standby_pon_monitoring_cycle_completed_id
+{
+    BCMOLT_GPON_NI_STANDBY_PON_MONITORING_CYCLE_COMPLETED_ID__BEGIN                         = 0,
+    BCMOLT_GPON_NI_STANDBY_PON_MONITORING_CYCLE_COMPLETED_ID_NUMBER_OF_DETECTED_DELIMITER   = 0,    /**< number of detected delimiter. */
+    BCMOLT_GPON_NI_STANDBY_PON_MONITORING_CYCLE_COMPLETED_ID_ENERGY_DETECT_SIGNAL           = 1,    /**< energy detect signal. */
+    BCMOLT_GPON_NI_STANDBY_PON_MONITORING_CYCLE_COMPLETED_ID__NUM_OF    /**< Number of enum entries, not an entry itself. */
+} bcmolt_gpon_ni_standby_pon_monitoring_cycle_completed_id;
+
+/** Identifiers for all properties contained in the gpon_ni_start_onu_upgrade 
+ * group. 
+ */
+typedef enum bcmolt_gpon_ni_start_onu_upgrade_id
+{
+    BCMOLT_GPON_NI_START_ONU_UPGRADE_ID__BEGIN                                              = 0,
+    BCMOLT_GPON_NI_START_ONU_UPGRADE_ID_LIST_OF_ONU_IDS                                     = 0,    /**< List of ONU IDs. */
+    BCMOLT_GPON_NI_START_ONU_UPGRADE_ID__NUM_OF /**< Number of enum entries, not an entry itself. */
+} bcmolt_gpon_ni_start_onu_upgrade_id;
+
+/** Identifiers for all properties contained in the gpon_ni_stat_alarm_cleared 
+ * group. 
+ */
+typedef enum bcmolt_gpon_ni_stat_alarm_cleared_id
+{
+    BCMOLT_GPON_NI_STAT_ALARM_CLEARED_ID__BEGIN                                             = 0,
+    BCMOLT_GPON_NI_STAT_ALARM_CLEARED_ID_STAT                                               = 0,    /**< Statistic ID. */
+    BCMOLT_GPON_NI_STAT_ALARM_CLEARED_ID__NUM_OF    /**< Number of enum entries, not an entry itself. */
+} bcmolt_gpon_ni_stat_alarm_cleared_id;
+
+/** Identifiers for all properties contained in the gpon_ni_stat_alarm_raised 
+ * group. 
+ */
+typedef enum bcmolt_gpon_ni_stat_alarm_raised_id
+{
+    BCMOLT_GPON_NI_STAT_ALARM_RAISED_ID__BEGIN                                              = 0,
+    BCMOLT_GPON_NI_STAT_ALARM_RAISED_ID_STAT                                                = 0,    /**< Statistic ID. */
+    BCMOLT_GPON_NI_STAT_ALARM_RAISED_ID__NUM_OF /**< Number of enum entries, not an entry itself. */
+} bcmolt_gpon_ni_stat_alarm_raised_id;
+
+/** Identifiers for all properties contained in the gpon_ni_stat_cfg group. 
+ */
+typedef enum bcmolt_gpon_ni_stat_cfg_id
+{
+    BCMOLT_GPON_NI_STAT_CFG_ID__BEGIN                                                       = 0,
+    BCMOLT_GPON_NI_STAT_CFG_ID_CFG                                                          = 0,    /**< Configuration. */
+    BCMOLT_GPON_NI_STAT_CFG_ID__NUM_OF  /**< Number of enum entries, not an entry itself. */
+} bcmolt_gpon_ni_stat_cfg_id;
+
+/** Identifiers for all properties contained in the gpon_ni_stat group. 
+ */
+typedef enum bcmolt_gpon_ni_stat_id
+{
+    BCMOLT_GPON_NI_STAT_ID__BEGIN                                                           = 0,
+    BCMOLT_GPON_NI_STAT_ID_FEC_CODEWORDS                                                    = 0,    /**< Received FEC codewords. */
+    BCMOLT_GPON_NI_STAT_ID_FEC_CODEWORDS_UNCORRECTED                                        = 1,    /**< Received uncorrected FEC codewords. */
+    BCMOLT_GPON_NI_STAT_ID_BIP8_BYTES                                                       = 2,    /**< Received bytes protected by bip8. */
+    BCMOLT_GPON_NI_STAT_ID_BIP8_ERRORS                                                      = 3,    /**< Received bip8 errors. */
+    BCMOLT_GPON_NI_STAT_ID_RX_GEM_PACKETS                                                   = 4,    /**< Received GEM frames. */
+    BCMOLT_GPON_NI_STAT_ID_RX_GEM_DROPPED                                                   = 5,    /**< Received dropped GEM ID packets. */
+    BCMOLT_GPON_NI_STAT_ID_RX_GEM_IDLE                                                      = 6,    /**< Received idle GEM frames. */
+    BCMOLT_GPON_NI_STAT_ID_RX_GEM_CORRECTED                                                 = 7,    /**< Received corrected GEM frames. */
+    BCMOLT_GPON_NI_STAT_ID_RX_GEM_ILLEGAL                                                   = 8,    /**< Received illegal GEM frames. */
+    BCMOLT_GPON_NI_STAT_ID_RX_ALLOCATIONS_VALID                                             = 9,    /**< Received valid allocations. */
+    BCMOLT_GPON_NI_STAT_ID_RX_ALLOCATIONS_INVALID                                           = 10,   /**< Received invalid allocations. */
+    BCMOLT_GPON_NI_STAT_ID_RX_ALLOCATIONS_DISABLED                                          = 11,   /**< Received disabled allocations. */
+    BCMOLT_GPON_NI_STAT_ID_RX_PLOAMS                                                        = 12,   /**< Received Ploams. */
+    BCMOLT_GPON_NI_STAT_ID_RX_PLOAMS_NON_IDLE                                               = 13,   /**< Received non idle Ploams. */
+    BCMOLT_GPON_NI_STAT_ID_RX_PLOAMS_ERROR                                                  = 14,   /**< Received error Ploams. */
+    BCMOLT_GPON_NI_STAT_ID_RX_PLOAMS_DROPPED                                                = 15,   /**< Received dropped Ploams. */
+    BCMOLT_GPON_NI_STAT_ID_RX_CPU                                                           = 16,   /**< Received CPU packets. */
+    BCMOLT_GPON_NI_STAT_ID_RX_OMCI                                                          = 17,   /**< Received OMCI packets. */
+    BCMOLT_GPON_NI_STAT_ID_RX_OMCI_PACKETS_CRC_ERROR                                        = 18,   /**< Received OMCI packets with CRC errors. */
+    BCMOLT_GPON_NI_STAT_ID_RX_DROPPED_TOO_SHORT                                             = 19,   /**< Received packets dropped due to length too short. */
+    BCMOLT_GPON_NI_STAT_ID_RX_DROPPED_TOO_LONG                                              = 20,   /**< Received packet dropped due to length too long. */
+    BCMOLT_GPON_NI_STAT_ID_RX_CRC_ERRORS                                                    = 21,   /**< Received packet dropped due to crc error. */
+    BCMOLT_GPON_NI_STAT_ID_RX_KEY_ERRORS                                                    = 22,   /**< Received packet dropped due to key error. */
+    BCMOLT_GPON_NI_STAT_ID_RX_FRAGMENTS_ERRORS                                              = 23,   /**< Received packet dropped due to fragmentation error. */
+    BCMOLT_GPON_NI_STAT_ID_RX_PACKETS_DROPPED                                               = 24,   /**< Global dropped packets. */
+    BCMOLT_GPON_NI_STAT_ID_TX_GEM                                                           = 25,   /**< Transmitted GEM frames. */
+    BCMOLT_GPON_NI_STAT_ID_TX_PLOAMS                                                        = 26,   /**< Transmitted Ploams. */
+    BCMOLT_GPON_NI_STAT_ID_TX_GEM_FRAGMENTS                                                 = 27,   /**< Transmitted GEM fragments. */
+    BCMOLT_GPON_NI_STAT_ID_TX_CPU                                                           = 28,   /**< Transmitted CPU packets. */
+    BCMOLT_GPON_NI_STAT_ID_TX_OMCI                                                          = 29,   /**< Transmitted OMCI packets. */
+    BCMOLT_GPON_NI_STAT_ID_TX_CPU_OMCI_PACKETS_DROPPED                                      = 30,   /**< Transmit packets dropped due to illegal length. */
+    BCMOLT_GPON_NI_STAT_ID_TX_DROPPED_ILLEGAL_LENGTH                                        = 31,   /**< Transmitted packet dropped due to illegal length. */
+    BCMOLT_GPON_NI_STAT_ID_TX_DROPPED_TPID_MISS                                             = 32,   /**< Dropped because of TPID miss. */
+    BCMOLT_GPON_NI_STAT_ID_TX_DROPPED_VID_MISS                                              = 33,   /**< Dropped because of VID miss. */
+    BCMOLT_GPON_NI_STAT_ID__NUM_OF  /**< Number of enum entries, not an entry itself. */
+} bcmolt_gpon_ni_stat_id;
+
+/** Identifiers for all properties contained in the 
+ * gpon_ni_state_change_completed group. 
+ */
+typedef enum bcmolt_gpon_ni_state_change_completed_id
+{
+    BCMOLT_GPON_NI_STATE_CHANGE_COMPLETED_ID__BEGIN                                         = 0,
+    BCMOLT_GPON_NI_STATE_CHANGE_COMPLETED_ID_RESULT                                         = 0,    /**< Result. */
+    BCMOLT_GPON_NI_STATE_CHANGE_COMPLETED_ID_PREVIOUS_STATE                                 = 1,    /**< Previous state. */
+    BCMOLT_GPON_NI_STATE_CHANGE_COMPLETED_ID_NEW_STATE                                      = 2,    /**< New state. */
+    BCMOLT_GPON_NI_STATE_CHANGE_COMPLETED_ID__NUM_OF    /**< Number of enum entries, not an entry itself. */
+} bcmolt_gpon_ni_state_change_completed_id;
+
+/** Identifiers for all properties contained in the 
+ * gpon_ni_tod_request_completed group. 
+ */
+typedef enum bcmolt_gpon_ni_tod_request_completed_id
+{
+    BCMOLT_GPON_NI_TOD_REQUEST_COMPLETED_ID__BEGIN                                          = 0,
+    BCMOLT_GPON_NI_TOD_REQUEST_COMPLETED_ID_TOD_STRING                                      = 0,    /**< tod_string. */
+    BCMOLT_GPON_NI_TOD_REQUEST_COMPLETED_ID_SFC                                             = 1,    /**< sfc. */
+    BCMOLT_GPON_NI_TOD_REQUEST_COMPLETED_ID_RTC_OFFSET_SEC                                  = 2,    /**< rtc_offset_sec. */
+    BCMOLT_GPON_NI_TOD_REQUEST_COMPLETED_ID_RTC_OFFSET_NSEC                                 = 3,    /**< rtc_offset_nsec. */
+    BCMOLT_GPON_NI_TOD_REQUEST_COMPLETED_ID_STATUS                                          = 4,    /**< status. */
+    BCMOLT_GPON_NI_TOD_REQUEST_COMPLETED_ID__NUM_OF /**< Number of enum entries, not an entry itself. */
+} bcmolt_gpon_ni_tod_request_completed_id;
+
+/** Identifiers for all properties contained in the gpon_ni_tod_request group. 
+ */
+typedef enum bcmolt_gpon_ni_tod_request_id
+{
+    BCMOLT_GPON_NI_TOD_REQUEST_ID__NUM_OF           /**< Number of enum entries, not an entry itself. */
+} bcmolt_gpon_ni_tod_request_id;
+
+/** Identifiers for all properties contained in the gpon_onu_auto_cfg group. 
+ */
+typedef enum bcmolt_gpon_onu_auto_cfg_id
+{
+    BCMOLT_GPON_ONU_AUTO_CFG_ID__BEGIN                                                      = 0,
+    BCMOLT_GPON_ONU_AUTO_CFG_ID_BER_INTERVAL_CONFIGURATION_COMPLETED                        = 0,    /**< BER Interval Configuration Completed. */
+    BCMOLT_GPON_ONU_AUTO_CFG_ID_DFI                                                         = 1,    /**< Receive Dying-Gasp of ONUi. */
+    BCMOLT_GPON_ONU_AUTO_CFG_ID_DGI                                                         = 2,    /**< Receive Dying-Gasp of ONUi. */
+    BCMOLT_GPON_ONU_AUTO_CFG_ID_DOWI                                                        = 3,    /**< Drift of Window of ONUi. */
+    BCMOLT_GPON_ONU_AUTO_CFG_ID_ERR                                                         = 4,    /**< ERR. */
+    BCMOLT_GPON_ONU_AUTO_CFG_ID_INVALID_DBRU_REPORT                                         = 5,    /**< Invalid DBRu Report. */
+    BCMOLT_GPON_ONU_AUTO_CFG_ID_KEY_EXCHANGE_COMPLETED                                      = 6,    /**< Key Exchange Completed. */
+    BCMOLT_GPON_ONU_AUTO_CFG_ID_KEY_EXCHANGE_CYCLE_SKIPPED                                  = 7,    /**< Key Exchange Cycle Skipped. */
+    BCMOLT_GPON_ONU_AUTO_CFG_ID_KEY_EXCHANGE_DECRYPT_REQUIRED                               = 8,    /**< Key Exchange Decrypt Required. */
+    BCMOLT_GPON_ONU_AUTO_CFG_ID_KEY_EXCHANGE_KEY_MISMATCH                                   = 9,    /**< Key Exchange Key Mismatch. */
+    BCMOLT_GPON_ONU_AUTO_CFG_ID_KEY_EXCHANGE_KEY_REQUEST_TIMEOUT                            = 10,   /**< Key Exchange Key Request Timeout. */
+    BCMOLT_GPON_ONU_AUTO_CFG_ID_KEY_EXCHANGE_UNCONSECUTIVE_INDEX                            = 11,   /**< Key Exchange Unconsecutive Index. */
+    BCMOLT_GPON_ONU_AUTO_CFG_ID_LOAI                                                        = 12,   /**< LOAi. */
+    BCMOLT_GPON_ONU_AUTO_CFG_ID_LOKI                                                        = 13,   /**< LOki. */
+    BCMOLT_GPON_ONU_AUTO_CFG_ID_MEMI                                                        = 14,   /**< MEMi. */
+    BCMOLT_GPON_ONU_AUTO_CFG_ID_OMCI_PORT_ID_CONFIGURATION_COMPLETED                        = 15,   /**< OMCI PORT ID Configuration Completed. */
+    BCMOLT_GPON_ONU_AUTO_CFG_ID_ONU_ACTIVATION_COMPLETED                                    = 16,   /**< ONU Activation Completed. */
+    BCMOLT_GPON_ONU_AUTO_CFG_ID_ONU_ACTIVATION_STANDBY_COMPLETED                            = 17,   /**< onu activation standby completed. */
+    BCMOLT_GPON_ONU_AUTO_CFG_ID_ONU_ALARM                                                   = 18,   /**< ONU Alarm. */
+    BCMOLT_GPON_ONU_AUTO_CFG_ID_ONU_DEACTIVATION_COMPLETED                                  = 19,   /**< ONU Deactivation Completed. */
+    BCMOLT_GPON_ONU_AUTO_CFG_ID_ONU_DISABLE_COMPLETED                                       = 20,   /**< ONU Disable Completed. */
+    BCMOLT_GPON_ONU_AUTO_CFG_ID_ONU_ENABLE_COMPLETED                                        = 21,   /**< ONU Enable Completed. */
+    BCMOLT_GPON_ONU_AUTO_CFG_ID_OPTICAL_REFLECTION                                          = 22,   /**< Optical Reflection. */
+    BCMOLT_GPON_ONU_AUTO_CFG_ID_PASSWORD_AUTHENTICATION_COMPLETED                           = 23,   /**< Password Authentication Completed. */
+    BCMOLT_GPON_ONU_AUTO_CFG_ID_PEE                                                         = 24,   /**< PEE. */
+    BCMOLT_GPON_ONU_AUTO_CFG_ID_POSSIBLE_DRIFT                                              = 25,   /**< Possible Drift. */
+    BCMOLT_GPON_ONU_AUTO_CFG_ID_POWER_MANAGEMENT_STATE_CHANGE                               = 26,   /**< Power Management State Change. */
+    BCMOLT_GPON_ONU_AUTO_CFG_ID_PST                                                         = 27,   /**< PST. */
+    BCMOLT_GPON_ONU_AUTO_CFG_ID_RANGING_COMPLETED                                           = 28,   /**< Ranging Completed. */
+    BCMOLT_GPON_ONU_AUTO_CFG_ID_REI                                                         = 29,   /**< REI. */
+    BCMOLT_GPON_ONU_AUTO_CFG_ID_RSSI_MEASUREMENT_COMPLETED                                  = 30,   /**< RSSI Measurement Completed. */
+    BCMOLT_GPON_ONU_AUTO_CFG_ID_SDI                                                         = 31,   /**< Signal Degraded of ONUi. */
+    BCMOLT_GPON_ONU_AUTO_CFG_ID_SFI                                                         = 32,   /**< Signal Fail of ONUi. */
+    BCMOLT_GPON_ONU_AUTO_CFG_ID_STAT_ALARM_CLEARED                                          = 33,   /**< Stat Alarm Cleared. */
+    BCMOLT_GPON_ONU_AUTO_CFG_ID_STAT_ALARM_RAISED                                           = 34,   /**< Stat Alarm Raised. */
+    BCMOLT_GPON_ONU_AUTO_CFG_ID_SUFI                                                        = 35,   /**< SUFi. */
+    BCMOLT_GPON_ONU_AUTO_CFG_ID_TIWI                                                        = 36,   /**< Transmission Interference Warning. */
+    BCMOLT_GPON_ONU_AUTO_CFG_ID__NUM_OF /**< Number of enum entries, not an entry itself. */
+} bcmolt_gpon_onu_auto_cfg_id;
+
+/** Identifiers for all properties contained in the 
+ * gpon_onu_ber_interval_configuration_completed group. 
+ */
+typedef enum bcmolt_gpon_onu_ber_interval_configuration_completed_id
+{
+    BCMOLT_GPON_ONU_BER_INTERVAL_CONFIGURATION_COMPLETED_ID__BEGIN                          = 0,
+    BCMOLT_GPON_ONU_BER_INTERVAL_CONFIGURATION_COMPLETED_ID_BER_INTERVAL                    = 0,    /**< BER interval in ms. */
+    BCMOLT_GPON_ONU_BER_INTERVAL_CONFIGURATION_COMPLETED_ID_RESULT                          = 1,    /**< Result. */
+    BCMOLT_GPON_ONU_BER_INTERVAL_CONFIGURATION_COMPLETED_ID__NUM_OF /**< Number of enum entries, not an entry itself. */
+} bcmolt_gpon_onu_ber_interval_configuration_completed_id;
+
+/** Identifiers for all properties contained in the gpon_onu_cfg group. 
+ */
+typedef enum bcmolt_gpon_onu_cfg_id
+{
+    BCMOLT_GPON_ONU_CFG_ID__BEGIN                                                           = 0,
+    BCMOLT_GPON_ONU_CFG_ID_ONU_STATE                                                        = 0,    /**< onu state. */
+    BCMOLT_GPON_ONU_CFG_ID_SERIAL_NUMBER                                                    = 1,    /**< Serial number. */
+    BCMOLT_GPON_ONU_CFG_ID_PASSWORD                                                         = 2,    /**< password. */
+    BCMOLT_GPON_ONU_CFG_ID_AUTO_PASSWORD_LEARNING                                           = 3,    /**< auto password learning. */
+    BCMOLT_GPON_ONU_CFG_ID_US_FEC                                                           = 4,    /**< US FEC. */
+    BCMOLT_GPON_ONU_CFG_ID_OMCI_PORT_ID                                                     = 5,    /**< OMCI port ID. */
+    BCMOLT_GPON_ONU_CFG_ID_DS_BER_REPORTING_INTERVAL                                        = 6,    /**< DS BER reporting interval in ms. */
+    BCMOLT_GPON_ONU_CFG_ID_AES_ENCRYPTION_KEY                                               = 7,    /**< AES encryption key. */
+    BCMOLT_GPON_ONU_CFG_ID_ALARM_STATE                                                      = 8,    /**< alarm state. */
+    BCMOLT_GPON_ONU_CFG_ID_RANGING_TIME                                                     = 9,    /**< ranging time. */
+    BCMOLT_GPON_ONU_CFG_ID_DISABLED_AFTER_DISCOVERY                                         = 10,   /**< Disabled after Discovery. */
+    BCMOLT_GPON_ONU_CFG_ID_DEACTIVATION_REASON                                              = 11,   /**< deactivation reason. */
+    BCMOLT_GPON_ONU_CFG_ID_ALL_GEM_PORTS                                                    = 12,   /**< all GEM ports. */
+    BCMOLT_GPON_ONU_CFG_ID_ALL_ALLOCS                                                       = 13,   /**< all allocs. */
+    BCMOLT_GPON_ONU_CFG_ID_ONU_PS_TYPE_C                                                    = 14,   /**< onu protection switching type c. */
+    BCMOLT_GPON_ONU_CFG_ID_EXTENDED_GUARD_TIME                                              = 15,   /**< Extended Guard Time. */
+    BCMOLT_GPON_ONU_CFG_ID__NUM_OF  /**< Number of enum entries, not an entry itself. */
+} bcmolt_gpon_onu_cfg_id;
+
+/** Identifiers for all properties contained in the gpon_onu_change_power_level 
+ * group. 
+ */
+typedef enum bcmolt_gpon_onu_change_power_level_id
+{
+    BCMOLT_GPON_ONU_CHANGE_POWER_LEVEL_ID__BEGIN                                            = 0,
+    BCMOLT_GPON_ONU_CHANGE_POWER_LEVEL_ID_POWER_LEVEL_ACTION                                = 0,    /**< power level action. */
+    BCMOLT_GPON_ONU_CHANGE_POWER_LEVEL_ID__NUM_OF   /**< Number of enum entries, not an entry itself. */
+} bcmolt_gpon_onu_change_power_level_id;
+
+/** Identifiers for all properties contained in the gpon_onu_cpu_packet group. 
+ */
+typedef enum bcmolt_gpon_onu_cpu_packet_id
+{
+    BCMOLT_GPON_ONU_CPU_PACKET_ID__BEGIN                                                    = 0,
+    BCMOLT_GPON_ONU_CPU_PACKET_ID_PORT_ID                                                   = 0,    /**< port_id. */
+    BCMOLT_GPON_ONU_CPU_PACKET_ID_CRC_OK                                                    = 1,    /**< crc_ok. */
+    BCMOLT_GPON_ONU_CPU_PACKET_ID_PACKET_SIZE                                               = 2,    /**< packet_size. */
+    BCMOLT_GPON_ONU_CPU_PACKET_ID_BUFFER                                                    = 3,    /**< buffer. */
+    BCMOLT_GPON_ONU_CPU_PACKET_ID__NUM_OF   /**< Number of enum entries, not an entry itself. */
+} bcmolt_gpon_onu_cpu_packet_id;
+
+/** Identifiers for all properties contained in the gpon_onu_cpu_packets group. 
+ */
+typedef enum bcmolt_gpon_onu_cpu_packets_id
+{
+    BCMOLT_GPON_ONU_CPU_PACKETS_ID__BEGIN                                                   = 0,
+    BCMOLT_GPON_ONU_CPU_PACKETS_ID_PACKET_TYPE                                              = 0,    /**< packet type. */
+    BCMOLT_GPON_ONU_CPU_PACKETS_ID_CALC_CRC                                                 = 1,    /**< calc crc. */
+    BCMOLT_GPON_ONU_CPU_PACKETS_ID_NUMBER_OF_PACKETS                                        = 2,    /**< number of packets. */
+    BCMOLT_GPON_ONU_CPU_PACKETS_ID_PACKET_SIZE                                              = 3,    /**< Single packet size. */
+    BCMOLT_GPON_ONU_CPU_PACKETS_ID_BUFFER                                                   = 4,    /**< buffer. */
+    BCMOLT_GPON_ONU_CPU_PACKETS_ID__NUM_OF  /**< Number of enum entries, not an entry itself. */
+} bcmolt_gpon_onu_cpu_packets_id;
+
+/** Identifiers for all properties contained in the gpon_onu_dfi group. 
+ */
+typedef enum bcmolt_gpon_onu_dfi_id
+{
+    BCMOLT_GPON_ONU_DFI_ID__BEGIN                                                           = 0,
+    BCMOLT_GPON_ONU_DFI_ID_ALARM_STATUS                                                     = 0,    /**< alarm status. */
+    BCMOLT_GPON_ONU_DFI_ID__NUM_OF  /**< Number of enum entries, not an entry itself. */
+} bcmolt_gpon_onu_dfi_id;
+
+/** Identifiers for all properties contained in the gpon_onu_dgi group. 
+ */
+typedef enum bcmolt_gpon_onu_dgi_id
+{
+    BCMOLT_GPON_ONU_DGI_ID__BEGIN                                                           = 0,
+    BCMOLT_GPON_ONU_DGI_ID_ALARM_STATUS                                                     = 0,    /**< alarm status. */
+    BCMOLT_GPON_ONU_DGI_ID__NUM_OF  /**< Number of enum entries, not an entry itself. */
+} bcmolt_gpon_onu_dgi_id;
+
+/** Identifiers for all properties contained in the gpon_onu_dowi group. 
+ */
+typedef enum bcmolt_gpon_onu_dowi_id
+{
+    BCMOLT_GPON_ONU_DOWI_ID__BEGIN                                                          = 0,
+    BCMOLT_GPON_ONU_DOWI_ID_ALARM_STATUS                                                    = 0,    /**< Alarm status. */
+    BCMOLT_GPON_ONU_DOWI_ID_DRIFT_VALUE                                                     = 1,    /**< Drift value. */
+    BCMOLT_GPON_ONU_DOWI_ID_NEW_EQD                                                         = 2,    /**< New EQD. */
+    BCMOLT_GPON_ONU_DOWI_ID__NUM_OF /**< Number of enum entries, not an entry itself. */
+} bcmolt_gpon_onu_dowi_id;
+
+/** Identifiers for all properties contained in the gpon_onu_err group. 
+ */
+typedef enum bcmolt_gpon_onu_err_id
+{
+    BCMOLT_GPON_ONU_ERR_ID__BEGIN                                                           = 0,
+    BCMOLT_GPON_ONU_ERR_ID_BIP8_ERRORS                                                      = 0,    /**< BIP8 errors. */
+    BCMOLT_GPON_ONU_ERR_ID__NUM_OF  /**< Number of enum entries, not an entry itself. */
+} bcmolt_gpon_onu_err_id;
+
+/** Identifiers for all properties contained in the gpon_onu_invalid_dbru_report 
+ * group. 
+ */
+typedef enum bcmolt_gpon_onu_invalid_dbru_report_id
+{
+    BCMOLT_GPON_ONU_INVALID_DBRU_REPORT_ID__BEGIN                                           = 0,
+    BCMOLT_GPON_ONU_INVALID_DBRU_REPORT_ID_ALLOC_ID                                         = 0,    /**< Alloc-ID. */
+    BCMOLT_GPON_ONU_INVALID_DBRU_REPORT_ID__NUM_OF  /**< Number of enum entries, not an entry itself. */
+} bcmolt_gpon_onu_invalid_dbru_report_id;
+
+/** Identifiers for all properties contained in the 
+ * gpon_onu_key_exchange_completed group. 
+ */
+typedef enum bcmolt_gpon_onu_key_exchange_completed_id
+{
+    BCMOLT_GPON_ONU_KEY_EXCHANGE_COMPLETED_ID__BEGIN                                        = 0,
+    BCMOLT_GPON_ONU_KEY_EXCHANGE_COMPLETED_ID_NEW_KEY                                       = 0,    /**< new key. */
+    BCMOLT_GPON_ONU_KEY_EXCHANGE_COMPLETED_ID__NUM_OF       /**< Number of enum entries, not an entry itself. */
+} bcmolt_gpon_onu_key_exchange_completed_id;
+
+/** Identifiers for all properties contained in the 
+ * gpon_onu_key_exchange_cycle_skipped group. 
+ */
+typedef enum bcmolt_gpon_onu_key_exchange_cycle_skipped_id
+{
+    BCMOLT_GPON_ONU_KEY_EXCHANGE_CYCLE_SKIPPED_ID__NUM_OF   /**< Number of enum entries, not an entry itself. */
+} bcmolt_gpon_onu_key_exchange_cycle_skipped_id;
+
+/** Identifiers for all properties contained in the 
+ * gpon_onu_key_exchange_decrypt_required group. 
+ */
+typedef enum bcmolt_gpon_onu_key_exchange_decrypt_required_id
+{
+    BCMOLT_GPON_ONU_KEY_EXCHANGE_DECRYPT_REQUIRED_ID__BEGIN                                 = 0,
+    BCMOLT_GPON_ONU_KEY_EXCHANGE_DECRYPT_REQUIRED_ID_NEW_KEY                                = 0,    /**< new key. */
+    BCMOLT_GPON_ONU_KEY_EXCHANGE_DECRYPT_REQUIRED_ID__NUM_OF    /**< Number of enum entries, not an entry itself. */
+} bcmolt_gpon_onu_key_exchange_decrypt_required_id;
+
+/** Identifiers for all properties contained in the 
+ * gpon_onu_key_exchange_key_mismatch group. 
+ */
+typedef enum bcmolt_gpon_onu_key_exchange_key_mismatch_id
+{
+    BCMOLT_GPON_ONU_KEY_EXCHANGE_KEY_MISMATCH_ID__BEGIN                                     = 0,
+    BCMOLT_GPON_ONU_KEY_EXCHANGE_KEY_MISMATCH_ID_EXPECTED_KEY                               = 0,    /**< expected key. */
+    BCMOLT_GPON_ONU_KEY_EXCHANGE_KEY_MISMATCH_ID_RECEIVED_KEY                               = 1,    /**< received key. */
+    BCMOLT_GPON_ONU_KEY_EXCHANGE_KEY_MISMATCH_ID__NUM_OF        /**< Number of enum entries, not an entry itself. */
+} bcmolt_gpon_onu_key_exchange_key_mismatch_id;
+
+/** Identifiers for all properties contained in the 
+ * gpon_onu_key_exchange_key_request_timeout group. 
+ */
+typedef enum bcmolt_gpon_onu_key_exchange_key_request_timeout_id
+{
+    BCMOLT_GPON_ONU_KEY_EXCHANGE_KEY_REQUEST_TIMEOUT_ID__NUM_OF /**< Number of enum entries, not an entry itself. */
+} bcmolt_gpon_onu_key_exchange_key_request_timeout_id;
+
+/** Identifiers for all properties contained in the 
+ * gpon_onu_key_exchange_unconsecutive_index group. 
+ */
+typedef enum bcmolt_gpon_onu_key_exchange_unconsecutive_index_id
+{
+    BCMOLT_GPON_ONU_KEY_EXCHANGE_UNCONSECUTIVE_INDEX_ID__BEGIN                              = 0,
+    BCMOLT_GPON_ONU_KEY_EXCHANGE_UNCONSECUTIVE_INDEX_ID_EXPECTED_INDEX                      = 0,    /**< expected index. */
+    BCMOLT_GPON_ONU_KEY_EXCHANGE_UNCONSECUTIVE_INDEX_ID_ACTUAL_INDEX                        = 1,    /**< actual index. */
+    BCMOLT_GPON_ONU_KEY_EXCHANGE_UNCONSECUTIVE_INDEX_ID__NUM_OF /**< Number of enum entries, not an entry itself. */
+} bcmolt_gpon_onu_key_exchange_unconsecutive_index_id;
+
+/** Identifiers for all properties contained in the gpon_onu_key group. 
+ */
+typedef enum bcmolt_gpon_onu_key_id
+{
+    BCMOLT_GPON_ONU_KEY_ID__BEGIN                                                           = 0,
+    BCMOLT_GPON_ONU_KEY_ID_PON_NI                                                           = 0,    /**< PON network interface. */
+    BCMOLT_GPON_ONU_KEY_ID_ONU_ID                                                           = 1,    /**< ONU ID. */
+    BCMOLT_GPON_ONU_KEY_ID__NUM_OF  /**< Number of enum entries, not an entry itself. */
+} bcmolt_gpon_onu_key_id;
+
+/** Identifiers for all properties contained in the gpon_onu_loai group. 
+ */
+typedef enum bcmolt_gpon_onu_loai_id
+{
+    BCMOLT_GPON_ONU_LOAI_ID__BEGIN                                                          = 0,
+    BCMOLT_GPON_ONU_LOAI_ID_ALARM_STATUS                                                    = 0,    /**< alarm status. */
+    BCMOLT_GPON_ONU_LOAI_ID__NUM_OF /**< Number of enum entries, not an entry itself. */
+} bcmolt_gpon_onu_loai_id;
+
+/** Identifiers for all properties contained in the gpon_onu_loki group. 
+ */
+typedef enum bcmolt_gpon_onu_loki_id
+{
+    BCMOLT_GPON_ONU_LOKI_ID__BEGIN                                                          = 0,
+    BCMOLT_GPON_ONU_LOKI_ID_ALARM_STATUS                                                    = 0,    /**< alarm status. */
+    BCMOLT_GPON_ONU_LOKI_ID__NUM_OF /**< Number of enum entries, not an entry itself. */
+} bcmolt_gpon_onu_loki_id;
+
+/** Identifiers for all properties contained in the gpon_onu_memi group. 
+ */
+typedef enum bcmolt_gpon_onu_memi_id
+{
+    BCMOLT_GPON_ONU_MEMI_ID__BEGIN                                                          = 0,
+    BCMOLT_GPON_ONU_MEMI_ID_PLOAM_BUFFER                                                    = 0,    /**< PLOAM buffer. */
+    BCMOLT_GPON_ONU_MEMI_ID__NUM_OF /**< Number of enum entries, not an entry itself. */
+} bcmolt_gpon_onu_memi_id;
+
+/** Identifiers for all properties contained in the gpon_onu_omci_packet group. 
+ */
+typedef enum bcmolt_gpon_onu_omci_packet_id
+{
+    BCMOLT_GPON_ONU_OMCI_PACKET_ID__BEGIN                                                   = 0,
+    BCMOLT_GPON_ONU_OMCI_PACKET_ID_PORT_ID                                                  = 0,    /**< port_id. */
+    BCMOLT_GPON_ONU_OMCI_PACKET_ID_CRC_OK                                                   = 1,    /**< crc_ok. */
+    BCMOLT_GPON_ONU_OMCI_PACKET_ID_PACKET_SIZE                                              = 2,    /**< packet_size. */
+    BCMOLT_GPON_ONU_OMCI_PACKET_ID_BUFFER                                                   = 3,    /**< buffer. */
+    BCMOLT_GPON_ONU_OMCI_PACKET_ID__NUM_OF  /**< Number of enum entries, not an entry itself. */
+} bcmolt_gpon_onu_omci_packet_id;
+
+/** Identifiers for all properties contained in the 
+ * gpon_onu_omci_port_id_configuration_completed group. 
+ */
+typedef enum bcmolt_gpon_onu_omci_port_id_configuration_completed_id
+{
+    BCMOLT_GPON_ONU_OMCI_PORT_ID_CONFIGURATION_COMPLETED_ID__BEGIN                          = 0,
+    BCMOLT_GPON_ONU_OMCI_PORT_ID_CONFIGURATION_COMPLETED_ID_GEM_PORT                        = 0,    /**< GEM Port ID. */
+    BCMOLT_GPON_ONU_OMCI_PORT_ID_CONFIGURATION_COMPLETED_ID_STATUS                          = 1,    /**< status. */
+    BCMOLT_GPON_ONU_OMCI_PORT_ID_CONFIGURATION_COMPLETED_ID_OPERATION                       = 2,    /**< Operation. */
+    BCMOLT_GPON_ONU_OMCI_PORT_ID_CONFIGURATION_COMPLETED_ID__NUM_OF /**< Number of enum entries, not an entry itself. */
+} bcmolt_gpon_onu_omci_port_id_configuration_completed_id;
+
+/** Identifiers for all properties contained in the 
+ * gpon_onu_onu_activation_completed group. 
+ */
+typedef enum bcmolt_gpon_onu_onu_activation_completed_id
+{
+    BCMOLT_GPON_ONU_ONU_ACTIVATION_COMPLETED_ID__BEGIN                                      = 0,
+    BCMOLT_GPON_ONU_ONU_ACTIVATION_COMPLETED_ID_STATUS                                      = 0,    /**< status. */
+    BCMOLT_GPON_ONU_ONU_ACTIVATION_COMPLETED_ID_FAIL_REASON                                 = 1,    /**< fail reason. */
+    BCMOLT_GPON_ONU_ONU_ACTIVATION_COMPLETED_ID__NUM_OF /**< Number of enum entries, not an entry itself. */
+} bcmolt_gpon_onu_onu_activation_completed_id;
+
+/** Identifiers for all properties contained in the 
+ * gpon_onu_onu_activation_standby_completed group. 
+ */
+typedef enum bcmolt_gpon_onu_onu_activation_standby_completed_id
+{
+    BCMOLT_GPON_ONU_ONU_ACTIVATION_STANDBY_COMPLETED_ID__BEGIN                              = 0,
+    BCMOLT_GPON_ONU_ONU_ACTIVATION_STANDBY_COMPLETED_ID_RESULT                              = 0,    /**< result. */
+    BCMOLT_GPON_ONU_ONU_ACTIVATION_STANDBY_COMPLETED_ID__NUM_OF /**< Number of enum entries, not an entry itself. */
+} bcmolt_gpon_onu_onu_activation_standby_completed_id;
+
+/** Identifiers for all properties contained in the gpon_onu_onu_alarm group. 
+ */
+typedef enum bcmolt_gpon_onu_onu_alarm_id
+{
+    BCMOLT_GPON_ONU_ONU_ALARM_ID__BEGIN                                                     = 0,
+    BCMOLT_GPON_ONU_ONU_ALARM_ID_ONU_ALARM                                                  = 0,    /**< onu alarm. */
+    BCMOLT_GPON_ONU_ONU_ALARM_ID__NUM_OF    /**< Number of enum entries, not an entry itself. */
+} bcmolt_gpon_onu_onu_alarm_id;
+
+/** Identifiers for all properties contained in the 
+ * gpon_onu_onu_deactivation_completed group. 
+ */
+typedef enum bcmolt_gpon_onu_onu_deactivation_completed_id
+{
+    BCMOLT_GPON_ONU_ONU_DEACTIVATION_COMPLETED_ID__BEGIN                                    = 0,
+    BCMOLT_GPON_ONU_ONU_DEACTIVATION_COMPLETED_ID_STATUS                                    = 0,    /**< status. */
+    BCMOLT_GPON_ONU_ONU_DEACTIVATION_COMPLETED_ID__NUM_OF   /**< Number of enum entries, not an entry itself. */
+} bcmolt_gpon_onu_onu_deactivation_completed_id;
+
+/** Identifiers for all properties contained in the 
+ * gpon_onu_onu_disable_completed group. 
+ */
+typedef enum bcmolt_gpon_onu_onu_disable_completed_id
+{
+    BCMOLT_GPON_ONU_ONU_DISABLE_COMPLETED_ID__BEGIN                                         = 0,
+    BCMOLT_GPON_ONU_ONU_DISABLE_COMPLETED_ID_SERIAL_NUMBER                                  = 0,    /**< serial number. */
+    BCMOLT_GPON_ONU_ONU_DISABLE_COMPLETED_ID__NUM_OF    /**< Number of enum entries, not an entry itself. */
+} bcmolt_gpon_onu_onu_disable_completed_id;
+
+/** Identifiers for all properties contained in the 
+ * gpon_onu_onu_enable_completed group. 
+ */
+typedef enum bcmolt_gpon_onu_onu_enable_completed_id
+{
+    BCMOLT_GPON_ONU_ONU_ENABLE_COMPLETED_ID__BEGIN                                          = 0,
+    BCMOLT_GPON_ONU_ONU_ENABLE_COMPLETED_ID_SERIAL_NUMBER                                   = 0,    /**< serial number. */
+    BCMOLT_GPON_ONU_ONU_ENABLE_COMPLETED_ID__NUM_OF /**< Number of enum entries, not an entry itself. */
+} bcmolt_gpon_onu_onu_enable_completed_id;
+
+/** Identifiers for all properties contained in the gpon_onu_optical_reflection 
+ * group. 
+ */
+typedef enum bcmolt_gpon_onu_optical_reflection_id
+{
+    BCMOLT_GPON_ONU_OPTICAL_REFLECTION_ID__NUM_OF   /**< Number of enum entries, not an entry itself. */
+} bcmolt_gpon_onu_optical_reflection_id;
+
+/** Identifiers for all properties contained in the 
+ * gpon_onu_password_authentication_completed group. 
+ */
+typedef enum bcmolt_gpon_onu_password_authentication_completed_id
+{
+    BCMOLT_GPON_ONU_PASSWORD_AUTHENTICATION_COMPLETED_ID__BEGIN                             = 0,
+    BCMOLT_GPON_ONU_PASSWORD_AUTHENTICATION_COMPLETED_ID_STATUS                             = 0,    /**< status. */
+    BCMOLT_GPON_ONU_PASSWORD_AUTHENTICATION_COMPLETED_ID_FAIL_REASON                        = 1,    /**< fail reason. */
+    BCMOLT_GPON_ONU_PASSWORD_AUTHENTICATION_COMPLETED_ID_PASSWORD                           = 2,    /**< password. */
+    BCMOLT_GPON_ONU_PASSWORD_AUTHENTICATION_COMPLETED_ID__NUM_OF    /**< Number of enum entries, not an entry itself. */
+} bcmolt_gpon_onu_password_authentication_completed_id;
+
+/** Identifiers for all properties contained in the gpon_onu_pee group. 
+ */
+typedef enum bcmolt_gpon_onu_pee_id
+{
+    BCMOLT_GPON_ONU_PEE_ID__BEGIN                                                           = 0,
+    BCMOLT_GPON_ONU_PEE_ID_ALARM_STATUS                                                     = 0,    /**< alarm status. */
+    BCMOLT_GPON_ONU_PEE_ID__NUM_OF  /**< Number of enum entries, not an entry itself. */
+} bcmolt_gpon_onu_pee_id;
+
+/** Identifiers for all properties contained in the gpon_onu_ploam_packet group. 
+ */
+typedef enum bcmolt_gpon_onu_ploam_packet_id
+{
+    BCMOLT_GPON_ONU_PLOAM_PACKET_ID__BEGIN                                                  = 0,
+    BCMOLT_GPON_ONU_PLOAM_PACKET_ID_PLOAM                                                   = 0,    /**< ploam. */
+    BCMOLT_GPON_ONU_PLOAM_PACKET_ID__NUM_OF /**< Number of enum entries, not an entry itself. */
+} bcmolt_gpon_onu_ploam_packet_id;
+
+/** Identifiers for all properties contained in the gpon_onu_possible_drift 
+ * group. 
+ */
+typedef enum bcmolt_gpon_onu_possible_drift_id
+{
+    BCMOLT_GPON_ONU_POSSIBLE_DRIFT_ID__BEGIN                                                = 0,
+    BCMOLT_GPON_ONU_POSSIBLE_DRIFT_ID_ALARM_STATUS                                          = 0,    /**< Alarm Status. */
+    BCMOLT_GPON_ONU_POSSIBLE_DRIFT_ID_ESTIMATED_DRIFT                                       = 1,    /**< Estimated Drift. */
+    BCMOLT_GPON_ONU_POSSIBLE_DRIFT_ID__NUM_OF   /**< Number of enum entries, not an entry itself. */
+} bcmolt_gpon_onu_possible_drift_id;
+
+/** Identifiers for all properties contained in the 
+ * gpon_onu_power_management_state_change group. 
+ */
+typedef enum bcmolt_gpon_onu_power_management_state_change_id
+{
+    BCMOLT_GPON_ONU_POWER_MANAGEMENT_STATE_CHANGE_ID__BEGIN                                 = 0,
+    BCMOLT_GPON_ONU_POWER_MANAGEMENT_STATE_CHANGE_ID_OLD_STATE                              = 0,    /**< Old State. */
+    BCMOLT_GPON_ONU_POWER_MANAGEMENT_STATE_CHANGE_ID_NEW_STATE                              = 1,    /**< New State. */
+    BCMOLT_GPON_ONU_POWER_MANAGEMENT_STATE_CHANGE_ID_REASON                                 = 2,    /**< Reason. */
+    BCMOLT_GPON_ONU_POWER_MANAGEMENT_STATE_CHANGE_ID__NUM_OF    /**< Number of enum entries, not an entry itself. */
+} bcmolt_gpon_onu_power_management_state_change_id;
+
+/** Identifiers for all properties contained in the gpon_onu_pst group. 
+ */
+typedef enum bcmolt_gpon_onu_pst_id
+{
+    BCMOLT_GPON_ONU_PST_ID__BEGIN                                                           = 0,
+    BCMOLT_GPON_ONU_PST_ID_LINK_NUMBER                                                      = 0,    /**< link number. */
+    BCMOLT_GPON_ONU_PST_ID_K1                                                               = 1,    /**< K1. */
+    BCMOLT_GPON_ONU_PST_ID_K2                                                               = 2,    /**< K2. */
+    BCMOLT_GPON_ONU_PST_ID__NUM_OF  /**< Number of enum entries, not an entry itself. */
+} bcmolt_gpon_onu_pst_id;
+
+/** Identifiers for all properties contained in the gpon_onu_ranging_completed 
+ * group. 
+ */
+typedef enum bcmolt_gpon_onu_ranging_completed_id
+{
+    BCMOLT_GPON_ONU_RANGING_COMPLETED_ID__BEGIN                                             = 0,
+    BCMOLT_GPON_ONU_RANGING_COMPLETED_ID_STATUS                                             = 0,    /**< status. */
+    BCMOLT_GPON_ONU_RANGING_COMPLETED_ID_FAIL_REASON                                        = 1,    /**< fail reason. */
+    BCMOLT_GPON_ONU_RANGING_COMPLETED_ID_NUMBER_OF_PLOAMS                                   = 2,    /**< number of PLOAMs. */
+    BCMOLT_GPON_ONU_RANGING_COMPLETED_ID_EQD                                                = 3,    /**< EQD. */
+    BCMOLT_GPON_ONU_RANGING_COMPLETED_ID_POWER_LEVEL                                        = 4,    /**< Power Level. */
+    BCMOLT_GPON_ONU_RANGING_COMPLETED_ID__NUM_OF    /**< Number of enum entries, not an entry itself. */
+} bcmolt_gpon_onu_ranging_completed_id;
+
+/** Identifiers for all properties contained in the gpon_onu_rei group. 
+ */
+typedef enum bcmolt_gpon_onu_rei_id
+{
+    BCMOLT_GPON_ONU_REI_ID__BEGIN                                                           = 0,
+    BCMOLT_GPON_ONU_REI_ID_BIP8_ERRORS                                                      = 0,    /**< BIP8 errors. */
+    BCMOLT_GPON_ONU_REI_ID__NUM_OF  /**< Number of enum entries, not an entry itself. */
+} bcmolt_gpon_onu_rei_id;
+
+/** Identifiers for all properties contained in the 
+ * gpon_onu_rssi_measurement_completed group. 
+ */
+typedef enum bcmolt_gpon_onu_rssi_measurement_completed_id
+{
+    BCMOLT_GPON_ONU_RSSI_MEASUREMENT_COMPLETED_ID__BEGIN                                    = 0,
+    BCMOLT_GPON_ONU_RSSI_MEASUREMENT_COMPLETED_ID_STATUS                                    = 0,    /**< status. */
+    BCMOLT_GPON_ONU_RSSI_MEASUREMENT_COMPLETED_ID_FAIL_REASON                               = 1,    /**< fail reason. */
+    BCMOLT_GPON_ONU_RSSI_MEASUREMENT_COMPLETED_ID__NUM_OF   /**< Number of enum entries, not an entry itself. */
+} bcmolt_gpon_onu_rssi_measurement_completed_id;
+
+/** Identifiers for all properties contained in the gpon_onu_rssi_measurement 
+ * group. 
+ */
+typedef enum bcmolt_gpon_onu_rssi_measurement_id
+{
+    BCMOLT_GPON_ONU_RSSI_MEASUREMENT_ID__NUM_OF             /**< Number of enum entries, not an entry itself. */
+} bcmolt_gpon_onu_rssi_measurement_id;
+
+/** Identifiers for all properties contained in the gpon_onu_sdi group. 
+ */
+typedef enum bcmolt_gpon_onu_sdi_id
+{
+    BCMOLT_GPON_ONU_SDI_ID__BEGIN                                                           = 0,
+    BCMOLT_GPON_ONU_SDI_ID_ALARM_STATUS                                                     = 0,    /**< alarm status. */
+    BCMOLT_GPON_ONU_SDI_ID_BER                                                              = 1,    /**< BER. */
+    BCMOLT_GPON_ONU_SDI_ID__NUM_OF  /**< Number of enum entries, not an entry itself. */
+} bcmolt_gpon_onu_sdi_id;
+
+/** Identifiers for all properties contained in the gpon_onu_set_onu_state 
+ * group. 
+ */
+typedef enum bcmolt_gpon_onu_set_onu_state_id
+{
+    BCMOLT_GPON_ONU_SET_ONU_STATE_ID__BEGIN                                                 = 0,
+    BCMOLT_GPON_ONU_SET_ONU_STATE_ID_ONU_STATE                                              = 0,    /**< ONU state. */
+    BCMOLT_GPON_ONU_SET_ONU_STATE_ID__NUM_OF    /**< Number of enum entries, not an entry itself. */
+} bcmolt_gpon_onu_set_onu_state_id;
+
+/** Identifiers for all properties contained in the gpon_onu_sfi group. 
+ */
+typedef enum bcmolt_gpon_onu_sfi_id
+{
+    BCMOLT_GPON_ONU_SFI_ID__BEGIN                                                           = 0,
+    BCMOLT_GPON_ONU_SFI_ID_ALARM_STATUS                                                     = 0,    /**< alarm status. */
+    BCMOLT_GPON_ONU_SFI_ID_BER                                                              = 1,    /**< BER. */
+    BCMOLT_GPON_ONU_SFI_ID__NUM_OF  /**< Number of enum entries, not an entry itself. */
+} bcmolt_gpon_onu_sfi_id;
+
+/** Identifiers for all properties contained in the gpon_onu_stat_alarm_cleared 
+ * group. 
+ */
+typedef enum bcmolt_gpon_onu_stat_alarm_cleared_id
+{
+    BCMOLT_GPON_ONU_STAT_ALARM_CLEARED_ID__BEGIN                                            = 0,
+    BCMOLT_GPON_ONU_STAT_ALARM_CLEARED_ID_STAT                                              = 0,    /**< Statistic ID. */
+    BCMOLT_GPON_ONU_STAT_ALARM_CLEARED_ID__NUM_OF   /**< Number of enum entries, not an entry itself. */
+} bcmolt_gpon_onu_stat_alarm_cleared_id;
+
+/** Identifiers for all properties contained in the gpon_onu_stat_alarm_raised 
+ * group. 
+ */
+typedef enum bcmolt_gpon_onu_stat_alarm_raised_id
+{
+    BCMOLT_GPON_ONU_STAT_ALARM_RAISED_ID__BEGIN                                             = 0,
+    BCMOLT_GPON_ONU_STAT_ALARM_RAISED_ID_STAT                                               = 0,    /**< Statistic ID. */
+    BCMOLT_GPON_ONU_STAT_ALARM_RAISED_ID__NUM_OF    /**< Number of enum entries, not an entry itself. */
+} bcmolt_gpon_onu_stat_alarm_raised_id;
+
+/** Identifiers for all properties contained in the gpon_onu_stat_cfg group. 
+ */
+typedef enum bcmolt_gpon_onu_stat_cfg_id
+{
+    BCMOLT_GPON_ONU_STAT_CFG_ID__BEGIN                                                      = 0,
+    BCMOLT_GPON_ONU_STAT_CFG_ID_CFG                                                         = 0,    /**< Configuration. */
+    BCMOLT_GPON_ONU_STAT_CFG_ID__NUM_OF /**< Number of enum entries, not an entry itself. */
+} bcmolt_gpon_onu_stat_cfg_id;
+
+/** Identifiers for all properties contained in the gpon_onu_stat group. 
+ */
+typedef enum bcmolt_gpon_onu_stat_id
+{
+    BCMOLT_GPON_ONU_STAT_ID__BEGIN                                                          = 0,
+    BCMOLT_GPON_ONU_STAT_ID_FEC_CODEWORDS                                                   = 0,    /**< Total received FEC codewords. */
+    BCMOLT_GPON_ONU_STAT_ID_FEC_BYTES_CORRECTED                                             = 1,    /**< FEC codewords corrected bytes. */
+    BCMOLT_GPON_ONU_STAT_ID_FEC_CODEWORDS_CORRECTED                                         = 2,    /**< FEC corrected codewords error . */
+    BCMOLT_GPON_ONU_STAT_ID_FEC_CODEWORDS_UNCORRECTED                                       = 3,    /**< FEC not corrected codewords error. */
+    BCMOLT_GPON_ONU_STAT_ID_BIP8_BYTES                                                      = 4,    /**< Received bytes for BIP8. */
+    BCMOLT_GPON_ONU_STAT_ID_BIP8_ERRORS                                                     = 5,    /**< Bit error according to BIP8. */
+    BCMOLT_GPON_ONU_STAT_ID_RX_PLOAMS_CRC_ERROR                                             = 6,    /**< Received PLOAMs with CRC error. */
+    BCMOLT_GPON_ONU_STAT_ID_RX_PLOAMS_NON_IDLE                                              = 7,    /**< Received non idle PLOAMs. */
+    BCMOLT_GPON_ONU_STAT_ID_POSITIVE_DRIFT                                                  = 8,    /**< Positive drift. */
+    BCMOLT_GPON_ONU_STAT_ID_NEGATIVE_DRIFT                                                  = 9,    /**< Negative drift. */
+    BCMOLT_GPON_ONU_STAT_ID_RX_OMCI                                                         = 10,   /**< Received OMCI packets. */
+    BCMOLT_GPON_ONU_STAT_ID_RX_OMCI_PACKETS_CRC_ERROR                                       = 11,   /**< Received OMCI packets with CRC errors. */
+    BCMOLT_GPON_ONU_STAT_ID_BER_REPORTED                                                    = 12,   /**< BER reported. */
+    BCMOLT_GPON_ONU_STAT_ID_UNRECEIVED_BURST                                                = 13,   /**< Unreceived burst. */
+    BCMOLT_GPON_ONU_STAT_ID_LCDG_ERRORS                                                     = 14,   /**< LCDG errors. */
+    BCMOLT_GPON_ONU_STAT_ID_RDI_ERRORS                                                      = 15,   /**< RDI errors. */
+    BCMOLT_GPON_ONU_STAT_ID_RX_BYTES                                                        = 16,   /**< rx bytes. */
+    BCMOLT_GPON_ONU_STAT_ID_RX_PACKETS                                                      = 17,   /**< rx packets. */
+    BCMOLT_GPON_ONU_STAT_ID_TX_BYTES                                                        = 18,   /**< tx bytes. */
+    BCMOLT_GPON_ONU_STAT_ID_TX_PACKETS                                                      = 19,   /**< tx packets. */
+    BCMOLT_GPON_ONU_STAT_ID__NUM_OF /**< Number of enum entries, not an entry itself. */
+} bcmolt_gpon_onu_stat_id;
+
+/** Identifiers for all properties contained in the gpon_onu_sufi group. 
+ */
+typedef enum bcmolt_gpon_onu_sufi_id
+{
+    BCMOLT_GPON_ONU_SUFI_ID__BEGIN                                                          = 0,
+    BCMOLT_GPON_ONU_SUFI_ID_ALARM_STATUS                                                    = 0,    /**< alarm status. */
+    BCMOLT_GPON_ONU_SUFI_ID__NUM_OF /**< Number of enum entries, not an entry itself. */
+} bcmolt_gpon_onu_sufi_id;
+
+/** Identifiers for all properties contained in the gpon_onu_tiwi group. 
+ */
+typedef enum bcmolt_gpon_onu_tiwi_id
+{
+    BCMOLT_GPON_ONU_TIWI_ID__BEGIN                                                          = 0,
+    BCMOLT_GPON_ONU_TIWI_ID_ALARM_STATUS                                                    = 0,    /**< Alarm status. */
+    BCMOLT_GPON_ONU_TIWI_ID_DRIFT_VALUE                                                     = 1,    /**< Drift value. */
+    BCMOLT_GPON_ONU_TIWI_ID__NUM_OF /**< Number of enum entries, not an entry itself. */
+} bcmolt_gpon_onu_tiwi_id;
+
+/** Identifiers for all properties contained in the gpon_trx_cfg group. 
+ */
+typedef enum bcmolt_gpon_trx_cfg_id
+{
+    BCMOLT_GPON_TRX_CFG_ID__BEGIN                                                           = 0,
+    BCMOLT_GPON_TRX_CFG_ID_TRANSCEIVER_TYPE                                                 = 0,    /**< transceiver type. */
+    BCMOLT_GPON_TRX_CFG_ID_LA_CONFIGURATION                                                 = 1,    /**< LA configuration. */
+    BCMOLT_GPON_TRX_CFG_ID_BCDR                                                             = 2,    /**< BCDR. */
+    BCMOLT_GPON_TRX_CFG_ID_LA_RANGING_AFTER_NO_ED_RESYNC                                    = 3,    /**< LA ranging after no ed resync . */
+    BCMOLT_GPON_TRX_CFG_ID_BCDR_RANGING_AFTER_NO_ED_RESYNC                                  = 4,    /**< BCDR ranging after no ed resync configuration. */
+    BCMOLT_GPON_TRX_CFG_ID_LA_RANGING_AFTER_ED_RESYNC                                       = 5,    /**< LA ranging after ed resync . */
+    BCMOLT_GPON_TRX_CFG_ID_BCDR_RANGING_AFTER_ED_RESYNC                                     = 6,    /**< BCDR ranging after ed resync. */
+    BCMOLT_GPON_TRX_CFG_ID_LA_RESYNC_POLARITY                                               = 7,    /**< la resync polarity. */
+    BCMOLT_GPON_TRX_CFG_ID_BCDR_RESYNC_POLARITY                                             = 8,    /**< BCDR resync polarity. */
+    BCMOLT_GPON_TRX_CFG_ID_BCDR_RANGING_RESYNC_CONDITIONS                                   = 9,    /**< bcdr ranging resync conditions. */
+    BCMOLT_GPON_TRX_CFG_ID_LA_RANGING_RESYNC_CONDITIONS                                     = 10,   /**< la ranging resync conditions. */
+    BCMOLT_GPON_TRX_CFG_ID_RX_CONFIGURATION                                                 = 11,   /**< RX configuration. */
+    BCMOLT_GPON_TRX_CFG_ID_RANGING_CONTROL_STAGES_CONFIGURATION                             = 12,   /**< ranging control stages configuration. */
+    BCMOLT_GPON_TRX_CFG_ID_ENERGY_DETECT                                                    = 13,   /**< Energy Detect. */
+    BCMOLT_GPON_TRX_CFG_ID_END_OF_BURST_DATA_PATTERN                                        = 14,   /**< end of burst data pattern . */
+    BCMOLT_GPON_TRX_CFG_ID_END_OF_BURST_RANGING_PATTERN                                     = 15,   /**< end of burst ranging pattern. */
+    BCMOLT_GPON_TRX_CFG_ID_PREAMBLE                                                         = 16,   /**< Preamble. */
+    BCMOLT_GPON_TRX_CFG_ID_DELIMITER                                                        = 17,   /**< Delimiter. */
+    BCMOLT_GPON_TRX_CFG_ID_GUARD_BITS                                                       = 18,   /**< Guard bits. */
+    BCMOLT_GPON_TRX_CFG_ID_SERDES_CONFIGURATION                                             = 19,   /**< serdes configuration. */
+    BCMOLT_GPON_TRX_CFG_ID_PLO_RANGING                                                      = 20,   /**< PLO for ranging. */
+    BCMOLT_GPON_TRX_CFG_ID_PLO_DATA                                                         = 21,   /**< PLO for data. */
+    BCMOLT_GPON_TRX_CFG_ID_RSSI_NORMAL_CONFIG                                               = 22,   /**< rssi normal config. */
+    BCMOLT_GPON_TRX_CFG_ID_RANGING_RSSI_RESYNC_CONTROL                                      = 23,   /**< ranging rssi resync control. */
+    BCMOLT_GPON_TRX_CFG_ID__NUM_OF  /**< Number of enum entries, not an entry itself. */
+} bcmolt_gpon_trx_cfg_id;
+
+/** Identifiers for all properties contained in the gpon_trx_key group. 
+ */
+typedef enum bcmolt_gpon_trx_key_id
+{
+    BCMOLT_GPON_TRX_KEY_ID__BEGIN                                                           = 0,
+    BCMOLT_GPON_TRX_KEY_ID_PON_NI                                                           = 0,    /**< PON network interface. */
+    BCMOLT_GPON_TRX_KEY_ID__NUM_OF  /**< Number of enum entries, not an entry itself. */
+} bcmolt_gpon_trx_key_id;
+
+/** Identifiers for all properties contained in the log_entry_auto_cfg group. 
+ */
+typedef enum bcmolt_log_entry_auto_cfg_id
+{
+    BCMOLT_LOG_ENTRY_AUTO_CFG_ID__BEGIN                                                     = 0,
+    BCMOLT_LOG_ENTRY_AUTO_CFG_ID_STAT_ALARM_CLEARED                                         = 0,    /**< Stat Alarm Cleared. */
+    BCMOLT_LOG_ENTRY_AUTO_CFG_ID_STAT_ALARM_RAISED                                          = 1,    /**< Stat Alarm Raised. */
+    BCMOLT_LOG_ENTRY_AUTO_CFG_ID__NUM_OF    /**< Number of enum entries, not an entry itself. */
+} bcmolt_log_entry_auto_cfg_id;
+
+/** Identifiers for all properties contained in the log_entry_cfg group. 
+ */
+typedef enum bcmolt_log_entry_cfg_id
+{
+    BCMOLT_LOG_ENTRY_CFG_ID__BEGIN                                                          = 0,
+    BCMOLT_LOG_ENTRY_CFG_ID_DEFAULT_LOG_LEVEL                                               = 0,    /**< default log level. */
+    BCMOLT_LOG_ENTRY_CFG_ID_DEFAULT_LOG_TYPE                                                = 1,    /**< default log type. */
+    BCMOLT_LOG_ENTRY_CFG_ID_LOG_LEVEL_PRINT                                                 = 2,    /**< log level print. */
+    BCMOLT_LOG_ENTRY_CFG_ID_LOG_LEVEL_SAVE                                                  = 3,    /**< log level save. */
+    BCMOLT_LOG_ENTRY_CFG_ID_LOG_TYPE                                                        = 4,    /**< log type. */
+    BCMOLT_LOG_ENTRY_CFG_ID_LOG_STYLE                                                       = 5,    /**< log_style. */
+    BCMOLT_LOG_ENTRY_CFG_ID_LOG_NAME                                                        = 6,    /**< log name. */
+    BCMOLT_LOG_ENTRY_CFG_ID__NUM_OF /**< Number of enum entries, not an entry itself. */
+} bcmolt_log_entry_cfg_id;
+
+/** Identifiers for all properties contained in the log_entry_key group. 
+ */
+typedef enum bcmolt_log_entry_key_id
+{
+    BCMOLT_LOG_ENTRY_KEY_ID__BEGIN                                                          = 0,
+    BCMOLT_LOG_ENTRY_KEY_ID_LOG_ID                                                          = 0,    /**< log id. */
+    BCMOLT_LOG_ENTRY_KEY_ID_RESERVED                                                        = 1,    /**< reserved. */
+    BCMOLT_LOG_ENTRY_KEY_ID_NAME                                                            = 2,    /**< name. */
+    BCMOLT_LOG_ENTRY_KEY_ID__NUM_OF /**< Number of enum entries, not an entry itself. */
+} bcmolt_log_entry_key_id;
+
+/** Identifiers for all properties contained in the log_entry_stat_alarm_cleared 
+ * group. 
+ */
+typedef enum bcmolt_log_entry_stat_alarm_cleared_id
+{
+    BCMOLT_LOG_ENTRY_STAT_ALARM_CLEARED_ID__BEGIN                                           = 0,
+    BCMOLT_LOG_ENTRY_STAT_ALARM_CLEARED_ID_STAT                                             = 0,    /**< Statistic ID. */
+    BCMOLT_LOG_ENTRY_STAT_ALARM_CLEARED_ID__NUM_OF  /**< Number of enum entries, not an entry itself. */
+} bcmolt_log_entry_stat_alarm_cleared_id;
+
+/** Identifiers for all properties contained in the log_entry_stat_alarm_raised 
+ * group. 
+ */
+typedef enum bcmolt_log_entry_stat_alarm_raised_id
+{
+    BCMOLT_LOG_ENTRY_STAT_ALARM_RAISED_ID__BEGIN                                            = 0,
+    BCMOLT_LOG_ENTRY_STAT_ALARM_RAISED_ID_STAT                                              = 0,    /**< Statistic ID. */
+    BCMOLT_LOG_ENTRY_STAT_ALARM_RAISED_ID__NUM_OF   /**< Number of enum entries, not an entry itself. */
+} bcmolt_log_entry_stat_alarm_raised_id;
+
+/** Identifiers for all properties contained in the log_entry_stat_cfg group. 
+ */
+typedef enum bcmolt_log_entry_stat_cfg_id
+{
+    BCMOLT_LOG_ENTRY_STAT_CFG_ID__BEGIN                                                     = 0,
+    BCMOLT_LOG_ENTRY_STAT_CFG_ID_CFG                                                        = 0,    /**< Configuration. */
+    BCMOLT_LOG_ENTRY_STAT_CFG_ID__NUM_OF    /**< Number of enum entries, not an entry itself. */
+} bcmolt_log_entry_stat_cfg_id;
+
+/** Identifiers for all properties contained in the log_entry_stat group. 
+ */
+typedef enum bcmolt_log_entry_stat_id
+{
+    BCMOLT_LOG_ENTRY_STAT_ID__BEGIN                                                         = 0,
+    BCMOLT_LOG_ENTRY_STAT_ID_MSG_COUNT                                                      = 0,    /**< msg count. */
+    BCMOLT_LOG_ENTRY_STAT_ID_LOST_MSG_COUNT                                                 = 1,    /**< lost msg count. */
+    BCMOLT_LOG_ENTRY_STAT_ID__NUM_OF    /**< Number of enum entries, not an entry itself. */
+} bcmolt_log_entry_stat_id;
+
+/** Identifiers for all properties contained in the logger_auto_cfg group. 
+ */
+typedef enum bcmolt_logger_auto_cfg_id
+{
+    BCMOLT_LOGGER_AUTO_CFG_ID__BEGIN                                                        = 0,
+    BCMOLT_LOGGER_AUTO_CFG_ID_STAT_ALARM_CLEARED                                            = 0,    /**< Stat Alarm Cleared. */
+    BCMOLT_LOGGER_AUTO_CFG_ID_STAT_ALARM_RAISED                                             = 1,    /**< Stat Alarm Raised. */
+    BCMOLT_LOGGER_AUTO_CFG_ID__NUM_OF   /**< Number of enum entries, not an entry itself. */
+} bcmolt_logger_auto_cfg_id;
+
+/** Identifiers for all properties contained in the logger_cfg group. 
+ */
+typedef enum bcmolt_logger_cfg_id
+{
+    BCMOLT_LOGGER_CFG_ID__BEGIN                                                             = 0,
+    BCMOLT_LOGGER_CFG_ID_BUFFER                                                             = 0,    /**< buffer. */
+    BCMOLT_LOGGER_CFG_ID_WRAP_AROUND                                                        = 1,    /**< wrap around. */
+    BCMOLT_LOGGER_CFG_ID_CLEAR_AFTER_READ                                                   = 2,    /**< clear_after_read. */
+    BCMOLT_LOGGER_CFG_ID_ENABLE_LOG                                                         = 3,    /**< enable log. */
+    BCMOLT_LOGGER_CFG_ID_LOG_NAMES                                                          = 4,    /**< log_names. */
+    BCMOLT_LOGGER_CFG_ID__NUM_OF        /**< Number of enum entries, not an entry itself. */
+} bcmolt_logger_cfg_id;
+
+/** Identifiers for all properties contained in the logger_clear_log group. 
+ */
+typedef enum bcmolt_logger_clear_log_id
+{
+    BCMOLT_LOGGER_CLEAR_LOG_ID__NUM_OF  /**< Number of enum entries, not an entry itself. */
+} bcmolt_logger_clear_log_id;
+
+/** Identifiers for all properties contained in the logger_key group. 
+ */
+typedef enum bcmolt_logger_key_id
+{
+    BCMOLT_LOGGER_KEY_ID__BEGIN                                                             = 0,
+    BCMOLT_LOGGER_KEY_ID_RESERVED                                                           = 0,    /**< reserved. */
+    BCMOLT_LOGGER_KEY_ID_FILE_ID                                                            = 1,    /**< file id. */
+    BCMOLT_LOGGER_KEY_ID__NUM_OF    /**< Number of enum entries, not an entry itself. */
+} bcmolt_logger_key_id;
+
+/** Identifiers for all properties contained in the logger_stat_alarm_cleared 
+ * group. 
+ */
+typedef enum bcmolt_logger_stat_alarm_cleared_id
+{
+    BCMOLT_LOGGER_STAT_ALARM_CLEARED_ID__BEGIN                                              = 0,
+    BCMOLT_LOGGER_STAT_ALARM_CLEARED_ID_STAT                                                = 0,    /**< Statistic ID. */
+    BCMOLT_LOGGER_STAT_ALARM_CLEARED_ID__NUM_OF /**< Number of enum entries, not an entry itself. */
+} bcmolt_logger_stat_alarm_cleared_id;
+
+/** Identifiers for all properties contained in the logger_stat_alarm_raised 
+ * group. 
+ */
+typedef enum bcmolt_logger_stat_alarm_raised_id
+{
+    BCMOLT_LOGGER_STAT_ALARM_RAISED_ID__BEGIN                                               = 0,
+    BCMOLT_LOGGER_STAT_ALARM_RAISED_ID_STAT                                                 = 0,    /**< Statistic ID. */
+    BCMOLT_LOGGER_STAT_ALARM_RAISED_ID__NUM_OF  /**< Number of enum entries, not an entry itself. */
+} bcmolt_logger_stat_alarm_raised_id;
+
+/** Identifiers for all properties contained in the logger_stat_cfg group. 
+ */
+typedef enum bcmolt_logger_stat_cfg_id
+{
+    BCMOLT_LOGGER_STAT_CFG_ID__BEGIN                                                        = 0,
+    BCMOLT_LOGGER_STAT_CFG_ID_CFG                                                           = 0,    /**< Configuration. */
+    BCMOLT_LOGGER_STAT_CFG_ID__NUM_OF   /**< Number of enum entries, not an entry itself. */
+} bcmolt_logger_stat_cfg_id;
+
+/** Identifiers for all properties contained in the logger_stat group. 
+ */
+typedef enum bcmolt_logger_stat_id
+{
+    BCMOLT_LOGGER_STAT_ID__BEGIN                                                            = 0,
+    BCMOLT_LOGGER_STAT_ID_LINES_IN_LOG                                                      = 0,    /**< lines in log. */
+    BCMOLT_LOGGER_STAT_ID__NUM_OF   /**< Number of enum entries, not an entry itself. */
+} bcmolt_logger_stat_id;
+
+/** Identifiers for all properties contained in the nni_auto_cfg group. 
+ */
+typedef enum bcmolt_nni_auto_cfg_id
+{
+    BCMOLT_NNI_AUTO_CFG_ID__BEGIN                                                           = 0,
+    BCMOLT_NNI_AUTO_CFG_ID_STAT_ALARM_CLEARED                                               = 0,    /**< Stat Alarm Cleared. */
+    BCMOLT_NNI_AUTO_CFG_ID_STAT_ALARM_RAISED                                                = 1,    /**< Stat Alarm Raised. */
+    BCMOLT_NNI_AUTO_CFG_ID_STATUS_CHANGED                                                   = 2,    /**< Status changed. */
+    BCMOLT_NNI_AUTO_CFG_ID__NUM_OF  /**< Number of enum entries, not an entry itself. */
+} bcmolt_nni_auto_cfg_id;
+
+/** Identifiers for all properties contained in the nni_cfg group. 
+ */
+typedef enum bcmolt_nni_cfg_id
+{
+    BCMOLT_NNI_CFG_ID__BEGIN                                                                = 0,
+    BCMOLT_NNI_CFG_ID_REMOTE_LOOPBACK                                                       = 0,    /**< Remote loopback. */
+    BCMOLT_NNI_CFG_ID_LINE_LOOPBACK                                                         = 1,    /**< Line loopback. */
+    BCMOLT_NNI_CFG_ID_MAC_ADDRESS                                                           = 2,    /**< Mac Address. */
+    BCMOLT_NNI_CFG_ID_NNI_STATUS                                                            = 3,    /**< NNI Status. */
+    BCMOLT_NNI_CFG_ID_NNI_BACKUP_STATUS                                                     = 4,    /**< NNI Backup Status. */
+    BCMOLT_NNI_CFG_ID_ACTIVE_NNI                                                            = 5,    /**< Active NNI. */
+    BCMOLT_NNI_CFG_ID_NNI_STATUS_POLLING_INTERVAL_MS                                        = 6,    /**< NNI Status Polling Interval (ms). */
+    BCMOLT_NNI_CFG_ID_AUTOSWITCH                                                            = 7,    /**< Auto-Switch. */
+    BCMOLT_NNI_CFG_ID_FLOW_CONTROL                                                          = 8,    /**< Flow Control. */
+    BCMOLT_NNI_CFG_ID__NUM_OF   /**< Number of enum entries, not an entry itself. */
+} bcmolt_nni_cfg_id;
+
+/** Identifiers for all properties contained in the nni_key group. 
+ */
+typedef enum bcmolt_nni_key_id
+{
+    BCMOLT_NNI_KEY_ID__BEGIN                                                                = 0,
+    BCMOLT_NNI_KEY_ID_PON_NI                                                                = 0,    /**< PON NI. */
+    BCMOLT_NNI_KEY_ID__NUM_OF   /**< Number of enum entries, not an entry itself. */
+} bcmolt_nni_key_id;
+
+/** Identifiers for all properties contained in the nni_serdes_cfg group. 
+ */
+typedef enum bcmolt_nni_serdes_cfg_id
+{
+    BCMOLT_NNI_SERDES_CFG_ID__BEGIN                                                         = 0,
+    BCMOLT_NNI_SERDES_CFG_ID_RX_VGA                                                         = 0,    /**< Rx Vga. */
+    BCMOLT_NNI_SERDES_CFG_ID_RX_PF                                                          = 1,    /**< Rx PF. */
+    BCMOLT_NNI_SERDES_CFG_ID_RX_LFPF                                                        = 2,    /**< Rx LFPF. */
+    BCMOLT_NNI_SERDES_CFG_ID_RX_DFE1                                                        = 3,    /**< Rx DFE1. */
+    BCMOLT_NNI_SERDES_CFG_ID_RX_DFE2                                                        = 4,    /**< Rx DFE2. */
+    BCMOLT_NNI_SERDES_CFG_ID_RX_DFE3                                                        = 5,    /**< Rx DFE3. */
+    BCMOLT_NNI_SERDES_CFG_ID_RX_DFE4                                                        = 6,    /**< Rx DFE4. */
+    BCMOLT_NNI_SERDES_CFG_ID_RX_DFE5                                                        = 7,    /**< Rx DFE5. */
+    BCMOLT_NNI_SERDES_CFG_ID_TX_PRE                                                         = 8,    /**< Tx Pre. */
+    BCMOLT_NNI_SERDES_CFG_ID_TX_MAIN                                                        = 9,    /**< Tx Main. */
+    BCMOLT_NNI_SERDES_CFG_ID_TX_POST1                                                       = 10,   /**< Tx Post1. */
+    BCMOLT_NNI_SERDES_CFG_ID_TX_POST2                                                       = 11,   /**< Tx Post2. */
+    BCMOLT_NNI_SERDES_CFG_ID_TX_POST3                                                       = 12,   /**< Tx Post3. */
+    BCMOLT_NNI_SERDES_CFG_ID_TX_AMP                                                         = 13,   /**< Tx Amp. */
+    BCMOLT_NNI_SERDES_CFG_ID__NUM_OF    /**< Number of enum entries, not an entry itself. */
+} bcmolt_nni_serdes_cfg_id;
+
+/** Identifiers for all properties contained in the nni_serdes_key group. 
+ */
+typedef enum bcmolt_nni_serdes_key_id
+{
+    BCMOLT_NNI_SERDES_KEY_ID__BEGIN                                                         = 0,
+    BCMOLT_NNI_SERDES_KEY_ID_PON_NI                                                         = 0,    /**< PON NI. */
+    BCMOLT_NNI_SERDES_KEY_ID_INSTANCE                                                       = 1,    /**< Instance. */
+    BCMOLT_NNI_SERDES_KEY_ID__NUM_OF    /**< Number of enum entries, not an entry itself. */
+} bcmolt_nni_serdes_key_id;
+
+/** Identifiers for all properties contained in the nni_stat_alarm_cleared 
+ * group. 
+ */
+typedef enum bcmolt_nni_stat_alarm_cleared_id
+{
+    BCMOLT_NNI_STAT_ALARM_CLEARED_ID__BEGIN                                                 = 0,
+    BCMOLT_NNI_STAT_ALARM_CLEARED_ID_STAT                                                   = 0,    /**< Statistic ID. */
+    BCMOLT_NNI_STAT_ALARM_CLEARED_ID__NUM_OF    /**< Number of enum entries, not an entry itself. */
+} bcmolt_nni_stat_alarm_cleared_id;
+
+/** Identifiers for all properties contained in the nni_stat_alarm_raised group. 
+ */
+typedef enum bcmolt_nni_stat_alarm_raised_id
+{
+    BCMOLT_NNI_STAT_ALARM_RAISED_ID__BEGIN                                                  = 0,
+    BCMOLT_NNI_STAT_ALARM_RAISED_ID_STAT                                                    = 0,    /**< Statistic ID. */
+    BCMOLT_NNI_STAT_ALARM_RAISED_ID__NUM_OF /**< Number of enum entries, not an entry itself. */
+} bcmolt_nni_stat_alarm_raised_id;
+
+/** Identifiers for all properties contained in the nni_stat_cfg group. 
+ */
+typedef enum bcmolt_nni_stat_cfg_id
+{
+    BCMOLT_NNI_STAT_CFG_ID__BEGIN                                                           = 0,
+    BCMOLT_NNI_STAT_CFG_ID_CFG                                                              = 0,    /**< Configuration. */
+    BCMOLT_NNI_STAT_CFG_ID__NUM_OF  /**< Number of enum entries, not an entry itself. */
+} bcmolt_nni_stat_cfg_id;
+
+/** Identifiers for all properties contained in the nni_stat group. 
+ */
+typedef enum bcmolt_nni_stat_id
+{
+    BCMOLT_NNI_STAT_ID__BEGIN                                                               = 0,
+    BCMOLT_NNI_STAT_ID_RX_FRAMES_64                                                         = 0,    /**< RX 64 Byte Frames. */
+    BCMOLT_NNI_STAT_ID_RX_FRAMES_65_127                                                     = 1,    /**< RX 65-127 Byte Frames. */
+    BCMOLT_NNI_STAT_ID_RX_FRAMES_128_255                                                    = 2,    /**< RX 128-255 Byte Frames. */
+    BCMOLT_NNI_STAT_ID_RX_FRAMES_256_511                                                    = 3,    /**< RX 256-511 Byte Frames. */
+    BCMOLT_NNI_STAT_ID_RX_FRAMES_512_1023                                                   = 4,    /**< RX 512-1023 Byte Frames. */
+    BCMOLT_NNI_STAT_ID_RX_FRAMES_1024_1518                                                  = 5,    /**< RX 1024-1518 Byte Frames. */
+    BCMOLT_NNI_STAT_ID_RX_FRAMES_1519_2047                                                  = 6,    /**< RX 1519-2047 Byte Frames. */
+    BCMOLT_NNI_STAT_ID_RX_FRAMES_2048_4095                                                  = 7,    /**< RX 2048-4095 Byte Frames. */
+    BCMOLT_NNI_STAT_ID_RX_FRAMES_4096_9216                                                  = 8,    /**< RX 4096-9216 Byte Frames. */
+    BCMOLT_NNI_STAT_ID_RX_FRAMES_9217_16383                                                 = 9,    /**< RX 9217-16383 Byte Frames. */
+    BCMOLT_NNI_STAT_ID_RX_FRAMES                                                            = 10,   /**< RX Frames. */
+    BCMOLT_NNI_STAT_ID_RX_BYTES                                                             = 11,   /**< RX Bytes. */
+    BCMOLT_NNI_STAT_ID_RX_GOOD_FRAMES                                                       = 12,   /**< RX Good Frames. */
+    BCMOLT_NNI_STAT_ID_RX_UNICAST_FRAMES                                                    = 13,   /**< RX Unicast Frames. */
+    BCMOLT_NNI_STAT_ID_RX_MULTICAST_FRAMES                                                  = 14,   /**< RX Multicast Frames. */
+    BCMOLT_NNI_STAT_ID_RX_BROADCAST_FRAMES                                                  = 15,   /**< RX Broadcast Frames. */
+    BCMOLT_NNI_STAT_ID_RX_FCS_ERRORS                                                        = 16,   /**< RX FCS Errors. */
+    BCMOLT_NNI_STAT_ID_RX_CONTROL_FRAMES                                                    = 17,   /**< RX Control Frames. */
+    BCMOLT_NNI_STAT_ID_RX_PAUSE_FRAMES                                                      = 18,   /**< RX Pause Frames. */
+    BCMOLT_NNI_STAT_ID_RX_PFC_FRAMES                                                        = 19,   /**< RX PFC Frames. */
+    BCMOLT_NNI_STAT_ID_RX_UNSUPPORTED_OPCODE                                                = 20,   /**< RX Unsupported Opcode Frames. */
+    BCMOLT_NNI_STAT_ID_RX_UNSUPPORTED_DA                                                    = 21,   /**< RX Unsupported DA Frames. */
+    BCMOLT_NNI_STAT_ID_RX_ALIGNMENT_ERRORS                                                  = 22,   /**< RX Alignment Errors. */
+    BCMOLT_NNI_STAT_ID_RX_LENGTH_OUT_OF_RANGE                                               = 23,   /**< RX Length Out of Range. */
+    BCMOLT_NNI_STAT_ID_RX_CODE_ERRORS                                                       = 24,   /**< RX Code Errors. */
+    BCMOLT_NNI_STAT_ID_RX_OVERSIZED_FRAMES                                                  = 25,   /**< RX Oversized Frames. */
+    BCMOLT_NNI_STAT_ID_RX_JABBER_FRAMES                                                     = 26,   /**< RX Jabber Frames. */
+    BCMOLT_NNI_STAT_ID_RX_MTU_CHECK_ERRORS                                                  = 27,   /**< RX MTU Check Errors. */
+    BCMOLT_NNI_STAT_ID_RX_PROMISCUOUS_FRAMES                                                = 28,   /**< RX Promiscuous Frames. */
+    BCMOLT_NNI_STAT_ID_RX_VLAN_FRAMES                                                       = 29,   /**< RX VLAN Frames. */
+    BCMOLT_NNI_STAT_ID_RX_DOUBLE_VLAN_FRAMES                                                = 30,   /**< RX Double VLAN Frames. */
+    BCMOLT_NNI_STAT_ID_RX_TRUNCATED_FRAMES                                                  = 31,   /**< RX Truncated Frames. */
+    BCMOLT_NNI_STAT_ID_RX_UNDERSIZE_FRAMES                                                  = 32,   /**< RX Undersized Frames. */
+    BCMOLT_NNI_STAT_ID_RX_FRAGMENTED_FRAMES                                                 = 33,   /**< RX Fragmented Frames. */
+    BCMOLT_NNI_STAT_ID_RX_RUNT_FRAMES                                                       = 34,   /**< RX Runt Frames. */
+    BCMOLT_NNI_STAT_ID_TX_FRAMES_64                                                         = 35,   /**< TX 64 Byte Frames. */
+    BCMOLT_NNI_STAT_ID_TX_FRAMES_65_127                                                     = 36,   /**< TX 65-127 Byte Frames. */
+    BCMOLT_NNI_STAT_ID_TX_FRAMES_128_255                                                    = 37,   /**< TX 128-255 Byte Frames. */
+    BCMOLT_NNI_STAT_ID_TX_FRAMES_256_511                                                    = 38,   /**< TX 256-511 Byte Frames. */
+    BCMOLT_NNI_STAT_ID_TX_FRAMES_512_1023                                                   = 39,   /**< TX 512-1023 Byte Frames. */
+    BCMOLT_NNI_STAT_ID_TX_FRAMES_1024_1518                                                  = 40,   /**< TX 1024-1518 Byte Frames. */
+    BCMOLT_NNI_STAT_ID_TX_FRAMES_1519_2047                                                  = 41,   /**< TX 1519-2047 Byte Frames. */
+    BCMOLT_NNI_STAT_ID_TX_FRAMES_2048_4095                                                  = 42,   /**< TX 2048-4095 Byte Frames. */
+    BCMOLT_NNI_STAT_ID_TX_FRAMES_4096_9216                                                  = 43,   /**< TX 4096-9216 Byte Frames. */
+    BCMOLT_NNI_STAT_ID_TX_FRAMES_9217_16383                                                 = 44,   /**< TX 9217-16383 Byte Frames. */
+    BCMOLT_NNI_STAT_ID_TX_FRAMES                                                            = 45,   /**< TX Frames. */
+    BCMOLT_NNI_STAT_ID_TX_BYTES                                                             = 46,   /**< TX Bytes. */
+    BCMOLT_NNI_STAT_ID_TX_GOOD_FRAMES                                                       = 47,   /**< TX Good Frames. */
+    BCMOLT_NNI_STAT_ID_TX_UNICAST_FRAMES                                                    = 48,   /**< TX Unicast Frames. */
+    BCMOLT_NNI_STAT_ID_TX_MULTICAST_FRAMES                                                  = 49,   /**< TX Multicast Frames. */
+    BCMOLT_NNI_STAT_ID_TX_BROADCAST_FRAMES                                                  = 50,   /**< TX Broadcast Frames. */
+    BCMOLT_NNI_STAT_ID_TX_PAUSE_FRAMES                                                      = 51,   /**< TX Pause Frames. */
+    BCMOLT_NNI_STAT_ID_TX_PFC_FRAMES                                                        = 52,   /**< TX PFC Frames. */
+    BCMOLT_NNI_STAT_ID_TX_JABBER_FRAMES                                                     = 53,   /**< TX Jabber Frames. */
+    BCMOLT_NNI_STAT_ID_TX_FCS_ERRORS                                                        = 54,   /**< TX FCS Errors. */
+    BCMOLT_NNI_STAT_ID_TX_CONTROL_FRAMES                                                    = 55,   /**< TX Control Frames. */
+    BCMOLT_NNI_STAT_ID_TX_OVERSIZE_FRAMES                                                   = 56,   /**< TX Oversize Frames. */
+    BCMOLT_NNI_STAT_ID_TX_FRAGMENTED_FRAMES                                                 = 57,   /**< TX Fragmented Frames. */
+    BCMOLT_NNI_STAT_ID_TX_ERROR_FRAMES                                                      = 58,   /**< TX Error Frames. */
+    BCMOLT_NNI_STAT_ID_TX_VLAN_FRAMES                                                       = 59,   /**< TX VLAN Frames. */
+    BCMOLT_NNI_STAT_ID_TX_DOUBLE_VLAN_FRAMES                                                = 60,   /**< TX Double VLAN Frames. */
+    BCMOLT_NNI_STAT_ID_TX_RUNT_FRAMES                                                       = 61,   /**< TX Runt Frames. */
+    BCMOLT_NNI_STAT_ID_TX_UNDERRUN_FRAMES                                                   = 62,   /**< TX Underrun Frames. */
+    BCMOLT_NNI_STAT_ID__NUM_OF  /**< Number of enum entries, not an entry itself. */
+} bcmolt_nni_stat_id;
+
+/** Identifiers for all properties contained in the nni_status_changed group. 
+ */
+typedef enum bcmolt_nni_status_changed_id
+{
+    BCMOLT_NNI_STATUS_CHANGED_ID__BEGIN                                                     = 0,
+    BCMOLT_NNI_STATUS_CHANGED_ID_NEW_STATUS                                                 = 0,    /**< New NNI Link Status. */
+    BCMOLT_NNI_STATUS_CHANGED_ID_LINK                                                       = 1,    /**< Link. */
+    BCMOLT_NNI_STATUS_CHANGED_ID_PREVIOUS_ACTIVE                                            = 2,    /**< Previous Active. */
+    BCMOLT_NNI_STATUS_CHANGED_ID_NEW_ACTIVE                                                 = 3,    /**< New Active. */
+    BCMOLT_NNI_STATUS_CHANGED_ID__NUM_OF    /**< Number of enum entries, not an entry itself. */
+} bcmolt_nni_status_changed_id;
+
+/** Identifiers for all properties contained in the software_error_cfg group. 
+ */
+typedef enum bcmolt_software_error_cfg_id
+{
+    BCMOLT_SOFTWARE_ERROR_CFG_ID__BEGIN                                                     = 0,
+    BCMOLT_SOFTWARE_ERROR_CFG_ID_ENTRY                                                      = 0,    /**< Entry. */
+    BCMOLT_SOFTWARE_ERROR_CFG_ID__NUM_OF    /**< Number of enum entries, not an entry itself. */
+} bcmolt_software_error_cfg_id;
+
+/** Identifiers for all properties contained in the software_error_key group. 
+ */
+typedef enum bcmolt_software_error_key_id
+{
+    BCMOLT_SOFTWARE_ERROR_KEY_ID__BEGIN                                                     = 0,
+    BCMOLT_SOFTWARE_ERROR_KEY_ID_RESERVED                                                   = 0,    /**< Reserved. */
+    BCMOLT_SOFTWARE_ERROR_KEY_ID_IDX                                                        = 1,    /**< Index. */
+    BCMOLT_SOFTWARE_ERROR_KEY_ID__NUM_OF    /**< Number of enum entries, not an entry itself. */
+} bcmolt_software_error_key_id;
+
+/** Identifiers for all properties contained in the trx_calibration_auto_cfg 
+ * group. 
+ */
+typedef enum bcmolt_trx_calibration_auto_cfg_id
+{
+    BCMOLT_TRX_CALIBRATION_AUTO_CFG_ID__BEGIN                                               = 0,
+    BCMOLT_TRX_CALIBRATION_AUTO_CFG_ID_CAPTURE_WINDOW_AND_STATISTIC_COMPLETED               = 0,    /**< Capture window and statistic completed. */
+    BCMOLT_TRX_CALIBRATION_AUTO_CFG_ID__NUM_OF  /**< Number of enum entries, not an entry itself. */
+} bcmolt_trx_calibration_auto_cfg_id;
+
+/** Identifiers for all properties contained in the 
+ * trx_calibration_capture_window_and_statistic_completed group. 
+ */
+typedef enum bcmolt_trx_calibration_capture_window_and_statistic_completed_id
+{
+    BCMOLT_TRX_CALIBRATION_CAPTURE_WINDOW_AND_STATISTIC_COMPLETED_ID__BEGIN                 = 0,
+    BCMOLT_TRX_CALIBRATION_CAPTURE_WINDOW_AND_STATISTIC_COMPLETED_ID_DATA_WINDOW            = 0,    /**< data window. */
+    BCMOLT_TRX_CALIBRATION_CAPTURE_WINDOW_AND_STATISTIC_COMPLETED_ID_STROBE_WINDOW          = 1,    /**< strobe window. */
+    BCMOLT_TRX_CALIBRATION_CAPTURE_WINDOW_AND_STATISTIC_COMPLETED_ID_EDGE_RISE_MIN_MIN      = 2,    /**< edge rise min min. */
+    BCMOLT_TRX_CALIBRATION_CAPTURE_WINDOW_AND_STATISTIC_COMPLETED_ID_EDGE_RISE_MIN_MAX      = 3,    /**< edge rise min max. */
+    BCMOLT_TRX_CALIBRATION_CAPTURE_WINDOW_AND_STATISTIC_COMPLETED_ID_EDGE_RISE_MAX_MIN      = 4,    /**< edge rise max min. */
+    BCMOLT_TRX_CALIBRATION_CAPTURE_WINDOW_AND_STATISTIC_COMPLETED_ID_EDGE_RISE_MAX_MAX      = 5,    /**< edge rise max max. */
+    BCMOLT_TRX_CALIBRATION_CAPTURE_WINDOW_AND_STATISTIC_COMPLETED_ID_EDGE_FALL_MIN_MIN      = 6,    /**< edge fall min min . */
+    BCMOLT_TRX_CALIBRATION_CAPTURE_WINDOW_AND_STATISTIC_COMPLETED_ID_EDGE_FALL_MIN_MAX      = 7,    /**< edge fall min max. */
+    BCMOLT_TRX_CALIBRATION_CAPTURE_WINDOW_AND_STATISTIC_COMPLETED_ID_EDGE_FALL_MAX_MIN      = 8,    /**< edge fall max min. */
+    BCMOLT_TRX_CALIBRATION_CAPTURE_WINDOW_AND_STATISTIC_COMPLETED_ID_EDGE_FALL_MAX_MAX      = 9,    /**< edge fall max max. */
+    BCMOLT_TRX_CALIBRATION_CAPTURE_WINDOW_AND_STATISTIC_COMPLETED_ID_RESULT                 = 10,   /**< result. */
+    BCMOLT_TRX_CALIBRATION_CAPTURE_WINDOW_AND_STATISTIC_COMPLETED_ID__NUM_OF                        /**< Number of enum entries, not an entry itself. */
+} bcmolt_trx_calibration_capture_window_and_statistic_completed_id;
+
+/** Identifiers for all properties contained in the trx_calibration_key group. 
+ */
+typedef enum bcmolt_trx_calibration_key_id
+{
+    BCMOLT_TRX_CALIBRATION_KEY_ID__BEGIN                                                    = 0,
+    BCMOLT_TRX_CALIBRATION_KEY_ID_RESERVED                                                  = 0,    /**< Reserved. */
+    BCMOLT_TRX_CALIBRATION_KEY_ID__NUM_OF   /**< Number of enum entries, not an entry itself. */
+} bcmolt_trx_calibration_key_id;
+
+/** Identifiers for all properties contained in the 
+ * trx_calibration_start_capture_window group. 
+ */
+typedef enum bcmolt_trx_calibration_start_capture_window_id
+{
+    BCMOLT_TRX_CALIBRATION_START_CAPTURE_WINDOW_ID__BEGIN                                   = 0,
+    BCMOLT_TRX_CALIBRATION_START_CAPTURE_WINDOW_ID_PON_NI                                   = 0,    /**< pon_ni. */
+    BCMOLT_TRX_CALIBRATION_START_CAPTURE_WINDOW_ID_TRIGGER                                  = 1,    /**< trigger. */
+    BCMOLT_TRX_CALIBRATION_START_CAPTURE_WINDOW_ID_STROBE                                   = 2,    /**< strobe. */
+    BCMOLT_TRX_CALIBRATION_START_CAPTURE_WINDOW_ID_WINDOW_MODE                              = 3,    /**< window mode. */
+    BCMOLT_TRX_CALIBRATION_START_CAPTURE_WINDOW_ID_ONU_ID                                   = 4,    /**< onu id. */
+    BCMOLT_TRX_CALIBRATION_START_CAPTURE_WINDOW_ID_TRIGGER_POSITION                         = 5,    /**< trigger position. */
+    BCMOLT_TRX_CALIBRATION_START_CAPTURE_WINDOW_ID_STOP_DUE_TO_CORRUPT_STROBE               = 6,    /**< stop due to corrupt strobe. */
+    BCMOLT_TRX_CALIBRATION_START_CAPTURE_WINDOW_ID_START_OFFSET                             = 7,    /**< start offset. */
+    BCMOLT_TRX_CALIBRATION_START_CAPTURE_WINDOW_ID_END_OFFSET                               = 8,    /**< end offset. */
+    BCMOLT_TRX_CALIBRATION_START_CAPTURE_WINDOW_ID_NUMBER_OF_CYCLES                         = 9,    /**< number of cycles. */
+    BCMOLT_TRX_CALIBRATION_START_CAPTURE_WINDOW_ID__NUM_OF  /**< Number of enum entries, not an entry itself. */
+} bcmolt_trx_calibration_start_capture_window_id;
+
+/** Identifiers for all properties contained in the 
+ * trx_calibration_stop_capture_window group. 
+ */
+typedef enum bcmolt_trx_calibration_stop_capture_window_id
+{
+    BCMOLT_TRX_CALIBRATION_STOP_CAPTURE_WINDOW_ID__BEGIN                                    = 0,
+    BCMOLT_TRX_CALIBRATION_STOP_CAPTURE_WINDOW_ID_PON_NI                                    = 0,    /**< pon_ni. */
+    BCMOLT_TRX_CALIBRATION_STOP_CAPTURE_WINDOW_ID__NUM_OF   /**< Number of enum entries, not an entry itself. */
+} bcmolt_trx_calibration_stop_capture_window_id;
+
+/** Identifiers for all properties contained in the xgpon_alloc_auto_cfg group. 
+ */
+typedef enum bcmolt_xgpon_alloc_auto_cfg_id
+{
+    BCMOLT_XGPON_ALLOC_AUTO_CFG_ID__BEGIN                                                   = 0,
+    BCMOLT_XGPON_ALLOC_AUTO_CFG_ID_CONFIGURATION_COMPLETED                                  = 0,    /**< Configuration Completed. */
+    BCMOLT_XGPON_ALLOC_AUTO_CFG_ID_GET_ALLOC_STATS_COMPLETED                                = 1,    /**< Get alloc ID statistics completed. */
+    BCMOLT_XGPON_ALLOC_AUTO_CFG_ID_STAT_ALARM_CLEARED                                       = 2,    /**< Stat Alarm Cleared. */
+    BCMOLT_XGPON_ALLOC_AUTO_CFG_ID_STAT_ALARM_RAISED                                        = 3,    /**< Stat Alarm Raised. */
+    BCMOLT_XGPON_ALLOC_AUTO_CFG_ID__NUM_OF  /**< Number of enum entries, not an entry itself. */
+} bcmolt_xgpon_alloc_auto_cfg_id;
+
+/** Identifiers for all properties contained in the xgpon_alloc_cfg group. 
+ */
+typedef enum bcmolt_xgpon_alloc_cfg_id
+{
+    BCMOLT_XGPON_ALLOC_CFG_ID__BEGIN                                                        = 0,
+    BCMOLT_XGPON_ALLOC_CFG_ID_STATE                                                         = 0,    /**< state. */
+    BCMOLT_XGPON_ALLOC_CFG_ID_SLA                                                           = 1,    /**< sla. */
+    BCMOLT_XGPON_ALLOC_CFG_ID_ONU_ID                                                        = 2,    /**< onu_id. */
+    BCMOLT_XGPON_ALLOC_CFG_ID_COLLECT_STATS                                                 = 3,    /**< Enable statistics collection on the alloc id. */
+    BCMOLT_XGPON_ALLOC_CFG_ID__NUM_OF   /**< Number of enum entries, not an entry itself. */
+} bcmolt_xgpon_alloc_cfg_id;
+
+/** Identifiers for all properties contained in the 
+ * xgpon_alloc_configuration_completed group. 
+ */
+typedef enum bcmolt_xgpon_alloc_configuration_completed_id
+{
+    BCMOLT_XGPON_ALLOC_CONFIGURATION_COMPLETED_ID__BEGIN                                    = 0,
+    BCMOLT_XGPON_ALLOC_CONFIGURATION_COMPLETED_ID_STATUS                                    = 0,    /**< status. */
+    BCMOLT_XGPON_ALLOC_CONFIGURATION_COMPLETED_ID_NEW_STATE                                 = 1,    /**< new state. */
+    BCMOLT_XGPON_ALLOC_CONFIGURATION_COMPLETED_ID__NUM_OF   /**< Number of enum entries, not an entry itself. */
+} bcmolt_xgpon_alloc_configuration_completed_id;
+
+/** Identifiers for all properties contained in the 
+ * xgpon_alloc_get_alloc_stats_completed group. 
+ */
+typedef enum bcmolt_xgpon_alloc_get_alloc_stats_completed_id
+{
+    BCMOLT_XGPON_ALLOC_GET_ALLOC_STATS_COMPLETED_ID__BEGIN                                  = 0,
+    BCMOLT_XGPON_ALLOC_GET_ALLOC_STATS_COMPLETED_ID_STATUS                                  = 0,    /**< status. */
+    BCMOLT_XGPON_ALLOC_GET_ALLOC_STATS_COMPLETED_ID_AVERAGE_NSR_USED                        = 1,    /**< Average NSR used words. */
+    BCMOLT_XGPON_ALLOC_GET_ALLOC_STATS_COMPLETED_ID_AVERAGE_NSR_ALLOCATED                   = 2,    /**< Average NSR allocated words. */
+    BCMOLT_XGPON_ALLOC_GET_ALLOC_STATS_COMPLETED_ID_AVERAGE_SR_REPORT                       = 3,    /**< Average SR report. */
+    BCMOLT_XGPON_ALLOC_GET_ALLOC_STATS_COMPLETED_ID__NUM_OF /**< Number of enum entries, not an entry itself. */
+} bcmolt_xgpon_alloc_get_alloc_stats_completed_id;
+
+/** Identifiers for all properties contained in the xgpon_alloc_get_stats group. 
+ */
+typedef enum bcmolt_xgpon_alloc_get_stats_id
+{
+    BCMOLT_XGPON_ALLOC_GET_STATS_ID__BEGIN                                                  = 0,
+    BCMOLT_XGPON_ALLOC_GET_STATS_ID_NUM_OF_CYCLES                                           = 0,    /**< Number of cycles. */
+    BCMOLT_XGPON_ALLOC_GET_STATS_ID__NUM_OF /**< Number of enum entries, not an entry itself. */
+} bcmolt_xgpon_alloc_get_stats_id;
+
+/** Identifiers for all properties contained in the xgpon_alloc_key group. 
+ */
+typedef enum bcmolt_xgpon_alloc_key_id
+{
+    BCMOLT_XGPON_ALLOC_KEY_ID__BEGIN                                                        = 0,
+    BCMOLT_XGPON_ALLOC_KEY_ID_PON_NI                                                        = 0,    /**< PON network interface. */
+    BCMOLT_XGPON_ALLOC_KEY_ID_ALLOC_ID                                                      = 1,    /**< Alloc ID. */
+    BCMOLT_XGPON_ALLOC_KEY_ID__NUM_OF   /**< Number of enum entries, not an entry itself. */
+} bcmolt_xgpon_alloc_key_id;
+
+/** Identifiers for all properties contained in the xgpon_alloc_set_state group. 
+ */
+typedef enum bcmolt_xgpon_alloc_set_state_id
+{
+    BCMOLT_XGPON_ALLOC_SET_STATE_ID__BEGIN                                                  = 0,
+    BCMOLT_XGPON_ALLOC_SET_STATE_ID_STATE                                                   = 0,    /**< State. */
+    BCMOLT_XGPON_ALLOC_SET_STATE_ID__NUM_OF /**< Number of enum entries, not an entry itself. */
+} bcmolt_xgpon_alloc_set_state_id;
+
+/** Identifiers for all properties contained in the 
+ * xgpon_alloc_stat_alarm_cleared group. 
+ */
+typedef enum bcmolt_xgpon_alloc_stat_alarm_cleared_id
+{
+    BCMOLT_XGPON_ALLOC_STAT_ALARM_CLEARED_ID__BEGIN                                         = 0,
+    BCMOLT_XGPON_ALLOC_STAT_ALARM_CLEARED_ID_STAT                                           = 0,    /**< Statistic ID. */
+    BCMOLT_XGPON_ALLOC_STAT_ALARM_CLEARED_ID__NUM_OF    /**< Number of enum entries, not an entry itself. */
+} bcmolt_xgpon_alloc_stat_alarm_cleared_id;
+
+/** Identifiers for all properties contained in the 
+ * xgpon_alloc_stat_alarm_raised group. 
+ */
+typedef enum bcmolt_xgpon_alloc_stat_alarm_raised_id
+{
+    BCMOLT_XGPON_ALLOC_STAT_ALARM_RAISED_ID__BEGIN                                          = 0,
+    BCMOLT_XGPON_ALLOC_STAT_ALARM_RAISED_ID_STAT                                            = 0,    /**< Statistic ID. */
+    BCMOLT_XGPON_ALLOC_STAT_ALARM_RAISED_ID__NUM_OF /**< Number of enum entries, not an entry itself. */
+} bcmolt_xgpon_alloc_stat_alarm_raised_id;
+
+/** Identifiers for all properties contained in the xgpon_alloc_stat_cfg group. 
+ */
+typedef enum bcmolt_xgpon_alloc_stat_cfg_id
+{
+    BCMOLT_XGPON_ALLOC_STAT_CFG_ID__BEGIN                                                   = 0,
+    BCMOLT_XGPON_ALLOC_STAT_CFG_ID_CFG                                                      = 0,    /**< Configuration. */
+    BCMOLT_XGPON_ALLOC_STAT_CFG_ID__NUM_OF  /**< Number of enum entries, not an entry itself. */
+} bcmolt_xgpon_alloc_stat_cfg_id;
+
+/** Identifiers for all properties contained in the xgpon_alloc_stat group. 
+ */
+typedef enum bcmolt_xgpon_alloc_stat_id
+{
+    BCMOLT_XGPON_ALLOC_STAT_ID__BEGIN                                                       = 0,
+    BCMOLT_XGPON_ALLOC_STAT_ID_RX_BYTES                                                     = 0,    /**< Received Bytes. */
+    BCMOLT_XGPON_ALLOC_STAT_ID__NUM_OF  /**< Number of enum entries, not an entry itself. */
+} bcmolt_xgpon_alloc_stat_id;
+
+/** Identifiers for all properties contained in the xgpon_gem_port_auto_cfg 
+ * group. 
+ */
+typedef enum bcmolt_xgpon_gem_port_auto_cfg_id
+{
+    BCMOLT_XGPON_GEM_PORT_AUTO_CFG_ID__BEGIN                                                = 0,
+    BCMOLT_XGPON_GEM_PORT_AUTO_CFG_ID_STAT_ALARM_CLEARED                                    = 0,    /**< Stat Alarm Cleared. */
+    BCMOLT_XGPON_GEM_PORT_AUTO_CFG_ID_STAT_ALARM_RAISED                                     = 1,    /**< Stat Alarm Raised. */
+    BCMOLT_XGPON_GEM_PORT_AUTO_CFG_ID__NUM_OF   /**< Number of enum entries, not an entry itself. */
+} bcmolt_xgpon_gem_port_auto_cfg_id;
+
+/** Identifiers for all properties contained in the xgpon_gem_port_cfg group. 
+ */
+typedef enum bcmolt_xgpon_gem_port_cfg_id
+{
+    BCMOLT_XGPON_GEM_PORT_CFG_ID__BEGIN                                                     = 0,
+    BCMOLT_XGPON_GEM_PORT_CFG_ID_CONFIGURATION                                              = 0,    /**< Configuration. */
+    BCMOLT_XGPON_GEM_PORT_CFG_ID_ONU_ID                                                     = 1,    /**< ONU ID. */
+    BCMOLT_XGPON_GEM_PORT_CFG_ID_GEM_PORT_STATE                                             = 2,    /**< gem port state. */
+    BCMOLT_XGPON_GEM_PORT_CFG_ID_ENCRYPTION_MODE                                            = 3,    /**< Encryption mode. */
+    BCMOLT_XGPON_GEM_PORT_CFG_ID_UPSTREAM_DESTINATION_QUEUE                                 = 4,    /**< Upstream destination queue. */
+    BCMOLT_XGPON_GEM_PORT_CFG_ID_CONTROL                                                    = 5,    /**< control. */
+    BCMOLT_XGPON_GEM_PORT_CFG_ID__NUM_OF    /**< Number of enum entries, not an entry itself. */
+} bcmolt_xgpon_gem_port_cfg_id;
+
+/** Identifiers for all properties contained in the xgpon_gem_port_key group. 
+ */
+typedef enum bcmolt_xgpon_gem_port_key_id
+{
+    BCMOLT_XGPON_GEM_PORT_KEY_ID__BEGIN                                                     = 0,
+    BCMOLT_XGPON_GEM_PORT_KEY_ID_PON_NI                                                     = 0,    /**< PON network interface. */
+    BCMOLT_XGPON_GEM_PORT_KEY_ID_GEM_PORT_ID                                                = 1,    /**< GEM PORT ID. */
+    BCMOLT_XGPON_GEM_PORT_KEY_ID__NUM_OF    /**< Number of enum entries, not an entry itself. */
+} bcmolt_xgpon_gem_port_key_id;
+
+/** Identifiers for all properties contained in the 
+ * xgpon_gem_port_stat_alarm_cleared group. 
+ */
+typedef enum bcmolt_xgpon_gem_port_stat_alarm_cleared_id
+{
+    BCMOLT_XGPON_GEM_PORT_STAT_ALARM_CLEARED_ID__BEGIN                                      = 0,
+    BCMOLT_XGPON_GEM_PORT_STAT_ALARM_CLEARED_ID_STAT                                        = 0,    /**< Statistic ID. */
+    BCMOLT_XGPON_GEM_PORT_STAT_ALARM_CLEARED_ID__NUM_OF /**< Number of enum entries, not an entry itself. */
+} bcmolt_xgpon_gem_port_stat_alarm_cleared_id;
+
+/** Identifiers for all properties contained in the 
+ * xgpon_gem_port_stat_alarm_raised group. 
+ */
+typedef enum bcmolt_xgpon_gem_port_stat_alarm_raised_id
+{
+    BCMOLT_XGPON_GEM_PORT_STAT_ALARM_RAISED_ID__BEGIN                                       = 0,
+    BCMOLT_XGPON_GEM_PORT_STAT_ALARM_RAISED_ID_STAT                                         = 0,    /**< Statistic ID. */
+    BCMOLT_XGPON_GEM_PORT_STAT_ALARM_RAISED_ID__NUM_OF  /**< Number of enum entries, not an entry itself. */
+} bcmolt_xgpon_gem_port_stat_alarm_raised_id;
+
+/** Identifiers for all properties contained in the xgpon_gem_port_stat_cfg 
+ * group. 
+ */
+typedef enum bcmolt_xgpon_gem_port_stat_cfg_id
+{
+    BCMOLT_XGPON_GEM_PORT_STAT_CFG_ID__BEGIN                                                = 0,
+    BCMOLT_XGPON_GEM_PORT_STAT_CFG_ID_CFG                                                   = 0,    /**< Configuration. */
+    BCMOLT_XGPON_GEM_PORT_STAT_CFG_ID__NUM_OF   /**< Number of enum entries, not an entry itself. */
+} bcmolt_xgpon_gem_port_stat_cfg_id;
+
+/** Identifiers for all properties contained in the xgpon_gem_port_stat group. 
+ */
+typedef enum bcmolt_xgpon_gem_port_stat_id
+{
+    BCMOLT_XGPON_GEM_PORT_STAT_ID__BEGIN                                                    = 0,
+    BCMOLT_XGPON_GEM_PORT_STAT_ID_TX_BYTES                                                  = 0,    /**< TX bytes. */
+    BCMOLT_XGPON_GEM_PORT_STAT_ID_TX_PACKETS                                                = 1,    /**< TX packets. */
+    BCMOLT_XGPON_GEM_PORT_STAT_ID_RX_PACKETS                                                = 2,    /**< RX packets. */
+    BCMOLT_XGPON_GEM_PORT_STAT_ID_RX_BYTES                                                  = 3,    /**< RX bytes. */
+    BCMOLT_XGPON_GEM_PORT_STAT_ID__NUM_OF   /**< Number of enum entries, not an entry itself. */
+} bcmolt_xgpon_gem_port_stat_id;
+
+/** Identifiers for all properties contained in the xgpon_iwf_cfg group. 
+ */
+typedef enum bcmolt_xgpon_iwf_cfg_id
+{
+    BCMOLT_XGPON_IWF_CFG_ID__BEGIN                                                          = 0,
+    BCMOLT_XGPON_IWF_CFG_ID_US_OTAG_DIRECT_TPID                                             = 0,    /**< US otag direct tpid. */
+    BCMOLT_XGPON_IWF_CFG_ID_DS_TPID                                                         = 1,    /**< DS tpid. */
+    BCMOLT_XGPON_IWF_CFG_ID__NUM_OF /**< Number of enum entries, not an entry itself. */
+} bcmolt_xgpon_iwf_cfg_id;
+
+/** Identifiers for all properties contained in the xgpon_iwf_key group. 
+ */
+typedef enum bcmolt_xgpon_iwf_key_id
+{
+    BCMOLT_XGPON_IWF_KEY_ID__BEGIN                                                          = 0,
+    BCMOLT_XGPON_IWF_KEY_ID_PON_NI                                                          = 0,    /**< PON network interface. */
+    BCMOLT_XGPON_IWF_KEY_ID__NUM_OF /**< Number of enum entries, not an entry itself. */
+} bcmolt_xgpon_iwf_key_id;
+
+/** Identifiers for all properties contained in the 
+ * xgpon_ni_activate_all_onus_completed group. 
+ */
+typedef enum bcmolt_xgpon_ni_activate_all_onus_completed_id
+{
+    BCMOLT_XGPON_NI_ACTIVATE_ALL_ONUS_COMPLETED_ID__NUM_OF  /**< Number of enum entries, not an entry itself. */
+} bcmolt_xgpon_ni_activate_all_onus_completed_id;
+
+/** Identifiers for all properties contained in the 
+ * xgpon_ni_adjust_tx_wavelength group. 
+ */
+typedef enum bcmolt_xgpon_ni_adjust_tx_wavelength_id
+{
+    BCMOLT_XGPON_NI_ADJUST_TX_WAVELENGTH_ID__BEGIN                                          = 0,
+    BCMOLT_XGPON_NI_ADJUST_TX_WAVELENGTH_ID_SERIAL_NUMBER                                   = 0,    /**< Seril number. */
+    BCMOLT_XGPON_NI_ADJUST_TX_WAVELENGTH_ID_FREQENCY_ADJUSTMENT_DIRECTION                   = 1,    /**< Frequncy adjustment direction. */
+    BCMOLT_XGPON_NI_ADJUST_TX_WAVELENGTH_ID_FREQUENCY_ADJUSTMENT_SIZE                       = 2,    /**< Frequency adjustment size. */
+    BCMOLT_XGPON_NI_ADJUST_TX_WAVELENGTH_ID__NUM_OF /**< Number of enum entries, not an entry itself. */
+} bcmolt_xgpon_ni_adjust_tx_wavelength_id;
+
+/** Identifiers for all properties contained in the xgpon_ni_auto_cfg group. 
+ */
+typedef enum bcmolt_xgpon_ni_auto_cfg_id
+{
+    BCMOLT_XGPON_NI_AUTO_CFG_ID__BEGIN                                                      = 0,
+    BCMOLT_XGPON_NI_AUTO_CFG_ID_ACTIVATE_ALL_ONUS_COMPLETED                                 = 0,    /**< activate all onus completed. */
+    BCMOLT_XGPON_NI_AUTO_CFG_ID_CPU_PACKETS_FAILURE                                         = 1,    /**< CPU Packets Failure. */
+    BCMOLT_XGPON_NI_AUTO_CFG_ID_DEACTIVATE_ALL_ONUS_COMPLETED                               = 2,    /**< deactivate all onus completed. */
+    BCMOLT_XGPON_NI_AUTO_CFG_ID_DISABLE_ALL_ONUS_COMPLETED                                  = 3,    /**< disable all onus completed. */
+    BCMOLT_XGPON_NI_AUTO_CFG_ID_ENABLE_ALL_ONUS_COMPLETED                                   = 4,    /**< enable all onus completed. */
+    BCMOLT_XGPON_NI_AUTO_CFG_ID_LOS                                                         = 5,    /**< LOS. */
+    BCMOLT_XGPON_NI_AUTO_CFG_ID_ONU_DISCOVERED                                              = 6,    /**< ONU Discovered. */
+    BCMOLT_XGPON_NI_AUTO_CFG_ID_ONU_UPGRADE_COMPLETE                                        = 7,    /**< ONU Upgrade Complete. */
+    BCMOLT_XGPON_NI_AUTO_CFG_ID_PROTECTION_SWITCHING_ONUS_RANGED                            = 8,    /**< Protection Switching ONUs Ranged. */
+    BCMOLT_XGPON_NI_AUTO_CFG_ID_PROTECTION_SWITCHING_SWITCHOVER_COMPLETED                   = 9,    /**< Protection Switching Switchover Completed. */
+    BCMOLT_XGPON_NI_AUTO_CFG_ID_PROTECTION_SWITCHING_TRAFFIC_RESUME                         = 10,   /**< Protection Switching Traffic Resume. */
+    BCMOLT_XGPON_NI_AUTO_CFG_ID_ROGUE_DETECTION_COMPLETED                                   = 11,   /**< Rogue detection completed. */
+    BCMOLT_XGPON_NI_AUTO_CFG_ID_ROGUE_ONU_SPECIAL_MAP_CYCLE_START                           = 12,   /**< Rogue ONU special map cycle start. */
+    BCMOLT_XGPON_NI_AUTO_CFG_ID_SERIAL_NUMBER_ACQUISITION_CYCLE_START                       = 13,   /**< Serial Number Acquisition Cycle Start. */
+    BCMOLT_XGPON_NI_AUTO_CFG_ID_STANDBY_PON_MONITORING_CYCLE_COMPLETED                      = 14,   /**< Standby PON Monitoring Cycle Completed. */
+    BCMOLT_XGPON_NI_AUTO_CFG_ID_STAT_ALARM_CLEARED                                          = 15,   /**< Stat Alarm Cleared. */
+    BCMOLT_XGPON_NI_AUTO_CFG_ID_STAT_ALARM_RAISED                                           = 16,   /**< Stat Alarm Raised. */
+    BCMOLT_XGPON_NI_AUTO_CFG_ID_STATE_CHANGE_COMPLETED                                      = 17,   /**< State Change Completed. */
+    BCMOLT_XGPON_NI_AUTO_CFG_ID_TOD_REQUEST_COMPLETED                                       = 18,   /**< TOD request completed. */
+    BCMOLT_XGPON_NI_AUTO_CFG_ID__NUM_OF /**< Number of enum entries, not an entry itself. */
+} bcmolt_xgpon_ni_auto_cfg_id;
+
+/** Identifiers for all properties contained in the 
+ * xgpon_ni_broadcast_ploam_packet group. 
+ */
+typedef enum bcmolt_xgpon_ni_broadcast_ploam_packet_id
+{
+    BCMOLT_XGPON_NI_BROADCAST_PLOAM_PACKET_ID__BEGIN                                        = 0,
+    BCMOLT_XGPON_NI_BROADCAST_PLOAM_PACKET_ID_PLOAM                                         = 0,    /**< ploam. */
+    BCMOLT_XGPON_NI_BROADCAST_PLOAM_PACKET_ID__NUM_OF   /**< Number of enum entries, not an entry itself. */
+} bcmolt_xgpon_ni_broadcast_ploam_packet_id;
+
+/** Identifiers for all properties contained in the xgpon_ni_cfg group. 
+ */
+typedef enum bcmolt_xgpon_ni_cfg_id
+{
+    BCMOLT_XGPON_NI_CFG_ID__BEGIN                                                           = 0,
+    BCMOLT_XGPON_NI_CFG_ID_HW_PON_ID                                                        = 0,    /**< HW pon id. */
+    BCMOLT_XGPON_NI_CFG_ID_AVAILABLE_BANDWIDTH                                              = 1,    /**< Available Bandwidth. */
+    BCMOLT_XGPON_NI_CFG_ID_NUMBER_OF_ACTIVE_ONUS                                            = 2,    /**< number of active onus. */
+    BCMOLT_XGPON_NI_CFG_ID_PON_STATUS                                                       = 3,    /**< PON status. */
+    BCMOLT_XGPON_NI_CFG_ID_PON_DISTANCE                                                     = 4,    /**< PON distance. */
+    BCMOLT_XGPON_NI_CFG_ID_RANGING_WINDOW_SIZE                                              = 5,    /**< Ranging window size. */
+    BCMOLT_XGPON_NI_CFG_ID_EQD_CYCLES_NUMBER                                                = 6,    /**< EqD measurement cycles number. */
+    BCMOLT_XGPON_NI_CFG_ID_DRIFT_CONTROL                                                    = 7,    /**< drift control. */
+    BCMOLT_XGPON_NI_CFG_ID_LOS_ALARM_THRESHOLD                                              = 8,    /**< los alarm threshold. */
+    BCMOLT_XGPON_NI_CFG_ID_LOS_INITIAL_VALUE                                                = 9,    /**< los initialization value. */
+    BCMOLT_XGPON_NI_CFG_ID_ONU_ALARMS_THRESHOLDS                                            = 10,   /**< ONU alarms thresholds. */
+    BCMOLT_XGPON_NI_CFG_ID_BER_MONITOR                                                      = 11,   /**< BER monitoring params. */
+    BCMOLT_XGPON_NI_CFG_ID_ONU_ACTIVATION                                                   = 12,   /**< ONU Activation. */
+    BCMOLT_XGPON_NI_CFG_ID_SN_ACQUISITION                                                   = 13,   /**< sn acquisition. */
+    BCMOLT_XGPON_NI_CFG_ID_KEY_EXCHANGE                                                     = 14,   /**< key exchange. */
+    BCMOLT_XGPON_NI_CFG_ID_PROTECTION_SWITCHING                                             = 15,   /**< Protection switching. */
+    BCMOLT_XGPON_NI_CFG_ID_PROTECTION_SWITCHING_DEBUG                                       = 16,   /**< protection switching debug . */
+    BCMOLT_XGPON_NI_CFG_ID_CBR_RT_ALLOCATION_PROFILE                                        = 17,   /**< CBR RT Allocation profile. */
+    BCMOLT_XGPON_NI_CFG_ID_CBR_NRT_ALLOCATION_PROFILE                                       = 18,   /**< CBR NRT Allocation Profile. */
+    BCMOLT_XGPON_NI_CFG_ID_POWER_MANAGEMENT                                                 = 19,   /**< Power Management. */
+    BCMOLT_XGPON_NI_CFG_ID_ROGUE_ONU_DETECTION_PROCESS                                      = 20,   /**< Rogue ONU detection process. */
+    BCMOLT_XGPON_NI_CFG_ID_PERIODIC_STANDBY_PON_MONITORING                                  = 21,   /**< Periodic standby PON monitoring. */
+    BCMOLT_XGPON_NI_CFG_ID_DBA_MODE                                                         = 22,   /**< DBA mode. */
+    BCMOLT_XGPON_NI_CFG_ID_PLOAM_HANDLING                                                   = 23,   /**< Ploam handling. */
+    BCMOLT_XGPON_NI_CFG_ID_MIN_DATA_ALLOC_ID                                                = 24,   /**< Minimum data alloc id. */
+    BCMOLT_XGPON_NI_CFG_ID_MIN_DATA_GEM_PORT_ID                                             = 25,   /**< Minimum data port id. */
+    BCMOLT_XGPON_NI_CFG_ID_MULTICAST_KEY                                                    = 26,   /**< multicast key. */
+    BCMOLT_XGPON_NI_CFG_ID_PRBS_CHECKER                                                     = 27,   /**< PRBS Checker. */
+    BCMOLT_XGPON_NI_CFG_ID_PRBS_GENERATOR                                                   = 28,   /**< PRBS Generator. */
+    BCMOLT_XGPON_NI_CFG_ID_PRBS_STATUS                                                      = 29,   /**< PRBS status. */
+    BCMOLT_XGPON_NI_CFG_ID_AUTOMATIC_ONU_DEACTIVATION                                       = 30,   /**< Automatic ONU deactivation. */
+    BCMOLT_XGPON_NI_CFG_ID_US_BANDWIDTH_LIMIT                                               = 31,   /**< US bandwidth Limit. */
+    BCMOLT_XGPON_NI_CFG_ID_ALL_ONUS                                                         = 32,   /**< all ONUs. */
+    BCMOLT_XGPON_NI_CFG_ID_ALL_MCAST_GEM_PORTS                                              = 33,   /**< all multicast GEM ports. */
+    BCMOLT_XGPON_NI_CFG_ID_DEBUG                                                            = 34,   /**< PON NI debug parameters. */
+    BCMOLT_XGPON_NI_CFG_ID_ONU_UPGRADE_PARAMS                                               = 35,   /**< ONU upgrade params. */
+    BCMOLT_XGPON_NI_CFG_ID_DS_FEC_MODE                                                      = 36,   /**< DS FEC mode. */
+    BCMOLT_XGPON_NI_CFG_ID_DBA_TYPE                                                         = 37,   /**< DBA type. */
+    BCMOLT_XGPON_NI_CFG_ID_ONU_TUNING                                                       = 38,   /**< onu tuning. */
+    BCMOLT_XGPON_NI_CFG_ID__NUM_OF  /**< Number of enum entries, not an entry itself. */
+} bcmolt_xgpon_ni_cfg_id;
+
+/** Identifiers for all properties contained in the xgpon_ni_cpu_packets_failure 
+ * group. 
+ */
+typedef enum bcmolt_xgpon_ni_cpu_packets_failure_id
+{
+    BCMOLT_XGPON_NI_CPU_PACKETS_FAILURE_ID__BEGIN                                           = 0,
+    BCMOLT_XGPON_NI_CPU_PACKETS_FAILURE_ID_ERROR                                            = 0,    /**< Error. */
+    BCMOLT_XGPON_NI_CPU_PACKETS_FAILURE_ID_GEM_PORT_ID                                      = 1,    /**< GEM Port ID. */
+    BCMOLT_XGPON_NI_CPU_PACKETS_FAILURE_ID__NUM_OF  /**< Number of enum entries, not an entry itself. */
+} bcmolt_xgpon_ni_cpu_packets_failure_id;
+
+/** Identifiers for all properties contained in the xgpon_ni_cpu_packets group. 
+ */
+typedef enum bcmolt_xgpon_ni_cpu_packets_id
+{
+    BCMOLT_XGPON_NI_CPU_PACKETS_ID__BEGIN                                                   = 0,
+    BCMOLT_XGPON_NI_CPU_PACKETS_ID_PACKET_TYPE                                              = 0,    /**< packet type. */
+    BCMOLT_XGPON_NI_CPU_PACKETS_ID_CALC_CRC                                                 = 1,    /**< calc crc. */
+    BCMOLT_XGPON_NI_CPU_PACKETS_ID_GEM_PORT_LIST                                            = 2,    /**< gem port list. */
+    BCMOLT_XGPON_NI_CPU_PACKETS_ID_BUFFER                                                   = 3,    /**< buffer. */
+    BCMOLT_XGPON_NI_CPU_PACKETS_ID__NUM_OF                      /**< Number of enum entries, not an entry itself. */
+} bcmolt_xgpon_ni_cpu_packets_id;
+
+/** Identifiers for all properties contained in the 
+ * xgpon_ni_deactivate_all_onus_completed group. 
+ */
+typedef enum bcmolt_xgpon_ni_deactivate_all_onus_completed_id
+{
+    BCMOLT_XGPON_NI_DEACTIVATE_ALL_ONUS_COMPLETED_ID__NUM_OF    /**< Number of enum entries, not an entry itself. */
+} bcmolt_xgpon_ni_deactivate_all_onus_completed_id;
+
+/** Identifiers for all properties contained in the 
+ * xgpon_ni_disable_all_onus_completed group. 
+ */
+typedef enum bcmolt_xgpon_ni_disable_all_onus_completed_id
+{
+    BCMOLT_XGPON_NI_DISABLE_ALL_ONUS_COMPLETED_ID__NUM_OF       /**< Number of enum entries, not an entry itself. */
+} bcmolt_xgpon_ni_disable_all_onus_completed_id;
+
+/** Identifiers for all properties contained in the 
+ * xgpon_ni_disable_serial_number group. 
+ */
+typedef enum bcmolt_xgpon_ni_disable_serial_number_id
+{
+    BCMOLT_XGPON_NI_DISABLE_SERIAL_NUMBER_ID__BEGIN                                         = 0,
+    BCMOLT_XGPON_NI_DISABLE_SERIAL_NUMBER_ID_CONTROL                                        = 0,    /**< control. */
+    BCMOLT_XGPON_NI_DISABLE_SERIAL_NUMBER_ID_SERIAL_NUMBER                                  = 1,    /**< serial number. */
+    BCMOLT_XGPON_NI_DISABLE_SERIAL_NUMBER_ID__NUM_OF        /**< Number of enum entries, not an entry itself. */
+} bcmolt_xgpon_ni_disable_serial_number_id;
+
+/** Identifiers for all properties contained in the 
+ * xgpon_ni_enable_all_onus_completed group. 
+ */
+typedef enum bcmolt_xgpon_ni_enable_all_onus_completed_id
+{
+    BCMOLT_XGPON_NI_ENABLE_ALL_ONUS_COMPLETED_ID__NUM_OF    /**< Number of enum entries, not an entry itself. */
+} bcmolt_xgpon_ni_enable_all_onus_completed_id;
+
+/** Identifiers for all properties contained in the xgpon_ni_key group. 
+ */
+typedef enum bcmolt_xgpon_ni_key_id
+{
+    BCMOLT_XGPON_NI_KEY_ID__BEGIN                                                           = 0,
+    BCMOLT_XGPON_NI_KEY_ID_PON_NI                                                           = 0,    /**< PON network interface. */
+    BCMOLT_XGPON_NI_KEY_ID__NUM_OF  /**< Number of enum entries, not an entry itself. */
+} bcmolt_xgpon_ni_key_id;
+
+/** Identifiers for all properties contained in the xgpon_ni_los group. 
+ */
+typedef enum bcmolt_xgpon_ni_los_id
+{
+    BCMOLT_XGPON_NI_LOS_ID__BEGIN                                                           = 0,
+    BCMOLT_XGPON_NI_LOS_ID_STATUS                                                           = 0,    /**< status. */
+    BCMOLT_XGPON_NI_LOS_ID__NUM_OF  /**< Number of enum entries, not an entry itself. */
+} bcmolt_xgpon_ni_los_id;
+
+/** Identifiers for all properties contained in the xgpon_ni_onu_discovered 
+ * group. 
+ */
+typedef enum bcmolt_xgpon_ni_onu_discovered_id
+{
+    BCMOLT_XGPON_NI_ONU_DISCOVERED_ID__BEGIN                                                = 0,
+    BCMOLT_XGPON_NI_ONU_DISCOVERED_ID_SERIAL_NUMBER                                         = 0,    /**< serial number. */
+    BCMOLT_XGPON_NI_ONU_DISCOVERED_ID_RANGING_TIME                                          = 1,    /**< ranging time. */
+    BCMOLT_XGPON_NI_ONU_DISCOVERED_ID_ONU_ID                                                = 2,    /**< onu_id. */
+    BCMOLT_XGPON_NI_ONU_DISCOVERED_ID_UPSTREAM_LINE_RATE_CAPABILITIES                       = 3,    /**< upstream line rate capabilities. */
+    BCMOLT_XGPON_NI_ONU_DISCOVERED_ID_CURRENT_DOWNSTREAM_PON_ID                             = 4,    /**< current downstream pon id. */
+    BCMOLT_XGPON_NI_ONU_DISCOVERED_ID_CURRENT_UPSTREAM_PON_ID                               = 5,    /**< current upstream pon id. */
+    BCMOLT_XGPON_NI_ONU_DISCOVERED_ID_CALIBRATION_RECORD                                    = 6,    /**< calibration record. */
+    BCMOLT_XGPON_NI_ONU_DISCOVERED_ID_TUNING_GRANULARITY                                    = 7,    /**< tuning granularity. */
+    BCMOLT_XGPON_NI_ONU_DISCOVERED_ID_STEP_TUNING_TIME                                      = 8,    /**< step tuning time. */
+    BCMOLT_XGPON_NI_ONU_DISCOVERED_ID_ATTENUATION                                           = 9,    /**< attenuetion. */
+    BCMOLT_XGPON_NI_ONU_DISCOVERED_ID_POWER_LEVELLING_CAPABILITIES                          = 10,   /**< power levelling capabilities. */
+    BCMOLT_XGPON_NI_ONU_DISCOVERED_ID__NUM_OF   /**< Number of enum entries, not an entry itself. */
+} bcmolt_xgpon_ni_onu_discovered_id;
+
+/** Identifiers for all properties contained in the 
+ * xgpon_ni_onu_upgrade_complete group. 
+ */
+typedef enum bcmolt_xgpon_ni_onu_upgrade_complete_id
+{
+    BCMOLT_XGPON_NI_ONU_UPGRADE_COMPLETE_ID__BEGIN                                          = 0,
+    BCMOLT_XGPON_NI_ONU_UPGRADE_COMPLETE_ID_STATUS                                          = 0,    /**< Status. */
+    BCMOLT_XGPON_NI_ONU_UPGRADE_COMPLETE_ID_LIST_OF_FAILED_ENTITIES                         = 1,    /**< List of failed entities. */
+    BCMOLT_XGPON_NI_ONU_UPGRADE_COMPLETE_ID__NUM_OF /**< Number of enum entries, not an entry itself. */
+} bcmolt_xgpon_ni_onu_upgrade_complete_id;
+
+/** Identifiers for all properties contained in the 
+ * xgpon_ni_protection_switching_onus_ranged group. 
+ */
+typedef enum bcmolt_xgpon_ni_protection_switching_onus_ranged_id
+{
+    BCMOLT_XGPON_NI_PROTECTION_SWITCHING_ONUS_RANGED_ID__BEGIN                              = 0,
+    BCMOLT_XGPON_NI_PROTECTION_SWITCHING_ONUS_RANGED_ID_ONUS                                = 0,    /**< ONUs. */
+    BCMOLT_XGPON_NI_PROTECTION_SWITCHING_ONUS_RANGED_ID__NUM_OF /**< Number of enum entries, not an entry itself. */
+} bcmolt_xgpon_ni_protection_switching_onus_ranged_id;
+
+/** Identifiers for all properties contained in the 
+ * xgpon_ni_protection_switching_switchover_completed group. 
+ */
+typedef enum bcmolt_xgpon_ni_protection_switching_switchover_completed_id
+{
+    BCMOLT_XGPON_NI_PROTECTION_SWITCHING_SWITCHOVER_COMPLETED_ID__BEGIN                     = 0,
+    BCMOLT_XGPON_NI_PROTECTION_SWITCHING_SWITCHOVER_COMPLETED_ID_RESULT                     = 0,    /**< Result. */
+    BCMOLT_XGPON_NI_PROTECTION_SWITCHING_SWITCHOVER_COMPLETED_ID__NUM_OF    /**< Number of enum entries, not an entry itself. */
+} bcmolt_xgpon_ni_protection_switching_switchover_completed_id;
+
+/** Identifiers for all properties contained in the 
+ * xgpon_ni_protection_switching_traffic_resume group. 
+ */
+typedef enum bcmolt_xgpon_ni_protection_switching_traffic_resume_id
+{
+    BCMOLT_XGPON_NI_PROTECTION_SWITCHING_TRAFFIC_RESUME_ID__BEGIN                           = 0,
+    BCMOLT_XGPON_NI_PROTECTION_SWITCHING_TRAFFIC_RESUME_ID_RESULT                           = 0,    /**< Result. */
+    BCMOLT_XGPON_NI_PROTECTION_SWITCHING_TRAFFIC_RESUME_ID__NUM_OF  /**< Number of enum entries, not an entry itself. */
+} bcmolt_xgpon_ni_protection_switching_traffic_resume_id;
+
+/** Identifiers for all properties contained in the xgpon_ni_reset group. 
+ */
+typedef enum bcmolt_xgpon_ni_reset_id
+{
+    BCMOLT_XGPON_NI_RESET_ID__NUM_OF    /**< Number of enum entries, not an entry itself. */
+} bcmolt_xgpon_ni_reset_id;
+
+/** Identifiers for all properties contained in the 
+ * xgpon_ni_rogue_detection_completed group. 
+ */
+typedef enum bcmolt_xgpon_ni_rogue_detection_completed_id
+{
+    BCMOLT_XGPON_NI_ROGUE_DETECTION_COMPLETED_ID__BEGIN                                     = 0,
+    BCMOLT_XGPON_NI_ROGUE_DETECTION_COMPLETED_ID_WINDOW_TYPE                                = 0,    /**< Window type. */
+    BCMOLT_XGPON_NI_ROGUE_DETECTION_COMPLETED_ID_MEASUREMENT_STATUS                         = 1,    /**< Measurement status. */
+    BCMOLT_XGPON_NI_ROGUE_DETECTION_COMPLETED_ID_ALLOC_ID                                   = 2,    /**< Alloc ID. */
+    BCMOLT_XGPON_NI_ROGUE_DETECTION_COMPLETED_ID_ONU_ID                                     = 3,    /**< ONU ID. */
+    BCMOLT_XGPON_NI_ROGUE_DETECTION_COMPLETED_ID_IS_DELINEATION                             = 4,    /**< Is delineation. */
+    BCMOLT_XGPON_NI_ROGUE_DETECTION_COMPLETED_ID_IS_ED                                      = 5,    /**< Is ED. */
+    BCMOLT_XGPON_NI_ROGUE_DETECTION_COMPLETED_ID_RX_DATA                                    = 6,    /**< Received data. */
+    BCMOLT_XGPON_NI_ROGUE_DETECTION_COMPLETED_ID_PLOAM_RECEIVED_ONU_ID                      = 7,    /**< ploam_received_onu_id. */
+    BCMOLT_XGPON_NI_ROGUE_DETECTION_COMPLETED_ID_PLOAM_RECEIVED_MIC_ERROR                   = 8,    /**< ploam_received_mic_error. */
+    BCMOLT_XGPON_NI_ROGUE_DETECTION_COMPLETED_ID__NUM_OF    /**< Number of enum entries, not an entry itself. */
+} bcmolt_xgpon_ni_rogue_detection_completed_id;
+
+/** Identifiers for all properties contained in the 
+ * xgpon_ni_rogue_detection_window group. 
+ */
+typedef enum bcmolt_xgpon_ni_rogue_detection_window_id
+{
+    BCMOLT_XGPON_NI_ROGUE_DETECTION_WINDOW_ID__BEGIN                                        = 0,
+    BCMOLT_XGPON_NI_ROGUE_DETECTION_WINDOW_ID_WINDOW_TYPE                                   = 0,    /**< Window type. */
+    BCMOLT_XGPON_NI_ROGUE_DETECTION_WINDOW_ID_ALLOC_ID                                      = 1,    /**< Alloc ID. */
+    BCMOLT_XGPON_NI_ROGUE_DETECTION_WINDOW_ID_ONU_ID                                        = 2,    /**< ONU ID. */
+    BCMOLT_XGPON_NI_ROGUE_DETECTION_WINDOW_ID_SECOND_RANGING_WINDOW                         = 3,    /**< Second ranging window. */
+    BCMOLT_XGPON_NI_ROGUE_DETECTION_WINDOW_ID__NUM_OF               /**< Number of enum entries, not an entry itself. */
+} bcmolt_xgpon_ni_rogue_detection_window_id;
+
+/** Identifiers for all properties contained in the 
+ * xgpon_ni_rogue_onu_special_map_cycle_start group. 
+ */
+typedef enum bcmolt_xgpon_ni_rogue_onu_special_map_cycle_start_id
+{
+    BCMOLT_XGPON_NI_ROGUE_ONU_SPECIAL_MAP_CYCLE_START_ID__NUM_OF    /**< Number of enum entries, not an entry itself. */
+} bcmolt_xgpon_ni_rogue_onu_special_map_cycle_start_id;
+
+/** Identifiers for all properties contained in the xgpon_ni_run_special_bw_map 
+ * group. 
+ */
+typedef enum bcmolt_xgpon_ni_run_special_bw_map_id
+{
+    BCMOLT_XGPON_NI_RUN_SPECIAL_BW_MAP_ID__BEGIN                                            = 0,
+    BCMOLT_XGPON_NI_RUN_SPECIAL_BW_MAP_ID_NUMBER_OF_CYCLE                                   = 0,    /**< number of cycle. */
+    BCMOLT_XGPON_NI_RUN_SPECIAL_BW_MAP_ID_ALLOCATION_NUMBER                                 = 1,    /**< allocation number. */
+    BCMOLT_XGPON_NI_RUN_SPECIAL_BW_MAP_ID_BW_MAP_ARRAY                                      = 2,    /**< bw map array. */
+    BCMOLT_XGPON_NI_RUN_SPECIAL_BW_MAP_ID__NUM_OF                       /**< Number of enum entries, not an entry itself. */
+} bcmolt_xgpon_ni_run_special_bw_map_id;
+
+/** Identifiers for all properties contained in the 
+ * xgpon_ni_serial_number_acquisition_cycle_start group. 
+ */
+typedef enum bcmolt_xgpon_ni_serial_number_acquisition_cycle_start_id
+{
+    BCMOLT_XGPON_NI_SERIAL_NUMBER_ACQUISITION_CYCLE_START_ID__NUM_OF    /**< Number of enum entries, not an entry itself. */
+} bcmolt_xgpon_ni_serial_number_acquisition_cycle_start_id;
+
+/** Identifiers for all properties contained in the xgpon_ni_set_onu_state 
+ * group. 
+ */
+typedef enum bcmolt_xgpon_ni_set_onu_state_id
+{
+    BCMOLT_XGPON_NI_SET_ONU_STATE_ID__BEGIN                                                 = 0,
+    BCMOLT_XGPON_NI_SET_ONU_STATE_ID_ONU_STATE                                              = 0,    /**< ONU state. */
+    BCMOLT_XGPON_NI_SET_ONU_STATE_ID__NUM_OF    /**< Number of enum entries, not an entry itself. */
+} bcmolt_xgpon_ni_set_onu_state_id;
+
+/** Identifiers for all properties contained in the xgpon_ni_set_pon_state 
+ * group. 
+ */
+typedef enum bcmolt_xgpon_ni_set_pon_state_id
+{
+    BCMOLT_XGPON_NI_SET_PON_STATE_ID__BEGIN                                                 = 0,
+    BCMOLT_XGPON_NI_SET_PON_STATE_ID_PON_STATE                                              = 0,    /**< PON state. */
+    BCMOLT_XGPON_NI_SET_PON_STATE_ID__NUM_OF    /**< Number of enum entries, not an entry itself. */
+} bcmolt_xgpon_ni_set_pon_state_id;
+
+/** Identifiers for all properties contained in the 
+ * xgpon_ni_single_request_standby_pon_monitoring group. 
+ */
+typedef enum bcmolt_xgpon_ni_single_request_standby_pon_monitoring_id
+{
+    BCMOLT_XGPON_NI_SINGLE_REQUEST_STANDBY_PON_MONITORING_ID__NUM_OF    /**< Number of enum entries, not an entry itself. */
+} bcmolt_xgpon_ni_single_request_standby_pon_monitoring_id;
+
+/** Identifiers for all properties contained in the 
+ * xgpon_ni_standby_pon_monitoring_cycle_completed group. 
+ */
+typedef enum bcmolt_xgpon_ni_standby_pon_monitoring_cycle_completed_id
+{
+    BCMOLT_XGPON_NI_STANDBY_PON_MONITORING_CYCLE_COMPLETED_ID__BEGIN                        = 0,
+    BCMOLT_XGPON_NI_STANDBY_PON_MONITORING_CYCLE_COMPLETED_ID_NUMBER_OF_DETECTED_DELIMITER  = 0,    /**< number of detected delimiter. */
+    BCMOLT_XGPON_NI_STANDBY_PON_MONITORING_CYCLE_COMPLETED_ID_ENERGY_DETECT_SIGNAL          = 1,    /**< energy detect signal. */
+    BCMOLT_XGPON_NI_STANDBY_PON_MONITORING_CYCLE_COMPLETED_ID__NUM_OF   /**< Number of enum entries, not an entry itself. */
+} bcmolt_xgpon_ni_standby_pon_monitoring_cycle_completed_id;
+
+/** Identifiers for all properties contained in the xgpon_ni_start_onu_upgrade 
+ * group. 
+ */
+typedef enum bcmolt_xgpon_ni_start_onu_upgrade_id
+{
+    BCMOLT_XGPON_NI_START_ONU_UPGRADE_ID__BEGIN                                             = 0,
+    BCMOLT_XGPON_NI_START_ONU_UPGRADE_ID_LIST_OF_ONU_IDS                                    = 0,    /**< List of ONU IDs. */
+    BCMOLT_XGPON_NI_START_ONU_UPGRADE_ID__NUM_OF    /**< Number of enum entries, not an entry itself. */
+} bcmolt_xgpon_ni_start_onu_upgrade_id;
+
+/** Identifiers for all properties contained in the xgpon_ni_stat_alarm_cleared 
+ * group. 
+ */
+typedef enum bcmolt_xgpon_ni_stat_alarm_cleared_id
+{
+    BCMOLT_XGPON_NI_STAT_ALARM_CLEARED_ID__BEGIN                                            = 0,
+    BCMOLT_XGPON_NI_STAT_ALARM_CLEARED_ID_STAT                                              = 0,    /**< Statistic ID. */
+    BCMOLT_XGPON_NI_STAT_ALARM_CLEARED_ID__NUM_OF   /**< Number of enum entries, not an entry itself. */
+} bcmolt_xgpon_ni_stat_alarm_cleared_id;
+
+/** Identifiers for all properties contained in the xgpon_ni_stat_alarm_raised 
+ * group. 
+ */
+typedef enum bcmolt_xgpon_ni_stat_alarm_raised_id
+{
+    BCMOLT_XGPON_NI_STAT_ALARM_RAISED_ID__BEGIN                                             = 0,
+    BCMOLT_XGPON_NI_STAT_ALARM_RAISED_ID_STAT                                               = 0,    /**< Statistic ID. */
+    BCMOLT_XGPON_NI_STAT_ALARM_RAISED_ID__NUM_OF    /**< Number of enum entries, not an entry itself. */
+} bcmolt_xgpon_ni_stat_alarm_raised_id;
+
+/** Identifiers for all properties contained in the xgpon_ni_stat_cfg group. 
+ */
+typedef enum bcmolt_xgpon_ni_stat_cfg_id
+{
+    BCMOLT_XGPON_NI_STAT_CFG_ID__BEGIN                                                      = 0,
+    BCMOLT_XGPON_NI_STAT_CFG_ID_CFG                                                         = 0,    /**< Configuration. */
+    BCMOLT_XGPON_NI_STAT_CFG_ID__NUM_OF /**< Number of enum entries, not an entry itself. */
+} bcmolt_xgpon_ni_stat_cfg_id;
+
+/** Identifiers for all properties contained in the xgpon_ni_stat group. 
+ */
+typedef enum bcmolt_xgpon_ni_stat_id
+{
+    BCMOLT_XGPON_NI_STAT_ID__BEGIN                                                          = 0,
+    BCMOLT_XGPON_NI_STAT_ID_FEC_CODEWORDS                                                   = 0,    /**< Receive FEC codewords. */
+    BCMOLT_XGPON_NI_STAT_ID_BIP32_BYTES                                                     = 1,    /**< Received bytes protected by bip32. */
+    BCMOLT_XGPON_NI_STAT_ID_BIP32_ERRORS                                                    = 2,    /**< Received bip32 errors. */
+    BCMOLT_XGPON_NI_STAT_ID_RX_XGTC_HEADERS                                                 = 3,    /**< Received valid XGTC headers. */
+    BCMOLT_XGPON_NI_STAT_ID_RX_XGTC_CORRECTED                                               = 4,    /**< Received corrected XGTC headers. */
+    BCMOLT_XGPON_NI_STAT_ID_RX_XGTC_UNCORRECTED                                             = 5,    /**< Received uncorrected XGTC headers. */
+    BCMOLT_XGPON_NI_STAT_ID_RX_XGEM                                                         = 6,    /**< Received valid XGEM frames. */
+    BCMOLT_XGPON_NI_STAT_ID_RX_XGEM_DROPPED                                                 = 7,    /**< Received dropped XGEM ID frames. */
+    BCMOLT_XGPON_NI_STAT_ID_RX_XGEM_IDLE                                                    = 8,    /**< Received idle XGEM frames. */
+    BCMOLT_XGPON_NI_STAT_ID_RX_XGEM_CORRECTED                                               = 9,    /**< Received corrected XGEM frames. */
+    BCMOLT_XGPON_NI_STAT_ID_RX_CRC_ERROR                                                    = 10,   /**< Received packets with CRC error. */
+    BCMOLT_XGPON_NI_STAT_ID_RX_FRAGMENT_ERROR                                               = 11,   /**< Received fragment errors. */
+    BCMOLT_XGPON_NI_STAT_ID_RX_PACKETS_DROPPED                                              = 12,   /**< Global dropped packets. */
+    BCMOLT_XGPON_NI_STAT_ID_RX_DROPPED_TOO_SHORT                                            = 13,   /**< Received packets dropped due to length too short. */
+    BCMOLT_XGPON_NI_STAT_ID_RX_DROPPED_TOO_LONG                                             = 14,   /**< Received packet dropped due to length too long. */
+    BCMOLT_XGPON_NI_STAT_ID_RX_KEY_ERROR                                                    = 15,   /**< Received key errors. */
+    BCMOLT_XGPON_NI_STAT_ID_TX_PLOAMS                                                       = 16,   /**< Transmitted Ploams. */
+    BCMOLT_XGPON_NI_STAT_ID_RX_PLOAMS_DROPPED                                               = 17,   /**< Received dropped Ploams. */
+    BCMOLT_XGPON_NI_STAT_ID_RX_ALLOCATIONS_VALID                                            = 18,   /**< Received valid allocations. */
+    BCMOLT_XGPON_NI_STAT_ID_RX_ALLOCATIONS_INVALID                                          = 19,   /**< Received invalid allocations. */
+    BCMOLT_XGPON_NI_STAT_ID_RX_ALLOCATIONS_DISABLED                                         = 20,   /**< Received disabled allocations. */
+    BCMOLT_XGPON_NI_STAT_ID_RX_PLOAMS                                                       = 21,   /**< Received Ploams. */
+    BCMOLT_XGPON_NI_STAT_ID_RX_PLOAMS_NON_IDLE                                              = 22,   /**< Received non idle Ploams. */
+    BCMOLT_XGPON_NI_STAT_ID_RX_PLOAMS_ERROR                                                 = 23,   /**< Received error Ploams. */
+    BCMOLT_XGPON_NI_STAT_ID_RX_CPU                                                          = 24,   /**< Received CPU packets. */
+    BCMOLT_XGPON_NI_STAT_ID_RX_OMCI                                                         = 25,   /**< Received OMCI packets. */
+    BCMOLT_XGPON_NI_STAT_ID_RX_OMCI_PACKETS_CRC_ERROR                                       = 26,   /**< Received OMCI packets with CRC errors. */
+    BCMOLT_XGPON_NI_STAT_ID_TX_PACKETS                                                      = 27,   /**< Transmitted packets. */
+    BCMOLT_XGPON_NI_STAT_ID_TX_XGEM                                                         = 28,   /**< Transmitted XGEM fragments. */
+    BCMOLT_XGPON_NI_STAT_ID_TX_CPU                                                          = 29,   /**< Transmitted CPU packets. */
+    BCMOLT_XGPON_NI_STAT_ID_TX_OMCI                                                         = 30,   /**< Transmitted OMCI packets. */
+    BCMOLT_XGPON_NI_STAT_ID_TX_CPU_OMCI_PACKETS_DROPPED                                     = 31,   /**< Transmit packets dropped due to illegal length. */
+    BCMOLT_XGPON_NI_STAT_ID_TX_DROPPED_ILLEGAL_LENGTH                                       = 32,   /**< Transmit packets dropped due to illegal length. */
+    BCMOLT_XGPON_NI_STAT_ID_TX_DROPPED_TPID_MISS                                            = 33,   /**< Transmit packets dropped due to TPID miss. */
+    BCMOLT_XGPON_NI_STAT_ID_TX_DROPPED_VID_MISS                                             = 34,   /**< Transmit packets droped due to VID miss. */
+    BCMOLT_XGPON_NI_STAT_ID__NUM_OF /**< Number of enum entries, not an entry itself. */
+} bcmolt_xgpon_ni_stat_id;
+
+/** Identifiers for all properties contained in the 
+ * xgpon_ni_state_change_completed group. 
+ */
+typedef enum bcmolt_xgpon_ni_state_change_completed_id
+{
+    BCMOLT_XGPON_NI_STATE_CHANGE_COMPLETED_ID__BEGIN                                        = 0,
+    BCMOLT_XGPON_NI_STATE_CHANGE_COMPLETED_ID_RESULT                                        = 0,    /**< Result. */
+    BCMOLT_XGPON_NI_STATE_CHANGE_COMPLETED_ID_PREVIOUS_STATE                                = 1,    /**< Previous state. */
+    BCMOLT_XGPON_NI_STATE_CHANGE_COMPLETED_ID_NEW_STATE                                     = 2,    /**< new state. */
+    BCMOLT_XGPON_NI_STATE_CHANGE_COMPLETED_ID__NUM_OF   /**< Number of enum entries, not an entry itself. */
+} bcmolt_xgpon_ni_state_change_completed_id;
+
+/** Identifiers for all properties contained in the 
+ * xgpon_ni_tod_request_completed group. 
+ */
+typedef enum bcmolt_xgpon_ni_tod_request_completed_id
+{
+    BCMOLT_XGPON_NI_TOD_REQUEST_COMPLETED_ID__BEGIN                                         = 0,
+    BCMOLT_XGPON_NI_TOD_REQUEST_COMPLETED_ID_TOD_STRING                                     = 0,    /**< tod_string. */
+    BCMOLT_XGPON_NI_TOD_REQUEST_COMPLETED_ID_SFC                                            = 1,    /**< sfc. */
+    BCMOLT_XGPON_NI_TOD_REQUEST_COMPLETED_ID_RTC_OFFSET_SEC                                 = 2,    /**< rtc_offset_sec. */
+    BCMOLT_XGPON_NI_TOD_REQUEST_COMPLETED_ID_RTC_OFFSET_NSEC                                = 3,    /**< rtc_offset_nsec. */
+    BCMOLT_XGPON_NI_TOD_REQUEST_COMPLETED_ID_STATUS                                         = 4,    /**< status. */
+    BCMOLT_XGPON_NI_TOD_REQUEST_COMPLETED_ID__NUM_OF    /**< Number of enum entries, not an entry itself. */
+} bcmolt_xgpon_ni_tod_request_completed_id;
+
+/** Identifiers for all properties contained in the xgpon_ni_tod_request group. 
+ */
+typedef enum bcmolt_xgpon_ni_tod_request_id
+{
+    BCMOLT_XGPON_NI_TOD_REQUEST_ID__NUM_OF              /**< Number of enum entries, not an entry itself. */
+} bcmolt_xgpon_ni_tod_request_id;
+
+/** Identifiers for all properties contained in the 
+ * xgpon_onu_adjust_tx_wavelength group. 
+ */
+typedef enum bcmolt_xgpon_onu_adjust_tx_wavelength_id
+{
+    BCMOLT_XGPON_ONU_ADJUST_TX_WAVELENGTH_ID__BEGIN                                         = 0,
+    BCMOLT_XGPON_ONU_ADJUST_TX_WAVELENGTH_ID_FREQUENCY_ADJUSTMENT_DIRECTION                 = 0,    /**< Frequency adjustment direction. */
+    BCMOLT_XGPON_ONU_ADJUST_TX_WAVELENGTH_ID_FREQUENCY_ADJUSTMENT_SIZE                      = 1,    /**< Frequency adjustment size. */
+    BCMOLT_XGPON_ONU_ADJUST_TX_WAVELENGTH_ID__NUM_OF    /**< Number of enum entries, not an entry itself. */
+} bcmolt_xgpon_onu_adjust_tx_wavelength_id;
+
+/** Identifiers for all properties contained in the xgpon_onu_auto_cfg group. 
+ */
+typedef enum bcmolt_xgpon_onu_auto_cfg_id
+{
+    BCMOLT_XGPON_ONU_AUTO_CFG_ID__BEGIN                                                     = 0,
+    BCMOLT_XGPON_ONU_AUTO_CFG_ID_DFI                                                        = 0,    /**< Receive Dying-Gasp of ONUi. */
+    BCMOLT_XGPON_ONU_AUTO_CFG_ID_DGI                                                        = 1,    /**< Receive Dying-Gasp of ONUi. */
+    BCMOLT_XGPON_ONU_AUTO_CFG_ID_DOWI                                                       = 2,    /**< Drift of Window of ONUi. */
+    BCMOLT_XGPON_ONU_AUTO_CFG_ID_INVALID_DBRU_REPORT                                        = 3,    /**< Invalid DBRu Report. */
+    BCMOLT_XGPON_ONU_AUTO_CFG_ID_KEY_EXCHANGE_COMPLETED                                     = 4,    /**< Key Exchange Completed. */
+    BCMOLT_XGPON_ONU_AUTO_CFG_ID_KEY_EXCHANGE_CYCLE_SKIPPED                                 = 5,    /**< Key Exchange Cycle Skipped. */
+    BCMOLT_XGPON_ONU_AUTO_CFG_ID_KEY_EXCHANGE_KEY_MISMATCH                                  = 6,    /**< Key Exchange Key Mismatch. */
+    BCMOLT_XGPON_ONU_AUTO_CFG_ID_KEY_EXCHANGE_KEY_REQUEST_TIMEOUT                           = 7,    /**< Key Exchange Key Request Timeout. */
+    BCMOLT_XGPON_ONU_AUTO_CFG_ID_LOOCI                                                      = 8,    /**< LOOCi. */
+    BCMOLT_XGPON_ONU_AUTO_CFG_ID_ONU_ACTIVATION_COMPLETED                                   = 9,    /**< ONU Activation Completed. */
+    BCMOLT_XGPON_ONU_AUTO_CFG_ID_ONU_ALARM                                                  = 10,   /**< ONU Alarm. */
+    BCMOLT_XGPON_ONU_AUTO_CFG_ID_ONU_DEACTIVATION_COMPLETED                                 = 11,   /**< ONU Deactivation Completed. */
+    BCMOLT_XGPON_ONU_AUTO_CFG_ID_ONU_DISABLE_COMPLETED                                      = 12,   /**< ONU Disable Completed. */
+    BCMOLT_XGPON_ONU_AUTO_CFG_ID_ONU_ENABLE_COMPLETED                                       = 13,   /**< ONU Enable Completed. */
+    BCMOLT_XGPON_ONU_AUTO_CFG_ID_ONU_TUNING_IN_COMPLETED                                    = 14,   /**< ONU Tuning in completed. */
+    BCMOLT_XGPON_ONU_AUTO_CFG_ID_ONU_TUNING_OUT_COMPLETED                                   = 15,   /**< ONU Tuning out completed. */
+    BCMOLT_XGPON_ONU_AUTO_CFG_ID_OPTICAL_REFLECTION                                         = 16,   /**< Optical Reflection. */
+    BCMOLT_XGPON_ONU_AUTO_CFG_ID_POSSIBLE_DRIFT                                             = 17,   /**< Possible Drift. */
+    BCMOLT_XGPON_ONU_AUTO_CFG_ID_POWER_CONSUMPTION_REPORT                                   = 18,   /**< Power consumption report. */
+    BCMOLT_XGPON_ONU_AUTO_CFG_ID_POWER_LEVEL_REPORT                                         = 19,   /**< Power level report. */
+    BCMOLT_XGPON_ONU_AUTO_CFG_ID_POWER_MANAGEMENT_STATE_CHANGE                              = 20,   /**< Power Management State Change. */
+    BCMOLT_XGPON_ONU_AUTO_CFG_ID_PQSI                                                       = 21,   /**< ploam queue status. */
+    BCMOLT_XGPON_ONU_AUTO_CFG_ID_RANGING_COMPLETED                                          = 22,   /**< Ranging Completed. */
+    BCMOLT_XGPON_ONU_AUTO_CFG_ID_REGISTRATION_ID                                            = 23,   /**< Registration ID. */
+    BCMOLT_XGPON_ONU_AUTO_CFG_ID_RSSI_MEASUREMENT_COMPLETED                                 = 24,   /**< RSSI Measurement Completed. */
+    BCMOLT_XGPON_ONU_AUTO_CFG_ID_SDI                                                        = 25,   /**< Signal Degraded of ONUi. */
+    BCMOLT_XGPON_ONU_AUTO_CFG_ID_SECURE_MUTUAL_AUTHENTICATION_FAILURE                       = 26,   /**< secure mutual authentication failure. */
+    BCMOLT_XGPON_ONU_AUTO_CFG_ID_SFI                                                        = 27,   /**< Signal Fail of ONUi. */
+    BCMOLT_XGPON_ONU_AUTO_CFG_ID_STAT_ALARM_CLEARED                                         = 28,   /**< Stat Alarm Cleared. */
+    BCMOLT_XGPON_ONU_AUTO_CFG_ID_STAT_ALARM_RAISED                                          = 29,   /**< Stat Alarm Raised. */
+    BCMOLT_XGPON_ONU_AUTO_CFG_ID_SUFI                                                       = 30,   /**< SUFi. */
+    BCMOLT_XGPON_ONU_AUTO_CFG_ID_TIWI                                                       = 31,   /**< Transmission Interference Warning. */
+    BCMOLT_XGPON_ONU_AUTO_CFG_ID_TUNING_RESPONSE                                            = 32,   /**< Tuning response. */
+    BCMOLT_XGPON_ONU_AUTO_CFG_ID__NUM_OF    /**< Number of enum entries, not an entry itself. */
+} bcmolt_xgpon_onu_auto_cfg_id;
+
+/** Identifiers for all properties contained in the xgpon_onu_cfg group. 
+ */
+typedef enum bcmolt_xgpon_onu_cfg_id
+{
+    BCMOLT_XGPON_ONU_CFG_ID__BEGIN                                                          = 0,
+    BCMOLT_XGPON_ONU_CFG_ID_ONU_STATE                                                       = 0,    /**< onu state. */
+    BCMOLT_XGPON_ONU_CFG_ID_ONU_OLD_STATE                                                   = 1,    /**< onu old state. */
+    BCMOLT_XGPON_ONU_CFG_ID_ALARM_STATE                                                     = 2,    /**< alarm state. */
+    BCMOLT_XGPON_ONU_CFG_ID_REGISTRATION_ENCRYPTION_KEYS                                    = 3,    /**< registration encryption keys. */
+    BCMOLT_XGPON_ONU_CFG_ID_CURRENT_ENCRYPTION_KEY                                          = 4,    /**< current encryption key. */
+    BCMOLT_XGPON_ONU_CFG_ID_SERIAL_NUMBER                                                   = 5,    /**< serial number. */
+    BCMOLT_XGPON_ONU_CFG_ID_REGISTRATION_ID                                                 = 6,    /**< registration id. */
+    BCMOLT_XGPON_ONU_CFG_ID_REGISTRATION_ID_AUTO_LEARNING                                   = 7,    /**< Registration ID auto learning. */
+    BCMOLT_XGPON_ONU_CFG_ID_RANGING_BURST_PROFILE                                           = 8,    /**< ranging burst profile. */
+    BCMOLT_XGPON_ONU_CFG_ID_DATA_BURST_PROFILE                                              = 9,    /**< data burst profile. */
+    BCMOLT_XGPON_ONU_CFG_ID_RANGING_TIME                                                    = 10,   /**< ranging time. */
+    BCMOLT_XGPON_ONU_CFG_ID_DISABLED_AFTER_DISCOVERY                                        = 11,   /**< Disabled after Discovery. */
+    BCMOLT_XGPON_ONU_CFG_ID_DEACTIVATION_REASON                                             = 12,   /**< deactivation reason. */
+    BCMOLT_XGPON_ONU_CFG_ID_ALL_GEM_PORTS                                                   = 13,   /**< all GEM ports. */
+    BCMOLT_XGPON_ONU_CFG_ID_ALL_ALLOCS                                                      = 14,   /**< all allocs. */
+    BCMOLT_XGPON_ONU_CFG_ID_EXTENDED_GUARD_TIME                                             = 15,   /**< Extended Guard Time. */
+    BCMOLT_XGPON_ONU_CFG_ID_US_LINE_RATE                                                    = 16,   /**< US line rate. */
+    BCMOLT_XGPON_ONU_CFG_ID_CALIBRATION_RECORD                                              = 17,   /**< Calibration record. */
+    BCMOLT_XGPON_ONU_CFG_ID_TUNING_GRANULARITY                                              = 18,   /**< Tuning granularity. */
+    BCMOLT_XGPON_ONU_CFG_ID_STEP_TUNING_TIME                                                = 19,   /**< Step tuning time. */
+    BCMOLT_XGPON_ONU_CFG_ID_POWER_LEVELLING_CAPABILITIES                                    = 20,   /**< Power levelling capabilities. */
+    BCMOLT_XGPON_ONU_CFG_ID_REQUEST_REGISTRATION_STATUS                                     = 21,   /**< Request registration status. */
+    BCMOLT_XGPON_ONU_CFG_ID__NUM_OF /**< Number of enum entries, not an entry itself. */
+} bcmolt_xgpon_onu_cfg_id;
+
+/** Identifiers for all properties contained in the 
+ * xgpon_onu_change_power_levelling group. 
+ */
+typedef enum bcmolt_xgpon_onu_change_power_levelling_id
+{
+    BCMOLT_XGPON_ONU_CHANGE_POWER_LEVELLING_ID__BEGIN                                       = 0,
+    BCMOLT_XGPON_ONU_CHANGE_POWER_LEVELLING_ID_CONTROL                                      = 0,    /**< control. */
+    BCMOLT_XGPON_ONU_CHANGE_POWER_LEVELLING_ID_ATTENUATION                                  = 1,    /**< Attenuation. */
+    BCMOLT_XGPON_ONU_CHANGE_POWER_LEVELLING_ID__NUM_OF  /**< Number of enum entries, not an entry itself. */
+} bcmolt_xgpon_onu_change_power_levelling_id;
+
+/** Identifiers for all properties contained in the xgpon_onu_cpu_packet group. 
+ */
+typedef enum bcmolt_xgpon_onu_cpu_packet_id
+{
+    BCMOLT_XGPON_ONU_CPU_PACKET_ID__BEGIN                                                   = 0,
+    BCMOLT_XGPON_ONU_CPU_PACKET_ID_PORT_ID                                                  = 0,    /**< port id. */
+    BCMOLT_XGPON_ONU_CPU_PACKET_ID_CRC_OK                                                   = 1,    /**< crc ok. */
+    BCMOLT_XGPON_ONU_CPU_PACKET_ID_PACKET_SIZE                                              = 2,    /**< packet size. */
+    BCMOLT_XGPON_ONU_CPU_PACKET_ID_BUFFER                                                   = 3,    /**< buffer. */
+    BCMOLT_XGPON_ONU_CPU_PACKET_ID__NUM_OF  /**< Number of enum entries, not an entry itself. */
+} bcmolt_xgpon_onu_cpu_packet_id;
+
+/** Identifiers for all properties contained in the xgpon_onu_cpu_packets group. 
+ */
+typedef enum bcmolt_xgpon_onu_cpu_packets_id
+{
+    BCMOLT_XGPON_ONU_CPU_PACKETS_ID__BEGIN                                                  = 0,
+    BCMOLT_XGPON_ONU_CPU_PACKETS_ID_PACKET_TYPE                                             = 0,    /**< packet type. */
+    BCMOLT_XGPON_ONU_CPU_PACKETS_ID_CALC_CRC                                                = 1,    /**< calc crc. */
+    BCMOLT_XGPON_ONU_CPU_PACKETS_ID_NUMBER_OF_PACKETS                                       = 2,    /**< number of packets. */
+    BCMOLT_XGPON_ONU_CPU_PACKETS_ID_PACKET_SIZE                                             = 3,    /**< Single packet size. */
+    BCMOLT_XGPON_ONU_CPU_PACKETS_ID_BUFFER                                                  = 4,    /**< buffer. */
+    BCMOLT_XGPON_ONU_CPU_PACKETS_ID__NUM_OF /**< Number of enum entries, not an entry itself. */
+} bcmolt_xgpon_onu_cpu_packets_id;
+
+/** Identifiers for all properties contained in the xgpon_onu_dfi group. 
+ */
+typedef enum bcmolt_xgpon_onu_dfi_id
+{
+    BCMOLT_XGPON_ONU_DFI_ID__BEGIN                                                          = 0,
+    BCMOLT_XGPON_ONU_DFI_ID_ALARM_STATUS                                                    = 0,    /**< alarm status. */
+    BCMOLT_XGPON_ONU_DFI_ID__NUM_OF /**< Number of enum entries, not an entry itself. */
+} bcmolt_xgpon_onu_dfi_id;
+
+/** Identifiers for all properties contained in the xgpon_onu_dgi group. 
+ */
+typedef enum bcmolt_xgpon_onu_dgi_id
+{
+    BCMOLT_XGPON_ONU_DGI_ID__BEGIN                                                          = 0,
+    BCMOLT_XGPON_ONU_DGI_ID_ALARM_STATUS                                                    = 0,    /**< alarm status. */
+    BCMOLT_XGPON_ONU_DGI_ID__NUM_OF /**< Number of enum entries, not an entry itself. */
+} bcmolt_xgpon_onu_dgi_id;
+
+/** Identifiers for all properties contained in the xgpon_onu_dowi group. 
+ */
+typedef enum bcmolt_xgpon_onu_dowi_id
+{
+    BCMOLT_XGPON_ONU_DOWI_ID__BEGIN                                                         = 0,
+    BCMOLT_XGPON_ONU_DOWI_ID_ALARM_STATUS                                                   = 0,    /**< Alarm status. */
+    BCMOLT_XGPON_ONU_DOWI_ID_DRIFT_VALUE                                                    = 1,    /**< Drift value. */
+    BCMOLT_XGPON_ONU_DOWI_ID_NEW_EQD                                                        = 2,    /**< New EQD. */
+    BCMOLT_XGPON_ONU_DOWI_ID__NUM_OF                    /**< Number of enum entries, not an entry itself. */
+} bcmolt_xgpon_onu_dowi_id;
+
+/** Identifiers for all properties contained in the 
+ * xgpon_onu_get_power_consumption group. 
+ */
+typedef enum bcmolt_xgpon_onu_get_power_consumption_id
+{
+    BCMOLT_XGPON_ONU_GET_POWER_CONSUMPTION_ID__NUM_OF   /**< Number of enum entries, not an entry itself. */
+} bcmolt_xgpon_onu_get_power_consumption_id;
+
+/** Identifiers for all properties contained in the xgpon_onu_get_power_level 
+ * group. 
+ */
+typedef enum bcmolt_xgpon_onu_get_power_level_id
+{
+    BCMOLT_XGPON_ONU_GET_POWER_LEVEL_ID__NUM_OF         /**< Number of enum entries, not an entry itself. */
+} bcmolt_xgpon_onu_get_power_level_id;
+
+/** Identifiers for all properties contained in the 
+ * xgpon_onu_invalid_dbru_report group. 
+ */
+typedef enum bcmolt_xgpon_onu_invalid_dbru_report_id
+{
+    BCMOLT_XGPON_ONU_INVALID_DBRU_REPORT_ID__BEGIN                                          = 0,
+    BCMOLT_XGPON_ONU_INVALID_DBRU_REPORT_ID_ALLOC_ID                                        = 0,    /**< Alloc-ID. */
+    BCMOLT_XGPON_ONU_INVALID_DBRU_REPORT_ID__NUM_OF /**< Number of enum entries, not an entry itself. */
+} bcmolt_xgpon_onu_invalid_dbru_report_id;
+
+/** Identifiers for all properties contained in the 
+ * xgpon_onu_key_exchange_completed group. 
+ */
+typedef enum bcmolt_xgpon_onu_key_exchange_completed_id
+{
+    BCMOLT_XGPON_ONU_KEY_EXCHANGE_COMPLETED_ID__BEGIN                                       = 0,
+    BCMOLT_XGPON_ONU_KEY_EXCHANGE_COMPLETED_ID_NEW_KEY                                      = 0,    /**< new key. */
+    BCMOLT_XGPON_ONU_KEY_EXCHANGE_COMPLETED_ID__NUM_OF      /**< Number of enum entries, not an entry itself. */
+} bcmolt_xgpon_onu_key_exchange_completed_id;
+
+/** Identifiers for all properties contained in the 
+ * xgpon_onu_key_exchange_cycle_skipped group. 
+ */
+typedef enum bcmolt_xgpon_onu_key_exchange_cycle_skipped_id
+{
+    BCMOLT_XGPON_ONU_KEY_EXCHANGE_CYCLE_SKIPPED_ID__NUM_OF  /**< Number of enum entries, not an entry itself. */
+} bcmolt_xgpon_onu_key_exchange_cycle_skipped_id;
+
+/** Identifiers for all properties contained in the 
+ * xgpon_onu_key_exchange_key_mismatch group. 
+ */
+typedef enum bcmolt_xgpon_onu_key_exchange_key_mismatch_id
+{
+    BCMOLT_XGPON_ONU_KEY_EXCHANGE_KEY_MISMATCH_ID__BEGIN                                    = 0,
+    BCMOLT_XGPON_ONU_KEY_EXCHANGE_KEY_MISMATCH_ID_EXPECTED_KEY                              = 0,    /**< expected key. */
+    BCMOLT_XGPON_ONU_KEY_EXCHANGE_KEY_MISMATCH_ID_RECEIVED_KEY                              = 1,    /**< received key. */
+    BCMOLT_XGPON_ONU_KEY_EXCHANGE_KEY_MISMATCH_ID__NUM_OF           /**< Number of enum entries, not an entry itself. */
+} bcmolt_xgpon_onu_key_exchange_key_mismatch_id;
+
+/** Identifiers for all properties contained in the 
+ * xgpon_onu_key_exchange_key_request_timeout group. 
+ */
+typedef enum bcmolt_xgpon_onu_key_exchange_key_request_timeout_id
+{
+    BCMOLT_XGPON_ONU_KEY_EXCHANGE_KEY_REQUEST_TIMEOUT_ID__NUM_OF    /**< Number of enum entries, not an entry itself. */
+} bcmolt_xgpon_onu_key_exchange_key_request_timeout_id;
+
+/** Identifiers for all properties contained in the xgpon_onu_key group. 
+ */
+typedef enum bcmolt_xgpon_onu_key_id
+{
+    BCMOLT_XGPON_ONU_KEY_ID__BEGIN                                                          = 0,
+    BCMOLT_XGPON_ONU_KEY_ID_PON_NI                                                          = 0,    /**< PON network interface. */
+    BCMOLT_XGPON_ONU_KEY_ID_ONU_ID                                                          = 1,    /**< onu id. */
+    BCMOLT_XGPON_ONU_KEY_ID__NUM_OF /**< Number of enum entries, not an entry itself. */
+} bcmolt_xgpon_onu_key_id;
+
+/** Identifiers for all properties contained in the xgpon_onu_looci group. 
+ */
+typedef enum bcmolt_xgpon_onu_looci_id
+{
+    BCMOLT_XGPON_ONU_LOOCI_ID__BEGIN                                                        = 0,
+    BCMOLT_XGPON_ONU_LOOCI_ID_ALARM_STATUS                                                  = 0,    /**< alarm status. */
+    BCMOLT_XGPON_ONU_LOOCI_ID__NUM_OF   /**< Number of enum entries, not an entry itself. */
+} bcmolt_xgpon_onu_looci_id;
+
+/** Identifiers for all properties contained in the xgpon_onu_omci_packet group. 
+ */
+typedef enum bcmolt_xgpon_onu_omci_packet_id
+{
+    BCMOLT_XGPON_ONU_OMCI_PACKET_ID__BEGIN                                                  = 0,
+    BCMOLT_XGPON_ONU_OMCI_PACKET_ID_PORT_ID                                                 = 0,    /**< port id. */
+    BCMOLT_XGPON_ONU_OMCI_PACKET_ID_CRC_OK                                                  = 1,    /**< crc ok. */
+    BCMOLT_XGPON_ONU_OMCI_PACKET_ID_PACKET_SIZE                                             = 2,    /**< packet size. */
+    BCMOLT_XGPON_ONU_OMCI_PACKET_ID_BUFFER                                                  = 3,    /**< buffer. */
+    BCMOLT_XGPON_ONU_OMCI_PACKET_ID__NUM_OF /**< Number of enum entries, not an entry itself. */
+} bcmolt_xgpon_onu_omci_packet_id;
+
+/** Identifiers for all properties contained in the 
+ * xgpon_onu_onu_activation_completed group. 
+ */
+typedef enum bcmolt_xgpon_onu_onu_activation_completed_id
+{
+    BCMOLT_XGPON_ONU_ONU_ACTIVATION_COMPLETED_ID__BEGIN                                     = 0,
+    BCMOLT_XGPON_ONU_ONU_ACTIVATION_COMPLETED_ID_STATUS                                     = 0,    /**< status. */
+    BCMOLT_XGPON_ONU_ONU_ACTIVATION_COMPLETED_ID_FAIL_REASON                                = 1,    /**< fail reason. */
+    BCMOLT_XGPON_ONU_ONU_ACTIVATION_COMPLETED_ID_REGISTRATION_ID                            = 2,    /**< registration id. */
+    BCMOLT_XGPON_ONU_ONU_ACTIVATION_COMPLETED_ID_REGISTRATION_ENCRYPTION_KEYS               = 3,    /**< registration encryption keys. */
+    BCMOLT_XGPON_ONU_ONU_ACTIVATION_COMPLETED_ID__NUM_OF    /**< Number of enum entries, not an entry itself. */
+} bcmolt_xgpon_onu_onu_activation_completed_id;
+
+/** Identifiers for all properties contained in the xgpon_onu_onu_alarm group. 
+ */
+typedef enum bcmolt_xgpon_onu_onu_alarm_id
+{
+    BCMOLT_XGPON_ONU_ONU_ALARM_ID__BEGIN                                                    = 0,
+    BCMOLT_XGPON_ONU_ONU_ALARM_ID_ONU_ALARM                                                 = 0,    /**< onu alarm. */
+    BCMOLT_XGPON_ONU_ONU_ALARM_ID__NUM_OF   /**< Number of enum entries, not an entry itself. */
+} bcmolt_xgpon_onu_onu_alarm_id;
+
+/** Identifiers for all properties contained in the 
+ * xgpon_onu_onu_deactivation_completed group. 
+ */
+typedef enum bcmolt_xgpon_onu_onu_deactivation_completed_id
+{
+    BCMOLT_XGPON_ONU_ONU_DEACTIVATION_COMPLETED_ID__BEGIN                                   = 0,
+    BCMOLT_XGPON_ONU_ONU_DEACTIVATION_COMPLETED_ID_STATUS                                   = 0,    /**< Status. */
+    BCMOLT_XGPON_ONU_ONU_DEACTIVATION_COMPLETED_ID__NUM_OF  /**< Number of enum entries, not an entry itself. */
+} bcmolt_xgpon_onu_onu_deactivation_completed_id;
+
+/** Identifiers for all properties contained in the 
+ * xgpon_onu_onu_disable_completed group. 
+ */
+typedef enum bcmolt_xgpon_onu_onu_disable_completed_id
+{
+    BCMOLT_XGPON_ONU_ONU_DISABLE_COMPLETED_ID__BEGIN                                        = 0,
+    BCMOLT_XGPON_ONU_ONU_DISABLE_COMPLETED_ID_SERIAL_NUMBER                                 = 0,    /**< serial number. */
+    BCMOLT_XGPON_ONU_ONU_DISABLE_COMPLETED_ID__NUM_OF   /**< Number of enum entries, not an entry itself. */
+} bcmolt_xgpon_onu_onu_disable_completed_id;
+
+/** Identifiers for all properties contained in the 
+ * xgpon_onu_onu_enable_completed group. 
+ */
+typedef enum bcmolt_xgpon_onu_onu_enable_completed_id
+{
+    BCMOLT_XGPON_ONU_ONU_ENABLE_COMPLETED_ID__BEGIN                                         = 0,
+    BCMOLT_XGPON_ONU_ONU_ENABLE_COMPLETED_ID_SERIAL_NUMBER                                  = 0,    /**< serial number. */
+    BCMOLT_XGPON_ONU_ONU_ENABLE_COMPLETED_ID__NUM_OF    /**< Number of enum entries, not an entry itself. */
+} bcmolt_xgpon_onu_onu_enable_completed_id;
+
+/** Identifiers for all properties contained in the 
+ * xgpon_onu_onu_tuning_in_completed group. 
+ */
+typedef enum bcmolt_xgpon_onu_onu_tuning_in_completed_id
+{
+    BCMOLT_XGPON_ONU_ONU_TUNING_IN_COMPLETED_ID__BEGIN                                      = 0,
+    BCMOLT_XGPON_ONU_ONU_TUNING_IN_COMPLETED_ID_RESULT                                      = 0,    /**< result. */
+    BCMOLT_XGPON_ONU_ONU_TUNING_IN_COMPLETED_ID_FAIL_REASON                                 = 1,    /**< fail reason. */
+    BCMOLT_XGPON_ONU_ONU_TUNING_IN_COMPLETED_ID__NUM_OF /**< Number of enum entries, not an entry itself. */
+} bcmolt_xgpon_onu_onu_tuning_in_completed_id;
+
+/** Identifiers for all properties contained in the xgpon_onu_onu_tuning_in 
+ * group. 
+ */
+typedef enum bcmolt_xgpon_onu_onu_tuning_in_id
+{
+    BCMOLT_XGPON_ONU_ONU_TUNING_IN_ID__NUM_OF           /**< Number of enum entries, not an entry itself. */
+} bcmolt_xgpon_onu_onu_tuning_in_id;
+
+/** Identifiers for all properties contained in the 
+ * xgpon_onu_onu_tuning_out_completed group. 
+ */
+typedef enum bcmolt_xgpon_onu_onu_tuning_out_completed_id
+{
+    BCMOLT_XGPON_ONU_ONU_TUNING_OUT_COMPLETED_ID__BEGIN                                     = 0,
+    BCMOLT_XGPON_ONU_ONU_TUNING_OUT_COMPLETED_ID_RESULT                                     = 0,    /**< result. */
+    BCMOLT_XGPON_ONU_ONU_TUNING_OUT_COMPLETED_ID_FAIL_REASON                                = 1,    /**< fail reason. */
+    BCMOLT_XGPON_ONU_ONU_TUNING_OUT_COMPLETED_ID__NUM_OF    /**< Number of enum entries, not an entry itself. */
+} bcmolt_xgpon_onu_onu_tuning_out_completed_id;
+
+/** Identifiers for all properties contained in the xgpon_onu_onu_tuning_out 
+ * group. 
+ */
+typedef enum bcmolt_xgpon_onu_onu_tuning_out_id
+{
+    BCMOLT_XGPON_ONU_ONU_TUNING_OUT_ID__BEGIN                                               = 0,
+    BCMOLT_XGPON_ONU_ONU_TUNING_OUT_ID_TARGET_DS_PON_ID                                     = 0,    /**< target ds pon id. */
+    BCMOLT_XGPON_ONU_ONU_TUNING_OUT_ID_TARGET_US_PON_ID                                     = 1,    /**< target us pon id. */
+    BCMOLT_XGPON_ONU_ONU_TUNING_OUT_ID_TIME_TO_SWITCH                                       = 2,    /**< time to switch. */
+    BCMOLT_XGPON_ONU_ONU_TUNING_OUT_ID_ROLLBACK                                             = 3,    /**< rollback. */
+    BCMOLT_XGPON_ONU_ONU_TUNING_OUT_ID_STATUS                                               = 4,    /**< status. */
+    BCMOLT_XGPON_ONU_ONU_TUNING_OUT_ID__NUM_OF      /**< Number of enum entries, not an entry itself. */
+} bcmolt_xgpon_onu_onu_tuning_out_id;
+
+/** Identifiers for all properties contained in the xgpon_onu_optical_reflection 
+ * group. 
+ */
+typedef enum bcmolt_xgpon_onu_optical_reflection_id
+{
+    BCMOLT_XGPON_ONU_OPTICAL_REFLECTION_ID__NUM_OF  /**< Number of enum entries, not an entry itself. */
+} bcmolt_xgpon_onu_optical_reflection_id;
+
+/** Identifiers for all properties contained in the xgpon_onu_ploam_packet 
+ * group. 
+ */
+typedef enum bcmolt_xgpon_onu_ploam_packet_id
+{
+    BCMOLT_XGPON_ONU_PLOAM_PACKET_ID__BEGIN                                                 = 0,
+    BCMOLT_XGPON_ONU_PLOAM_PACKET_ID_DEFAULT_KEY                                            = 0,    /**< default key. */
+    BCMOLT_XGPON_ONU_PLOAM_PACKET_ID_PLOAM                                                  = 1,    /**< ploam. */
+    BCMOLT_XGPON_ONU_PLOAM_PACKET_ID__NUM_OF    /**< Number of enum entries, not an entry itself. */
+} bcmolt_xgpon_onu_ploam_packet_id;
+
+/** Identifiers for all properties contained in the xgpon_onu_possible_drift 
+ * group. 
+ */
+typedef enum bcmolt_xgpon_onu_possible_drift_id
+{
+    BCMOLT_XGPON_ONU_POSSIBLE_DRIFT_ID__BEGIN                                               = 0,
+    BCMOLT_XGPON_ONU_POSSIBLE_DRIFT_ID_ALARM_STATUS                                         = 0,    /**< Alarm Status. */
+    BCMOLT_XGPON_ONU_POSSIBLE_DRIFT_ID_ESTIMATED_DRIFT                                      = 1,    /**< Estimated Drift. */
+    BCMOLT_XGPON_ONU_POSSIBLE_DRIFT_ID__NUM_OF  /**< Number of enum entries, not an entry itself. */
+} bcmolt_xgpon_onu_possible_drift_id;
+
+/** Identifiers for all properties contained in the 
+ * xgpon_onu_power_consumption_report group. 
+ */
+typedef enum bcmolt_xgpon_onu_power_consumption_report_id
+{
+    BCMOLT_XGPON_ONU_POWER_CONSUMPTION_REPORT_ID__BEGIN                                     = 0,
+    BCMOLT_XGPON_ONU_POWER_CONSUMPTION_REPORT_ID_POWER_CONSUMPTION_REPORT                   = 0,    /**< power consumption report. */
+    BCMOLT_XGPON_ONU_POWER_CONSUMPTION_REPORT_ID__NUM_OF    /**< Number of enum entries, not an entry itself. */
+} bcmolt_xgpon_onu_power_consumption_report_id;
+
+/** Identifiers for all properties contained in the xgpon_onu_power_level_report 
+ * group. 
+ */
+typedef enum bcmolt_xgpon_onu_power_level_report_id
+{
+    BCMOLT_XGPON_ONU_POWER_LEVEL_REPORT_ID__BEGIN                                           = 0,
+    BCMOLT_XGPON_ONU_POWER_LEVEL_REPORT_ID_ATTENUATION                                      = 0,    /**< Attenuation. */
+    BCMOLT_XGPON_ONU_POWER_LEVEL_REPORT_ID_POWER_LEVELLING_CAPABILITY                       = 1,    /**< Power levelling capability. */
+    BCMOLT_XGPON_ONU_POWER_LEVEL_REPORT_ID__NUM_OF  /**< Number of enum entries, not an entry itself. */
+} bcmolt_xgpon_onu_power_level_report_id;
+
+/** Identifiers for all properties contained in the 
+ * xgpon_onu_power_management_state_change group. 
+ */
+typedef enum bcmolt_xgpon_onu_power_management_state_change_id
+{
+    BCMOLT_XGPON_ONU_POWER_MANAGEMENT_STATE_CHANGE_ID__BEGIN                                = 0,
+    BCMOLT_XGPON_ONU_POWER_MANAGEMENT_STATE_CHANGE_ID_OLD_STATE                             = 0,    /**< Old State. */
+    BCMOLT_XGPON_ONU_POWER_MANAGEMENT_STATE_CHANGE_ID_NEW_STATE                             = 1,    /**< New State. */
+    BCMOLT_XGPON_ONU_POWER_MANAGEMENT_STATE_CHANGE_ID_REASON                                = 2,    /**< Reason. */
+    BCMOLT_XGPON_ONU_POWER_MANAGEMENT_STATE_CHANGE_ID__NUM_OF   /**< Number of enum entries, not an entry itself. */
+} bcmolt_xgpon_onu_power_management_state_change_id;
+
+/** Identifiers for all properties contained in the xgpon_onu_pqsi group. 
+ */
+typedef enum bcmolt_xgpon_onu_pqsi_id
+{
+    BCMOLT_XGPON_ONU_PQSI_ID__BEGIN                                                         = 0,
+    BCMOLT_XGPON_ONU_PQSI_ID_ALARM_STATUS                                                   = 0,    /**< alarm status. */
+    BCMOLT_XGPON_ONU_PQSI_ID__NUM_OF    /**< Number of enum entries, not an entry itself. */
+} bcmolt_xgpon_onu_pqsi_id;
+
+/** Identifiers for all properties contained in the xgpon_onu_ranging_completed 
+ * group. 
+ */
+typedef enum bcmolt_xgpon_onu_ranging_completed_id
+{
+    BCMOLT_XGPON_ONU_RANGING_COMPLETED_ID__BEGIN                                            = 0,
+    BCMOLT_XGPON_ONU_RANGING_COMPLETED_ID_STATUS                                            = 0,    /**< status. */
+    BCMOLT_XGPON_ONU_RANGING_COMPLETED_ID_FAIL_REASON                                       = 1,    /**< fail reason. */
+    BCMOLT_XGPON_ONU_RANGING_COMPLETED_ID_EQD                                               = 2,    /**< EQD. */
+    BCMOLT_XGPON_ONU_RANGING_COMPLETED_ID_NUMBER_OF_PLOAMS                                  = 3,    /**< number of ploams. */
+    BCMOLT_XGPON_ONU_RANGING_COMPLETED_ID_POWER_LEVEL                                       = 4,    /**< power level. */
+    BCMOLT_XGPON_ONU_RANGING_COMPLETED_ID__NUM_OF   /**< Number of enum entries, not an entry itself. */
+} bcmolt_xgpon_onu_ranging_completed_id;
+
+/** Identifiers for all properties contained in the xgpon_onu_registration_id 
+ * group. 
+ */
+typedef enum bcmolt_xgpon_onu_registration_id_id
+{
+    BCMOLT_XGPON_ONU_REGISTRATION_ID_ID__BEGIN                                              = 0,
+    BCMOLT_XGPON_ONU_REGISTRATION_ID_ID_REGISTRATION_ID                                     = 0,    /**< Registration ID. */
+    BCMOLT_XGPON_ONU_REGISTRATION_ID_ID_REQUEST_REGISTRATION_STATUS                         = 1,    /**< request registration status. */
+    BCMOLT_XGPON_ONU_REGISTRATION_ID_ID_REQUEST_REGISTRATION_FAIL_REASON                    = 2,    /**< request registration fail reason. */
+    BCMOLT_XGPON_ONU_REGISTRATION_ID_ID__NUM_OF /**< Number of enum entries, not an entry itself. */
+} bcmolt_xgpon_onu_registration_id_id;
+
+/** Identifiers for all properties contained in the 
+ * xgpon_onu_request_registration group. 
+ */
+typedef enum bcmolt_xgpon_onu_request_registration_id
+{
+    BCMOLT_XGPON_ONU_REQUEST_REGISTRATION_ID__BEGIN                                         = 0,
+    BCMOLT_XGPON_ONU_REQUEST_REGISTRATION_ID_SMA_FLAG                                       = 0,    /**< SMA flag. */
+    BCMOLT_XGPON_ONU_REQUEST_REGISTRATION_ID__NUM_OF    /**< Number of enum entries, not an entry itself. */
+} bcmolt_xgpon_onu_request_registration_id;
+
+/** Identifiers for all properties contained in the 
+ * xgpon_onu_rssi_measurement_completed group. 
+ */
+typedef enum bcmolt_xgpon_onu_rssi_measurement_completed_id
+{
+    BCMOLT_XGPON_ONU_RSSI_MEASUREMENT_COMPLETED_ID__BEGIN                                   = 0,
+    BCMOLT_XGPON_ONU_RSSI_MEASUREMENT_COMPLETED_ID_STATUS                                   = 0,    /**< status. */
+    BCMOLT_XGPON_ONU_RSSI_MEASUREMENT_COMPLETED_ID_FAIL_REASON                              = 1,    /**< fail reason. */
+    BCMOLT_XGPON_ONU_RSSI_MEASUREMENT_COMPLETED_ID__NUM_OF  /**< Number of enum entries, not an entry itself. */
+} bcmolt_xgpon_onu_rssi_measurement_completed_id;
+
+/** Identifiers for all properties contained in the xgpon_onu_rssi_measurement 
+ * group. 
+ */
+typedef enum bcmolt_xgpon_onu_rssi_measurement_id
+{
+    BCMOLT_XGPON_ONU_RSSI_MEASUREMENT_ID__NUM_OF            /**< Number of enum entries, not an entry itself. */
+} bcmolt_xgpon_onu_rssi_measurement_id;
+
+/** Identifiers for all properties contained in the xgpon_onu_sdi group. 
+ */
+typedef enum bcmolt_xgpon_onu_sdi_id
+{
+    BCMOLT_XGPON_ONU_SDI_ID__BEGIN                                                          = 0,
+    BCMOLT_XGPON_ONU_SDI_ID_ALARM_STATUS                                                    = 0,    /**< alarm status. */
+    BCMOLT_XGPON_ONU_SDI_ID_BER                                                             = 1,    /**< BER. */
+    BCMOLT_XGPON_ONU_SDI_ID__NUM_OF /**< Number of enum entries, not an entry itself. */
+} bcmolt_xgpon_onu_sdi_id;
+
+/** Identifiers for all properties contained in the 
+ * xgpon_onu_secure_mutual_authentication_failure group. 
+ */
+typedef enum bcmolt_xgpon_onu_secure_mutual_authentication_failure_id
+{
+    BCMOLT_XGPON_ONU_SECURE_MUTUAL_AUTHENTICATION_FAILURE_ID__BEGIN                         = 0,
+    BCMOLT_XGPON_ONU_SECURE_MUTUAL_AUTHENTICATION_FAILURE_ID_STATUS                         = 0,    /**< status. */
+    BCMOLT_XGPON_ONU_SECURE_MUTUAL_AUTHENTICATION_FAILURE_ID_FAIL_REASON                    = 1,    /**< secure mutual authentication fail reason. */
+    BCMOLT_XGPON_ONU_SECURE_MUTUAL_AUTHENTICATION_FAILURE_ID__NUM_OF    /**< Number of enum entries, not an entry itself. */
+} bcmolt_xgpon_onu_secure_mutual_authentication_failure_id;
+
+/** Identifiers for all properties contained in the 
+ * xgpon_onu_secure_mutual_authentication group. 
+ */
+typedef enum bcmolt_xgpon_onu_secure_mutual_authentication_id
+{
+    BCMOLT_XGPON_ONU_SECURE_MUTUAL_AUTHENTICATION_ID__BEGIN                                 = 0,
+    BCMOLT_XGPON_ONU_SECURE_MUTUAL_AUTHENTICATION_ID_MASTER_KEY                             = 0,    /**< master key. */
+    BCMOLT_XGPON_ONU_SECURE_MUTUAL_AUTHENTICATION_ID_BUFFER                                 = 1,    /**< OMCI data buffer. */
+    BCMOLT_XGPON_ONU_SECURE_MUTUAL_AUTHENTICATION_ID_MIC                                    = 2,    /**< mic. */
+    BCMOLT_XGPON_ONU_SECURE_MUTUAL_AUTHENTICATION_ID__NUM_OF    /**< Number of enum entries, not an entry itself. */
+} bcmolt_xgpon_onu_secure_mutual_authentication_id;
+
+/** Identifiers for all properties contained in the xgpon_onu_set_onu_state 
+ * group. 
+ */
+typedef enum bcmolt_xgpon_onu_set_onu_state_id
+{
+    BCMOLT_XGPON_ONU_SET_ONU_STATE_ID__BEGIN                                                = 0,
+    BCMOLT_XGPON_ONU_SET_ONU_STATE_ID_ONU_STATE                                             = 0,    /**< ONU state. */
+    BCMOLT_XGPON_ONU_SET_ONU_STATE_ID__NUM_OF   /**< Number of enum entries, not an entry itself. */
+} bcmolt_xgpon_onu_set_onu_state_id;
+
+/** Identifiers for all properties contained in the xgpon_onu_sfi group. 
+ */
+typedef enum bcmolt_xgpon_onu_sfi_id
+{
+    BCMOLT_XGPON_ONU_SFI_ID__BEGIN                                                          = 0,
+    BCMOLT_XGPON_ONU_SFI_ID_ALARM_STATUS                                                    = 0,    /**< alarm status. */
+    BCMOLT_XGPON_ONU_SFI_ID_BER                                                             = 1,    /**< BER. */
+    BCMOLT_XGPON_ONU_SFI_ID__NUM_OF /**< Number of enum entries, not an entry itself. */
+} bcmolt_xgpon_onu_sfi_id;
+
+/** Identifiers for all properties contained in the xgpon_onu_stat_alarm_cleared 
+ * group. 
+ */
+typedef enum bcmolt_xgpon_onu_stat_alarm_cleared_id
+{
+    BCMOLT_XGPON_ONU_STAT_ALARM_CLEARED_ID__BEGIN                                           = 0,
+    BCMOLT_XGPON_ONU_STAT_ALARM_CLEARED_ID_STAT                                             = 0,    /**< Statistic ID. */
+    BCMOLT_XGPON_ONU_STAT_ALARM_CLEARED_ID__NUM_OF  /**< Number of enum entries, not an entry itself. */
+} bcmolt_xgpon_onu_stat_alarm_cleared_id;
+
+/** Identifiers for all properties contained in the xgpon_onu_stat_alarm_raised 
+ * group. 
+ */
+typedef enum bcmolt_xgpon_onu_stat_alarm_raised_id
+{
+    BCMOLT_XGPON_ONU_STAT_ALARM_RAISED_ID__BEGIN                                            = 0,
+    BCMOLT_XGPON_ONU_STAT_ALARM_RAISED_ID_STAT                                              = 0,    /**< Statistic ID. */
+    BCMOLT_XGPON_ONU_STAT_ALARM_RAISED_ID__NUM_OF   /**< Number of enum entries, not an entry itself. */
+} bcmolt_xgpon_onu_stat_alarm_raised_id;
+
+/** Identifiers for all properties contained in the xgpon_onu_stat_cfg group. 
+ */
+typedef enum bcmolt_xgpon_onu_stat_cfg_id
+{
+    BCMOLT_XGPON_ONU_STAT_CFG_ID__BEGIN                                                     = 0,
+    BCMOLT_XGPON_ONU_STAT_CFG_ID_CFG                                                        = 0,    /**< Configuration. */
+    BCMOLT_XGPON_ONU_STAT_CFG_ID__NUM_OF    /**< Number of enum entries, not an entry itself. */
+} bcmolt_xgpon_onu_stat_cfg_id;
+
+/** Identifiers for all properties contained in the xgpon_onu_stat group. 
+ */
+typedef enum bcmolt_xgpon_onu_stat_id
+{
+    BCMOLT_XGPON_ONU_STAT_ID__BEGIN                                                         = 0,
+    BCMOLT_XGPON_ONU_STAT_ID_POSITIVE_DRIFT                                                 = 0,    /**< positive drift. */
+    BCMOLT_XGPON_ONU_STAT_ID_NEGATIVE_DRIFT                                                 = 1,    /**< negative drift. */
+    BCMOLT_XGPON_ONU_STAT_ID_DELIMITER_MISS_DETECTION                                       = 2,    /**< delimiter miss detection. */
+    BCMOLT_XGPON_ONU_STAT_ID_BIP32_ERRORS                                                   = 3,    /**< bip32 errors. */
+    BCMOLT_XGPON_ONU_STAT_ID_RX_WORDS                                                       = 4,    /**< received words. */
+    BCMOLT_XGPON_ONU_STAT_ID_FEC_CORRECTED_SYMBOLS                                          = 5,    /**< fec corrected symbols. */
+    BCMOLT_XGPON_ONU_STAT_ID_FEC_CORRECTED_CODEWORDS                                        = 6,    /**< fec corrected codewords. */
+    BCMOLT_XGPON_ONU_STAT_ID_FEC_UNCORRECTABLE_CODEWORDS                                    = 7,    /**< fec uncorrectable codewords. */
+    BCMOLT_XGPON_ONU_STAT_ID_FEC_CODEWORDS                                                  = 8,    /**< fec total codewords. */
+    BCMOLT_XGPON_ONU_STAT_ID_FEC_CORRECTED_BITS                                             = 9,    /**< fec corrected bits. */
+    BCMOLT_XGPON_ONU_STAT_ID_XGEM_KEY_ERRORS                                                = 10,   /**< xgem key error. */
+    BCMOLT_XGPON_ONU_STAT_ID_XGEM_LOSS                                                      = 11,   /**< xgem loss . */
+    BCMOLT_XGPON_ONU_STAT_ID_RX_PLOAMS_MIC_ERROR                                            = 12,   /**< mic error ploam. */
+    BCMOLT_XGPON_ONU_STAT_ID_RX_PLOAMS_NON_IDLE                                             = 13,   /**< non idle ploam. */
+    BCMOLT_XGPON_ONU_STAT_ID_RX_OMCI                                                        = 14,   /**< Received OMCI packets. */
+    BCMOLT_XGPON_ONU_STAT_ID_RX_OMCI_PACKETS_CRC_ERROR                                      = 15,   /**< Received OMCI packets with CRC errors. */
+    BCMOLT_XGPON_ONU_STAT_ID_RX_BYTES                                                       = 16,   /**< rx bytes. */
+    BCMOLT_XGPON_ONU_STAT_ID_RX_PACKETS                                                     = 17,   /**< rx packets. */
+    BCMOLT_XGPON_ONU_STAT_ID_TX_BYTES                                                       = 18,   /**< tx bytes. */
+    BCMOLT_XGPON_ONU_STAT_ID_TX_PACKETS                                                     = 19,   /**< tx packets. */
+    BCMOLT_XGPON_ONU_STAT_ID__NUM_OF    /**< Number of enum entries, not an entry itself. */
+} bcmolt_xgpon_onu_stat_id;
+
+/** Identifiers for all properties contained in the xgpon_onu_sufi group. 
+ */
+typedef enum bcmolt_xgpon_onu_sufi_id
+{
+    BCMOLT_XGPON_ONU_SUFI_ID__BEGIN                                                         = 0,
+    BCMOLT_XGPON_ONU_SUFI_ID_ALARM_STATUS                                                   = 0,    /**< alarm status. */
+    BCMOLT_XGPON_ONU_SUFI_ID__NUM_OF    /**< Number of enum entries, not an entry itself. */
+} bcmolt_xgpon_onu_sufi_id;
+
+/** Identifiers for all properties contained in the xgpon_onu_tiwi group. 
+ */
+typedef enum bcmolt_xgpon_onu_tiwi_id
+{
+    BCMOLT_XGPON_ONU_TIWI_ID__BEGIN                                                         = 0,
+    BCMOLT_XGPON_ONU_TIWI_ID_ALARM_STATUS                                                   = 0,    /**< Alarm status. */
+    BCMOLT_XGPON_ONU_TIWI_ID_DRIFT_VALUE                                                    = 1,    /**< Drift value. */
+    BCMOLT_XGPON_ONU_TIWI_ID__NUM_OF    /**< Number of enum entries, not an entry itself. */
+} bcmolt_xgpon_onu_tiwi_id;
+
+/** Identifiers for all properties contained in the xgpon_onu_tuning_response 
+ * group. 
+ */
+typedef enum bcmolt_xgpon_onu_tuning_response_id
+{
+    BCMOLT_XGPON_ONU_TUNING_RESPONSE_ID__BEGIN                                              = 0,
+    BCMOLT_XGPON_ONU_TUNING_RESPONSE_ID_ACK                                                 = 0,    /**< ack. */
+    BCMOLT_XGPON_ONU_TUNING_RESPONSE_ID_RESULT                                              = 1,    /**< result. */
+    BCMOLT_XGPON_ONU_TUNING_RESPONSE_ID__NUM_OF /**< Number of enum entries, not an entry itself. */
+} bcmolt_xgpon_onu_tuning_response_id;
+
+/** Identifiers for all properties contained in the xgpon_trx_cfg group. 
+ */
+typedef enum bcmolt_xgpon_trx_cfg_id
+{
+    BCMOLT_XGPON_TRX_CFG_ID__BEGIN                                                          = 0,
+    BCMOLT_XGPON_TRX_CFG_ID_BURST_PROFILE                                                   = 0,    /**< burst profile. */
+    BCMOLT_XGPON_TRX_CFG_ID_TRANSCEIVER_CONFIG                                              = 1,    /**< transceiver config. */
+    BCMOLT_XGPON_TRX_CFG_ID_TRANSCEIVER_TYPE                                                = 2,    /**< trx type. */
+    BCMOLT_XGPON_TRX_CFG_ID_DEBUG                                                           = 3,    /**< debug. */
+    BCMOLT_XGPON_TRX_CFG_ID_RSSI_NORMAL_CONFIG                                              = 4,    /**< rssi normal config. */
+    BCMOLT_XGPON_TRX_CFG_ID_RSSI_RANGING_CONFIG                                             = 5,    /**< rssi ranging config. */
+    BCMOLT_XGPON_TRX_CFG_ID_SERDES_CONFIGURATION                                            = 6,    /**< serdes configuration. */
+    BCMOLT_XGPON_TRX_CFG_ID_BURST_PROFILE_DELIMITER_MAX_ERRORS                              = 7,    /**< burst profile delimiter max errors. */
+    BCMOLT_XGPON_TRX_CFG_ID_RANGING_SM_PATTERNS_AT_INIT                                     = 8,    /**< ranging sm patterns at init. */
+    BCMOLT_XGPON_TRX_CFG_ID_RANGING_SM_PATTERNS_ED_FAILURE                                  = 9,    /**< ranging sm patterns ED failure. */
+    BCMOLT_XGPON_TRX_CFG_ID_RESET_ON_DEL_MISS                                               = 10,   /**< reset on del miss. */
+    BCMOLT_XGPON_TRX_CFG_ID_ED_STATE                                                        = 11,   /**< ed state. */
+    BCMOLT_XGPON_TRX_CFG_ID_INVERT_ED                                                       = 12,   /**< invert ED. */
+    BCMOLT_XGPON_TRX_CFG_ID_END_OF_BURST_RESET                                              = 13,   /**< end of burst reset. */
+    BCMOLT_XGPON_TRX_CFG_ID_TRX_RST_POLARITY                                                = 14,   /**< TRX reset polarity. */
+    BCMOLT_XGPON_TRX_CFG_ID__NUM_OF /**< Number of enum entries, not an entry itself. */
+} bcmolt_xgpon_trx_cfg_id;
+
+/** Identifiers for all properties contained in the xgpon_trx_key group. 
+ */
+typedef enum bcmolt_xgpon_trx_key_id
+{
+    BCMOLT_XGPON_TRX_KEY_ID__BEGIN                                                          = 0,
+    BCMOLT_XGPON_TRX_KEY_ID_PON_NI                                                          = 0,    /**< PON network interface. */
+    BCMOLT_XGPON_TRX_KEY_ID__NUM_OF /**< Number of enum entries, not an entry itself. */
+} bcmolt_xgpon_trx_key_id;
+
+/** Identifiers for all properties contained in the xpon_serdes_cfg group. 
+ */
+typedef enum bcmolt_xpon_serdes_cfg_id
+{
+    BCMOLT_XPON_SERDES_CFG_ID__BEGIN                                                        = 0,
+    BCMOLT_XPON_SERDES_CFG_ID_RX_VGA                                                        = 0,    /**< Rx Vga. */
+    BCMOLT_XPON_SERDES_CFG_ID_RX_PF                                                         = 1,    /**< Rx PF. */
+    BCMOLT_XPON_SERDES_CFG_ID_RX_LFPF                                                       = 2,    /**< Rx LFPF. */
+    BCMOLT_XPON_SERDES_CFG_ID_RX_DFE1                                                       = 3,    /**< Rx DFE1. */
+    BCMOLT_XPON_SERDES_CFG_ID_RX_DFE2                                                       = 4,    /**< Rx DFE2. */
+    BCMOLT_XPON_SERDES_CFG_ID_RX_DFE3                                                       = 5,    /**< Rx DFE3. */
+    BCMOLT_XPON_SERDES_CFG_ID_RX_DFE4                                                       = 6,    /**< Rx DFE4. */
+    BCMOLT_XPON_SERDES_CFG_ID_RX_DFE5                                                       = 7,    /**< Rx DFE5. */
+    BCMOLT_XPON_SERDES_CFG_ID_TX_PRE                                                        = 8,    /**< Tx Pre. */
+    BCMOLT_XPON_SERDES_CFG_ID_TX_MAIN                                                       = 9,    /**< Tx Main. */
+    BCMOLT_XPON_SERDES_CFG_ID_TX_POST1                                                      = 10,   /**< Tx Post1. */
+    BCMOLT_XPON_SERDES_CFG_ID_TX_POST2                                                      = 11,   /**< Tx Post2. */
+    BCMOLT_XPON_SERDES_CFG_ID_TX_POST3                                                      = 12,   /**< Tx Post3. */
+    BCMOLT_XPON_SERDES_CFG_ID_TX_AMP                                                        = 13,   /**< Tx Amp. */
+    BCMOLT_XPON_SERDES_CFG_ID__NUM_OF   /**< Number of enum entries, not an entry itself. */
+} bcmolt_xpon_serdes_cfg_id;
+
+/** Identifiers for all properties contained in the xpon_serdes_key group. 
+ */
+typedef enum bcmolt_xpon_serdes_key_id
+{
+    BCMOLT_XPON_SERDES_KEY_ID__BEGIN                                                        = 0,
+    BCMOLT_XPON_SERDES_KEY_ID_PON_NI                                                        = 0,    /**< PON NI. */
+    BCMOLT_XPON_SERDES_KEY_ID_INSTANCE                                                      = 1,    /**< Instance. */
+    BCMOLT_XPON_SERDES_KEY_ID__NUM_OF   /**< Number of enum entries, not an entry itself. */
+} bcmolt_xpon_serdes_key_id;
+
+/** All object tags for all objects in the system. 
+ */
+typedef enum bcmolt_obj_tag
+{
+    BCMOLT_OBJ_TAG__BEGIN,
+    BCMOLT_OBJ_TAG_EPON                                                                     = 0,
+    BCMOLT_OBJ_TAG_AE,
+    BCMOLT_OBJ_TAG_GPON,
+    BCMOLT_OBJ_TAG_XGPON,
+    BCMOLT_OBJ_TAG__NUM_OF              /**< Number of enum entries, not an entry itself. */
+} bcmolt_obj_tag;
+
+/* The following config modes are enabled for this build */
+#define BCMOLT_CONFIG_MODE_EPON 1
+
+/* The following config modes are enabled for this build */
+#define BCMOLT_CONFIG_MODE_AE   1
+
+/* The following config modes are enabled for this build */
+#define BCMOLT_CONFIG_MODE_GPON 1
+
+/* The following config modes are enabled for this build */
+#define BCMOLT_CONFIG_MODE_XGPON    1
+
+/** Identifiers for all objects in the system. 
+ */
+typedef enum bcmolt_obj_id
+{
+    BCMOLT_OBJ_ID__BEGIN,
+    BCMOLT_OBJ_ID_AE_NI                                                                     = 0,    /**< AE NI (Active Ethernet Network Interface) */
+    BCMOLT_OBJ_ID_AE_PATH_DS                                                                = 1,    /**< AE path downstream */
+    BCMOLT_OBJ_ID_AE_PATH_US                                                                = 2,    /**< AE path upstream */
+    BCMOLT_OBJ_ID_CHANNEL                                                                   = 3,    /**< Channel */
+    BCMOLT_OBJ_ID_DEBUG                                                                     = 4,    /**< Debug */
+    BCMOLT_OBJ_ID_DEVICE                                                                    = 5,    /**< Device */
+    BCMOLT_OBJ_ID_EPON_DENIED_LINK                                                          = 6,    /**< EPON Denied Link */
+    BCMOLT_OBJ_ID_EPON_LINK                                                                 = 7,    /**< EPON link */
+    BCMOLT_OBJ_ID_EPON_NI                                                                   = 8,    /**< EPON NI (EPON Network Interface) */
+    BCMOLT_OBJ_ID_EPON_ONU_10G_US                                                           = 9,    /**< EPON ONU 10G US */
+    BCMOLT_OBJ_ID_EPON_ONU_1G_US                                                            = 10,   /**< EPON ONU 1G US */
+    BCMOLT_OBJ_ID_EPON_PATH_10G_DS                                                          = 11,   /**< EPON path 10G downstream */
+    BCMOLT_OBJ_ID_EPON_PATH_10G_US                                                          = 12,   /**< EPON path 10G upstream */
+    BCMOLT_OBJ_ID_EPON_PATH_1G_DS                                                           = 13,   /**< EPON path 1G downstream */
+    BCMOLT_OBJ_ID_EPON_PATH_1G_US                                                           = 14,   /**< EPON path 1G upstream */
+    BCMOLT_OBJ_ID_EPON_RP                                                                   = 15,   /**< EPON Reconciliation Path */
+    BCMOLT_OBJ_ID_GPIO                                                                      = 16,   /**< GPIO */
+    BCMOLT_OBJ_ID_GPON_ALLOC                                                                = 17,   /**< GPON Alloc */
+    BCMOLT_OBJ_ID_GPON_GEM_PORT                                                             = 18,   /**< GPON GEM Port */
+    BCMOLT_OBJ_ID_GPON_IWF                                                                  = 19,   /**< GPON IWF */
+    BCMOLT_OBJ_ID_GPON_IWF_DS_EGRESS_FLOW                                                   = 20,   /**< GPON IWF DS egress flow */
+    BCMOLT_OBJ_ID_GPON_IWF_DS_INGRESS_FLOW                                                  = 21,   /**< GPON IWF DS ingress flow */
+    BCMOLT_OBJ_ID_GPON_IWF_MAC_TABLE                                                        = 22,   /**< GPON IWF MAC table */
+    BCMOLT_OBJ_ID_GPON_IWF_US_FLOW                                                          = 23,   /**< GPON IWF US flow */
+    BCMOLT_OBJ_ID_GPON_NI                                                                   = 24,   /**< GPON network interface */
+    BCMOLT_OBJ_ID_GPON_ONU                                                                  = 25,   /**< GPON ONU */
+    BCMOLT_OBJ_ID_GPON_TRX                                                                  = 26,   /**< GPON TRX */
+    BCMOLT_OBJ_ID_LOG_ENTRY                                                                 = 27,   /**< log entry */
+    BCMOLT_OBJ_ID_LOGGER                                                                    = 28,   /**< logger */
+    BCMOLT_OBJ_ID_NNI                                                                       = 29,   /**< NNI */
+    BCMOLT_OBJ_ID_NNI_SERDES                                                                = 30,   /**< nni_serdes */
+    BCMOLT_OBJ_ID_SOFTWARE_ERROR                                                            = 31,   /**< Software Error */
+    BCMOLT_OBJ_ID_TRX_CALIBRATION                                                           = 32,   /**< TRX Calibration */
+    BCMOLT_OBJ_ID_XGPON_ALLOC                                                               = 33,   /**< XGPON Alloc */
+    BCMOLT_OBJ_ID_XGPON_GEM_PORT                                                            = 34,   /**< XGPON GEM port */
+    BCMOLT_OBJ_ID_XGPON_IWF                                                                 = 35,   /**< XGPON IWF */
+    BCMOLT_OBJ_ID_XGPON_NI                                                                  = 36,   /**< XGPON network interface */
+    BCMOLT_OBJ_ID_XGPON_ONU                                                                 = 37,   /**< XGPON ONU */
+    BCMOLT_OBJ_ID_XGPON_TRX                                                                 = 38,   /**< XGPON TRX */
+    BCMOLT_OBJ_ID_XPON_SERDES                                                               = 39,   /**< xpon_serdes */
+    BCMOLT_OBJ_ID__NUM_OF   /**< Number of enum entries, not an entry itself. */
+} bcmolt_obj_id;
+
+/** Identifiers for all possible groups under all objects in the system. 
+ */
+typedef enum bcmolt_group_id
+{
+    BCMOLT_GROUP_ID__BEGIN,
+    BCMOLT_GROUP_ID_AE_NI_KEY                                                               = 0,    /**< AE NI (Active Ethernet Network Interface) - key */
+    BCMOLT_GROUP_ID_AE_NI_CFG                                                               = 1,    /**< AE NI (Active Ethernet Network Interface) - cfg */
+    BCMOLT_GROUP_ID_AE_NI_SET_AE_NI_EN_STATE                                                = 2,    /**< AE NI (Active Ethernet Network Interface) - Set AE NI Enable State */
+    BCMOLT_GROUP_ID_AE_PATH_DS_KEY                                                          = 3,    /**< AE path downstream - key */
+    BCMOLT_GROUP_ID_AE_PATH_DS_STAT                                                         = 4,    /**< AE path downstream - stat */
+    BCMOLT_GROUP_ID_AE_PATH_DS_STAT_CFG_BYTES                                               = 5,    /**< AE path downstream - Statistic Configuration */
+    BCMOLT_GROUP_ID_AE_PATH_DS_STAT_CFG_FRAMES                                              = 6,    /**< AE path downstream - Statistic Configuration */
+    BCMOLT_GROUP_ID_AE_PATH_DS_STAT_CFG_FRAMES_64                                           = 7,    /**< AE path downstream - Statistic Configuration */
+    BCMOLT_GROUP_ID_AE_PATH_DS_STAT_CFG_FRAMES_65_127                                       = 8,    /**< AE path downstream - Statistic Configuration */
+    BCMOLT_GROUP_ID_AE_PATH_DS_STAT_CFG_FRAMES_128_255                                      = 9,    /**< AE path downstream - Statistic Configuration */
+    BCMOLT_GROUP_ID_AE_PATH_DS_STAT_CFG_FRAMES_256_511                                      = 10,   /**< AE path downstream - Statistic Configuration */
+    BCMOLT_GROUP_ID_AE_PATH_DS_STAT_CFG_FRAMES_512_1023                                     = 11,   /**< AE path downstream - Statistic Configuration */
+    BCMOLT_GROUP_ID_AE_PATH_DS_STAT_CFG_FRAMES_1024_1518                                    = 12,   /**< AE path downstream - Statistic Configuration */
+    BCMOLT_GROUP_ID_AE_PATH_DS_STAT_CFG_FRAMES_1519_2047                                    = 13,   /**< AE path downstream - Statistic Configuration */
+    BCMOLT_GROUP_ID_AE_PATH_DS_STAT_CFG_FRAMES_2048_4095                                    = 14,   /**< AE path downstream - Statistic Configuration */
+    BCMOLT_GROUP_ID_AE_PATH_DS_STAT_CFG_FRAMES_4096_9216                                    = 15,   /**< AE path downstream - Statistic Configuration */
+    BCMOLT_GROUP_ID_AE_PATH_DS_STAT_CFG_FRAMES_9217_16383                                   = 16,   /**< AE path downstream - Statistic Configuration */
+    BCMOLT_GROUP_ID_AE_PATH_DS_STAT_CFG_BROADCAST_FRAMES                                    = 17,   /**< AE path downstream - Statistic Configuration */
+    BCMOLT_GROUP_ID_AE_PATH_DS_STAT_CFG_DATA_BYTES                                          = 18,   /**< AE path downstream - Statistic Configuration */
+    BCMOLT_GROUP_ID_AE_PATH_DS_STAT_CFG_MULTICAST_FRAMES                                    = 19,   /**< AE path downstream - Statistic Configuration */
+    BCMOLT_GROUP_ID_AE_PATH_DS_STAT_CFG_UNICAST_FRAMES                                      = 20,   /**< AE path downstream - Statistic Configuration */
+    BCMOLT_GROUP_ID_AE_PATH_DS_STAT_CFG_ABORT_FRAMES                                        = 21,   /**< AE path downstream - Statistic Configuration */
+    BCMOLT_GROUP_ID_AE_PATH_DS_STAT_ALARM_CLEARED                                           = 22,   /**< AE path downstream - Stat Alarm Cleared */
+    BCMOLT_GROUP_ID_AE_PATH_DS_STAT_ALARM_RAISED                                            = 23,   /**< AE path downstream - Stat Alarm Raised */
+    BCMOLT_GROUP_ID_AE_PATH_DS_AUTO_CFG                                                     = 24,   /**< AE path downstream - Indication Configuration */
+    BCMOLT_GROUP_ID_AE_PATH_US_KEY                                                          = 25,   /**< AE path upstream - key */
+    BCMOLT_GROUP_ID_AE_PATH_US_STAT                                                         = 26,   /**< AE path upstream - stat */
+    BCMOLT_GROUP_ID_AE_PATH_US_STAT_CFG_BYTES                                               = 27,   /**< AE path upstream - Statistic Configuration */
+    BCMOLT_GROUP_ID_AE_PATH_US_STAT_CFG_FRAMES                                              = 28,   /**< AE path upstream - Statistic Configuration */
+    BCMOLT_GROUP_ID_AE_PATH_US_STAT_CFG_FRAMES_64                                           = 29,   /**< AE path upstream - Statistic Configuration */
+    BCMOLT_GROUP_ID_AE_PATH_US_STAT_CFG_FRAMES_65_127                                       = 30,   /**< AE path upstream - Statistic Configuration */
+    BCMOLT_GROUP_ID_AE_PATH_US_STAT_CFG_FRAMES_128_255                                      = 31,   /**< AE path upstream - Statistic Configuration */
+    BCMOLT_GROUP_ID_AE_PATH_US_STAT_CFG_FRAMES_256_511                                      = 32,   /**< AE path upstream - Statistic Configuration */
+    BCMOLT_GROUP_ID_AE_PATH_US_STAT_CFG_FRAMES_512_1023                                     = 33,   /**< AE path upstream - Statistic Configuration */
+    BCMOLT_GROUP_ID_AE_PATH_US_STAT_CFG_FRAMES_1024_1518                                    = 34,   /**< AE path upstream - Statistic Configuration */
+    BCMOLT_GROUP_ID_AE_PATH_US_STAT_CFG_FRAMES_1519_2047                                    = 35,   /**< AE path upstream - Statistic Configuration */
+    BCMOLT_GROUP_ID_AE_PATH_US_STAT_CFG_FRAMES_2048_4095                                    = 36,   /**< AE path upstream - Statistic Configuration */
+    BCMOLT_GROUP_ID_AE_PATH_US_STAT_CFG_FRAMES_4096_9216                                    = 37,   /**< AE path upstream - Statistic Configuration */
+    BCMOLT_GROUP_ID_AE_PATH_US_STAT_CFG_FRAMES_9217_16383                                   = 38,   /**< AE path upstream - Statistic Configuration */
+    BCMOLT_GROUP_ID_AE_PATH_US_STAT_CFG_BROADCAST_FRAMES                                    = 39,   /**< AE path upstream - Statistic Configuration */
+    BCMOLT_GROUP_ID_AE_PATH_US_STAT_CFG_DATA_BYTES                                          = 40,   /**< AE path upstream - Statistic Configuration */
+    BCMOLT_GROUP_ID_AE_PATH_US_STAT_CFG_MULTICAST_FRAMES                                    = 41,   /**< AE path upstream - Statistic Configuration */
+    BCMOLT_GROUP_ID_AE_PATH_US_STAT_CFG_UNICAST_FRAMES                                      = 42,   /**< AE path upstream - Statistic Configuration */
+    BCMOLT_GROUP_ID_AE_PATH_US_STAT_CFG_ABORT_FRAMES                                        = 43,   /**< AE path upstream - Statistic Configuration */
+    BCMOLT_GROUP_ID_AE_PATH_US_STAT_CFG_FCS_ERROR                                           = 44,   /**< AE path upstream - Statistic Configuration */
+    BCMOLT_GROUP_ID_AE_PATH_US_STAT_CFG_OVERSIZE_ERROR                                      = 45,   /**< AE path upstream - Statistic Configuration */
+    BCMOLT_GROUP_ID_AE_PATH_US_STAT_CFG_RUNT_ERROR                                          = 46,   /**< AE path upstream - Statistic Configuration */
+    BCMOLT_GROUP_ID_AE_PATH_US_STAT_ALARM_CLEARED                                           = 47,   /**< AE path upstream - Stat Alarm Cleared */
+    BCMOLT_GROUP_ID_AE_PATH_US_STAT_ALARM_RAISED                                            = 48,   /**< AE path upstream - Stat Alarm Raised */
+    BCMOLT_GROUP_ID_AE_PATH_US_AUTO_CFG                                                     = 49,   /**< AE path upstream - Indication Configuration */
+    BCMOLT_GROUP_ID_CHANNEL_KEY                                                             = 50,   /**< Channel - key */
+    BCMOLT_GROUP_ID_CHANNEL_CFG                                                             = 51,   /**< Channel - cfg */
+    BCMOLT_GROUP_ID_DEBUG_KEY                                                               = 52,   /**< Debug - key */
+    BCMOLT_GROUP_ID_DEBUG_CFG                                                               = 53,   /**< Debug - cfg */
+    BCMOLT_GROUP_ID_DEBUG_CLI_OUTPUT                                                        = 54,   /**< Debug - cli_output */
+    BCMOLT_GROUP_ID_DEBUG_FILE_ALMOST_FULL                                                  = 55,   /**< Debug - file_almost_full */
+    BCMOLT_GROUP_ID_DEBUG_AUTO_CFG                                                          = 56,   /**< Debug - Indication Configuration */
+    BCMOLT_GROUP_ID_DEBUG_CLI_INPUT                                                         = 57,   /**< Debug - CLI_input */
+    BCMOLT_GROUP_ID_DEBUG_RESET_API_CAPTURE                                                 = 58,   /**< Debug - Reset API Capture */
+    BCMOLT_GROUP_ID_DEBUG_START_API_CAPTURE                                                 = 59,   /**< Debug - Start API Capture */
+    BCMOLT_GROUP_ID_DEBUG_STOP_API_CAPTURE                                                  = 60,   /**< Debug - Stop API Capture */
+    BCMOLT_GROUP_ID_DEVICE_KEY                                                              = 61,   /**< Device - key */
+    BCMOLT_GROUP_ID_DEVICE_CFG                                                              = 62,   /**< Device - cfg */
+    BCMOLT_GROUP_ID_DEVICE_CONNECTION_COMPLETE                                              = 63,   /**< Device - Connection Complete */
+    BCMOLT_GROUP_ID_DEVICE_CONNECTION_ESTABLISHED                                           = 64,   /**< Device - Connection Established (Internal) */
+    BCMOLT_GROUP_ID_DEVICE_CONNECTION_FAILURE                                               = 65,   /**< Device - Connection Failure */
+    BCMOLT_GROUP_ID_DEVICE_DDR_TEST_COMPLETE                                                = 66,   /**< Device - DDR Test Complete */
+    BCMOLT_GROUP_ID_DEVICE_DEVICE_KEEP_ALIVE                                                = 67,   /**< Device - Device Keep Alive (Internal) */
+    BCMOLT_GROUP_ID_DEVICE_DEVICE_READY                                                     = 68,   /**< Device - Device Ready (Internal) */
+    BCMOLT_GROUP_ID_DEVICE_DISCONNECTION_COMPLETE                                           = 69,   /**< Device - Disconnection Complete */
+    BCMOLT_GROUP_ID_DEVICE_IMAGE_TRANSFER_COMPLETE                                          = 70,   /**< Device - Image Transfer Complete */
+    BCMOLT_GROUP_ID_DEVICE_INDICATIONS_DROPPED                                              = 71,   /**< Device - Indications Dropped */
+    BCMOLT_GROUP_ID_DEVICE_SW_ERROR                                                         = 72,   /**< Device - sw error */
+    BCMOLT_GROUP_ID_DEVICE_SW_EXCEPTION                                                     = 73,   /**< Device - sw exception */
+    BCMOLT_GROUP_ID_DEVICE_AUTO_CFG                                                         = 74,   /**< Device - Indication Configuration */
+    BCMOLT_GROUP_ID_DEVICE_CONNECT                                                          = 75,   /**< Device - Connect */
+    BCMOLT_GROUP_ID_DEVICE_DISCONNECT                                                       = 76,   /**< Device - Device Disconnect */
+    BCMOLT_GROUP_ID_DEVICE_HOST_KEEP_ALIVE                                                  = 77,   /**< Device - Host Keep Alive (Internal) */
+    BCMOLT_GROUP_ID_DEVICE_IMAGE_TRANSFER_DATA                                              = 78,   /**< Device - Image Data Transfer Operation (Internal) */
+    BCMOLT_GROUP_ID_DEVICE_IMAGE_TRANSFER_START                                             = 79,   /**< Device - Start Image Transfer Operation */
+    BCMOLT_GROUP_ID_DEVICE_RESET                                                            = 80,   /**< Device - Device Reset */
+    BCMOLT_GROUP_ID_DEVICE_RUN_DDR_TEST                                                     = 81,   /**< Device - Run DDR Test */
+    BCMOLT_GROUP_ID_DEVICE_SW_UPGRADE_ACTIVATE                                              = 82,   /**< Device - SW upgrade activate */
+    BCMOLT_GROUP_ID_EPON_DENIED_LINK_KEY                                                    = 83,   /**< EPON Denied Link - key */
+    BCMOLT_GROUP_ID_EPON_DENIED_LINK_CFG                                                    = 84,   /**< EPON Denied Link - cfg */
+    BCMOLT_GROUP_ID_EPON_DENIED_LINK_LASER_ON_OFF_VIOLATION                                 = 85,   /**< EPON Denied Link - Laser On/Off Violation */
+    BCMOLT_GROUP_ID_EPON_DENIED_LINK_LLID_POOL_EMPTY_VIOLATION                              = 86,   /**< EPON Denied Link - LLID Pool Empty Violation */
+    BCMOLT_GROUP_ID_EPON_DENIED_LINK_MAX_LINK_VIOLATION                                     = 87,   /**< EPON Denied Link - Max Link Violation */
+    BCMOLT_GROUP_ID_EPON_DENIED_LINK_OVERHEAD_PROFILE_VIOLATION                             = 88,   /**< EPON Denied Link - Overhead Profile Violation */
+    BCMOLT_GROUP_ID_EPON_DENIED_LINK_RANGE_VIOLATION                                        = 89,   /**< EPON Denied Link - Range Violation */
+    BCMOLT_GROUP_ID_EPON_DENIED_LINK_ROGUE_VIOLATION                                        = 90,   /**< EPON Denied Link - Rogue ONU Detected */
+    BCMOLT_GROUP_ID_EPON_DENIED_LINK_SYSTEM_RESOURCE_VIOLATION                              = 91,   /**< EPON Denied Link - System Resource Violation */
+    BCMOLT_GROUP_ID_EPON_DENIED_LINK_TDM_CHANNELS_EXHAUSTED                                 = 92,   /**< EPON Denied Link - TDM Channels Exhausted */
+    BCMOLT_GROUP_ID_EPON_DENIED_LINK_UNKNOWN_LINK_VIOLATION                                 = 93,   /**< EPON Denied Link - Unknown Link Violation */
+    BCMOLT_GROUP_ID_EPON_DENIED_LINK_UPSTREAM_BANDWIDTH_VIOLATION                           = 94,   /**< EPON Denied Link - Upstream Bandwidth Violation */
+    BCMOLT_GROUP_ID_EPON_DENIED_LINK_AUTO_CFG                                               = 95,   /**< EPON Denied Link - Indication Configuration */
+    BCMOLT_GROUP_ID_EPON_LINK_KEY                                                           = 96,   /**< EPON link - key */
+    BCMOLT_GROUP_ID_EPON_LINK_CFG                                                           = 97,   /**< EPON link - cfg */
+    BCMOLT_GROUP_ID_EPON_LINK_STAT                                                          = 98,   /**< EPON link - stat */
+    BCMOLT_GROUP_ID_EPON_LINK_STAT_CFG_RX_DATA_BYTES                                        = 99,   /**< EPON link - Statistic Configuration */
+    BCMOLT_GROUP_ID_EPON_LINK_STAT_CFG_RX_DATA_FRAMES                                       = 100,  /**< EPON link - Statistic Configuration */
+    BCMOLT_GROUP_ID_EPON_LINK_STAT_CFG_RX_FRAMES_64                                         = 101,  /**< EPON link - Statistic Configuration */
+    BCMOLT_GROUP_ID_EPON_LINK_STAT_CFG_RX_FRAMES_65_127                                     = 102,  /**< EPON link - Statistic Configuration */
+    BCMOLT_GROUP_ID_EPON_LINK_STAT_CFG_RX_FRAMES_128_255                                    = 103,  /**< EPON link - Statistic Configuration */
+    BCMOLT_GROUP_ID_EPON_LINK_STAT_CFG_RX_FRAMES_256_511                                    = 104,  /**< EPON link - Statistic Configuration */
+    BCMOLT_GROUP_ID_EPON_LINK_STAT_CFG_RX_FRAMES_512_1023                                   = 105,  /**< EPON link - Statistic Configuration */
+    BCMOLT_GROUP_ID_EPON_LINK_STAT_CFG_RX_FRAMES_1024_1518                                  = 106,  /**< EPON link - Statistic Configuration */
+    BCMOLT_GROUP_ID_EPON_LINK_STAT_CFG_RX_FRAMES_1519_2047                                  = 107,  /**< EPON link - Statistic Configuration */
+    BCMOLT_GROUP_ID_EPON_LINK_STAT_CFG_RX_FRAMES_2048_4095                                  = 108,  /**< EPON link - Statistic Configuration */
+    BCMOLT_GROUP_ID_EPON_LINK_STAT_CFG_RX_FRAMES_4096_9216                                  = 109,  /**< EPON link - Statistic Configuration */
+    BCMOLT_GROUP_ID_EPON_LINK_STAT_CFG_RX_FRAMES_9217_16383                                 = 110,  /**< EPON link - Statistic Configuration */
+    BCMOLT_GROUP_ID_EPON_LINK_STAT_CFG_RX_OAM_BYTES                                         = 111,  /**< EPON link - Statistic Configuration */
+    BCMOLT_GROUP_ID_EPON_LINK_STAT_CFG_RX_OAM_FRAMES                                        = 112,  /**< EPON link - Statistic Configuration */
+    BCMOLT_GROUP_ID_EPON_LINK_STAT_CFG_RX_MPCP_FRAMES                                       = 113,  /**< EPON link - Statistic Configuration */
+    BCMOLT_GROUP_ID_EPON_LINK_STAT_CFG_RX_BROADCAST_FRAMES                                  = 114,  /**< EPON link - Statistic Configuration */
+    BCMOLT_GROUP_ID_EPON_LINK_STAT_CFG_RX_UNICAST_FRAMES                                    = 115,  /**< EPON link - Statistic Configuration */
+    BCMOLT_GROUP_ID_EPON_LINK_STAT_CFG_RX_MULTICAST_FRAMES                                  = 116,  /**< EPON link - Statistic Configuration */
+    BCMOLT_GROUP_ID_EPON_LINK_STAT_CFG_RX_REPORT_FRAMES                                     = 117,  /**< EPON link - Statistic Configuration */
+    BCMOLT_GROUP_ID_EPON_LINK_STAT_CFG_RX_FCS_ERROR                                         = 118,  /**< EPON link - Statistic Configuration */
+    BCMOLT_GROUP_ID_EPON_LINK_STAT_CFG_RX_OVERSIZE_ERROR                                    = 119,  /**< EPON link - Statistic Configuration */
+    BCMOLT_GROUP_ID_EPON_LINK_STAT_CFG_RX_RUNT_ERROR                                        = 120,  /**< EPON link - Statistic Configuration */
+    BCMOLT_GROUP_ID_EPON_LINK_STAT_CFG_RX_LINE_CODE_ERROR                                   = 121,  /**< EPON link - Statistic Configuration */
+    BCMOLT_GROUP_ID_EPON_LINK_STAT_CFG_RX_LINE_CODE_ERROR_MAX                               = 122,  /**< EPON link - Statistic Configuration */
+    BCMOLT_GROUP_ID_EPON_LINK_STAT_CFG_TX_DATA_BYTES                                        = 123,  /**< EPON link - Statistic Configuration */
+    BCMOLT_GROUP_ID_EPON_LINK_STAT_CFG_TX_DATA_FRAMES                                       = 124,  /**< EPON link - Statistic Configuration */
+    BCMOLT_GROUP_ID_EPON_LINK_STAT_CFG_TX_FRAMES_64                                         = 125,  /**< EPON link - Statistic Configuration */
+    BCMOLT_GROUP_ID_EPON_LINK_STAT_CFG_TX_FRAMES_65_127                                     = 126,  /**< EPON link - Statistic Configuration */
+    BCMOLT_GROUP_ID_EPON_LINK_STAT_CFG_TX_FRAMES_128_255                                    = 127,  /**< EPON link - Statistic Configuration */
+    BCMOLT_GROUP_ID_EPON_LINK_STAT_CFG_TX_FRAMES_256_511                                    = 128,  /**< EPON link - Statistic Configuration */
+    BCMOLT_GROUP_ID_EPON_LINK_STAT_CFG_TX_FRAMES_512_1023                                   = 129,  /**< EPON link - Statistic Configuration */
+    BCMOLT_GROUP_ID_EPON_LINK_STAT_CFG_TX_FRAMES_1024_1518                                  = 130,  /**< EPON link - Statistic Configuration */
+    BCMOLT_GROUP_ID_EPON_LINK_STAT_CFG_TX_FRAMES_1519_2047                                  = 131,  /**< EPON link - Statistic Configuration */
+    BCMOLT_GROUP_ID_EPON_LINK_STAT_CFG_TX_FRAMES_2048_4095                                  = 132,  /**< EPON link - Statistic Configuration */
+    BCMOLT_GROUP_ID_EPON_LINK_STAT_CFG_TX_FRAMES_4096_9216                                  = 133,  /**< EPON link - Statistic Configuration */
+    BCMOLT_GROUP_ID_EPON_LINK_STAT_CFG_TX_FRAMES_9217_16383                                 = 134,  /**< EPON link - Statistic Configuration */
+    BCMOLT_GROUP_ID_EPON_LINK_STAT_CFG_TX_OAM_BYTES                                         = 135,  /**< EPON link - Statistic Configuration */
+    BCMOLT_GROUP_ID_EPON_LINK_STAT_CFG_TX_OAM_FRAMES                                        = 136,  /**< EPON link - Statistic Configuration */
+    BCMOLT_GROUP_ID_EPON_LINK_STAT_CFG_TX_MPCP_FRAMES                                       = 137,  /**< EPON link - Statistic Configuration */
+    BCMOLT_GROUP_ID_EPON_LINK_STAT_CFG_TX_BROADCAST_FRAMES                                  = 138,  /**< EPON link - Statistic Configuration */
+    BCMOLT_GROUP_ID_EPON_LINK_STAT_CFG_TX_UNICAST_FRAMES                                    = 139,  /**< EPON link - Statistic Configuration */
+    BCMOLT_GROUP_ID_EPON_LINK_STAT_CFG_TX_MULTICAST_FRAMES                                  = 140,  /**< EPON link - Statistic Configuration */
+    BCMOLT_GROUP_ID_EPON_LINK_STAT_CFG_TX_GATES                                             = 141,  /**< EPON link - Statistic Configuration */
+    BCMOLT_GROUP_ID_EPON_LINK_DUPLICATE_MPCP_REGISTRATION_REQUEST                           = 142,  /**< EPON link - Duplicate MPCP Registration Request */
+    BCMOLT_GROUP_ID_EPON_LINK_ENCRYPTION_ENABLED                                            = 143,  /**< EPON link - Encryption Enabled */
+    BCMOLT_GROUP_ID_EPON_LINK_KEY_EXCHANGE_FAILURE                                          = 144,  /**< EPON link - Key Exchange Failure */
+    BCMOLT_GROUP_ID_EPON_LINK_KEY_EXCHANGE_STARTED                                          = 145,  /**< EPON link - key_exchange_started */
+    BCMOLT_GROUP_ID_EPON_LINK_KEY_EXCHANGE_STOPPED                                          = 146,  /**< EPON link - key_exchange_stopped */
+    BCMOLT_GROUP_ID_EPON_LINK_LINK_DELETED                                                  = 147,  /**< EPON link - Link Deleted */
+    BCMOLT_GROUP_ID_EPON_LINK_LINK_SPEED_MISMATCH                                           = 148,  /**< EPON link - Link attempted to register at a different speed */
+    BCMOLT_GROUP_ID_EPON_LINK_MPCP_DEREGISTERED                                             = 149,  /**< EPON link - MPCP Deregistered */
+    BCMOLT_GROUP_ID_EPON_LINK_MPCP_DISCOVERED                                               = 150,  /**< EPON link - MPCP Discovered */
+    BCMOLT_GROUP_ID_EPON_LINK_MPCP_REG_ACK_TIMEOUT                                          = 151,  /**< EPON link - MPCP Reg Ack Timeout */
+    BCMOLT_GROUP_ID_EPON_LINK_MPCP_REPORT_TIMEOUT                                           = 152,  /**< EPON link - MPCP Report Timeout */
+    BCMOLT_GROUP_ID_EPON_LINK_OAM_KEEPALIVE_TIMEOUT                                         = 153,  /**< EPON link - OAM Keepalive Timeout */
+    BCMOLT_GROUP_ID_EPON_LINK_OAM_KEEPALIVE_TIMER_STARTED                                   = 154,  /**< EPON link - OAM keepalive timer started */
+    BCMOLT_GROUP_ID_EPON_LINK_OAM_KEEPALIVE_TIMER_STOPPED                                   = 155,  /**< EPON link - OAM keepalive timer stopped */
+    BCMOLT_GROUP_ID_EPON_LINK_PREPROVISIONED_LINK_CREATED                                   = 156,  /**< EPON link - Preprovisioned Link Created */
+    BCMOLT_GROUP_ID_EPON_LINK_PROTECTION_SWITCH_OCCURRED                                    = 157,  /**< EPON link - Protection Switch Occurred */
+    BCMOLT_GROUP_ID_EPON_LINK_RANGE_VALUE_CHANGED                                           = 158,  /**< EPON link - Range Value Changed */
+    BCMOLT_GROUP_ID_EPON_LINK_RERANGE_FAILURE                                               = 159,  /**< EPON link - Re-range failure */
+    BCMOLT_GROUP_ID_EPON_LINK_STAT_ALARM_CLEARED                                            = 160,  /**< EPON link - Stat Alarm Cleared */
+    BCMOLT_GROUP_ID_EPON_LINK_STAT_ALARM_RAISED                                             = 161,  /**< EPON link - Stat Alarm Raised */
+    BCMOLT_GROUP_ID_EPON_LINK_STATIC_REGISTRATION_DONE                                      = 162,  /**< EPON link - Static registration done */
+    BCMOLT_GROUP_ID_EPON_LINK_AUTO_CFG                                                      = 163,  /**< EPON link - Indication Configuration */
+    BCMOLT_GROUP_ID_EPON_LINK_DELETE_LINK                                                   = 164,  /**< EPON link - Delete Link */
+    BCMOLT_GROUP_ID_EPON_LINK_FORCE_REDISCOVERY                                             = 165,  /**< EPON link - Force Link Rediscovery */
+    BCMOLT_GROUP_ID_EPON_LINK_KEY_EXCHANGE_START                                            = 166,  /**< EPON link - Key exchange start */
+    BCMOLT_GROUP_ID_EPON_LINK_KEY_EXCHANGE_STOP                                             = 167,  /**< EPON link - Key exchange stop */
+    BCMOLT_GROUP_ID_EPON_LINK_OAM_KEEPALIVE_TIMER_START                                     = 168,  /**< EPON link - OAM Keepalive Timer Start */
+    BCMOLT_GROUP_ID_EPON_LINK_OAM_KEEPALIVE_TIMER_STOP                                      = 169,  /**< EPON link - OAM Keepalive Timer Stop */
+    BCMOLT_GROUP_ID_EPON_LINK_STATIC_REGISTRATION                                           = 170,  /**< EPON link - static_registration */
+    BCMOLT_GROUP_ID_EPON_LINK_INJECT_FRAME                                                  = 171,  /**< EPON link - Inject Frame */
+    BCMOLT_GROUP_ID_EPON_LINK_FRAME_CAPTURED                                                = 172,  /**< EPON link - Frame Captured */
+    BCMOLT_GROUP_ID_EPON_NI_KEY                                                             = 173,  /**< EPON NI (EPON Network Interface) - key */
+    BCMOLT_GROUP_ID_EPON_NI_CFG                                                             = 174,  /**< EPON NI (EPON Network Interface) - cfg */
+    BCMOLT_GROUP_ID_EPON_NI_AUTO_ROGUE_SCAN_10G_FAILURE                                     = 175,  /**< EPON NI (EPON Network Interface) - 10G Epon Autonomous Rogue Scan failure detected */
+    BCMOLT_GROUP_ID_EPON_NI_AUTO_ROGUE_SCAN_1G_FAILURE                                      = 176,  /**< EPON NI (EPON Network Interface) - 1G Epon Autonomous Rogue Scan failure detected */
+    BCMOLT_GROUP_ID_EPON_NI_LLID_QUARANTINED                                                = 177,  /**< EPON NI (EPON Network Interface) - LLID Quarantined */
+    BCMOLT_GROUP_ID_EPON_NI_MPCP_TIMESTAMP_CHANGED                                          = 178,  /**< EPON NI (EPON Network Interface) - MPCP Timestamp Changed */
+    BCMOLT_GROUP_ID_EPON_NI_NO_REPORTS                                                      = 179,  /**< EPON NI (EPON Network Interface) - No Reports */
+    BCMOLT_GROUP_ID_EPON_NI_ONU_UPGRADE_COMPLETE                                            = 180,  /**< EPON NI (EPON Network Interface) - ONU Upgrade Complete */
+    BCMOLT_GROUP_ID_EPON_NI_RERANGE_FAILURE                                                 = 181,  /**< EPON NI (EPON Network Interface) - Re-range failure */
+    BCMOLT_GROUP_ID_EPON_NI_ROGUE_SCAN_COMPLETE                                             = 182,  /**< EPON NI (EPON Network Interface) - Rogue Scan is Complete */
+    BCMOLT_GROUP_ID_EPON_NI_RSSI_MEASUREMENT_COMPLETED                                      = 183,  /**< EPON NI (EPON Network Interface) - RSSI Measurement Completed */
+    BCMOLT_GROUP_ID_EPON_NI_STATE_CHANGE_COMPLETED                                          = 184,  /**< EPON NI (EPON Network Interface) - State Change Completed */
+    BCMOLT_GROUP_ID_EPON_NI_AUTO_CFG                                                        = 185,  /**< EPON NI (EPON Network Interface) - Indication Configuration */
+    BCMOLT_GROUP_ID_EPON_NI_ADD_LINK                                                        = 186,  /**< EPON NI (EPON Network Interface) - Add link */
+    BCMOLT_GROUP_ID_EPON_NI_ADD_MULTICAST_LINK                                              = 187,  /**< EPON NI (EPON Network Interface) - Add Mutlticastlink */
+    BCMOLT_GROUP_ID_EPON_NI_ADD_PROTECTED_STANDBY_LINK                                      = 188,  /**< EPON NI (EPON Network Interface) - Add Protected Standby Link */
+    BCMOLT_GROUP_ID_EPON_NI_ISSUE_RSSI_GRANT                                                = 189,  /**< EPON NI (EPON Network Interface) - Issue an Rx Power Measurement Request */
+    BCMOLT_GROUP_ID_EPON_NI_PROTECTION_SWITCHING_APPLY_RERANGE_DELTA                        = 190,  /**< EPON NI (EPON Network Interface) - Protection switching apply re-range delta */
+    BCMOLT_GROUP_ID_EPON_NI_ROGUE_LLID_SCAN                                                 = 191,  /**< EPON NI (EPON Network Interface) - Run Rogue LLID Scan */
+    BCMOLT_GROUP_ID_EPON_NI_SET_EPON_NI_EN_STATE                                            = 192,  /**< EPON NI (EPON Network Interface) - Set EPON NI Enable State */
+    BCMOLT_GROUP_ID_EPON_NI_START_ONU_UPGRADE                                               = 193,  /**< EPON NI (EPON Network Interface) - Start ONU Firmware Upgrade */
+    BCMOLT_GROUP_ID_EPON_ONU_10G_US_KEY                                                     = 194,  /**< EPON ONU 10G US - key */
+    BCMOLT_GROUP_ID_EPON_ONU_10G_US_CFG                                                     = 195,  /**< EPON ONU 10G US - cfg */
+    BCMOLT_GROUP_ID_EPON_ONU_10G_US_STAT                                                    = 196,  /**< EPON ONU 10G US - stat */
+    BCMOLT_GROUP_ID_EPON_ONU_10G_US_STAT_CFG_FEC_CODE_WORDS_TOTAL                           = 197,  /**< EPON ONU 10G US - Statistic Configuration */
+    BCMOLT_GROUP_ID_EPON_ONU_10G_US_STAT_CFG_FEC_CODE_WORDS_DECODE_FAILS                    = 198,  /**< EPON ONU 10G US - Statistic Configuration */
+    BCMOLT_GROUP_ID_EPON_ONU_10G_US_STAT_CFG_FEC_ZEROES_CORRECTED                           = 199,  /**< EPON ONU 10G US - Statistic Configuration */
+    BCMOLT_GROUP_ID_EPON_ONU_10G_US_STAT_CFG_FEC_ONES_CORRECTED                             = 200,  /**< EPON ONU 10G US - Statistic Configuration */
+    BCMOLT_GROUP_ID_EPON_ONU_10G_US_STAT_ALARM_CLEARED                                      = 201,  /**< EPON ONU 10G US - Stat Alarm Cleared */
+    BCMOLT_GROUP_ID_EPON_ONU_10G_US_STAT_ALARM_RAISED                                       = 202,  /**< EPON ONU 10G US - Stat Alarm Raised */
+    BCMOLT_GROUP_ID_EPON_ONU_10G_US_AUTO_CFG                                                = 203,  /**< EPON ONU 10G US - Indication Configuration */
+    BCMOLT_GROUP_ID_EPON_ONU_1G_US_KEY                                                      = 204,  /**< EPON ONU 1G US - key */
+    BCMOLT_GROUP_ID_EPON_ONU_1G_US_CFG                                                      = 205,  /**< EPON ONU 1G US - cfg */
+    BCMOLT_GROUP_ID_EPON_ONU_1G_US_STAT                                                     = 206,  /**< EPON ONU 1G US - stat */
+    BCMOLT_GROUP_ID_EPON_ONU_1G_US_STAT_CFG_GOOD_FRAMES                                     = 207,  /**< EPON ONU 1G US - Statistic Configuration */
+    BCMOLT_GROUP_ID_EPON_ONU_1G_US_STAT_CFG_GOOD_BYTES                                      = 208,  /**< EPON ONU 1G US - Statistic Configuration */
+    BCMOLT_GROUP_ID_EPON_ONU_1G_US_STAT_CFG_OVERSZ_FRAMES                                   = 209,  /**< EPON ONU 1G US - Statistic Configuration */
+    BCMOLT_GROUP_ID_EPON_ONU_1G_US_STAT_CFG_NON_FEC_GOOD_FRAMES                             = 210,  /**< EPON ONU 1G US - Statistic Configuration */
+    BCMOLT_GROUP_ID_EPON_ONU_1G_US_STAT_CFG_NON_FEC_GOOD_BYTES                              = 211,  /**< EPON ONU 1G US - Statistic Configuration */
+    BCMOLT_GROUP_ID_EPON_ONU_1G_US_STAT_CFG_FEC_GOOD_FRAMES                                 = 212,  /**< EPON ONU 1G US - Statistic Configuration */
+    BCMOLT_GROUP_ID_EPON_ONU_1G_US_STAT_CFG_FEC_GOOD_BYTES                                  = 213,  /**< EPON ONU 1G US - Statistic Configuration */
+    BCMOLT_GROUP_ID_EPON_ONU_1G_US_STAT_CFG_FEC_FRAMES_EXC_ERRS                             = 214,  /**< EPON ONU 1G US - Statistic Configuration */
+    BCMOLT_GROUP_ID_EPON_ONU_1G_US_STAT_CFG_FEC_BLKS_NO_ERRS                                = 215,  /**< EPON ONU 1G US - Statistic Configuration */
+    BCMOLT_GROUP_ID_EPON_ONU_1G_US_STAT_CFG_FEC_BLKS_CORR_ERRS                              = 216,  /**< EPON ONU 1G US - Statistic Configuration */
+    BCMOLT_GROUP_ID_EPON_ONU_1G_US_STAT_CFG_FEC_BLKS_UNCORR_ERRS                            = 217,  /**< EPON ONU 1G US - Statistic Configuration */
+    BCMOLT_GROUP_ID_EPON_ONU_1G_US_STAT_CFG_FEC_CORR_BYTES                                  = 218,  /**< EPON ONU 1G US - Statistic Configuration */
+    BCMOLT_GROUP_ID_EPON_ONU_1G_US_STAT_CFG_FEC_CORR_ZEROES                                 = 219,  /**< EPON ONU 1G US - Statistic Configuration */
+    BCMOLT_GROUP_ID_EPON_ONU_1G_US_STAT_CFG_FEC_CORR_ONES                                   = 220,  /**< EPON ONU 1G US - Statistic Configuration */
+    BCMOLT_GROUP_ID_EPON_ONU_1G_US_STAT_CFG_UNDERSZ_FRAMES                                  = 221,  /**< EPON ONU 1G US - Statistic Configuration */
+    BCMOLT_GROUP_ID_EPON_ONU_1G_US_STAT_CFG_ERRORSZ_FRAMES                                  = 222,  /**< EPON ONU 1G US - Statistic Configuration */
+    BCMOLT_GROUP_ID_EPON_ONU_1G_US_STAT_ALARM_CLEARED                                       = 223,  /**< EPON ONU 1G US - Stat Alarm Cleared */
+    BCMOLT_GROUP_ID_EPON_ONU_1G_US_STAT_ALARM_RAISED                                        = 224,  /**< EPON ONU 1G US - Stat Alarm Raised */
+    BCMOLT_GROUP_ID_EPON_ONU_1G_US_AUTO_CFG                                                 = 225,  /**< EPON ONU 1G US - Indication Configuration */
+    BCMOLT_GROUP_ID_EPON_PATH_10G_DS_KEY                                                    = 226,  /**< EPON path 10G downstream - key */
+    BCMOLT_GROUP_ID_EPON_PATH_10G_DS_CFG                                                    = 227,  /**< EPON path 10G downstream - cfg */
+    BCMOLT_GROUP_ID_EPON_PATH_10G_DS_STAT                                                   = 228,  /**< EPON path 10G downstream - stat */
+    BCMOLT_GROUP_ID_EPON_PATH_10G_DS_STAT_CFG_BYTES                                         = 229,  /**< EPON path 10G downstream - Statistic Configuration */
+    BCMOLT_GROUP_ID_EPON_PATH_10G_DS_STAT_CFG_FRAMES                                        = 230,  /**< EPON path 10G downstream - Statistic Configuration */
+    BCMOLT_GROUP_ID_EPON_PATH_10G_DS_STAT_CFG_FRAMES_64                                     = 231,  /**< EPON path 10G downstream - Statistic Configuration */
+    BCMOLT_GROUP_ID_EPON_PATH_10G_DS_STAT_CFG_FRAMES_65_127                                 = 232,  /**< EPON path 10G downstream - Statistic Configuration */
+    BCMOLT_GROUP_ID_EPON_PATH_10G_DS_STAT_CFG_FRAMES_128_255                                = 233,  /**< EPON path 10G downstream - Statistic Configuration */
+    BCMOLT_GROUP_ID_EPON_PATH_10G_DS_STAT_CFG_FRAMES_256_511                                = 234,  /**< EPON path 10G downstream - Statistic Configuration */
+    BCMOLT_GROUP_ID_EPON_PATH_10G_DS_STAT_CFG_FRAMES_512_1023                               = 235,  /**< EPON path 10G downstream - Statistic Configuration */
+    BCMOLT_GROUP_ID_EPON_PATH_10G_DS_STAT_CFG_FRAMES_1024_1518                              = 236,  /**< EPON path 10G downstream - Statistic Configuration */
+    BCMOLT_GROUP_ID_EPON_PATH_10G_DS_STAT_CFG_FRAMES_1519_2047                              = 237,  /**< EPON path 10G downstream - Statistic Configuration */
+    BCMOLT_GROUP_ID_EPON_PATH_10G_DS_STAT_CFG_FRAMES_2048_4095                              = 238,  /**< EPON path 10G downstream - Statistic Configuration */
+    BCMOLT_GROUP_ID_EPON_PATH_10G_DS_STAT_CFG_FRAMES_4096_9216                              = 239,  /**< EPON path 10G downstream - Statistic Configuration */
+    BCMOLT_GROUP_ID_EPON_PATH_10G_DS_STAT_CFG_FRAMES_9217_16383                             = 240,  /**< EPON path 10G downstream - Statistic Configuration */
+    BCMOLT_GROUP_ID_EPON_PATH_10G_DS_STAT_CFG_BROADCAST_FRAMES                              = 241,  /**< EPON path 10G downstream - Statistic Configuration */
+    BCMOLT_GROUP_ID_EPON_PATH_10G_DS_STAT_CFG_DATA_BYTES                                    = 242,  /**< EPON path 10G downstream - Statistic Configuration */
+    BCMOLT_GROUP_ID_EPON_PATH_10G_DS_STAT_CFG_MULTICAST_FRAMES                              = 243,  /**< EPON path 10G downstream - Statistic Configuration */
+    BCMOLT_GROUP_ID_EPON_PATH_10G_DS_STAT_CFG_UNICAST_FRAMES                                = 244,  /**< EPON path 10G downstream - Statistic Configuration */
+    BCMOLT_GROUP_ID_EPON_PATH_10G_DS_STAT_CFG_OAM_BYTES                                     = 245,  /**< EPON path 10G downstream - Statistic Configuration */
+    BCMOLT_GROUP_ID_EPON_PATH_10G_DS_STAT_CFG_OAM_FRAMES                                    = 246,  /**< EPON path 10G downstream - Statistic Configuration */
+    BCMOLT_GROUP_ID_EPON_PATH_10G_DS_STAT_CFG_GATE_FRAMES                                   = 247,  /**< EPON path 10G downstream - Statistic Configuration */
+    BCMOLT_GROUP_ID_EPON_PATH_10G_DS_STAT_CFG_MPCP_FRAMES                                   = 248,  /**< EPON path 10G downstream - Statistic Configuration */
+    BCMOLT_GROUP_ID_EPON_PATH_10G_DS_STAT_CFG_ABORT_FRAMES                                  = 249,  /**< EPON path 10G downstream - Statistic Configuration */
+    BCMOLT_GROUP_ID_EPON_PATH_10G_DS_STAT_ALARM_CLEARED                                     = 250,  /**< EPON path 10G downstream - Stat Alarm Cleared */
+    BCMOLT_GROUP_ID_EPON_PATH_10G_DS_STAT_ALARM_RAISED                                      = 251,  /**< EPON path 10G downstream - Stat Alarm Raised */
+    BCMOLT_GROUP_ID_EPON_PATH_10G_DS_AUTO_CFG                                               = 252,  /**< EPON path 10G downstream - Indication Configuration */
+    BCMOLT_GROUP_ID_EPON_PATH_10G_US_KEY                                                    = 253,  /**< EPON path 10G upstream - key */
+    BCMOLT_GROUP_ID_EPON_PATH_10G_US_CFG                                                    = 254,  /**< EPON path 10G upstream - cfg */
+    BCMOLT_GROUP_ID_EPON_PATH_10G_US_STAT                                                   = 255,  /**< EPON path 10G upstream - stat */
+    BCMOLT_GROUP_ID_EPON_PATH_10G_US_STAT_CFG_BYTES                                         = 256,  /**< EPON path 10G upstream - Statistic Configuration */
+    BCMOLT_GROUP_ID_EPON_PATH_10G_US_STAT_CFG_FRAMES                                        = 257,  /**< EPON path 10G upstream - Statistic Configuration */
+    BCMOLT_GROUP_ID_EPON_PATH_10G_US_STAT_CFG_FRAMES_64                                     = 258,  /**< EPON path 10G upstream - Statistic Configuration */
+    BCMOLT_GROUP_ID_EPON_PATH_10G_US_STAT_CFG_FRAMES_65_127                                 = 259,  /**< EPON path 10G upstream - Statistic Configuration */
+    BCMOLT_GROUP_ID_EPON_PATH_10G_US_STAT_CFG_FRAMES_128_255                                = 260,  /**< EPON path 10G upstream - Statistic Configuration */
+    BCMOLT_GROUP_ID_EPON_PATH_10G_US_STAT_CFG_FRAMES_256_511                                = 261,  /**< EPON path 10G upstream - Statistic Configuration */
+    BCMOLT_GROUP_ID_EPON_PATH_10G_US_STAT_CFG_FRAMES_512_1023                               = 262,  /**< EPON path 10G upstream - Statistic Configuration */
+    BCMOLT_GROUP_ID_EPON_PATH_10G_US_STAT_CFG_FRAMES_1024_1518                              = 263,  /**< EPON path 10G upstream - Statistic Configuration */
+    BCMOLT_GROUP_ID_EPON_PATH_10G_US_STAT_CFG_FRAMES_1519_2047                              = 264,  /**< EPON path 10G upstream - Statistic Configuration */
+    BCMOLT_GROUP_ID_EPON_PATH_10G_US_STAT_CFG_FRAMES_2048_4095                              = 265,  /**< EPON path 10G upstream - Statistic Configuration */
+    BCMOLT_GROUP_ID_EPON_PATH_10G_US_STAT_CFG_FRAMES_4096_9216                              = 266,  /**< EPON path 10G upstream - Statistic Configuration */
+    BCMOLT_GROUP_ID_EPON_PATH_10G_US_STAT_CFG_FRAMES_9217_16383                             = 267,  /**< EPON path 10G upstream - Statistic Configuration */
+    BCMOLT_GROUP_ID_EPON_PATH_10G_US_STAT_CFG_BROADCAST_FRAMES                              = 268,  /**< EPON path 10G upstream - Statistic Configuration */
+    BCMOLT_GROUP_ID_EPON_PATH_10G_US_STAT_CFG_DATA_BYTES                                    = 269,  /**< EPON path 10G upstream - Statistic Configuration */
+    BCMOLT_GROUP_ID_EPON_PATH_10G_US_STAT_CFG_MULTICAST_FRAMES                              = 270,  /**< EPON path 10G upstream - Statistic Configuration */
+    BCMOLT_GROUP_ID_EPON_PATH_10G_US_STAT_CFG_UNICAST_FRAMES                                = 271,  /**< EPON path 10G upstream - Statistic Configuration */
+    BCMOLT_GROUP_ID_EPON_PATH_10G_US_STAT_CFG_MPCP_FRAMES                                   = 272,  /**< EPON path 10G upstream - Statistic Configuration */
+    BCMOLT_GROUP_ID_EPON_PATH_10G_US_STAT_CFG_OAM_BYTES                                     = 273,  /**< EPON path 10G upstream - Statistic Configuration */
+    BCMOLT_GROUP_ID_EPON_PATH_10G_US_STAT_CFG_OAM_FRAMES                                    = 274,  /**< EPON path 10G upstream - Statistic Configuration */
+    BCMOLT_GROUP_ID_EPON_PATH_10G_US_STAT_CFG_REPORT_FRAMES                                 = 275,  /**< EPON path 10G upstream - Statistic Configuration */
+    BCMOLT_GROUP_ID_EPON_PATH_10G_US_STAT_CFG_ABORT_FRAMES                                  = 276,  /**< EPON path 10G upstream - Statistic Configuration */
+    BCMOLT_GROUP_ID_EPON_PATH_10G_US_STAT_CFG_FCS_ERROR                                     = 277,  /**< EPON path 10G upstream - Statistic Configuration */
+    BCMOLT_GROUP_ID_EPON_PATH_10G_US_STAT_CFG_CRC_8_ERROR                                   = 278,  /**< EPON path 10G upstream - Statistic Configuration */
+    BCMOLT_GROUP_ID_EPON_PATH_10G_US_STAT_CFG_OUT_OF_SLOT                                   = 279,  /**< EPON path 10G upstream - Statistic Configuration */
+    BCMOLT_GROUP_ID_EPON_PATH_10G_US_STAT_CFG_OVERSIZE_ERROR                                = 280,  /**< EPON path 10G upstream - Statistic Configuration */
+    BCMOLT_GROUP_ID_EPON_PATH_10G_US_STAT_CFG_RUNT_ERROR                                    = 281,  /**< EPON path 10G upstream - Statistic Configuration */
+    BCMOLT_GROUP_ID_EPON_PATH_10G_US_STAT_ALARM_CLEARED                                     = 282,  /**< EPON path 10G upstream - Stat Alarm Cleared */
+    BCMOLT_GROUP_ID_EPON_PATH_10G_US_STAT_ALARM_RAISED                                      = 283,  /**< EPON path 10G upstream - Stat Alarm Raised */
+    BCMOLT_GROUP_ID_EPON_PATH_10G_US_AUTO_CFG                                               = 284,  /**< EPON path 10G upstream - Indication Configuration */
+    BCMOLT_GROUP_ID_EPON_PATH_1G_DS_KEY                                                     = 285,  /**< EPON path 1G downstream - key */
+    BCMOLT_GROUP_ID_EPON_PATH_1G_DS_CFG                                                     = 286,  /**< EPON path 1G downstream - cfg */
+    BCMOLT_GROUP_ID_EPON_PATH_1G_DS_STAT                                                    = 287,  /**< EPON path 1G downstream - stat */
+    BCMOLT_GROUP_ID_EPON_PATH_1G_DS_STAT_CFG_BYTES                                          = 288,  /**< EPON path 1G downstream - Statistic Configuration */
+    BCMOLT_GROUP_ID_EPON_PATH_1G_DS_STAT_CFG_FRAMES                                         = 289,  /**< EPON path 1G downstream - Statistic Configuration */
+    BCMOLT_GROUP_ID_EPON_PATH_1G_DS_STAT_CFG_FRAMES_64                                      = 290,  /**< EPON path 1G downstream - Statistic Configuration */
+    BCMOLT_GROUP_ID_EPON_PATH_1G_DS_STAT_CFG_FRAMES_65_127                                  = 291,  /**< EPON path 1G downstream - Statistic Configuration */
+    BCMOLT_GROUP_ID_EPON_PATH_1G_DS_STAT_CFG_FRAMES_128_255                                 = 292,  /**< EPON path 1G downstream - Statistic Configuration */
+    BCMOLT_GROUP_ID_EPON_PATH_1G_DS_STAT_CFG_FRAMES_256_511                                 = 293,  /**< EPON path 1G downstream - Statistic Configuration */
+    BCMOLT_GROUP_ID_EPON_PATH_1G_DS_STAT_CFG_FRAMES_512_1023                                = 294,  /**< EPON path 1G downstream - Statistic Configuration */
+    BCMOLT_GROUP_ID_EPON_PATH_1G_DS_STAT_CFG_FRAMES_1024_1518                               = 295,  /**< EPON path 1G downstream - Statistic Configuration */
+    BCMOLT_GROUP_ID_EPON_PATH_1G_DS_STAT_CFG_FRAMES_1519_2047                               = 296,  /**< EPON path 1G downstream - Statistic Configuration */
+    BCMOLT_GROUP_ID_EPON_PATH_1G_DS_STAT_CFG_FRAMES_2048_4095                               = 297,  /**< EPON path 1G downstream - Statistic Configuration */
+    BCMOLT_GROUP_ID_EPON_PATH_1G_DS_STAT_CFG_FRAMES_4096_9216                               = 298,  /**< EPON path 1G downstream - Statistic Configuration */
+    BCMOLT_GROUP_ID_EPON_PATH_1G_DS_STAT_CFG_FRAMES_9217_16383                              = 299,  /**< EPON path 1G downstream - Statistic Configuration */
+    BCMOLT_GROUP_ID_EPON_PATH_1G_DS_STAT_CFG_BROADCAST_FRAMES                               = 300,  /**< EPON path 1G downstream - Statistic Configuration */
+    BCMOLT_GROUP_ID_EPON_PATH_1G_DS_STAT_CFG_DATA_BYTES                                     = 301,  /**< EPON path 1G downstream - Statistic Configuration */
+    BCMOLT_GROUP_ID_EPON_PATH_1G_DS_STAT_CFG_MULTICAST_FRAMES                               = 302,  /**< EPON path 1G downstream - Statistic Configuration */
+    BCMOLT_GROUP_ID_EPON_PATH_1G_DS_STAT_CFG_UNICAST_FRAMES                                 = 303,  /**< EPON path 1G downstream - Statistic Configuration */
+    BCMOLT_GROUP_ID_EPON_PATH_1G_DS_STAT_CFG_OAM_BYTES                                      = 304,  /**< EPON path 1G downstream - Statistic Configuration */
+    BCMOLT_GROUP_ID_EPON_PATH_1G_DS_STAT_CFG_OAM_FRAMES                                     = 305,  /**< EPON path 1G downstream - Statistic Configuration */
+    BCMOLT_GROUP_ID_EPON_PATH_1G_DS_STAT_CFG_GATE_FRAMES                                    = 306,  /**< EPON path 1G downstream - Statistic Configuration */
+    BCMOLT_GROUP_ID_EPON_PATH_1G_DS_STAT_CFG_MPCP_FRAMES                                    = 307,  /**< EPON path 1G downstream - Statistic Configuration */
+    BCMOLT_GROUP_ID_EPON_PATH_1G_DS_STAT_CFG_ABORT_FRAMES                                   = 308,  /**< EPON path 1G downstream - Statistic Configuration */
+    BCMOLT_GROUP_ID_EPON_PATH_1G_DS_STAT_ALARM_CLEARED                                      = 309,  /**< EPON path 1G downstream - Stat Alarm Cleared */
+    BCMOLT_GROUP_ID_EPON_PATH_1G_DS_STAT_ALARM_RAISED                                       = 310,  /**< EPON path 1G downstream - Stat Alarm Raised */
+    BCMOLT_GROUP_ID_EPON_PATH_1G_DS_AUTO_CFG                                                = 311,  /**< EPON path 1G downstream - Indication Configuration */
+    BCMOLT_GROUP_ID_EPON_PATH_1G_US_KEY                                                     = 312,  /**< EPON path 1G upstream - key */
+    BCMOLT_GROUP_ID_EPON_PATH_1G_US_CFG                                                     = 313,  /**< EPON path 1G upstream - cfg */
+    BCMOLT_GROUP_ID_EPON_PATH_1G_US_STAT                                                    = 314,  /**< EPON path 1G upstream - stat */
+    BCMOLT_GROUP_ID_EPON_PATH_1G_US_STAT_CFG_BYTES                                          = 315,  /**< EPON path 1G upstream - Statistic Configuration */
+    BCMOLT_GROUP_ID_EPON_PATH_1G_US_STAT_CFG_FRAMES                                         = 316,  /**< EPON path 1G upstream - Statistic Configuration */
+    BCMOLT_GROUP_ID_EPON_PATH_1G_US_STAT_CFG_FRAMES_64                                      = 317,  /**< EPON path 1G upstream - Statistic Configuration */
+    BCMOLT_GROUP_ID_EPON_PATH_1G_US_STAT_CFG_FRAMES_65_127                                  = 318,  /**< EPON path 1G upstream - Statistic Configuration */
+    BCMOLT_GROUP_ID_EPON_PATH_1G_US_STAT_CFG_FRAMES_128_255                                 = 319,  /**< EPON path 1G upstream - Statistic Configuration */
+    BCMOLT_GROUP_ID_EPON_PATH_1G_US_STAT_CFG_FRAMES_256_511                                 = 320,  /**< EPON path 1G upstream - Statistic Configuration */
+    BCMOLT_GROUP_ID_EPON_PATH_1G_US_STAT_CFG_FRAMES_512_1023                                = 321,  /**< EPON path 1G upstream - Statistic Configuration */
+    BCMOLT_GROUP_ID_EPON_PATH_1G_US_STAT_CFG_FRAMES_1024_1518                               = 322,  /**< EPON path 1G upstream - Statistic Configuration */
+    BCMOLT_GROUP_ID_EPON_PATH_1G_US_STAT_CFG_FRAMES_1519_2047                               = 323,  /**< EPON path 1G upstream - Statistic Configuration */
+    BCMOLT_GROUP_ID_EPON_PATH_1G_US_STAT_CFG_FRAMES_2048_4095                               = 324,  /**< EPON path 1G upstream - Statistic Configuration */
+    BCMOLT_GROUP_ID_EPON_PATH_1G_US_STAT_CFG_FRAMES_4096_9216                               = 325,  /**< EPON path 1G upstream - Statistic Configuration */
+    BCMOLT_GROUP_ID_EPON_PATH_1G_US_STAT_CFG_FRAMES_9217_16383                              = 326,  /**< EPON path 1G upstream - Statistic Configuration */
+    BCMOLT_GROUP_ID_EPON_PATH_1G_US_STAT_CFG_BROADCAST_FRAMES                               = 327,  /**< EPON path 1G upstream - Statistic Configuration */
+    BCMOLT_GROUP_ID_EPON_PATH_1G_US_STAT_CFG_DATA_BYTES                                     = 328,  /**< EPON path 1G upstream - Statistic Configuration */
+    BCMOLT_GROUP_ID_EPON_PATH_1G_US_STAT_CFG_MULTICAST_FRAMES                               = 329,  /**< EPON path 1G upstream - Statistic Configuration */
+    BCMOLT_GROUP_ID_EPON_PATH_1G_US_STAT_CFG_UNICAST_FRAMES                                 = 330,  /**< EPON path 1G upstream - Statistic Configuration */
+    BCMOLT_GROUP_ID_EPON_PATH_1G_US_STAT_CFG_MPCP_FRAMES                                    = 331,  /**< EPON path 1G upstream - Statistic Configuration */
+    BCMOLT_GROUP_ID_EPON_PATH_1G_US_STAT_CFG_OAM_BYTES                                      = 332,  /**< EPON path 1G upstream - Statistic Configuration */
+    BCMOLT_GROUP_ID_EPON_PATH_1G_US_STAT_CFG_OAM_FRAMES                                     = 333,  /**< EPON path 1G upstream - Statistic Configuration */
+    BCMOLT_GROUP_ID_EPON_PATH_1G_US_STAT_CFG_REPORT_FRAMES                                  = 334,  /**< EPON path 1G upstream - Statistic Configuration */
+    BCMOLT_GROUP_ID_EPON_PATH_1G_US_STAT_CFG_ABORT_FRAMES                                   = 335,  /**< EPON path 1G upstream - Statistic Configuration */
+    BCMOLT_GROUP_ID_EPON_PATH_1G_US_STAT_CFG_FCS_ERROR                                      = 336,  /**< EPON path 1G upstream - Statistic Configuration */
+    BCMOLT_GROUP_ID_EPON_PATH_1G_US_STAT_CFG_CRC_8_ERROR                                    = 337,  /**< EPON path 1G upstream - Statistic Configuration */
+    BCMOLT_GROUP_ID_EPON_PATH_1G_US_STAT_CFG_OUT_OF_SLOT                                    = 338,  /**< EPON path 1G upstream - Statistic Configuration */
+    BCMOLT_GROUP_ID_EPON_PATH_1G_US_STAT_CFG_OVERSIZE_ERROR                                 = 339,  /**< EPON path 1G upstream - Statistic Configuration */
+    BCMOLT_GROUP_ID_EPON_PATH_1G_US_STAT_CFG_RUNT_ERROR                                     = 340,  /**< EPON path 1G upstream - Statistic Configuration */
+    BCMOLT_GROUP_ID_EPON_PATH_1G_US_STAT_ALARM_CLEARED                                      = 341,  /**< EPON path 1G upstream - Stat Alarm Cleared */
+    BCMOLT_GROUP_ID_EPON_PATH_1G_US_STAT_ALARM_RAISED                                       = 342,  /**< EPON path 1G upstream - Stat Alarm Raised */
+    BCMOLT_GROUP_ID_EPON_PATH_1G_US_AUTO_CFG                                                = 343,  /**< EPON path 1G upstream - Indication Configuration */
+    BCMOLT_GROUP_ID_EPON_RP_KEY                                                             = 344,  /**< EPON Reconciliation Path - key */
+    BCMOLT_GROUP_ID_EPON_RP_CFG                                                             = 345,  /**< EPON Reconciliation Path - cfg */
+    BCMOLT_GROUP_ID_GPIO_KEY                                                                = 346,  /**< GPIO - key */
+    BCMOLT_GROUP_ID_GPIO_CFG                                                                = 347,  /**< GPIO - cfg */
+    BCMOLT_GROUP_ID_GPON_ALLOC_KEY                                                          = 348,  /**< GPON Alloc - key */
+    BCMOLT_GROUP_ID_GPON_ALLOC_CFG                                                          = 349,  /**< GPON Alloc - cfg */
+    BCMOLT_GROUP_ID_GPON_ALLOC_STAT                                                         = 350,  /**< GPON Alloc - stat */
+    BCMOLT_GROUP_ID_GPON_ALLOC_STAT_CFG_RX_BYTES                                            = 351,  /**< GPON Alloc - Statistic Configuration */
+    BCMOLT_GROUP_ID_GPON_ALLOC_CONFIGURATION_COMPLETED                                      = 352,  /**< GPON Alloc - Configuration Completed */
+    BCMOLT_GROUP_ID_GPON_ALLOC_GET_ALLOC_STATS_COMPLETED                                    = 353,  /**< GPON Alloc - Get alloc ID statistics completed */
+    BCMOLT_GROUP_ID_GPON_ALLOC_STAT_ALARM_CLEARED                                           = 354,  /**< GPON Alloc - Stat Alarm Cleared */
+    BCMOLT_GROUP_ID_GPON_ALLOC_STAT_ALARM_RAISED                                            = 355,  /**< GPON Alloc - Stat Alarm Raised */
+    BCMOLT_GROUP_ID_GPON_ALLOC_AUTO_CFG                                                     = 356,  /**< GPON Alloc - Indication Configuration */
+    BCMOLT_GROUP_ID_GPON_ALLOC_GET_STATS                                                    = 357,  /**< GPON Alloc - Get statistics */
+    BCMOLT_GROUP_ID_GPON_ALLOC_SET_STATE                                                    = 358,  /**< GPON Alloc - Set state */
+    BCMOLT_GROUP_ID_GPON_GEM_PORT_KEY                                                       = 359,  /**< GPON GEM Port - key */
+    BCMOLT_GROUP_ID_GPON_GEM_PORT_CFG                                                       = 360,  /**< GPON GEM Port - cfg */
+    BCMOLT_GROUP_ID_GPON_GEM_PORT_STAT                                                      = 361,  /**< GPON GEM Port - stat */
+    BCMOLT_GROUP_ID_GPON_GEM_PORT_STAT_CFG_RX_PACKETS                                       = 362,  /**< GPON GEM Port - Statistic Configuration */
+    BCMOLT_GROUP_ID_GPON_GEM_PORT_STAT_CFG_RX_BYTES                                         = 363,  /**< GPON GEM Port - Statistic Configuration */
+    BCMOLT_GROUP_ID_GPON_GEM_PORT_STAT_CFG_TX_PACKETS                                       = 364,  /**< GPON GEM Port - Statistic Configuration */
+    BCMOLT_GROUP_ID_GPON_GEM_PORT_STAT_CFG_TX_BYTES                                         = 365,  /**< GPON GEM Port - Statistic Configuration */
+    BCMOLT_GROUP_ID_GPON_GEM_PORT_CONFIGURATION_COMPLETED                                   = 366,  /**< GPON GEM Port - Configuration Completed */
+    BCMOLT_GROUP_ID_GPON_GEM_PORT_STAT_ALARM_CLEARED                                        = 367,  /**< GPON GEM Port - Stat Alarm Cleared */
+    BCMOLT_GROUP_ID_GPON_GEM_PORT_STAT_ALARM_RAISED                                         = 368,  /**< GPON GEM Port - Stat Alarm Raised */
+    BCMOLT_GROUP_ID_GPON_GEM_PORT_AUTO_CFG                                                  = 369,  /**< GPON GEM Port - Indication Configuration */
+    BCMOLT_GROUP_ID_GPON_GEM_PORT_SET_STATE                                                 = 370,  /**< GPON GEM Port - Set state */
+    BCMOLT_GROUP_ID_GPON_IWF_KEY                                                            = 371,  /**< GPON IWF - key */
+    BCMOLT_GROUP_ID_GPON_IWF_CFG                                                            = 372,  /**< GPON IWF - cfg */
+    BCMOLT_GROUP_ID_GPON_IWF_STAT                                                           = 373,  /**< GPON IWF - stat */
+    BCMOLT_GROUP_ID_GPON_IWF_STAT_CFG_DS_HIT_EVENT                                          = 374,  /**< GPON IWF - Statistic Configuration */
+    BCMOLT_GROUP_ID_GPON_IWF_STAT_CFG_DS_MISS_EVENT                                         = 375,  /**< GPON IWF - Statistic Configuration */
+    BCMOLT_GROUP_ID_GPON_IWF_STAT_CFG_DS_DROP_DUE_TO_MISS_EVENT                             = 376,  /**< GPON IWF - Statistic Configuration */
+    BCMOLT_GROUP_ID_GPON_IWF_STAT_CFG_DS_DROP_DUE_TO_HIT_EVENT                              = 377,  /**< GPON IWF - Statistic Configuration */
+    BCMOLT_GROUP_ID_GPON_IWF_STAT_CFG_DS_DROP_TO_DISABLED_GEM                               = 378,  /**< GPON IWF - Statistic Configuration */
+    BCMOLT_GROUP_ID_GPON_IWF_STAT_CFG_NEW_MAC_DISCOVERED                                    = 379,  /**< GPON IWF - Statistic Configuration */
+    BCMOLT_GROUP_ID_GPON_IWF_STAT_CFG_MOVE_EVENT                                            = 380,  /**< GPON IWF - Statistic Configuration */
+    BCMOLT_GROUP_ID_GPON_IWF_STAT_CFG_NEW_MAC_DROP_DUE_TO_FIFO_FULL                         = 381,  /**< GPON IWF - Statistic Configuration */
+    BCMOLT_GROUP_ID_GPON_IWF_FLUSH_MAC_TABLE_COMPLETED                                      = 382,  /**< GPON IWF - Flush MAC Table Completed */
+    BCMOLT_GROUP_ID_GPON_IWF_SCAN_MAC_TABLE_COMPLETED                                       = 383,  /**< GPON IWF - Scan MAC Table Completed */
+    BCMOLT_GROUP_ID_GPON_IWF_STAT_ALARM_CLEARED                                             = 384,  /**< GPON IWF - Stat Alarm Cleared */
+    BCMOLT_GROUP_ID_GPON_IWF_STAT_ALARM_RAISED                                              = 385,  /**< GPON IWF - Stat Alarm Raised */
+    BCMOLT_GROUP_ID_GPON_IWF_AUTO_CFG                                                       = 386,  /**< GPON IWF - Indication Configuration */
+    BCMOLT_GROUP_ID_GPON_IWF_FLUSH_MAC_TABLE                                                = 387,  /**< GPON IWF - Flush MAC Table */
+    BCMOLT_GROUP_ID_GPON_IWF_SCAN_MAC_TABLE                                                 = 388,  /**< GPON IWF - Scan MAC Table */
+    BCMOLT_GROUP_ID_GPON_IWF_DS_EGRESS_FLOW_KEY                                             = 389,  /**< GPON IWF DS egress flow - key */
+    BCMOLT_GROUP_ID_GPON_IWF_DS_EGRESS_FLOW_CFG                                             = 390,  /**< GPON IWF DS egress flow - cfg */
+    BCMOLT_GROUP_ID_GPON_IWF_DS_INGRESS_FLOW_KEY                                            = 391,  /**< GPON IWF DS ingress flow - key */
+    BCMOLT_GROUP_ID_GPON_IWF_DS_INGRESS_FLOW_CFG                                            = 392,  /**< GPON IWF DS ingress flow - cfg */
+    BCMOLT_GROUP_ID_GPON_IWF_MAC_TABLE_KEY                                                  = 393,  /**< GPON IWF MAC table - key */
+    BCMOLT_GROUP_ID_GPON_IWF_MAC_TABLE_CFG                                                  = 394,  /**< GPON IWF MAC table - cfg */
+    BCMOLT_GROUP_ID_GPON_IWF_MAC_TABLE_MAC_AGED                                             = 395,  /**< GPON IWF MAC table - MAC Aged */
+    BCMOLT_GROUP_ID_GPON_IWF_MAC_TABLE_MAC_DROPPED                                          = 396,  /**< GPON IWF MAC table - MAC Dropped */
+    BCMOLT_GROUP_ID_GPON_IWF_MAC_TABLE_MAC_MOVE                                             = 397,  /**< GPON IWF MAC table - MAC Move */
+    BCMOLT_GROUP_ID_GPON_IWF_MAC_TABLE_NEW_MAC                                              = 398,  /**< GPON IWF MAC table - New MAC */
+    BCMOLT_GROUP_ID_GPON_IWF_MAC_TABLE_AUTO_CFG                                             = 399,  /**< GPON IWF MAC table - Indication Configuration */
+    BCMOLT_GROUP_ID_GPON_IWF_US_FLOW_KEY                                                    = 400,  /**< GPON IWF US flow - key */
+    BCMOLT_GROUP_ID_GPON_IWF_US_FLOW_CFG                                                    = 401,  /**< GPON IWF US flow - cfg */
+    BCMOLT_GROUP_ID_GPON_NI_KEY                                                             = 402,  /**< GPON network interface - key */
+    BCMOLT_GROUP_ID_GPON_NI_CFG                                                             = 403,  /**< GPON network interface - cfg */
+    BCMOLT_GROUP_ID_GPON_NI_STAT                                                            = 404,  /**< GPON network interface - stat */
+    BCMOLT_GROUP_ID_GPON_NI_STAT_CFG_FEC_CODEWORDS                                          = 405,  /**< GPON network interface - Statistic Configuration */
+    BCMOLT_GROUP_ID_GPON_NI_STAT_CFG_FEC_CODEWORDS_UNCORRECTED                              = 406,  /**< GPON network interface - Statistic Configuration */
+    BCMOLT_GROUP_ID_GPON_NI_STAT_CFG_BIP8_BYTES                                             = 407,  /**< GPON network interface - Statistic Configuration */
+    BCMOLT_GROUP_ID_GPON_NI_STAT_CFG_BIP8_ERRORS                                            = 408,  /**< GPON network interface - Statistic Configuration */
+    BCMOLT_GROUP_ID_GPON_NI_STAT_CFG_RX_GEM_PACKETS                                         = 409,  /**< GPON network interface - Statistic Configuration */
+    BCMOLT_GROUP_ID_GPON_NI_STAT_CFG_RX_GEM_DROPPED                                         = 410,  /**< GPON network interface - Statistic Configuration */
+    BCMOLT_GROUP_ID_GPON_NI_STAT_CFG_RX_GEM_IDLE                                            = 411,  /**< GPON network interface - Statistic Configuration */
+    BCMOLT_GROUP_ID_GPON_NI_STAT_CFG_RX_GEM_CORRECTED                                       = 412,  /**< GPON network interface - Statistic Configuration */
+    BCMOLT_GROUP_ID_GPON_NI_STAT_CFG_RX_GEM_ILLEGAL                                         = 413,  /**< GPON network interface - Statistic Configuration */
+    BCMOLT_GROUP_ID_GPON_NI_STAT_CFG_RX_ALLOCATIONS_VALID                                   = 414,  /**< GPON network interface - Statistic Configuration */
+    BCMOLT_GROUP_ID_GPON_NI_STAT_CFG_RX_ALLOCATIONS_INVALID                                 = 415,  /**< GPON network interface - Statistic Configuration */
+    BCMOLT_GROUP_ID_GPON_NI_STAT_CFG_RX_ALLOCATIONS_DISABLED                                = 416,  /**< GPON network interface - Statistic Configuration */
+    BCMOLT_GROUP_ID_GPON_NI_STAT_CFG_RX_PLOAMS                                              = 417,  /**< GPON network interface - Statistic Configuration */
+    BCMOLT_GROUP_ID_GPON_NI_STAT_CFG_RX_PLOAMS_NON_IDLE                                     = 418,  /**< GPON network interface - Statistic Configuration */
+    BCMOLT_GROUP_ID_GPON_NI_STAT_CFG_RX_PLOAMS_ERROR                                        = 419,  /**< GPON network interface - Statistic Configuration */
+    BCMOLT_GROUP_ID_GPON_NI_STAT_CFG_RX_PLOAMS_DROPPED                                      = 420,  /**< GPON network interface - Statistic Configuration */
+    BCMOLT_GROUP_ID_GPON_NI_STAT_CFG_RX_CPU                                                 = 421,  /**< GPON network interface - Statistic Configuration */
+    BCMOLT_GROUP_ID_GPON_NI_STAT_CFG_RX_OMCI                                                = 422,  /**< GPON network interface - Statistic Configuration */
+    BCMOLT_GROUP_ID_GPON_NI_STAT_CFG_RX_OMCI_PACKETS_CRC_ERROR                              = 423,  /**< GPON network interface - Statistic Configuration */
+    BCMOLT_GROUP_ID_GPON_NI_STAT_CFG_RX_DROPPED_TOO_SHORT                                   = 424,  /**< GPON network interface - Statistic Configuration */
+    BCMOLT_GROUP_ID_GPON_NI_STAT_CFG_RX_DROPPED_TOO_LONG                                    = 425,  /**< GPON network interface - Statistic Configuration */
+    BCMOLT_GROUP_ID_GPON_NI_STAT_CFG_RX_CRC_ERRORS                                          = 426,  /**< GPON network interface - Statistic Configuration */
+    BCMOLT_GROUP_ID_GPON_NI_STAT_CFG_RX_KEY_ERRORS                                          = 427,  /**< GPON network interface - Statistic Configuration */
+    BCMOLT_GROUP_ID_GPON_NI_STAT_CFG_RX_FRAGMENTS_ERRORS                                    = 428,  /**< GPON network interface - Statistic Configuration */
+    BCMOLT_GROUP_ID_GPON_NI_STAT_CFG_RX_PACKETS_DROPPED                                     = 429,  /**< GPON network interface - Statistic Configuration */
+    BCMOLT_GROUP_ID_GPON_NI_STAT_CFG_TX_GEM                                                 = 430,  /**< GPON network interface - Statistic Configuration */
+    BCMOLT_GROUP_ID_GPON_NI_STAT_CFG_TX_PLOAMS                                              = 431,  /**< GPON network interface - Statistic Configuration */
+    BCMOLT_GROUP_ID_GPON_NI_STAT_CFG_TX_GEM_FRAGMENTS                                       = 432,  /**< GPON network interface - Statistic Configuration */
+    BCMOLT_GROUP_ID_GPON_NI_STAT_CFG_TX_CPU                                                 = 433,  /**< GPON network interface - Statistic Configuration */
+    BCMOLT_GROUP_ID_GPON_NI_STAT_CFG_TX_OMCI                                                = 434,  /**< GPON network interface - Statistic Configuration */
+    BCMOLT_GROUP_ID_GPON_NI_STAT_CFG_TX_CPU_OMCI_PACKETS_DROPPED                            = 435,  /**< GPON network interface - Statistic Configuration */
+    BCMOLT_GROUP_ID_GPON_NI_STAT_CFG_TX_DROPPED_ILLEGAL_LENGTH                              = 436,  /**< GPON network interface - Statistic Configuration */
+    BCMOLT_GROUP_ID_GPON_NI_STAT_CFG_TX_DROPPED_TPID_MISS                                   = 437,  /**< GPON network interface - Statistic Configuration */
+    BCMOLT_GROUP_ID_GPON_NI_STAT_CFG_TX_DROPPED_VID_MISS                                    = 438,  /**< GPON network interface - Statistic Configuration */
+    BCMOLT_GROUP_ID_GPON_NI_ACTIVATE_ALL_ONUS_COMPLETED                                     = 439,  /**< GPON network interface - activate all onus completed */
+    BCMOLT_GROUP_ID_GPON_NI_CPU_PACKETS_FAILURE                                             = 440,  /**< GPON network interface - CPU Packets Failure */
+    BCMOLT_GROUP_ID_GPON_NI_DEACTIVATE_ALL_ONUS_COMPLETED                                   = 441,  /**< GPON network interface - deactivate all onus completed */
+    BCMOLT_GROUP_ID_GPON_NI_DISABLE_ALL_ONUS_COMPLETED                                      = 442,  /**< GPON network interface - disable all onus completed */
+    BCMOLT_GROUP_ID_GPON_NI_ENABLE_ALL_ONUS_COMPLETED                                       = 443,  /**< GPON network interface - enable all onus completed */
+    BCMOLT_GROUP_ID_GPON_NI_LOS                                                             = 444,  /**< GPON network interface - LOS */
+    BCMOLT_GROUP_ID_GPON_NI_ONU_DISCOVERED                                                  = 445,  /**< GPON network interface - ONU Discovered */
+    BCMOLT_GROUP_ID_GPON_NI_ONU_UPGRADE_COMPLETE                                            = 446,  /**< GPON network interface - ONU Upgrade Complete */
+    BCMOLT_GROUP_ID_GPON_NI_PROTECTION_SWITCHING_ONUS_RANGED                                = 447,  /**< GPON network interface - Protection Switching ONUs Ranged */
+    BCMOLT_GROUP_ID_GPON_NI_PROTECTION_SWITCHING_SWITCHOVER_COMPLETED                       = 448,  /**< GPON network interface - Protection Switching Switchover Completed */
+    BCMOLT_GROUP_ID_GPON_NI_PROTECTION_SWITCHING_TRAFFIC_RESUME                             = 449,  /**< GPON network interface - Protection Switching Traffic Resume */
+    BCMOLT_GROUP_ID_GPON_NI_ROGUE_DETECTION_COMPLETED                                       = 450,  /**< GPON network interface - Rogue detection completed */
+    BCMOLT_GROUP_ID_GPON_NI_ROGUE_ONU_SPECIAL_MAP_CYCLE_START                               = 451,  /**< GPON network interface - Rogue ONU special map cycle start */
+    BCMOLT_GROUP_ID_GPON_NI_SERIAL_NUMBER_ACQUISITION_CYCLE_START                           = 452,  /**< GPON network interface - Serial Number Acquisition Cycle Start */
+    BCMOLT_GROUP_ID_GPON_NI_STANDBY_PON_MONITORING_CYCLE_COMPLETED                          = 453,  /**< GPON network interface - Standby PON Monitoring Cycle Completed */
+    BCMOLT_GROUP_ID_GPON_NI_STAT_ALARM_CLEARED                                              = 454,  /**< GPON network interface - Stat Alarm Cleared */
+    BCMOLT_GROUP_ID_GPON_NI_STAT_ALARM_RAISED                                               = 455,  /**< GPON network interface - Stat Alarm Raised */
+    BCMOLT_GROUP_ID_GPON_NI_STATE_CHANGE_COMPLETED                                          = 456,  /**< GPON network interface - State Change Completed */
+    BCMOLT_GROUP_ID_GPON_NI_TOD_REQUEST_COMPLETED                                           = 457,  /**< GPON network interface - TOD request completed */
+    BCMOLT_GROUP_ID_GPON_NI_AUTO_CFG                                                        = 458,  /**< GPON network interface - Indication Configuration */
+    BCMOLT_GROUP_ID_GPON_NI_DISABLE_SERIAL_NUMBER                                           = 459,  /**< GPON network interface - Disable Serial Number */
+    BCMOLT_GROUP_ID_GPON_NI_PROTECTION_SWITCHING_TYPE_C_SET_MULTIPLE_ONU_STATE              = 460,  /**< GPON network interface - protection switching type c set multiple onu state */
+    BCMOLT_GROUP_ID_GPON_NI_RESET                                                           = 461,  /**< GPON network interface - Reset */
+    BCMOLT_GROUP_ID_GPON_NI_ROGUE_DETECTION_WINDOW                                          = 462,  /**< GPON network interface - Rogue Detection Window */
+    BCMOLT_GROUP_ID_GPON_NI_SET_ONU_STATE                                                   = 463,  /**< GPON network interface - Set ONU State */
+    BCMOLT_GROUP_ID_GPON_NI_SET_PON_STATE                                                   = 464,  /**< GPON network interface - Set PON State */
+    BCMOLT_GROUP_ID_GPON_NI_SINGLE_REQUEST_STANDBY_PON_MONITORING                           = 465,  /**< GPON network interface - Single request for standby PON monitoring */
+    BCMOLT_GROUP_ID_GPON_NI_START_ONU_UPGRADE                                               = 466,  /**< GPON network interface - Start ONU Firmware Upgrade */
+    BCMOLT_GROUP_ID_GPON_NI_TOD_REQUEST                                                     = 467,  /**< GPON network interface - TOD request */
+    BCMOLT_GROUP_ID_GPON_NI_BROADCAST_PLOAM_PACKET                                          = 468,  /**< GPON network interface - Broadcast PLOAM Packet */
+    BCMOLT_GROUP_ID_GPON_NI_CPU_PACKETS                                                     = 469,  /**< GPON network interface - GPON CPU Packets */
+    BCMOLT_GROUP_ID_GPON_ONU_KEY                                                            = 470,  /**< GPON ONU - key */
+    BCMOLT_GROUP_ID_GPON_ONU_CFG                                                            = 471,  /**< GPON ONU - cfg */
+    BCMOLT_GROUP_ID_GPON_ONU_STAT                                                           = 472,  /**< GPON ONU - stat */
+    BCMOLT_GROUP_ID_GPON_ONU_STAT_CFG_FEC_CODEWORDS                                         = 473,  /**< GPON ONU - Statistic Configuration */
+    BCMOLT_GROUP_ID_GPON_ONU_STAT_CFG_FEC_BYTES_CORRECTED                                   = 474,  /**< GPON ONU - Statistic Configuration */
+    BCMOLT_GROUP_ID_GPON_ONU_STAT_CFG_FEC_CODEWORDS_CORRECTED                               = 475,  /**< GPON ONU - Statistic Configuration */
+    BCMOLT_GROUP_ID_GPON_ONU_STAT_CFG_FEC_CODEWORDS_UNCORRECTED                             = 476,  /**< GPON ONU - Statistic Configuration */
+    BCMOLT_GROUP_ID_GPON_ONU_STAT_CFG_BIP8_BYTES                                            = 477,  /**< GPON ONU - Statistic Configuration */
+    BCMOLT_GROUP_ID_GPON_ONU_STAT_CFG_BIP8_ERRORS                                           = 478,  /**< GPON ONU - Statistic Configuration */
+    BCMOLT_GROUP_ID_GPON_ONU_STAT_CFG_RX_PLOAMS_CRC_ERROR                                   = 479,  /**< GPON ONU - Statistic Configuration */
+    BCMOLT_GROUP_ID_GPON_ONU_STAT_CFG_RX_PLOAMS_NON_IDLE                                    = 480,  /**< GPON ONU - Statistic Configuration */
+    BCMOLT_GROUP_ID_GPON_ONU_STAT_CFG_POSITIVE_DRIFT                                        = 481,  /**< GPON ONU - Statistic Configuration */
+    BCMOLT_GROUP_ID_GPON_ONU_STAT_CFG_NEGATIVE_DRIFT                                        = 482,  /**< GPON ONU - Statistic Configuration */
+    BCMOLT_GROUP_ID_GPON_ONU_STAT_CFG_RX_OMCI                                               = 483,  /**< GPON ONU - Statistic Configuration */
+    BCMOLT_GROUP_ID_GPON_ONU_STAT_CFG_RX_OMCI_PACKETS_CRC_ERROR                             = 484,  /**< GPON ONU - Statistic Configuration */
+    BCMOLT_GROUP_ID_GPON_ONU_STAT_CFG_BER_REPORTED                                          = 485,  /**< GPON ONU - Statistic Configuration */
+    BCMOLT_GROUP_ID_GPON_ONU_STAT_CFG_UNRECEIVED_BURST                                      = 486,  /**< GPON ONU - Statistic Configuration */
+    BCMOLT_GROUP_ID_GPON_ONU_STAT_CFG_LCDG_ERRORS                                           = 487,  /**< GPON ONU - Statistic Configuration */
+    BCMOLT_GROUP_ID_GPON_ONU_STAT_CFG_RDI_ERRORS                                            = 488,  /**< GPON ONU - Statistic Configuration */
+    BCMOLT_GROUP_ID_GPON_ONU_STAT_CFG_RX_BYTES                                              = 489,  /**< GPON ONU - Statistic Configuration */
+    BCMOLT_GROUP_ID_GPON_ONU_STAT_CFG_RX_PACKETS                                            = 490,  /**< GPON ONU - Statistic Configuration */
+    BCMOLT_GROUP_ID_GPON_ONU_STAT_CFG_TX_BYTES                                              = 491,  /**< GPON ONU - Statistic Configuration */
+    BCMOLT_GROUP_ID_GPON_ONU_STAT_CFG_TX_PACKETS                                            = 492,  /**< GPON ONU - Statistic Configuration */
+    BCMOLT_GROUP_ID_GPON_ONU_BER_INTERVAL_CONFIGURATION_COMPLETED                           = 493,  /**< GPON ONU - BER Interval Configuration Completed */
+    BCMOLT_GROUP_ID_GPON_ONU_DFI                                                            = 494,  /**< GPON ONU - Receive Dying-Gasp of ONUi */
+    BCMOLT_GROUP_ID_GPON_ONU_DGI                                                            = 495,  /**< GPON ONU - Receive Dying-Gasp of ONUi */
+    BCMOLT_GROUP_ID_GPON_ONU_DOWI                                                           = 496,  /**< GPON ONU - Drift of Window of ONUi */
+    BCMOLT_GROUP_ID_GPON_ONU_ERR                                                            = 497,  /**< GPON ONU - ERR */
+    BCMOLT_GROUP_ID_GPON_ONU_INVALID_DBRU_REPORT                                            = 498,  /**< GPON ONU - Invalid DBRu Report */
+    BCMOLT_GROUP_ID_GPON_ONU_KEY_EXCHANGE_COMPLETED                                         = 499,  /**< GPON ONU - Key Exchange Completed */
+    BCMOLT_GROUP_ID_GPON_ONU_KEY_EXCHANGE_CYCLE_SKIPPED                                     = 500,  /**< GPON ONU - Key Exchange Cycle Skipped */
+    BCMOLT_GROUP_ID_GPON_ONU_KEY_EXCHANGE_DECRYPT_REQUIRED                                  = 501,  /**< GPON ONU - Key Exchange Decrypt Required */
+    BCMOLT_GROUP_ID_GPON_ONU_KEY_EXCHANGE_KEY_MISMATCH                                      = 502,  /**< GPON ONU - Key Exchange Key Mismatch */
+    BCMOLT_GROUP_ID_GPON_ONU_KEY_EXCHANGE_KEY_REQUEST_TIMEOUT                               = 503,  /**< GPON ONU - Key Exchange Key Request Timeout */
+    BCMOLT_GROUP_ID_GPON_ONU_KEY_EXCHANGE_UNCONSECUTIVE_INDEX                               = 504,  /**< GPON ONU - Key Exchange Unconsecutive Index */
+    BCMOLT_GROUP_ID_GPON_ONU_LOAI                                                           = 505,  /**< GPON ONU - LOAi */
+    BCMOLT_GROUP_ID_GPON_ONU_LOKI                                                           = 506,  /**< GPON ONU - LOki */
+    BCMOLT_GROUP_ID_GPON_ONU_MEMI                                                           = 507,  /**< GPON ONU - MEMi */
+    BCMOLT_GROUP_ID_GPON_ONU_OMCI_PORT_ID_CONFIGURATION_COMPLETED                           = 508,  /**< GPON ONU - OMCI PORT ID Configuration Completed */
+    BCMOLT_GROUP_ID_GPON_ONU_ONU_ACTIVATION_COMPLETED                                       = 509,  /**< GPON ONU - ONU Activation Completed */
+    BCMOLT_GROUP_ID_GPON_ONU_ONU_ACTIVATION_STANDBY_COMPLETED                               = 510,  /**< GPON ONU - onu activation standby completed */
+    BCMOLT_GROUP_ID_GPON_ONU_ONU_ALARM                                                      = 511,  /**< GPON ONU - ONU Alarm */
+    BCMOLT_GROUP_ID_GPON_ONU_ONU_DEACTIVATION_COMPLETED                                     = 512,  /**< GPON ONU - ONU Deactivation Completed */
+    BCMOLT_GROUP_ID_GPON_ONU_ONU_DISABLE_COMPLETED                                          = 513,  /**< GPON ONU - ONU Disable Completed */
+    BCMOLT_GROUP_ID_GPON_ONU_ONU_ENABLE_COMPLETED                                           = 514,  /**< GPON ONU - ONU Enable Completed */
+    BCMOLT_GROUP_ID_GPON_ONU_OPTICAL_REFLECTION                                             = 515,  /**< GPON ONU - Optical Reflection */
+    BCMOLT_GROUP_ID_GPON_ONU_PASSWORD_AUTHENTICATION_COMPLETED                              = 516,  /**< GPON ONU - Password Authentication Completed */
+    BCMOLT_GROUP_ID_GPON_ONU_PEE                                                            = 517,  /**< GPON ONU - PEE */
+    BCMOLT_GROUP_ID_GPON_ONU_POSSIBLE_DRIFT                                                 = 518,  /**< GPON ONU - Possible Drift */
+    BCMOLT_GROUP_ID_GPON_ONU_POWER_MANAGEMENT_STATE_CHANGE                                  = 519,  /**< GPON ONU - Power Management State Change */
+    BCMOLT_GROUP_ID_GPON_ONU_PST                                                            = 520,  /**< GPON ONU - PST */
+    BCMOLT_GROUP_ID_GPON_ONU_RANGING_COMPLETED                                              = 521,  /**< GPON ONU - Ranging Completed */
+    BCMOLT_GROUP_ID_GPON_ONU_REI                                                            = 522,  /**< GPON ONU - REI */
+    BCMOLT_GROUP_ID_GPON_ONU_RSSI_MEASUREMENT_COMPLETED                                     = 523,  /**< GPON ONU - RSSI Measurement Completed */
+    BCMOLT_GROUP_ID_GPON_ONU_SDI                                                            = 524,  /**< GPON ONU - Signal Degraded of ONUi */
+    BCMOLT_GROUP_ID_GPON_ONU_SFI                                                            = 525,  /**< GPON ONU - Signal Fail of ONUi */
+    BCMOLT_GROUP_ID_GPON_ONU_STAT_ALARM_CLEARED                                             = 526,  /**< GPON ONU - Stat Alarm Cleared */
+    BCMOLT_GROUP_ID_GPON_ONU_STAT_ALARM_RAISED                                              = 527,  /**< GPON ONU - Stat Alarm Raised */
+    BCMOLT_GROUP_ID_GPON_ONU_SUFI                                                           = 528,  /**< GPON ONU - SUFi */
+    BCMOLT_GROUP_ID_GPON_ONU_TIWI                                                           = 529,  /**< GPON ONU - Transmission Interference Warning */
+    BCMOLT_GROUP_ID_GPON_ONU_AUTO_CFG                                                       = 530,  /**< GPON ONU - Indication Configuration */
+    BCMOLT_GROUP_ID_GPON_ONU_CHANGE_POWER_LEVEL                                             = 531,  /**< GPON ONU - Change Power Level */
+    BCMOLT_GROUP_ID_GPON_ONU_RSSI_MEASUREMENT                                               = 532,  /**< GPON ONU - RSSI Measurement */
+    BCMOLT_GROUP_ID_GPON_ONU_SET_ONU_STATE                                                  = 533,  /**< GPON ONU - Set ONU State */
+    BCMOLT_GROUP_ID_GPON_ONU_CPU_PACKETS                                                    = 534,  /**< GPON ONU - GPON CPU Packets */
+    BCMOLT_GROUP_ID_GPON_ONU_PLOAM_PACKET                                                   = 535,  /**< GPON ONU - PLOAM Packet */
+    BCMOLT_GROUP_ID_GPON_ONU_CPU_PACKET                                                     = 536,  /**< GPON ONU - GPON CPU packet */
+    BCMOLT_GROUP_ID_GPON_ONU_OMCI_PACKET                                                    = 537,  /**< GPON ONU - GPON OMCI packet */
+    BCMOLT_GROUP_ID_GPON_TRX_KEY                                                            = 538,  /**< GPON TRX - key */
+    BCMOLT_GROUP_ID_GPON_TRX_CFG                                                            = 539,  /**< GPON TRX - cfg */
+    BCMOLT_GROUP_ID_LOG_ENTRY_KEY                                                           = 540,  /**< log entry - key */
+    BCMOLT_GROUP_ID_LOG_ENTRY_CFG                                                           = 541,  /**< log entry - cfg */
+    BCMOLT_GROUP_ID_LOG_ENTRY_STAT                                                          = 542,  /**< log entry - stat */
+    BCMOLT_GROUP_ID_LOG_ENTRY_STAT_CFG_MSG_COUNT                                            = 543,  /**< log entry - Statistic Configuration */
+    BCMOLT_GROUP_ID_LOG_ENTRY_STAT_CFG_LOST_MSG_COUNT                                       = 544,  /**< log entry - Statistic Configuration */
+    BCMOLT_GROUP_ID_LOG_ENTRY_STAT_ALARM_CLEARED                                            = 545,  /**< log entry - Stat Alarm Cleared */
+    BCMOLT_GROUP_ID_LOG_ENTRY_STAT_ALARM_RAISED                                             = 546,  /**< log entry - Stat Alarm Raised */
+    BCMOLT_GROUP_ID_LOG_ENTRY_AUTO_CFG                                                      = 547,  /**< log entry - Indication Configuration */
+    BCMOLT_GROUP_ID_LOGGER_KEY                                                              = 548,  /**< logger - key */
+    BCMOLT_GROUP_ID_LOGGER_CFG                                                              = 549,  /**< logger - cfg */
+    BCMOLT_GROUP_ID_LOGGER_STAT                                                             = 550,  /**< logger - stat */
+    BCMOLT_GROUP_ID_LOGGER_STAT_CFG_LINES_IN_LOG                                            = 551,  /**< logger - Statistic Configuration */
+    BCMOLT_GROUP_ID_LOGGER_STAT_ALARM_CLEARED                                               = 552,  /**< logger - Stat Alarm Cleared */
+    BCMOLT_GROUP_ID_LOGGER_STAT_ALARM_RAISED                                                = 553,  /**< logger - Stat Alarm Raised */
+    BCMOLT_GROUP_ID_LOGGER_AUTO_CFG                                                         = 554,  /**< logger - Indication Configuration */
+    BCMOLT_GROUP_ID_LOGGER_CLEAR_LOG                                                        = 555,  /**< logger - clear log */
+    BCMOLT_GROUP_ID_NNI_KEY                                                                 = 556,  /**< NNI - key */
+    BCMOLT_GROUP_ID_NNI_CFG                                                                 = 557,  /**< NNI - cfg */
+    BCMOLT_GROUP_ID_NNI_STAT                                                                = 558,  /**< NNI - stat */
+    BCMOLT_GROUP_ID_NNI_STAT_CFG_RX_FRAMES_64                                               = 559,  /**< NNI - Statistic Configuration */
+    BCMOLT_GROUP_ID_NNI_STAT_CFG_RX_FRAMES_65_127                                           = 560,  /**< NNI - Statistic Configuration */
+    BCMOLT_GROUP_ID_NNI_STAT_CFG_RX_FRAMES_128_255                                          = 561,  /**< NNI - Statistic Configuration */
+    BCMOLT_GROUP_ID_NNI_STAT_CFG_RX_FRAMES_256_511                                          = 562,  /**< NNI - Statistic Configuration */
+    BCMOLT_GROUP_ID_NNI_STAT_CFG_RX_FRAMES_512_1023                                         = 563,  /**< NNI - Statistic Configuration */
+    BCMOLT_GROUP_ID_NNI_STAT_CFG_RX_FRAMES_1024_1518                                        = 564,  /**< NNI - Statistic Configuration */
+    BCMOLT_GROUP_ID_NNI_STAT_CFG_RX_FRAMES_1519_2047                                        = 565,  /**< NNI - Statistic Configuration */
+    BCMOLT_GROUP_ID_NNI_STAT_CFG_RX_FRAMES_2048_4095                                        = 566,  /**< NNI - Statistic Configuration */
+    BCMOLT_GROUP_ID_NNI_STAT_CFG_RX_FRAMES_4096_9216                                        = 567,  /**< NNI - Statistic Configuration */
+    BCMOLT_GROUP_ID_NNI_STAT_CFG_RX_FRAMES_9217_16383                                       = 568,  /**< NNI - Statistic Configuration */
+    BCMOLT_GROUP_ID_NNI_STAT_CFG_RX_FRAMES                                                  = 569,  /**< NNI - Statistic Configuration */
+    BCMOLT_GROUP_ID_NNI_STAT_CFG_RX_BYTES                                                   = 570,  /**< NNI - Statistic Configuration */
+    BCMOLT_GROUP_ID_NNI_STAT_CFG_RX_GOOD_FRAMES                                             = 571,  /**< NNI - Statistic Configuration */
+    BCMOLT_GROUP_ID_NNI_STAT_CFG_RX_UNICAST_FRAMES                                          = 572,  /**< NNI - Statistic Configuration */
+    BCMOLT_GROUP_ID_NNI_STAT_CFG_RX_MULTICAST_FRAMES                                        = 573,  /**< NNI - Statistic Configuration */
+    BCMOLT_GROUP_ID_NNI_STAT_CFG_RX_BROADCAST_FRAMES                                        = 574,  /**< NNI - Statistic Configuration */
+    BCMOLT_GROUP_ID_NNI_STAT_CFG_RX_FCS_ERRORS                                              = 575,  /**< NNI - Statistic Configuration */
+    BCMOLT_GROUP_ID_NNI_STAT_CFG_RX_CONTROL_FRAMES                                          = 576,  /**< NNI - Statistic Configuration */
+    BCMOLT_GROUP_ID_NNI_STAT_CFG_RX_PAUSE_FRAMES                                            = 577,  /**< NNI - Statistic Configuration */
+    BCMOLT_GROUP_ID_NNI_STAT_CFG_RX_PFC_FRAMES                                              = 578,  /**< NNI - Statistic Configuration */
+    BCMOLT_GROUP_ID_NNI_STAT_CFG_RX_UNSUPPORTED_OPCODE                                      = 579,  /**< NNI - Statistic Configuration */
+    BCMOLT_GROUP_ID_NNI_STAT_CFG_RX_UNSUPPORTED_DA                                          = 580,  /**< NNI - Statistic Configuration */
+    BCMOLT_GROUP_ID_NNI_STAT_CFG_RX_ALIGNMENT_ERRORS                                        = 581,  /**< NNI - Statistic Configuration */
+    BCMOLT_GROUP_ID_NNI_STAT_CFG_RX_LENGTH_OUT_OF_RANGE                                     = 582,  /**< NNI - Statistic Configuration */
+    BCMOLT_GROUP_ID_NNI_STAT_CFG_RX_CODE_ERRORS                                             = 583,  /**< NNI - Statistic Configuration */
+    BCMOLT_GROUP_ID_NNI_STAT_CFG_RX_OVERSIZED_FRAMES                                        = 584,  /**< NNI - Statistic Configuration */
+    BCMOLT_GROUP_ID_NNI_STAT_CFG_RX_JABBER_FRAMES                                           = 585,  /**< NNI - Statistic Configuration */
+    BCMOLT_GROUP_ID_NNI_STAT_CFG_RX_MTU_CHECK_ERRORS                                        = 586,  /**< NNI - Statistic Configuration */
+    BCMOLT_GROUP_ID_NNI_STAT_CFG_RX_PROMISCUOUS_FRAMES                                      = 587,  /**< NNI - Statistic Configuration */
+    BCMOLT_GROUP_ID_NNI_STAT_CFG_RX_VLAN_FRAMES                                             = 588,  /**< NNI - Statistic Configuration */
+    BCMOLT_GROUP_ID_NNI_STAT_CFG_RX_DOUBLE_VLAN_FRAMES                                      = 589,  /**< NNI - Statistic Configuration */
+    BCMOLT_GROUP_ID_NNI_STAT_CFG_RX_TRUNCATED_FRAMES                                        = 590,  /**< NNI - Statistic Configuration */
+    BCMOLT_GROUP_ID_NNI_STAT_CFG_RX_UNDERSIZE_FRAMES                                        = 591,  /**< NNI - Statistic Configuration */
+    BCMOLT_GROUP_ID_NNI_STAT_CFG_RX_FRAGMENTED_FRAMES                                       = 592,  /**< NNI - Statistic Configuration */
+    BCMOLT_GROUP_ID_NNI_STAT_CFG_RX_RUNT_FRAMES                                             = 593,  /**< NNI - Statistic Configuration */
+    BCMOLT_GROUP_ID_NNI_STAT_CFG_TX_FRAMES_64                                               = 594,  /**< NNI - Statistic Configuration */
+    BCMOLT_GROUP_ID_NNI_STAT_CFG_TX_FRAMES_65_127                                           = 595,  /**< NNI - Statistic Configuration */
+    BCMOLT_GROUP_ID_NNI_STAT_CFG_TX_FRAMES_128_255                                          = 596,  /**< NNI - Statistic Configuration */
+    BCMOLT_GROUP_ID_NNI_STAT_CFG_TX_FRAMES_256_511                                          = 597,  /**< NNI - Statistic Configuration */
+    BCMOLT_GROUP_ID_NNI_STAT_CFG_TX_FRAMES_512_1023                                         = 598,  /**< NNI - Statistic Configuration */
+    BCMOLT_GROUP_ID_NNI_STAT_CFG_TX_FRAMES_1024_1518                                        = 599,  /**< NNI - Statistic Configuration */
+    BCMOLT_GROUP_ID_NNI_STAT_CFG_TX_FRAMES_1519_2047                                        = 600,  /**< NNI - Statistic Configuration */
+    BCMOLT_GROUP_ID_NNI_STAT_CFG_TX_FRAMES_2048_4095                                        = 601,  /**< NNI - Statistic Configuration */
+    BCMOLT_GROUP_ID_NNI_STAT_CFG_TX_FRAMES_4096_9216                                        = 602,  /**< NNI - Statistic Configuration */
+    BCMOLT_GROUP_ID_NNI_STAT_CFG_TX_FRAMES_9217_16383                                       = 603,  /**< NNI - Statistic Configuration */
+    BCMOLT_GROUP_ID_NNI_STAT_CFG_TX_FRAMES                                                  = 604,  /**< NNI - Statistic Configuration */
+    BCMOLT_GROUP_ID_NNI_STAT_CFG_TX_BYTES                                                   = 605,  /**< NNI - Statistic Configuration */
+    BCMOLT_GROUP_ID_NNI_STAT_CFG_TX_GOOD_FRAMES                                             = 606,  /**< NNI - Statistic Configuration */
+    BCMOLT_GROUP_ID_NNI_STAT_CFG_TX_UNICAST_FRAMES                                          = 607,  /**< NNI - Statistic Configuration */
+    BCMOLT_GROUP_ID_NNI_STAT_CFG_TX_MULTICAST_FRAMES                                        = 608,  /**< NNI - Statistic Configuration */
+    BCMOLT_GROUP_ID_NNI_STAT_CFG_TX_BROADCAST_FRAMES                                        = 609,  /**< NNI - Statistic Configuration */
+    BCMOLT_GROUP_ID_NNI_STAT_CFG_TX_PAUSE_FRAMES                                            = 610,  /**< NNI - Statistic Configuration */
+    BCMOLT_GROUP_ID_NNI_STAT_CFG_TX_PFC_FRAMES                                              = 611,  /**< NNI - Statistic Configuration */
+    BCMOLT_GROUP_ID_NNI_STAT_CFG_TX_JABBER_FRAMES                                           = 612,  /**< NNI - Statistic Configuration */
+    BCMOLT_GROUP_ID_NNI_STAT_CFG_TX_FCS_ERRORS                                              = 613,  /**< NNI - Statistic Configuration */
+    BCMOLT_GROUP_ID_NNI_STAT_CFG_TX_CONTROL_FRAMES                                          = 614,  /**< NNI - Statistic Configuration */
+    BCMOLT_GROUP_ID_NNI_STAT_CFG_TX_OVERSIZE_FRAMES                                         = 615,  /**< NNI - Statistic Configuration */
+    BCMOLT_GROUP_ID_NNI_STAT_CFG_TX_FRAGMENTED_FRAMES                                       = 616,  /**< NNI - Statistic Configuration */
+    BCMOLT_GROUP_ID_NNI_STAT_CFG_TX_ERROR_FRAMES                                            = 617,  /**< NNI - Statistic Configuration */
+    BCMOLT_GROUP_ID_NNI_STAT_CFG_TX_VLAN_FRAMES                                             = 618,  /**< NNI - Statistic Configuration */
+    BCMOLT_GROUP_ID_NNI_STAT_CFG_TX_DOUBLE_VLAN_FRAMES                                      = 619,  /**< NNI - Statistic Configuration */
+    BCMOLT_GROUP_ID_NNI_STAT_CFG_TX_RUNT_FRAMES                                             = 620,  /**< NNI - Statistic Configuration */
+    BCMOLT_GROUP_ID_NNI_STAT_CFG_TX_UNDERRUN_FRAMES                                         = 621,  /**< NNI - Statistic Configuration */
+    BCMOLT_GROUP_ID_NNI_STAT_ALARM_CLEARED                                                  = 622,  /**< NNI - Stat Alarm Cleared */
+    BCMOLT_GROUP_ID_NNI_STAT_ALARM_RAISED                                                   = 623,  /**< NNI - Stat Alarm Raised */
+    BCMOLT_GROUP_ID_NNI_STATUS_CHANGED                                                      = 624,  /**< NNI - Status changed */
+    BCMOLT_GROUP_ID_NNI_AUTO_CFG                                                            = 625,  /**< NNI - Indication Configuration */
+    BCMOLT_GROUP_ID_NNI_SERDES_KEY                                                          = 626,  /**< nni_serdes - key */
+    BCMOLT_GROUP_ID_NNI_SERDES_CFG                                                          = 627,  /**< nni_serdes - cfg */
+    BCMOLT_GROUP_ID_SOFTWARE_ERROR_KEY                                                      = 628,  /**< Software Error - key */
+    BCMOLT_GROUP_ID_SOFTWARE_ERROR_CFG                                                      = 629,  /**< Software Error - cfg */
+    BCMOLT_GROUP_ID_TRX_CALIBRATION_KEY                                                     = 630,  /**< TRX Calibration - key */
+    BCMOLT_GROUP_ID_TRX_CALIBRATION_CAPTURE_WINDOW_AND_STATISTIC_COMPLETED                  = 631,  /**< TRX Calibration - Capture window and statistic completed */
+    BCMOLT_GROUP_ID_TRX_CALIBRATION_AUTO_CFG                                                = 632,  /**< TRX Calibration - Indication Configuration */
+    BCMOLT_GROUP_ID_TRX_CALIBRATION_START_CAPTURE_WINDOW                                    = 633,  /**< TRX Calibration - start capture window */
+    BCMOLT_GROUP_ID_TRX_CALIBRATION_STOP_CAPTURE_WINDOW                                     = 634,  /**< TRX Calibration - stop capture window */
+    BCMOLT_GROUP_ID_XGPON_ALLOC_KEY                                                         = 635,  /**< XGPON Alloc - key */
+    BCMOLT_GROUP_ID_XGPON_ALLOC_CFG                                                         = 636,  /**< XGPON Alloc - cfg */
+    BCMOLT_GROUP_ID_XGPON_ALLOC_STAT                                                        = 637,  /**< XGPON Alloc - stat */
+    BCMOLT_GROUP_ID_XGPON_ALLOC_STAT_CFG_RX_BYTES                                           = 638,  /**< XGPON Alloc - Statistic Configuration */
+    BCMOLT_GROUP_ID_XGPON_ALLOC_CONFIGURATION_COMPLETED                                     = 639,  /**< XGPON Alloc - Configuration Completed */
+    BCMOLT_GROUP_ID_XGPON_ALLOC_GET_ALLOC_STATS_COMPLETED                                   = 640,  /**< XGPON Alloc - Get alloc ID statistics completed */
+    BCMOLT_GROUP_ID_XGPON_ALLOC_STAT_ALARM_CLEARED                                          = 641,  /**< XGPON Alloc - Stat Alarm Cleared */
+    BCMOLT_GROUP_ID_XGPON_ALLOC_STAT_ALARM_RAISED                                           = 642,  /**< XGPON Alloc - Stat Alarm Raised */
+    BCMOLT_GROUP_ID_XGPON_ALLOC_AUTO_CFG                                                    = 643,  /**< XGPON Alloc - Indication Configuration */
+    BCMOLT_GROUP_ID_XGPON_ALLOC_GET_STATS                                                   = 644,  /**< XGPON Alloc - Get statistics */
+    BCMOLT_GROUP_ID_XGPON_ALLOC_SET_STATE                                                   = 645,  /**< XGPON Alloc - Set state */
+    BCMOLT_GROUP_ID_XGPON_GEM_PORT_KEY                                                      = 646,  /**< XGPON GEM port - key */
+    BCMOLT_GROUP_ID_XGPON_GEM_PORT_CFG                                                      = 647,  /**< XGPON GEM port - cfg */
+    BCMOLT_GROUP_ID_XGPON_GEM_PORT_STAT                                                     = 648,  /**< XGPON GEM port - stat */
+    BCMOLT_GROUP_ID_XGPON_GEM_PORT_STAT_CFG_TX_BYTES                                        = 649,  /**< XGPON GEM port - Statistic Configuration */
+    BCMOLT_GROUP_ID_XGPON_GEM_PORT_STAT_CFG_TX_PACKETS                                      = 650,  /**< XGPON GEM port - Statistic Configuration */
+    BCMOLT_GROUP_ID_XGPON_GEM_PORT_STAT_CFG_RX_PACKETS                                      = 651,  /**< XGPON GEM port - Statistic Configuration */
+    BCMOLT_GROUP_ID_XGPON_GEM_PORT_STAT_CFG_RX_BYTES                                        = 652,  /**< XGPON GEM port - Statistic Configuration */
+    BCMOLT_GROUP_ID_XGPON_GEM_PORT_STAT_ALARM_CLEARED                                       = 653,  /**< XGPON GEM port - Stat Alarm Cleared */
+    BCMOLT_GROUP_ID_XGPON_GEM_PORT_STAT_ALARM_RAISED                                        = 654,  /**< XGPON GEM port - Stat Alarm Raised */
+    BCMOLT_GROUP_ID_XGPON_GEM_PORT_AUTO_CFG                                                 = 655,  /**< XGPON GEM port - Indication Configuration */
+    BCMOLT_GROUP_ID_XGPON_IWF_KEY                                                           = 656,  /**< XGPON IWF - key */
+    BCMOLT_GROUP_ID_XGPON_IWF_CFG                                                           = 657,  /**< XGPON IWF - cfg */
+    BCMOLT_GROUP_ID_XGPON_NI_KEY                                                            = 658,  /**< XGPON network interface - key */
+    BCMOLT_GROUP_ID_XGPON_NI_CFG                                                            = 659,  /**< XGPON network interface - cfg */
+    BCMOLT_GROUP_ID_XGPON_NI_STAT                                                           = 660,  /**< XGPON network interface - stat */
+    BCMOLT_GROUP_ID_XGPON_NI_STAT_CFG_FEC_CODEWORDS                                         = 661,  /**< XGPON network interface - Statistic Configuration */
+    BCMOLT_GROUP_ID_XGPON_NI_STAT_CFG_BIP32_BYTES                                           = 662,  /**< XGPON network interface - Statistic Configuration */
+    BCMOLT_GROUP_ID_XGPON_NI_STAT_CFG_BIP32_ERRORS                                          = 663,  /**< XGPON network interface - Statistic Configuration */
+    BCMOLT_GROUP_ID_XGPON_NI_STAT_CFG_RX_XGTC_HEADERS                                       = 664,  /**< XGPON network interface - Statistic Configuration */
+    BCMOLT_GROUP_ID_XGPON_NI_STAT_CFG_RX_XGTC_CORRECTED                                     = 665,  /**< XGPON network interface - Statistic Configuration */
+    BCMOLT_GROUP_ID_XGPON_NI_STAT_CFG_RX_XGTC_UNCORRECTED                                   = 666,  /**< XGPON network interface - Statistic Configuration */
+    BCMOLT_GROUP_ID_XGPON_NI_STAT_CFG_RX_XGEM                                               = 667,  /**< XGPON network interface - Statistic Configuration */
+    BCMOLT_GROUP_ID_XGPON_NI_STAT_CFG_RX_XGEM_DROPPED                                       = 668,  /**< XGPON network interface - Statistic Configuration */
+    BCMOLT_GROUP_ID_XGPON_NI_STAT_CFG_RX_XGEM_IDLE                                          = 669,  /**< XGPON network interface - Statistic Configuration */
+    BCMOLT_GROUP_ID_XGPON_NI_STAT_CFG_RX_XGEM_CORRECTED                                     = 670,  /**< XGPON network interface - Statistic Configuration */
+    BCMOLT_GROUP_ID_XGPON_NI_STAT_CFG_RX_CRC_ERROR                                          = 671,  /**< XGPON network interface - Statistic Configuration */
+    BCMOLT_GROUP_ID_XGPON_NI_STAT_CFG_RX_FRAGMENT_ERROR                                     = 672,  /**< XGPON network interface - Statistic Configuration */
+    BCMOLT_GROUP_ID_XGPON_NI_STAT_CFG_RX_PACKETS_DROPPED                                    = 673,  /**< XGPON network interface - Statistic Configuration */
+    BCMOLT_GROUP_ID_XGPON_NI_STAT_CFG_RX_DROPPED_TOO_SHORT                                  = 674,  /**< XGPON network interface - Statistic Configuration */
+    BCMOLT_GROUP_ID_XGPON_NI_STAT_CFG_RX_DROPPED_TOO_LONG                                   = 675,  /**< XGPON network interface - Statistic Configuration */
+    BCMOLT_GROUP_ID_XGPON_NI_STAT_CFG_RX_KEY_ERROR                                          = 676,  /**< XGPON network interface - Statistic Configuration */
+    BCMOLT_GROUP_ID_XGPON_NI_STAT_CFG_TX_PLOAMS                                             = 677,  /**< XGPON network interface - Statistic Configuration */
+    BCMOLT_GROUP_ID_XGPON_NI_STAT_CFG_RX_PLOAMS_DROPPED                                     = 678,  /**< XGPON network interface - Statistic Configuration */
+    BCMOLT_GROUP_ID_XGPON_NI_STAT_CFG_RX_ALLOCATIONS_VALID                                  = 679,  /**< XGPON network interface - Statistic Configuration */
+    BCMOLT_GROUP_ID_XGPON_NI_STAT_CFG_RX_ALLOCATIONS_INVALID                                = 680,  /**< XGPON network interface - Statistic Configuration */
+    BCMOLT_GROUP_ID_XGPON_NI_STAT_CFG_RX_ALLOCATIONS_DISABLED                               = 681,  /**< XGPON network interface - Statistic Configuration */
+    BCMOLT_GROUP_ID_XGPON_NI_STAT_CFG_RX_PLOAMS                                             = 682,  /**< XGPON network interface - Statistic Configuration */
+    BCMOLT_GROUP_ID_XGPON_NI_STAT_CFG_RX_PLOAMS_NON_IDLE                                    = 683,  /**< XGPON network interface - Statistic Configuration */
+    BCMOLT_GROUP_ID_XGPON_NI_STAT_CFG_RX_PLOAMS_ERROR                                       = 684,  /**< XGPON network interface - Statistic Configuration */
+    BCMOLT_GROUP_ID_XGPON_NI_STAT_CFG_RX_CPU                                                = 685,  /**< XGPON network interface - Statistic Configuration */
+    BCMOLT_GROUP_ID_XGPON_NI_STAT_CFG_RX_OMCI                                               = 686,  /**< XGPON network interface - Statistic Configuration */
+    BCMOLT_GROUP_ID_XGPON_NI_STAT_CFG_RX_OMCI_PACKETS_CRC_ERROR                             = 687,  /**< XGPON network interface - Statistic Configuration */
+    BCMOLT_GROUP_ID_XGPON_NI_STAT_CFG_TX_PACKETS                                            = 688,  /**< XGPON network interface - Statistic Configuration */
+    BCMOLT_GROUP_ID_XGPON_NI_STAT_CFG_TX_XGEM                                               = 689,  /**< XGPON network interface - Statistic Configuration */
+    BCMOLT_GROUP_ID_XGPON_NI_STAT_CFG_TX_CPU                                                = 690,  /**< XGPON network interface - Statistic Configuration */
+    BCMOLT_GROUP_ID_XGPON_NI_STAT_CFG_TX_OMCI                                               = 691,  /**< XGPON network interface - Statistic Configuration */
+    BCMOLT_GROUP_ID_XGPON_NI_STAT_CFG_TX_CPU_OMCI_PACKETS_DROPPED                           = 692,  /**< XGPON network interface - Statistic Configuration */
+    BCMOLT_GROUP_ID_XGPON_NI_STAT_CFG_TX_DROPPED_ILLEGAL_LENGTH                             = 693,  /**< XGPON network interface - Statistic Configuration */
+    BCMOLT_GROUP_ID_XGPON_NI_STAT_CFG_TX_DROPPED_TPID_MISS                                  = 694,  /**< XGPON network interface - Statistic Configuration */
+    BCMOLT_GROUP_ID_XGPON_NI_STAT_CFG_TX_DROPPED_VID_MISS                                   = 695,  /**< XGPON network interface - Statistic Configuration */
+    BCMOLT_GROUP_ID_XGPON_NI_ACTIVATE_ALL_ONUS_COMPLETED                                    = 696,  /**< XGPON network interface - activate all onus completed */
+    BCMOLT_GROUP_ID_XGPON_NI_CPU_PACKETS_FAILURE                                            = 697,  /**< XGPON network interface - CPU Packets Failure */
+    BCMOLT_GROUP_ID_XGPON_NI_DEACTIVATE_ALL_ONUS_COMPLETED                                  = 698,  /**< XGPON network interface - deactivate all onus completed */
+    BCMOLT_GROUP_ID_XGPON_NI_DISABLE_ALL_ONUS_COMPLETED                                     = 699,  /**< XGPON network interface - disable all onus completed */
+    BCMOLT_GROUP_ID_XGPON_NI_ENABLE_ALL_ONUS_COMPLETED                                      = 700,  /**< XGPON network interface - enable all onus completed */
+    BCMOLT_GROUP_ID_XGPON_NI_LOS                                                            = 701,  /**< XGPON network interface - LOS */
+    BCMOLT_GROUP_ID_XGPON_NI_ONU_DISCOVERED                                                 = 702,  /**< XGPON network interface - ONU Discovered */
+    BCMOLT_GROUP_ID_XGPON_NI_ONU_UPGRADE_COMPLETE                                           = 703,  /**< XGPON network interface - ONU Upgrade Complete */
+    BCMOLT_GROUP_ID_XGPON_NI_PROTECTION_SWITCHING_ONUS_RANGED                               = 704,  /**< XGPON network interface - Protection Switching ONUs Ranged */
+    BCMOLT_GROUP_ID_XGPON_NI_PROTECTION_SWITCHING_SWITCHOVER_COMPLETED                      = 705,  /**< XGPON network interface - Protection Switching Switchover Completed */
+    BCMOLT_GROUP_ID_XGPON_NI_PROTECTION_SWITCHING_TRAFFIC_RESUME                            = 706,  /**< XGPON network interface - Protection Switching Traffic Resume */
+    BCMOLT_GROUP_ID_XGPON_NI_ROGUE_DETECTION_COMPLETED                                      = 707,  /**< XGPON network interface - Rogue detection completed */
+    BCMOLT_GROUP_ID_XGPON_NI_ROGUE_ONU_SPECIAL_MAP_CYCLE_START                              = 708,  /**< XGPON network interface - Rogue ONU special map cycle start */
+    BCMOLT_GROUP_ID_XGPON_NI_SERIAL_NUMBER_ACQUISITION_CYCLE_START                          = 709,  /**< XGPON network interface - Serial Number Acquisition Cycle Start */
+    BCMOLT_GROUP_ID_XGPON_NI_STANDBY_PON_MONITORING_CYCLE_COMPLETED                         = 710,  /**< XGPON network interface - Standby PON Monitoring Cycle Completed */
+    BCMOLT_GROUP_ID_XGPON_NI_STAT_ALARM_CLEARED                                             = 711,  /**< XGPON network interface - Stat Alarm Cleared */
+    BCMOLT_GROUP_ID_XGPON_NI_STAT_ALARM_RAISED                                              = 712,  /**< XGPON network interface - Stat Alarm Raised */
+    BCMOLT_GROUP_ID_XGPON_NI_STATE_CHANGE_COMPLETED                                         = 713,  /**< XGPON network interface - State Change Completed */
+    BCMOLT_GROUP_ID_XGPON_NI_TOD_REQUEST_COMPLETED                                          = 714,  /**< XGPON network interface - TOD request completed */
+    BCMOLT_GROUP_ID_XGPON_NI_AUTO_CFG                                                       = 715,  /**< XGPON network interface - Indication Configuration */
+    BCMOLT_GROUP_ID_XGPON_NI_ADJUST_TX_WAVELENGTH                                           = 716,  /**< XGPON network interface - Adjust Tx Wavelengh */
+    BCMOLT_GROUP_ID_XGPON_NI_DISABLE_SERIAL_NUMBER                                          = 717,  /**< XGPON network interface - Disable Serial Number */
+    BCMOLT_GROUP_ID_XGPON_NI_RESET                                                          = 718,  /**< XGPON network interface - Reset */
+    BCMOLT_GROUP_ID_XGPON_NI_ROGUE_DETECTION_WINDOW                                         = 719,  /**< XGPON network interface - Rogue Detection Window */
+    BCMOLT_GROUP_ID_XGPON_NI_RUN_SPECIAL_BW_MAP                                             = 720,  /**< XGPON network interface - Run Special BW Map */
+    BCMOLT_GROUP_ID_XGPON_NI_SET_ONU_STATE                                                  = 721,  /**< XGPON network interface - Set ONU State */
+    BCMOLT_GROUP_ID_XGPON_NI_SET_PON_STATE                                                  = 722,  /**< XGPON network interface - Set PON State */
+    BCMOLT_GROUP_ID_XGPON_NI_SINGLE_REQUEST_STANDBY_PON_MONITORING                          = 723,  /**< XGPON network interface - Single request standby PON Monitoring */
+    BCMOLT_GROUP_ID_XGPON_NI_START_ONU_UPGRADE                                              = 724,  /**< XGPON network interface - Start ONU Firmware Upgrade */
+    BCMOLT_GROUP_ID_XGPON_NI_TOD_REQUEST                                                    = 725,  /**< XGPON network interface - TOD request */
+    BCMOLT_GROUP_ID_XGPON_NI_BROADCAST_PLOAM_PACKET                                         = 726,  /**< XGPON network interface - Broadcast PLOAM Packet */
+    BCMOLT_GROUP_ID_XGPON_NI_CPU_PACKETS                                                    = 727,  /**< XGPON network interface - XGPON CPU packets */
+    BCMOLT_GROUP_ID_XGPON_ONU_KEY                                                           = 728,  /**< XGPON ONU - key */
+    BCMOLT_GROUP_ID_XGPON_ONU_CFG                                                           = 729,  /**< XGPON ONU - cfg */
+    BCMOLT_GROUP_ID_XGPON_ONU_STAT                                                          = 730,  /**< XGPON ONU - stat */
+    BCMOLT_GROUP_ID_XGPON_ONU_STAT_CFG_POSITIVE_DRIFT                                       = 731,  /**< XGPON ONU - Statistic Configuration */
+    BCMOLT_GROUP_ID_XGPON_ONU_STAT_CFG_NEGATIVE_DRIFT                                       = 732,  /**< XGPON ONU - Statistic Configuration */
+    BCMOLT_GROUP_ID_XGPON_ONU_STAT_CFG_DELIMITER_MISS_DETECTION                             = 733,  /**< XGPON ONU - Statistic Configuration */
+    BCMOLT_GROUP_ID_XGPON_ONU_STAT_CFG_BIP32_ERRORS                                         = 734,  /**< XGPON ONU - Statistic Configuration */
+    BCMOLT_GROUP_ID_XGPON_ONU_STAT_CFG_RX_WORDS                                             = 735,  /**< XGPON ONU - Statistic Configuration */
+    BCMOLT_GROUP_ID_XGPON_ONU_STAT_CFG_FEC_CORRECTED_SYMBOLS                                = 736,  /**< XGPON ONU - Statistic Configuration */
+    BCMOLT_GROUP_ID_XGPON_ONU_STAT_CFG_FEC_CORRECTED_CODEWORDS                              = 737,  /**< XGPON ONU - Statistic Configuration */
+    BCMOLT_GROUP_ID_XGPON_ONU_STAT_CFG_FEC_UNCORRECTABLE_CODEWORDS                          = 738,  /**< XGPON ONU - Statistic Configuration */
+    BCMOLT_GROUP_ID_XGPON_ONU_STAT_CFG_FEC_CODEWORDS                                        = 739,  /**< XGPON ONU - Statistic Configuration */
+    BCMOLT_GROUP_ID_XGPON_ONU_STAT_CFG_FEC_CORRECTED_BITS                                   = 740,  /**< XGPON ONU - Statistic Configuration */
+    BCMOLT_GROUP_ID_XGPON_ONU_STAT_CFG_XGEM_KEY_ERRORS                                      = 741,  /**< XGPON ONU - Statistic Configuration */
+    BCMOLT_GROUP_ID_XGPON_ONU_STAT_CFG_XGEM_LOSS                                            = 742,  /**< XGPON ONU - Statistic Configuration */
+    BCMOLT_GROUP_ID_XGPON_ONU_STAT_CFG_RX_PLOAMS_MIC_ERROR                                  = 743,  /**< XGPON ONU - Statistic Configuration */
+    BCMOLT_GROUP_ID_XGPON_ONU_STAT_CFG_RX_PLOAMS_NON_IDLE                                   = 744,  /**< XGPON ONU - Statistic Configuration */
+    BCMOLT_GROUP_ID_XGPON_ONU_STAT_CFG_RX_OMCI                                              = 745,  /**< XGPON ONU - Statistic Configuration */
+    BCMOLT_GROUP_ID_XGPON_ONU_STAT_CFG_RX_OMCI_PACKETS_CRC_ERROR                            = 746,  /**< XGPON ONU - Statistic Configuration */
+    BCMOLT_GROUP_ID_XGPON_ONU_STAT_CFG_RX_BYTES                                             = 747,  /**< XGPON ONU - Statistic Configuration */
+    BCMOLT_GROUP_ID_XGPON_ONU_STAT_CFG_RX_PACKETS                                           = 748,  /**< XGPON ONU - Statistic Configuration */
+    BCMOLT_GROUP_ID_XGPON_ONU_STAT_CFG_TX_BYTES                                             = 749,  /**< XGPON ONU - Statistic Configuration */
+    BCMOLT_GROUP_ID_XGPON_ONU_STAT_CFG_TX_PACKETS                                           = 750,  /**< XGPON ONU - Statistic Configuration */
+    BCMOLT_GROUP_ID_XGPON_ONU_DFI                                                           = 751,  /**< XGPON ONU - Receive Dying-Gasp of ONUi */
+    BCMOLT_GROUP_ID_XGPON_ONU_DGI                                                           = 752,  /**< XGPON ONU - Receive Dying-Gasp of ONUi */
+    BCMOLT_GROUP_ID_XGPON_ONU_DOWI                                                          = 753,  /**< XGPON ONU - Drift of Window of ONUi */
+    BCMOLT_GROUP_ID_XGPON_ONU_INVALID_DBRU_REPORT                                           = 754,  /**< XGPON ONU - Invalid DBRu Report */
+    BCMOLT_GROUP_ID_XGPON_ONU_KEY_EXCHANGE_COMPLETED                                        = 755,  /**< XGPON ONU - Key Exchange Completed */
+    BCMOLT_GROUP_ID_XGPON_ONU_KEY_EXCHANGE_CYCLE_SKIPPED                                    = 756,  /**< XGPON ONU - Key Exchange Cycle Skipped */
+    BCMOLT_GROUP_ID_XGPON_ONU_KEY_EXCHANGE_KEY_MISMATCH                                     = 757,  /**< XGPON ONU - Key Exchange Key Mismatch */
+    BCMOLT_GROUP_ID_XGPON_ONU_KEY_EXCHANGE_KEY_REQUEST_TIMEOUT                              = 758,  /**< XGPON ONU - Key Exchange Key Request Timeout */
+    BCMOLT_GROUP_ID_XGPON_ONU_LOOCI                                                         = 759,  /**< XGPON ONU - LOOCi */
+    BCMOLT_GROUP_ID_XGPON_ONU_ONU_ACTIVATION_COMPLETED                                      = 760,  /**< XGPON ONU - ONU Activation Completed */
+    BCMOLT_GROUP_ID_XGPON_ONU_ONU_ALARM                                                     = 761,  /**< XGPON ONU - ONU Alarm */
+    BCMOLT_GROUP_ID_XGPON_ONU_ONU_DEACTIVATION_COMPLETED                                    = 762,  /**< XGPON ONU - ONU Deactivation Completed */
+    BCMOLT_GROUP_ID_XGPON_ONU_ONU_DISABLE_COMPLETED                                         = 763,  /**< XGPON ONU - ONU Disable Completed */
+    BCMOLT_GROUP_ID_XGPON_ONU_ONU_ENABLE_COMPLETED                                          = 764,  /**< XGPON ONU - ONU Enable Completed */
+    BCMOLT_GROUP_ID_XGPON_ONU_ONU_TUNING_IN_COMPLETED                                       = 765,  /**< XGPON ONU - ONU Tuning in completed */
+    BCMOLT_GROUP_ID_XGPON_ONU_ONU_TUNING_OUT_COMPLETED                                      = 766,  /**< XGPON ONU - ONU Tuning out completed */
+    BCMOLT_GROUP_ID_XGPON_ONU_OPTICAL_REFLECTION                                            = 767,  /**< XGPON ONU - Optical Reflection */
+    BCMOLT_GROUP_ID_XGPON_ONU_POSSIBLE_DRIFT                                                = 768,  /**< XGPON ONU - Possible Drift */
+    BCMOLT_GROUP_ID_XGPON_ONU_POWER_CONSUMPTION_REPORT                                      = 769,  /**< XGPON ONU - Power consumption report */
+    BCMOLT_GROUP_ID_XGPON_ONU_POWER_LEVEL_REPORT                                            = 770,  /**< XGPON ONU - Power level report */
+    BCMOLT_GROUP_ID_XGPON_ONU_POWER_MANAGEMENT_STATE_CHANGE                                 = 771,  /**< XGPON ONU - Power Management State Change */
+    BCMOLT_GROUP_ID_XGPON_ONU_PQSI                                                          = 772,  /**< XGPON ONU - ploam queue status */
+    BCMOLT_GROUP_ID_XGPON_ONU_RANGING_COMPLETED                                             = 773,  /**< XGPON ONU - Ranging Completed */
+    BCMOLT_GROUP_ID_XGPON_ONU_REGISTRATION_ID                                               = 774,  /**< XGPON ONU - Registration ID */
+    BCMOLT_GROUP_ID_XGPON_ONU_RSSI_MEASUREMENT_COMPLETED                                    = 775,  /**< XGPON ONU - RSSI Measurement Completed */
+    BCMOLT_GROUP_ID_XGPON_ONU_SDI                                                           = 776,  /**< XGPON ONU - Signal Degraded of ONUi */
+    BCMOLT_GROUP_ID_XGPON_ONU_SECURE_MUTUAL_AUTHENTICATION_FAILURE                          = 777,  /**< XGPON ONU - secure mutual authentication failure */
+    BCMOLT_GROUP_ID_XGPON_ONU_SFI                                                           = 778,  /**< XGPON ONU - Signal Fail of ONUi */
+    BCMOLT_GROUP_ID_XGPON_ONU_STAT_ALARM_CLEARED                                            = 779,  /**< XGPON ONU - Stat Alarm Cleared */
+    BCMOLT_GROUP_ID_XGPON_ONU_STAT_ALARM_RAISED                                             = 780,  /**< XGPON ONU - Stat Alarm Raised */
+    BCMOLT_GROUP_ID_XGPON_ONU_SUFI                                                          = 781,  /**< XGPON ONU - SUFi */
+    BCMOLT_GROUP_ID_XGPON_ONU_TIWI                                                          = 782,  /**< XGPON ONU - Transmission Interference Warning */
+    BCMOLT_GROUP_ID_XGPON_ONU_TUNING_RESPONSE                                               = 783,  /**< XGPON ONU - Tuning response */
+    BCMOLT_GROUP_ID_XGPON_ONU_AUTO_CFG                                                      = 784,  /**< XGPON ONU - Indication Configuration */
+    BCMOLT_GROUP_ID_XGPON_ONU_ADJUST_TX_WAVELENGTH                                          = 785,  /**< XGPON ONU - Adjust Tx wavelength */
+    BCMOLT_GROUP_ID_XGPON_ONU_CHANGE_POWER_LEVELLING                                        = 786,  /**< XGPON ONU - Change power levelling */
+    BCMOLT_GROUP_ID_XGPON_ONU_GET_POWER_CONSUMPTION                                         = 787,  /**< XGPON ONU - Get power consumption */
+    BCMOLT_GROUP_ID_XGPON_ONU_GET_POWER_LEVEL                                               = 788,  /**< XGPON ONU - Get power level */
+    BCMOLT_GROUP_ID_XGPON_ONU_ONU_TUNING_IN                                                 = 789,  /**< XGPON ONU - ONU Tuning in */
+    BCMOLT_GROUP_ID_XGPON_ONU_ONU_TUNING_OUT                                                = 790,  /**< XGPON ONU - ONU Tuning out */
+    BCMOLT_GROUP_ID_XGPON_ONU_REQUEST_REGISTRATION                                          = 791,  /**< XGPON ONU - Request registration */
+    BCMOLT_GROUP_ID_XGPON_ONU_RSSI_MEASUREMENT                                              = 792,  /**< XGPON ONU - RSSI Measurement */
+    BCMOLT_GROUP_ID_XGPON_ONU_SECURE_MUTUAL_AUTHENTICATION                                  = 793,  /**< XGPON ONU - Secure mutual authentication */
+    BCMOLT_GROUP_ID_XGPON_ONU_SET_ONU_STATE                                                 = 794,  /**< XGPON ONU - Set ONU State */
+    BCMOLT_GROUP_ID_XGPON_ONU_CPU_PACKETS                                                   = 795,  /**< XGPON ONU - XGPON CPU packets */
+    BCMOLT_GROUP_ID_XGPON_ONU_PLOAM_PACKET                                                  = 796,  /**< XGPON ONU - PLOAM Packet */
+    BCMOLT_GROUP_ID_XGPON_ONU_CPU_PACKET                                                    = 797,  /**< XGPON ONU - XGPON CPU packet */
+    BCMOLT_GROUP_ID_XGPON_ONU_OMCI_PACKET                                                   = 798,  /**< XGPON ONU - XGPON OMCI packet */
+    BCMOLT_GROUP_ID_XGPON_TRX_KEY                                                           = 799,  /**< XGPON TRX - key */
+    BCMOLT_GROUP_ID_XGPON_TRX_CFG                                                           = 800,  /**< XGPON TRX - cfg */
+    BCMOLT_GROUP_ID_XPON_SERDES_KEY                                                         = 801,  /**< xpon_serdes - key */
+    BCMOLT_GROUP_ID_XPON_SERDES_CFG                                                         = 802,  /**< xpon_serdes - cfg */
+    BCMOLT_GROUP_ID__NUM_OF /**< Number of enum entries, not an entry itself. */
+} bcmolt_group_id;
+
+/** List of all ae_ni groups of type oper. 
+ */
+typedef enum bcmolt_ae_ni_oper_id
+{
+    BCMOLT_AE_NI_OPER_ID__BEGIN,
+    BCMOLT_AE_NI_OPER_ID_SET_AE_NI_EN_STATE                                                 = 0,    /**< Set AE NI Enable State. */
+    BCMOLT_AE_NI_OPER_ID__NUM_OF    /**< Number of enum entries, not an entry itself. */
+} bcmolt_ae_ni_oper_id;
+
+/** List of all ae_path_ds groups of type auto. 
+ */
+typedef enum bcmolt_ae_path_ds_auto_id
+{
+    BCMOLT_AE_PATH_DS_AUTO_ID__BEGIN,
+    BCMOLT_AE_PATH_DS_AUTO_ID_STAT_ALARM_CLEARED                                            = 0,    /**< Stat Alarm Cleared. */
+    BCMOLT_AE_PATH_DS_AUTO_ID_STAT_ALARM_RAISED,    /**< Stat Alarm Raised. */
+    BCMOLT_AE_PATH_DS_AUTO_ID__NUM_OF               /**< Number of enum entries, not an entry itself. */
+} bcmolt_ae_path_ds_auto_id;
+
+/** List of all ae_path_us groups of type auto. 
+ */
+typedef enum bcmolt_ae_path_us_auto_id
+{
+    BCMOLT_AE_PATH_US_AUTO_ID__BEGIN,
+    BCMOLT_AE_PATH_US_AUTO_ID_STAT_ALARM_CLEARED                                            = 0,    /**< Stat Alarm Cleared. */
+    BCMOLT_AE_PATH_US_AUTO_ID_STAT_ALARM_RAISED,    /**< Stat Alarm Raised. */
+    BCMOLT_AE_PATH_US_AUTO_ID__NUM_OF               /**< Number of enum entries, not an entry itself. */
+} bcmolt_ae_path_us_auto_id;
+
+/** List of all debug groups of type auto. 
+ */
+typedef enum bcmolt_debug_auto_id
+{
+    BCMOLT_DEBUG_AUTO_ID__BEGIN,
+    BCMOLT_DEBUG_AUTO_ID_CLI_OUTPUT                                                         = 0,    /**< cli_output. */
+    BCMOLT_DEBUG_AUTO_ID_FILE_ALMOST_FULL,  /**< file_almost_full. */
+    BCMOLT_DEBUG_AUTO_ID__NUM_OF            /**< Number of enum entries, not an entry itself. */
+} bcmolt_debug_auto_id;
+
+/** List of all debug groups of type oper. 
+ */
+typedef enum bcmolt_debug_oper_id
+{
+    BCMOLT_DEBUG_OPER_ID__BEGIN,
+    BCMOLT_DEBUG_OPER_ID_CLI_INPUT                                                          = 0,    /**< CLI_input. */
+    BCMOLT_DEBUG_OPER_ID_RESET_API_CAPTURE, /**< Reset API Capture. */
+    BCMOLT_DEBUG_OPER_ID_START_API_CAPTURE, /**< Start API Capture. */
+    BCMOLT_DEBUG_OPER_ID_STOP_API_CAPTURE,  /**< Stop API Capture. */
+    BCMOLT_DEBUG_OPER_ID__NUM_OF            /**< Number of enum entries, not an entry itself. */
+} bcmolt_debug_oper_id;
+
+/** List of all device groups of type auto. 
+ */
+typedef enum bcmolt_device_auto_id
+{
+    BCMOLT_DEVICE_AUTO_ID__BEGIN,
+    BCMOLT_DEVICE_AUTO_ID_CONNECTION_COMPLETE                                               = 0,    /**< Connection Complete. */
+    BCMOLT_DEVICE_AUTO_ID_CONNECTION_ESTABLISHED,   /**< Connection Established (Internal). */
+    BCMOLT_DEVICE_AUTO_ID_CONNECTION_FAILURE,       /**< Connection Failure. */
+    BCMOLT_DEVICE_AUTO_ID_DDR_TEST_COMPLETE,        /**< DDR Test Complete. */
+    BCMOLT_DEVICE_AUTO_ID_DEVICE_KEEP_ALIVE,        /**< Device Keep Alive (Internal). */
+    BCMOLT_DEVICE_AUTO_ID_DEVICE_READY,             /**< Device Ready (Internal). */
+    BCMOLT_DEVICE_AUTO_ID_DISCONNECTION_COMPLETE,   /**< Disconnection Complete. */
+    BCMOLT_DEVICE_AUTO_ID_IMAGE_TRANSFER_COMPLETE,  /**< Image Transfer Complete. */
+    BCMOLT_DEVICE_AUTO_ID_INDICATIONS_DROPPED,      /**< Indications Dropped. */
+    BCMOLT_DEVICE_AUTO_ID_SW_ERROR,                 /**< sw error. */
+    BCMOLT_DEVICE_AUTO_ID_SW_EXCEPTION,             /**< sw exception. */
+    BCMOLT_DEVICE_AUTO_ID__NUM_OF                   /**< Number of enum entries, not an entry itself. */
+} bcmolt_device_auto_id;
+
+/** List of all device groups of type oper. 
+ */
+typedef enum bcmolt_device_oper_id
+{
+    BCMOLT_DEVICE_OPER_ID__BEGIN,
+    BCMOLT_DEVICE_OPER_ID_CONNECT                                                           = 0,    /**< Connect. */
+    BCMOLT_DEVICE_OPER_ID_DISCONNECT,           /**< Device Disconnect. */
+    BCMOLT_DEVICE_OPER_ID_HOST_KEEP_ALIVE,      /**< Host Keep Alive (Internal). */
+    BCMOLT_DEVICE_OPER_ID_IMAGE_TRANSFER_DATA,  /**< Image Data Transfer Operation (Internal). */
+    BCMOLT_DEVICE_OPER_ID_IMAGE_TRANSFER_START, /**< Start Image Transfer Operation. */
+    BCMOLT_DEVICE_OPER_ID_RESET,                /**< Device Reset. */
+    BCMOLT_DEVICE_OPER_ID_RUN_DDR_TEST,         /**< Run DDR Test. */
+    BCMOLT_DEVICE_OPER_ID_SW_UPGRADE_ACTIVATE,  /**< SW upgrade activate. */
+    BCMOLT_DEVICE_OPER_ID__NUM_OF               /**< Number of enum entries, not an entry itself. */
+} bcmolt_device_oper_id;
+
+/** List of all epon_denied_link groups of type auto. 
+ */
+typedef enum bcmolt_epon_denied_link_auto_id
+{
+    BCMOLT_EPON_DENIED_LINK_AUTO_ID__BEGIN,
+    BCMOLT_EPON_DENIED_LINK_AUTO_ID_LASER_ON_OFF_VIOLATION                                  = 0,    /**< Laser On/Off Violation. */
+    BCMOLT_EPON_DENIED_LINK_AUTO_ID_LLID_POOL_EMPTY_VIOLATION,      /**< LLID Pool Empty Violation. */
+    BCMOLT_EPON_DENIED_LINK_AUTO_ID_MAX_LINK_VIOLATION,             /**< Max Link Violation. */
+    BCMOLT_EPON_DENIED_LINK_AUTO_ID_OVERHEAD_PROFILE_VIOLATION,     /**< Overhead Profile Violation. */
+    BCMOLT_EPON_DENIED_LINK_AUTO_ID_RANGE_VIOLATION,                /**< Range Violation. */
+    BCMOLT_EPON_DENIED_LINK_AUTO_ID_ROGUE_VIOLATION,                /**< Rogue ONU Detected. */
+    BCMOLT_EPON_DENIED_LINK_AUTO_ID_SYSTEM_RESOURCE_VIOLATION,      /**< System Resource Violation. */
+    BCMOLT_EPON_DENIED_LINK_AUTO_ID_TDM_CHANNELS_EXHAUSTED,         /**< TDM Channels Exhausted. */
+    BCMOLT_EPON_DENIED_LINK_AUTO_ID_UNKNOWN_LINK_VIOLATION,         /**< Unknown Link Violation. */
+    BCMOLT_EPON_DENIED_LINK_AUTO_ID_UPSTREAM_BANDWIDTH_VIOLATION,   /**< Upstream Bandwidth Violation. */
+    BCMOLT_EPON_DENIED_LINK_AUTO_ID__NUM_OF /**< Number of enum entries, not an entry itself. */
+} bcmolt_epon_denied_link_auto_id;
+
+/** List of all epon_link groups of type auto. 
+ */
+typedef enum bcmolt_epon_link_auto_id
+{
+    BCMOLT_EPON_LINK_AUTO_ID__BEGIN,
+    BCMOLT_EPON_LINK_AUTO_ID_DUPLICATE_MPCP_REGISTRATION_REQUEST                            = 0,    /**< Duplicate MPCP Registration Request. */
+    BCMOLT_EPON_LINK_AUTO_ID_ENCRYPTION_ENABLED,            /**< Encryption Enabled. */
+    BCMOLT_EPON_LINK_AUTO_ID_KEY_EXCHANGE_FAILURE,          /**< Key Exchange Failure. */
+    BCMOLT_EPON_LINK_AUTO_ID_KEY_EXCHANGE_STARTED,          /**< key_exchange_started. */
+    BCMOLT_EPON_LINK_AUTO_ID_KEY_EXCHANGE_STOPPED,          /**< key_exchange_stopped. */
+    BCMOLT_EPON_LINK_AUTO_ID_LINK_DELETED,                  /**< Link Deleted. */
+    BCMOLT_EPON_LINK_AUTO_ID_LINK_SPEED_MISMATCH,           /**< Link attempted to register at a different speed. */
+    BCMOLT_EPON_LINK_AUTO_ID_MPCP_DEREGISTERED,             /**< MPCP Deregistered. */
+    BCMOLT_EPON_LINK_AUTO_ID_MPCP_DISCOVERED,               /**< MPCP Discovered. */
+    BCMOLT_EPON_LINK_AUTO_ID_MPCP_REG_ACK_TIMEOUT,          /**< MPCP Reg Ack Timeout. */
+    BCMOLT_EPON_LINK_AUTO_ID_MPCP_REPORT_TIMEOUT,           /**< MPCP Report Timeout. */
+    BCMOLT_EPON_LINK_AUTO_ID_OAM_KEEPALIVE_TIMEOUT,         /**< OAM Keepalive Timeout. */
+    BCMOLT_EPON_LINK_AUTO_ID_OAM_KEEPALIVE_TIMER_STARTED,   /**< OAM keepalive timer started. */
+    BCMOLT_EPON_LINK_AUTO_ID_OAM_KEEPALIVE_TIMER_STOPPED,   /**< OAM keepalive timer stopped. */
+    BCMOLT_EPON_LINK_AUTO_ID_PREPROVISIONED_LINK_CREATED,   /**< Preprovisioned Link Created. */
+    BCMOLT_EPON_LINK_AUTO_ID_PROTECTION_SWITCH_OCCURRED,    /**< Protection Switch Occurred. */
+    BCMOLT_EPON_LINK_AUTO_ID_RANGE_VALUE_CHANGED,           /**< Range Value Changed. */
+    BCMOLT_EPON_LINK_AUTO_ID_RERANGE_FAILURE,               /**< Re-range failure. */
+    BCMOLT_EPON_LINK_AUTO_ID_STAT_ALARM_CLEARED,            /**< Stat Alarm Cleared. */
+    BCMOLT_EPON_LINK_AUTO_ID_STAT_ALARM_RAISED,             /**< Stat Alarm Raised. */
+    BCMOLT_EPON_LINK_AUTO_ID_STATIC_REGISTRATION_DONE,      /**< Static registration done. */
+    BCMOLT_EPON_LINK_AUTO_ID__NUM_OF                        /**< Number of enum entries, not an entry itself. */
+} bcmolt_epon_link_auto_id;
+
+/** List of all epon_link groups of type oper. 
+ */
+typedef enum bcmolt_epon_link_oper_id
+{
+    BCMOLT_EPON_LINK_OPER_ID__BEGIN,
+    BCMOLT_EPON_LINK_OPER_ID_DELETE_LINK                                                    = 0,    /**< Delete Link. */
+    BCMOLT_EPON_LINK_OPER_ID_FORCE_REDISCOVERY,         /**< Force Link Rediscovery. */
+    BCMOLT_EPON_LINK_OPER_ID_KEY_EXCHANGE_START,        /**< Key exchange start. */
+    BCMOLT_EPON_LINK_OPER_ID_KEY_EXCHANGE_STOP,         /**< Key exchange stop. */
+    BCMOLT_EPON_LINK_OPER_ID_OAM_KEEPALIVE_TIMER_START, /**< OAM Keepalive Timer Start. */
+    BCMOLT_EPON_LINK_OPER_ID_OAM_KEEPALIVE_TIMER_STOP,  /**< OAM Keepalive Timer Stop. */
+    BCMOLT_EPON_LINK_OPER_ID_STATIC_REGISTRATION,       /**< static_registration. */
+    BCMOLT_EPON_LINK_OPER_ID__NUM_OF                    /**< Number of enum entries, not an entry itself. */
+} bcmolt_epon_link_oper_id;
+
+/** List of all epon_link groups of type proxy. 
+ */
+typedef enum bcmolt_epon_link_proxy_id
+{
+    BCMOLT_EPON_LINK_PROXY_ID__BEGIN,
+    BCMOLT_EPON_LINK_PROXY_ID_INJECT_FRAME                                                  = 0,    /**< Inject Frame. */
+    BCMOLT_EPON_LINK_PROXY_ID__NUM_OF   /**< Number of enum entries, not an entry itself. */
+} bcmolt_epon_link_proxy_id;
+
+/** List of all epon_link groups of type proxy_rx. 
+ */
+typedef enum bcmolt_epon_link_proxy_rx_id
+{
+    BCMOLT_EPON_LINK_PROXY_RX_ID__BEGIN,
+    BCMOLT_EPON_LINK_PROXY_RX_ID_FRAME_CAPTURED                                             = 0,    /**< Frame Captured. */
+    BCMOLT_EPON_LINK_PROXY_RX_ID__NUM_OF    /**< Number of enum entries, not an entry itself. */
+} bcmolt_epon_link_proxy_rx_id;
+
+/** List of all epon_ni groups of type auto. 
+ */
+typedef enum bcmolt_epon_ni_auto_id
+{
+    BCMOLT_EPON_NI_AUTO_ID__BEGIN,
+    BCMOLT_EPON_NI_AUTO_ID_AUTO_ROGUE_SCAN_10G_FAILURE                                      = 0,    /**< 10G Epon Autonomous Rogue Scan failure detected. */
+    BCMOLT_EPON_NI_AUTO_ID_AUTO_ROGUE_SCAN_1G_FAILURE,  /**< 1G Epon Autonomous Rogue Scan failure detected. */
+    BCMOLT_EPON_NI_AUTO_ID_LLID_QUARANTINED,            /**< LLID Quarantined. */
+    BCMOLT_EPON_NI_AUTO_ID_MPCP_TIMESTAMP_CHANGED,      /**< MPCP Timestamp Changed. */
+    BCMOLT_EPON_NI_AUTO_ID_NO_REPORTS,                  /**< No Reports. */
+    BCMOLT_EPON_NI_AUTO_ID_ONU_UPGRADE_COMPLETE,        /**< ONU Upgrade Complete. */
+    BCMOLT_EPON_NI_AUTO_ID_RERANGE_FAILURE,             /**< Re-range failure. */
+    BCMOLT_EPON_NI_AUTO_ID_ROGUE_SCAN_COMPLETE,         /**< Rogue Scan is Complete. */
+    BCMOLT_EPON_NI_AUTO_ID_RSSI_MEASUREMENT_COMPLETED,  /**< RSSI Measurement Completed. */
+    BCMOLT_EPON_NI_AUTO_ID_STATE_CHANGE_COMPLETED,      /**< State Change Completed. */
+    BCMOLT_EPON_NI_AUTO_ID__NUM_OF                      /**< Number of enum entries, not an entry itself. */
+} bcmolt_epon_ni_auto_id;
+
+/** List of all epon_ni groups of type oper. 
+ */
+typedef enum bcmolt_epon_ni_oper_id
+{
+    BCMOLT_EPON_NI_OPER_ID__BEGIN,
+    BCMOLT_EPON_NI_OPER_ID_ADD_LINK                                                         = 0,    /**< Add link. */
+    BCMOLT_EPON_NI_OPER_ID_ADD_MULTICAST_LINK,          /**< Add Mutlticastlink. */
+    BCMOLT_EPON_NI_OPER_ID_ADD_PROTECTED_STANDBY_LINK,  /**< Add Protected Standby Link. */
+    BCMOLT_EPON_NI_OPER_ID_ISSUE_RSSI_GRANT,            /**< Issue an Rx Power Measurement Request. */
+    BCMOLT_EPON_NI_OPER_ID_PROTECTION_SWITCHING_APPLY_RERANGE_DELTA,    /**< Protection switching apply re-range delta. */
+    BCMOLT_EPON_NI_OPER_ID_ROGUE_LLID_SCAN,         /**< Run Rogue LLID Scan. */
+    BCMOLT_EPON_NI_OPER_ID_SET_EPON_NI_EN_STATE,    /**< Set EPON NI Enable State. */
+    BCMOLT_EPON_NI_OPER_ID_START_ONU_UPGRADE,       /**< Start ONU Firmware Upgrade. */
+    BCMOLT_EPON_NI_OPER_ID__NUM_OF                  /**< Number of enum entries, not an entry itself. */
+} bcmolt_epon_ni_oper_id;
+
+/** List of all epon_onu_10g_us groups of type auto. 
+ */
+typedef enum bcmolt_epon_onu_10g_us_auto_id
+{
+    BCMOLT_EPON_ONU_10G_US_AUTO_ID__BEGIN,
+    BCMOLT_EPON_ONU_10G_US_AUTO_ID_STAT_ALARM_CLEARED                                       = 0,    /**< Stat Alarm Cleared. */
+    BCMOLT_EPON_ONU_10G_US_AUTO_ID_STAT_ALARM_RAISED,   /**< Stat Alarm Raised. */
+    BCMOLT_EPON_ONU_10G_US_AUTO_ID__NUM_OF              /**< Number of enum entries, not an entry itself. */
+} bcmolt_epon_onu_10g_us_auto_id;
+
+/** List of all epon_onu_1g_us groups of type auto. 
+ */
+typedef enum bcmolt_epon_onu_1g_us_auto_id
+{
+    BCMOLT_EPON_ONU_1G_US_AUTO_ID__BEGIN,
+    BCMOLT_EPON_ONU_1G_US_AUTO_ID_STAT_ALARM_CLEARED                                        = 0,    /**< Stat Alarm Cleared. */
+    BCMOLT_EPON_ONU_1G_US_AUTO_ID_STAT_ALARM_RAISED,    /**< Stat Alarm Raised. */
+    BCMOLT_EPON_ONU_1G_US_AUTO_ID__NUM_OF               /**< Number of enum entries, not an entry itself. */
+} bcmolt_epon_onu_1g_us_auto_id;
+
+/** List of all epon_path_10g_ds groups of type auto. 
+ */
+typedef enum bcmolt_epon_path_10g_ds_auto_id
+{
+    BCMOLT_EPON_PATH_10G_DS_AUTO_ID__BEGIN,
+    BCMOLT_EPON_PATH_10G_DS_AUTO_ID_STAT_ALARM_CLEARED                                      = 0,    /**< Stat Alarm Cleared. */
+    BCMOLT_EPON_PATH_10G_DS_AUTO_ID_STAT_ALARM_RAISED,  /**< Stat Alarm Raised. */
+    BCMOLT_EPON_PATH_10G_DS_AUTO_ID__NUM_OF             /**< Number of enum entries, not an entry itself. */
+} bcmolt_epon_path_10g_ds_auto_id;
+
+/** List of all epon_path_10g_us groups of type auto. 
+ */
+typedef enum bcmolt_epon_path_10g_us_auto_id
+{
+    BCMOLT_EPON_PATH_10G_US_AUTO_ID__BEGIN,
+    BCMOLT_EPON_PATH_10G_US_AUTO_ID_STAT_ALARM_CLEARED                                      = 0,    /**< Stat Alarm Cleared. */
+    BCMOLT_EPON_PATH_10G_US_AUTO_ID_STAT_ALARM_RAISED,  /**< Stat Alarm Raised. */
+    BCMOLT_EPON_PATH_10G_US_AUTO_ID__NUM_OF             /**< Number of enum entries, not an entry itself. */
+} bcmolt_epon_path_10g_us_auto_id;
+
+/** List of all epon_path_1g_ds groups of type auto. 
+ */
+typedef enum bcmolt_epon_path_1g_ds_auto_id
+{
+    BCMOLT_EPON_PATH_1G_DS_AUTO_ID__BEGIN,
+    BCMOLT_EPON_PATH_1G_DS_AUTO_ID_STAT_ALARM_CLEARED                                       = 0,    /**< Stat Alarm Cleared. */
+    BCMOLT_EPON_PATH_1G_DS_AUTO_ID_STAT_ALARM_RAISED,   /**< Stat Alarm Raised. */
+    BCMOLT_EPON_PATH_1G_DS_AUTO_ID__NUM_OF              /**< Number of enum entries, not an entry itself. */
+} bcmolt_epon_path_1g_ds_auto_id;
+
+/** List of all epon_path_1g_us groups of type auto. 
+ */
+typedef enum bcmolt_epon_path_1g_us_auto_id
+{
+    BCMOLT_EPON_PATH_1G_US_AUTO_ID__BEGIN,
+    BCMOLT_EPON_PATH_1G_US_AUTO_ID_STAT_ALARM_CLEARED                                       = 0,    /**< Stat Alarm Cleared. */
+    BCMOLT_EPON_PATH_1G_US_AUTO_ID_STAT_ALARM_RAISED,   /**< Stat Alarm Raised. */
+    BCMOLT_EPON_PATH_1G_US_AUTO_ID__NUM_OF              /**< Number of enum entries, not an entry itself. */
+} bcmolt_epon_path_1g_us_auto_id;
+
+/** List of all gpon_alloc groups of type auto. 
+ */
+typedef enum bcmolt_gpon_alloc_auto_id
+{
+    BCMOLT_GPON_ALLOC_AUTO_ID__BEGIN,
+    BCMOLT_GPON_ALLOC_AUTO_ID_CONFIGURATION_COMPLETED                                       = 0,    /**< Configuration Completed. */
+    BCMOLT_GPON_ALLOC_AUTO_ID_GET_ALLOC_STATS_COMPLETED,    /**< Get alloc ID statistics completed. */
+    BCMOLT_GPON_ALLOC_AUTO_ID_STAT_ALARM_CLEARED,           /**< Stat Alarm Cleared. */
+    BCMOLT_GPON_ALLOC_AUTO_ID_STAT_ALARM_RAISED,            /**< Stat Alarm Raised. */
+    BCMOLT_GPON_ALLOC_AUTO_ID__NUM_OF                       /**< Number of enum entries, not an entry itself. */
+} bcmolt_gpon_alloc_auto_id;
+
+/** List of all gpon_alloc groups of type oper. 
+ */
+typedef enum bcmolt_gpon_alloc_oper_id
+{
+    BCMOLT_GPON_ALLOC_OPER_ID__BEGIN,
+    BCMOLT_GPON_ALLOC_OPER_ID_GET_STATS                                                     = 0,    /**< Get statistics. */
+    BCMOLT_GPON_ALLOC_OPER_ID_SET_STATE,    /**< Set state. */
+    BCMOLT_GPON_ALLOC_OPER_ID__NUM_OF       /**< Number of enum entries, not an entry itself. */
+} bcmolt_gpon_alloc_oper_id;
+
+/** List of all gpon_gem_port groups of type auto. 
+ */
+typedef enum bcmolt_gpon_gem_port_auto_id
+{
+    BCMOLT_GPON_GEM_PORT_AUTO_ID__BEGIN,
+    BCMOLT_GPON_GEM_PORT_AUTO_ID_CONFIGURATION_COMPLETED                                    = 0,    /**< Configuration Completed. */
+    BCMOLT_GPON_GEM_PORT_AUTO_ID_STAT_ALARM_CLEARED,    /**< Stat Alarm Cleared. */
+    BCMOLT_GPON_GEM_PORT_AUTO_ID_STAT_ALARM_RAISED,     /**< Stat Alarm Raised. */
+    BCMOLT_GPON_GEM_PORT_AUTO_ID__NUM_OF                /**< Number of enum entries, not an entry itself. */
+} bcmolt_gpon_gem_port_auto_id;
+
+/** List of all gpon_gem_port groups of type oper. 
+ */
+typedef enum bcmolt_gpon_gem_port_oper_id
+{
+    BCMOLT_GPON_GEM_PORT_OPER_ID__BEGIN,
+    BCMOLT_GPON_GEM_PORT_OPER_ID_SET_STATE                                                  = 0,    /**< Set state. */
+    BCMOLT_GPON_GEM_PORT_OPER_ID__NUM_OF    /**< Number of enum entries, not an entry itself. */
+} bcmolt_gpon_gem_port_oper_id;
+
+/** List of all gpon_iwf groups of type auto. 
+ */
+typedef enum bcmolt_gpon_iwf_auto_id
+{
+    BCMOLT_GPON_IWF_AUTO_ID__BEGIN,
+    BCMOLT_GPON_IWF_AUTO_ID_FLUSH_MAC_TABLE_COMPLETED                                       = 0,    /**< Flush MAC Table Completed. */
+    BCMOLT_GPON_IWF_AUTO_ID_SCAN_MAC_TABLE_COMPLETED,   /**< Scan MAC Table Completed. */
+    BCMOLT_GPON_IWF_AUTO_ID_STAT_ALARM_CLEARED,         /**< Stat Alarm Cleared. */
+    BCMOLT_GPON_IWF_AUTO_ID_STAT_ALARM_RAISED,          /**< Stat Alarm Raised. */
+    BCMOLT_GPON_IWF_AUTO_ID__NUM_OF                     /**< Number of enum entries, not an entry itself. */
+} bcmolt_gpon_iwf_auto_id;
+
+/** List of all gpon_iwf groups of type oper. 
+ */
+typedef enum bcmolt_gpon_iwf_oper_id
+{
+    BCMOLT_GPON_IWF_OPER_ID__BEGIN,
+    BCMOLT_GPON_IWF_OPER_ID_FLUSH_MAC_TABLE                                                 = 0,    /**< Flush MAC Table. */
+    BCMOLT_GPON_IWF_OPER_ID_SCAN_MAC_TABLE, /**< Scan MAC Table. */
+    BCMOLT_GPON_IWF_OPER_ID__NUM_OF         /**< Number of enum entries, not an entry itself. */
+} bcmolt_gpon_iwf_oper_id;
+
+/** List of all gpon_iwf_mac_table groups of type auto. 
+ */
+typedef enum bcmolt_gpon_iwf_mac_table_auto_id
+{
+    BCMOLT_GPON_IWF_MAC_TABLE_AUTO_ID__BEGIN,
+    BCMOLT_GPON_IWF_MAC_TABLE_AUTO_ID_MAC_AGED                                              = 0,    /**< MAC Aged. */
+    BCMOLT_GPON_IWF_MAC_TABLE_AUTO_ID_MAC_DROPPED,  /**< MAC Dropped. */
+    BCMOLT_GPON_IWF_MAC_TABLE_AUTO_ID_MAC_MOVE,     /**< MAC Move. */
+    BCMOLT_GPON_IWF_MAC_TABLE_AUTO_ID_NEW_MAC,      /**< New MAC. */
+    BCMOLT_GPON_IWF_MAC_TABLE_AUTO_ID__NUM_OF       /**< Number of enum entries, not an entry itself. */
+} bcmolt_gpon_iwf_mac_table_auto_id;
+
+/** List of all gpon_ni groups of type auto. 
+ */
+typedef enum bcmolt_gpon_ni_auto_id
+{
+    BCMOLT_GPON_NI_AUTO_ID__BEGIN,
+    BCMOLT_GPON_NI_AUTO_ID_ACTIVATE_ALL_ONUS_COMPLETED                                      = 0,    /**< activate all onus completed. */
+    BCMOLT_GPON_NI_AUTO_ID_CPU_PACKETS_FAILURE,             /**< CPU Packets Failure. */
+    BCMOLT_GPON_NI_AUTO_ID_DEACTIVATE_ALL_ONUS_COMPLETED,   /**< deactivate all onus completed. */
+    BCMOLT_GPON_NI_AUTO_ID_DISABLE_ALL_ONUS_COMPLETED,      /**< disable all onus completed. */
+    BCMOLT_GPON_NI_AUTO_ID_ENABLE_ALL_ONUS_COMPLETED,       /**< enable all onus completed. */
+    BCMOLT_GPON_NI_AUTO_ID_LOS,                     /**< LOS. */
+    BCMOLT_GPON_NI_AUTO_ID_ONU_DISCOVERED,          /**< ONU Discovered. */
+    BCMOLT_GPON_NI_AUTO_ID_ONU_UPGRADE_COMPLETE,    /**< ONU Upgrade Complete. */
+    BCMOLT_GPON_NI_AUTO_ID_PROTECTION_SWITCHING_ONUS_RANGED,            /**< Protection Switching ONUs Ranged. */
+    BCMOLT_GPON_NI_AUTO_ID_PROTECTION_SWITCHING_SWITCHOVER_COMPLETED,   /**< Protection Switching Switchover Completed. */
+    BCMOLT_GPON_NI_AUTO_ID_PROTECTION_SWITCHING_TRAFFIC_RESUME,         /**< Protection Switching Traffic Resume. */
+    BCMOLT_GPON_NI_AUTO_ID_ROGUE_DETECTION_COMPLETED,                   /**< Rogue detection completed. */
+    BCMOLT_GPON_NI_AUTO_ID_ROGUE_ONU_SPECIAL_MAP_CYCLE_START,           /**< Rogue ONU special map cycle start. */
+    BCMOLT_GPON_NI_AUTO_ID_SERIAL_NUMBER_ACQUISITION_CYCLE_START,       /**< Serial Number Acquisition Cycle Start. */
+    BCMOLT_GPON_NI_AUTO_ID_STANDBY_PON_MONITORING_CYCLE_COMPLETED,      /**< Standby PON Monitoring Cycle Completed. */
+    BCMOLT_GPON_NI_AUTO_ID_STAT_ALARM_CLEARED,      /**< Stat Alarm Cleared. */
+    BCMOLT_GPON_NI_AUTO_ID_STAT_ALARM_RAISED,       /**< Stat Alarm Raised. */
+    BCMOLT_GPON_NI_AUTO_ID_STATE_CHANGE_COMPLETED,  /**< State Change Completed. */
+    BCMOLT_GPON_NI_AUTO_ID_TOD_REQUEST_COMPLETED,   /**< TOD request completed. */
+    BCMOLT_GPON_NI_AUTO_ID__NUM_OF                  /**< Number of enum entries, not an entry itself. */
+} bcmolt_gpon_ni_auto_id;
+
+/** List of all gpon_ni groups of type oper. 
+ */
+typedef enum bcmolt_gpon_ni_oper_id
+{
+    BCMOLT_GPON_NI_OPER_ID__BEGIN,
+    BCMOLT_GPON_NI_OPER_ID_DISABLE_SERIAL_NUMBER                                            = 0,    /**< Disable Serial Number. */
+    BCMOLT_GPON_NI_OPER_ID_PROTECTION_SWITCHING_TYPE_C_SET_MULTIPLE_ONU_STATE,                      /**< protection switching type c set multiple onu state. */
+    BCMOLT_GPON_NI_OPER_ID_RESET,                   /**< Reset. */
+    BCMOLT_GPON_NI_OPER_ID_ROGUE_DETECTION_WINDOW,  /**< Rogue Detection Window. */
+    BCMOLT_GPON_NI_OPER_ID_SET_ONU_STATE,           /**< Set ONU State. */
+    BCMOLT_GPON_NI_OPER_ID_SET_PON_STATE,           /**< Set PON State. */
+    BCMOLT_GPON_NI_OPER_ID_SINGLE_REQUEST_STANDBY_PON_MONITORING,   /**< Single request for standby PON monitoring. */
+    BCMOLT_GPON_NI_OPER_ID_START_ONU_UPGRADE,                       /**< Start ONU Firmware Upgrade. */
+    BCMOLT_GPON_NI_OPER_ID_TOD_REQUEST, /**< TOD request. */
+    BCMOLT_GPON_NI_OPER_ID__NUM_OF      /**< Number of enum entries, not an entry itself. */
+} bcmolt_gpon_ni_oper_id;
+
+/** List of all gpon_ni groups of type proxy. 
+ */
+typedef enum bcmolt_gpon_ni_proxy_id
+{
+    BCMOLT_GPON_NI_PROXY_ID__BEGIN,
+    BCMOLT_GPON_NI_PROXY_ID_BROADCAST_PLOAM_PACKET                                          = 0,    /**< Broadcast PLOAM Packet. */
+    BCMOLT_GPON_NI_PROXY_ID_CPU_PACKETS,    /**< GPON CPU Packets. */
+    BCMOLT_GPON_NI_PROXY_ID__NUM_OF         /**< Number of enum entries, not an entry itself. */
+} bcmolt_gpon_ni_proxy_id;
+
+/** List of all gpon_onu groups of type auto. 
+ */
+typedef enum bcmolt_gpon_onu_auto_id
+{
+    BCMOLT_GPON_ONU_AUTO_ID__BEGIN,
+    BCMOLT_GPON_ONU_AUTO_ID_BER_INTERVAL_CONFIGURATION_COMPLETED                            = 0,    /**< BER Interval Configuration Completed. */
+    BCMOLT_GPON_ONU_AUTO_ID_DFI,                        /**< Receive Dying-Gasp of ONUi. */
+    BCMOLT_GPON_ONU_AUTO_ID_DGI,                        /**< Receive Dying-Gasp of ONUi. */
+    BCMOLT_GPON_ONU_AUTO_ID_DOWI,                       /**< Drift of Window of ONUi. */
+    BCMOLT_GPON_ONU_AUTO_ID_ERR,                        /**< ERR. */
+    BCMOLT_GPON_ONU_AUTO_ID_INVALID_DBRU_REPORT,        /**< Invalid DBRu Report. */
+    BCMOLT_GPON_ONU_AUTO_ID_KEY_EXCHANGE_COMPLETED,     /**< Key Exchange Completed. */
+    BCMOLT_GPON_ONU_AUTO_ID_KEY_EXCHANGE_CYCLE_SKIPPED, /**< Key Exchange Cycle Skipped. */
+    BCMOLT_GPON_ONU_AUTO_ID_KEY_EXCHANGE_DECRYPT_REQUIRED,      /**< Key Exchange Decrypt Required. */
+    BCMOLT_GPON_ONU_AUTO_ID_KEY_EXCHANGE_KEY_MISMATCH,          /**< Key Exchange Key Mismatch. */
+    BCMOLT_GPON_ONU_AUTO_ID_KEY_EXCHANGE_KEY_REQUEST_TIMEOUT,   /**< Key Exchange Key Request Timeout. */
+    BCMOLT_GPON_ONU_AUTO_ID_KEY_EXCHANGE_UNCONSECUTIVE_INDEX,   /**< Key Exchange Unconsecutive Index. */
+    BCMOLT_GPON_ONU_AUTO_ID_LOAI,   /**< LOAi. */
+    BCMOLT_GPON_ONU_AUTO_ID_LOKI,   /**< LOki. */
+    BCMOLT_GPON_ONU_AUTO_ID_MEMI,   /**< MEMi. */
+    BCMOLT_GPON_ONU_AUTO_ID_OMCI_PORT_ID_CONFIGURATION_COMPLETED,   /**< OMCI PORT ID Configuration Completed. */
+    BCMOLT_GPON_ONU_AUTO_ID_ONU_ACTIVATION_COMPLETED,               /**< ONU Activation Completed. */
+    BCMOLT_GPON_ONU_AUTO_ID_ONU_ACTIVATION_STANDBY_COMPLETED,       /**< onu activation standby completed. */
+    BCMOLT_GPON_ONU_AUTO_ID_ONU_ALARM,                  /**< ONU Alarm. */
+    BCMOLT_GPON_ONU_AUTO_ID_ONU_DEACTIVATION_COMPLETED, /**< ONU Deactivation Completed. */
+    BCMOLT_GPON_ONU_AUTO_ID_ONU_DISABLE_COMPLETED,      /**< ONU Disable Completed. */
+    BCMOLT_GPON_ONU_AUTO_ID_ONU_ENABLE_COMPLETED,       /**< ONU Enable Completed. */
+    BCMOLT_GPON_ONU_AUTO_ID_OPTICAL_REFLECTION,         /**< Optical Reflection. */
+    BCMOLT_GPON_ONU_AUTO_ID_PASSWORD_AUTHENTICATION_COMPLETED,  /**< Password Authentication Completed. */
+    BCMOLT_GPON_ONU_AUTO_ID_PEE,            /**< PEE. */
+    BCMOLT_GPON_ONU_AUTO_ID_POSSIBLE_DRIFT, /**< Possible Drift. */
+    BCMOLT_GPON_ONU_AUTO_ID_POWER_MANAGEMENT_STATE_CHANGE,  /**< Power Management State Change. */
+    BCMOLT_GPON_ONU_AUTO_ID_PST,                        /**< PST. */
+    BCMOLT_GPON_ONU_AUTO_ID_RANGING_COMPLETED,          /**< Ranging Completed. */
+    BCMOLT_GPON_ONU_AUTO_ID_REI,                        /**< REI. */
+    BCMOLT_GPON_ONU_AUTO_ID_RSSI_MEASUREMENT_COMPLETED, /**< RSSI Measurement Completed. */
+    BCMOLT_GPON_ONU_AUTO_ID_SDI,                        /**< Signal Degraded of ONUi. */
+    BCMOLT_GPON_ONU_AUTO_ID_SFI,                        /**< Signal Fail of ONUi. */
+    BCMOLT_GPON_ONU_AUTO_ID_STAT_ALARM_CLEARED,         /**< Stat Alarm Cleared. */
+    BCMOLT_GPON_ONU_AUTO_ID_STAT_ALARM_RAISED,          /**< Stat Alarm Raised. */
+    BCMOLT_GPON_ONU_AUTO_ID_SUFI,                       /**< SUFi. */
+    BCMOLT_GPON_ONU_AUTO_ID_TIWI,                       /**< Transmission Interference Warning. */
+    BCMOLT_GPON_ONU_AUTO_ID__NUM_OF                     /**< Number of enum entries, not an entry itself. */
+} bcmolt_gpon_onu_auto_id;
+
+/** List of all gpon_onu groups of type oper. 
+ */
+typedef enum bcmolt_gpon_onu_oper_id
+{
+    BCMOLT_GPON_ONU_OPER_ID__BEGIN,
+    BCMOLT_GPON_ONU_OPER_ID_CHANGE_POWER_LEVEL                                              = 0,    /**< Change Power Level. */
+    BCMOLT_GPON_ONU_OPER_ID_RSSI_MEASUREMENT,   /**< RSSI Measurement. */
+    BCMOLT_GPON_ONU_OPER_ID_SET_ONU_STATE,      /**< Set ONU State. */
+    BCMOLT_GPON_ONU_OPER_ID__NUM_OF             /**< Number of enum entries, not an entry itself. */
+} bcmolt_gpon_onu_oper_id;
+
+/** List of all gpon_onu groups of type proxy. 
+ */
+typedef enum bcmolt_gpon_onu_proxy_id
+{
+    BCMOLT_GPON_ONU_PROXY_ID__BEGIN,
+    BCMOLT_GPON_ONU_PROXY_ID_CPU_PACKETS                                                    = 0,    /**< GPON CPU Packets. */
+    BCMOLT_GPON_ONU_PROXY_ID_PLOAM_PACKET,  /**< PLOAM Packet. */
+    BCMOLT_GPON_ONU_PROXY_ID__NUM_OF        /**< Number of enum entries, not an entry itself. */
+} bcmolt_gpon_onu_proxy_id;
+
+/** List of all gpon_onu groups of type proxy_rx. 
+ */
+typedef enum bcmolt_gpon_onu_proxy_rx_id
+{
+    BCMOLT_GPON_ONU_PROXY_RX_ID__BEGIN,
+    BCMOLT_GPON_ONU_PROXY_RX_ID_CPU_PACKET                                                  = 0,    /**< GPON CPU packet. */
+    BCMOLT_GPON_ONU_PROXY_RX_ID_OMCI_PACKET,    /**< GPON OMCI packet. */
+    BCMOLT_GPON_ONU_PROXY_RX_ID__NUM_OF         /**< Number of enum entries, not an entry itself. */
+} bcmolt_gpon_onu_proxy_rx_id;
+
+/** List of all log_entry groups of type auto. 
+ */
+typedef enum bcmolt_log_entry_auto_id
+{
+    BCMOLT_LOG_ENTRY_AUTO_ID__BEGIN,
+    BCMOLT_LOG_ENTRY_AUTO_ID_STAT_ALARM_CLEARED                                             = 0,    /**< Stat Alarm Cleared. */
+    BCMOLT_LOG_ENTRY_AUTO_ID_STAT_ALARM_RAISED, /**< Stat Alarm Raised. */
+    BCMOLT_LOG_ENTRY_AUTO_ID__NUM_OF            /**< Number of enum entries, not an entry itself. */
+} bcmolt_log_entry_auto_id;
+
+/** List of all logger groups of type auto. 
+ */
+typedef enum bcmolt_logger_auto_id
+{
+    BCMOLT_LOGGER_AUTO_ID__BEGIN,
+    BCMOLT_LOGGER_AUTO_ID_STAT_ALARM_CLEARED                                                = 0,    /**< Stat Alarm Cleared. */
+    BCMOLT_LOGGER_AUTO_ID_STAT_ALARM_RAISED,    /**< Stat Alarm Raised. */
+    BCMOLT_LOGGER_AUTO_ID__NUM_OF               /**< Number of enum entries, not an entry itself. */
+} bcmolt_logger_auto_id;
+
+/** List of all logger groups of type oper. 
+ */
+typedef enum bcmolt_logger_oper_id
+{
+    BCMOLT_LOGGER_OPER_ID__BEGIN,
+    BCMOLT_LOGGER_OPER_ID_CLEAR_LOG                                                         = 0,    /**< clear log. */
+    BCMOLT_LOGGER_OPER_ID__NUM_OF   /**< Number of enum entries, not an entry itself. */
+} bcmolt_logger_oper_id;
+
+/** List of all nni groups of type auto. 
+ */
+typedef enum bcmolt_nni_auto_id
+{
+    BCMOLT_NNI_AUTO_ID__BEGIN,
+    BCMOLT_NNI_AUTO_ID_STAT_ALARM_CLEARED                                                   = 0,    /**< Stat Alarm Cleared. */
+    BCMOLT_NNI_AUTO_ID_STAT_ALARM_RAISED,   /**< Stat Alarm Raised. */
+    BCMOLT_NNI_AUTO_ID_STATUS_CHANGED,      /**< Status changed. */
+    BCMOLT_NNI_AUTO_ID__NUM_OF              /**< Number of enum entries, not an entry itself. */
+} bcmolt_nni_auto_id;
+
+/** List of all trx_calibration groups of type auto. 
+ */
+typedef enum bcmolt_trx_calibration_auto_id
+{
+    BCMOLT_TRX_CALIBRATION_AUTO_ID__BEGIN,
+    BCMOLT_TRX_CALIBRATION_AUTO_ID_CAPTURE_WINDOW_AND_STATISTIC_COMPLETED                   = 0,    /**< Capture window and statistic completed. */
+    BCMOLT_TRX_CALIBRATION_AUTO_ID__NUM_OF  /**< Number of enum entries, not an entry itself. */
+} bcmolt_trx_calibration_auto_id;
+
+/** List of all trx_calibration groups of type oper. 
+ */
+typedef enum bcmolt_trx_calibration_oper_id
+{
+    BCMOLT_TRX_CALIBRATION_OPER_ID__BEGIN,
+    BCMOLT_TRX_CALIBRATION_OPER_ID_START_CAPTURE_WINDOW                                     = 0,    /**< start capture window. */
+    BCMOLT_TRX_CALIBRATION_OPER_ID_STOP_CAPTURE_WINDOW, /**< stop capture window. */
+    BCMOLT_TRX_CALIBRATION_OPER_ID__NUM_OF              /**< Number of enum entries, not an entry itself. */
+} bcmolt_trx_calibration_oper_id;
+
+/** List of all xgpon_alloc groups of type auto. 
+ */
+typedef enum bcmolt_xgpon_alloc_auto_id
+{
+    BCMOLT_XGPON_ALLOC_AUTO_ID__BEGIN,
+    BCMOLT_XGPON_ALLOC_AUTO_ID_CONFIGURATION_COMPLETED                                      = 0,    /**< Configuration Completed. */
+    BCMOLT_XGPON_ALLOC_AUTO_ID_GET_ALLOC_STATS_COMPLETED,   /**< Get alloc ID statistics completed. */
+    BCMOLT_XGPON_ALLOC_AUTO_ID_STAT_ALARM_CLEARED,          /**< Stat Alarm Cleared. */
+    BCMOLT_XGPON_ALLOC_AUTO_ID_STAT_ALARM_RAISED,           /**< Stat Alarm Raised. */
+    BCMOLT_XGPON_ALLOC_AUTO_ID__NUM_OF                      /**< Number of enum entries, not an entry itself. */
+} bcmolt_xgpon_alloc_auto_id;
+
+/** List of all xgpon_alloc groups of type oper. 
+ */
+typedef enum bcmolt_xgpon_alloc_oper_id
+{
+    BCMOLT_XGPON_ALLOC_OPER_ID__BEGIN,
+    BCMOLT_XGPON_ALLOC_OPER_ID_GET_STATS                                                    = 0,    /**< Get statistics. */
+    BCMOLT_XGPON_ALLOC_OPER_ID_SET_STATE,   /**< Set state. */
+    BCMOLT_XGPON_ALLOC_OPER_ID__NUM_OF      /**< Number of enum entries, not an entry itself. */
+} bcmolt_xgpon_alloc_oper_id;
+
+/** List of all xgpon_gem_port groups of type auto. 
+ */
+typedef enum bcmolt_xgpon_gem_port_auto_id
+{
+    BCMOLT_XGPON_GEM_PORT_AUTO_ID__BEGIN,
+    BCMOLT_XGPON_GEM_PORT_AUTO_ID_STAT_ALARM_CLEARED                                        = 0,    /**< Stat Alarm Cleared. */
+    BCMOLT_XGPON_GEM_PORT_AUTO_ID_STAT_ALARM_RAISED,    /**< Stat Alarm Raised. */
+    BCMOLT_XGPON_GEM_PORT_AUTO_ID__NUM_OF               /**< Number of enum entries, not an entry itself. */
+} bcmolt_xgpon_gem_port_auto_id;
+
+/** List of all xgpon_ni groups of type auto. 
+ */
+typedef enum bcmolt_xgpon_ni_auto_id
+{
+    BCMOLT_XGPON_NI_AUTO_ID__BEGIN,
+    BCMOLT_XGPON_NI_AUTO_ID_ACTIVATE_ALL_ONUS_COMPLETED                                     = 0,    /**< activate all onus completed. */
+    BCMOLT_XGPON_NI_AUTO_ID_CPU_PACKETS_FAILURE,            /**< CPU Packets Failure. */
+    BCMOLT_XGPON_NI_AUTO_ID_DEACTIVATE_ALL_ONUS_COMPLETED,  /**< deactivate all onus completed. */
+    BCMOLT_XGPON_NI_AUTO_ID_DISABLE_ALL_ONUS_COMPLETED,     /**< disable all onus completed. */
+    BCMOLT_XGPON_NI_AUTO_ID_ENABLE_ALL_ONUS_COMPLETED,      /**< enable all onus completed. */
+    BCMOLT_XGPON_NI_AUTO_ID_LOS,                    /**< LOS. */
+    BCMOLT_XGPON_NI_AUTO_ID_ONU_DISCOVERED,         /**< ONU Discovered. */
+    BCMOLT_XGPON_NI_AUTO_ID_ONU_UPGRADE_COMPLETE,   /**< ONU Upgrade Complete. */
+    BCMOLT_XGPON_NI_AUTO_ID_PROTECTION_SWITCHING_ONUS_RANGED,           /**< Protection Switching ONUs Ranged. */
+    BCMOLT_XGPON_NI_AUTO_ID_PROTECTION_SWITCHING_SWITCHOVER_COMPLETED,  /**< Protection Switching Switchover Completed. */
+    BCMOLT_XGPON_NI_AUTO_ID_PROTECTION_SWITCHING_TRAFFIC_RESUME,        /**< Protection Switching Traffic Resume. */
+    BCMOLT_XGPON_NI_AUTO_ID_ROGUE_DETECTION_COMPLETED,                  /**< Rogue detection completed. */
+    BCMOLT_XGPON_NI_AUTO_ID_ROGUE_ONU_SPECIAL_MAP_CYCLE_START,          /**< Rogue ONU special map cycle start. */
+    BCMOLT_XGPON_NI_AUTO_ID_SERIAL_NUMBER_ACQUISITION_CYCLE_START,      /**< Serial Number Acquisition Cycle Start. */
+    BCMOLT_XGPON_NI_AUTO_ID_STANDBY_PON_MONITORING_CYCLE_COMPLETED,     /**< Standby PON Monitoring Cycle Completed. */
+    BCMOLT_XGPON_NI_AUTO_ID_STAT_ALARM_CLEARED,     /**< Stat Alarm Cleared. */
+    BCMOLT_XGPON_NI_AUTO_ID_STAT_ALARM_RAISED,      /**< Stat Alarm Raised. */
+    BCMOLT_XGPON_NI_AUTO_ID_STATE_CHANGE_COMPLETED, /**< State Change Completed. */
+    BCMOLT_XGPON_NI_AUTO_ID_TOD_REQUEST_COMPLETED,  /**< TOD request completed. */
+    BCMOLT_XGPON_NI_AUTO_ID__NUM_OF                 /**< Number of enum entries, not an entry itself. */
+} bcmolt_xgpon_ni_auto_id;
+
+/** List of all xgpon_ni groups of type oper. 
+ */
+typedef enum bcmolt_xgpon_ni_oper_id
+{
+    BCMOLT_XGPON_NI_OPER_ID__BEGIN,
+    BCMOLT_XGPON_NI_OPER_ID_ADJUST_TX_WAVELENGTH                                            = 0,    /**< Adjust Tx Wavelengh. */
+    BCMOLT_XGPON_NI_OPER_ID_DISABLE_SERIAL_NUMBER,                  /**< Disable Serial Number. */
+    BCMOLT_XGPON_NI_OPER_ID_RESET,                                  /**< Reset. */
+    BCMOLT_XGPON_NI_OPER_ID_ROGUE_DETECTION_WINDOW,                 /**< Rogue Detection Window. */
+    BCMOLT_XGPON_NI_OPER_ID_RUN_SPECIAL_BW_MAP,                     /**< Run Special BW Map. */
+    BCMOLT_XGPON_NI_OPER_ID_SET_ONU_STATE,                          /**< Set ONU State. */
+    BCMOLT_XGPON_NI_OPER_ID_SET_PON_STATE,                          /**< Set PON State. */
+    BCMOLT_XGPON_NI_OPER_ID_SINGLE_REQUEST_STANDBY_PON_MONITORING,  /**< Single request standby PON Monitoring. */
+    BCMOLT_XGPON_NI_OPER_ID_START_ONU_UPGRADE,                      /**< Start ONU Firmware Upgrade. */
+    BCMOLT_XGPON_NI_OPER_ID_TOD_REQUEST,    /**< TOD request. */
+    BCMOLT_XGPON_NI_OPER_ID__NUM_OF         /**< Number of enum entries, not an entry itself. */
+} bcmolt_xgpon_ni_oper_id;
+
+/** List of all xgpon_ni groups of type proxy. 
+ */
+typedef enum bcmolt_xgpon_ni_proxy_id
+{
+    BCMOLT_XGPON_NI_PROXY_ID__BEGIN,
+    BCMOLT_XGPON_NI_PROXY_ID_BROADCAST_PLOAM_PACKET                                         = 0,    /**< Broadcast PLOAM Packet. */
+    BCMOLT_XGPON_NI_PROXY_ID_CPU_PACKETS,   /**< XGPON CPU packets. */
+    BCMOLT_XGPON_NI_PROXY_ID__NUM_OF        /**< Number of enum entries, not an entry itself. */
+} bcmolt_xgpon_ni_proxy_id;
+
+/** List of all xgpon_onu groups of type auto. 
+ */
+typedef enum bcmolt_xgpon_onu_auto_id
+{
+    BCMOLT_XGPON_ONU_AUTO_ID__BEGIN,
+    BCMOLT_XGPON_ONU_AUTO_ID_DFI                                                            = 0,    /**< Receive Dying-Gasp of ONUi. */
+    BCMOLT_XGPON_ONU_AUTO_ID_DGI,                       /**< Receive Dying-Gasp of ONUi. */
+    BCMOLT_XGPON_ONU_AUTO_ID_DOWI,                      /**< Drift of Window of ONUi. */
+    BCMOLT_XGPON_ONU_AUTO_ID_INVALID_DBRU_REPORT,       /**< Invalid DBRu Report. */
+    BCMOLT_XGPON_ONU_AUTO_ID_KEY_EXCHANGE_COMPLETED,    /**< Key Exchange Completed. */
+    BCMOLT_XGPON_ONU_AUTO_ID_KEY_EXCHANGE_CYCLE_SKIPPED,        /**< Key Exchange Cycle Skipped. */
+    BCMOLT_XGPON_ONU_AUTO_ID_KEY_EXCHANGE_KEY_MISMATCH,         /**< Key Exchange Key Mismatch. */
+    BCMOLT_XGPON_ONU_AUTO_ID_KEY_EXCHANGE_KEY_REQUEST_TIMEOUT,  /**< Key Exchange Key Request Timeout. */
+    BCMOLT_XGPON_ONU_AUTO_ID_LOOCI,                     /**< LOOCi. */
+    BCMOLT_XGPON_ONU_AUTO_ID_ONU_ACTIVATION_COMPLETED,  /**< ONU Activation Completed. */
+    BCMOLT_XGPON_ONU_AUTO_ID_ONU_ALARM,                 /**< ONU Alarm. */
+    BCMOLT_XGPON_ONU_AUTO_ID_ONU_DEACTIVATION_COMPLETED,    /**< ONU Deactivation Completed. */
+    BCMOLT_XGPON_ONU_AUTO_ID_ONU_DISABLE_COMPLETED,         /**< ONU Disable Completed. */
+    BCMOLT_XGPON_ONU_AUTO_ID_ONU_ENABLE_COMPLETED,          /**< ONU Enable Completed. */
+    BCMOLT_XGPON_ONU_AUTO_ID_ONU_TUNING_IN_COMPLETED,       /**< ONU Tuning in completed. */
+    BCMOLT_XGPON_ONU_AUTO_ID_ONU_TUNING_OUT_COMPLETED,      /**< ONU Tuning out completed. */
+    BCMOLT_XGPON_ONU_AUTO_ID_OPTICAL_REFLECTION,            /**< Optical Reflection. */
+    BCMOLT_XGPON_ONU_AUTO_ID_POSSIBLE_DRIFT,                /**< Possible Drift. */
+    BCMOLT_XGPON_ONU_AUTO_ID_POWER_CONSUMPTION_REPORT,      /**< Power consumption report. */
+    BCMOLT_XGPON_ONU_AUTO_ID_POWER_LEVEL_REPORT,            /**< Power level report. */
+    BCMOLT_XGPON_ONU_AUTO_ID_POWER_MANAGEMENT_STATE_CHANGE, /**< Power Management State Change. */
+    BCMOLT_XGPON_ONU_AUTO_ID_PQSI,              /**< ploam queue status. */
+    BCMOLT_XGPON_ONU_AUTO_ID_RANGING_COMPLETED, /**< Ranging Completed. */
+    BCMOLT_XGPON_ONU_AUTO_ID_REGISTRATION_ID,   /**< Registration ID. */
+    BCMOLT_XGPON_ONU_AUTO_ID_RSSI_MEASUREMENT_COMPLETED,    /**< RSSI Measurement Completed. */
+    BCMOLT_XGPON_ONU_AUTO_ID_SDI,   /**< Signal Degraded of ONUi. */
+    BCMOLT_XGPON_ONU_AUTO_ID_SECURE_MUTUAL_AUTHENTICATION_FAILURE,  /**< secure mutual authentication failure. */
+    BCMOLT_XGPON_ONU_AUTO_ID_SFI,                   /**< Signal Fail of ONUi. */
+    BCMOLT_XGPON_ONU_AUTO_ID_STAT_ALARM_CLEARED,    /**< Stat Alarm Cleared. */
+    BCMOLT_XGPON_ONU_AUTO_ID_STAT_ALARM_RAISED,     /**< Stat Alarm Raised. */
+    BCMOLT_XGPON_ONU_AUTO_ID_SUFI,                  /**< SUFi. */
+    BCMOLT_XGPON_ONU_AUTO_ID_TIWI,                  /**< Transmission Interference Warning. */
+    BCMOLT_XGPON_ONU_AUTO_ID_TUNING_RESPONSE,       /**< Tuning response. */
+    BCMOLT_XGPON_ONU_AUTO_ID__NUM_OF                /**< Number of enum entries, not an entry itself. */
+} bcmolt_xgpon_onu_auto_id;
+
+/** List of all xgpon_onu groups of type oper. 
+ */
+typedef enum bcmolt_xgpon_onu_oper_id
+{
+    BCMOLT_XGPON_ONU_OPER_ID__BEGIN,
+    BCMOLT_XGPON_ONU_OPER_ID_ADJUST_TX_WAVELENGTH                                           = 0,    /**< Adjust Tx wavelength. */
+    BCMOLT_XGPON_ONU_OPER_ID_CHANGE_POWER_LEVELLING,        /**< Change power levelling. */
+    BCMOLT_XGPON_ONU_OPER_ID_GET_POWER_CONSUMPTION,         /**< Get power consumption. */
+    BCMOLT_XGPON_ONU_OPER_ID_GET_POWER_LEVEL,               /**< Get power level. */
+    BCMOLT_XGPON_ONU_OPER_ID_ONU_TUNING_IN,                 /**< ONU Tuning in. */
+    BCMOLT_XGPON_ONU_OPER_ID_ONU_TUNING_OUT,                /**< ONU Tuning out. */
+    BCMOLT_XGPON_ONU_OPER_ID_REQUEST_REGISTRATION,          /**< Request registration. */
+    BCMOLT_XGPON_ONU_OPER_ID_RSSI_MEASUREMENT,              /**< RSSI Measurement. */
+    BCMOLT_XGPON_ONU_OPER_ID_SECURE_MUTUAL_AUTHENTICATION,  /**< Secure mutual authentication. */
+    BCMOLT_XGPON_ONU_OPER_ID_SET_ONU_STATE,                 /**< Set ONU State. */
+    BCMOLT_XGPON_ONU_OPER_ID__NUM_OF                        /**< Number of enum entries, not an entry itself. */
+} bcmolt_xgpon_onu_oper_id;
+
+/** List of all xgpon_onu groups of type proxy. 
+ */
+typedef enum bcmolt_xgpon_onu_proxy_id
+{
+    BCMOLT_XGPON_ONU_PROXY_ID__BEGIN,
+    BCMOLT_XGPON_ONU_PROXY_ID_CPU_PACKETS                                                   = 0,    /**< XGPON CPU packets. */
+    BCMOLT_XGPON_ONU_PROXY_ID_PLOAM_PACKET, /**< PLOAM Packet. */
+    BCMOLT_XGPON_ONU_PROXY_ID__NUM_OF       /**< Number of enum entries, not an entry itself. */
+} bcmolt_xgpon_onu_proxy_id;
+
+/** List of all xgpon_onu groups of type proxy_rx. 
+ */
+typedef enum bcmolt_xgpon_onu_proxy_rx_id
+{
+    BCMOLT_XGPON_ONU_PROXY_RX_ID__BEGIN,
+    BCMOLT_XGPON_ONU_PROXY_RX_ID_CPU_PACKET                                                 = 0,    /**< XGPON CPU packet. */
+    BCMOLT_XGPON_ONU_PROXY_RX_ID_OMCI_PACKET,   /**< XGPON OMCI packet. */
+    BCMOLT_XGPON_ONU_PROXY_RX_ID__NUM_OF        /**< Number of enum entries, not an entry itself. */
+} bcmolt_xgpon_onu_proxy_rx_id;
+
+#define bcmolt_ae_ni_key_id_all_properties                                                  BCMOLT_AE_NI_KEY_ID__NUM_OF
+#define bcmolt_ae_ni_cfg_id_all_properties                                                  BCMOLT_AE_NI_CFG_ID__NUM_OF
+#define bcmolt_ae_ni_set_ae_ni_en_state_id_all_properties                                   BCMOLT_AE_NI_SET_AE_NI_EN_STATE_ID__NUM_OF
+#define bcmolt_ae_path_ds_key_id_all_properties                                             BCMOLT_AE_PATH_DS_KEY_ID__NUM_OF
+#define bcmolt_ae_path_ds_stat_id_all_properties                                            BCMOLT_AE_PATH_DS_STAT_ID__NUM_OF
+#define bcmolt_ae_path_ds_stat_cfg_id_all_properties                                        BCMOLT_AE_PATH_DS_STAT_CFG_ID__NUM_OF
+#define bcmolt_ae_path_ds_stat_alarm_raised_id_all_properties                               BCMOLT_AE_PATH_DS_STAT_ALARM_RAISED_ID__NUM_OF
+#define bcmolt_ae_path_ds_stat_alarm_cleared_id_all_properties                              BCMOLT_AE_PATH_DS_STAT_ALARM_CLEARED_ID__NUM_OF
+#define bcmolt_ae_path_ds_auto_cfg_id_all_properties                                        BCMOLT_AE_PATH_DS_AUTO_CFG_ID__NUM_OF
+#define bcmolt_ae_path_us_key_id_all_properties                                             BCMOLT_AE_PATH_US_KEY_ID__NUM_OF
+#define bcmolt_ae_path_us_stat_id_all_properties                                            BCMOLT_AE_PATH_US_STAT_ID__NUM_OF
+#define bcmolt_ae_path_us_stat_cfg_id_all_properties                                        BCMOLT_AE_PATH_US_STAT_CFG_ID__NUM_OF
+#define bcmolt_ae_path_us_stat_alarm_raised_id_all_properties                               BCMOLT_AE_PATH_US_STAT_ALARM_RAISED_ID__NUM_OF
+#define bcmolt_ae_path_us_stat_alarm_cleared_id_all_properties                              BCMOLT_AE_PATH_US_STAT_ALARM_CLEARED_ID__NUM_OF
+#define bcmolt_ae_path_us_auto_cfg_id_all_properties                                        BCMOLT_AE_PATH_US_AUTO_CFG_ID__NUM_OF
+#define bcmolt_channel_key_id_all_properties                                                BCMOLT_CHANNEL_KEY_ID__NUM_OF
+#define bcmolt_channel_cfg_id_all_properties                                                BCMOLT_CHANNEL_CFG_ID__NUM_OF
+#define bcmolt_debug_key_id_all_properties                                                  BCMOLT_DEBUG_KEY_ID__NUM_OF
+#define bcmolt_debug_cli_input_id_all_properties                                            BCMOLT_DEBUG_CLI_INPUT_ID__NUM_OF
+#define bcmolt_debug_cli_output_id_all_properties                                           BCMOLT_DEBUG_CLI_OUTPUT_ID__NUM_OF
+#define bcmolt_debug_cfg_id_all_properties                                                  BCMOLT_DEBUG_CFG_ID__NUM_OF
+#define bcmolt_debug_file_almost_full_id_all_properties                                     BCMOLT_DEBUG_FILE_ALMOST_FULL_ID__NUM_OF
+#define bcmolt_debug_start_api_capture_id_all_properties                                    BCMOLT_DEBUG_START_API_CAPTURE_ID__NUM_OF
+#define bcmolt_debug_stop_api_capture_id_all_properties                                     BCMOLT_DEBUG_STOP_API_CAPTURE_ID__NUM_OF
+#define bcmolt_debug_reset_api_capture_id_all_properties                                    BCMOLT_DEBUG_RESET_API_CAPTURE_ID__NUM_OF
+#define bcmolt_debug_auto_cfg_id_all_properties                                             BCMOLT_DEBUG_AUTO_CFG_ID__NUM_OF
+#define bcmolt_device_cfg_id_all_properties                                                 BCMOLT_DEVICE_CFG_ID__NUM_OF
+#define bcmolt_device_key_id_all_properties                                                 BCMOLT_DEVICE_KEY_ID__NUM_OF
+#define bcmolt_device_connect_id_all_properties                                             BCMOLT_DEVICE_CONNECT_ID__NUM_OF
+#define bcmolt_device_disconnect_id_all_properties                                          BCMOLT_DEVICE_DISCONNECT_ID__NUM_OF
+#define bcmolt_device_reset_id_all_properties                                               BCMOLT_DEVICE_RESET_ID__NUM_OF
+#define bcmolt_device_host_keep_alive_id_all_properties                                     BCMOLT_DEVICE_HOST_KEEP_ALIVE_ID__NUM_OF
+#define bcmolt_device_sw_upgrade_activate_id_all_properties                                 BCMOLT_DEVICE_SW_UPGRADE_ACTIVATE_ID__NUM_OF
+#define bcmolt_device_device_ready_id_all_properties                                        BCMOLT_DEVICE_DEVICE_READY_ID__NUM_OF
+#define bcmolt_device_connection_established_id_all_properties                              BCMOLT_DEVICE_CONNECTION_ESTABLISHED_ID__NUM_OF
+#define bcmolt_device_device_keep_alive_id_all_properties                                   BCMOLT_DEVICE_DEVICE_KEEP_ALIVE_ID__NUM_OF
+#define bcmolt_device_connection_failure_id_all_properties                                  BCMOLT_DEVICE_CONNECTION_FAILURE_ID__NUM_OF
+#define bcmolt_device_connection_complete_id_all_properties                                 BCMOLT_DEVICE_CONNECTION_COMPLETE_ID__NUM_OF
+#define bcmolt_device_disconnection_complete_id_all_properties                              BCMOLT_DEVICE_DISCONNECTION_COMPLETE_ID__NUM_OF
+#define bcmolt_device_sw_error_id_all_properties                                            BCMOLT_DEVICE_SW_ERROR_ID__NUM_OF
+#define bcmolt_device_sw_exception_id_all_properties                                        BCMOLT_DEVICE_SW_EXCEPTION_ID__NUM_OF
+#define bcmolt_device_indications_dropped_id_all_properties                                 BCMOLT_DEVICE_INDICATIONS_DROPPED_ID__NUM_OF
+#define bcmolt_device_image_transfer_start_id_all_properties                                BCMOLT_DEVICE_IMAGE_TRANSFER_START_ID__NUM_OF
+#define bcmolt_device_image_transfer_data_id_all_properties                                 BCMOLT_DEVICE_IMAGE_TRANSFER_DATA_ID__NUM_OF
+#define bcmolt_device_image_transfer_complete_id_all_properties                             BCMOLT_DEVICE_IMAGE_TRANSFER_COMPLETE_ID__NUM_OF
+#define bcmolt_device_run_ddr_test_id_all_properties                                        BCMOLT_DEVICE_RUN_DDR_TEST_ID__NUM_OF
+#define bcmolt_device_ddr_test_complete_id_all_properties                                   BCMOLT_DEVICE_DDR_TEST_COMPLETE_ID__NUM_OF
+#define bcmolt_device_auto_cfg_id_all_properties                                            BCMOLT_DEVICE_AUTO_CFG_ID__NUM_OF
+#define bcmolt_epon_denied_link_key_id_all_properties                                       BCMOLT_EPON_DENIED_LINK_KEY_ID__NUM_OF
+#define bcmolt_epon_denied_link_cfg_id_all_properties                                       BCMOLT_EPON_DENIED_LINK_CFG_ID__NUM_OF
+#define bcmolt_epon_denied_link_unknown_link_violation_id_all_properties                    BCMOLT_EPON_DENIED_LINK_UNKNOWN_LINK_VIOLATION_ID__NUM_OF
+#define bcmolt_epon_denied_link_overhead_profile_violation_id_all_properties                BCMOLT_EPON_DENIED_LINK_OVERHEAD_PROFILE_VIOLATION_ID__NUM_OF
+#define bcmolt_epon_denied_link_laser_on_off_violation_id_all_properties                    BCMOLT_EPON_DENIED_LINK_LASER_ON_OFF_VIOLATION_ID__NUM_OF
+#define bcmolt_epon_denied_link_max_link_violation_id_all_properties                        BCMOLT_EPON_DENIED_LINK_MAX_LINK_VIOLATION_ID__NUM_OF
+#define bcmolt_epon_denied_link_llid_pool_empty_violation_id_all_properties                 BCMOLT_EPON_DENIED_LINK_LLID_POOL_EMPTY_VIOLATION_ID__NUM_OF
+#define bcmolt_epon_denied_link_system_resource_violation_id_all_properties                 BCMOLT_EPON_DENIED_LINK_SYSTEM_RESOURCE_VIOLATION_ID__NUM_OF
+#define bcmolt_epon_denied_link_range_violation_id_all_properties                           BCMOLT_EPON_DENIED_LINK_RANGE_VIOLATION_ID__NUM_OF
+#define bcmolt_epon_denied_link_tdm_channels_exhausted_id_all_properties                    BCMOLT_EPON_DENIED_LINK_TDM_CHANNELS_EXHAUSTED_ID__NUM_OF
+#define bcmolt_epon_denied_link_rogue_violation_id_all_properties                           BCMOLT_EPON_DENIED_LINK_ROGUE_VIOLATION_ID__NUM_OF
+#define bcmolt_epon_denied_link_upstream_bandwidth_violation_id_all_properties              BCMOLT_EPON_DENIED_LINK_UPSTREAM_BANDWIDTH_VIOLATION_ID__NUM_OF
+#define bcmolt_epon_denied_link_auto_cfg_id_all_properties                                  BCMOLT_EPON_DENIED_LINK_AUTO_CFG_ID__NUM_OF
+#define bcmolt_epon_link_key_id_all_properties                                              BCMOLT_EPON_LINK_KEY_ID__NUM_OF
+#define bcmolt_epon_link_cfg_id_all_properties                                              BCMOLT_EPON_LINK_CFG_ID__NUM_OF
+#define bcmolt_epon_link_stat_id_all_properties                                             BCMOLT_EPON_LINK_STAT_ID__NUM_OF
+#define bcmolt_epon_link_force_rediscovery_id_all_properties                                BCMOLT_EPON_LINK_FORCE_REDISCOVERY_ID__NUM_OF
+#define bcmolt_epon_link_delete_link_id_all_properties                                      BCMOLT_EPON_LINK_DELETE_LINK_ID__NUM_OF
+#define bcmolt_epon_link_key_exchange_failure_id_all_properties                             BCMOLT_EPON_LINK_KEY_EXCHANGE_FAILURE_ID__NUM_OF
+#define bcmolt_epon_link_encryption_enabled_id_all_properties                               BCMOLT_EPON_LINK_ENCRYPTION_ENABLED_ID__NUM_OF
+#define bcmolt_epon_link_mpcp_reg_ack_timeout_id_all_properties                             BCMOLT_EPON_LINK_MPCP_REG_ACK_TIMEOUT_ID__NUM_OF
+#define bcmolt_epon_link_range_value_changed_id_all_properties                              BCMOLT_EPON_LINK_RANGE_VALUE_CHANGED_ID__NUM_OF
+#define bcmolt_epon_link_protection_switch_occurred_id_all_properties                       BCMOLT_EPON_LINK_PROTECTION_SWITCH_OCCURRED_ID__NUM_OF
+#define bcmolt_epon_link_duplicate_mpcp_registration_request_id_all_properties              BCMOLT_EPON_LINK_DUPLICATE_MPCP_REGISTRATION_REQUEST_ID__NUM_OF
+#define bcmolt_epon_link_link_speed_mismatch_id_all_properties                              BCMOLT_EPON_LINK_LINK_SPEED_MISMATCH_ID__NUM_OF
+#define bcmolt_epon_link_mpcp_report_timeout_id_all_properties                              BCMOLT_EPON_LINK_MPCP_REPORT_TIMEOUT_ID__NUM_OF
+#define bcmolt_epon_link_oam_keepalive_timeout_id_all_properties                            BCMOLT_EPON_LINK_OAM_KEEPALIVE_TIMEOUT_ID__NUM_OF
+#define bcmolt_epon_link_mpcp_discovered_id_all_properties                                  BCMOLT_EPON_LINK_MPCP_DISCOVERED_ID__NUM_OF
+#define bcmolt_epon_link_mpcp_deregistered_id_all_properties                                BCMOLT_EPON_LINK_MPCP_DEREGISTERED_ID__NUM_OF
+#define bcmolt_epon_link_preprovisioned_link_created_id_all_properties                      BCMOLT_EPON_LINK_PREPROVISIONED_LINK_CREATED_ID__NUM_OF
+#define bcmolt_epon_link_oam_keepalive_timer_start_id_all_properties                        BCMOLT_EPON_LINK_OAM_KEEPALIVE_TIMER_START_ID__NUM_OF
+#define bcmolt_epon_link_oam_keepalive_timer_stop_id_all_properties                         BCMOLT_EPON_LINK_OAM_KEEPALIVE_TIMER_STOP_ID__NUM_OF
+#define bcmolt_epon_link_key_exchange_start_id_all_properties                               BCMOLT_EPON_LINK_KEY_EXCHANGE_START_ID__NUM_OF
+#define bcmolt_epon_link_key_exchange_stop_id_all_properties                                BCMOLT_EPON_LINK_KEY_EXCHANGE_STOP_ID__NUM_OF
+#define bcmolt_epon_link_oam_keepalive_timer_started_id_all_properties                      BCMOLT_EPON_LINK_OAM_KEEPALIVE_TIMER_STARTED_ID__NUM_OF
+#define bcmolt_epon_link_oam_keepalive_timer_stopped_id_all_properties                      BCMOLT_EPON_LINK_OAM_KEEPALIVE_TIMER_STOPPED_ID__NUM_OF
+#define bcmolt_epon_link_key_exchange_started_id_all_properties                             BCMOLT_EPON_LINK_KEY_EXCHANGE_STARTED_ID__NUM_OF
+#define bcmolt_epon_link_key_exchange_stopped_id_all_properties                             BCMOLT_EPON_LINK_KEY_EXCHANGE_STOPPED_ID__NUM_OF
+#define bcmolt_epon_link_static_registration_id_all_properties                              BCMOLT_EPON_LINK_STATIC_REGISTRATION_ID__NUM_OF
+#define bcmolt_epon_link_static_registration_done_id_all_properties                         BCMOLT_EPON_LINK_STATIC_REGISTRATION_DONE_ID__NUM_OF
+#define bcmolt_epon_link_rerange_failure_id_all_properties                                  BCMOLT_EPON_LINK_RERANGE_FAILURE_ID__NUM_OF
+#define bcmolt_epon_link_inject_frame_id_all_properties                                     BCMOLT_EPON_LINK_INJECT_FRAME_ID__NUM_OF
+#define bcmolt_epon_link_frame_captured_id_all_properties                                   BCMOLT_EPON_LINK_FRAME_CAPTURED_ID__NUM_OF
+#define bcmolt_epon_link_link_deleted_id_all_properties                                     BCMOLT_EPON_LINK_LINK_DELETED_ID__NUM_OF
+#define bcmolt_epon_link_stat_cfg_id_all_properties                                         BCMOLT_EPON_LINK_STAT_CFG_ID__NUM_OF
+#define bcmolt_epon_link_stat_alarm_raised_id_all_properties                                BCMOLT_EPON_LINK_STAT_ALARM_RAISED_ID__NUM_OF
+#define bcmolt_epon_link_stat_alarm_cleared_id_all_properties                               BCMOLT_EPON_LINK_STAT_ALARM_CLEARED_ID__NUM_OF
+#define bcmolt_epon_link_auto_cfg_id_all_properties                                         BCMOLT_EPON_LINK_AUTO_CFG_ID__NUM_OF
+#define bcmolt_epon_ni_key_id_all_properties                                                BCMOLT_EPON_NI_KEY_ID__NUM_OF
+#define bcmolt_epon_ni_cfg_id_all_properties                                                BCMOLT_EPON_NI_CFG_ID__NUM_OF
+#define bcmolt_epon_ni_set_epon_ni_en_state_id_all_properties                               BCMOLT_EPON_NI_SET_EPON_NI_EN_STATE_ID__NUM_OF
+#define bcmolt_epon_ni_issue_rssi_grant_id_all_properties                                   BCMOLT_EPON_NI_ISSUE_RSSI_GRANT_ID__NUM_OF
+#define bcmolt_epon_ni_add_link_id_all_properties                                           BCMOLT_EPON_NI_ADD_LINK_ID__NUM_OF
+#define bcmolt_epon_ni_add_multicast_link_id_all_properties                                 BCMOLT_EPON_NI_ADD_MULTICAST_LINK_ID__NUM_OF
+#define bcmolt_epon_ni_add_protected_standby_link_id_all_properties                         BCMOLT_EPON_NI_ADD_PROTECTED_STANDBY_LINK_ID__NUM_OF
+#define bcmolt_epon_ni_no_reports_id_all_properties                                         BCMOLT_EPON_NI_NO_REPORTS_ID__NUM_OF
+#define bcmolt_epon_ni_llid_quarantined_id_all_properties                                   BCMOLT_EPON_NI_LLID_QUARANTINED_ID__NUM_OF
+#define bcmolt_epon_ni_state_change_completed_id_all_properties                             BCMOLT_EPON_NI_STATE_CHANGE_COMPLETED_ID__NUM_OF
+#define bcmolt_epon_ni_protection_switching_apply_rerange_delta_id_all_properties           BCMOLT_EPON_NI_PROTECTION_SWITCHING_APPLY_RERANGE_DELTA_ID__NUM_OF
+#define bcmolt_epon_ni_rerange_failure_id_all_properties                                    BCMOLT_EPON_NI_RERANGE_FAILURE_ID__NUM_OF
+#define bcmolt_epon_ni_rssi_measurement_completed_id_all_properties                         BCMOLT_EPON_NI_RSSI_MEASUREMENT_COMPLETED_ID__NUM_OF
+#define bcmolt_epon_ni_rogue_llid_scan_id_all_properties                                    BCMOLT_EPON_NI_ROGUE_LLID_SCAN_ID__NUM_OF
+#define bcmolt_epon_ni_start_onu_upgrade_id_all_properties                                  BCMOLT_EPON_NI_START_ONU_UPGRADE_ID__NUM_OF
+#define bcmolt_epon_ni_onu_upgrade_complete_id_all_properties                               BCMOLT_EPON_NI_ONU_UPGRADE_COMPLETE_ID__NUM_OF
+#define bcmolt_epon_ni_rogue_scan_complete_id_all_properties                                BCMOLT_EPON_NI_ROGUE_SCAN_COMPLETE_ID__NUM_OF
+#define bcmolt_epon_ni_mpcp_timestamp_changed_id_all_properties                             BCMOLT_EPON_NI_MPCP_TIMESTAMP_CHANGED_ID__NUM_OF
+#define bcmolt_epon_ni_auto_rogue_scan_1g_failure_id_all_properties                         BCMOLT_EPON_NI_AUTO_ROGUE_SCAN_1G_FAILURE_ID__NUM_OF
+#define bcmolt_epon_ni_auto_rogue_scan_10g_failure_id_all_properties                        BCMOLT_EPON_NI_AUTO_ROGUE_SCAN_10G_FAILURE_ID__NUM_OF
+#define bcmolt_epon_ni_auto_cfg_id_all_properties                                           BCMOLT_EPON_NI_AUTO_CFG_ID__NUM_OF
+#define bcmolt_epon_onu_10g_us_key_id_all_properties                                        BCMOLT_EPON_ONU_10G_US_KEY_ID__NUM_OF
+#define bcmolt_epon_onu_10g_us_stat_id_all_properties                                       BCMOLT_EPON_ONU_10G_US_STAT_ID__NUM_OF
+#define bcmolt_epon_onu_10g_us_cfg_id_all_properties                                        BCMOLT_EPON_ONU_10G_US_CFG_ID__NUM_OF
+#define bcmolt_epon_onu_10g_us_stat_cfg_id_all_properties                                   BCMOLT_EPON_ONU_10G_US_STAT_CFG_ID__NUM_OF
+#define bcmolt_epon_onu_10g_us_stat_alarm_raised_id_all_properties                          BCMOLT_EPON_ONU_10G_US_STAT_ALARM_RAISED_ID__NUM_OF
+#define bcmolt_epon_onu_10g_us_stat_alarm_cleared_id_all_properties                         BCMOLT_EPON_ONU_10G_US_STAT_ALARM_CLEARED_ID__NUM_OF
+#define bcmolt_epon_onu_10g_us_auto_cfg_id_all_properties                                   BCMOLT_EPON_ONU_10G_US_AUTO_CFG_ID__NUM_OF
+#define bcmolt_epon_onu_1g_us_key_id_all_properties                                         BCMOLT_EPON_ONU_1G_US_KEY_ID__NUM_OF
+#define bcmolt_epon_onu_1g_us_stat_id_all_properties                                        BCMOLT_EPON_ONU_1G_US_STAT_ID__NUM_OF
+#define bcmolt_epon_onu_1g_us_cfg_id_all_properties                                         BCMOLT_EPON_ONU_1G_US_CFG_ID__NUM_OF
+#define bcmolt_epon_onu_1g_us_stat_cfg_id_all_properties                                    BCMOLT_EPON_ONU_1G_US_STAT_CFG_ID__NUM_OF
+#define bcmolt_epon_onu_1g_us_stat_alarm_raised_id_all_properties                           BCMOLT_EPON_ONU_1G_US_STAT_ALARM_RAISED_ID__NUM_OF
+#define bcmolt_epon_onu_1g_us_stat_alarm_cleared_id_all_properties                          BCMOLT_EPON_ONU_1G_US_STAT_ALARM_CLEARED_ID__NUM_OF
+#define bcmolt_epon_onu_1g_us_auto_cfg_id_all_properties                                    BCMOLT_EPON_ONU_1G_US_AUTO_CFG_ID__NUM_OF
+#define bcmolt_epon_path_10g_ds_key_id_all_properties                                       BCMOLT_EPON_PATH_10G_DS_KEY_ID__NUM_OF
+#define bcmolt_epon_path_10g_ds_cfg_id_all_properties                                       BCMOLT_EPON_PATH_10G_DS_CFG_ID__NUM_OF
+#define bcmolt_epon_path_10g_ds_stat_id_all_properties                                      BCMOLT_EPON_PATH_10G_DS_STAT_ID__NUM_OF
+#define bcmolt_epon_path_10g_ds_stat_cfg_id_all_properties                                  BCMOLT_EPON_PATH_10G_DS_STAT_CFG_ID__NUM_OF
+#define bcmolt_epon_path_10g_ds_stat_alarm_raised_id_all_properties                         BCMOLT_EPON_PATH_10G_DS_STAT_ALARM_RAISED_ID__NUM_OF
+#define bcmolt_epon_path_10g_ds_stat_alarm_cleared_id_all_properties                        BCMOLT_EPON_PATH_10G_DS_STAT_ALARM_CLEARED_ID__NUM_OF
+#define bcmolt_epon_path_10g_ds_auto_cfg_id_all_properties                                  BCMOLT_EPON_PATH_10G_DS_AUTO_CFG_ID__NUM_OF
+#define bcmolt_epon_path_10g_us_key_id_all_properties                                       BCMOLT_EPON_PATH_10G_US_KEY_ID__NUM_OF
+#define bcmolt_epon_path_10g_us_cfg_id_all_properties                                       BCMOLT_EPON_PATH_10G_US_CFG_ID__NUM_OF
+#define bcmolt_epon_path_10g_us_stat_id_all_properties                                      BCMOLT_EPON_PATH_10G_US_STAT_ID__NUM_OF
+#define bcmolt_epon_path_10g_us_stat_cfg_id_all_properties                                  BCMOLT_EPON_PATH_10G_US_STAT_CFG_ID__NUM_OF
+#define bcmolt_epon_path_10g_us_stat_alarm_raised_id_all_properties                         BCMOLT_EPON_PATH_10G_US_STAT_ALARM_RAISED_ID__NUM_OF
+#define bcmolt_epon_path_10g_us_stat_alarm_cleared_id_all_properties                        BCMOLT_EPON_PATH_10G_US_STAT_ALARM_CLEARED_ID__NUM_OF
+#define bcmolt_epon_path_10g_us_auto_cfg_id_all_properties                                  BCMOLT_EPON_PATH_10G_US_AUTO_CFG_ID__NUM_OF
+#define bcmolt_epon_path_1g_ds_key_id_all_properties                                        BCMOLT_EPON_PATH_1G_DS_KEY_ID__NUM_OF
+#define bcmolt_epon_path_1g_ds_cfg_id_all_properties                                        BCMOLT_EPON_PATH_1G_DS_CFG_ID__NUM_OF
+#define bcmolt_epon_path_1g_ds_stat_id_all_properties                                       BCMOLT_EPON_PATH_1G_DS_STAT_ID__NUM_OF
+#define bcmolt_epon_path_1g_ds_stat_cfg_id_all_properties                                   BCMOLT_EPON_PATH_1G_DS_STAT_CFG_ID__NUM_OF
+#define bcmolt_epon_path_1g_ds_stat_alarm_raised_id_all_properties                          BCMOLT_EPON_PATH_1G_DS_STAT_ALARM_RAISED_ID__NUM_OF
+#define bcmolt_epon_path_1g_ds_stat_alarm_cleared_id_all_properties                         BCMOLT_EPON_PATH_1G_DS_STAT_ALARM_CLEARED_ID__NUM_OF
+#define bcmolt_epon_path_1g_ds_auto_cfg_id_all_properties                                   BCMOLT_EPON_PATH_1G_DS_AUTO_CFG_ID__NUM_OF
+#define bcmolt_epon_path_1g_us_key_id_all_properties                                        BCMOLT_EPON_PATH_1G_US_KEY_ID__NUM_OF
+#define bcmolt_epon_path_1g_us_cfg_id_all_properties                                        BCMOLT_EPON_PATH_1G_US_CFG_ID__NUM_OF
+#define bcmolt_epon_path_1g_us_stat_id_all_properties                                       BCMOLT_EPON_PATH_1G_US_STAT_ID__NUM_OF
+#define bcmolt_epon_path_1g_us_stat_cfg_id_all_properties                                   BCMOLT_EPON_PATH_1G_US_STAT_CFG_ID__NUM_OF
+#define bcmolt_epon_path_1g_us_stat_alarm_raised_id_all_properties                          BCMOLT_EPON_PATH_1G_US_STAT_ALARM_RAISED_ID__NUM_OF
+#define bcmolt_epon_path_1g_us_stat_alarm_cleared_id_all_properties                         BCMOLT_EPON_PATH_1G_US_STAT_ALARM_CLEARED_ID__NUM_OF
+#define bcmolt_epon_path_1g_us_auto_cfg_id_all_properties                                   BCMOLT_EPON_PATH_1G_US_AUTO_CFG_ID__NUM_OF
+#define bcmolt_epon_rp_key_id_all_properties                                                BCMOLT_EPON_RP_KEY_ID__NUM_OF
+#define bcmolt_epon_rp_cfg_id_all_properties                                                BCMOLT_EPON_RP_CFG_ID__NUM_OF
+#define bcmolt_gpio_key_id_all_properties                                                   BCMOLT_GPIO_KEY_ID__NUM_OF
+#define bcmolt_gpio_cfg_id_all_properties                                                   BCMOLT_GPIO_CFG_ID__NUM_OF
+#define bcmolt_gpon_alloc_key_id_all_properties                                             BCMOLT_GPON_ALLOC_KEY_ID__NUM_OF
+#define bcmolt_gpon_alloc_cfg_id_all_properties                                             BCMOLT_GPON_ALLOC_CFG_ID__NUM_OF
+#define bcmolt_gpon_alloc_stat_id_all_properties                                            BCMOLT_GPON_ALLOC_STAT_ID__NUM_OF
+#define bcmolt_gpon_alloc_configuration_completed_id_all_properties                         BCMOLT_GPON_ALLOC_CONFIGURATION_COMPLETED_ID__NUM_OF
+#define bcmolt_gpon_alloc_set_state_id_all_properties                                       BCMOLT_GPON_ALLOC_SET_STATE_ID__NUM_OF
+#define bcmolt_gpon_alloc_get_stats_id_all_properties                                       BCMOLT_GPON_ALLOC_GET_STATS_ID__NUM_OF
+#define bcmolt_gpon_alloc_get_alloc_stats_completed_id_all_properties                       BCMOLT_GPON_ALLOC_GET_ALLOC_STATS_COMPLETED_ID__NUM_OF
+#define bcmolt_gpon_alloc_stat_cfg_id_all_properties                                        BCMOLT_GPON_ALLOC_STAT_CFG_ID__NUM_OF
+#define bcmolt_gpon_alloc_stat_alarm_raised_id_all_properties                               BCMOLT_GPON_ALLOC_STAT_ALARM_RAISED_ID__NUM_OF
+#define bcmolt_gpon_alloc_stat_alarm_cleared_id_all_properties                              BCMOLT_GPON_ALLOC_STAT_ALARM_CLEARED_ID__NUM_OF
+#define bcmolt_gpon_alloc_auto_cfg_id_all_properties                                        BCMOLT_GPON_ALLOC_AUTO_CFG_ID__NUM_OF
+#define bcmolt_gpon_gem_port_key_id_all_properties                                          BCMOLT_GPON_GEM_PORT_KEY_ID__NUM_OF
+#define bcmolt_gpon_gem_port_cfg_id_all_properties                                          BCMOLT_GPON_GEM_PORT_CFG_ID__NUM_OF
+#define bcmolt_gpon_gem_port_stat_id_all_properties                                         BCMOLT_GPON_GEM_PORT_STAT_ID__NUM_OF
+#define bcmolt_gpon_gem_port_configuration_completed_id_all_properties                      BCMOLT_GPON_GEM_PORT_CONFIGURATION_COMPLETED_ID__NUM_OF
+#define bcmolt_gpon_gem_port_set_state_id_all_properties                                    BCMOLT_GPON_GEM_PORT_SET_STATE_ID__NUM_OF
+#define bcmolt_gpon_gem_port_stat_cfg_id_all_properties                                     BCMOLT_GPON_GEM_PORT_STAT_CFG_ID__NUM_OF
+#define bcmolt_gpon_gem_port_stat_alarm_raised_id_all_properties                            BCMOLT_GPON_GEM_PORT_STAT_ALARM_RAISED_ID__NUM_OF
+#define bcmolt_gpon_gem_port_stat_alarm_cleared_id_all_properties                           BCMOLT_GPON_GEM_PORT_STAT_ALARM_CLEARED_ID__NUM_OF
+#define bcmolt_gpon_gem_port_auto_cfg_id_all_properties                                     BCMOLT_GPON_GEM_PORT_AUTO_CFG_ID__NUM_OF
+#define bcmolt_gpon_iwf_key_id_all_properties                                               BCMOLT_GPON_IWF_KEY_ID__NUM_OF
+#define bcmolt_gpon_iwf_cfg_id_all_properties                                               BCMOLT_GPON_IWF_CFG_ID__NUM_OF
+#define bcmolt_gpon_iwf_stat_id_all_properties                                              BCMOLT_GPON_IWF_STAT_ID__NUM_OF
+#define bcmolt_gpon_iwf_flush_mac_table_id_all_properties                                   BCMOLT_GPON_IWF_FLUSH_MAC_TABLE_ID__NUM_OF
+#define bcmolt_gpon_iwf_scan_mac_table_id_all_properties                                    BCMOLT_GPON_IWF_SCAN_MAC_TABLE_ID__NUM_OF
+#define bcmolt_gpon_iwf_flush_mac_table_completed_id_all_properties                         BCMOLT_GPON_IWF_FLUSH_MAC_TABLE_COMPLETED_ID__NUM_OF
+#define bcmolt_gpon_iwf_scan_mac_table_completed_id_all_properties                          BCMOLT_GPON_IWF_SCAN_MAC_TABLE_COMPLETED_ID__NUM_OF
+#define bcmolt_gpon_iwf_stat_cfg_id_all_properties                                          BCMOLT_GPON_IWF_STAT_CFG_ID__NUM_OF
+#define bcmolt_gpon_iwf_stat_alarm_raised_id_all_properties                                 BCMOLT_GPON_IWF_STAT_ALARM_RAISED_ID__NUM_OF
+#define bcmolt_gpon_iwf_stat_alarm_cleared_id_all_properties                                BCMOLT_GPON_IWF_STAT_ALARM_CLEARED_ID__NUM_OF
+#define bcmolt_gpon_iwf_auto_cfg_id_all_properties                                          BCMOLT_GPON_IWF_AUTO_CFG_ID__NUM_OF
+#define bcmolt_gpon_iwf_ds_egress_flow_key_id_all_properties                                BCMOLT_GPON_IWF_DS_EGRESS_FLOW_KEY_ID__NUM_OF
+#define bcmolt_gpon_iwf_ds_egress_flow_cfg_id_all_properties                                BCMOLT_GPON_IWF_DS_EGRESS_FLOW_CFG_ID__NUM_OF
+#define bcmolt_gpon_iwf_ds_ingress_flow_key_id_all_properties                               BCMOLT_GPON_IWF_DS_INGRESS_FLOW_KEY_ID__NUM_OF
+#define bcmolt_gpon_iwf_ds_ingress_flow_cfg_id_all_properties                               BCMOLT_GPON_IWF_DS_INGRESS_FLOW_CFG_ID__NUM_OF
+#define bcmolt_gpon_iwf_mac_table_key_id_all_properties                                     BCMOLT_GPON_IWF_MAC_TABLE_KEY_ID__NUM_OF
+#define bcmolt_gpon_iwf_mac_table_cfg_id_all_properties                                     BCMOLT_GPON_IWF_MAC_TABLE_CFG_ID__NUM_OF
+#define bcmolt_gpon_iwf_mac_table_new_mac_id_all_properties                                 BCMOLT_GPON_IWF_MAC_TABLE_NEW_MAC_ID__NUM_OF
+#define bcmolt_gpon_iwf_mac_table_mac_aged_id_all_properties                                BCMOLT_GPON_IWF_MAC_TABLE_MAC_AGED_ID__NUM_OF
+#define bcmolt_gpon_iwf_mac_table_mac_move_id_all_properties                                BCMOLT_GPON_IWF_MAC_TABLE_MAC_MOVE_ID__NUM_OF
+#define bcmolt_gpon_iwf_mac_table_mac_dropped_id_all_properties                             BCMOLT_GPON_IWF_MAC_TABLE_MAC_DROPPED_ID__NUM_OF
+#define bcmolt_gpon_iwf_mac_table_auto_cfg_id_all_properties                                BCMOLT_GPON_IWF_MAC_TABLE_AUTO_CFG_ID__NUM_OF
+#define bcmolt_gpon_iwf_us_flow_key_id_all_properties                                       BCMOLT_GPON_IWF_US_FLOW_KEY_ID__NUM_OF
+#define bcmolt_gpon_iwf_us_flow_cfg_id_all_properties                                       BCMOLT_GPON_IWF_US_FLOW_CFG_ID__NUM_OF
+#define bcmolt_gpon_ni_key_id_all_properties                                                BCMOLT_GPON_NI_KEY_ID__NUM_OF
+#define bcmolt_gpon_ni_cfg_id_all_properties                                                BCMOLT_GPON_NI_CFG_ID__NUM_OF
+#define bcmolt_gpon_ni_stat_id_all_properties                                               BCMOLT_GPON_NI_STAT_ID__NUM_OF
+#define bcmolt_gpon_ni_set_pon_state_id_all_properties                                      BCMOLT_GPON_NI_SET_PON_STATE_ID__NUM_OF
+#define bcmolt_gpon_ni_reset_id_all_properties                                              BCMOLT_GPON_NI_RESET_ID__NUM_OF
+#define bcmolt_gpon_ni_disable_serial_number_id_all_properties                              BCMOLT_GPON_NI_DISABLE_SERIAL_NUMBER_ID__NUM_OF
+#define bcmolt_gpon_ni_single_request_standby_pon_monitoring_id_all_properties              BCMOLT_GPON_NI_SINGLE_REQUEST_STANDBY_PON_MONITORING_ID__NUM_OF
+#define bcmolt_gpon_ni_set_onu_state_id_all_properties                                      BCMOLT_GPON_NI_SET_ONU_STATE_ID__NUM_OF
+#define bcmolt_gpon_ni_state_change_completed_id_all_properties                             BCMOLT_GPON_NI_STATE_CHANGE_COMPLETED_ID__NUM_OF
+#define bcmolt_gpon_ni_los_id_all_properties                                                BCMOLT_GPON_NI_LOS_ID__NUM_OF
+#define bcmolt_gpon_ni_serial_number_acquisition_cycle_start_id_all_properties              BCMOLT_GPON_NI_SERIAL_NUMBER_ACQUISITION_CYCLE_START_ID__NUM_OF
+#define bcmolt_gpon_ni_protection_switching_traffic_resume_id_all_properties                BCMOLT_GPON_NI_PROTECTION_SWITCHING_TRAFFIC_RESUME_ID__NUM_OF
+#define bcmolt_gpon_ni_protection_switching_onus_ranged_id_all_properties                   BCMOLT_GPON_NI_PROTECTION_SWITCHING_ONUS_RANGED_ID__NUM_OF
+#define bcmolt_gpon_ni_protection_switching_switchover_completed_id_all_properties          BCMOLT_GPON_NI_PROTECTION_SWITCHING_SWITCHOVER_COMPLETED_ID__NUM_OF
+#define bcmolt_gpon_ni_standby_pon_monitoring_cycle_completed_id_all_properties             BCMOLT_GPON_NI_STANDBY_PON_MONITORING_CYCLE_COMPLETED_ID__NUM_OF
+#define bcmolt_gpon_ni_onu_discovered_id_all_properties                                     BCMOLT_GPON_NI_ONU_DISCOVERED_ID__NUM_OF
+#define bcmolt_gpon_ni_cpu_packets_failure_id_all_properties                                BCMOLT_GPON_NI_CPU_PACKETS_FAILURE_ID__NUM_OF
+#define bcmolt_gpon_ni_cpu_packets_id_all_properties                                        BCMOLT_GPON_NI_CPU_PACKETS_ID__NUM_OF
+#define bcmolt_gpon_ni_broadcast_ploam_packet_id_all_properties                             BCMOLT_GPON_NI_BROADCAST_PLOAM_PACKET_ID__NUM_OF
+#define bcmolt_gpon_ni_rogue_detection_window_id_all_properties                             BCMOLT_GPON_NI_ROGUE_DETECTION_WINDOW_ID__NUM_OF
+#define bcmolt_gpon_ni_rogue_detection_completed_id_all_properties                          BCMOLT_GPON_NI_ROGUE_DETECTION_COMPLETED_ID__NUM_OF
+#define bcmolt_gpon_ni_deactivate_all_onus_completed_id_all_properties                      BCMOLT_GPON_NI_DEACTIVATE_ALL_ONUS_COMPLETED_ID__NUM_OF
+#define bcmolt_gpon_ni_disable_all_onus_completed_id_all_properties                         BCMOLT_GPON_NI_DISABLE_ALL_ONUS_COMPLETED_ID__NUM_OF
+#define bcmolt_gpon_ni_activate_all_onus_completed_id_all_properties                        BCMOLT_GPON_NI_ACTIVATE_ALL_ONUS_COMPLETED_ID__NUM_OF
+#define bcmolt_gpon_ni_enable_all_onus_completed_id_all_properties                          BCMOLT_GPON_NI_ENABLE_ALL_ONUS_COMPLETED_ID__NUM_OF
+#define bcmolt_gpon_ni_tod_request_id_all_properties                                        BCMOLT_GPON_NI_TOD_REQUEST_ID__NUM_OF
+#define bcmolt_gpon_ni_tod_request_completed_id_all_properties                              BCMOLT_GPON_NI_TOD_REQUEST_COMPLETED_ID__NUM_OF
+#define bcmolt_gpon_ni_protection_switching_type_c_set_multiple_onu_state_id_all_properties BCMOLT_GPON_NI_PROTECTION_SWITCHING_TYPE_C_SET_MULTIPLE_ONU_STATE_ID__NUM_OF
+#define bcmolt_gpon_ni_start_onu_upgrade_id_all_properties                                  BCMOLT_GPON_NI_START_ONU_UPGRADE_ID__NUM_OF
+#define bcmolt_gpon_ni_onu_upgrade_complete_id_all_properties                               BCMOLT_GPON_NI_ONU_UPGRADE_COMPLETE_ID__NUM_OF
+#define bcmolt_gpon_ni_rogue_onu_special_map_cycle_start_id_all_properties                  BCMOLT_GPON_NI_ROGUE_ONU_SPECIAL_MAP_CYCLE_START_ID__NUM_OF
+#define bcmolt_gpon_ni_stat_cfg_id_all_properties                                           BCMOLT_GPON_NI_STAT_CFG_ID__NUM_OF
+#define bcmolt_gpon_ni_stat_alarm_raised_id_all_properties                                  BCMOLT_GPON_NI_STAT_ALARM_RAISED_ID__NUM_OF
+#define bcmolt_gpon_ni_stat_alarm_cleared_id_all_properties                                 BCMOLT_GPON_NI_STAT_ALARM_CLEARED_ID__NUM_OF
+#define bcmolt_gpon_ni_auto_cfg_id_all_properties                                           BCMOLT_GPON_NI_AUTO_CFG_ID__NUM_OF
+#define bcmolt_gpon_onu_key_id_all_properties                                               BCMOLT_GPON_ONU_KEY_ID__NUM_OF
+#define bcmolt_gpon_onu_cfg_id_all_properties                                               BCMOLT_GPON_ONU_CFG_ID__NUM_OF
+#define bcmolt_gpon_onu_stat_id_all_properties                                              BCMOLT_GPON_ONU_STAT_ID__NUM_OF
+#define bcmolt_gpon_onu_set_onu_state_id_all_properties                                     BCMOLT_GPON_ONU_SET_ONU_STATE_ID__NUM_OF
+#define bcmolt_gpon_onu_rssi_measurement_id_all_properties                                  BCMOLT_GPON_ONU_RSSI_MEASUREMENT_ID__NUM_OF
+#define bcmolt_gpon_onu_change_power_level_id_all_properties                                BCMOLT_GPON_ONU_CHANGE_POWER_LEVEL_ID__NUM_OF
+#define bcmolt_gpon_onu_onu_alarm_id_all_properties                                         BCMOLT_GPON_ONU_ONU_ALARM_ID__NUM_OF
+#define bcmolt_gpon_onu_dowi_id_all_properties                                              BCMOLT_GPON_ONU_DOWI_ID__NUM_OF
+#define bcmolt_gpon_onu_sfi_id_all_properties                                               BCMOLT_GPON_ONU_SFI_ID__NUM_OF
+#define bcmolt_gpon_onu_sdi_id_all_properties                                               BCMOLT_GPON_ONU_SDI_ID__NUM_OF
+#define bcmolt_gpon_onu_dfi_id_all_properties                                               BCMOLT_GPON_ONU_DFI_ID__NUM_OF
+#define bcmolt_gpon_onu_sufi_id_all_properties                                              BCMOLT_GPON_ONU_SUFI_ID__NUM_OF
+#define bcmolt_gpon_onu_loai_id_all_properties                                              BCMOLT_GPON_ONU_LOAI_ID__NUM_OF
+#define bcmolt_gpon_onu_dgi_id_all_properties                                               BCMOLT_GPON_ONU_DGI_ID__NUM_OF
+#define bcmolt_gpon_onu_pee_id_all_properties                                               BCMOLT_GPON_ONU_PEE_ID__NUM_OF
+#define bcmolt_gpon_onu_pst_id_all_properties                                               BCMOLT_GPON_ONU_PST_ID__NUM_OF
+#define bcmolt_gpon_onu_tiwi_id_all_properties                                              BCMOLT_GPON_ONU_TIWI_ID__NUM_OF
+#define bcmolt_gpon_onu_loki_id_all_properties                                              BCMOLT_GPON_ONU_LOKI_ID__NUM_OF
+#define bcmolt_gpon_onu_memi_id_all_properties                                              BCMOLT_GPON_ONU_MEMI_ID__NUM_OF
+#define bcmolt_gpon_onu_omci_port_id_configuration_completed_id_all_properties              BCMOLT_GPON_ONU_OMCI_PORT_ID_CONFIGURATION_COMPLETED_ID__NUM_OF
+#define bcmolt_gpon_onu_ber_interval_configuration_completed_id_all_properties              BCMOLT_GPON_ONU_BER_INTERVAL_CONFIGURATION_COMPLETED_ID__NUM_OF
+#define bcmolt_gpon_onu_err_id_all_properties                                               BCMOLT_GPON_ONU_ERR_ID__NUM_OF
+#define bcmolt_gpon_onu_rei_id_all_properties                                               BCMOLT_GPON_ONU_REI_ID__NUM_OF
+#define bcmolt_gpon_onu_ranging_completed_id_all_properties                                 BCMOLT_GPON_ONU_RANGING_COMPLETED_ID__NUM_OF
+#define bcmolt_gpon_onu_password_authentication_completed_id_all_properties                 BCMOLT_GPON_ONU_PASSWORD_AUTHENTICATION_COMPLETED_ID__NUM_OF
+#define bcmolt_gpon_onu_onu_activation_completed_id_all_properties                          BCMOLT_GPON_ONU_ONU_ACTIVATION_COMPLETED_ID__NUM_OF
+#define bcmolt_gpon_onu_onu_deactivation_completed_id_all_properties                        BCMOLT_GPON_ONU_ONU_DEACTIVATION_COMPLETED_ID__NUM_OF
+#define bcmolt_gpon_onu_onu_enable_completed_id_all_properties                              BCMOLT_GPON_ONU_ONU_ENABLE_COMPLETED_ID__NUM_OF
+#define bcmolt_gpon_onu_onu_disable_completed_id_all_properties                             BCMOLT_GPON_ONU_ONU_DISABLE_COMPLETED_ID__NUM_OF
+#define bcmolt_gpon_onu_invalid_dbru_report_id_all_properties                               BCMOLT_GPON_ONU_INVALID_DBRU_REPORT_ID__NUM_OF
+#define bcmolt_gpon_onu_key_exchange_completed_id_all_properties                            BCMOLT_GPON_ONU_KEY_EXCHANGE_COMPLETED_ID__NUM_OF
+#define bcmolt_gpon_onu_key_exchange_key_request_timeout_id_all_properties                  BCMOLT_GPON_ONU_KEY_EXCHANGE_KEY_REQUEST_TIMEOUT_ID__NUM_OF
+#define bcmolt_gpon_onu_key_exchange_cycle_skipped_id_all_properties                        BCMOLT_GPON_ONU_KEY_EXCHANGE_CYCLE_SKIPPED_ID__NUM_OF
+#define bcmolt_gpon_onu_key_exchange_key_mismatch_id_all_properties                         BCMOLT_GPON_ONU_KEY_EXCHANGE_KEY_MISMATCH_ID__NUM_OF
+#define bcmolt_gpon_onu_key_exchange_unconsecutive_index_id_all_properties                  BCMOLT_GPON_ONU_KEY_EXCHANGE_UNCONSECUTIVE_INDEX_ID__NUM_OF
+#define bcmolt_gpon_onu_rssi_measurement_completed_id_all_properties                        BCMOLT_GPON_ONU_RSSI_MEASUREMENT_COMPLETED_ID__NUM_OF
+#define bcmolt_gpon_onu_key_exchange_decrypt_required_id_all_properties                     BCMOLT_GPON_ONU_KEY_EXCHANGE_DECRYPT_REQUIRED_ID__NUM_OF
+#define bcmolt_gpon_onu_optical_reflection_id_all_properties                                BCMOLT_GPON_ONU_OPTICAL_REFLECTION_ID__NUM_OF
+#define bcmolt_gpon_onu_cpu_packets_id_all_properties                                       BCMOLT_GPON_ONU_CPU_PACKETS_ID__NUM_OF
+#define bcmolt_gpon_onu_ploam_packet_id_all_properties                                      BCMOLT_GPON_ONU_PLOAM_PACKET_ID__NUM_OF
+#define bcmolt_gpon_onu_cpu_packet_id_all_properties                                        BCMOLT_GPON_ONU_CPU_PACKET_ID__NUM_OF
+#define bcmolt_gpon_onu_omci_packet_id_all_properties                                       BCMOLT_GPON_ONU_OMCI_PACKET_ID__NUM_OF
+#define bcmolt_gpon_onu_onu_activation_standby_completed_id_all_properties                  BCMOLT_GPON_ONU_ONU_ACTIVATION_STANDBY_COMPLETED_ID__NUM_OF
+#define bcmolt_gpon_onu_power_management_state_change_id_all_properties                     BCMOLT_GPON_ONU_POWER_MANAGEMENT_STATE_CHANGE_ID__NUM_OF
+#define bcmolt_gpon_onu_possible_drift_id_all_properties                                    BCMOLT_GPON_ONU_POSSIBLE_DRIFT_ID__NUM_OF
+#define bcmolt_gpon_onu_stat_cfg_id_all_properties                                          BCMOLT_GPON_ONU_STAT_CFG_ID__NUM_OF
+#define bcmolt_gpon_onu_stat_alarm_raised_id_all_properties                                 BCMOLT_GPON_ONU_STAT_ALARM_RAISED_ID__NUM_OF
+#define bcmolt_gpon_onu_stat_alarm_cleared_id_all_properties                                BCMOLT_GPON_ONU_STAT_ALARM_CLEARED_ID__NUM_OF
+#define bcmolt_gpon_onu_auto_cfg_id_all_properties                                          BCMOLT_GPON_ONU_AUTO_CFG_ID__NUM_OF
+#define bcmolt_gpon_trx_key_id_all_properties                                               BCMOLT_GPON_TRX_KEY_ID__NUM_OF
+#define bcmolt_gpon_trx_cfg_id_all_properties                                               BCMOLT_GPON_TRX_CFG_ID__NUM_OF
+#define bcmolt_log_entry_key_id_all_properties                                              BCMOLT_LOG_ENTRY_KEY_ID__NUM_OF
+#define bcmolt_log_entry_cfg_id_all_properties                                              BCMOLT_LOG_ENTRY_CFG_ID__NUM_OF
+#define bcmolt_log_entry_stat_id_all_properties                                             BCMOLT_LOG_ENTRY_STAT_ID__NUM_OF
+#define bcmolt_log_entry_stat_cfg_id_all_properties                                         BCMOLT_LOG_ENTRY_STAT_CFG_ID__NUM_OF
+#define bcmolt_log_entry_stat_alarm_raised_id_all_properties                                BCMOLT_LOG_ENTRY_STAT_ALARM_RAISED_ID__NUM_OF
+#define bcmolt_log_entry_stat_alarm_cleared_id_all_properties                               BCMOLT_LOG_ENTRY_STAT_ALARM_CLEARED_ID__NUM_OF
+#define bcmolt_log_entry_auto_cfg_id_all_properties                                         BCMOLT_LOG_ENTRY_AUTO_CFG_ID__NUM_OF
+#define bcmolt_logger_key_id_all_properties                                                 BCMOLT_LOGGER_KEY_ID__NUM_OF
+#define bcmolt_logger_cfg_id_all_properties                                                 BCMOLT_LOGGER_CFG_ID__NUM_OF
+#define bcmolt_logger_stat_id_all_properties                                                BCMOLT_LOGGER_STAT_ID__NUM_OF
+#define bcmolt_logger_clear_log_id_all_properties                                           BCMOLT_LOGGER_CLEAR_LOG_ID__NUM_OF
+#define bcmolt_logger_stat_cfg_id_all_properties                                            BCMOLT_LOGGER_STAT_CFG_ID__NUM_OF
+#define bcmolt_logger_stat_alarm_raised_id_all_properties                                   BCMOLT_LOGGER_STAT_ALARM_RAISED_ID__NUM_OF
+#define bcmolt_logger_stat_alarm_cleared_id_all_properties                                  BCMOLT_LOGGER_STAT_ALARM_CLEARED_ID__NUM_OF
+#define bcmolt_logger_auto_cfg_id_all_properties                                            BCMOLT_LOGGER_AUTO_CFG_ID__NUM_OF
+#define bcmolt_nni_key_id_all_properties                                                    BCMOLT_NNI_KEY_ID__NUM_OF
+#define bcmolt_nni_cfg_id_all_properties                                                    BCMOLT_NNI_CFG_ID__NUM_OF
+#define bcmolt_nni_stat_id_all_properties                                                   BCMOLT_NNI_STAT_ID__NUM_OF
+#define bcmolt_nni_status_changed_id_all_properties                                         BCMOLT_NNI_STATUS_CHANGED_ID__NUM_OF
+#define bcmolt_nni_stat_cfg_id_all_properties                                               BCMOLT_NNI_STAT_CFG_ID__NUM_OF
+#define bcmolt_nni_stat_alarm_raised_id_all_properties                                      BCMOLT_NNI_STAT_ALARM_RAISED_ID__NUM_OF
+#define bcmolt_nni_stat_alarm_cleared_id_all_properties                                     BCMOLT_NNI_STAT_ALARM_CLEARED_ID__NUM_OF
+#define bcmolt_nni_auto_cfg_id_all_properties                                               BCMOLT_NNI_AUTO_CFG_ID__NUM_OF
+#define bcmolt_nni_serdes_key_id_all_properties                                             BCMOLT_NNI_SERDES_KEY_ID__NUM_OF
+#define bcmolt_nni_serdes_cfg_id_all_properties                                             BCMOLT_NNI_SERDES_CFG_ID__NUM_OF
+#define bcmolt_software_error_key_id_all_properties                                         BCMOLT_SOFTWARE_ERROR_KEY_ID__NUM_OF
+#define bcmolt_software_error_cfg_id_all_properties                                         BCMOLT_SOFTWARE_ERROR_CFG_ID__NUM_OF
+#define bcmolt_trx_calibration_key_id_all_properties                                        BCMOLT_TRX_CALIBRATION_KEY_ID__NUM_OF
+#define bcmolt_trx_calibration_start_capture_window_id_all_properties                       BCMOLT_TRX_CALIBRATION_START_CAPTURE_WINDOW_ID__NUM_OF
+#define bcmolt_trx_calibration_capture_window_and_statistic_completed_id_all_properties     BCMOLT_TRX_CALIBRATION_CAPTURE_WINDOW_AND_STATISTIC_COMPLETED_ID__NUM_OF
+#define bcmolt_trx_calibration_stop_capture_window_id_all_properties                        BCMOLT_TRX_CALIBRATION_STOP_CAPTURE_WINDOW_ID__NUM_OF
+#define bcmolt_trx_calibration_auto_cfg_id_all_properties                                   BCMOLT_TRX_CALIBRATION_AUTO_CFG_ID__NUM_OF
+#define bcmolt_xgpon_alloc_key_id_all_properties                                            BCMOLT_XGPON_ALLOC_KEY_ID__NUM_OF
+#define bcmolt_xgpon_alloc_cfg_id_all_properties                                            BCMOLT_XGPON_ALLOC_CFG_ID__NUM_OF
+#define bcmolt_xgpon_alloc_configuration_completed_id_all_properties                        BCMOLT_XGPON_ALLOC_CONFIGURATION_COMPLETED_ID__NUM_OF
+#define bcmolt_xgpon_alloc_get_stats_id_all_properties                                      BCMOLT_XGPON_ALLOC_GET_STATS_ID__NUM_OF
+#define bcmolt_xgpon_alloc_get_alloc_stats_completed_id_all_properties                      BCMOLT_XGPON_ALLOC_GET_ALLOC_STATS_COMPLETED_ID__NUM_OF
+#define bcmolt_xgpon_alloc_set_state_id_all_properties                                      BCMOLT_XGPON_ALLOC_SET_STATE_ID__NUM_OF
+#define bcmolt_xgpon_alloc_stat_id_all_properties                                           BCMOLT_XGPON_ALLOC_STAT_ID__NUM_OF
+#define bcmolt_xgpon_alloc_stat_cfg_id_all_properties                                       BCMOLT_XGPON_ALLOC_STAT_CFG_ID__NUM_OF
+#define bcmolt_xgpon_alloc_stat_alarm_raised_id_all_properties                              BCMOLT_XGPON_ALLOC_STAT_ALARM_RAISED_ID__NUM_OF
+#define bcmolt_xgpon_alloc_stat_alarm_cleared_id_all_properties                             BCMOLT_XGPON_ALLOC_STAT_ALARM_CLEARED_ID__NUM_OF
+#define bcmolt_xgpon_alloc_auto_cfg_id_all_properties                                       BCMOLT_XGPON_ALLOC_AUTO_CFG_ID__NUM_OF
+#define bcmolt_xgpon_gem_port_key_id_all_properties                                         BCMOLT_XGPON_GEM_PORT_KEY_ID__NUM_OF
+#define bcmolt_xgpon_gem_port_cfg_id_all_properties                                         BCMOLT_XGPON_GEM_PORT_CFG_ID__NUM_OF
+#define bcmolt_xgpon_gem_port_stat_id_all_properties                                        BCMOLT_XGPON_GEM_PORT_STAT_ID__NUM_OF
+#define bcmolt_xgpon_gem_port_stat_cfg_id_all_properties                                    BCMOLT_XGPON_GEM_PORT_STAT_CFG_ID__NUM_OF
+#define bcmolt_xgpon_gem_port_stat_alarm_raised_id_all_properties                           BCMOLT_XGPON_GEM_PORT_STAT_ALARM_RAISED_ID__NUM_OF
+#define bcmolt_xgpon_gem_port_stat_alarm_cleared_id_all_properties                          BCMOLT_XGPON_GEM_PORT_STAT_ALARM_CLEARED_ID__NUM_OF
+#define bcmolt_xgpon_gem_port_auto_cfg_id_all_properties                                    BCMOLT_XGPON_GEM_PORT_AUTO_CFG_ID__NUM_OF
+#define bcmolt_xgpon_iwf_key_id_all_properties                                              BCMOLT_XGPON_IWF_KEY_ID__NUM_OF
+#define bcmolt_xgpon_iwf_cfg_id_all_properties                                              BCMOLT_XGPON_IWF_CFG_ID__NUM_OF
+#define bcmolt_xgpon_ni_key_id_all_properties                                               BCMOLT_XGPON_NI_KEY_ID__NUM_OF
+#define bcmolt_xgpon_ni_cfg_id_all_properties                                               BCMOLT_XGPON_NI_CFG_ID__NUM_OF
+#define bcmolt_xgpon_ni_stat_id_all_properties                                              BCMOLT_XGPON_NI_STAT_ID__NUM_OF
+#define bcmolt_xgpon_ni_set_pon_state_id_all_properties                                     BCMOLT_XGPON_NI_SET_PON_STATE_ID__NUM_OF
+#define bcmolt_xgpon_ni_reset_id_all_properties                                             BCMOLT_XGPON_NI_RESET_ID__NUM_OF
+#define bcmolt_xgpon_ni_disable_serial_number_id_all_properties                             BCMOLT_XGPON_NI_DISABLE_SERIAL_NUMBER_ID__NUM_OF
+#define bcmolt_xgpon_ni_single_request_standby_pon_monitoring_id_all_properties             BCMOLT_XGPON_NI_SINGLE_REQUEST_STANDBY_PON_MONITORING_ID__NUM_OF
+#define bcmolt_xgpon_ni_set_onu_state_id_all_properties                                     BCMOLT_XGPON_NI_SET_ONU_STATE_ID__NUM_OF
+#define bcmolt_xgpon_ni_run_special_bw_map_id_all_properties                                BCMOLT_XGPON_NI_RUN_SPECIAL_BW_MAP_ID__NUM_OF
+#define bcmolt_xgpon_ni_rogue_detection_window_id_all_properties                            BCMOLT_XGPON_NI_ROGUE_DETECTION_WINDOW_ID__NUM_OF
+#define bcmolt_xgpon_ni_state_change_completed_id_all_properties                            BCMOLT_XGPON_NI_STATE_CHANGE_COMPLETED_ID__NUM_OF
+#define bcmolt_xgpon_ni_los_id_all_properties                                               BCMOLT_XGPON_NI_LOS_ID__NUM_OF
+#define bcmolt_xgpon_ni_serial_number_acquisition_cycle_start_id_all_properties             BCMOLT_XGPON_NI_SERIAL_NUMBER_ACQUISITION_CYCLE_START_ID__NUM_OF
+#define bcmolt_xgpon_ni_protection_switching_traffic_resume_id_all_properties               BCMOLT_XGPON_NI_PROTECTION_SWITCHING_TRAFFIC_RESUME_ID__NUM_OF
+#define bcmolt_xgpon_ni_protection_switching_onus_ranged_id_all_properties                  BCMOLT_XGPON_NI_PROTECTION_SWITCHING_ONUS_RANGED_ID__NUM_OF
+#define bcmolt_xgpon_ni_protection_switching_switchover_completed_id_all_properties         BCMOLT_XGPON_NI_PROTECTION_SWITCHING_SWITCHOVER_COMPLETED_ID__NUM_OF
+#define bcmolt_xgpon_ni_standby_pon_monitoring_cycle_completed_id_all_properties            BCMOLT_XGPON_NI_STANDBY_PON_MONITORING_CYCLE_COMPLETED_ID__NUM_OF
+#define bcmolt_xgpon_ni_onu_discovered_id_all_properties                                    BCMOLT_XGPON_NI_ONU_DISCOVERED_ID__NUM_OF
+#define bcmolt_xgpon_ni_cpu_packets_failure_id_all_properties                               BCMOLT_XGPON_NI_CPU_PACKETS_FAILURE_ID__NUM_OF
+#define bcmolt_xgpon_ni_cpu_packets_id_all_properties                                       BCMOLT_XGPON_NI_CPU_PACKETS_ID__NUM_OF
+#define bcmolt_xgpon_ni_broadcast_ploam_packet_id_all_properties                            BCMOLT_XGPON_NI_BROADCAST_PLOAM_PACKET_ID__NUM_OF
+#define bcmolt_xgpon_ni_rogue_detection_completed_id_all_properties                         BCMOLT_XGPON_NI_ROGUE_DETECTION_COMPLETED_ID__NUM_OF
+#define bcmolt_xgpon_ni_deactivate_all_onus_completed_id_all_properties                     BCMOLT_XGPON_NI_DEACTIVATE_ALL_ONUS_COMPLETED_ID__NUM_OF
+#define bcmolt_xgpon_ni_disable_all_onus_completed_id_all_properties                        BCMOLT_XGPON_NI_DISABLE_ALL_ONUS_COMPLETED_ID__NUM_OF
+#define bcmolt_xgpon_ni_activate_all_onus_completed_id_all_properties                       BCMOLT_XGPON_NI_ACTIVATE_ALL_ONUS_COMPLETED_ID__NUM_OF
+#define bcmolt_xgpon_ni_enable_all_onus_completed_id_all_properties                         BCMOLT_XGPON_NI_ENABLE_ALL_ONUS_COMPLETED_ID__NUM_OF
+#define bcmolt_xgpon_ni_tod_request_completed_id_all_properties                             BCMOLT_XGPON_NI_TOD_REQUEST_COMPLETED_ID__NUM_OF
+#define bcmolt_xgpon_ni_tod_request_id_all_properties                                       BCMOLT_XGPON_NI_TOD_REQUEST_ID__NUM_OF
+#define bcmolt_xgpon_ni_start_onu_upgrade_id_all_properties                                 BCMOLT_XGPON_NI_START_ONU_UPGRADE_ID__NUM_OF
+#define bcmolt_xgpon_ni_onu_upgrade_complete_id_all_properties                              BCMOLT_XGPON_NI_ONU_UPGRADE_COMPLETE_ID__NUM_OF
+#define bcmolt_xgpon_ni_rogue_onu_special_map_cycle_start_id_all_properties                 BCMOLT_XGPON_NI_ROGUE_ONU_SPECIAL_MAP_CYCLE_START_ID__NUM_OF
+#define bcmolt_xgpon_ni_adjust_tx_wavelength_id_all_properties                              BCMOLT_XGPON_NI_ADJUST_TX_WAVELENGTH_ID__NUM_OF
+#define bcmolt_xgpon_ni_stat_cfg_id_all_properties                                          BCMOLT_XGPON_NI_STAT_CFG_ID__NUM_OF
+#define bcmolt_xgpon_ni_stat_alarm_raised_id_all_properties                                 BCMOLT_XGPON_NI_STAT_ALARM_RAISED_ID__NUM_OF
+#define bcmolt_xgpon_ni_stat_alarm_cleared_id_all_properties                                BCMOLT_XGPON_NI_STAT_ALARM_CLEARED_ID__NUM_OF
+#define bcmolt_xgpon_ni_auto_cfg_id_all_properties                                          BCMOLT_XGPON_NI_AUTO_CFG_ID__NUM_OF
+#define bcmolt_xgpon_onu_key_id_all_properties                                              BCMOLT_XGPON_ONU_KEY_ID__NUM_OF
+#define bcmolt_xgpon_onu_cfg_id_all_properties                                              BCMOLT_XGPON_ONU_CFG_ID__NUM_OF
+#define bcmolt_xgpon_onu_stat_id_all_properties                                             BCMOLT_XGPON_ONU_STAT_ID__NUM_OF
+#define bcmolt_xgpon_onu_set_onu_state_id_all_properties                                    BCMOLT_XGPON_ONU_SET_ONU_STATE_ID__NUM_OF
+#define bcmolt_xgpon_onu_rssi_measurement_id_all_properties                                 BCMOLT_XGPON_ONU_RSSI_MEASUREMENT_ID__NUM_OF
+#define bcmolt_xgpon_onu_onu_alarm_id_all_properties                                        BCMOLT_XGPON_ONU_ONU_ALARM_ID__NUM_OF
+#define bcmolt_xgpon_onu_dowi_id_all_properties                                             BCMOLT_XGPON_ONU_DOWI_ID__NUM_OF
+#define bcmolt_xgpon_onu_sfi_id_all_properties                                              BCMOLT_XGPON_ONU_SFI_ID__NUM_OF
+#define bcmolt_xgpon_onu_sdi_id_all_properties                                              BCMOLT_XGPON_ONU_SDI_ID__NUM_OF
+#define bcmolt_xgpon_onu_dfi_id_all_properties                                              BCMOLT_XGPON_ONU_DFI_ID__NUM_OF
+#define bcmolt_xgpon_onu_pqsi_id_all_properties                                             BCMOLT_XGPON_ONU_PQSI_ID__NUM_OF
+#define bcmolt_xgpon_onu_sufi_id_all_properties                                             BCMOLT_XGPON_ONU_SUFI_ID__NUM_OF
+#define bcmolt_xgpon_onu_tiwi_id_all_properties                                             BCMOLT_XGPON_ONU_TIWI_ID__NUM_OF
+#define bcmolt_xgpon_onu_looci_id_all_properties                                            BCMOLT_XGPON_ONU_LOOCI_ID__NUM_OF
+#define bcmolt_xgpon_onu_ranging_completed_id_all_properties                                BCMOLT_XGPON_ONU_RANGING_COMPLETED_ID__NUM_OF
+#define bcmolt_xgpon_onu_onu_activation_completed_id_all_properties                         BCMOLT_XGPON_ONU_ONU_ACTIVATION_COMPLETED_ID__NUM_OF
+#define bcmolt_xgpon_onu_onu_deactivation_completed_id_all_properties                       BCMOLT_XGPON_ONU_ONU_DEACTIVATION_COMPLETED_ID__NUM_OF
+#define bcmolt_xgpon_onu_onu_enable_completed_id_all_properties                             BCMOLT_XGPON_ONU_ONU_ENABLE_COMPLETED_ID__NUM_OF
+#define bcmolt_xgpon_onu_onu_disable_completed_id_all_properties                            BCMOLT_XGPON_ONU_ONU_DISABLE_COMPLETED_ID__NUM_OF
+#define bcmolt_xgpon_onu_rssi_measurement_completed_id_all_properties                       BCMOLT_XGPON_ONU_RSSI_MEASUREMENT_COMPLETED_ID__NUM_OF
+#define bcmolt_xgpon_onu_invalid_dbru_report_id_all_properties                              BCMOLT_XGPON_ONU_INVALID_DBRU_REPORT_ID__NUM_OF
+#define bcmolt_xgpon_onu_key_exchange_completed_id_all_properties                           BCMOLT_XGPON_ONU_KEY_EXCHANGE_COMPLETED_ID__NUM_OF
+#define bcmolt_xgpon_onu_key_exchange_key_request_timeout_id_all_properties                 BCMOLT_XGPON_ONU_KEY_EXCHANGE_KEY_REQUEST_TIMEOUT_ID__NUM_OF
+#define bcmolt_xgpon_onu_key_exchange_cycle_skipped_id_all_properties                       BCMOLT_XGPON_ONU_KEY_EXCHANGE_CYCLE_SKIPPED_ID__NUM_OF
+#define bcmolt_xgpon_onu_key_exchange_key_mismatch_id_all_properties                        BCMOLT_XGPON_ONU_KEY_EXCHANGE_KEY_MISMATCH_ID__NUM_OF
+#define bcmolt_xgpon_onu_optical_reflection_id_all_properties                               BCMOLT_XGPON_ONU_OPTICAL_REFLECTION_ID__NUM_OF
+#define bcmolt_xgpon_onu_ploam_packet_id_all_properties                                     BCMOLT_XGPON_ONU_PLOAM_PACKET_ID__NUM_OF
+#define bcmolt_xgpon_onu_cpu_packets_id_all_properties                                      BCMOLT_XGPON_ONU_CPU_PACKETS_ID__NUM_OF
+#define bcmolt_xgpon_onu_cpu_packet_id_all_properties                                       BCMOLT_XGPON_ONU_CPU_PACKET_ID__NUM_OF
+#define bcmolt_xgpon_onu_omci_packet_id_all_properties                                      BCMOLT_XGPON_ONU_OMCI_PACKET_ID__NUM_OF
+#define bcmolt_xgpon_onu_dgi_id_all_properties                                              BCMOLT_XGPON_ONU_DGI_ID__NUM_OF
+#define bcmolt_xgpon_onu_power_management_state_change_id_all_properties                    BCMOLT_XGPON_ONU_POWER_MANAGEMENT_STATE_CHANGE_ID__NUM_OF
+#define bcmolt_xgpon_onu_possible_drift_id_all_properties                                   BCMOLT_XGPON_ONU_POSSIBLE_DRIFT_ID__NUM_OF
+#define bcmolt_xgpon_onu_request_registration_id_all_properties                             BCMOLT_XGPON_ONU_REQUEST_REGISTRATION_ID__NUM_OF
+#define bcmolt_xgpon_onu_change_power_levelling_id_all_properties                           BCMOLT_XGPON_ONU_CHANGE_POWER_LEVELLING_ID__NUM_OF
+#define bcmolt_xgpon_onu_get_power_level_id_all_properties                                  BCMOLT_XGPON_ONU_GET_POWER_LEVEL_ID__NUM_OF
+#define bcmolt_xgpon_onu_get_power_consumption_id_all_properties                            BCMOLT_XGPON_ONU_GET_POWER_CONSUMPTION_ID__NUM_OF
+#define bcmolt_xgpon_onu_adjust_tx_wavelength_id_all_properties                             BCMOLT_XGPON_ONU_ADJUST_TX_WAVELENGTH_ID__NUM_OF
+#define bcmolt_xgpon_onu_registration_id_id_all_properties                                  BCMOLT_XGPON_ONU_REGISTRATION_ID_ID__NUM_OF
+#define bcmolt_xgpon_onu_power_level_report_id_all_properties                               BCMOLT_XGPON_ONU_POWER_LEVEL_REPORT_ID__NUM_OF
+#define bcmolt_xgpon_onu_power_consumption_report_id_all_properties                         BCMOLT_XGPON_ONU_POWER_CONSUMPTION_REPORT_ID__NUM_OF
+#define bcmolt_xgpon_onu_secure_mutual_authentication_id_all_properties                     BCMOLT_XGPON_ONU_SECURE_MUTUAL_AUTHENTICATION_ID__NUM_OF
+#define bcmolt_xgpon_onu_secure_mutual_authentication_failure_id_all_properties             BCMOLT_XGPON_ONU_SECURE_MUTUAL_AUTHENTICATION_FAILURE_ID__NUM_OF
+#define bcmolt_xgpon_onu_onu_tuning_in_id_all_properties                                    BCMOLT_XGPON_ONU_ONU_TUNING_IN_ID__NUM_OF
+#define bcmolt_xgpon_onu_onu_tuning_out_id_all_properties                                   BCMOLT_XGPON_ONU_ONU_TUNING_OUT_ID__NUM_OF
+#define bcmolt_xgpon_onu_onu_tuning_out_completed_id_all_properties                         BCMOLT_XGPON_ONU_ONU_TUNING_OUT_COMPLETED_ID__NUM_OF
+#define bcmolt_xgpon_onu_onu_tuning_in_completed_id_all_properties                          BCMOLT_XGPON_ONU_ONU_TUNING_IN_COMPLETED_ID__NUM_OF
+#define bcmolt_xgpon_onu_tuning_response_id_all_properties                                  BCMOLT_XGPON_ONU_TUNING_RESPONSE_ID__NUM_OF
+#define bcmolt_xgpon_onu_stat_cfg_id_all_properties                                         BCMOLT_XGPON_ONU_STAT_CFG_ID__NUM_OF
+#define bcmolt_xgpon_onu_stat_alarm_raised_id_all_properties                                BCMOLT_XGPON_ONU_STAT_ALARM_RAISED_ID__NUM_OF
+#define bcmolt_xgpon_onu_stat_alarm_cleared_id_all_properties                               BCMOLT_XGPON_ONU_STAT_ALARM_CLEARED_ID__NUM_OF
+#define bcmolt_xgpon_onu_auto_cfg_id_all_properties                                         BCMOLT_XGPON_ONU_AUTO_CFG_ID__NUM_OF
+#define bcmolt_xgpon_trx_key_id_all_properties                                              BCMOLT_XGPON_TRX_KEY_ID__NUM_OF
+#define bcmolt_xgpon_trx_cfg_id_all_properties                                              BCMOLT_XGPON_TRX_CFG_ID__NUM_OF
+#define bcmolt_xpon_serdes_key_id_all_properties                                            BCMOLT_XPON_SERDES_KEY_ID__NUM_OF
+#define bcmolt_xpon_serdes_cfg_id_all_properties                                            BCMOLT_XPON_SERDES_CFG_ID__NUM_OF
+
+/* The following are required for the API Init/Set/etc macros */
+#define bcmolt_obj_id__begin                                                                    BCMOLT_OBJ_ID__BEGIN
+#define bcmolt_obj_id_ae_ni                                                                     BCMOLT_OBJ_ID_AE_NI
+#define bcmolt_obj_id_ae_path_ds                                                                BCMOLT_OBJ_ID_AE_PATH_DS
+#define bcmolt_obj_id_ae_path_us                                                                BCMOLT_OBJ_ID_AE_PATH_US
+#define bcmolt_obj_id_channel                                                                   BCMOLT_OBJ_ID_CHANNEL
+#define bcmolt_obj_id_debug                                                                     BCMOLT_OBJ_ID_DEBUG
+#define bcmolt_obj_id_device                                                                    BCMOLT_OBJ_ID_DEVICE
+#define bcmolt_obj_id_epon_denied_link                                                          BCMOLT_OBJ_ID_EPON_DENIED_LINK
+#define bcmolt_obj_id_epon_link                                                                 BCMOLT_OBJ_ID_EPON_LINK
+#define bcmolt_obj_id_epon_ni                                                                   BCMOLT_OBJ_ID_EPON_NI
+#define bcmolt_obj_id_epon_onu_10g_us                                                           BCMOLT_OBJ_ID_EPON_ONU_10G_US
+#define bcmolt_obj_id_epon_onu_1g_us                                                            BCMOLT_OBJ_ID_EPON_ONU_1G_US
+#define bcmolt_obj_id_epon_path_10g_ds                                                          BCMOLT_OBJ_ID_EPON_PATH_10G_DS
+#define bcmolt_obj_id_epon_path_10g_us                                                          BCMOLT_OBJ_ID_EPON_PATH_10G_US
+#define bcmolt_obj_id_epon_path_1g_ds                                                           BCMOLT_OBJ_ID_EPON_PATH_1G_DS
+#define bcmolt_obj_id_epon_path_1g_us                                                           BCMOLT_OBJ_ID_EPON_PATH_1G_US
+#define bcmolt_obj_id_epon_rp                                                                   BCMOLT_OBJ_ID_EPON_RP
+#define bcmolt_obj_id_gpio                                                                      BCMOLT_OBJ_ID_GPIO
+#define bcmolt_obj_id_gpon_alloc                                                                BCMOLT_OBJ_ID_GPON_ALLOC
+#define bcmolt_obj_id_gpon_gem_port                                                             BCMOLT_OBJ_ID_GPON_GEM_PORT
+#define bcmolt_obj_id_gpon_iwf                                                                  BCMOLT_OBJ_ID_GPON_IWF
+#define bcmolt_obj_id_gpon_iwf_ds_egress_flow                                                   BCMOLT_OBJ_ID_GPON_IWF_DS_EGRESS_FLOW
+#define bcmolt_obj_id_gpon_iwf_ds_ingress_flow                                                  BCMOLT_OBJ_ID_GPON_IWF_DS_INGRESS_FLOW
+#define bcmolt_obj_id_gpon_iwf_mac_table                                                        BCMOLT_OBJ_ID_GPON_IWF_MAC_TABLE
+#define bcmolt_obj_id_gpon_iwf_us_flow                                                          BCMOLT_OBJ_ID_GPON_IWF_US_FLOW
+#define bcmolt_obj_id_gpon_ni                                                                   BCMOLT_OBJ_ID_GPON_NI
+#define bcmolt_obj_id_gpon_onu                                                                  BCMOLT_OBJ_ID_GPON_ONU
+#define bcmolt_obj_id_gpon_trx                                                                  BCMOLT_OBJ_ID_GPON_TRX
+#define bcmolt_obj_id_log_entry                                                                 BCMOLT_OBJ_ID_LOG_ENTRY
+#define bcmolt_obj_id_logger                                                                    BCMOLT_OBJ_ID_LOGGER
+#define bcmolt_obj_id_nni                                                                       BCMOLT_OBJ_ID_NNI
+#define bcmolt_obj_id_nni_serdes                                                                BCMOLT_OBJ_ID_NNI_SERDES
+#define bcmolt_obj_id_software_error                                                            BCMOLT_OBJ_ID_SOFTWARE_ERROR
+#define bcmolt_obj_id_trx_calibration                                                           BCMOLT_OBJ_ID_TRX_CALIBRATION
+#define bcmolt_obj_id_xgpon_alloc                                                               BCMOLT_OBJ_ID_XGPON_ALLOC
+#define bcmolt_obj_id_xgpon_gem_port                                                            BCMOLT_OBJ_ID_XGPON_GEM_PORT
+#define bcmolt_obj_id_xgpon_iwf                                                                 BCMOLT_OBJ_ID_XGPON_IWF
+#define bcmolt_obj_id_xgpon_ni                                                                  BCMOLT_OBJ_ID_XGPON_NI
+#define bcmolt_obj_id_xgpon_onu                                                                 BCMOLT_OBJ_ID_XGPON_ONU
+#define bcmolt_obj_id_xgpon_trx                                                                 BCMOLT_OBJ_ID_XGPON_TRX
+#define bcmolt_obj_id_xpon_serdes                                                               BCMOLT_OBJ_ID_XPON_SERDES
+#define bcmolt_obj_id__num_of                                                                   BCMOLT_OBJ_ID__NUM_OF
+#define bcmolt_ae_ni_oper_id__begin                                                             BCMOLT_AE_NI_OPER_ID__BEGIN
+#define bcmolt_ae_ni_oper_id_set_ae_ni_en_state                                                 BCMOLT_AE_NI_OPER_ID_SET_AE_NI_EN_STATE
+#define bcmolt_ae_ni_oper_id__num_of                                                            BCMOLT_AE_NI_OPER_ID__NUM_OF
+#define bcmolt_ae_path_ds_auto_id__begin                                                        BCMOLT_AE_PATH_DS_AUTO_ID__BEGIN
+#define bcmolt_ae_path_ds_auto_id_stat_alarm_cleared                                            BCMOLT_AE_PATH_DS_AUTO_ID_STAT_ALARM_CLEARED
+#define bcmolt_ae_path_ds_auto_id_stat_alarm_raised                                             BCMOLT_AE_PATH_DS_AUTO_ID_STAT_ALARM_RAISED
+#define bcmolt_ae_path_ds_auto_id__num_of                                                       BCMOLT_AE_PATH_DS_AUTO_ID__NUM_OF
+#define bcmolt_ae_path_us_auto_id__begin                                                        BCMOLT_AE_PATH_US_AUTO_ID__BEGIN
+#define bcmolt_ae_path_us_auto_id_stat_alarm_cleared                                            BCMOLT_AE_PATH_US_AUTO_ID_STAT_ALARM_CLEARED
+#define bcmolt_ae_path_us_auto_id_stat_alarm_raised                                             BCMOLT_AE_PATH_US_AUTO_ID_STAT_ALARM_RAISED
+#define bcmolt_ae_path_us_auto_id__num_of                                                       BCMOLT_AE_PATH_US_AUTO_ID__NUM_OF
+#define bcmolt_debug_auto_id__begin                                                             BCMOLT_DEBUG_AUTO_ID__BEGIN
+#define bcmolt_debug_auto_id_cli_output                                                         BCMOLT_DEBUG_AUTO_ID_CLI_OUTPUT
+#define bcmolt_debug_auto_id_file_almost_full                                                   BCMOLT_DEBUG_AUTO_ID_FILE_ALMOST_FULL
+#define bcmolt_debug_auto_id__num_of                                                            BCMOLT_DEBUG_AUTO_ID__NUM_OF
+#define bcmolt_debug_oper_id__begin                                                             BCMOLT_DEBUG_OPER_ID__BEGIN
+#define bcmolt_debug_oper_id_cli_input                                                          BCMOLT_DEBUG_OPER_ID_CLI_INPUT
+#define bcmolt_debug_oper_id_reset_api_capture                                                  BCMOLT_DEBUG_OPER_ID_RESET_API_CAPTURE
+#define bcmolt_debug_oper_id_start_api_capture                                                  BCMOLT_DEBUG_OPER_ID_START_API_CAPTURE
+#define bcmolt_debug_oper_id_stop_api_capture                                                   BCMOLT_DEBUG_OPER_ID_STOP_API_CAPTURE
+#define bcmolt_debug_oper_id__num_of                                                            BCMOLT_DEBUG_OPER_ID__NUM_OF
+#define bcmolt_device_auto_id__begin                                                            BCMOLT_DEVICE_AUTO_ID__BEGIN
+#define bcmolt_device_auto_id_connection_complete                                               BCMOLT_DEVICE_AUTO_ID_CONNECTION_COMPLETE
+#define bcmolt_device_auto_id_connection_established                                            BCMOLT_DEVICE_AUTO_ID_CONNECTION_ESTABLISHED
+#define bcmolt_device_auto_id_connection_failure                                                BCMOLT_DEVICE_AUTO_ID_CONNECTION_FAILURE
+#define bcmolt_device_auto_id_ddr_test_complete                                                 BCMOLT_DEVICE_AUTO_ID_DDR_TEST_COMPLETE
+#define bcmolt_device_auto_id_device_keep_alive                                                 BCMOLT_DEVICE_AUTO_ID_DEVICE_KEEP_ALIVE
+#define bcmolt_device_auto_id_device_ready                                                      BCMOLT_DEVICE_AUTO_ID_DEVICE_READY
+#define bcmolt_device_auto_id_disconnection_complete                                            BCMOLT_DEVICE_AUTO_ID_DISCONNECTION_COMPLETE
+#define bcmolt_device_auto_id_image_transfer_complete                                           BCMOLT_DEVICE_AUTO_ID_IMAGE_TRANSFER_COMPLETE
+#define bcmolt_device_auto_id_indications_dropped                                               BCMOLT_DEVICE_AUTO_ID_INDICATIONS_DROPPED
+#define bcmolt_device_auto_id_sw_error                                                          BCMOLT_DEVICE_AUTO_ID_SW_ERROR
+#define bcmolt_device_auto_id_sw_exception                                                      BCMOLT_DEVICE_AUTO_ID_SW_EXCEPTION
+#define bcmolt_device_auto_id__num_of                                                           BCMOLT_DEVICE_AUTO_ID__NUM_OF
+#define bcmolt_device_oper_id__begin                                                            BCMOLT_DEVICE_OPER_ID__BEGIN
+#define bcmolt_device_oper_id_connect                                                           BCMOLT_DEVICE_OPER_ID_CONNECT
+#define bcmolt_device_oper_id_disconnect                                                        BCMOLT_DEVICE_OPER_ID_DISCONNECT
+#define bcmolt_device_oper_id_host_keep_alive                                                   BCMOLT_DEVICE_OPER_ID_HOST_KEEP_ALIVE
+#define bcmolt_device_oper_id_image_transfer_data                                               BCMOLT_DEVICE_OPER_ID_IMAGE_TRANSFER_DATA
+#define bcmolt_device_oper_id_image_transfer_start                                              BCMOLT_DEVICE_OPER_ID_IMAGE_TRANSFER_START
+#define bcmolt_device_oper_id_reset                                                             BCMOLT_DEVICE_OPER_ID_RESET
+#define bcmolt_device_oper_id_run_ddr_test                                                      BCMOLT_DEVICE_OPER_ID_RUN_DDR_TEST
+#define bcmolt_device_oper_id_sw_upgrade_activate                                               BCMOLT_DEVICE_OPER_ID_SW_UPGRADE_ACTIVATE
+#define bcmolt_device_oper_id__num_of                                                           BCMOLT_DEVICE_OPER_ID__NUM_OF
+#define bcmolt_epon_denied_link_auto_id__begin                                                  BCMOLT_EPON_DENIED_LINK_AUTO_ID__BEGIN
+#define bcmolt_epon_denied_link_auto_id_laser_on_off_violation                                  BCMOLT_EPON_DENIED_LINK_AUTO_ID_LASER_ON_OFF_VIOLATION
+#define bcmolt_epon_denied_link_auto_id_llid_pool_empty_violation                               BCMOLT_EPON_DENIED_LINK_AUTO_ID_LLID_POOL_EMPTY_VIOLATION
+#define bcmolt_epon_denied_link_auto_id_max_link_violation                                      BCMOLT_EPON_DENIED_LINK_AUTO_ID_MAX_LINK_VIOLATION
+#define bcmolt_epon_denied_link_auto_id_overhead_profile_violation                              BCMOLT_EPON_DENIED_LINK_AUTO_ID_OVERHEAD_PROFILE_VIOLATION
+#define bcmolt_epon_denied_link_auto_id_range_violation                                         BCMOLT_EPON_DENIED_LINK_AUTO_ID_RANGE_VIOLATION
+#define bcmolt_epon_denied_link_auto_id_rogue_violation                                         BCMOLT_EPON_DENIED_LINK_AUTO_ID_ROGUE_VIOLATION
+#define bcmolt_epon_denied_link_auto_id_system_resource_violation                               BCMOLT_EPON_DENIED_LINK_AUTO_ID_SYSTEM_RESOURCE_VIOLATION
+#define bcmolt_epon_denied_link_auto_id_tdm_channels_exhausted                                  BCMOLT_EPON_DENIED_LINK_AUTO_ID_TDM_CHANNELS_EXHAUSTED
+#define bcmolt_epon_denied_link_auto_id_unknown_link_violation                                  BCMOLT_EPON_DENIED_LINK_AUTO_ID_UNKNOWN_LINK_VIOLATION
+#define bcmolt_epon_denied_link_auto_id_upstream_bandwidth_violation                            BCMOLT_EPON_DENIED_LINK_AUTO_ID_UPSTREAM_BANDWIDTH_VIOLATION
+#define bcmolt_epon_denied_link_auto_id__num_of                                                 BCMOLT_EPON_DENIED_LINK_AUTO_ID__NUM_OF
+#define bcmolt_epon_link_auto_id__begin                                                         BCMOLT_EPON_LINK_AUTO_ID__BEGIN
+#define bcmolt_epon_link_auto_id_duplicate_mpcp_registration_request                            BCMOLT_EPON_LINK_AUTO_ID_DUPLICATE_MPCP_REGISTRATION_REQUEST
+#define bcmolt_epon_link_auto_id_encryption_enabled                                             BCMOLT_EPON_LINK_AUTO_ID_ENCRYPTION_ENABLED
+#define bcmolt_epon_link_auto_id_key_exchange_failure                                           BCMOLT_EPON_LINK_AUTO_ID_KEY_EXCHANGE_FAILURE
+#define bcmolt_epon_link_auto_id_key_exchange_started                                           BCMOLT_EPON_LINK_AUTO_ID_KEY_EXCHANGE_STARTED
+#define bcmolt_epon_link_auto_id_key_exchange_stopped                                           BCMOLT_EPON_LINK_AUTO_ID_KEY_EXCHANGE_STOPPED
+#define bcmolt_epon_link_auto_id_link_deleted                                                   BCMOLT_EPON_LINK_AUTO_ID_LINK_DELETED
+#define bcmolt_epon_link_auto_id_link_speed_mismatch                                            BCMOLT_EPON_LINK_AUTO_ID_LINK_SPEED_MISMATCH
+#define bcmolt_epon_link_auto_id_mpcp_deregistered                                              BCMOLT_EPON_LINK_AUTO_ID_MPCP_DEREGISTERED
+#define bcmolt_epon_link_auto_id_mpcp_discovered                                                BCMOLT_EPON_LINK_AUTO_ID_MPCP_DISCOVERED
+#define bcmolt_epon_link_auto_id_mpcp_reg_ack_timeout                                           BCMOLT_EPON_LINK_AUTO_ID_MPCP_REG_ACK_TIMEOUT
+#define bcmolt_epon_link_auto_id_mpcp_report_timeout                                            BCMOLT_EPON_LINK_AUTO_ID_MPCP_REPORT_TIMEOUT
+#define bcmolt_epon_link_auto_id_oam_keepalive_timeout                                          BCMOLT_EPON_LINK_AUTO_ID_OAM_KEEPALIVE_TIMEOUT
+#define bcmolt_epon_link_auto_id_oam_keepalive_timer_started                                    BCMOLT_EPON_LINK_AUTO_ID_OAM_KEEPALIVE_TIMER_STARTED
+#define bcmolt_epon_link_auto_id_oam_keepalive_timer_stopped                                    BCMOLT_EPON_LINK_AUTO_ID_OAM_KEEPALIVE_TIMER_STOPPED
+#define bcmolt_epon_link_auto_id_preprovisioned_link_created                                    BCMOLT_EPON_LINK_AUTO_ID_PREPROVISIONED_LINK_CREATED
+#define bcmolt_epon_link_auto_id_protection_switch_occurred                                     BCMOLT_EPON_LINK_AUTO_ID_PROTECTION_SWITCH_OCCURRED
+#define bcmolt_epon_link_auto_id_range_value_changed                                            BCMOLT_EPON_LINK_AUTO_ID_RANGE_VALUE_CHANGED
+#define bcmolt_epon_link_auto_id_rerange_failure                                                BCMOLT_EPON_LINK_AUTO_ID_RERANGE_FAILURE
+#define bcmolt_epon_link_auto_id_stat_alarm_cleared                                             BCMOLT_EPON_LINK_AUTO_ID_STAT_ALARM_CLEARED
+#define bcmolt_epon_link_auto_id_stat_alarm_raised                                              BCMOLT_EPON_LINK_AUTO_ID_STAT_ALARM_RAISED
+#define bcmolt_epon_link_auto_id_static_registration_done                                       BCMOLT_EPON_LINK_AUTO_ID_STATIC_REGISTRATION_DONE
+#define bcmolt_epon_link_auto_id__num_of                                                        BCMOLT_EPON_LINK_AUTO_ID__NUM_OF
+#define bcmolt_epon_link_oper_id__begin                                                         BCMOLT_EPON_LINK_OPER_ID__BEGIN
+#define bcmolt_epon_link_oper_id_delete_link                                                    BCMOLT_EPON_LINK_OPER_ID_DELETE_LINK
+#define bcmolt_epon_link_oper_id_force_rediscovery                                              BCMOLT_EPON_LINK_OPER_ID_FORCE_REDISCOVERY
+#define bcmolt_epon_link_oper_id_key_exchange_start                                             BCMOLT_EPON_LINK_OPER_ID_KEY_EXCHANGE_START
+#define bcmolt_epon_link_oper_id_key_exchange_stop                                              BCMOLT_EPON_LINK_OPER_ID_KEY_EXCHANGE_STOP
+#define bcmolt_epon_link_oper_id_oam_keepalive_timer_start                                      BCMOLT_EPON_LINK_OPER_ID_OAM_KEEPALIVE_TIMER_START
+#define bcmolt_epon_link_oper_id_oam_keepalive_timer_stop                                       BCMOLT_EPON_LINK_OPER_ID_OAM_KEEPALIVE_TIMER_STOP
+#define bcmolt_epon_link_oper_id_static_registration                                            BCMOLT_EPON_LINK_OPER_ID_STATIC_REGISTRATION
+#define bcmolt_epon_link_oper_id__num_of                                                        BCMOLT_EPON_LINK_OPER_ID__NUM_OF
+#define bcmolt_epon_link_proxy_id__begin                                                        BCMOLT_EPON_LINK_PROXY_ID__BEGIN
+#define bcmolt_epon_link_proxy_id_inject_frame                                                  BCMOLT_EPON_LINK_PROXY_ID_INJECT_FRAME
+#define bcmolt_epon_link_proxy_id__num_of                                                       BCMOLT_EPON_LINK_PROXY_ID__NUM_OF
+#define bcmolt_epon_link_proxy_rx_id__begin                                                     BCMOLT_EPON_LINK_PROXY_RX_ID__BEGIN
+#define bcmolt_epon_link_proxy_rx_id_frame_captured                                             BCMOLT_EPON_LINK_PROXY_RX_ID_FRAME_CAPTURED
+#define bcmolt_epon_link_proxy_rx_id__num_of                                                    BCMOLT_EPON_LINK_PROXY_RX_ID__NUM_OF
+#define bcmolt_epon_ni_auto_id__begin                                                           BCMOLT_EPON_NI_AUTO_ID__BEGIN
+#define bcmolt_epon_ni_auto_id_auto_rogue_scan_10g_failure                                      BCMOLT_EPON_NI_AUTO_ID_AUTO_ROGUE_SCAN_10G_FAILURE
+#define bcmolt_epon_ni_auto_id_auto_rogue_scan_1g_failure                                       BCMOLT_EPON_NI_AUTO_ID_AUTO_ROGUE_SCAN_1G_FAILURE
+#define bcmolt_epon_ni_auto_id_llid_quarantined                                                 BCMOLT_EPON_NI_AUTO_ID_LLID_QUARANTINED
+#define bcmolt_epon_ni_auto_id_mpcp_timestamp_changed                                           BCMOLT_EPON_NI_AUTO_ID_MPCP_TIMESTAMP_CHANGED
+#define bcmolt_epon_ni_auto_id_no_reports                                                       BCMOLT_EPON_NI_AUTO_ID_NO_REPORTS
+#define bcmolt_epon_ni_auto_id_onu_upgrade_complete                                             BCMOLT_EPON_NI_AUTO_ID_ONU_UPGRADE_COMPLETE
+#define bcmolt_epon_ni_auto_id_rerange_failure                                                  BCMOLT_EPON_NI_AUTO_ID_RERANGE_FAILURE
+#define bcmolt_epon_ni_auto_id_rogue_scan_complete                                              BCMOLT_EPON_NI_AUTO_ID_ROGUE_SCAN_COMPLETE
+#define bcmolt_epon_ni_auto_id_rssi_measurement_completed                                       BCMOLT_EPON_NI_AUTO_ID_RSSI_MEASUREMENT_COMPLETED
+#define bcmolt_epon_ni_auto_id_state_change_completed                                           BCMOLT_EPON_NI_AUTO_ID_STATE_CHANGE_COMPLETED
+#define bcmolt_epon_ni_auto_id__num_of                                                          BCMOLT_EPON_NI_AUTO_ID__NUM_OF
+#define bcmolt_epon_ni_oper_id__begin                                                           BCMOLT_EPON_NI_OPER_ID__BEGIN
+#define bcmolt_epon_ni_oper_id_add_link                                                         BCMOLT_EPON_NI_OPER_ID_ADD_LINK
+#define bcmolt_epon_ni_oper_id_add_multicast_link                                               BCMOLT_EPON_NI_OPER_ID_ADD_MULTICAST_LINK
+#define bcmolt_epon_ni_oper_id_add_protected_standby_link                                       BCMOLT_EPON_NI_OPER_ID_ADD_PROTECTED_STANDBY_LINK
+#define bcmolt_epon_ni_oper_id_issue_rssi_grant                                                 BCMOLT_EPON_NI_OPER_ID_ISSUE_RSSI_GRANT
+#define bcmolt_epon_ni_oper_id_protection_switching_apply_rerange_delta                         BCMOLT_EPON_NI_OPER_ID_PROTECTION_SWITCHING_APPLY_RERANGE_DELTA
+#define bcmolt_epon_ni_oper_id_rogue_llid_scan                                                  BCMOLT_EPON_NI_OPER_ID_ROGUE_LLID_SCAN
+#define bcmolt_epon_ni_oper_id_set_epon_ni_en_state                                             BCMOLT_EPON_NI_OPER_ID_SET_EPON_NI_EN_STATE
+#define bcmolt_epon_ni_oper_id_start_onu_upgrade                                                BCMOLT_EPON_NI_OPER_ID_START_ONU_UPGRADE
+#define bcmolt_epon_ni_oper_id__num_of                                                          BCMOLT_EPON_NI_OPER_ID__NUM_OF
+#define bcmolt_epon_onu_10g_us_auto_id__begin                                                   BCMOLT_EPON_ONU_10G_US_AUTO_ID__BEGIN
+#define bcmolt_epon_onu_10g_us_auto_id_stat_alarm_cleared                                       BCMOLT_EPON_ONU_10G_US_AUTO_ID_STAT_ALARM_CLEARED
+#define bcmolt_epon_onu_10g_us_auto_id_stat_alarm_raised                                        BCMOLT_EPON_ONU_10G_US_AUTO_ID_STAT_ALARM_RAISED
+#define bcmolt_epon_onu_10g_us_auto_id__num_of                                                  BCMOLT_EPON_ONU_10G_US_AUTO_ID__NUM_OF
+#define bcmolt_epon_onu_1g_us_auto_id__begin                                                    BCMOLT_EPON_ONU_1G_US_AUTO_ID__BEGIN
+#define bcmolt_epon_onu_1g_us_auto_id_stat_alarm_cleared                                        BCMOLT_EPON_ONU_1G_US_AUTO_ID_STAT_ALARM_CLEARED
+#define bcmolt_epon_onu_1g_us_auto_id_stat_alarm_raised                                         BCMOLT_EPON_ONU_1G_US_AUTO_ID_STAT_ALARM_RAISED
+#define bcmolt_epon_onu_1g_us_auto_id__num_of                                                   BCMOLT_EPON_ONU_1G_US_AUTO_ID__NUM_OF
+#define bcmolt_epon_path_10g_ds_auto_id__begin                                                  BCMOLT_EPON_PATH_10G_DS_AUTO_ID__BEGIN
+#define bcmolt_epon_path_10g_ds_auto_id_stat_alarm_cleared                                      BCMOLT_EPON_PATH_10G_DS_AUTO_ID_STAT_ALARM_CLEARED
+#define bcmolt_epon_path_10g_ds_auto_id_stat_alarm_raised                                       BCMOLT_EPON_PATH_10G_DS_AUTO_ID_STAT_ALARM_RAISED
+#define bcmolt_epon_path_10g_ds_auto_id__num_of                                                 BCMOLT_EPON_PATH_10G_DS_AUTO_ID__NUM_OF
+#define bcmolt_epon_path_10g_us_auto_id__begin                                                  BCMOLT_EPON_PATH_10G_US_AUTO_ID__BEGIN
+#define bcmolt_epon_path_10g_us_auto_id_stat_alarm_cleared                                      BCMOLT_EPON_PATH_10G_US_AUTO_ID_STAT_ALARM_CLEARED
+#define bcmolt_epon_path_10g_us_auto_id_stat_alarm_raised                                       BCMOLT_EPON_PATH_10G_US_AUTO_ID_STAT_ALARM_RAISED
+#define bcmolt_epon_path_10g_us_auto_id__num_of                                                 BCMOLT_EPON_PATH_10G_US_AUTO_ID__NUM_OF
+#define bcmolt_epon_path_1g_ds_auto_id__begin                                                   BCMOLT_EPON_PATH_1G_DS_AUTO_ID__BEGIN
+#define bcmolt_epon_path_1g_ds_auto_id_stat_alarm_cleared                                       BCMOLT_EPON_PATH_1G_DS_AUTO_ID_STAT_ALARM_CLEARED
+#define bcmolt_epon_path_1g_ds_auto_id_stat_alarm_raised                                        BCMOLT_EPON_PATH_1G_DS_AUTO_ID_STAT_ALARM_RAISED
+#define bcmolt_epon_path_1g_ds_auto_id__num_of                                                  BCMOLT_EPON_PATH_1G_DS_AUTO_ID__NUM_OF
+#define bcmolt_epon_path_1g_us_auto_id__begin                                                   BCMOLT_EPON_PATH_1G_US_AUTO_ID__BEGIN
+#define bcmolt_epon_path_1g_us_auto_id_stat_alarm_cleared                                       BCMOLT_EPON_PATH_1G_US_AUTO_ID_STAT_ALARM_CLEARED
+#define bcmolt_epon_path_1g_us_auto_id_stat_alarm_raised                                        BCMOLT_EPON_PATH_1G_US_AUTO_ID_STAT_ALARM_RAISED
+#define bcmolt_epon_path_1g_us_auto_id__num_of                                                  BCMOLT_EPON_PATH_1G_US_AUTO_ID__NUM_OF
+#define bcmolt_gpon_alloc_auto_id__begin                                                        BCMOLT_GPON_ALLOC_AUTO_ID__BEGIN
+#define bcmolt_gpon_alloc_auto_id_configuration_completed                                       BCMOLT_GPON_ALLOC_AUTO_ID_CONFIGURATION_COMPLETED
+#define bcmolt_gpon_alloc_auto_id_get_alloc_stats_completed                                     BCMOLT_GPON_ALLOC_AUTO_ID_GET_ALLOC_STATS_COMPLETED
+#define bcmolt_gpon_alloc_auto_id_stat_alarm_cleared                                            BCMOLT_GPON_ALLOC_AUTO_ID_STAT_ALARM_CLEARED
+#define bcmolt_gpon_alloc_auto_id_stat_alarm_raised                                             BCMOLT_GPON_ALLOC_AUTO_ID_STAT_ALARM_RAISED
+#define bcmolt_gpon_alloc_auto_id__num_of                                                       BCMOLT_GPON_ALLOC_AUTO_ID__NUM_OF
+#define bcmolt_gpon_alloc_oper_id__begin                                                        BCMOLT_GPON_ALLOC_OPER_ID__BEGIN
+#define bcmolt_gpon_alloc_oper_id_get_stats                                                     BCMOLT_GPON_ALLOC_OPER_ID_GET_STATS
+#define bcmolt_gpon_alloc_oper_id_set_state                                                     BCMOLT_GPON_ALLOC_OPER_ID_SET_STATE
+#define bcmolt_gpon_alloc_oper_id__num_of                                                       BCMOLT_GPON_ALLOC_OPER_ID__NUM_OF
+#define bcmolt_gpon_gem_port_auto_id__begin                                                     BCMOLT_GPON_GEM_PORT_AUTO_ID__BEGIN
+#define bcmolt_gpon_gem_port_auto_id_configuration_completed                                    BCMOLT_GPON_GEM_PORT_AUTO_ID_CONFIGURATION_COMPLETED
+#define bcmolt_gpon_gem_port_auto_id_stat_alarm_cleared                                         BCMOLT_GPON_GEM_PORT_AUTO_ID_STAT_ALARM_CLEARED
+#define bcmolt_gpon_gem_port_auto_id_stat_alarm_raised                                          BCMOLT_GPON_GEM_PORT_AUTO_ID_STAT_ALARM_RAISED
+#define bcmolt_gpon_gem_port_auto_id__num_of                                                    BCMOLT_GPON_GEM_PORT_AUTO_ID__NUM_OF
+#define bcmolt_gpon_gem_port_oper_id__begin                                                     BCMOLT_GPON_GEM_PORT_OPER_ID__BEGIN
+#define bcmolt_gpon_gem_port_oper_id_set_state                                                  BCMOLT_GPON_GEM_PORT_OPER_ID_SET_STATE
+#define bcmolt_gpon_gem_port_oper_id__num_of                                                    BCMOLT_GPON_GEM_PORT_OPER_ID__NUM_OF
+#define bcmolt_gpon_iwf_auto_id__begin                                                          BCMOLT_GPON_IWF_AUTO_ID__BEGIN
+#define bcmolt_gpon_iwf_auto_id_flush_mac_table_completed                                       BCMOLT_GPON_IWF_AUTO_ID_FLUSH_MAC_TABLE_COMPLETED
+#define bcmolt_gpon_iwf_auto_id_scan_mac_table_completed                                        BCMOLT_GPON_IWF_AUTO_ID_SCAN_MAC_TABLE_COMPLETED
+#define bcmolt_gpon_iwf_auto_id_stat_alarm_cleared                                              BCMOLT_GPON_IWF_AUTO_ID_STAT_ALARM_CLEARED
+#define bcmolt_gpon_iwf_auto_id_stat_alarm_raised                                               BCMOLT_GPON_IWF_AUTO_ID_STAT_ALARM_RAISED
+#define bcmolt_gpon_iwf_auto_id__num_of                                                         BCMOLT_GPON_IWF_AUTO_ID__NUM_OF
+#define bcmolt_gpon_iwf_oper_id__begin                                                          BCMOLT_GPON_IWF_OPER_ID__BEGIN
+#define bcmolt_gpon_iwf_oper_id_flush_mac_table                                                 BCMOLT_GPON_IWF_OPER_ID_FLUSH_MAC_TABLE
+#define bcmolt_gpon_iwf_oper_id_scan_mac_table                                                  BCMOLT_GPON_IWF_OPER_ID_SCAN_MAC_TABLE
+#define bcmolt_gpon_iwf_oper_id__num_of                                                         BCMOLT_GPON_IWF_OPER_ID__NUM_OF
+#define bcmolt_gpon_iwf_mac_table_auto_id__begin                                                BCMOLT_GPON_IWF_MAC_TABLE_AUTO_ID__BEGIN
+#define bcmolt_gpon_iwf_mac_table_auto_id_mac_aged                                              BCMOLT_GPON_IWF_MAC_TABLE_AUTO_ID_MAC_AGED
+#define bcmolt_gpon_iwf_mac_table_auto_id_mac_dropped                                           BCMOLT_GPON_IWF_MAC_TABLE_AUTO_ID_MAC_DROPPED
+#define bcmolt_gpon_iwf_mac_table_auto_id_mac_move                                              BCMOLT_GPON_IWF_MAC_TABLE_AUTO_ID_MAC_MOVE
+#define bcmolt_gpon_iwf_mac_table_auto_id_new_mac                                               BCMOLT_GPON_IWF_MAC_TABLE_AUTO_ID_NEW_MAC
+#define bcmolt_gpon_iwf_mac_table_auto_id__num_of                                               BCMOLT_GPON_IWF_MAC_TABLE_AUTO_ID__NUM_OF
+#define bcmolt_gpon_ni_auto_id__begin                                                           BCMOLT_GPON_NI_AUTO_ID__BEGIN
+#define bcmolt_gpon_ni_auto_id_activate_all_onus_completed                                      BCMOLT_GPON_NI_AUTO_ID_ACTIVATE_ALL_ONUS_COMPLETED
+#define bcmolt_gpon_ni_auto_id_cpu_packets_failure                                              BCMOLT_GPON_NI_AUTO_ID_CPU_PACKETS_FAILURE
+#define bcmolt_gpon_ni_auto_id_deactivate_all_onus_completed                                    BCMOLT_GPON_NI_AUTO_ID_DEACTIVATE_ALL_ONUS_COMPLETED
+#define bcmolt_gpon_ni_auto_id_disable_all_onus_completed                                       BCMOLT_GPON_NI_AUTO_ID_DISABLE_ALL_ONUS_COMPLETED
+#define bcmolt_gpon_ni_auto_id_enable_all_onus_completed                                        BCMOLT_GPON_NI_AUTO_ID_ENABLE_ALL_ONUS_COMPLETED
+#define bcmolt_gpon_ni_auto_id_los                                                              BCMOLT_GPON_NI_AUTO_ID_LOS
+#define bcmolt_gpon_ni_auto_id_onu_discovered                                                   BCMOLT_GPON_NI_AUTO_ID_ONU_DISCOVERED
+#define bcmolt_gpon_ni_auto_id_onu_upgrade_complete                                             BCMOLT_GPON_NI_AUTO_ID_ONU_UPGRADE_COMPLETE
+#define bcmolt_gpon_ni_auto_id_protection_switching_onus_ranged                                 BCMOLT_GPON_NI_AUTO_ID_PROTECTION_SWITCHING_ONUS_RANGED
+#define bcmolt_gpon_ni_auto_id_protection_switching_switchover_completed                        BCMOLT_GPON_NI_AUTO_ID_PROTECTION_SWITCHING_SWITCHOVER_COMPLETED
+#define bcmolt_gpon_ni_auto_id_protection_switching_traffic_resume                              BCMOLT_GPON_NI_AUTO_ID_PROTECTION_SWITCHING_TRAFFIC_RESUME
+#define bcmolt_gpon_ni_auto_id_rogue_detection_completed                                        BCMOLT_GPON_NI_AUTO_ID_ROGUE_DETECTION_COMPLETED
+#define bcmolt_gpon_ni_auto_id_rogue_onu_special_map_cycle_start                                BCMOLT_GPON_NI_AUTO_ID_ROGUE_ONU_SPECIAL_MAP_CYCLE_START
+#define bcmolt_gpon_ni_auto_id_serial_number_acquisition_cycle_start                            BCMOLT_GPON_NI_AUTO_ID_SERIAL_NUMBER_ACQUISITION_CYCLE_START
+#define bcmolt_gpon_ni_auto_id_standby_pon_monitoring_cycle_completed                           BCMOLT_GPON_NI_AUTO_ID_STANDBY_PON_MONITORING_CYCLE_COMPLETED
+#define bcmolt_gpon_ni_auto_id_stat_alarm_cleared                                               BCMOLT_GPON_NI_AUTO_ID_STAT_ALARM_CLEARED
+#define bcmolt_gpon_ni_auto_id_stat_alarm_raised                                                BCMOLT_GPON_NI_AUTO_ID_STAT_ALARM_RAISED
+#define bcmolt_gpon_ni_auto_id_state_change_completed                                           BCMOLT_GPON_NI_AUTO_ID_STATE_CHANGE_COMPLETED
+#define bcmolt_gpon_ni_auto_id_tod_request_completed                                            BCMOLT_GPON_NI_AUTO_ID_TOD_REQUEST_COMPLETED
+#define bcmolt_gpon_ni_auto_id__num_of                                                          BCMOLT_GPON_NI_AUTO_ID__NUM_OF
+#define bcmolt_gpon_ni_oper_id__begin                                                           BCMOLT_GPON_NI_OPER_ID__BEGIN
+#define bcmolt_gpon_ni_oper_id_disable_serial_number                                            BCMOLT_GPON_NI_OPER_ID_DISABLE_SERIAL_NUMBER
+#define bcmolt_gpon_ni_oper_id_protection_switching_type_c_set_multiple_onu_state               BCMOLT_GPON_NI_OPER_ID_PROTECTION_SWITCHING_TYPE_C_SET_MULTIPLE_ONU_STATE
+#define bcmolt_gpon_ni_oper_id_reset                                                            BCMOLT_GPON_NI_OPER_ID_RESET
+#define bcmolt_gpon_ni_oper_id_rogue_detection_window                                           BCMOLT_GPON_NI_OPER_ID_ROGUE_DETECTION_WINDOW
+#define bcmolt_gpon_ni_oper_id_set_onu_state                                                    BCMOLT_GPON_NI_OPER_ID_SET_ONU_STATE
+#define bcmolt_gpon_ni_oper_id_set_pon_state                                                    BCMOLT_GPON_NI_OPER_ID_SET_PON_STATE
+#define bcmolt_gpon_ni_oper_id_single_request_standby_pon_monitoring                            BCMOLT_GPON_NI_OPER_ID_SINGLE_REQUEST_STANDBY_PON_MONITORING
+#define bcmolt_gpon_ni_oper_id_start_onu_upgrade                                                BCMOLT_GPON_NI_OPER_ID_START_ONU_UPGRADE
+#define bcmolt_gpon_ni_oper_id_tod_request                                                      BCMOLT_GPON_NI_OPER_ID_TOD_REQUEST
+#define bcmolt_gpon_ni_oper_id__num_of                                                          BCMOLT_GPON_NI_OPER_ID__NUM_OF
+#define bcmolt_gpon_ni_proxy_id__begin                                                          BCMOLT_GPON_NI_PROXY_ID__BEGIN
+#define bcmolt_gpon_ni_proxy_id_broadcast_ploam_packet                                          BCMOLT_GPON_NI_PROXY_ID_BROADCAST_PLOAM_PACKET
+#define bcmolt_gpon_ni_proxy_id_cpu_packets                                                     BCMOLT_GPON_NI_PROXY_ID_CPU_PACKETS
+#define bcmolt_gpon_ni_proxy_id__num_of                                                         BCMOLT_GPON_NI_PROXY_ID__NUM_OF
+#define bcmolt_gpon_onu_auto_id__begin                                                          BCMOLT_GPON_ONU_AUTO_ID__BEGIN
+#define bcmolt_gpon_onu_auto_id_ber_interval_configuration_completed                            BCMOLT_GPON_ONU_AUTO_ID_BER_INTERVAL_CONFIGURATION_COMPLETED
+#define bcmolt_gpon_onu_auto_id_dfi                                                             BCMOLT_GPON_ONU_AUTO_ID_DFI
+#define bcmolt_gpon_onu_auto_id_dgi                                                             BCMOLT_GPON_ONU_AUTO_ID_DGI
+#define bcmolt_gpon_onu_auto_id_dowi                                                            BCMOLT_GPON_ONU_AUTO_ID_DOWI
+#define bcmolt_gpon_onu_auto_id_err                                                             BCMOLT_GPON_ONU_AUTO_ID_ERR
+#define bcmolt_gpon_onu_auto_id_invalid_dbru_report                                             BCMOLT_GPON_ONU_AUTO_ID_INVALID_DBRU_REPORT
+#define bcmolt_gpon_onu_auto_id_key_exchange_completed                                          BCMOLT_GPON_ONU_AUTO_ID_KEY_EXCHANGE_COMPLETED
+#define bcmolt_gpon_onu_auto_id_key_exchange_cycle_skipped                                      BCMOLT_GPON_ONU_AUTO_ID_KEY_EXCHANGE_CYCLE_SKIPPED
+#define bcmolt_gpon_onu_auto_id_key_exchange_decrypt_required                                   BCMOLT_GPON_ONU_AUTO_ID_KEY_EXCHANGE_DECRYPT_REQUIRED
+#define bcmolt_gpon_onu_auto_id_key_exchange_key_mismatch                                       BCMOLT_GPON_ONU_AUTO_ID_KEY_EXCHANGE_KEY_MISMATCH
+#define bcmolt_gpon_onu_auto_id_key_exchange_key_request_timeout                                BCMOLT_GPON_ONU_AUTO_ID_KEY_EXCHANGE_KEY_REQUEST_TIMEOUT
+#define bcmolt_gpon_onu_auto_id_key_exchange_unconsecutive_index                                BCMOLT_GPON_ONU_AUTO_ID_KEY_EXCHANGE_UNCONSECUTIVE_INDEX
+#define bcmolt_gpon_onu_auto_id_loai                                                            BCMOLT_GPON_ONU_AUTO_ID_LOAI
+#define bcmolt_gpon_onu_auto_id_loki                                                            BCMOLT_GPON_ONU_AUTO_ID_LOKI
+#define bcmolt_gpon_onu_auto_id_memi                                                            BCMOLT_GPON_ONU_AUTO_ID_MEMI
+#define bcmolt_gpon_onu_auto_id_omci_port_id_configuration_completed                            BCMOLT_GPON_ONU_AUTO_ID_OMCI_PORT_ID_CONFIGURATION_COMPLETED
+#define bcmolt_gpon_onu_auto_id_onu_activation_completed                                        BCMOLT_GPON_ONU_AUTO_ID_ONU_ACTIVATION_COMPLETED
+#define bcmolt_gpon_onu_auto_id_onu_activation_standby_completed                                BCMOLT_GPON_ONU_AUTO_ID_ONU_ACTIVATION_STANDBY_COMPLETED
+#define bcmolt_gpon_onu_auto_id_onu_alarm                                                       BCMOLT_GPON_ONU_AUTO_ID_ONU_ALARM
+#define bcmolt_gpon_onu_auto_id_onu_deactivation_completed                                      BCMOLT_GPON_ONU_AUTO_ID_ONU_DEACTIVATION_COMPLETED
+#define bcmolt_gpon_onu_auto_id_onu_disable_completed                                           BCMOLT_GPON_ONU_AUTO_ID_ONU_DISABLE_COMPLETED
+#define bcmolt_gpon_onu_auto_id_onu_enable_completed                                            BCMOLT_GPON_ONU_AUTO_ID_ONU_ENABLE_COMPLETED
+#define bcmolt_gpon_onu_auto_id_optical_reflection                                              BCMOLT_GPON_ONU_AUTO_ID_OPTICAL_REFLECTION
+#define bcmolt_gpon_onu_auto_id_password_authentication_completed                               BCMOLT_GPON_ONU_AUTO_ID_PASSWORD_AUTHENTICATION_COMPLETED
+#define bcmolt_gpon_onu_auto_id_pee                                                             BCMOLT_GPON_ONU_AUTO_ID_PEE
+#define bcmolt_gpon_onu_auto_id_possible_drift                                                  BCMOLT_GPON_ONU_AUTO_ID_POSSIBLE_DRIFT
+#define bcmolt_gpon_onu_auto_id_power_management_state_change                                   BCMOLT_GPON_ONU_AUTO_ID_POWER_MANAGEMENT_STATE_CHANGE
+#define bcmolt_gpon_onu_auto_id_pst                                                             BCMOLT_GPON_ONU_AUTO_ID_PST
+#define bcmolt_gpon_onu_auto_id_ranging_completed                                               BCMOLT_GPON_ONU_AUTO_ID_RANGING_COMPLETED
+#define bcmolt_gpon_onu_auto_id_rei                                                             BCMOLT_GPON_ONU_AUTO_ID_REI
+#define bcmolt_gpon_onu_auto_id_rssi_measurement_completed                                      BCMOLT_GPON_ONU_AUTO_ID_RSSI_MEASUREMENT_COMPLETED
+#define bcmolt_gpon_onu_auto_id_sdi                                                             BCMOLT_GPON_ONU_AUTO_ID_SDI
+#define bcmolt_gpon_onu_auto_id_sfi                                                             BCMOLT_GPON_ONU_AUTO_ID_SFI
+#define bcmolt_gpon_onu_auto_id_stat_alarm_cleared                                              BCMOLT_GPON_ONU_AUTO_ID_STAT_ALARM_CLEARED
+#define bcmolt_gpon_onu_auto_id_stat_alarm_raised                                               BCMOLT_GPON_ONU_AUTO_ID_STAT_ALARM_RAISED
+#define bcmolt_gpon_onu_auto_id_sufi                                                            BCMOLT_GPON_ONU_AUTO_ID_SUFI
+#define bcmolt_gpon_onu_auto_id_tiwi                                                            BCMOLT_GPON_ONU_AUTO_ID_TIWI
+#define bcmolt_gpon_onu_auto_id__num_of                                                         BCMOLT_GPON_ONU_AUTO_ID__NUM_OF
+#define bcmolt_gpon_onu_oper_id__begin                                                          BCMOLT_GPON_ONU_OPER_ID__BEGIN
+#define bcmolt_gpon_onu_oper_id_change_power_level                                              BCMOLT_GPON_ONU_OPER_ID_CHANGE_POWER_LEVEL
+#define bcmolt_gpon_onu_oper_id_rssi_measurement                                                BCMOLT_GPON_ONU_OPER_ID_RSSI_MEASUREMENT
+#define bcmolt_gpon_onu_oper_id_set_onu_state                                                   BCMOLT_GPON_ONU_OPER_ID_SET_ONU_STATE
+#define bcmolt_gpon_onu_oper_id__num_of                                                         BCMOLT_GPON_ONU_OPER_ID__NUM_OF
+#define bcmolt_gpon_onu_proxy_id__begin                                                         BCMOLT_GPON_ONU_PROXY_ID__BEGIN
+#define bcmolt_gpon_onu_proxy_id_cpu_packets                                                    BCMOLT_GPON_ONU_PROXY_ID_CPU_PACKETS
+#define bcmolt_gpon_onu_proxy_id_ploam_packet                                                   BCMOLT_GPON_ONU_PROXY_ID_PLOAM_PACKET
+#define bcmolt_gpon_onu_proxy_id__num_of                                                        BCMOLT_GPON_ONU_PROXY_ID__NUM_OF
+#define bcmolt_gpon_onu_proxy_rx_id__begin                                                      BCMOLT_GPON_ONU_PROXY_RX_ID__BEGIN
+#define bcmolt_gpon_onu_proxy_rx_id_cpu_packet                                                  BCMOLT_GPON_ONU_PROXY_RX_ID_CPU_PACKET
+#define bcmolt_gpon_onu_proxy_rx_id_omci_packet                                                 BCMOLT_GPON_ONU_PROXY_RX_ID_OMCI_PACKET
+#define bcmolt_gpon_onu_proxy_rx_id__num_of                                                     BCMOLT_GPON_ONU_PROXY_RX_ID__NUM_OF
+#define bcmolt_log_entry_auto_id__begin                                                         BCMOLT_LOG_ENTRY_AUTO_ID__BEGIN
+#define bcmolt_log_entry_auto_id_stat_alarm_cleared                                             BCMOLT_LOG_ENTRY_AUTO_ID_STAT_ALARM_CLEARED
+#define bcmolt_log_entry_auto_id_stat_alarm_raised                                              BCMOLT_LOG_ENTRY_AUTO_ID_STAT_ALARM_RAISED
+#define bcmolt_log_entry_auto_id__num_of                                                        BCMOLT_LOG_ENTRY_AUTO_ID__NUM_OF
+#define bcmolt_logger_auto_id__begin                                                            BCMOLT_LOGGER_AUTO_ID__BEGIN
+#define bcmolt_logger_auto_id_stat_alarm_cleared                                                BCMOLT_LOGGER_AUTO_ID_STAT_ALARM_CLEARED
+#define bcmolt_logger_auto_id_stat_alarm_raised                                                 BCMOLT_LOGGER_AUTO_ID_STAT_ALARM_RAISED
+#define bcmolt_logger_auto_id__num_of                                                           BCMOLT_LOGGER_AUTO_ID__NUM_OF
+#define bcmolt_logger_oper_id__begin                                                            BCMOLT_LOGGER_OPER_ID__BEGIN
+#define bcmolt_logger_oper_id_clear_log                                                         BCMOLT_LOGGER_OPER_ID_CLEAR_LOG
+#define bcmolt_logger_oper_id__num_of                                                           BCMOLT_LOGGER_OPER_ID__NUM_OF
+#define bcmolt_nni_auto_id__begin                                                               BCMOLT_NNI_AUTO_ID__BEGIN
+#define bcmolt_nni_auto_id_stat_alarm_cleared                                                   BCMOLT_NNI_AUTO_ID_STAT_ALARM_CLEARED
+#define bcmolt_nni_auto_id_stat_alarm_raised                                                    BCMOLT_NNI_AUTO_ID_STAT_ALARM_RAISED
+#define bcmolt_nni_auto_id_status_changed                                                       BCMOLT_NNI_AUTO_ID_STATUS_CHANGED
+#define bcmolt_nni_auto_id__num_of                                                              BCMOLT_NNI_AUTO_ID__NUM_OF
+#define bcmolt_trx_calibration_auto_id__begin                                                   BCMOLT_TRX_CALIBRATION_AUTO_ID__BEGIN
+#define bcmolt_trx_calibration_auto_id_capture_window_and_statistic_completed                   BCMOLT_TRX_CALIBRATION_AUTO_ID_CAPTURE_WINDOW_AND_STATISTIC_COMPLETED
+#define bcmolt_trx_calibration_auto_id__num_of                                                  BCMOLT_TRX_CALIBRATION_AUTO_ID__NUM_OF
+#define bcmolt_trx_calibration_oper_id__begin                                                   BCMOLT_TRX_CALIBRATION_OPER_ID__BEGIN
+#define bcmolt_trx_calibration_oper_id_start_capture_window                                     BCMOLT_TRX_CALIBRATION_OPER_ID_START_CAPTURE_WINDOW
+#define bcmolt_trx_calibration_oper_id_stop_capture_window                                      BCMOLT_TRX_CALIBRATION_OPER_ID_STOP_CAPTURE_WINDOW
+#define bcmolt_trx_calibration_oper_id__num_of                                                  BCMOLT_TRX_CALIBRATION_OPER_ID__NUM_OF
+#define bcmolt_xgpon_alloc_auto_id__begin                                                       BCMOLT_XGPON_ALLOC_AUTO_ID__BEGIN
+#define bcmolt_xgpon_alloc_auto_id_configuration_completed                                      BCMOLT_XGPON_ALLOC_AUTO_ID_CONFIGURATION_COMPLETED
+#define bcmolt_xgpon_alloc_auto_id_get_alloc_stats_completed                                    BCMOLT_XGPON_ALLOC_AUTO_ID_GET_ALLOC_STATS_COMPLETED
+#define bcmolt_xgpon_alloc_auto_id_stat_alarm_cleared                                           BCMOLT_XGPON_ALLOC_AUTO_ID_STAT_ALARM_CLEARED
+#define bcmolt_xgpon_alloc_auto_id_stat_alarm_raised                                            BCMOLT_XGPON_ALLOC_AUTO_ID_STAT_ALARM_RAISED
+#define bcmolt_xgpon_alloc_auto_id__num_of                                                      BCMOLT_XGPON_ALLOC_AUTO_ID__NUM_OF
+#define bcmolt_xgpon_alloc_oper_id__begin                                                       BCMOLT_XGPON_ALLOC_OPER_ID__BEGIN
+#define bcmolt_xgpon_alloc_oper_id_get_stats                                                    BCMOLT_XGPON_ALLOC_OPER_ID_GET_STATS
+#define bcmolt_xgpon_alloc_oper_id_set_state                                                    BCMOLT_XGPON_ALLOC_OPER_ID_SET_STATE
+#define bcmolt_xgpon_alloc_oper_id__num_of                                                      BCMOLT_XGPON_ALLOC_OPER_ID__NUM_OF
+#define bcmolt_xgpon_gem_port_auto_id__begin                                                    BCMOLT_XGPON_GEM_PORT_AUTO_ID__BEGIN
+#define bcmolt_xgpon_gem_port_auto_id_stat_alarm_cleared                                        BCMOLT_XGPON_GEM_PORT_AUTO_ID_STAT_ALARM_CLEARED
+#define bcmolt_xgpon_gem_port_auto_id_stat_alarm_raised                                         BCMOLT_XGPON_GEM_PORT_AUTO_ID_STAT_ALARM_RAISED
+#define bcmolt_xgpon_gem_port_auto_id__num_of                                                   BCMOLT_XGPON_GEM_PORT_AUTO_ID__NUM_OF
+#define bcmolt_xgpon_ni_auto_id__begin                                                          BCMOLT_XGPON_NI_AUTO_ID__BEGIN
+#define bcmolt_xgpon_ni_auto_id_activate_all_onus_completed                                     BCMOLT_XGPON_NI_AUTO_ID_ACTIVATE_ALL_ONUS_COMPLETED
+#define bcmolt_xgpon_ni_auto_id_cpu_packets_failure                                             BCMOLT_XGPON_NI_AUTO_ID_CPU_PACKETS_FAILURE
+#define bcmolt_xgpon_ni_auto_id_deactivate_all_onus_completed                                   BCMOLT_XGPON_NI_AUTO_ID_DEACTIVATE_ALL_ONUS_COMPLETED
+#define bcmolt_xgpon_ni_auto_id_disable_all_onus_completed                                      BCMOLT_XGPON_NI_AUTO_ID_DISABLE_ALL_ONUS_COMPLETED
+#define bcmolt_xgpon_ni_auto_id_enable_all_onus_completed                                       BCMOLT_XGPON_NI_AUTO_ID_ENABLE_ALL_ONUS_COMPLETED
+#define bcmolt_xgpon_ni_auto_id_los                                                             BCMOLT_XGPON_NI_AUTO_ID_LOS
+#define bcmolt_xgpon_ni_auto_id_onu_discovered                                                  BCMOLT_XGPON_NI_AUTO_ID_ONU_DISCOVERED
+#define bcmolt_xgpon_ni_auto_id_onu_upgrade_complete                                            BCMOLT_XGPON_NI_AUTO_ID_ONU_UPGRADE_COMPLETE
+#define bcmolt_xgpon_ni_auto_id_protection_switching_onus_ranged                                BCMOLT_XGPON_NI_AUTO_ID_PROTECTION_SWITCHING_ONUS_RANGED
+#define bcmolt_xgpon_ni_auto_id_protection_switching_switchover_completed                       BCMOLT_XGPON_NI_AUTO_ID_PROTECTION_SWITCHING_SWITCHOVER_COMPLETED
+#define bcmolt_xgpon_ni_auto_id_protection_switching_traffic_resume                             BCMOLT_XGPON_NI_AUTO_ID_PROTECTION_SWITCHING_TRAFFIC_RESUME
+#define bcmolt_xgpon_ni_auto_id_rogue_detection_completed                                       BCMOLT_XGPON_NI_AUTO_ID_ROGUE_DETECTION_COMPLETED
+#define bcmolt_xgpon_ni_auto_id_rogue_onu_special_map_cycle_start                               BCMOLT_XGPON_NI_AUTO_ID_ROGUE_ONU_SPECIAL_MAP_CYCLE_START
+#define bcmolt_xgpon_ni_auto_id_serial_number_acquisition_cycle_start                           BCMOLT_XGPON_NI_AUTO_ID_SERIAL_NUMBER_ACQUISITION_CYCLE_START
+#define bcmolt_xgpon_ni_auto_id_standby_pon_monitoring_cycle_completed                          BCMOLT_XGPON_NI_AUTO_ID_STANDBY_PON_MONITORING_CYCLE_COMPLETED
+#define bcmolt_xgpon_ni_auto_id_stat_alarm_cleared                                              BCMOLT_XGPON_NI_AUTO_ID_STAT_ALARM_CLEARED
+#define bcmolt_xgpon_ni_auto_id_stat_alarm_raised                                               BCMOLT_XGPON_NI_AUTO_ID_STAT_ALARM_RAISED
+#define bcmolt_xgpon_ni_auto_id_state_change_completed                                          BCMOLT_XGPON_NI_AUTO_ID_STATE_CHANGE_COMPLETED
+#define bcmolt_xgpon_ni_auto_id_tod_request_completed                                           BCMOLT_XGPON_NI_AUTO_ID_TOD_REQUEST_COMPLETED
+#define bcmolt_xgpon_ni_auto_id__num_of                                                         BCMOLT_XGPON_NI_AUTO_ID__NUM_OF
+#define bcmolt_xgpon_ni_oper_id__begin                                                          BCMOLT_XGPON_NI_OPER_ID__BEGIN
+#define bcmolt_xgpon_ni_oper_id_adjust_tx_wavelength                                            BCMOLT_XGPON_NI_OPER_ID_ADJUST_TX_WAVELENGTH
+#define bcmolt_xgpon_ni_oper_id_disable_serial_number                                           BCMOLT_XGPON_NI_OPER_ID_DISABLE_SERIAL_NUMBER
+#define bcmolt_xgpon_ni_oper_id_reset                                                           BCMOLT_XGPON_NI_OPER_ID_RESET
+#define bcmolt_xgpon_ni_oper_id_rogue_detection_window                                          BCMOLT_XGPON_NI_OPER_ID_ROGUE_DETECTION_WINDOW
+#define bcmolt_xgpon_ni_oper_id_run_special_bw_map                                              BCMOLT_XGPON_NI_OPER_ID_RUN_SPECIAL_BW_MAP
+#define bcmolt_xgpon_ni_oper_id_set_onu_state                                                   BCMOLT_XGPON_NI_OPER_ID_SET_ONU_STATE
+#define bcmolt_xgpon_ni_oper_id_set_pon_state                                                   BCMOLT_XGPON_NI_OPER_ID_SET_PON_STATE
+#define bcmolt_xgpon_ni_oper_id_single_request_standby_pon_monitoring                           BCMOLT_XGPON_NI_OPER_ID_SINGLE_REQUEST_STANDBY_PON_MONITORING
+#define bcmolt_xgpon_ni_oper_id_start_onu_upgrade                                               BCMOLT_XGPON_NI_OPER_ID_START_ONU_UPGRADE
+#define bcmolt_xgpon_ni_oper_id_tod_request                                                     BCMOLT_XGPON_NI_OPER_ID_TOD_REQUEST
+#define bcmolt_xgpon_ni_oper_id__num_of                                                         BCMOLT_XGPON_NI_OPER_ID__NUM_OF
+#define bcmolt_xgpon_ni_proxy_id__begin                                                         BCMOLT_XGPON_NI_PROXY_ID__BEGIN
+#define bcmolt_xgpon_ni_proxy_id_broadcast_ploam_packet                                         BCMOLT_XGPON_NI_PROXY_ID_BROADCAST_PLOAM_PACKET
+#define bcmolt_xgpon_ni_proxy_id_cpu_packets                                                    BCMOLT_XGPON_NI_PROXY_ID_CPU_PACKETS
+#define bcmolt_xgpon_ni_proxy_id__num_of                                                        BCMOLT_XGPON_NI_PROXY_ID__NUM_OF
+#define bcmolt_xgpon_onu_auto_id__begin                                                         BCMOLT_XGPON_ONU_AUTO_ID__BEGIN
+#define bcmolt_xgpon_onu_auto_id_dfi                                                            BCMOLT_XGPON_ONU_AUTO_ID_DFI
+#define bcmolt_xgpon_onu_auto_id_dgi                                                            BCMOLT_XGPON_ONU_AUTO_ID_DGI
+#define bcmolt_xgpon_onu_auto_id_dowi                                                           BCMOLT_XGPON_ONU_AUTO_ID_DOWI
+#define bcmolt_xgpon_onu_auto_id_invalid_dbru_report                                            BCMOLT_XGPON_ONU_AUTO_ID_INVALID_DBRU_REPORT
+#define bcmolt_xgpon_onu_auto_id_key_exchange_completed                                         BCMOLT_XGPON_ONU_AUTO_ID_KEY_EXCHANGE_COMPLETED
+#define bcmolt_xgpon_onu_auto_id_key_exchange_cycle_skipped                                     BCMOLT_XGPON_ONU_AUTO_ID_KEY_EXCHANGE_CYCLE_SKIPPED
+#define bcmolt_xgpon_onu_auto_id_key_exchange_key_mismatch                                      BCMOLT_XGPON_ONU_AUTO_ID_KEY_EXCHANGE_KEY_MISMATCH
+#define bcmolt_xgpon_onu_auto_id_key_exchange_key_request_timeout                               BCMOLT_XGPON_ONU_AUTO_ID_KEY_EXCHANGE_KEY_REQUEST_TIMEOUT
+#define bcmolt_xgpon_onu_auto_id_looci                                                          BCMOLT_XGPON_ONU_AUTO_ID_LOOCI
+#define bcmolt_xgpon_onu_auto_id_onu_activation_completed                                       BCMOLT_XGPON_ONU_AUTO_ID_ONU_ACTIVATION_COMPLETED
+#define bcmolt_xgpon_onu_auto_id_onu_alarm                                                      BCMOLT_XGPON_ONU_AUTO_ID_ONU_ALARM
+#define bcmolt_xgpon_onu_auto_id_onu_deactivation_completed                                     BCMOLT_XGPON_ONU_AUTO_ID_ONU_DEACTIVATION_COMPLETED
+#define bcmolt_xgpon_onu_auto_id_onu_disable_completed                                          BCMOLT_XGPON_ONU_AUTO_ID_ONU_DISABLE_COMPLETED
+#define bcmolt_xgpon_onu_auto_id_onu_enable_completed                                           BCMOLT_XGPON_ONU_AUTO_ID_ONU_ENABLE_COMPLETED
+#define bcmolt_xgpon_onu_auto_id_onu_tuning_in_completed                                        BCMOLT_XGPON_ONU_AUTO_ID_ONU_TUNING_IN_COMPLETED
+#define bcmolt_xgpon_onu_auto_id_onu_tuning_out_completed                                       BCMOLT_XGPON_ONU_AUTO_ID_ONU_TUNING_OUT_COMPLETED
+#define bcmolt_xgpon_onu_auto_id_optical_reflection                                             BCMOLT_XGPON_ONU_AUTO_ID_OPTICAL_REFLECTION
+#define bcmolt_xgpon_onu_auto_id_possible_drift                                                 BCMOLT_XGPON_ONU_AUTO_ID_POSSIBLE_DRIFT
+#define bcmolt_xgpon_onu_auto_id_power_consumption_report                                       BCMOLT_XGPON_ONU_AUTO_ID_POWER_CONSUMPTION_REPORT
+#define bcmolt_xgpon_onu_auto_id_power_level_report                                             BCMOLT_XGPON_ONU_AUTO_ID_POWER_LEVEL_REPORT
+#define bcmolt_xgpon_onu_auto_id_power_management_state_change                                  BCMOLT_XGPON_ONU_AUTO_ID_POWER_MANAGEMENT_STATE_CHANGE
+#define bcmolt_xgpon_onu_auto_id_pqsi                                                           BCMOLT_XGPON_ONU_AUTO_ID_PQSI
+#define bcmolt_xgpon_onu_auto_id_ranging_completed                                              BCMOLT_XGPON_ONU_AUTO_ID_RANGING_COMPLETED
+#define bcmolt_xgpon_onu_auto_id_registration_id                                                BCMOLT_XGPON_ONU_AUTO_ID_REGISTRATION_ID
+#define bcmolt_xgpon_onu_auto_id_rssi_measurement_completed                                     BCMOLT_XGPON_ONU_AUTO_ID_RSSI_MEASUREMENT_COMPLETED
+#define bcmolt_xgpon_onu_auto_id_sdi                                                            BCMOLT_XGPON_ONU_AUTO_ID_SDI
+#define bcmolt_xgpon_onu_auto_id_secure_mutual_authentication_failure                           BCMOLT_XGPON_ONU_AUTO_ID_SECURE_MUTUAL_AUTHENTICATION_FAILURE
+#define bcmolt_xgpon_onu_auto_id_sfi                                                            BCMOLT_XGPON_ONU_AUTO_ID_SFI
+#define bcmolt_xgpon_onu_auto_id_stat_alarm_cleared                                             BCMOLT_XGPON_ONU_AUTO_ID_STAT_ALARM_CLEARED
+#define bcmolt_xgpon_onu_auto_id_stat_alarm_raised                                              BCMOLT_XGPON_ONU_AUTO_ID_STAT_ALARM_RAISED
+#define bcmolt_xgpon_onu_auto_id_sufi                                                           BCMOLT_XGPON_ONU_AUTO_ID_SUFI
+#define bcmolt_xgpon_onu_auto_id_tiwi                                                           BCMOLT_XGPON_ONU_AUTO_ID_TIWI
+#define bcmolt_xgpon_onu_auto_id_tuning_response                                                BCMOLT_XGPON_ONU_AUTO_ID_TUNING_RESPONSE
+#define bcmolt_xgpon_onu_auto_id__num_of                                                        BCMOLT_XGPON_ONU_AUTO_ID__NUM_OF
+#define bcmolt_xgpon_onu_oper_id__begin                                                         BCMOLT_XGPON_ONU_OPER_ID__BEGIN
+#define bcmolt_xgpon_onu_oper_id_adjust_tx_wavelength                                           BCMOLT_XGPON_ONU_OPER_ID_ADJUST_TX_WAVELENGTH
+#define bcmolt_xgpon_onu_oper_id_change_power_levelling                                         BCMOLT_XGPON_ONU_OPER_ID_CHANGE_POWER_LEVELLING
+#define bcmolt_xgpon_onu_oper_id_get_power_consumption                                          BCMOLT_XGPON_ONU_OPER_ID_GET_POWER_CONSUMPTION
+#define bcmolt_xgpon_onu_oper_id_get_power_level                                                BCMOLT_XGPON_ONU_OPER_ID_GET_POWER_LEVEL
+#define bcmolt_xgpon_onu_oper_id_onu_tuning_in                                                  BCMOLT_XGPON_ONU_OPER_ID_ONU_TUNING_IN
+#define bcmolt_xgpon_onu_oper_id_onu_tuning_out                                                 BCMOLT_XGPON_ONU_OPER_ID_ONU_TUNING_OUT
+#define bcmolt_xgpon_onu_oper_id_request_registration                                           BCMOLT_XGPON_ONU_OPER_ID_REQUEST_REGISTRATION
+#define bcmolt_xgpon_onu_oper_id_rssi_measurement                                               BCMOLT_XGPON_ONU_OPER_ID_RSSI_MEASUREMENT
+#define bcmolt_xgpon_onu_oper_id_secure_mutual_authentication                                   BCMOLT_XGPON_ONU_OPER_ID_SECURE_MUTUAL_AUTHENTICATION
+#define bcmolt_xgpon_onu_oper_id_set_onu_state                                                  BCMOLT_XGPON_ONU_OPER_ID_SET_ONU_STATE
+#define bcmolt_xgpon_onu_oper_id__num_of                                                        BCMOLT_XGPON_ONU_OPER_ID__NUM_OF
+#define bcmolt_xgpon_onu_proxy_id__begin                                                        BCMOLT_XGPON_ONU_PROXY_ID__BEGIN
+#define bcmolt_xgpon_onu_proxy_id_cpu_packets                                                   BCMOLT_XGPON_ONU_PROXY_ID_CPU_PACKETS
+#define bcmolt_xgpon_onu_proxy_id_ploam_packet                                                  BCMOLT_XGPON_ONU_PROXY_ID_PLOAM_PACKET
+#define bcmolt_xgpon_onu_proxy_id__num_of                                                       BCMOLT_XGPON_ONU_PROXY_ID__NUM_OF
+#define bcmolt_xgpon_onu_proxy_rx_id__begin                                                     BCMOLT_XGPON_ONU_PROXY_RX_ID__BEGIN
+#define bcmolt_xgpon_onu_proxy_rx_id_cpu_packet                                                 BCMOLT_XGPON_ONU_PROXY_RX_ID_CPU_PACKET
+#define bcmolt_xgpon_onu_proxy_rx_id_omci_packet                                                BCMOLT_XGPON_ONU_PROXY_RX_ID_OMCI_PACKET
+#define bcmolt_xgpon_onu_proxy_rx_id__num_of                                                    BCMOLT_XGPON_ONU_PROXY_RX_ID__NUM_OF
+#define bcmolt_ae_ni_key_id_ae_ni                                                               BCMOLT_AE_NI_KEY_ID_AE_NI
+#define bcmolt_ae_ni_key_id__num_of                                                             BCMOLT_AE_NI_KEY_ID__NUM_OF
+#define bcmolt_ae_ni_cfg_id_mac_address                                                         BCMOLT_AE_NI_CFG_ID_MAC_ADDRESS
+#define bcmolt_ae_ni_cfg_id_ae_ni_en                                                            BCMOLT_AE_NI_CFG_ID_AE_NI_EN
+#define bcmolt_ae_ni_cfg_id_mtu_10g                                                             BCMOLT_AE_NI_CFG_ID_MTU_10G
+#define bcmolt_ae_ni_cfg_id_prbs_generator                                                      BCMOLT_AE_NI_CFG_ID_PRBS_GENERATOR
+#define bcmolt_ae_ni_cfg_id_prbs_checker                                                        BCMOLT_AE_NI_CFG_ID_PRBS_CHECKER
+#define bcmolt_ae_ni_cfg_id_prbs_status                                                         BCMOLT_AE_NI_CFG_ID_PRBS_STATUS
+#define bcmolt_ae_ni_cfg_id__num_of                                                             BCMOLT_AE_NI_CFG_ID__NUM_OF
+#define bcmolt_ae_ni_set_ae_ni_en_state_id_new_state                                            BCMOLT_AE_NI_SET_AE_NI_EN_STATE_ID_NEW_STATE
+#define bcmolt_ae_ni_set_ae_ni_en_state_id__num_of                                              BCMOLT_AE_NI_SET_AE_NI_EN_STATE_ID__NUM_OF
+#define bcmolt_ae_path_ds_key_id_ae_ni                                                          BCMOLT_AE_PATH_DS_KEY_ID_AE_NI
+#define bcmolt_ae_path_ds_key_id__num_of                                                        BCMOLT_AE_PATH_DS_KEY_ID__NUM_OF
+#define bcmolt_ae_path_ds_stat_id_bytes                                                         BCMOLT_AE_PATH_DS_STAT_ID_BYTES
+#define bcmolt_ae_path_ds_stat_id_frames                                                        BCMOLT_AE_PATH_DS_STAT_ID_FRAMES
+#define bcmolt_ae_path_ds_stat_id_frames_64                                                     BCMOLT_AE_PATH_DS_STAT_ID_FRAMES_64
+#define bcmolt_ae_path_ds_stat_id_frames_65_127                                                 BCMOLT_AE_PATH_DS_STAT_ID_FRAMES_65_127
+#define bcmolt_ae_path_ds_stat_id_frames_128_255                                                BCMOLT_AE_PATH_DS_STAT_ID_FRAMES_128_255
+#define bcmolt_ae_path_ds_stat_id_frames_256_511                                                BCMOLT_AE_PATH_DS_STAT_ID_FRAMES_256_511
+#define bcmolt_ae_path_ds_stat_id_frames_512_1023                                               BCMOLT_AE_PATH_DS_STAT_ID_FRAMES_512_1023
+#define bcmolt_ae_path_ds_stat_id_frames_1024_1518                                              BCMOLT_AE_PATH_DS_STAT_ID_FRAMES_1024_1518
+#define bcmolt_ae_path_ds_stat_id_frames_1519_2047                                              BCMOLT_AE_PATH_DS_STAT_ID_FRAMES_1519_2047
+#define bcmolt_ae_path_ds_stat_id_frames_2048_4095                                              BCMOLT_AE_PATH_DS_STAT_ID_FRAMES_2048_4095
+#define bcmolt_ae_path_ds_stat_id_frames_4096_9216                                              BCMOLT_AE_PATH_DS_STAT_ID_FRAMES_4096_9216
+#define bcmolt_ae_path_ds_stat_id_frames_9217_16383                                             BCMOLT_AE_PATH_DS_STAT_ID_FRAMES_9217_16383
+#define bcmolt_ae_path_ds_stat_id_broadcast_frames                                              BCMOLT_AE_PATH_DS_STAT_ID_BROADCAST_FRAMES
+#define bcmolt_ae_path_ds_stat_id_data_bytes                                                    BCMOLT_AE_PATH_DS_STAT_ID_DATA_BYTES
+#define bcmolt_ae_path_ds_stat_id_multicast_frames                                              BCMOLT_AE_PATH_DS_STAT_ID_MULTICAST_FRAMES
+#define bcmolt_ae_path_ds_stat_id_unicast_frames                                                BCMOLT_AE_PATH_DS_STAT_ID_UNICAST_FRAMES
+#define bcmolt_ae_path_ds_stat_id_abort_frames                                                  BCMOLT_AE_PATH_DS_STAT_ID_ABORT_FRAMES
+#define bcmolt_ae_path_ds_stat_id__num_of                                                       BCMOLT_AE_PATH_DS_STAT_ID__NUM_OF
+#define bcmolt_ae_path_ds_stat_cfg_id_cfg                                                       BCMOLT_AE_PATH_DS_STAT_CFG_ID_CFG
+#define bcmolt_ae_path_ds_stat_cfg_id__num_of                                                   BCMOLT_AE_PATH_DS_STAT_CFG_ID__NUM_OF
+#define bcmolt_ae_path_ds_stat_alarm_cleared_id_stat                                            BCMOLT_AE_PATH_DS_STAT_ALARM_CLEARED_ID_STAT
+#define bcmolt_ae_path_ds_stat_alarm_cleared_id__num_of                                         BCMOLT_AE_PATH_DS_STAT_ALARM_CLEARED_ID__NUM_OF
+#define bcmolt_ae_path_ds_stat_alarm_raised_id_stat                                             BCMOLT_AE_PATH_DS_STAT_ALARM_RAISED_ID_STAT
+#define bcmolt_ae_path_ds_stat_alarm_raised_id__num_of                                          BCMOLT_AE_PATH_DS_STAT_ALARM_RAISED_ID__NUM_OF
+#define bcmolt_ae_path_ds_auto_cfg_id_stat_alarm_cleared                                        BCMOLT_AE_PATH_DS_AUTO_CFG_ID_STAT_ALARM_CLEARED
+#define bcmolt_ae_path_ds_auto_cfg_id_stat_alarm_raised                                         BCMOLT_AE_PATH_DS_AUTO_CFG_ID_STAT_ALARM_RAISED
+#define bcmolt_ae_path_ds_auto_cfg_id__num_of                                                   BCMOLT_AE_PATH_DS_AUTO_CFG_ID__NUM_OF
+#define bcmolt_ae_path_us_key_id_ae_ni                                                          BCMOLT_AE_PATH_US_KEY_ID_AE_NI
+#define bcmolt_ae_path_us_key_id__num_of                                                        BCMOLT_AE_PATH_US_KEY_ID__NUM_OF
+#define bcmolt_ae_path_us_stat_id_bytes                                                         BCMOLT_AE_PATH_US_STAT_ID_BYTES
+#define bcmolt_ae_path_us_stat_id_frames                                                        BCMOLT_AE_PATH_US_STAT_ID_FRAMES
+#define bcmolt_ae_path_us_stat_id_frames_64                                                     BCMOLT_AE_PATH_US_STAT_ID_FRAMES_64
+#define bcmolt_ae_path_us_stat_id_frames_65_127                                                 BCMOLT_AE_PATH_US_STAT_ID_FRAMES_65_127
+#define bcmolt_ae_path_us_stat_id_frames_128_255                                                BCMOLT_AE_PATH_US_STAT_ID_FRAMES_128_255
+#define bcmolt_ae_path_us_stat_id_frames_256_511                                                BCMOLT_AE_PATH_US_STAT_ID_FRAMES_256_511
+#define bcmolt_ae_path_us_stat_id_frames_512_1023                                               BCMOLT_AE_PATH_US_STAT_ID_FRAMES_512_1023
+#define bcmolt_ae_path_us_stat_id_frames_1024_1518                                              BCMOLT_AE_PATH_US_STAT_ID_FRAMES_1024_1518
+#define bcmolt_ae_path_us_stat_id_frames_1519_2047                                              BCMOLT_AE_PATH_US_STAT_ID_FRAMES_1519_2047
+#define bcmolt_ae_path_us_stat_id_frames_2048_4095                                              BCMOLT_AE_PATH_US_STAT_ID_FRAMES_2048_4095
+#define bcmolt_ae_path_us_stat_id_frames_4096_9216                                              BCMOLT_AE_PATH_US_STAT_ID_FRAMES_4096_9216
+#define bcmolt_ae_path_us_stat_id_frames_9217_16383                                             BCMOLT_AE_PATH_US_STAT_ID_FRAMES_9217_16383
+#define bcmolt_ae_path_us_stat_id_broadcast_frames                                              BCMOLT_AE_PATH_US_STAT_ID_BROADCAST_FRAMES
+#define bcmolt_ae_path_us_stat_id_data_bytes                                                    BCMOLT_AE_PATH_US_STAT_ID_DATA_BYTES
+#define bcmolt_ae_path_us_stat_id_multicast_frames                                              BCMOLT_AE_PATH_US_STAT_ID_MULTICAST_FRAMES
+#define bcmolt_ae_path_us_stat_id_unicast_frames                                                BCMOLT_AE_PATH_US_STAT_ID_UNICAST_FRAMES
+#define bcmolt_ae_path_us_stat_id_abort_frames                                                  BCMOLT_AE_PATH_US_STAT_ID_ABORT_FRAMES
+#define bcmolt_ae_path_us_stat_id_fcs_error                                                     BCMOLT_AE_PATH_US_STAT_ID_FCS_ERROR
+#define bcmolt_ae_path_us_stat_id_oversize_error                                                BCMOLT_AE_PATH_US_STAT_ID_OVERSIZE_ERROR
+#define bcmolt_ae_path_us_stat_id_runt_error                                                    BCMOLT_AE_PATH_US_STAT_ID_RUNT_ERROR
+#define bcmolt_ae_path_us_stat_id__num_of                                                       BCMOLT_AE_PATH_US_STAT_ID__NUM_OF
+#define bcmolt_ae_path_us_stat_cfg_id_cfg                                                       BCMOLT_AE_PATH_US_STAT_CFG_ID_CFG
+#define bcmolt_ae_path_us_stat_cfg_id__num_of                                                   BCMOLT_AE_PATH_US_STAT_CFG_ID__NUM_OF
+#define bcmolt_ae_path_us_stat_alarm_cleared_id_stat                                            BCMOLT_AE_PATH_US_STAT_ALARM_CLEARED_ID_STAT
+#define bcmolt_ae_path_us_stat_alarm_cleared_id__num_of                                         BCMOLT_AE_PATH_US_STAT_ALARM_CLEARED_ID__NUM_OF
+#define bcmolt_ae_path_us_stat_alarm_raised_id_stat                                             BCMOLT_AE_PATH_US_STAT_ALARM_RAISED_ID_STAT
+#define bcmolt_ae_path_us_stat_alarm_raised_id__num_of                                          BCMOLT_AE_PATH_US_STAT_ALARM_RAISED_ID__NUM_OF
+#define bcmolt_ae_path_us_auto_cfg_id_stat_alarm_cleared                                        BCMOLT_AE_PATH_US_AUTO_CFG_ID_STAT_ALARM_CLEARED
+#define bcmolt_ae_path_us_auto_cfg_id_stat_alarm_raised                                         BCMOLT_AE_PATH_US_AUTO_CFG_ID_STAT_ALARM_RAISED
+#define bcmolt_ae_path_us_auto_cfg_id__num_of                                                   BCMOLT_AE_PATH_US_AUTO_CFG_ID__NUM_OF
+#define bcmolt_channel_key_id_pon_ni                                                            BCMOLT_CHANNEL_KEY_ID_PON_NI
+#define bcmolt_channel_key_id__num_of                                                           BCMOLT_CHANNEL_KEY_ID__NUM_OF
+#define bcmolt_channel_cfg_id_operation_control                                                 BCMOLT_CHANNEL_CFG_ID_OPERATION_CONTROL
+#define bcmolt_channel_cfg_id_tol                                                               BCMOLT_CHANNEL_CFG_ID_TOL
+#define bcmolt_channel_cfg_id_system_profile                                                    BCMOLT_CHANNEL_CFG_ID_SYSTEM_PROFILE
+#define bcmolt_channel_cfg_id_channel_profile                                                   BCMOLT_CHANNEL_CFG_ID_CHANNEL_PROFILE
+#define bcmolt_channel_cfg_id__num_of                                                           BCMOLT_CHANNEL_CFG_ID__NUM_OF
+#define bcmolt_debug_key_id_reserved                                                            BCMOLT_DEBUG_KEY_ID_RESERVED
+#define bcmolt_debug_key_id__num_of                                                             BCMOLT_DEBUG_KEY_ID__NUM_OF
+#define bcmolt_debug_cfg_id_console_redirection                                                 BCMOLT_DEBUG_CFG_ID_CONSOLE_REDIRECTION
+#define bcmolt_debug_cfg_id_indications_dropped                                                 BCMOLT_DEBUG_CFG_ID_INDICATIONS_DROPPED
+#define bcmolt_debug_cfg_id_file_used_percent                                                   BCMOLT_DEBUG_CFG_ID_FILE_USED_PERCENT
+#define bcmolt_debug_cfg_id_api_capture_cfg                                                     BCMOLT_DEBUG_CFG_ID_API_CAPTURE_CFG
+#define bcmolt_debug_cfg_id_api_capture_stats                                                   BCMOLT_DEBUG_CFG_ID_API_CAPTURE_STATS
+#define bcmolt_debug_cfg_id_api_capture_buffer_read                                             BCMOLT_DEBUG_CFG_ID_API_CAPTURE_BUFFER_READ
+#define bcmolt_debug_cfg_id_api_capture_buffer                                                  BCMOLT_DEBUG_CFG_ID_API_CAPTURE_BUFFER
+#define bcmolt_debug_cfg_id__num_of                                                             BCMOLT_DEBUG_CFG_ID__NUM_OF
+#define bcmolt_debug_cli_output_id_data                                                         BCMOLT_DEBUG_CLI_OUTPUT_ID_DATA
+#define bcmolt_debug_cli_output_id__num_of                                                      BCMOLT_DEBUG_CLI_OUTPUT_ID__NUM_OF
+#define bcmolt_debug_file_almost_full_id__num_of                                                BCMOLT_DEBUG_FILE_ALMOST_FULL_ID__NUM_OF
+#define bcmolt_debug_auto_cfg_id_cli_output                                                     BCMOLT_DEBUG_AUTO_CFG_ID_CLI_OUTPUT
+#define bcmolt_debug_auto_cfg_id_file_almost_full                                               BCMOLT_DEBUG_AUTO_CFG_ID_FILE_ALMOST_FULL
+#define bcmolt_debug_auto_cfg_id__num_of                                                        BCMOLT_DEBUG_AUTO_CFG_ID__NUM_OF
+#define bcmolt_debug_cli_input_id_data                                                          BCMOLT_DEBUG_CLI_INPUT_ID_DATA
+#define bcmolt_debug_cli_input_id__num_of                                                       BCMOLT_DEBUG_CLI_INPUT_ID__NUM_OF
+#define bcmolt_debug_reset_api_capture_id__num_of                                               BCMOLT_DEBUG_RESET_API_CAPTURE_ID__NUM_OF
+#define bcmolt_debug_start_api_capture_id__num_of                                               BCMOLT_DEBUG_START_API_CAPTURE_ID__NUM_OF
+#define bcmolt_debug_stop_api_capture_id__num_of                                                BCMOLT_DEBUG_STOP_API_CAPTURE_ID__NUM_OF
+#define bcmolt_device_key_id_reserved                                                           BCMOLT_DEVICE_KEY_ID_RESERVED
+#define bcmolt_device_key_id__num_of                                                            BCMOLT_DEVICE_KEY_ID__NUM_OF
+#define bcmolt_device_cfg_id_system_mode                                                        BCMOLT_DEVICE_CFG_ID_SYSTEM_MODE
+#define bcmolt_device_cfg_id_keepalive_interval                                                 BCMOLT_DEVICE_CFG_ID_KEEPALIVE_INTERVAL
+#define bcmolt_device_cfg_id_keepalive_tolerance                                                BCMOLT_DEVICE_CFG_ID_KEEPALIVE_TOLERANCE
+#define bcmolt_device_cfg_id_firmware_sw_version                                                BCMOLT_DEVICE_CFG_ID_FIRMWARE_SW_VERSION
+#define bcmolt_device_cfg_id_host_sw_version                                                    BCMOLT_DEVICE_CFG_ID_HOST_SW_VERSION
+#define bcmolt_device_cfg_id_chip_revision                                                      BCMOLT_DEVICE_CFG_ID_CHIP_REVISION
+#define bcmolt_device_cfg_id_state                                                              BCMOLT_DEVICE_CFG_ID_STATE
+#define bcmolt_device_cfg_id_debug                                                              BCMOLT_DEVICE_CFG_ID_DEBUG
+#define bcmolt_device_cfg_id_nni_speed                                                          BCMOLT_DEVICE_CFG_ID_NNI_SPEED
+#define bcmolt_device_cfg_id_protection_switching_ext_irq                                       BCMOLT_DEVICE_CFG_ID_PROTECTION_SWITCHING_EXT_IRQ
+#define bcmolt_device_cfg_id_epon_clock_transport_sample_delay                                  BCMOLT_DEVICE_CFG_ID_EPON_CLOCK_TRANSPORT_SAMPLE_DELAY
+#define bcmolt_device_cfg_id_indication_shaping                                                 BCMOLT_DEVICE_CFG_ID_INDICATION_SHAPING
+#define bcmolt_device_cfg_id_chip_temperature                                                   BCMOLT_DEVICE_CFG_ID_CHIP_TEMPERATURE
+#define bcmolt_device_cfg_id_gpon_xgpon_tod_enable                                              BCMOLT_DEVICE_CFG_ID_GPON_XGPON_TOD_ENABLE
+#define bcmolt_device_cfg_id_gpon_xgpon_tod_gpio_pin                                            BCMOLT_DEVICE_CFG_ID_GPON_XGPON_TOD_GPIO_PIN
+#define bcmolt_device_cfg_id_gpon_xgpon_tod_connected_internally                                BCMOLT_DEVICE_CFG_ID_GPON_XGPON_TOD_CONNECTED_INTERNALLY
+#define bcmolt_device_cfg_id_epon_8021_as_tod_format                                            BCMOLT_DEVICE_CFG_ID_EPON_8021_AS_TOD_FORMAT
+#define bcmolt_device_cfg_id_epon_shaper_mode                                                   BCMOLT_DEVICE_CFG_ID_EPON_SHAPER_MODE
+#define bcmolt_device_cfg_id_embedded_image_list                                                BCMOLT_DEVICE_CFG_ID_EMBEDDED_IMAGE_LIST
+#define bcmolt_device_cfg_id_chip_voltage                                                       BCMOLT_DEVICE_CFG_ID_CHIP_VOLTAGE
+#define bcmolt_device_cfg_id_epon_tod_string                                                    BCMOLT_DEVICE_CFG_ID_EPON_TOD_STRING
+#define bcmolt_device_cfg_id_xgpon_num_of_onus                                                  BCMOLT_DEVICE_CFG_ID_XGPON_NUM_OF_ONUS
+#define bcmolt_device_cfg_id_device_ip_address                                                  BCMOLT_DEVICE_CFG_ID_DEVICE_IP_ADDRESS
+#define bcmolt_device_cfg_id_device_udp_port                                                    BCMOLT_DEVICE_CFG_ID_DEVICE_UDP_PORT
+#define bcmolt_device_cfg_id_tod_uart_baudrate                                                  BCMOLT_DEVICE_CFG_ID_TOD_UART_BAUDRATE
+#define bcmolt_device_cfg_id_gpon_xgpon_tod_string_length                                       BCMOLT_DEVICE_CFG_ID_GPON_XGPON_TOD_STRING_LENGTH
+#define bcmolt_device_cfg_id__num_of                                                            BCMOLT_DEVICE_CFG_ID__NUM_OF
+#define bcmolt_device_connection_complete_id_standalone                                         BCMOLT_DEVICE_CONNECTION_COMPLETE_ID_STANDALONE
+#define bcmolt_device_connection_complete_id__num_of                                            BCMOLT_DEVICE_CONNECTION_COMPLETE_ID__NUM_OF
+#define bcmolt_device_connection_established_id__num_of                                         BCMOLT_DEVICE_CONNECTION_ESTABLISHED_ID__NUM_OF
+#define bcmolt_device_connection_failure_id_reason                                              BCMOLT_DEVICE_CONNECTION_FAILURE_ID_REASON
+#define bcmolt_device_connection_failure_id__num_of                                             BCMOLT_DEVICE_CONNECTION_FAILURE_ID__NUM_OF
+#define bcmolt_device_ddr_test_complete_id_ddr_test                                             BCMOLT_DEVICE_DDR_TEST_COMPLETE_ID_DDR_TEST
+#define bcmolt_device_ddr_test_complete_id__num_of                                              BCMOLT_DEVICE_DDR_TEST_COMPLETE_ID__NUM_OF
+#define bcmolt_device_device_keep_alive_id_sequence_number                                      BCMOLT_DEVICE_DEVICE_KEEP_ALIVE_ID_SEQUENCE_NUMBER
+#define bcmolt_device_device_keep_alive_id_time_stamp                                           BCMOLT_DEVICE_DEVICE_KEEP_ALIVE_ID_TIME_STAMP
+#define bcmolt_device_device_keep_alive_id__num_of                                              BCMOLT_DEVICE_DEVICE_KEEP_ALIVE_ID__NUM_OF
+#define bcmolt_device_device_ready_id_firmware_sw_version                                       BCMOLT_DEVICE_DEVICE_READY_ID_FIRMWARE_SW_VERSION
+#define bcmolt_device_device_ready_id_system_mode                                               BCMOLT_DEVICE_DEVICE_READY_ID_SYSTEM_MODE
+#define bcmolt_device_device_ready_id_nni_speed                                                 BCMOLT_DEVICE_DEVICE_READY_ID_NNI_SPEED
+#define bcmolt_device_device_ready_id_chip_revision                                             BCMOLT_DEVICE_DEVICE_READY_ID_CHIP_REVISION
+#define bcmolt_device_device_ready_id_tod_enable                                                BCMOLT_DEVICE_DEVICE_READY_ID_TOD_ENABLE
+#define bcmolt_device_device_ready_id_tod_gpio_pin                                              BCMOLT_DEVICE_DEVICE_READY_ID_TOD_GPIO_PIN
+#define bcmolt_device_device_ready_id__num_of                                                   BCMOLT_DEVICE_DEVICE_READY_ID__NUM_OF
+#define bcmolt_device_disconnection_complete_id__num_of                                         BCMOLT_DEVICE_DISCONNECTION_COMPLETE_ID__NUM_OF
+#define bcmolt_device_image_transfer_complete_id_image_type                                     BCMOLT_DEVICE_IMAGE_TRANSFER_COMPLETE_ID_IMAGE_TYPE
+#define bcmolt_device_image_transfer_complete_id_block_number                                   BCMOLT_DEVICE_IMAGE_TRANSFER_COMPLETE_ID_BLOCK_NUMBER
+#define bcmolt_device_image_transfer_complete_id_status                                         BCMOLT_DEVICE_IMAGE_TRANSFER_COMPLETE_ID_STATUS
+#define bcmolt_device_image_transfer_complete_id__num_of                                        BCMOLT_DEVICE_IMAGE_TRANSFER_COMPLETE_ID__NUM_OF
+#define bcmolt_device_indications_dropped_id_total_count                                        BCMOLT_DEVICE_INDICATIONS_DROPPED_ID_TOTAL_COUNT
+#define bcmolt_device_indications_dropped_id__num_of                                            BCMOLT_DEVICE_INDICATIONS_DROPPED_ID__NUM_OF
+#define bcmolt_device_sw_error_id_task_name                                                     BCMOLT_DEVICE_SW_ERROR_ID_TASK_NAME
+#define bcmolt_device_sw_error_id_file_name                                                     BCMOLT_DEVICE_SW_ERROR_ID_FILE_NAME
+#define bcmolt_device_sw_error_id_line_number                                                   BCMOLT_DEVICE_SW_ERROR_ID_LINE_NUMBER
+#define bcmolt_device_sw_error_id_pon_ni                                                        BCMOLT_DEVICE_SW_ERROR_ID_PON_NI
+#define bcmolt_device_sw_error_id__num_of                                                       BCMOLT_DEVICE_SW_ERROR_ID__NUM_OF
+#define bcmolt_device_sw_exception_id_cpu_id                                                    BCMOLT_DEVICE_SW_EXCEPTION_ID_CPU_ID
+#define bcmolt_device_sw_exception_id_text                                                      BCMOLT_DEVICE_SW_EXCEPTION_ID_TEXT
+#define bcmolt_device_sw_exception_id__num_of                                                   BCMOLT_DEVICE_SW_EXCEPTION_ID__NUM_OF
+#define bcmolt_device_auto_cfg_id_connection_complete                                           BCMOLT_DEVICE_AUTO_CFG_ID_CONNECTION_COMPLETE
+#define bcmolt_device_auto_cfg_id_connection_established                                        BCMOLT_DEVICE_AUTO_CFG_ID_CONNECTION_ESTABLISHED
+#define bcmolt_device_auto_cfg_id_connection_failure                                            BCMOLT_DEVICE_AUTO_CFG_ID_CONNECTION_FAILURE
+#define bcmolt_device_auto_cfg_id_ddr_test_complete                                             BCMOLT_DEVICE_AUTO_CFG_ID_DDR_TEST_COMPLETE
+#define bcmolt_device_auto_cfg_id_device_keep_alive                                             BCMOLT_DEVICE_AUTO_CFG_ID_DEVICE_KEEP_ALIVE
+#define bcmolt_device_auto_cfg_id_device_ready                                                  BCMOLT_DEVICE_AUTO_CFG_ID_DEVICE_READY
+#define bcmolt_device_auto_cfg_id_disconnection_complete                                        BCMOLT_DEVICE_AUTO_CFG_ID_DISCONNECTION_COMPLETE
+#define bcmolt_device_auto_cfg_id_image_transfer_complete                                       BCMOLT_DEVICE_AUTO_CFG_ID_IMAGE_TRANSFER_COMPLETE
+#define bcmolt_device_auto_cfg_id_indications_dropped                                           BCMOLT_DEVICE_AUTO_CFG_ID_INDICATIONS_DROPPED
+#define bcmolt_device_auto_cfg_id_sw_error                                                      BCMOLT_DEVICE_AUTO_CFG_ID_SW_ERROR
+#define bcmolt_device_auto_cfg_id_sw_exception                                                  BCMOLT_DEVICE_AUTO_CFG_ID_SW_EXCEPTION
+#define bcmolt_device_auto_cfg_id__num_of                                                       BCMOLT_DEVICE_AUTO_CFG_ID__NUM_OF
+#define bcmolt_device_connect_id__num_of                                                        BCMOLT_DEVICE_CONNECT_ID__NUM_OF
+#define bcmolt_device_disconnect_id__num_of                                                     BCMOLT_DEVICE_DISCONNECT_ID__NUM_OF
+#define bcmolt_device_host_keep_alive_id_sequence_number                                        BCMOLT_DEVICE_HOST_KEEP_ALIVE_ID_SEQUENCE_NUMBER
+#define bcmolt_device_host_keep_alive_id_time_stamp                                             BCMOLT_DEVICE_HOST_KEEP_ALIVE_ID_TIME_STAMP
+#define bcmolt_device_host_keep_alive_id__num_of                                                BCMOLT_DEVICE_HOST_KEEP_ALIVE_ID__NUM_OF
+#define bcmolt_device_image_transfer_data_id_block_number                                       BCMOLT_DEVICE_IMAGE_TRANSFER_DATA_ID_BLOCK_NUMBER
+#define bcmolt_device_image_transfer_data_id_more_data                                          BCMOLT_DEVICE_IMAGE_TRANSFER_DATA_ID_MORE_DATA
+#define bcmolt_device_image_transfer_data_id_data                                               BCMOLT_DEVICE_IMAGE_TRANSFER_DATA_ID_DATA
+#define bcmolt_device_image_transfer_data_id__num_of                                            BCMOLT_DEVICE_IMAGE_TRANSFER_DATA_ID__NUM_OF
+#define bcmolt_device_image_transfer_start_id_image_type                                        BCMOLT_DEVICE_IMAGE_TRANSFER_START_ID_IMAGE_TYPE
+#define bcmolt_device_image_transfer_start_id_image_size                                        BCMOLT_DEVICE_IMAGE_TRANSFER_START_ID_IMAGE_SIZE
+#define bcmolt_device_image_transfer_start_id_crc32                                             BCMOLT_DEVICE_IMAGE_TRANSFER_START_ID_CRC32
+#define bcmolt_device_image_transfer_start_id_image_name                                        BCMOLT_DEVICE_IMAGE_TRANSFER_START_ID_IMAGE_NAME
+#define bcmolt_device_image_transfer_start_id__num_of                                           BCMOLT_DEVICE_IMAGE_TRANSFER_START_ID__NUM_OF
+#define bcmolt_device_reset_id_mode                                                             BCMOLT_DEVICE_RESET_ID_MODE
+#define bcmolt_device_reset_id__num_of                                                          BCMOLT_DEVICE_RESET_ID__NUM_OF
+#define bcmolt_device_run_ddr_test_id_cpu                                                       BCMOLT_DEVICE_RUN_DDR_TEST_ID_CPU
+#define bcmolt_device_run_ddr_test_id_ras_0                                                     BCMOLT_DEVICE_RUN_DDR_TEST_ID_RAS_0
+#define bcmolt_device_run_ddr_test_id_ras_1                                                     BCMOLT_DEVICE_RUN_DDR_TEST_ID_RAS_1
+#define bcmolt_device_run_ddr_test_id__num_of                                                   BCMOLT_DEVICE_RUN_DDR_TEST_ID__NUM_OF
+#define bcmolt_device_sw_upgrade_activate_id__num_of                                            BCMOLT_DEVICE_SW_UPGRADE_ACTIVATE_ID__NUM_OF
+#define bcmolt_epon_denied_link_key_id_epon_ni                                                  BCMOLT_EPON_DENIED_LINK_KEY_ID_EPON_NI
+#define bcmolt_epon_denied_link_key_id_mac_address                                              BCMOLT_EPON_DENIED_LINK_KEY_ID_MAC_ADDRESS
+#define bcmolt_epon_denied_link_key_id__num_of                                                  BCMOLT_EPON_DENIED_LINK_KEY_ID__NUM_OF
+#define bcmolt_epon_denied_link_cfg_id_alarm_state                                              BCMOLT_EPON_DENIED_LINK_CFG_ID_ALARM_STATE
+#define bcmolt_epon_denied_link_cfg_id__num_of                                                  BCMOLT_EPON_DENIED_LINK_CFG_ID__NUM_OF
+#define bcmolt_epon_denied_link_laser_on_off_violation_id_alarm_status                          BCMOLT_EPON_DENIED_LINK_LASER_ON_OFF_VIOLATION_ID_ALARM_STATUS
+#define bcmolt_epon_denied_link_laser_on_off_violation_id__num_of                               BCMOLT_EPON_DENIED_LINK_LASER_ON_OFF_VIOLATION_ID__NUM_OF
+#define bcmolt_epon_denied_link_llid_pool_empty_violation_id_alarm_status                       BCMOLT_EPON_DENIED_LINK_LLID_POOL_EMPTY_VIOLATION_ID_ALARM_STATUS
+#define bcmolt_epon_denied_link_llid_pool_empty_violation_id__num_of                            BCMOLT_EPON_DENIED_LINK_LLID_POOL_EMPTY_VIOLATION_ID__NUM_OF
+#define bcmolt_epon_denied_link_max_link_violation_id_alarm_status                              BCMOLT_EPON_DENIED_LINK_MAX_LINK_VIOLATION_ID_ALARM_STATUS
+#define bcmolt_epon_denied_link_max_link_violation_id__num_of                                   BCMOLT_EPON_DENIED_LINK_MAX_LINK_VIOLATION_ID__NUM_OF
+#define bcmolt_epon_denied_link_overhead_profile_violation_id_alarm_status                      BCMOLT_EPON_DENIED_LINK_OVERHEAD_PROFILE_VIOLATION_ID_ALARM_STATUS
+#define bcmolt_epon_denied_link_overhead_profile_violation_id__num_of                           BCMOLT_EPON_DENIED_LINK_OVERHEAD_PROFILE_VIOLATION_ID__NUM_OF
+#define bcmolt_epon_denied_link_range_violation_id_alarm_status                                 BCMOLT_EPON_DENIED_LINK_RANGE_VIOLATION_ID_ALARM_STATUS
+#define bcmolt_epon_denied_link_range_violation_id__num_of                                      BCMOLT_EPON_DENIED_LINK_RANGE_VIOLATION_ID__NUM_OF
+#define bcmolt_epon_denied_link_rogue_violation_id_alarm_status                                 BCMOLT_EPON_DENIED_LINK_ROGUE_VIOLATION_ID_ALARM_STATUS
+#define bcmolt_epon_denied_link_rogue_violation_id__num_of                                      BCMOLT_EPON_DENIED_LINK_ROGUE_VIOLATION_ID__NUM_OF
+#define bcmolt_epon_denied_link_system_resource_violation_id_alarm_status                       BCMOLT_EPON_DENIED_LINK_SYSTEM_RESOURCE_VIOLATION_ID_ALARM_STATUS
+#define bcmolt_epon_denied_link_system_resource_violation_id__num_of                            BCMOLT_EPON_DENIED_LINK_SYSTEM_RESOURCE_VIOLATION_ID__NUM_OF
+#define bcmolt_epon_denied_link_tdm_channels_exhausted_id_alarm_status                          BCMOLT_EPON_DENIED_LINK_TDM_CHANNELS_EXHAUSTED_ID_ALARM_STATUS
+#define bcmolt_epon_denied_link_tdm_channels_exhausted_id__num_of                               BCMOLT_EPON_DENIED_LINK_TDM_CHANNELS_EXHAUSTED_ID__NUM_OF
+#define bcmolt_epon_denied_link_unknown_link_violation_id_alarm_status                          BCMOLT_EPON_DENIED_LINK_UNKNOWN_LINK_VIOLATION_ID_ALARM_STATUS
+#define bcmolt_epon_denied_link_unknown_link_violation_id__num_of                               BCMOLT_EPON_DENIED_LINK_UNKNOWN_LINK_VIOLATION_ID__NUM_OF
+#define bcmolt_epon_denied_link_upstream_bandwidth_violation_id_alarm_status                    BCMOLT_EPON_DENIED_LINK_UPSTREAM_BANDWIDTH_VIOLATION_ID_ALARM_STATUS
+#define bcmolt_epon_denied_link_upstream_bandwidth_violation_id__num_of                         BCMOLT_EPON_DENIED_LINK_UPSTREAM_BANDWIDTH_VIOLATION_ID__NUM_OF
+#define bcmolt_epon_denied_link_auto_cfg_id_laser_on_off_violation                              BCMOLT_EPON_DENIED_LINK_AUTO_CFG_ID_LASER_ON_OFF_VIOLATION
+#define bcmolt_epon_denied_link_auto_cfg_id_llid_pool_empty_violation                           BCMOLT_EPON_DENIED_LINK_AUTO_CFG_ID_LLID_POOL_EMPTY_VIOLATION
+#define bcmolt_epon_denied_link_auto_cfg_id_max_link_violation                                  BCMOLT_EPON_DENIED_LINK_AUTO_CFG_ID_MAX_LINK_VIOLATION
+#define bcmolt_epon_denied_link_auto_cfg_id_overhead_profile_violation                          BCMOLT_EPON_DENIED_LINK_AUTO_CFG_ID_OVERHEAD_PROFILE_VIOLATION
+#define bcmolt_epon_denied_link_auto_cfg_id_range_violation                                     BCMOLT_EPON_DENIED_LINK_AUTO_CFG_ID_RANGE_VIOLATION
+#define bcmolt_epon_denied_link_auto_cfg_id_rogue_violation                                     BCMOLT_EPON_DENIED_LINK_AUTO_CFG_ID_ROGUE_VIOLATION
+#define bcmolt_epon_denied_link_auto_cfg_id_system_resource_violation                           BCMOLT_EPON_DENIED_LINK_AUTO_CFG_ID_SYSTEM_RESOURCE_VIOLATION
+#define bcmolt_epon_denied_link_auto_cfg_id_tdm_channels_exhausted                              BCMOLT_EPON_DENIED_LINK_AUTO_CFG_ID_TDM_CHANNELS_EXHAUSTED
+#define bcmolt_epon_denied_link_auto_cfg_id_unknown_link_violation                              BCMOLT_EPON_DENIED_LINK_AUTO_CFG_ID_UNKNOWN_LINK_VIOLATION
+#define bcmolt_epon_denied_link_auto_cfg_id_upstream_bandwidth_violation                        BCMOLT_EPON_DENIED_LINK_AUTO_CFG_ID_UPSTREAM_BANDWIDTH_VIOLATION
+#define bcmolt_epon_denied_link_auto_cfg_id__num_of                                             BCMOLT_EPON_DENIED_LINK_AUTO_CFG_ID__NUM_OF
+#define bcmolt_epon_link_key_id_epon_ni                                                         BCMOLT_EPON_LINK_KEY_ID_EPON_NI
+#define bcmolt_epon_link_key_id_mac_address                                                     BCMOLT_EPON_LINK_KEY_ID_MAC_ADDRESS
+#define bcmolt_epon_link_key_id__num_of                                                         BCMOLT_EPON_LINK_KEY_ID__NUM_OF
+#define bcmolt_epon_link_cfg_id_link_rate                                                       BCMOLT_EPON_LINK_CFG_ID_LINK_RATE
+#define bcmolt_epon_link_cfg_id_state_flags                                                     BCMOLT_EPON_LINK_CFG_ID_STATE_FLAGS
+#define bcmolt_epon_link_cfg_id_llid                                                            BCMOLT_EPON_LINK_CFG_ID_LLID
+#define bcmolt_epon_link_cfg_id_laser_on_time_tq                                                BCMOLT_EPON_LINK_CFG_ID_LASER_ON_TIME_TQ
+#define bcmolt_epon_link_cfg_id_laser_off_time_tq                                               BCMOLT_EPON_LINK_CFG_ID_LASER_OFF_TIME_TQ
+#define bcmolt_epon_link_cfg_id_range_value_tq                                                  BCMOLT_EPON_LINK_CFG_ID_RANGE_VALUE_TQ
+#define bcmolt_epon_link_cfg_id_distance                                                        BCMOLT_EPON_LINK_CFG_ID_DISTANCE
+#define bcmolt_epon_link_cfg_id_alarm_state                                                     BCMOLT_EPON_LINK_CFG_ID_ALARM_STATE
+#define bcmolt_epon_link_cfg_id_tunnel_id                                                       BCMOLT_EPON_LINK_CFG_ID_TUNNEL_ID
+#define bcmolt_epon_link_cfg_id_onu_id                                                          BCMOLT_EPON_LINK_CFG_ID_ONU_ID
+#define bcmolt_epon_link_cfg_id_min_laser_overhead                                              BCMOLT_EPON_LINK_CFG_ID_MIN_LASER_OVERHEAD
+#define bcmolt_epon_link_cfg_id_key_exchange_config                                             BCMOLT_EPON_LINK_CFG_ID_KEY_EXCHANGE_CONFIG
+#define bcmolt_epon_link_cfg_id_epon_encryption                                                 BCMOLT_EPON_LINK_CFG_ID_EPON_ENCRYPTION
+#define bcmolt_epon_link_cfg_id_fec_enable                                                      BCMOLT_EPON_LINK_CFG_ID_FEC_ENABLE
+#define bcmolt_epon_link_cfg_id_oam_heartbeat_config                                            BCMOLT_EPON_LINK_CFG_ID_OAM_HEARTBEAT_CONFIG
+#define bcmolt_epon_link_cfg_id_upstream_bandwidth                                              BCMOLT_EPON_LINK_CFG_ID_UPSTREAM_BANDWIDTH
+#define bcmolt_epon_link_cfg_id_ubd_info                                                        BCMOLT_EPON_LINK_CFG_ID_UBD_INFO
+#define bcmolt_epon_link_cfg_id_clock_transport_enable                                          BCMOLT_EPON_LINK_CFG_ID_CLOCK_TRANSPORT_ENABLE
+#define bcmolt_epon_link_cfg_id_pending_grants                                                  BCMOLT_EPON_LINK_CFG_ID_PENDING_GRANTS
+#define bcmolt_epon_link_cfg_id_link_type                                                       BCMOLT_EPON_LINK_CFG_ID_LINK_TYPE
+#define bcmolt_epon_link_cfg_id__num_of                                                         BCMOLT_EPON_LINK_CFG_ID__NUM_OF
+#define bcmolt_epon_link_stat_id_rx_data_bytes                                                  BCMOLT_EPON_LINK_STAT_ID_RX_DATA_BYTES
+#define bcmolt_epon_link_stat_id_rx_data_frames                                                 BCMOLT_EPON_LINK_STAT_ID_RX_DATA_FRAMES
+#define bcmolt_epon_link_stat_id_rx_frames_64                                                   BCMOLT_EPON_LINK_STAT_ID_RX_FRAMES_64
+#define bcmolt_epon_link_stat_id_rx_frames_65_127                                               BCMOLT_EPON_LINK_STAT_ID_RX_FRAMES_65_127
+#define bcmolt_epon_link_stat_id_rx_frames_128_255                                              BCMOLT_EPON_LINK_STAT_ID_RX_FRAMES_128_255
+#define bcmolt_epon_link_stat_id_rx_frames_256_511                                              BCMOLT_EPON_LINK_STAT_ID_RX_FRAMES_256_511
+#define bcmolt_epon_link_stat_id_rx_frames_512_1023                                             BCMOLT_EPON_LINK_STAT_ID_RX_FRAMES_512_1023
+#define bcmolt_epon_link_stat_id_rx_frames_1024_1518                                            BCMOLT_EPON_LINK_STAT_ID_RX_FRAMES_1024_1518
+#define bcmolt_epon_link_stat_id_rx_frames_1519_2047                                            BCMOLT_EPON_LINK_STAT_ID_RX_FRAMES_1519_2047
+#define bcmolt_epon_link_stat_id_rx_frames_2048_4095                                            BCMOLT_EPON_LINK_STAT_ID_RX_FRAMES_2048_4095
+#define bcmolt_epon_link_stat_id_rx_frames_4096_9216                                            BCMOLT_EPON_LINK_STAT_ID_RX_FRAMES_4096_9216
+#define bcmolt_epon_link_stat_id_rx_frames_9217_16383                                           BCMOLT_EPON_LINK_STAT_ID_RX_FRAMES_9217_16383
+#define bcmolt_epon_link_stat_id_rx_oam_bytes                                                   BCMOLT_EPON_LINK_STAT_ID_RX_OAM_BYTES
+#define bcmolt_epon_link_stat_id_rx_oam_frames                                                  BCMOLT_EPON_LINK_STAT_ID_RX_OAM_FRAMES
+#define bcmolt_epon_link_stat_id_rx_mpcp_frames                                                 BCMOLT_EPON_LINK_STAT_ID_RX_MPCP_FRAMES
+#define bcmolt_epon_link_stat_id_rx_broadcast_frames                                            BCMOLT_EPON_LINK_STAT_ID_RX_BROADCAST_FRAMES
+#define bcmolt_epon_link_stat_id_rx_unicast_frames                                              BCMOLT_EPON_LINK_STAT_ID_RX_UNICAST_FRAMES
+#define bcmolt_epon_link_stat_id_rx_multicast_frames                                            BCMOLT_EPON_LINK_STAT_ID_RX_MULTICAST_FRAMES
+#define bcmolt_epon_link_stat_id_rx_report_frames                                               BCMOLT_EPON_LINK_STAT_ID_RX_REPORT_FRAMES
+#define bcmolt_epon_link_stat_id_rx_fcs_error                                                   BCMOLT_EPON_LINK_STAT_ID_RX_FCS_ERROR
+#define bcmolt_epon_link_stat_id_rx_oversize_error                                              BCMOLT_EPON_LINK_STAT_ID_RX_OVERSIZE_ERROR
+#define bcmolt_epon_link_stat_id_rx_runt_error                                                  BCMOLT_EPON_LINK_STAT_ID_RX_RUNT_ERROR
+#define bcmolt_epon_link_stat_id_rx_line_code_error                                             BCMOLT_EPON_LINK_STAT_ID_RX_LINE_CODE_ERROR
+#define bcmolt_epon_link_stat_id_rx_line_code_error_max                                         BCMOLT_EPON_LINK_STAT_ID_RX_LINE_CODE_ERROR_MAX
+#define bcmolt_epon_link_stat_id_tx_data_bytes                                                  BCMOLT_EPON_LINK_STAT_ID_TX_DATA_BYTES
+#define bcmolt_epon_link_stat_id_tx_data_frames                                                 BCMOLT_EPON_LINK_STAT_ID_TX_DATA_FRAMES
+#define bcmolt_epon_link_stat_id_tx_frames_64                                                   BCMOLT_EPON_LINK_STAT_ID_TX_FRAMES_64
+#define bcmolt_epon_link_stat_id_tx_frames_65_127                                               BCMOLT_EPON_LINK_STAT_ID_TX_FRAMES_65_127
+#define bcmolt_epon_link_stat_id_tx_frames_128_255                                              BCMOLT_EPON_LINK_STAT_ID_TX_FRAMES_128_255
+#define bcmolt_epon_link_stat_id_tx_frames_256_511                                              BCMOLT_EPON_LINK_STAT_ID_TX_FRAMES_256_511
+#define bcmolt_epon_link_stat_id_tx_frames_512_1023                                             BCMOLT_EPON_LINK_STAT_ID_TX_FRAMES_512_1023
+#define bcmolt_epon_link_stat_id_tx_frames_1024_1518                                            BCMOLT_EPON_LINK_STAT_ID_TX_FRAMES_1024_1518
+#define bcmolt_epon_link_stat_id_tx_frames_1519_2047                                            BCMOLT_EPON_LINK_STAT_ID_TX_FRAMES_1519_2047
+#define bcmolt_epon_link_stat_id_tx_frames_2048_4095                                            BCMOLT_EPON_LINK_STAT_ID_TX_FRAMES_2048_4095
+#define bcmolt_epon_link_stat_id_tx_frames_4096_9216                                            BCMOLT_EPON_LINK_STAT_ID_TX_FRAMES_4096_9216
+#define bcmolt_epon_link_stat_id_tx_frames_9217_16383                                           BCMOLT_EPON_LINK_STAT_ID_TX_FRAMES_9217_16383
+#define bcmolt_epon_link_stat_id_tx_oam_bytes                                                   BCMOLT_EPON_LINK_STAT_ID_TX_OAM_BYTES
+#define bcmolt_epon_link_stat_id_tx_oam_frames                                                  BCMOLT_EPON_LINK_STAT_ID_TX_OAM_FRAMES
+#define bcmolt_epon_link_stat_id_tx_mpcp_frames                                                 BCMOLT_EPON_LINK_STAT_ID_TX_MPCP_FRAMES
+#define bcmolt_epon_link_stat_id_tx_broadcast_frames                                            BCMOLT_EPON_LINK_STAT_ID_TX_BROADCAST_FRAMES
+#define bcmolt_epon_link_stat_id_tx_unicast_frames                                              BCMOLT_EPON_LINK_STAT_ID_TX_UNICAST_FRAMES
+#define bcmolt_epon_link_stat_id_tx_multicast_frames                                            BCMOLT_EPON_LINK_STAT_ID_TX_MULTICAST_FRAMES
+#define bcmolt_epon_link_stat_id_tx_gates                                                       BCMOLT_EPON_LINK_STAT_ID_TX_GATES
+#define bcmolt_epon_link_stat_id__num_of                                                        BCMOLT_EPON_LINK_STAT_ID__NUM_OF
+#define bcmolt_epon_link_stat_cfg_id_cfg                                                        BCMOLT_EPON_LINK_STAT_CFG_ID_CFG
+#define bcmolt_epon_link_stat_cfg_id__num_of                                                    BCMOLT_EPON_LINK_STAT_CFG_ID__NUM_OF
+#define bcmolt_epon_link_duplicate_mpcp_registration_request_id_initial_range_tq                BCMOLT_EPON_LINK_DUPLICATE_MPCP_REGISTRATION_REQUEST_ID_INITIAL_RANGE_TQ
+#define bcmolt_epon_link_duplicate_mpcp_registration_request_id_current_range_tq                BCMOLT_EPON_LINK_DUPLICATE_MPCP_REGISTRATION_REQUEST_ID_CURRENT_RANGE_TQ
+#define bcmolt_epon_link_duplicate_mpcp_registration_request_id__num_of                         BCMOLT_EPON_LINK_DUPLICATE_MPCP_REGISTRATION_REQUEST_ID__NUM_OF
+#define bcmolt_epon_link_encryption_enabled_id__num_of                                          BCMOLT_EPON_LINK_ENCRYPTION_ENABLED_ID__NUM_OF
+#define bcmolt_epon_link_key_exchange_failure_id_alarm_status                                   BCMOLT_EPON_LINK_KEY_EXCHANGE_FAILURE_ID_ALARM_STATUS
+#define bcmolt_epon_link_key_exchange_failure_id__num_of                                        BCMOLT_EPON_LINK_KEY_EXCHANGE_FAILURE_ID__NUM_OF
+#define bcmolt_epon_link_key_exchange_started_id__num_of                                        BCMOLT_EPON_LINK_KEY_EXCHANGE_STARTED_ID__NUM_OF
+#define bcmolt_epon_link_key_exchange_stopped_id__num_of                                        BCMOLT_EPON_LINK_KEY_EXCHANGE_STOPPED_ID__NUM_OF
+#define bcmolt_epon_link_link_deleted_id__num_of                                                BCMOLT_EPON_LINK_LINK_DELETED_ID__NUM_OF
+#define bcmolt_epon_link_link_speed_mismatch_id_previous_rate                                   BCMOLT_EPON_LINK_LINK_SPEED_MISMATCH_ID_PREVIOUS_RATE
+#define bcmolt_epon_link_link_speed_mismatch_id_current_rate                                    BCMOLT_EPON_LINK_LINK_SPEED_MISMATCH_ID_CURRENT_RATE
+#define bcmolt_epon_link_link_speed_mismatch_id__num_of                                         BCMOLT_EPON_LINK_LINK_SPEED_MISMATCH_ID__NUM_OF
+#define bcmolt_epon_link_mpcp_deregistered_id__num_of                                           BCMOLT_EPON_LINK_MPCP_DEREGISTERED_ID__NUM_OF
+#define bcmolt_epon_link_mpcp_discovered_id_link_info                                           BCMOLT_EPON_LINK_MPCP_DISCOVERED_ID_LINK_INFO
+#define bcmolt_epon_link_mpcp_discovered_id__num_of                                             BCMOLT_EPON_LINK_MPCP_DISCOVERED_ID__NUM_OF
+#define bcmolt_epon_link_mpcp_reg_ack_timeout_id__num_of                                        BCMOLT_EPON_LINK_MPCP_REG_ACK_TIMEOUT_ID__NUM_OF
+#define bcmolt_epon_link_mpcp_report_timeout_id_alarm_status                                    BCMOLT_EPON_LINK_MPCP_REPORT_TIMEOUT_ID_ALARM_STATUS
+#define bcmolt_epon_link_mpcp_report_timeout_id__num_of                                         BCMOLT_EPON_LINK_MPCP_REPORT_TIMEOUT_ID__NUM_OF
+#define bcmolt_epon_link_oam_keepalive_timeout_id_alarm_status                                  BCMOLT_EPON_LINK_OAM_KEEPALIVE_TIMEOUT_ID_ALARM_STATUS
+#define bcmolt_epon_link_oam_keepalive_timeout_id__num_of                                       BCMOLT_EPON_LINK_OAM_KEEPALIVE_TIMEOUT_ID__NUM_OF
+#define bcmolt_epon_link_oam_keepalive_timer_started_id__num_of                                 BCMOLT_EPON_LINK_OAM_KEEPALIVE_TIMER_STARTED_ID__NUM_OF
+#define bcmolt_epon_link_oam_keepalive_timer_stopped_id__num_of                                 BCMOLT_EPON_LINK_OAM_KEEPALIVE_TIMER_STOPPED_ID__NUM_OF
+#define bcmolt_epon_link_preprovisioned_link_created_id_link_info                               BCMOLT_EPON_LINK_PREPROVISIONED_LINK_CREATED_ID_LINK_INFO
+#define bcmolt_epon_link_preprovisioned_link_created_id__num_of                                 BCMOLT_EPON_LINK_PREPROVISIONED_LINK_CREATED_ID__NUM_OF
+#define bcmolt_epon_link_protection_switch_occurred_id_protection_status                        BCMOLT_EPON_LINK_PROTECTION_SWITCH_OCCURRED_ID_PROTECTION_STATUS
+#define bcmolt_epon_link_protection_switch_occurred_id_range_value_tq                           BCMOLT_EPON_LINK_PROTECTION_SWITCH_OCCURRED_ID_RANGE_VALUE_TQ
+#define bcmolt_epon_link_protection_switch_occurred_id__num_of                                  BCMOLT_EPON_LINK_PROTECTION_SWITCH_OCCURRED_ID__NUM_OF
+#define bcmolt_epon_link_range_value_changed_id_range_value_tq                                  BCMOLT_EPON_LINK_RANGE_VALUE_CHANGED_ID_RANGE_VALUE_TQ
+#define bcmolt_epon_link_range_value_changed_id__num_of                                         BCMOLT_EPON_LINK_RANGE_VALUE_CHANGED_ID__NUM_OF
+#define bcmolt_epon_link_rerange_failure_id__num_of                                             BCMOLT_EPON_LINK_RERANGE_FAILURE_ID__NUM_OF
+#define bcmolt_epon_link_stat_alarm_cleared_id_stat                                             BCMOLT_EPON_LINK_STAT_ALARM_CLEARED_ID_STAT
+#define bcmolt_epon_link_stat_alarm_cleared_id__num_of                                          BCMOLT_EPON_LINK_STAT_ALARM_CLEARED_ID__NUM_OF
+#define bcmolt_epon_link_stat_alarm_raised_id_stat                                              BCMOLT_EPON_LINK_STAT_ALARM_RAISED_ID_STAT
+#define bcmolt_epon_link_stat_alarm_raised_id__num_of                                           BCMOLT_EPON_LINK_STAT_ALARM_RAISED_ID__NUM_OF
+#define bcmolt_epon_link_static_registration_done_id__num_of                                    BCMOLT_EPON_LINK_STATIC_REGISTRATION_DONE_ID__NUM_OF
+#define bcmolt_epon_link_auto_cfg_id_duplicate_mpcp_registration_request                        BCMOLT_EPON_LINK_AUTO_CFG_ID_DUPLICATE_MPCP_REGISTRATION_REQUEST
+#define bcmolt_epon_link_auto_cfg_id_encryption_enabled                                         BCMOLT_EPON_LINK_AUTO_CFG_ID_ENCRYPTION_ENABLED
+#define bcmolt_epon_link_auto_cfg_id_key_exchange_failure                                       BCMOLT_EPON_LINK_AUTO_CFG_ID_KEY_EXCHANGE_FAILURE
+#define bcmolt_epon_link_auto_cfg_id_key_exchange_started                                       BCMOLT_EPON_LINK_AUTO_CFG_ID_KEY_EXCHANGE_STARTED
+#define bcmolt_epon_link_auto_cfg_id_key_exchange_stopped                                       BCMOLT_EPON_LINK_AUTO_CFG_ID_KEY_EXCHANGE_STOPPED
+#define bcmolt_epon_link_auto_cfg_id_link_deleted                                               BCMOLT_EPON_LINK_AUTO_CFG_ID_LINK_DELETED
+#define bcmolt_epon_link_auto_cfg_id_link_speed_mismatch                                        BCMOLT_EPON_LINK_AUTO_CFG_ID_LINK_SPEED_MISMATCH
+#define bcmolt_epon_link_auto_cfg_id_mpcp_deregistered                                          BCMOLT_EPON_LINK_AUTO_CFG_ID_MPCP_DEREGISTERED
+#define bcmolt_epon_link_auto_cfg_id_mpcp_discovered                                            BCMOLT_EPON_LINK_AUTO_CFG_ID_MPCP_DISCOVERED
+#define bcmolt_epon_link_auto_cfg_id_mpcp_reg_ack_timeout                                       BCMOLT_EPON_LINK_AUTO_CFG_ID_MPCP_REG_ACK_TIMEOUT
+#define bcmolt_epon_link_auto_cfg_id_mpcp_report_timeout                                        BCMOLT_EPON_LINK_AUTO_CFG_ID_MPCP_REPORT_TIMEOUT
+#define bcmolt_epon_link_auto_cfg_id_oam_keepalive_timeout                                      BCMOLT_EPON_LINK_AUTO_CFG_ID_OAM_KEEPALIVE_TIMEOUT
+#define bcmolt_epon_link_auto_cfg_id_oam_keepalive_timer_started                                BCMOLT_EPON_LINK_AUTO_CFG_ID_OAM_KEEPALIVE_TIMER_STARTED
+#define bcmolt_epon_link_auto_cfg_id_oam_keepalive_timer_stopped                                BCMOLT_EPON_LINK_AUTO_CFG_ID_OAM_KEEPALIVE_TIMER_STOPPED
+#define bcmolt_epon_link_auto_cfg_id_preprovisioned_link_created                                BCMOLT_EPON_LINK_AUTO_CFG_ID_PREPROVISIONED_LINK_CREATED
+#define bcmolt_epon_link_auto_cfg_id_protection_switch_occurred                                 BCMOLT_EPON_LINK_AUTO_CFG_ID_PROTECTION_SWITCH_OCCURRED
+#define bcmolt_epon_link_auto_cfg_id_range_value_changed                                        BCMOLT_EPON_LINK_AUTO_CFG_ID_RANGE_VALUE_CHANGED
+#define bcmolt_epon_link_auto_cfg_id_rerange_failure                                            BCMOLT_EPON_LINK_AUTO_CFG_ID_RERANGE_FAILURE
+#define bcmolt_epon_link_auto_cfg_id_stat_alarm_cleared                                         BCMOLT_EPON_LINK_AUTO_CFG_ID_STAT_ALARM_CLEARED
+#define bcmolt_epon_link_auto_cfg_id_stat_alarm_raised                                          BCMOLT_EPON_LINK_AUTO_CFG_ID_STAT_ALARM_RAISED
+#define bcmolt_epon_link_auto_cfg_id_static_registration_done                                   BCMOLT_EPON_LINK_AUTO_CFG_ID_STATIC_REGISTRATION_DONE
+#define bcmolt_epon_link_auto_cfg_id__num_of                                                    BCMOLT_EPON_LINK_AUTO_CFG_ID__NUM_OF
+#define bcmolt_epon_link_delete_link_id__num_of                                                 BCMOLT_EPON_LINK_DELETE_LINK_ID__NUM_OF
+#define bcmolt_epon_link_force_rediscovery_id__num_of                                           BCMOLT_EPON_LINK_FORCE_REDISCOVERY_ID__NUM_OF
+#define bcmolt_epon_link_key_exchange_start_id_period                                           BCMOLT_EPON_LINK_KEY_EXCHANGE_START_ID_PERIOD
+#define bcmolt_epon_link_key_exchange_start_id__num_of                                          BCMOLT_EPON_LINK_KEY_EXCHANGE_START_ID__NUM_OF
+#define bcmolt_epon_link_key_exchange_stop_id__num_of                                           BCMOLT_EPON_LINK_KEY_EXCHANGE_STOP_ID__NUM_OF
+#define bcmolt_epon_link_oam_keepalive_timer_start_id_send_period                               BCMOLT_EPON_LINK_OAM_KEEPALIVE_TIMER_START_ID_SEND_PERIOD
+#define bcmolt_epon_link_oam_keepalive_timer_start_id__num_of                                   BCMOLT_EPON_LINK_OAM_KEEPALIVE_TIMER_START_ID__NUM_OF
+#define bcmolt_epon_link_oam_keepalive_timer_stop_id__num_of                                    BCMOLT_EPON_LINK_OAM_KEEPALIVE_TIMER_STOP_ID__NUM_OF
+#define bcmolt_epon_link_static_registration_id_laseron_time_tq                                 BCMOLT_EPON_LINK_STATIC_REGISTRATION_ID_LASERON_TIME_TQ
+#define bcmolt_epon_link_static_registration_id_laseroff_time_tq                                BCMOLT_EPON_LINK_STATIC_REGISTRATION_ID_LASEROFF_TIME_TQ
+#define bcmolt_epon_link_static_registration_id_range_value_tq                                  BCMOLT_EPON_LINK_STATIC_REGISTRATION_ID_RANGE_VALUE_TQ
+#define bcmolt_epon_link_static_registration_id_pending_grants                                  BCMOLT_EPON_LINK_STATIC_REGISTRATION_ID_PENDING_GRANTS
+#define bcmolt_epon_link_static_registration_id__num_of                                         BCMOLT_EPON_LINK_STATIC_REGISTRATION_ID__NUM_OF
+#define bcmolt_epon_link_inject_frame_id_frame                                                  BCMOLT_EPON_LINK_INJECT_FRAME_ID_FRAME
+#define bcmolt_epon_link_inject_frame_id__num_of                                                BCMOLT_EPON_LINK_INJECT_FRAME_ID__NUM_OF
+#define bcmolt_epon_link_frame_captured_id_frame                                                BCMOLT_EPON_LINK_FRAME_CAPTURED_ID_FRAME
+#define bcmolt_epon_link_frame_captured_id__num_of                                              BCMOLT_EPON_LINK_FRAME_CAPTURED_ID__NUM_OF
+#define bcmolt_epon_ni_key_id_epon_ni                                                           BCMOLT_EPON_NI_KEY_ID_EPON_NI
+#define bcmolt_epon_ni_key_id__num_of                                                           BCMOLT_EPON_NI_KEY_ID__NUM_OF
+#define bcmolt_epon_ni_cfg_id_mac_address                                                       BCMOLT_EPON_NI_CFG_ID_MAC_ADDRESS
+#define bcmolt_epon_ni_cfg_id_epon_ni_en                                                        BCMOLT_EPON_NI_CFG_ID_EPON_NI_EN
+#define bcmolt_epon_ni_cfg_id_registration_behavior                                             BCMOLT_EPON_NI_CFG_ID_REGISTRATION_BEHAVIOR
+#define bcmolt_epon_ni_cfg_id_mtu_1g                                                            BCMOLT_EPON_NI_CFG_ID_MTU_1G
+#define bcmolt_epon_ni_cfg_id_mtu_10g                                                           BCMOLT_EPON_NI_CFG_ID_MTU_10G
+#define bcmolt_epon_ni_cfg_id_minimum_fiber_length                                              BCMOLT_EPON_NI_CFG_ID_MINIMUM_FIBER_LENGTH
+#define bcmolt_epon_ni_cfg_id_maximum_fiber_length                                              BCMOLT_EPON_NI_CFG_ID_MAXIMUM_FIBER_LENGTH
+#define bcmolt_epon_ni_cfg_id_grant_spacing_tq                                                  BCMOLT_EPON_NI_CFG_ID_GRANT_SPACING_TQ
+#define bcmolt_epon_ni_cfg_id_epon_logical_link_options                                         BCMOLT_EPON_NI_CFG_ID_EPON_LOGICAL_LINK_OPTIONS
+#define bcmolt_epon_ni_cfg_id_mpcp_discovery_period_ms                                          BCMOLT_EPON_NI_CFG_ID_MPCP_DISCOVERY_PERIOD_MS
+#define bcmolt_epon_ni_cfg_id_alarm_state                                                       BCMOLT_EPON_NI_CFG_ID_ALARM_STATE
+#define bcmolt_epon_ni_cfg_id_all_links                                                         BCMOLT_EPON_NI_CFG_ID_ALL_LINKS
+#define bcmolt_epon_ni_cfg_id_encryption_cfg                                                    BCMOLT_EPON_NI_CFG_ID_ENCRYPTION_CFG
+#define bcmolt_epon_ni_cfg_id_protection_switching_cfg                                          BCMOLT_EPON_NI_CFG_ID_PROTECTION_SWITCHING_CFG
+#define bcmolt_epon_ni_cfg_id_clock_transport_cfg                                               BCMOLT_EPON_NI_CFG_ID_CLOCK_TRANSPORT_CFG
+#define bcmolt_epon_ni_cfg_id_dropdown_weights                                                  BCMOLT_EPON_NI_CFG_ID_DROPDOWN_WEIGHTS
+#define bcmolt_epon_ni_cfg_id_approximate_solicited_usage                                       BCMOLT_EPON_NI_CFG_ID_APPROXIMATE_SOLICITED_USAGE
+#define bcmolt_epon_ni_cfg_id_approximate_tdm_usage                                             BCMOLT_EPON_NI_CFG_ID_APPROXIMATE_TDM_USAGE
+#define bcmolt_epon_ni_cfg_id_no_reports_soak_time                                              BCMOLT_EPON_NI_CFG_ID_NO_REPORTS_SOAK_TIME
+#define bcmolt_epon_ni_cfg_id_pon_aggregate_shaper                                              BCMOLT_EPON_NI_CFG_ID_PON_AGGREGATE_SHAPER
+#define bcmolt_epon_ni_cfg_id_estimated_pon_latency_tq                                          BCMOLT_EPON_NI_CFG_ID_ESTIMATED_PON_LATENCY_TQ
+#define bcmolt_epon_ni_cfg_id_onu_upgrade_params                                                BCMOLT_EPON_NI_CFG_ID_ONU_UPGRADE_PARAMS
+#define bcmolt_epon_ni_cfg_id_auto_rogue_detect_10g_en                                          BCMOLT_EPON_NI_CFG_ID_AUTO_ROGUE_DETECT_10G_EN
+#define bcmolt_epon_ni_cfg_id_auto_rogue_detect_1g_en                                           BCMOLT_EPON_NI_CFG_ID_AUTO_ROGUE_DETECT_1G_EN
+#define bcmolt_epon_ni_cfg_id_auto_rogue_detect_10g_threshold                                   BCMOLT_EPON_NI_CFG_ID_AUTO_ROGUE_DETECT_10G_THRESHOLD
+#define bcmolt_epon_ni_cfg_id__num_of                                                           BCMOLT_EPON_NI_CFG_ID__NUM_OF
+#define bcmolt_epon_ni_auto_rogue_scan_10g_failure_id__num_of                                   BCMOLT_EPON_NI_AUTO_ROGUE_SCAN_10G_FAILURE_ID__NUM_OF
+#define bcmolt_epon_ni_auto_rogue_scan_1g_failure_id__num_of                                    BCMOLT_EPON_NI_AUTO_ROGUE_SCAN_1G_FAILURE_ID__NUM_OF
+#define bcmolt_epon_ni_llid_quarantined_id_llid                                                 BCMOLT_EPON_NI_LLID_QUARANTINED_ID_LLID
+#define bcmolt_epon_ni_llid_quarantined_id_link_rate                                            BCMOLT_EPON_NI_LLID_QUARANTINED_ID_LINK_RATE
+#define bcmolt_epon_ni_llid_quarantined_id_link_mac                                             BCMOLT_EPON_NI_LLID_QUARANTINED_ID_LINK_MAC
+#define bcmolt_epon_ni_llid_quarantined_id_range_value_tq                                       BCMOLT_EPON_NI_LLID_QUARANTINED_ID_RANGE_VALUE_TQ
+#define bcmolt_epon_ni_llid_quarantined_id__num_of                                              BCMOLT_EPON_NI_LLID_QUARANTINED_ID__NUM_OF
+#define bcmolt_epon_ni_mpcp_timestamp_changed_id_mpcp_timestamp                                 BCMOLT_EPON_NI_MPCP_TIMESTAMP_CHANGED_ID_MPCP_TIMESTAMP
+#define bcmolt_epon_ni_mpcp_timestamp_changed_id__num_of                                        BCMOLT_EPON_NI_MPCP_TIMESTAMP_CHANGED_ID__NUM_OF
+#define bcmolt_epon_ni_no_reports_id_alarm_status                                               BCMOLT_EPON_NI_NO_REPORTS_ID_ALARM_STATUS
+#define bcmolt_epon_ni_no_reports_id__num_of                                                    BCMOLT_EPON_NI_NO_REPORTS_ID__NUM_OF
+#define bcmolt_epon_ni_onu_upgrade_complete_id_status                                           BCMOLT_EPON_NI_ONU_UPGRADE_COMPLETE_ID_STATUS
+#define bcmolt_epon_ni_onu_upgrade_complete_id_list_of_failed_entities                          BCMOLT_EPON_NI_ONU_UPGRADE_COMPLETE_ID_LIST_OF_FAILED_ENTITIES
+#define bcmolt_epon_ni_onu_upgrade_complete_id__num_of                                          BCMOLT_EPON_NI_ONU_UPGRADE_COMPLETE_ID__NUM_OF
+#define bcmolt_epon_ni_rerange_failure_id__num_of                                               BCMOLT_EPON_NI_RERANGE_FAILURE_ID__NUM_OF
+#define bcmolt_epon_ni_rogue_scan_complete_id_return_ind_status                                 BCMOLT_EPON_NI_ROGUE_SCAN_COMPLETE_ID_RETURN_IND_STATUS
+#define bcmolt_epon_ni_rogue_scan_complete_id__num_of                                           BCMOLT_EPON_NI_ROGUE_SCAN_COMPLETE_ID__NUM_OF
+#define bcmolt_epon_ni_rssi_measurement_completed_id_status                                     BCMOLT_EPON_NI_RSSI_MEASUREMENT_COMPLETED_ID_STATUS
+#define bcmolt_epon_ni_rssi_measurement_completed_id_llid                                       BCMOLT_EPON_NI_RSSI_MEASUREMENT_COMPLETED_ID_LLID
+#define bcmolt_epon_ni_rssi_measurement_completed_id_link_mac                                   BCMOLT_EPON_NI_RSSI_MEASUREMENT_COMPLETED_ID_LINK_MAC
+#define bcmolt_epon_ni_rssi_measurement_completed_id__num_of                                    BCMOLT_EPON_NI_RSSI_MEASUREMENT_COMPLETED_ID__NUM_OF
+#define bcmolt_epon_ni_state_change_completed_id_new_state                                      BCMOLT_EPON_NI_STATE_CHANGE_COMPLETED_ID_NEW_STATE
+#define bcmolt_epon_ni_state_change_completed_id__num_of                                        BCMOLT_EPON_NI_STATE_CHANGE_COMPLETED_ID__NUM_OF
+#define bcmolt_epon_ni_auto_cfg_id_auto_rogue_scan_10g_failure                                  BCMOLT_EPON_NI_AUTO_CFG_ID_AUTO_ROGUE_SCAN_10G_FAILURE
+#define bcmolt_epon_ni_auto_cfg_id_auto_rogue_scan_1g_failure                                   BCMOLT_EPON_NI_AUTO_CFG_ID_AUTO_ROGUE_SCAN_1G_FAILURE
+#define bcmolt_epon_ni_auto_cfg_id_llid_quarantined                                             BCMOLT_EPON_NI_AUTO_CFG_ID_LLID_QUARANTINED
+#define bcmolt_epon_ni_auto_cfg_id_mpcp_timestamp_changed                                       BCMOLT_EPON_NI_AUTO_CFG_ID_MPCP_TIMESTAMP_CHANGED
+#define bcmolt_epon_ni_auto_cfg_id_no_reports                                                   BCMOLT_EPON_NI_AUTO_CFG_ID_NO_REPORTS
+#define bcmolt_epon_ni_auto_cfg_id_onu_upgrade_complete                                         BCMOLT_EPON_NI_AUTO_CFG_ID_ONU_UPGRADE_COMPLETE
+#define bcmolt_epon_ni_auto_cfg_id_rerange_failure                                              BCMOLT_EPON_NI_AUTO_CFG_ID_RERANGE_FAILURE
+#define bcmolt_epon_ni_auto_cfg_id_rogue_scan_complete                                          BCMOLT_EPON_NI_AUTO_CFG_ID_ROGUE_SCAN_COMPLETE
+#define bcmolt_epon_ni_auto_cfg_id_rssi_measurement_completed                                   BCMOLT_EPON_NI_AUTO_CFG_ID_RSSI_MEASUREMENT_COMPLETED
+#define bcmolt_epon_ni_auto_cfg_id_state_change_completed                                       BCMOLT_EPON_NI_AUTO_CFG_ID_STATE_CHANGE_COMPLETED
+#define bcmolt_epon_ni_auto_cfg_id__num_of                                                      BCMOLT_EPON_NI_AUTO_CFG_ID__NUM_OF
+#define bcmolt_epon_ni_add_link_id_mac_address                                                  BCMOLT_EPON_NI_ADD_LINK_ID_MAC_ADDRESS
+#define bcmolt_epon_ni_add_link_id_rate                                                         BCMOLT_EPON_NI_ADD_LINK_ID_RATE
+#define bcmolt_epon_ni_add_link_id__num_of                                                      BCMOLT_EPON_NI_ADD_LINK_ID__NUM_OF
+#define bcmolt_epon_ni_add_multicast_link_id_mac_address                                        BCMOLT_EPON_NI_ADD_MULTICAST_LINK_ID_MAC_ADDRESS
+#define bcmolt_epon_ni_add_multicast_link_id_rate                                               BCMOLT_EPON_NI_ADD_MULTICAST_LINK_ID_RATE
+#define bcmolt_epon_ni_add_multicast_link_id__num_of                                            BCMOLT_EPON_NI_ADD_MULTICAST_LINK_ID__NUM_OF
+#define bcmolt_epon_ni_add_protected_standby_link_id_mac_address                                BCMOLT_EPON_NI_ADD_PROTECTED_STANDBY_LINK_ID_MAC_ADDRESS
+#define bcmolt_epon_ni_add_protected_standby_link_id_working_link_info                          BCMOLT_EPON_NI_ADD_PROTECTED_STANDBY_LINK_ID_WORKING_LINK_INFO
+#define bcmolt_epon_ni_add_protected_standby_link_id__num_of                                    BCMOLT_EPON_NI_ADD_PROTECTED_STANDBY_LINK_ID__NUM_OF
+#define bcmolt_epon_ni_issue_rssi_grant_id_granted_link                                         BCMOLT_EPON_NI_ISSUE_RSSI_GRANT_ID_GRANTED_LINK
+#define bcmolt_epon_ni_issue_rssi_grant_id_trigger_width                                        BCMOLT_EPON_NI_ISSUE_RSSI_GRANT_ID_TRIGGER_WIDTH
+#define bcmolt_epon_ni_issue_rssi_grant_id_trigger_delay                                        BCMOLT_EPON_NI_ISSUE_RSSI_GRANT_ID_TRIGGER_DELAY
+#define bcmolt_epon_ni_issue_rssi_grant_id_sample_period                                        BCMOLT_EPON_NI_ISSUE_RSSI_GRANT_ID_SAMPLE_PERIOD
+#define bcmolt_epon_ni_issue_rssi_grant_id__num_of                                              BCMOLT_EPON_NI_ISSUE_RSSI_GRANT_ID__NUM_OF
+#define bcmolt_epon_ni_protection_switching_apply_rerange_delta_id_rerange_delta                BCMOLT_EPON_NI_PROTECTION_SWITCHING_APPLY_RERANGE_DELTA_ID_RERANGE_DELTA
+#define bcmolt_epon_ni_protection_switching_apply_rerange_delta_id__num_of                      BCMOLT_EPON_NI_PROTECTION_SWITCHING_APPLY_RERANGE_DELTA_ID__NUM_OF
+#define bcmolt_epon_ni_rogue_llid_scan_id_mode                                                  BCMOLT_EPON_NI_ROGUE_LLID_SCAN_ID_MODE
+#define bcmolt_epon_ni_rogue_llid_scan_id_llid                                                  BCMOLT_EPON_NI_ROGUE_LLID_SCAN_ID_LLID
+#define bcmolt_epon_ni_rogue_llid_scan_id__num_of                                               BCMOLT_EPON_NI_ROGUE_LLID_SCAN_ID__NUM_OF
+#define bcmolt_epon_ni_set_epon_ni_en_state_id_new_state                                        BCMOLT_EPON_NI_SET_EPON_NI_EN_STATE_ID_NEW_STATE
+#define bcmolt_epon_ni_set_epon_ni_en_state_id__num_of                                          BCMOLT_EPON_NI_SET_EPON_NI_EN_STATE_ID__NUM_OF
+#define bcmolt_epon_ni_start_onu_upgrade_id_list_of_onu_ids                                     BCMOLT_EPON_NI_START_ONU_UPGRADE_ID_LIST_OF_ONU_IDS
+#define bcmolt_epon_ni_start_onu_upgrade_id__num_of                                             BCMOLT_EPON_NI_START_ONU_UPGRADE_ID__NUM_OF
+#define bcmolt_epon_onu_10g_us_key_id_epon_ni                                                   BCMOLT_EPON_ONU_10G_US_KEY_ID_EPON_NI
+#define bcmolt_epon_onu_10g_us_key_id_onu_id                                                    BCMOLT_EPON_ONU_10G_US_KEY_ID_ONU_ID
+#define bcmolt_epon_onu_10g_us_key_id__num_of                                                   BCMOLT_EPON_ONU_10G_US_KEY_ID__NUM_OF
+#define bcmolt_epon_onu_10g_us_cfg_id_all_links                                                 BCMOLT_EPON_ONU_10G_US_CFG_ID_ALL_LINKS
+#define bcmolt_epon_onu_10g_us_cfg_id__num_of                                                   BCMOLT_EPON_ONU_10G_US_CFG_ID__NUM_OF
+#define bcmolt_epon_onu_10g_us_stat_id_fec_code_words_total                                     BCMOLT_EPON_ONU_10G_US_STAT_ID_FEC_CODE_WORDS_TOTAL
+#define bcmolt_epon_onu_10g_us_stat_id_fec_code_words_decode_fails                              BCMOLT_EPON_ONU_10G_US_STAT_ID_FEC_CODE_WORDS_DECODE_FAILS
+#define bcmolt_epon_onu_10g_us_stat_id_fec_zeroes_corrected                                     BCMOLT_EPON_ONU_10G_US_STAT_ID_FEC_ZEROES_CORRECTED
+#define bcmolt_epon_onu_10g_us_stat_id_fec_ones_corrected                                       BCMOLT_EPON_ONU_10G_US_STAT_ID_FEC_ONES_CORRECTED
+#define bcmolt_epon_onu_10g_us_stat_id__num_of                                                  BCMOLT_EPON_ONU_10G_US_STAT_ID__NUM_OF
+#define bcmolt_epon_onu_10g_us_stat_cfg_id_cfg                                                  BCMOLT_EPON_ONU_10G_US_STAT_CFG_ID_CFG
+#define bcmolt_epon_onu_10g_us_stat_cfg_id__num_of                                              BCMOLT_EPON_ONU_10G_US_STAT_CFG_ID__NUM_OF
+#define bcmolt_epon_onu_10g_us_stat_alarm_cleared_id_stat                                       BCMOLT_EPON_ONU_10G_US_STAT_ALARM_CLEARED_ID_STAT
+#define bcmolt_epon_onu_10g_us_stat_alarm_cleared_id__num_of                                    BCMOLT_EPON_ONU_10G_US_STAT_ALARM_CLEARED_ID__NUM_OF
+#define bcmolt_epon_onu_10g_us_stat_alarm_raised_id_stat                                        BCMOLT_EPON_ONU_10G_US_STAT_ALARM_RAISED_ID_STAT
+#define bcmolt_epon_onu_10g_us_stat_alarm_raised_id__num_of                                     BCMOLT_EPON_ONU_10G_US_STAT_ALARM_RAISED_ID__NUM_OF
+#define bcmolt_epon_onu_10g_us_auto_cfg_id_stat_alarm_cleared                                   BCMOLT_EPON_ONU_10G_US_AUTO_CFG_ID_STAT_ALARM_CLEARED
+#define bcmolt_epon_onu_10g_us_auto_cfg_id_stat_alarm_raised                                    BCMOLT_EPON_ONU_10G_US_AUTO_CFG_ID_STAT_ALARM_RAISED
+#define bcmolt_epon_onu_10g_us_auto_cfg_id__num_of                                              BCMOLT_EPON_ONU_10G_US_AUTO_CFG_ID__NUM_OF
+#define bcmolt_epon_onu_1g_us_key_id_epon_ni                                                    BCMOLT_EPON_ONU_1G_US_KEY_ID_EPON_NI
+#define bcmolt_epon_onu_1g_us_key_id_onu_id                                                     BCMOLT_EPON_ONU_1G_US_KEY_ID_ONU_ID
+#define bcmolt_epon_onu_1g_us_key_id__num_of                                                    BCMOLT_EPON_ONU_1G_US_KEY_ID__NUM_OF
+#define bcmolt_epon_onu_1g_us_cfg_id_all_links                                                  BCMOLT_EPON_ONU_1G_US_CFG_ID_ALL_LINKS
+#define bcmolt_epon_onu_1g_us_cfg_id__num_of                                                    BCMOLT_EPON_ONU_1G_US_CFG_ID__NUM_OF
+#define bcmolt_epon_onu_1g_us_stat_id_good_frames                                               BCMOLT_EPON_ONU_1G_US_STAT_ID_GOOD_FRAMES
+#define bcmolt_epon_onu_1g_us_stat_id_good_bytes                                                BCMOLT_EPON_ONU_1G_US_STAT_ID_GOOD_BYTES
+#define bcmolt_epon_onu_1g_us_stat_id_oversz_frames                                             BCMOLT_EPON_ONU_1G_US_STAT_ID_OVERSZ_FRAMES
+#define bcmolt_epon_onu_1g_us_stat_id_non_fec_good_frames                                       BCMOLT_EPON_ONU_1G_US_STAT_ID_NON_FEC_GOOD_FRAMES
+#define bcmolt_epon_onu_1g_us_stat_id_non_fec_good_bytes                                        BCMOLT_EPON_ONU_1G_US_STAT_ID_NON_FEC_GOOD_BYTES
+#define bcmolt_epon_onu_1g_us_stat_id_fec_good_frames                                           BCMOLT_EPON_ONU_1G_US_STAT_ID_FEC_GOOD_FRAMES
+#define bcmolt_epon_onu_1g_us_stat_id_fec_good_bytes                                            BCMOLT_EPON_ONU_1G_US_STAT_ID_FEC_GOOD_BYTES
+#define bcmolt_epon_onu_1g_us_stat_id_fec_frames_exc_errs                                       BCMOLT_EPON_ONU_1G_US_STAT_ID_FEC_FRAMES_EXC_ERRS
+#define bcmolt_epon_onu_1g_us_stat_id_fec_blks_no_errs                                          BCMOLT_EPON_ONU_1G_US_STAT_ID_FEC_BLKS_NO_ERRS
+#define bcmolt_epon_onu_1g_us_stat_id_fec_blks_corr_errs                                        BCMOLT_EPON_ONU_1G_US_STAT_ID_FEC_BLKS_CORR_ERRS
+#define bcmolt_epon_onu_1g_us_stat_id_fec_blks_uncorr_errs                                      BCMOLT_EPON_ONU_1G_US_STAT_ID_FEC_BLKS_UNCORR_ERRS
+#define bcmolt_epon_onu_1g_us_stat_id_fec_corr_bytes                                            BCMOLT_EPON_ONU_1G_US_STAT_ID_FEC_CORR_BYTES
+#define bcmolt_epon_onu_1g_us_stat_id_fec_corr_zeroes                                           BCMOLT_EPON_ONU_1G_US_STAT_ID_FEC_CORR_ZEROES
+#define bcmolt_epon_onu_1g_us_stat_id_fec_corr_ones                                             BCMOLT_EPON_ONU_1G_US_STAT_ID_FEC_CORR_ONES
+#define bcmolt_epon_onu_1g_us_stat_id_undersz_frames                                            BCMOLT_EPON_ONU_1G_US_STAT_ID_UNDERSZ_FRAMES
+#define bcmolt_epon_onu_1g_us_stat_id_errorsz_frames                                            BCMOLT_EPON_ONU_1G_US_STAT_ID_ERRORSZ_FRAMES
+#define bcmolt_epon_onu_1g_us_stat_id__num_of                                                   BCMOLT_EPON_ONU_1G_US_STAT_ID__NUM_OF
+#define bcmolt_epon_onu_1g_us_stat_cfg_id_cfg                                                   BCMOLT_EPON_ONU_1G_US_STAT_CFG_ID_CFG
+#define bcmolt_epon_onu_1g_us_stat_cfg_id__num_of                                               BCMOLT_EPON_ONU_1G_US_STAT_CFG_ID__NUM_OF
+#define bcmolt_epon_onu_1g_us_stat_alarm_cleared_id_stat                                        BCMOLT_EPON_ONU_1G_US_STAT_ALARM_CLEARED_ID_STAT
+#define bcmolt_epon_onu_1g_us_stat_alarm_cleared_id__num_of                                     BCMOLT_EPON_ONU_1G_US_STAT_ALARM_CLEARED_ID__NUM_OF
+#define bcmolt_epon_onu_1g_us_stat_alarm_raised_id_stat                                         BCMOLT_EPON_ONU_1G_US_STAT_ALARM_RAISED_ID_STAT
+#define bcmolt_epon_onu_1g_us_stat_alarm_raised_id__num_of                                      BCMOLT_EPON_ONU_1G_US_STAT_ALARM_RAISED_ID__NUM_OF
+#define bcmolt_epon_onu_1g_us_auto_cfg_id_stat_alarm_cleared                                    BCMOLT_EPON_ONU_1G_US_AUTO_CFG_ID_STAT_ALARM_CLEARED
+#define bcmolt_epon_onu_1g_us_auto_cfg_id_stat_alarm_raised                                     BCMOLT_EPON_ONU_1G_US_AUTO_CFG_ID_STAT_ALARM_RAISED
+#define bcmolt_epon_onu_1g_us_auto_cfg_id__num_of                                               BCMOLT_EPON_ONU_1G_US_AUTO_CFG_ID__NUM_OF
+#define bcmolt_epon_path_10g_ds_key_id_epon_ni                                                  BCMOLT_EPON_PATH_10G_DS_KEY_ID_EPON_NI
+#define bcmolt_epon_path_10g_ds_key_id__num_of                                                  BCMOLT_EPON_PATH_10G_DS_KEY_ID__NUM_OF
+#define bcmolt_epon_path_10g_ds_cfg_id_fec_state                                                BCMOLT_EPON_PATH_10G_DS_CFG_ID_FEC_STATE
+#define bcmolt_epon_path_10g_ds_cfg_id_prbs_generator                                           BCMOLT_EPON_PATH_10G_DS_CFG_ID_PRBS_GENERATOR
+#define bcmolt_epon_path_10g_ds_cfg_id__num_of                                                  BCMOLT_EPON_PATH_10G_DS_CFG_ID__NUM_OF
+#define bcmolt_epon_path_10g_ds_stat_id_bytes                                                   BCMOLT_EPON_PATH_10G_DS_STAT_ID_BYTES
+#define bcmolt_epon_path_10g_ds_stat_id_frames                                                  BCMOLT_EPON_PATH_10G_DS_STAT_ID_FRAMES
+#define bcmolt_epon_path_10g_ds_stat_id_frames_64                                               BCMOLT_EPON_PATH_10G_DS_STAT_ID_FRAMES_64
+#define bcmolt_epon_path_10g_ds_stat_id_frames_65_127                                           BCMOLT_EPON_PATH_10G_DS_STAT_ID_FRAMES_65_127
+#define bcmolt_epon_path_10g_ds_stat_id_frames_128_255                                          BCMOLT_EPON_PATH_10G_DS_STAT_ID_FRAMES_128_255
+#define bcmolt_epon_path_10g_ds_stat_id_frames_256_511                                          BCMOLT_EPON_PATH_10G_DS_STAT_ID_FRAMES_256_511
+#define bcmolt_epon_path_10g_ds_stat_id_frames_512_1023                                         BCMOLT_EPON_PATH_10G_DS_STAT_ID_FRAMES_512_1023
+#define bcmolt_epon_path_10g_ds_stat_id_frames_1024_1518                                        BCMOLT_EPON_PATH_10G_DS_STAT_ID_FRAMES_1024_1518
+#define bcmolt_epon_path_10g_ds_stat_id_frames_1519_2047                                        BCMOLT_EPON_PATH_10G_DS_STAT_ID_FRAMES_1519_2047
+#define bcmolt_epon_path_10g_ds_stat_id_frames_2048_4095                                        BCMOLT_EPON_PATH_10G_DS_STAT_ID_FRAMES_2048_4095
+#define bcmolt_epon_path_10g_ds_stat_id_frames_4096_9216                                        BCMOLT_EPON_PATH_10G_DS_STAT_ID_FRAMES_4096_9216
+#define bcmolt_epon_path_10g_ds_stat_id_frames_9217_16383                                       BCMOLT_EPON_PATH_10G_DS_STAT_ID_FRAMES_9217_16383
+#define bcmolt_epon_path_10g_ds_stat_id_broadcast_frames                                        BCMOLT_EPON_PATH_10G_DS_STAT_ID_BROADCAST_FRAMES
+#define bcmolt_epon_path_10g_ds_stat_id_data_bytes                                              BCMOLT_EPON_PATH_10G_DS_STAT_ID_DATA_BYTES
+#define bcmolt_epon_path_10g_ds_stat_id_multicast_frames                                        BCMOLT_EPON_PATH_10G_DS_STAT_ID_MULTICAST_FRAMES
+#define bcmolt_epon_path_10g_ds_stat_id_unicast_frames                                          BCMOLT_EPON_PATH_10G_DS_STAT_ID_UNICAST_FRAMES
+#define bcmolt_epon_path_10g_ds_stat_id_oam_bytes                                               BCMOLT_EPON_PATH_10G_DS_STAT_ID_OAM_BYTES
+#define bcmolt_epon_path_10g_ds_stat_id_oam_frames                                              BCMOLT_EPON_PATH_10G_DS_STAT_ID_OAM_FRAMES
+#define bcmolt_epon_path_10g_ds_stat_id_gate_frames                                             BCMOLT_EPON_PATH_10G_DS_STAT_ID_GATE_FRAMES
+#define bcmolt_epon_path_10g_ds_stat_id_mpcp_frames                                             BCMOLT_EPON_PATH_10G_DS_STAT_ID_MPCP_FRAMES
+#define bcmolt_epon_path_10g_ds_stat_id_abort_frames                                            BCMOLT_EPON_PATH_10G_DS_STAT_ID_ABORT_FRAMES
+#define bcmolt_epon_path_10g_ds_stat_id__num_of                                                 BCMOLT_EPON_PATH_10G_DS_STAT_ID__NUM_OF
+#define bcmolt_epon_path_10g_ds_stat_cfg_id_cfg                                                 BCMOLT_EPON_PATH_10G_DS_STAT_CFG_ID_CFG
+#define bcmolt_epon_path_10g_ds_stat_cfg_id__num_of                                             BCMOLT_EPON_PATH_10G_DS_STAT_CFG_ID__NUM_OF
+#define bcmolt_epon_path_10g_ds_stat_alarm_cleared_id_stat                                      BCMOLT_EPON_PATH_10G_DS_STAT_ALARM_CLEARED_ID_STAT
+#define bcmolt_epon_path_10g_ds_stat_alarm_cleared_id__num_of                                   BCMOLT_EPON_PATH_10G_DS_STAT_ALARM_CLEARED_ID__NUM_OF
+#define bcmolt_epon_path_10g_ds_stat_alarm_raised_id_stat                                       BCMOLT_EPON_PATH_10G_DS_STAT_ALARM_RAISED_ID_STAT
+#define bcmolt_epon_path_10g_ds_stat_alarm_raised_id__num_of                                    BCMOLT_EPON_PATH_10G_DS_STAT_ALARM_RAISED_ID__NUM_OF
+#define bcmolt_epon_path_10g_ds_auto_cfg_id_stat_alarm_cleared                                  BCMOLT_EPON_PATH_10G_DS_AUTO_CFG_ID_STAT_ALARM_CLEARED
+#define bcmolt_epon_path_10g_ds_auto_cfg_id_stat_alarm_raised                                   BCMOLT_EPON_PATH_10G_DS_AUTO_CFG_ID_STAT_ALARM_RAISED
+#define bcmolt_epon_path_10g_ds_auto_cfg_id__num_of                                             BCMOLT_EPON_PATH_10G_DS_AUTO_CFG_ID__NUM_OF
+#define bcmolt_epon_path_10g_us_key_id_epon_ni                                                  BCMOLT_EPON_PATH_10G_US_KEY_ID_EPON_NI
+#define bcmolt_epon_path_10g_us_key_id__num_of                                                  BCMOLT_EPON_PATH_10G_US_KEY_ID__NUM_OF
+#define bcmolt_epon_path_10g_us_cfg_id_fec_state                                                BCMOLT_EPON_PATH_10G_US_CFG_ID_FEC_STATE
+#define bcmolt_epon_path_10g_us_cfg_id_sync_time_tq                                             BCMOLT_EPON_PATH_10G_US_CFG_ID_SYNC_TIME_TQ
+#define bcmolt_epon_path_10g_us_cfg_id_prbs_checker                                             BCMOLT_EPON_PATH_10G_US_CFG_ID_PRBS_CHECKER
+#define bcmolt_epon_path_10g_us_cfg_id_prbs_status                                              BCMOLT_EPON_PATH_10G_US_CFG_ID_PRBS_STATUS
+#define bcmolt_epon_path_10g_us_cfg_id__num_of                                                  BCMOLT_EPON_PATH_10G_US_CFG_ID__NUM_OF
+#define bcmolt_epon_path_10g_us_stat_id_bytes                                                   BCMOLT_EPON_PATH_10G_US_STAT_ID_BYTES
+#define bcmolt_epon_path_10g_us_stat_id_frames                                                  BCMOLT_EPON_PATH_10G_US_STAT_ID_FRAMES
+#define bcmolt_epon_path_10g_us_stat_id_frames_64                                               BCMOLT_EPON_PATH_10G_US_STAT_ID_FRAMES_64
+#define bcmolt_epon_path_10g_us_stat_id_frames_65_127                                           BCMOLT_EPON_PATH_10G_US_STAT_ID_FRAMES_65_127
+#define bcmolt_epon_path_10g_us_stat_id_frames_128_255                                          BCMOLT_EPON_PATH_10G_US_STAT_ID_FRAMES_128_255
+#define bcmolt_epon_path_10g_us_stat_id_frames_256_511                                          BCMOLT_EPON_PATH_10G_US_STAT_ID_FRAMES_256_511
+#define bcmolt_epon_path_10g_us_stat_id_frames_512_1023                                         BCMOLT_EPON_PATH_10G_US_STAT_ID_FRAMES_512_1023
+#define bcmolt_epon_path_10g_us_stat_id_frames_1024_1518                                        BCMOLT_EPON_PATH_10G_US_STAT_ID_FRAMES_1024_1518
+#define bcmolt_epon_path_10g_us_stat_id_frames_1519_2047                                        BCMOLT_EPON_PATH_10G_US_STAT_ID_FRAMES_1519_2047
+#define bcmolt_epon_path_10g_us_stat_id_frames_2048_4095                                        BCMOLT_EPON_PATH_10G_US_STAT_ID_FRAMES_2048_4095
+#define bcmolt_epon_path_10g_us_stat_id_frames_4096_9216                                        BCMOLT_EPON_PATH_10G_US_STAT_ID_FRAMES_4096_9216
+#define bcmolt_epon_path_10g_us_stat_id_frames_9217_16383                                       BCMOLT_EPON_PATH_10G_US_STAT_ID_FRAMES_9217_16383
+#define bcmolt_epon_path_10g_us_stat_id_broadcast_frames                                        BCMOLT_EPON_PATH_10G_US_STAT_ID_BROADCAST_FRAMES
+#define bcmolt_epon_path_10g_us_stat_id_data_bytes                                              BCMOLT_EPON_PATH_10G_US_STAT_ID_DATA_BYTES
+#define bcmolt_epon_path_10g_us_stat_id_multicast_frames                                        BCMOLT_EPON_PATH_10G_US_STAT_ID_MULTICAST_FRAMES
+#define bcmolt_epon_path_10g_us_stat_id_unicast_frames                                          BCMOLT_EPON_PATH_10G_US_STAT_ID_UNICAST_FRAMES
+#define bcmolt_epon_path_10g_us_stat_id_mpcp_frames                                             BCMOLT_EPON_PATH_10G_US_STAT_ID_MPCP_FRAMES
+#define bcmolt_epon_path_10g_us_stat_id_oam_bytes                                               BCMOLT_EPON_PATH_10G_US_STAT_ID_OAM_BYTES
+#define bcmolt_epon_path_10g_us_stat_id_oam_frames                                              BCMOLT_EPON_PATH_10G_US_STAT_ID_OAM_FRAMES
+#define bcmolt_epon_path_10g_us_stat_id_report_frames                                           BCMOLT_EPON_PATH_10G_US_STAT_ID_REPORT_FRAMES
+#define bcmolt_epon_path_10g_us_stat_id_abort_frames                                            BCMOLT_EPON_PATH_10G_US_STAT_ID_ABORT_FRAMES
+#define bcmolt_epon_path_10g_us_stat_id_fcs_error                                               BCMOLT_EPON_PATH_10G_US_STAT_ID_FCS_ERROR
+#define bcmolt_epon_path_10g_us_stat_id_crc_8_error                                             BCMOLT_EPON_PATH_10G_US_STAT_ID_CRC_8_ERROR
+#define bcmolt_epon_path_10g_us_stat_id_out_of_slot                                             BCMOLT_EPON_PATH_10G_US_STAT_ID_OUT_OF_SLOT
+#define bcmolt_epon_path_10g_us_stat_id_oversize_error                                          BCMOLT_EPON_PATH_10G_US_STAT_ID_OVERSIZE_ERROR
+#define bcmolt_epon_path_10g_us_stat_id_runt_error                                              BCMOLT_EPON_PATH_10G_US_STAT_ID_RUNT_ERROR
+#define bcmolt_epon_path_10g_us_stat_id__num_of                                                 BCMOLT_EPON_PATH_10G_US_STAT_ID__NUM_OF
+#define bcmolt_epon_path_10g_us_stat_cfg_id_cfg                                                 BCMOLT_EPON_PATH_10G_US_STAT_CFG_ID_CFG
+#define bcmolt_epon_path_10g_us_stat_cfg_id__num_of                                             BCMOLT_EPON_PATH_10G_US_STAT_CFG_ID__NUM_OF
+#define bcmolt_epon_path_10g_us_stat_alarm_cleared_id_stat                                      BCMOLT_EPON_PATH_10G_US_STAT_ALARM_CLEARED_ID_STAT
+#define bcmolt_epon_path_10g_us_stat_alarm_cleared_id__num_of                                   BCMOLT_EPON_PATH_10G_US_STAT_ALARM_CLEARED_ID__NUM_OF
+#define bcmolt_epon_path_10g_us_stat_alarm_raised_id_stat                                       BCMOLT_EPON_PATH_10G_US_STAT_ALARM_RAISED_ID_STAT
+#define bcmolt_epon_path_10g_us_stat_alarm_raised_id__num_of                                    BCMOLT_EPON_PATH_10G_US_STAT_ALARM_RAISED_ID__NUM_OF
+#define bcmolt_epon_path_10g_us_auto_cfg_id_stat_alarm_cleared                                  BCMOLT_EPON_PATH_10G_US_AUTO_CFG_ID_STAT_ALARM_CLEARED
+#define bcmolt_epon_path_10g_us_auto_cfg_id_stat_alarm_raised                                   BCMOLT_EPON_PATH_10G_US_AUTO_CFG_ID_STAT_ALARM_RAISED
+#define bcmolt_epon_path_10g_us_auto_cfg_id__num_of                                             BCMOLT_EPON_PATH_10G_US_AUTO_CFG_ID__NUM_OF
+#define bcmolt_epon_path_1g_ds_key_id_epon_ni                                                   BCMOLT_EPON_PATH_1G_DS_KEY_ID_EPON_NI
+#define bcmolt_epon_path_1g_ds_key_id__num_of                                                   BCMOLT_EPON_PATH_1G_DS_KEY_ID__NUM_OF
+#define bcmolt_epon_path_1g_ds_cfg_id_default_fec_state                                         BCMOLT_EPON_PATH_1G_DS_CFG_ID_DEFAULT_FEC_STATE
+#define bcmolt_epon_path_1g_ds_cfg_id_raman_mode                                                BCMOLT_EPON_PATH_1G_DS_CFG_ID_RAMAN_MODE
+#define bcmolt_epon_path_1g_ds_cfg_id_turbo_2g_mode                                             BCMOLT_EPON_PATH_1G_DS_CFG_ID_TURBO_2G_MODE
+#define bcmolt_epon_path_1g_ds_cfg_id_prbs_generator                                            BCMOLT_EPON_PATH_1G_DS_CFG_ID_PRBS_GENERATOR
+#define bcmolt_epon_path_1g_ds_cfg_id__num_of                                                   BCMOLT_EPON_PATH_1G_DS_CFG_ID__NUM_OF
+#define bcmolt_epon_path_1g_ds_stat_id_bytes                                                    BCMOLT_EPON_PATH_1G_DS_STAT_ID_BYTES
+#define bcmolt_epon_path_1g_ds_stat_id_frames                                                   BCMOLT_EPON_PATH_1G_DS_STAT_ID_FRAMES
+#define bcmolt_epon_path_1g_ds_stat_id_frames_64                                                BCMOLT_EPON_PATH_1G_DS_STAT_ID_FRAMES_64
+#define bcmolt_epon_path_1g_ds_stat_id_frames_65_127                                            BCMOLT_EPON_PATH_1G_DS_STAT_ID_FRAMES_65_127
+#define bcmolt_epon_path_1g_ds_stat_id_frames_128_255                                           BCMOLT_EPON_PATH_1G_DS_STAT_ID_FRAMES_128_255
+#define bcmolt_epon_path_1g_ds_stat_id_frames_256_511                                           BCMOLT_EPON_PATH_1G_DS_STAT_ID_FRAMES_256_511
+#define bcmolt_epon_path_1g_ds_stat_id_frames_512_1023                                          BCMOLT_EPON_PATH_1G_DS_STAT_ID_FRAMES_512_1023
+#define bcmolt_epon_path_1g_ds_stat_id_frames_1024_1518                                         BCMOLT_EPON_PATH_1G_DS_STAT_ID_FRAMES_1024_1518
+#define bcmolt_epon_path_1g_ds_stat_id_frames_1519_2047                                         BCMOLT_EPON_PATH_1G_DS_STAT_ID_FRAMES_1519_2047
+#define bcmolt_epon_path_1g_ds_stat_id_frames_2048_4095                                         BCMOLT_EPON_PATH_1G_DS_STAT_ID_FRAMES_2048_4095
+#define bcmolt_epon_path_1g_ds_stat_id_frames_4096_9216                                         BCMOLT_EPON_PATH_1G_DS_STAT_ID_FRAMES_4096_9216
+#define bcmolt_epon_path_1g_ds_stat_id_frames_9217_16383                                        BCMOLT_EPON_PATH_1G_DS_STAT_ID_FRAMES_9217_16383
+#define bcmolt_epon_path_1g_ds_stat_id_broadcast_frames                                         BCMOLT_EPON_PATH_1G_DS_STAT_ID_BROADCAST_FRAMES
+#define bcmolt_epon_path_1g_ds_stat_id_data_bytes                                               BCMOLT_EPON_PATH_1G_DS_STAT_ID_DATA_BYTES
+#define bcmolt_epon_path_1g_ds_stat_id_multicast_frames                                         BCMOLT_EPON_PATH_1G_DS_STAT_ID_MULTICAST_FRAMES
+#define bcmolt_epon_path_1g_ds_stat_id_unicast_frames                                           BCMOLT_EPON_PATH_1G_DS_STAT_ID_UNICAST_FRAMES
+#define bcmolt_epon_path_1g_ds_stat_id_oam_bytes                                                BCMOLT_EPON_PATH_1G_DS_STAT_ID_OAM_BYTES
+#define bcmolt_epon_path_1g_ds_stat_id_oam_frames                                               BCMOLT_EPON_PATH_1G_DS_STAT_ID_OAM_FRAMES
+#define bcmolt_epon_path_1g_ds_stat_id_gate_frames                                              BCMOLT_EPON_PATH_1G_DS_STAT_ID_GATE_FRAMES
+#define bcmolt_epon_path_1g_ds_stat_id_mpcp_frames                                              BCMOLT_EPON_PATH_1G_DS_STAT_ID_MPCP_FRAMES
+#define bcmolt_epon_path_1g_ds_stat_id_abort_frames                                             BCMOLT_EPON_PATH_1G_DS_STAT_ID_ABORT_FRAMES
+#define bcmolt_epon_path_1g_ds_stat_id__num_of                                                  BCMOLT_EPON_PATH_1G_DS_STAT_ID__NUM_OF
+#define bcmolt_epon_path_1g_ds_stat_cfg_id_cfg                                                  BCMOLT_EPON_PATH_1G_DS_STAT_CFG_ID_CFG
+#define bcmolt_epon_path_1g_ds_stat_cfg_id__num_of                                              BCMOLT_EPON_PATH_1G_DS_STAT_CFG_ID__NUM_OF
+#define bcmolt_epon_path_1g_ds_stat_alarm_cleared_id_stat                                       BCMOLT_EPON_PATH_1G_DS_STAT_ALARM_CLEARED_ID_STAT
+#define bcmolt_epon_path_1g_ds_stat_alarm_cleared_id__num_of                                    BCMOLT_EPON_PATH_1G_DS_STAT_ALARM_CLEARED_ID__NUM_OF
+#define bcmolt_epon_path_1g_ds_stat_alarm_raised_id_stat                                        BCMOLT_EPON_PATH_1G_DS_STAT_ALARM_RAISED_ID_STAT
+#define bcmolt_epon_path_1g_ds_stat_alarm_raised_id__num_of                                     BCMOLT_EPON_PATH_1G_DS_STAT_ALARM_RAISED_ID__NUM_OF
+#define bcmolt_epon_path_1g_ds_auto_cfg_id_stat_alarm_cleared                                   BCMOLT_EPON_PATH_1G_DS_AUTO_CFG_ID_STAT_ALARM_CLEARED
+#define bcmolt_epon_path_1g_ds_auto_cfg_id_stat_alarm_raised                                    BCMOLT_EPON_PATH_1G_DS_AUTO_CFG_ID_STAT_ALARM_RAISED
+#define bcmolt_epon_path_1g_ds_auto_cfg_id__num_of                                              BCMOLT_EPON_PATH_1G_DS_AUTO_CFG_ID__NUM_OF
+#define bcmolt_epon_path_1g_us_key_id_epon_ni                                                   BCMOLT_EPON_PATH_1G_US_KEY_ID_EPON_NI
+#define bcmolt_epon_path_1g_us_key_id__num_of                                                   BCMOLT_EPON_PATH_1G_US_KEY_ID__NUM_OF
+#define bcmolt_epon_path_1g_us_cfg_id_default_fec_state                                         BCMOLT_EPON_PATH_1G_US_CFG_ID_DEFAULT_FEC_STATE
+#define bcmolt_epon_path_1g_us_cfg_id_sync_time_tq                                              BCMOLT_EPON_PATH_1G_US_CFG_ID_SYNC_TIME_TQ
+#define bcmolt_epon_path_1g_us_cfg_id_prbs_checker                                              BCMOLT_EPON_PATH_1G_US_CFG_ID_PRBS_CHECKER
+#define bcmolt_epon_path_1g_us_cfg_id_prbs_status                                               BCMOLT_EPON_PATH_1G_US_CFG_ID_PRBS_STATUS
+#define bcmolt_epon_path_1g_us_cfg_id__num_of                                                   BCMOLT_EPON_PATH_1G_US_CFG_ID__NUM_OF
+#define bcmolt_epon_path_1g_us_stat_id_bytes                                                    BCMOLT_EPON_PATH_1G_US_STAT_ID_BYTES
+#define bcmolt_epon_path_1g_us_stat_id_frames                                                   BCMOLT_EPON_PATH_1G_US_STAT_ID_FRAMES
+#define bcmolt_epon_path_1g_us_stat_id_frames_64                                                BCMOLT_EPON_PATH_1G_US_STAT_ID_FRAMES_64
+#define bcmolt_epon_path_1g_us_stat_id_frames_65_127                                            BCMOLT_EPON_PATH_1G_US_STAT_ID_FRAMES_65_127
+#define bcmolt_epon_path_1g_us_stat_id_frames_128_255                                           BCMOLT_EPON_PATH_1G_US_STAT_ID_FRAMES_128_255
+#define bcmolt_epon_path_1g_us_stat_id_frames_256_511                                           BCMOLT_EPON_PATH_1G_US_STAT_ID_FRAMES_256_511
+#define bcmolt_epon_path_1g_us_stat_id_frames_512_1023                                          BCMOLT_EPON_PATH_1G_US_STAT_ID_FRAMES_512_1023
+#define bcmolt_epon_path_1g_us_stat_id_frames_1024_1518                                         BCMOLT_EPON_PATH_1G_US_STAT_ID_FRAMES_1024_1518
+#define bcmolt_epon_path_1g_us_stat_id_frames_1519_2047                                         BCMOLT_EPON_PATH_1G_US_STAT_ID_FRAMES_1519_2047
+#define bcmolt_epon_path_1g_us_stat_id_frames_2048_4095                                         BCMOLT_EPON_PATH_1G_US_STAT_ID_FRAMES_2048_4095
+#define bcmolt_epon_path_1g_us_stat_id_frames_4096_9216                                         BCMOLT_EPON_PATH_1G_US_STAT_ID_FRAMES_4096_9216
+#define bcmolt_epon_path_1g_us_stat_id_frames_9217_16383                                        BCMOLT_EPON_PATH_1G_US_STAT_ID_FRAMES_9217_16383
+#define bcmolt_epon_path_1g_us_stat_id_broadcast_frames                                         BCMOLT_EPON_PATH_1G_US_STAT_ID_BROADCAST_FRAMES
+#define bcmolt_epon_path_1g_us_stat_id_data_bytes                                               BCMOLT_EPON_PATH_1G_US_STAT_ID_DATA_BYTES
+#define bcmolt_epon_path_1g_us_stat_id_multicast_frames                                         BCMOLT_EPON_PATH_1G_US_STAT_ID_MULTICAST_FRAMES
+#define bcmolt_epon_path_1g_us_stat_id_unicast_frames                                           BCMOLT_EPON_PATH_1G_US_STAT_ID_UNICAST_FRAMES
+#define bcmolt_epon_path_1g_us_stat_id_mpcp_frames                                              BCMOLT_EPON_PATH_1G_US_STAT_ID_MPCP_FRAMES
+#define bcmolt_epon_path_1g_us_stat_id_oam_bytes                                                BCMOLT_EPON_PATH_1G_US_STAT_ID_OAM_BYTES
+#define bcmolt_epon_path_1g_us_stat_id_oam_frames                                               BCMOLT_EPON_PATH_1G_US_STAT_ID_OAM_FRAMES
+#define bcmolt_epon_path_1g_us_stat_id_report_frames                                            BCMOLT_EPON_PATH_1G_US_STAT_ID_REPORT_FRAMES
+#define bcmolt_epon_path_1g_us_stat_id_abort_frames                                             BCMOLT_EPON_PATH_1G_US_STAT_ID_ABORT_FRAMES
+#define bcmolt_epon_path_1g_us_stat_id_fcs_error                                                BCMOLT_EPON_PATH_1G_US_STAT_ID_FCS_ERROR
+#define bcmolt_epon_path_1g_us_stat_id_crc_8_error                                              BCMOLT_EPON_PATH_1G_US_STAT_ID_CRC_8_ERROR
+#define bcmolt_epon_path_1g_us_stat_id_out_of_slot                                              BCMOLT_EPON_PATH_1G_US_STAT_ID_OUT_OF_SLOT
+#define bcmolt_epon_path_1g_us_stat_id_oversize_error                                           BCMOLT_EPON_PATH_1G_US_STAT_ID_OVERSIZE_ERROR
+#define bcmolt_epon_path_1g_us_stat_id_runt_error                                               BCMOLT_EPON_PATH_1G_US_STAT_ID_RUNT_ERROR
+#define bcmolt_epon_path_1g_us_stat_id__num_of                                                  BCMOLT_EPON_PATH_1G_US_STAT_ID__NUM_OF
+#define bcmolt_epon_path_1g_us_stat_cfg_id_cfg                                                  BCMOLT_EPON_PATH_1G_US_STAT_CFG_ID_CFG
+#define bcmolt_epon_path_1g_us_stat_cfg_id__num_of                                              BCMOLT_EPON_PATH_1G_US_STAT_CFG_ID__NUM_OF
+#define bcmolt_epon_path_1g_us_stat_alarm_cleared_id_stat                                       BCMOLT_EPON_PATH_1G_US_STAT_ALARM_CLEARED_ID_STAT
+#define bcmolt_epon_path_1g_us_stat_alarm_cleared_id__num_of                                    BCMOLT_EPON_PATH_1G_US_STAT_ALARM_CLEARED_ID__NUM_OF
+#define bcmolt_epon_path_1g_us_stat_alarm_raised_id_stat                                        BCMOLT_EPON_PATH_1G_US_STAT_ALARM_RAISED_ID_STAT
+#define bcmolt_epon_path_1g_us_stat_alarm_raised_id__num_of                                     BCMOLT_EPON_PATH_1G_US_STAT_ALARM_RAISED_ID__NUM_OF
+#define bcmolt_epon_path_1g_us_auto_cfg_id_stat_alarm_cleared                                   BCMOLT_EPON_PATH_1G_US_AUTO_CFG_ID_STAT_ALARM_CLEARED
+#define bcmolt_epon_path_1g_us_auto_cfg_id_stat_alarm_raised                                    BCMOLT_EPON_PATH_1G_US_AUTO_CFG_ID_STAT_ALARM_RAISED
+#define bcmolt_epon_path_1g_us_auto_cfg_id__num_of                                              BCMOLT_EPON_PATH_1G_US_AUTO_CFG_ID__NUM_OF
+#define bcmolt_epon_rp_key_id_epon_ni                                                           BCMOLT_EPON_RP_KEY_ID_EPON_NI
+#define bcmolt_epon_rp_key_id_link_rate                                                         BCMOLT_EPON_RP_KEY_ID_LINK_RATE
+#define bcmolt_epon_rp_key_id__num_of                                                           BCMOLT_EPON_RP_KEY_ID__NUM_OF
+#define bcmolt_epon_rp_cfg_id_base_llid                                                         BCMOLT_EPON_RP_CFG_ID_BASE_LLID
+#define bcmolt_epon_rp_cfg_id_mpcp_disc_en                                                      BCMOLT_EPON_RP_CFG_ID_MPCP_DISC_EN
+#define bcmolt_epon_rp_cfg_id_mpcp_disc_gnt_len_tq                                              BCMOLT_EPON_RP_CFG_ID_MPCP_DISC_GNT_LEN_TQ
+#define bcmolt_epon_rp_cfg_id_mpcp_report_timeout                                               BCMOLT_EPON_RP_CFG_ID_MPCP_REPORT_TIMEOUT
+#define bcmolt_epon_rp_cfg_id_max_mpcp_reg_per_disc_window                                      BCMOLT_EPON_RP_CFG_ID_MAX_MPCP_REG_PER_DISC_WINDOW
+#define bcmolt_epon_rp_cfg_id_max_links                                                         BCMOLT_EPON_RP_CFG_ID_MAX_LINKS
+#define bcmolt_epon_rp_cfg_id_default_upstream_bandwidth                                        BCMOLT_EPON_RP_CFG_ID_DEFAULT_UPSTREAM_BANDWIDTH
+#define bcmolt_epon_rp_cfg_id_rate_of_refraction                                                BCMOLT_EPON_RP_CFG_ID_RATE_OF_REFRACTION
+#define bcmolt_epon_rp_cfg_id__num_of                                                           BCMOLT_EPON_RP_CFG_ID__NUM_OF
+#define bcmolt_gpio_key_id_reserved                                                             BCMOLT_GPIO_KEY_ID_RESERVED
+#define bcmolt_gpio_key_id_gpio_id                                                              BCMOLT_GPIO_KEY_ID_GPIO_ID
+#define bcmolt_gpio_key_id__num_of                                                              BCMOLT_GPIO_KEY_ID__NUM_OF
+#define bcmolt_gpio_cfg_id_direction                                                            BCMOLT_GPIO_CFG_ID_DIRECTION
+#define bcmolt_gpio_cfg_id_value                                                                BCMOLT_GPIO_CFG_ID_VALUE
+#define bcmolt_gpio_cfg_id__num_of                                                              BCMOLT_GPIO_CFG_ID__NUM_OF
+#define bcmolt_gpon_alloc_key_id_pon_ni                                                         BCMOLT_GPON_ALLOC_KEY_ID_PON_NI
+#define bcmolt_gpon_alloc_key_id_alloc_id                                                       BCMOLT_GPON_ALLOC_KEY_ID_ALLOC_ID
+#define bcmolt_gpon_alloc_key_id__num_of                                                        BCMOLT_GPON_ALLOC_KEY_ID__NUM_OF
+#define bcmolt_gpon_alloc_cfg_id_state                                                          BCMOLT_GPON_ALLOC_CFG_ID_STATE
+#define bcmolt_gpon_alloc_cfg_id_sla                                                            BCMOLT_GPON_ALLOC_CFG_ID_SLA
+#define bcmolt_gpon_alloc_cfg_id_onu_id                                                         BCMOLT_GPON_ALLOC_CFG_ID_ONU_ID
+#define bcmolt_gpon_alloc_cfg_id_collect_stats                                                  BCMOLT_GPON_ALLOC_CFG_ID_COLLECT_STATS
+#define bcmolt_gpon_alloc_cfg_id__num_of                                                        BCMOLT_GPON_ALLOC_CFG_ID__NUM_OF
+#define bcmolt_gpon_alloc_stat_id_rx_bytes                                                      BCMOLT_GPON_ALLOC_STAT_ID_RX_BYTES
+#define bcmolt_gpon_alloc_stat_id__num_of                                                       BCMOLT_GPON_ALLOC_STAT_ID__NUM_OF
+#define bcmolt_gpon_alloc_stat_cfg_id_cfg                                                       BCMOLT_GPON_ALLOC_STAT_CFG_ID_CFG
+#define bcmolt_gpon_alloc_stat_cfg_id__num_of                                                   BCMOLT_GPON_ALLOC_STAT_CFG_ID__NUM_OF
+#define bcmolt_gpon_alloc_configuration_completed_id_status                                     BCMOLT_GPON_ALLOC_CONFIGURATION_COMPLETED_ID_STATUS
+#define bcmolt_gpon_alloc_configuration_completed_id_new_state                                  BCMOLT_GPON_ALLOC_CONFIGURATION_COMPLETED_ID_NEW_STATE
+#define bcmolt_gpon_alloc_configuration_completed_id__num_of                                    BCMOLT_GPON_ALLOC_CONFIGURATION_COMPLETED_ID__NUM_OF
+#define bcmolt_gpon_alloc_get_alloc_stats_completed_id_status                                   BCMOLT_GPON_ALLOC_GET_ALLOC_STATS_COMPLETED_ID_STATUS
+#define bcmolt_gpon_alloc_get_alloc_stats_completed_id_average_nsr_used                         BCMOLT_GPON_ALLOC_GET_ALLOC_STATS_COMPLETED_ID_AVERAGE_NSR_USED
+#define bcmolt_gpon_alloc_get_alloc_stats_completed_id_average_nsr_allocated                    BCMOLT_GPON_ALLOC_GET_ALLOC_STATS_COMPLETED_ID_AVERAGE_NSR_ALLOCATED
+#define bcmolt_gpon_alloc_get_alloc_stats_completed_id_average_sr_report                        BCMOLT_GPON_ALLOC_GET_ALLOC_STATS_COMPLETED_ID_AVERAGE_SR_REPORT
+#define bcmolt_gpon_alloc_get_alloc_stats_completed_id__num_of                                  BCMOLT_GPON_ALLOC_GET_ALLOC_STATS_COMPLETED_ID__NUM_OF
+#define bcmolt_gpon_alloc_stat_alarm_cleared_id_stat                                            BCMOLT_GPON_ALLOC_STAT_ALARM_CLEARED_ID_STAT
+#define bcmolt_gpon_alloc_stat_alarm_cleared_id__num_of                                         BCMOLT_GPON_ALLOC_STAT_ALARM_CLEARED_ID__NUM_OF
+#define bcmolt_gpon_alloc_stat_alarm_raised_id_stat                                             BCMOLT_GPON_ALLOC_STAT_ALARM_RAISED_ID_STAT
+#define bcmolt_gpon_alloc_stat_alarm_raised_id__num_of                                          BCMOLT_GPON_ALLOC_STAT_ALARM_RAISED_ID__NUM_OF
+#define bcmolt_gpon_alloc_auto_cfg_id_configuration_completed                                   BCMOLT_GPON_ALLOC_AUTO_CFG_ID_CONFIGURATION_COMPLETED
+#define bcmolt_gpon_alloc_auto_cfg_id_get_alloc_stats_completed                                 BCMOLT_GPON_ALLOC_AUTO_CFG_ID_GET_ALLOC_STATS_COMPLETED
+#define bcmolt_gpon_alloc_auto_cfg_id_stat_alarm_cleared                                        BCMOLT_GPON_ALLOC_AUTO_CFG_ID_STAT_ALARM_CLEARED
+#define bcmolt_gpon_alloc_auto_cfg_id_stat_alarm_raised                                         BCMOLT_GPON_ALLOC_AUTO_CFG_ID_STAT_ALARM_RAISED
+#define bcmolt_gpon_alloc_auto_cfg_id__num_of                                                   BCMOLT_GPON_ALLOC_AUTO_CFG_ID__NUM_OF
+#define bcmolt_gpon_alloc_get_stats_id_num_of_cycles                                            BCMOLT_GPON_ALLOC_GET_STATS_ID_NUM_OF_CYCLES
+#define bcmolt_gpon_alloc_get_stats_id__num_of                                                  BCMOLT_GPON_ALLOC_GET_STATS_ID__NUM_OF
+#define bcmolt_gpon_alloc_set_state_id_state                                                    BCMOLT_GPON_ALLOC_SET_STATE_ID_STATE
+#define bcmolt_gpon_alloc_set_state_id__num_of                                                  BCMOLT_GPON_ALLOC_SET_STATE_ID__NUM_OF
+#define bcmolt_gpon_gem_port_key_id_pon_ni                                                      BCMOLT_GPON_GEM_PORT_KEY_ID_PON_NI
+#define bcmolt_gpon_gem_port_key_id_gem_port_id                                                 BCMOLT_GPON_GEM_PORT_KEY_ID_GEM_PORT_ID
+#define bcmolt_gpon_gem_port_key_id__num_of                                                     BCMOLT_GPON_GEM_PORT_KEY_ID__NUM_OF
+#define bcmolt_gpon_gem_port_cfg_id_configuration                                               BCMOLT_GPON_GEM_PORT_CFG_ID_CONFIGURATION
+#define bcmolt_gpon_gem_port_cfg_id_onu_id                                                      BCMOLT_GPON_GEM_PORT_CFG_ID_ONU_ID
+#define bcmolt_gpon_gem_port_cfg_id_gem_port_state                                              BCMOLT_GPON_GEM_PORT_CFG_ID_GEM_PORT_STATE
+#define bcmolt_gpon_gem_port_cfg_id_downstream_encryption_mode                                  BCMOLT_GPON_GEM_PORT_CFG_ID_DOWNSTREAM_ENCRYPTION_MODE
+#define bcmolt_gpon_gem_port_cfg_id_upstream_destination_queue                                  BCMOLT_GPON_GEM_PORT_CFG_ID_UPSTREAM_DESTINATION_QUEUE
+#define bcmolt_gpon_gem_port_cfg_id_control                                                     BCMOLT_GPON_GEM_PORT_CFG_ID_CONTROL
+#define bcmolt_gpon_gem_port_cfg_id_debug_flow_config                                           BCMOLT_GPON_GEM_PORT_CFG_ID_DEBUG_FLOW_CONFIG
+#define bcmolt_gpon_gem_port_cfg_id_mac_table_entry_limit                                       BCMOLT_GPON_GEM_PORT_CFG_ID_MAC_TABLE_ENTRY_LIMIT
+#define bcmolt_gpon_gem_port_cfg_id__num_of                                                     BCMOLT_GPON_GEM_PORT_CFG_ID__NUM_OF
+#define bcmolt_gpon_gem_port_stat_id_rx_packets                                                 BCMOLT_GPON_GEM_PORT_STAT_ID_RX_PACKETS
+#define bcmolt_gpon_gem_port_stat_id_rx_bytes                                                   BCMOLT_GPON_GEM_PORT_STAT_ID_RX_BYTES
+#define bcmolt_gpon_gem_port_stat_id_tx_packets                                                 BCMOLT_GPON_GEM_PORT_STAT_ID_TX_PACKETS
+#define bcmolt_gpon_gem_port_stat_id_tx_bytes                                                   BCMOLT_GPON_GEM_PORT_STAT_ID_TX_BYTES
+#define bcmolt_gpon_gem_port_stat_id__num_of                                                    BCMOLT_GPON_GEM_PORT_STAT_ID__NUM_OF
+#define bcmolt_gpon_gem_port_stat_cfg_id_cfg                                                    BCMOLT_GPON_GEM_PORT_STAT_CFG_ID_CFG
+#define bcmolt_gpon_gem_port_stat_cfg_id__num_of                                                BCMOLT_GPON_GEM_PORT_STAT_CFG_ID__NUM_OF
+#define bcmolt_gpon_gem_port_configuration_completed_id_status                                  BCMOLT_GPON_GEM_PORT_CONFIGURATION_COMPLETED_ID_STATUS
+#define bcmolt_gpon_gem_port_configuration_completed_id_new_state                               BCMOLT_GPON_GEM_PORT_CONFIGURATION_COMPLETED_ID_NEW_STATE
+#define bcmolt_gpon_gem_port_configuration_completed_id__num_of                                 BCMOLT_GPON_GEM_PORT_CONFIGURATION_COMPLETED_ID__NUM_OF
+#define bcmolt_gpon_gem_port_stat_alarm_cleared_id_stat                                         BCMOLT_GPON_GEM_PORT_STAT_ALARM_CLEARED_ID_STAT
+#define bcmolt_gpon_gem_port_stat_alarm_cleared_id__num_of                                      BCMOLT_GPON_GEM_PORT_STAT_ALARM_CLEARED_ID__NUM_OF
+#define bcmolt_gpon_gem_port_stat_alarm_raised_id_stat                                          BCMOLT_GPON_GEM_PORT_STAT_ALARM_RAISED_ID_STAT
+#define bcmolt_gpon_gem_port_stat_alarm_raised_id__num_of                                       BCMOLT_GPON_GEM_PORT_STAT_ALARM_RAISED_ID__NUM_OF
+#define bcmolt_gpon_gem_port_auto_cfg_id_configuration_completed                                BCMOLT_GPON_GEM_PORT_AUTO_CFG_ID_CONFIGURATION_COMPLETED
+#define bcmolt_gpon_gem_port_auto_cfg_id_stat_alarm_cleared                                     BCMOLT_GPON_GEM_PORT_AUTO_CFG_ID_STAT_ALARM_CLEARED
+#define bcmolt_gpon_gem_port_auto_cfg_id_stat_alarm_raised                                      BCMOLT_GPON_GEM_PORT_AUTO_CFG_ID_STAT_ALARM_RAISED
+#define bcmolt_gpon_gem_port_auto_cfg_id__num_of                                                BCMOLT_GPON_GEM_PORT_AUTO_CFG_ID__NUM_OF
+#define bcmolt_gpon_gem_port_set_state_id_state                                                 BCMOLT_GPON_GEM_PORT_SET_STATE_ID_STATE
+#define bcmolt_gpon_gem_port_set_state_id__num_of                                               BCMOLT_GPON_GEM_PORT_SET_STATE_ID__NUM_OF
+#define bcmolt_gpon_iwf_key_id_pon_ni                                                           BCMOLT_GPON_IWF_KEY_ID_PON_NI
+#define bcmolt_gpon_iwf_key_id__num_of                                                          BCMOLT_GPON_IWF_KEY_ID__NUM_OF
+#define bcmolt_gpon_iwf_cfg_id_iwf_mode                                                         BCMOLT_GPON_IWF_CFG_ID_IWF_MODE
+#define bcmolt_gpon_iwf_cfg_id_us_tpid_per_flow                                                 BCMOLT_GPON_IWF_CFG_ID_US_TPID_PER_FLOW
+#define bcmolt_gpon_iwf_cfg_id_us_otag_direct_tpid                                              BCMOLT_GPON_IWF_CFG_ID_US_OTAG_DIRECT_TPID
+#define bcmolt_gpon_iwf_cfg_id_us_otag_direct_pbit                                              BCMOLT_GPON_IWF_CFG_ID_US_OTAG_DIRECT_PBIT
+#define bcmolt_gpon_iwf_cfg_id_ds_tpid                                                          BCMOLT_GPON_IWF_CFG_ID_DS_TPID
+#define bcmolt_gpon_iwf_cfg_id_mac_table_configuration                                          BCMOLT_GPON_IWF_CFG_ID_MAC_TABLE_CONFIGURATION
+#define bcmolt_gpon_iwf_cfg_id_debug_flow_configuration                                         BCMOLT_GPON_IWF_CFG_ID_DEBUG_FLOW_CONFIGURATION
+#define bcmolt_gpon_iwf_cfg_id_mac_table_count                                                  BCMOLT_GPON_IWF_CFG_ID_MAC_TABLE_COUNT
+#define bcmolt_gpon_iwf_cfg_id_forbidden_vlan_flow_gem_range_start                              BCMOLT_GPON_IWF_CFG_ID_FORBIDDEN_VLAN_FLOW_GEM_RANGE_START
+#define bcmolt_gpon_iwf_cfg_id__num_of                                                          BCMOLT_GPON_IWF_CFG_ID__NUM_OF
+#define bcmolt_gpon_iwf_stat_id_ds_hit_event                                                    BCMOLT_GPON_IWF_STAT_ID_DS_HIT_EVENT
+#define bcmolt_gpon_iwf_stat_id_ds_miss_event                                                   BCMOLT_GPON_IWF_STAT_ID_DS_MISS_EVENT
+#define bcmolt_gpon_iwf_stat_id_ds_drop_due_to_miss_event                                       BCMOLT_GPON_IWF_STAT_ID_DS_DROP_DUE_TO_MISS_EVENT
+#define bcmolt_gpon_iwf_stat_id_ds_drop_due_to_hit_event                                        BCMOLT_GPON_IWF_STAT_ID_DS_DROP_DUE_TO_HIT_EVENT
+#define bcmolt_gpon_iwf_stat_id_ds_drop_to_disabled_gem                                         BCMOLT_GPON_IWF_STAT_ID_DS_DROP_TO_DISABLED_GEM
+#define bcmolt_gpon_iwf_stat_id_new_mac_discovered                                              BCMOLT_GPON_IWF_STAT_ID_NEW_MAC_DISCOVERED
+#define bcmolt_gpon_iwf_stat_id_move_event                                                      BCMOLT_GPON_IWF_STAT_ID_MOVE_EVENT
+#define bcmolt_gpon_iwf_stat_id_new_mac_drop_due_to_fifo_full                                   BCMOLT_GPON_IWF_STAT_ID_NEW_MAC_DROP_DUE_TO_FIFO_FULL
+#define bcmolt_gpon_iwf_stat_id__num_of                                                         BCMOLT_GPON_IWF_STAT_ID__NUM_OF
+#define bcmolt_gpon_iwf_stat_cfg_id_cfg                                                         BCMOLT_GPON_IWF_STAT_CFG_ID_CFG
+#define bcmolt_gpon_iwf_stat_cfg_id__num_of                                                     BCMOLT_GPON_IWF_STAT_CFG_ID__NUM_OF
+#define bcmolt_gpon_iwf_flush_mac_table_completed_id__num_of                                    BCMOLT_GPON_IWF_FLUSH_MAC_TABLE_COMPLETED_ID__NUM_OF
+#define bcmolt_gpon_iwf_scan_mac_table_completed_id_mac_address                                 BCMOLT_GPON_IWF_SCAN_MAC_TABLE_COMPLETED_ID_MAC_ADDRESS
+#define bcmolt_gpon_iwf_scan_mac_table_completed_id_entries                                     BCMOLT_GPON_IWF_SCAN_MAC_TABLE_COMPLETED_ID_ENTRIES
+#define bcmolt_gpon_iwf_scan_mac_table_completed_id__num_of                                     BCMOLT_GPON_IWF_SCAN_MAC_TABLE_COMPLETED_ID__NUM_OF
+#define bcmolt_gpon_iwf_stat_alarm_cleared_id_stat                                              BCMOLT_GPON_IWF_STAT_ALARM_CLEARED_ID_STAT
+#define bcmolt_gpon_iwf_stat_alarm_cleared_id__num_of                                           BCMOLT_GPON_IWF_STAT_ALARM_CLEARED_ID__NUM_OF
+#define bcmolt_gpon_iwf_stat_alarm_raised_id_stat                                               BCMOLT_GPON_IWF_STAT_ALARM_RAISED_ID_STAT
+#define bcmolt_gpon_iwf_stat_alarm_raised_id__num_of                                            BCMOLT_GPON_IWF_STAT_ALARM_RAISED_ID__NUM_OF
+#define bcmolt_gpon_iwf_auto_cfg_id_flush_mac_table_completed                                   BCMOLT_GPON_IWF_AUTO_CFG_ID_FLUSH_MAC_TABLE_COMPLETED
+#define bcmolt_gpon_iwf_auto_cfg_id_scan_mac_table_completed                                    BCMOLT_GPON_IWF_AUTO_CFG_ID_SCAN_MAC_TABLE_COMPLETED
+#define bcmolt_gpon_iwf_auto_cfg_id_stat_alarm_cleared                                          BCMOLT_GPON_IWF_AUTO_CFG_ID_STAT_ALARM_CLEARED
+#define bcmolt_gpon_iwf_auto_cfg_id_stat_alarm_raised                                           BCMOLT_GPON_IWF_AUTO_CFG_ID_STAT_ALARM_RAISED
+#define bcmolt_gpon_iwf_auto_cfg_id__num_of                                                     BCMOLT_GPON_IWF_AUTO_CFG_ID__NUM_OF
+#define bcmolt_gpon_iwf_flush_mac_table_id_control                                              BCMOLT_GPON_IWF_FLUSH_MAC_TABLE_ID_CONTROL
+#define bcmolt_gpon_iwf_flush_mac_table_id_vid                                                  BCMOLT_GPON_IWF_FLUSH_MAC_TABLE_ID_VID
+#define bcmolt_gpon_iwf_flush_mac_table_id_flow_id                                              BCMOLT_GPON_IWF_FLUSH_MAC_TABLE_ID_FLOW_ID
+#define bcmolt_gpon_iwf_flush_mac_table_id__num_of                                              BCMOLT_GPON_IWF_FLUSH_MAC_TABLE_ID__NUM_OF
+#define bcmolt_gpon_iwf_scan_mac_table_id_mac_address                                           BCMOLT_GPON_IWF_SCAN_MAC_TABLE_ID_MAC_ADDRESS
+#define bcmolt_gpon_iwf_scan_mac_table_id__num_of                                               BCMOLT_GPON_IWF_SCAN_MAC_TABLE_ID__NUM_OF
+#define bcmolt_gpon_iwf_ds_egress_flow_key_id_pon_ni                                            BCMOLT_GPON_IWF_DS_EGRESS_FLOW_KEY_ID_PON_NI
+#define bcmolt_gpon_iwf_ds_egress_flow_key_id_flow_id                                           BCMOLT_GPON_IWF_DS_EGRESS_FLOW_KEY_ID_FLOW_ID
+#define bcmolt_gpon_iwf_ds_egress_flow_key_id__num_of                                           BCMOLT_GPON_IWF_DS_EGRESS_FLOW_KEY_ID__NUM_OF
+#define bcmolt_gpon_iwf_ds_egress_flow_cfg_id_gem_port                                          BCMOLT_GPON_IWF_DS_EGRESS_FLOW_CFG_ID_GEM_PORT
+#define bcmolt_gpon_iwf_ds_egress_flow_cfg_id_pbit_control                                      BCMOLT_GPON_IWF_DS_EGRESS_FLOW_CFG_ID_PBIT_CONTROL
+#define bcmolt_gpon_iwf_ds_egress_flow_cfg_id__num_of                                           BCMOLT_GPON_IWF_DS_EGRESS_FLOW_CFG_ID__NUM_OF
+#define bcmolt_gpon_iwf_ds_ingress_flow_key_id_pon_ni                                           BCMOLT_GPON_IWF_DS_INGRESS_FLOW_KEY_ID_PON_NI
+#define bcmolt_gpon_iwf_ds_ingress_flow_key_id_vlan_id                                          BCMOLT_GPON_IWF_DS_INGRESS_FLOW_KEY_ID_VLAN_ID
+#define bcmolt_gpon_iwf_ds_ingress_flow_key_id__num_of                                          BCMOLT_GPON_IWF_DS_INGRESS_FLOW_KEY_ID__NUM_OF
+#define bcmolt_gpon_iwf_ds_ingress_flow_cfg_id_mapping_method                                   BCMOLT_GPON_IWF_DS_INGRESS_FLOW_CFG_ID_MAPPING_METHOD
+#define bcmolt_gpon_iwf_ds_ingress_flow_cfg_id_mapping_tag                                      BCMOLT_GPON_IWF_DS_INGRESS_FLOW_CFG_ID_MAPPING_TAG
+#define bcmolt_gpon_iwf_ds_ingress_flow_cfg_id_vlan_action                                      BCMOLT_GPON_IWF_DS_INGRESS_FLOW_CFG_ID_VLAN_ACTION
+#define bcmolt_gpon_iwf_ds_ingress_flow_cfg_id__num_of                                          BCMOLT_GPON_IWF_DS_INGRESS_FLOW_CFG_ID__NUM_OF
+#define bcmolt_gpon_iwf_mac_table_key_id_pon_ni                                                 BCMOLT_GPON_IWF_MAC_TABLE_KEY_ID_PON_NI
+#define bcmolt_gpon_iwf_mac_table_key_id_mac_address                                            BCMOLT_GPON_IWF_MAC_TABLE_KEY_ID_MAC_ADDRESS
+#define bcmolt_gpon_iwf_mac_table_key_id_vlan                                                   BCMOLT_GPON_IWF_MAC_TABLE_KEY_ID_VLAN
+#define bcmolt_gpon_iwf_mac_table_key_id__num_of                                                BCMOLT_GPON_IWF_MAC_TABLE_KEY_ID__NUM_OF
+#define bcmolt_gpon_iwf_mac_table_cfg_id_flow_id                                                BCMOLT_GPON_IWF_MAC_TABLE_CFG_ID_FLOW_ID
+#define bcmolt_gpon_iwf_mac_table_cfg_id_stat                                                   BCMOLT_GPON_IWF_MAC_TABLE_CFG_ID_STAT
+#define bcmolt_gpon_iwf_mac_table_cfg_id_gem_port_id                                            BCMOLT_GPON_IWF_MAC_TABLE_CFG_ID_GEM_PORT_ID
+#define bcmolt_gpon_iwf_mac_table_cfg_id_onu_id                                                 BCMOLT_GPON_IWF_MAC_TABLE_CFG_ID_ONU_ID
+#define bcmolt_gpon_iwf_mac_table_cfg_id__num_of                                                BCMOLT_GPON_IWF_MAC_TABLE_CFG_ID__NUM_OF
+#define bcmolt_gpon_iwf_mac_table_mac_aged_id__num_of                                           BCMOLT_GPON_IWF_MAC_TABLE_MAC_AGED_ID__NUM_OF
+#define bcmolt_gpon_iwf_mac_table_mac_dropped_id_flow_id                                        BCMOLT_GPON_IWF_MAC_TABLE_MAC_DROPPED_ID_FLOW_ID
+#define bcmolt_gpon_iwf_mac_table_mac_dropped_id__num_of                                        BCMOLT_GPON_IWF_MAC_TABLE_MAC_DROPPED_ID__NUM_OF
+#define bcmolt_gpon_iwf_mac_table_mac_move_id_old_flow_id                                       BCMOLT_GPON_IWF_MAC_TABLE_MAC_MOVE_ID_OLD_FLOW_ID
+#define bcmolt_gpon_iwf_mac_table_mac_move_id_new_flow_id                                       BCMOLT_GPON_IWF_MAC_TABLE_MAC_MOVE_ID_NEW_FLOW_ID
+#define bcmolt_gpon_iwf_mac_table_mac_move_id__num_of                                           BCMOLT_GPON_IWF_MAC_TABLE_MAC_MOVE_ID__NUM_OF
+#define bcmolt_gpon_iwf_mac_table_new_mac_id_flow_id                                            BCMOLT_GPON_IWF_MAC_TABLE_NEW_MAC_ID_FLOW_ID
+#define bcmolt_gpon_iwf_mac_table_new_mac_id__num_of                                            BCMOLT_GPON_IWF_MAC_TABLE_NEW_MAC_ID__NUM_OF
+#define bcmolt_gpon_iwf_mac_table_auto_cfg_id_mac_aged                                          BCMOLT_GPON_IWF_MAC_TABLE_AUTO_CFG_ID_MAC_AGED
+#define bcmolt_gpon_iwf_mac_table_auto_cfg_id_mac_dropped                                       BCMOLT_GPON_IWF_MAC_TABLE_AUTO_CFG_ID_MAC_DROPPED
+#define bcmolt_gpon_iwf_mac_table_auto_cfg_id_mac_move                                          BCMOLT_GPON_IWF_MAC_TABLE_AUTO_CFG_ID_MAC_MOVE
+#define bcmolt_gpon_iwf_mac_table_auto_cfg_id_new_mac                                           BCMOLT_GPON_IWF_MAC_TABLE_AUTO_CFG_ID_NEW_MAC
+#define bcmolt_gpon_iwf_mac_table_auto_cfg_id__num_of                                           BCMOLT_GPON_IWF_MAC_TABLE_AUTO_CFG_ID__NUM_OF
+#define bcmolt_gpon_iwf_us_flow_key_id_pon_ni                                                   BCMOLT_GPON_IWF_US_FLOW_KEY_ID_PON_NI
+#define bcmolt_gpon_iwf_us_flow_key_id_gem_port_id                                              BCMOLT_GPON_IWF_US_FLOW_KEY_ID_GEM_PORT_ID
+#define bcmolt_gpon_iwf_us_flow_key_id__num_of                                                  BCMOLT_GPON_IWF_US_FLOW_KEY_ID__NUM_OF
+#define bcmolt_gpon_iwf_us_flow_cfg_id_flow_id                                                  BCMOLT_GPON_IWF_US_FLOW_CFG_ID_FLOW_ID
+#define bcmolt_gpon_iwf_us_flow_cfg_id_mac_learning                                             BCMOLT_GPON_IWF_US_FLOW_CFG_ID_MAC_LEARNING
+#define bcmolt_gpon_iwf_us_flow_cfg_id_vlan_action                                              BCMOLT_GPON_IWF_US_FLOW_CFG_ID_VLAN_ACTION
+#define bcmolt_gpon_iwf_us_flow_cfg_id_vlan_tag                                                 BCMOLT_GPON_IWF_US_FLOW_CFG_ID_VLAN_TAG
+#define bcmolt_gpon_iwf_us_flow_cfg_id_tpid_index                                               BCMOLT_GPON_IWF_US_FLOW_CFG_ID_TPID_INDEX
+#define bcmolt_gpon_iwf_us_flow_cfg_id__num_of                                                  BCMOLT_GPON_IWF_US_FLOW_CFG_ID__NUM_OF
+#define bcmolt_gpon_ni_key_id_pon_ni                                                            BCMOLT_GPON_NI_KEY_ID_PON_NI
+#define bcmolt_gpon_ni_key_id__num_of                                                           BCMOLT_GPON_NI_KEY_ID__NUM_OF
+#define bcmolt_gpon_ni_cfg_id_pon_status                                                        BCMOLT_GPON_NI_CFG_ID_PON_STATUS
+#define bcmolt_gpon_ni_cfg_id_available_bandwidth                                               BCMOLT_GPON_NI_CFG_ID_AVAILABLE_BANDWIDTH
+#define bcmolt_gpon_ni_cfg_id_number_of_active_onus                                             BCMOLT_GPON_NI_CFG_ID_NUMBER_OF_ACTIVE_ONUS
+#define bcmolt_gpon_ni_cfg_id_number_of_active_standby_onus                                     BCMOLT_GPON_NI_CFG_ID_NUMBER_OF_ACTIVE_STANDBY_ONUS
+#define bcmolt_gpon_ni_cfg_id_prbs_status                                                       BCMOLT_GPON_NI_CFG_ID_PRBS_STATUS
+#define bcmolt_gpon_ni_cfg_id_pon_distance                                                      BCMOLT_GPON_NI_CFG_ID_PON_DISTANCE
+#define bcmolt_gpon_ni_cfg_id_ranging_window_size                                               BCMOLT_GPON_NI_CFG_ID_RANGING_WINDOW_SIZE
+#define bcmolt_gpon_ni_cfg_id_preassigned_equalization_delay                                    BCMOLT_GPON_NI_CFG_ID_PREASSIGNED_EQUALIZATION_DELAY
+#define bcmolt_gpon_ni_cfg_id_eqd_cycles_number                                                 BCMOLT_GPON_NI_CFG_ID_EQD_CYCLES_NUMBER
+#define bcmolt_gpon_ni_cfg_id_power_level                                                       BCMOLT_GPON_NI_CFG_ID_POWER_LEVEL
+#define bcmolt_gpon_ni_cfg_id_ds_fec_mode                                                       BCMOLT_GPON_NI_CFG_ID_DS_FEC_MODE
+#define bcmolt_gpon_ni_cfg_id_drift_control                                                     BCMOLT_GPON_NI_CFG_ID_DRIFT_CONTROL
+#define bcmolt_gpon_ni_cfg_id_ds_ber_reporting_interval                                         BCMOLT_GPON_NI_CFG_ID_DS_BER_REPORTING_INTERVAL
+#define bcmolt_gpon_ni_cfg_id_los_alarm_threshold                                               BCMOLT_GPON_NI_CFG_ID_LOS_ALARM_THRESHOLD
+#define bcmolt_gpon_ni_cfg_id_los_initial_value                                                 BCMOLT_GPON_NI_CFG_ID_LOS_INITIAL_VALUE
+#define bcmolt_gpon_ni_cfg_id_onu_alarms_thresholds                                             BCMOLT_GPON_NI_CFG_ID_ONU_ALARMS_THRESHOLDS
+#define bcmolt_gpon_ni_cfg_id_ber_monitor                                                       BCMOLT_GPON_NI_CFG_ID_BER_MONITOR
+#define bcmolt_gpon_ni_cfg_id_ploam_ack_timeout                                                 BCMOLT_GPON_NI_CFG_ID_PLOAM_ACK_TIMEOUT
+#define bcmolt_gpon_ni_cfg_id_onu_activation                                                    BCMOLT_GPON_NI_CFG_ID_ONU_ACTIVATION
+#define bcmolt_gpon_ni_cfg_id_sn_acquisition                                                    BCMOLT_GPON_NI_CFG_ID_SN_ACQUISITION
+#define bcmolt_gpon_ni_cfg_id_key_exchange                                                      BCMOLT_GPON_NI_CFG_ID_KEY_EXCHANGE
+#define bcmolt_gpon_ni_cfg_id_protection_switching                                              BCMOLT_GPON_NI_CFG_ID_PROTECTION_SWITCHING
+#define bcmolt_gpon_ni_cfg_id_cbr_rt_allocation_profile                                         BCMOLT_GPON_NI_CFG_ID_CBR_RT_ALLOCATION_PROFILE
+#define bcmolt_gpon_ni_cfg_id_cbr_nrt_allocation_profile                                        BCMOLT_GPON_NI_CFG_ID_CBR_NRT_ALLOCATION_PROFILE
+#define bcmolt_gpon_ni_cfg_id_dba                                                               BCMOLT_GPON_NI_CFG_ID_DBA
+#define bcmolt_gpon_ni_cfg_id_power_management                                                  BCMOLT_GPON_NI_CFG_ID_POWER_MANAGEMENT
+#define bcmolt_gpon_ni_cfg_id_rogue_onu_detection_process                                       BCMOLT_GPON_NI_CFG_ID_ROGUE_ONU_DETECTION_PROCESS
+#define bcmolt_gpon_ni_cfg_id_periodic_standby_pon_monitoring                                   BCMOLT_GPON_NI_CFG_ID_PERIODIC_STANDBY_PON_MONITORING
+#define bcmolt_gpon_ni_cfg_id_prbs_checker                                                      BCMOLT_GPON_NI_CFG_ID_PRBS_CHECKER
+#define bcmolt_gpon_ni_cfg_id_prbs_generator                                                    BCMOLT_GPON_NI_CFG_ID_PRBS_GENERATOR
+#define bcmolt_gpon_ni_cfg_id_min_data_alloc_id                                                 BCMOLT_GPON_NI_CFG_ID_MIN_DATA_ALLOC_ID
+#define bcmolt_gpon_ni_cfg_id_automatic_onu_deactivation                                        BCMOLT_GPON_NI_CFG_ID_AUTOMATIC_ONU_DEACTIVATION
+#define bcmolt_gpon_ni_cfg_id_us_bandwidth_limit                                                BCMOLT_GPON_NI_CFG_ID_US_BANDWIDTH_LIMIT
+#define bcmolt_gpon_ni_cfg_id_all_onus                                                          BCMOLT_GPON_NI_CFG_ID_ALL_ONUS
+#define bcmolt_gpon_ni_cfg_id_all_mcast_gem_ports                                               BCMOLT_GPON_NI_CFG_ID_ALL_MCAST_GEM_PORTS
+#define bcmolt_gpon_ni_cfg_id_debug                                                             BCMOLT_GPON_NI_CFG_ID_DEBUG
+#define bcmolt_gpon_ni_cfg_id_onu_upgrade_params                                                BCMOLT_GPON_NI_CFG_ID_ONU_UPGRADE_PARAMS
+#define bcmolt_gpon_ni_cfg_id_ps_c_wait_before_deactivation_timeout                             BCMOLT_GPON_NI_CFG_ID_PS_C_WAIT_BEFORE_DEACTIVATION_TIMEOUT
+#define bcmolt_gpon_ni_cfg_id_bip32_indication_control                                          BCMOLT_GPON_NI_CFG_ID_BIP32_INDICATION_CONTROL
+#define bcmolt_gpon_ni_cfg_id__num_of                                                           BCMOLT_GPON_NI_CFG_ID__NUM_OF
+#define bcmolt_gpon_ni_stat_id_fec_codewords                                                    BCMOLT_GPON_NI_STAT_ID_FEC_CODEWORDS
+#define bcmolt_gpon_ni_stat_id_fec_codewords_uncorrected                                        BCMOLT_GPON_NI_STAT_ID_FEC_CODEWORDS_UNCORRECTED
+#define bcmolt_gpon_ni_stat_id_bip8_bytes                                                       BCMOLT_GPON_NI_STAT_ID_BIP8_BYTES
+#define bcmolt_gpon_ni_stat_id_bip8_errors                                                      BCMOLT_GPON_NI_STAT_ID_BIP8_ERRORS
+#define bcmolt_gpon_ni_stat_id_rx_gem_packets                                                   BCMOLT_GPON_NI_STAT_ID_RX_GEM_PACKETS
+#define bcmolt_gpon_ni_stat_id_rx_gem_dropped                                                   BCMOLT_GPON_NI_STAT_ID_RX_GEM_DROPPED
+#define bcmolt_gpon_ni_stat_id_rx_gem_idle                                                      BCMOLT_GPON_NI_STAT_ID_RX_GEM_IDLE
+#define bcmolt_gpon_ni_stat_id_rx_gem_corrected                                                 BCMOLT_GPON_NI_STAT_ID_RX_GEM_CORRECTED
+#define bcmolt_gpon_ni_stat_id_rx_gem_illegal                                                   BCMOLT_GPON_NI_STAT_ID_RX_GEM_ILLEGAL
+#define bcmolt_gpon_ni_stat_id_rx_allocations_valid                                             BCMOLT_GPON_NI_STAT_ID_RX_ALLOCATIONS_VALID
+#define bcmolt_gpon_ni_stat_id_rx_allocations_invalid                                           BCMOLT_GPON_NI_STAT_ID_RX_ALLOCATIONS_INVALID
+#define bcmolt_gpon_ni_stat_id_rx_allocations_disabled                                          BCMOLT_GPON_NI_STAT_ID_RX_ALLOCATIONS_DISABLED
+#define bcmolt_gpon_ni_stat_id_rx_ploams                                                        BCMOLT_GPON_NI_STAT_ID_RX_PLOAMS
+#define bcmolt_gpon_ni_stat_id_rx_ploams_non_idle                                               BCMOLT_GPON_NI_STAT_ID_RX_PLOAMS_NON_IDLE
+#define bcmolt_gpon_ni_stat_id_rx_ploams_error                                                  BCMOLT_GPON_NI_STAT_ID_RX_PLOAMS_ERROR
+#define bcmolt_gpon_ni_stat_id_rx_ploams_dropped                                                BCMOLT_GPON_NI_STAT_ID_RX_PLOAMS_DROPPED
+#define bcmolt_gpon_ni_stat_id_rx_cpu                                                           BCMOLT_GPON_NI_STAT_ID_RX_CPU
+#define bcmolt_gpon_ni_stat_id_rx_omci                                                          BCMOLT_GPON_NI_STAT_ID_RX_OMCI
+#define bcmolt_gpon_ni_stat_id_rx_omci_packets_crc_error                                        BCMOLT_GPON_NI_STAT_ID_RX_OMCI_PACKETS_CRC_ERROR
+#define bcmolt_gpon_ni_stat_id_rx_dropped_too_short                                             BCMOLT_GPON_NI_STAT_ID_RX_DROPPED_TOO_SHORT
+#define bcmolt_gpon_ni_stat_id_rx_dropped_too_long                                              BCMOLT_GPON_NI_STAT_ID_RX_DROPPED_TOO_LONG
+#define bcmolt_gpon_ni_stat_id_rx_crc_errors                                                    BCMOLT_GPON_NI_STAT_ID_RX_CRC_ERRORS
+#define bcmolt_gpon_ni_stat_id_rx_key_errors                                                    BCMOLT_GPON_NI_STAT_ID_RX_KEY_ERRORS
+#define bcmolt_gpon_ni_stat_id_rx_fragments_errors                                              BCMOLT_GPON_NI_STAT_ID_RX_FRAGMENTS_ERRORS
+#define bcmolt_gpon_ni_stat_id_rx_packets_dropped                                               BCMOLT_GPON_NI_STAT_ID_RX_PACKETS_DROPPED
+#define bcmolt_gpon_ni_stat_id_tx_gem                                                           BCMOLT_GPON_NI_STAT_ID_TX_GEM
+#define bcmolt_gpon_ni_stat_id_tx_ploams                                                        BCMOLT_GPON_NI_STAT_ID_TX_PLOAMS
+#define bcmolt_gpon_ni_stat_id_tx_gem_fragments                                                 BCMOLT_GPON_NI_STAT_ID_TX_GEM_FRAGMENTS
+#define bcmolt_gpon_ni_stat_id_tx_cpu                                                           BCMOLT_GPON_NI_STAT_ID_TX_CPU
+#define bcmolt_gpon_ni_stat_id_tx_omci                                                          BCMOLT_GPON_NI_STAT_ID_TX_OMCI
+#define bcmolt_gpon_ni_stat_id_tx_cpu_omci_packets_dropped                                      BCMOLT_GPON_NI_STAT_ID_TX_CPU_OMCI_PACKETS_DROPPED
+#define bcmolt_gpon_ni_stat_id_tx_dropped_illegal_length                                        BCMOLT_GPON_NI_STAT_ID_TX_DROPPED_ILLEGAL_LENGTH
+#define bcmolt_gpon_ni_stat_id_tx_dropped_tpid_miss                                             BCMOLT_GPON_NI_STAT_ID_TX_DROPPED_TPID_MISS
+#define bcmolt_gpon_ni_stat_id_tx_dropped_vid_miss                                              BCMOLT_GPON_NI_STAT_ID_TX_DROPPED_VID_MISS
+#define bcmolt_gpon_ni_stat_id__num_of                                                          BCMOLT_GPON_NI_STAT_ID__NUM_OF
+#define bcmolt_gpon_ni_stat_cfg_id_cfg                                                          BCMOLT_GPON_NI_STAT_CFG_ID_CFG
+#define bcmolt_gpon_ni_stat_cfg_id__num_of                                                      BCMOLT_GPON_NI_STAT_CFG_ID__NUM_OF
+#define bcmolt_gpon_ni_activate_all_onus_completed_id__num_of                                   BCMOLT_GPON_NI_ACTIVATE_ALL_ONUS_COMPLETED_ID__NUM_OF
+#define bcmolt_gpon_ni_cpu_packets_failure_id_error                                             BCMOLT_GPON_NI_CPU_PACKETS_FAILURE_ID_ERROR
+#define bcmolt_gpon_ni_cpu_packets_failure_id_gem_port_id                                       BCMOLT_GPON_NI_CPU_PACKETS_FAILURE_ID_GEM_PORT_ID
+#define bcmolt_gpon_ni_cpu_packets_failure_id__num_of                                           BCMOLT_GPON_NI_CPU_PACKETS_FAILURE_ID__NUM_OF
+#define bcmolt_gpon_ni_deactivate_all_onus_completed_id__num_of                                 BCMOLT_GPON_NI_DEACTIVATE_ALL_ONUS_COMPLETED_ID__NUM_OF
+#define bcmolt_gpon_ni_disable_all_onus_completed_id__num_of                                    BCMOLT_GPON_NI_DISABLE_ALL_ONUS_COMPLETED_ID__NUM_OF
+#define bcmolt_gpon_ni_enable_all_onus_completed_id__num_of                                     BCMOLT_GPON_NI_ENABLE_ALL_ONUS_COMPLETED_ID__NUM_OF
+#define bcmolt_gpon_ni_los_id_status                                                            BCMOLT_GPON_NI_LOS_ID_STATUS
+#define bcmolt_gpon_ni_los_id__num_of                                                           BCMOLT_GPON_NI_LOS_ID__NUM_OF
+#define bcmolt_gpon_ni_onu_discovered_id_serial_number                                          BCMOLT_GPON_NI_ONU_DISCOVERED_ID_SERIAL_NUMBER
+#define bcmolt_gpon_ni_onu_discovered_id_ranging_time                                           BCMOLT_GPON_NI_ONU_DISCOVERED_ID_RANGING_TIME
+#define bcmolt_gpon_ni_onu_discovered_id_onu_id                                                 BCMOLT_GPON_NI_ONU_DISCOVERED_ID_ONU_ID
+#define bcmolt_gpon_ni_onu_discovered_id__num_of                                                BCMOLT_GPON_NI_ONU_DISCOVERED_ID__NUM_OF
+#define bcmolt_gpon_ni_onu_upgrade_complete_id_status                                           BCMOLT_GPON_NI_ONU_UPGRADE_COMPLETE_ID_STATUS
+#define bcmolt_gpon_ni_onu_upgrade_complete_id_list_of_failed_entities                          BCMOLT_GPON_NI_ONU_UPGRADE_COMPLETE_ID_LIST_OF_FAILED_ENTITIES
+#define bcmolt_gpon_ni_onu_upgrade_complete_id__num_of                                          BCMOLT_GPON_NI_ONU_UPGRADE_COMPLETE_ID__NUM_OF
+#define bcmolt_gpon_ni_protection_switching_onus_ranged_id_onus                                 BCMOLT_GPON_NI_PROTECTION_SWITCHING_ONUS_RANGED_ID_ONUS
+#define bcmolt_gpon_ni_protection_switching_onus_ranged_id__num_of                              BCMOLT_GPON_NI_PROTECTION_SWITCHING_ONUS_RANGED_ID__NUM_OF
+#define bcmolt_gpon_ni_protection_switching_switchover_completed_id_result                      BCMOLT_GPON_NI_PROTECTION_SWITCHING_SWITCHOVER_COMPLETED_ID_RESULT
+#define bcmolt_gpon_ni_protection_switching_switchover_completed_id__num_of                     BCMOLT_GPON_NI_PROTECTION_SWITCHING_SWITCHOVER_COMPLETED_ID__NUM_OF
+#define bcmolt_gpon_ni_protection_switching_traffic_resume_id_result                            BCMOLT_GPON_NI_PROTECTION_SWITCHING_TRAFFIC_RESUME_ID_RESULT
+#define bcmolt_gpon_ni_protection_switching_traffic_resume_id__num_of                           BCMOLT_GPON_NI_PROTECTION_SWITCHING_TRAFFIC_RESUME_ID__NUM_OF
+#define bcmolt_gpon_ni_rogue_detection_completed_id_window_type                                 BCMOLT_GPON_NI_ROGUE_DETECTION_COMPLETED_ID_WINDOW_TYPE
+#define bcmolt_gpon_ni_rogue_detection_completed_id_measurement_status                          BCMOLT_GPON_NI_ROGUE_DETECTION_COMPLETED_ID_MEASUREMENT_STATUS
+#define bcmolt_gpon_ni_rogue_detection_completed_id_alloc_id                                    BCMOLT_GPON_NI_ROGUE_DETECTION_COMPLETED_ID_ALLOC_ID
+#define bcmolt_gpon_ni_rogue_detection_completed_id_onu_id                                      BCMOLT_GPON_NI_ROGUE_DETECTION_COMPLETED_ID_ONU_ID
+#define bcmolt_gpon_ni_rogue_detection_completed_id_is_delineation                              BCMOLT_GPON_NI_ROGUE_DETECTION_COMPLETED_ID_IS_DELINEATION
+#define bcmolt_gpon_ni_rogue_detection_completed_id_is_ed                                       BCMOLT_GPON_NI_ROGUE_DETECTION_COMPLETED_ID_IS_ED
+#define bcmolt_gpon_ni_rogue_detection_completed_id_rx_data                                     BCMOLT_GPON_NI_ROGUE_DETECTION_COMPLETED_ID_RX_DATA
+#define bcmolt_gpon_ni_rogue_detection_completed_id_ploam_received_onu_id                       BCMOLT_GPON_NI_ROGUE_DETECTION_COMPLETED_ID_PLOAM_RECEIVED_ONU_ID
+#define bcmolt_gpon_ni_rogue_detection_completed_id_ploam_received_crc_error                    BCMOLT_GPON_NI_ROGUE_DETECTION_COMPLETED_ID_PLOAM_RECEIVED_CRC_ERROR
+#define bcmolt_gpon_ni_rogue_detection_completed_id__num_of                                     BCMOLT_GPON_NI_ROGUE_DETECTION_COMPLETED_ID__NUM_OF
+#define bcmolt_gpon_ni_rogue_onu_special_map_cycle_start_id__num_of                             BCMOLT_GPON_NI_ROGUE_ONU_SPECIAL_MAP_CYCLE_START_ID__NUM_OF
+#define bcmolt_gpon_ni_serial_number_acquisition_cycle_start_id__num_of                         BCMOLT_GPON_NI_SERIAL_NUMBER_ACQUISITION_CYCLE_START_ID__NUM_OF
+#define bcmolt_gpon_ni_standby_pon_monitoring_cycle_completed_id_number_of_detected_delimiter   BCMOLT_GPON_NI_STANDBY_PON_MONITORING_CYCLE_COMPLETED_ID_NUMBER_OF_DETECTED_DELIMITER
+#define bcmolt_gpon_ni_standby_pon_monitoring_cycle_completed_id_energy_detect_signal           BCMOLT_GPON_NI_STANDBY_PON_MONITORING_CYCLE_COMPLETED_ID_ENERGY_DETECT_SIGNAL
+#define bcmolt_gpon_ni_standby_pon_monitoring_cycle_completed_id__num_of                        BCMOLT_GPON_NI_STANDBY_PON_MONITORING_CYCLE_COMPLETED_ID__NUM_OF
+#define bcmolt_gpon_ni_stat_alarm_cleared_id_stat                                               BCMOLT_GPON_NI_STAT_ALARM_CLEARED_ID_STAT
+#define bcmolt_gpon_ni_stat_alarm_cleared_id__num_of                                            BCMOLT_GPON_NI_STAT_ALARM_CLEARED_ID__NUM_OF
+#define bcmolt_gpon_ni_stat_alarm_raised_id_stat                                                BCMOLT_GPON_NI_STAT_ALARM_RAISED_ID_STAT
+#define bcmolt_gpon_ni_stat_alarm_raised_id__num_of                                             BCMOLT_GPON_NI_STAT_ALARM_RAISED_ID__NUM_OF
+#define bcmolt_gpon_ni_state_change_completed_id_result                                         BCMOLT_GPON_NI_STATE_CHANGE_COMPLETED_ID_RESULT
+#define bcmolt_gpon_ni_state_change_completed_id_previous_state                                 BCMOLT_GPON_NI_STATE_CHANGE_COMPLETED_ID_PREVIOUS_STATE
+#define bcmolt_gpon_ni_state_change_completed_id_new_state                                      BCMOLT_GPON_NI_STATE_CHANGE_COMPLETED_ID_NEW_STATE
+#define bcmolt_gpon_ni_state_change_completed_id__num_of                                        BCMOLT_GPON_NI_STATE_CHANGE_COMPLETED_ID__NUM_OF
+#define bcmolt_gpon_ni_tod_request_completed_id_tod_string                                      BCMOLT_GPON_NI_TOD_REQUEST_COMPLETED_ID_TOD_STRING
+#define bcmolt_gpon_ni_tod_request_completed_id_sfc                                             BCMOLT_GPON_NI_TOD_REQUEST_COMPLETED_ID_SFC
+#define bcmolt_gpon_ni_tod_request_completed_id_rtc_offset_sec                                  BCMOLT_GPON_NI_TOD_REQUEST_COMPLETED_ID_RTC_OFFSET_SEC
+#define bcmolt_gpon_ni_tod_request_completed_id_rtc_offset_nsec                                 BCMOLT_GPON_NI_TOD_REQUEST_COMPLETED_ID_RTC_OFFSET_NSEC
+#define bcmolt_gpon_ni_tod_request_completed_id_status                                          BCMOLT_GPON_NI_TOD_REQUEST_COMPLETED_ID_STATUS
+#define bcmolt_gpon_ni_tod_request_completed_id__num_of                                         BCMOLT_GPON_NI_TOD_REQUEST_COMPLETED_ID__NUM_OF
+#define bcmolt_gpon_ni_auto_cfg_id_activate_all_onus_completed                                  BCMOLT_GPON_NI_AUTO_CFG_ID_ACTIVATE_ALL_ONUS_COMPLETED
+#define bcmolt_gpon_ni_auto_cfg_id_cpu_packets_failure                                          BCMOLT_GPON_NI_AUTO_CFG_ID_CPU_PACKETS_FAILURE
+#define bcmolt_gpon_ni_auto_cfg_id_deactivate_all_onus_completed                                BCMOLT_GPON_NI_AUTO_CFG_ID_DEACTIVATE_ALL_ONUS_COMPLETED
+#define bcmolt_gpon_ni_auto_cfg_id_disable_all_onus_completed                                   BCMOLT_GPON_NI_AUTO_CFG_ID_DISABLE_ALL_ONUS_COMPLETED
+#define bcmolt_gpon_ni_auto_cfg_id_enable_all_onus_completed                                    BCMOLT_GPON_NI_AUTO_CFG_ID_ENABLE_ALL_ONUS_COMPLETED
+#define bcmolt_gpon_ni_auto_cfg_id_los                                                          BCMOLT_GPON_NI_AUTO_CFG_ID_LOS
+#define bcmolt_gpon_ni_auto_cfg_id_onu_discovered                                               BCMOLT_GPON_NI_AUTO_CFG_ID_ONU_DISCOVERED
+#define bcmolt_gpon_ni_auto_cfg_id_onu_upgrade_complete                                         BCMOLT_GPON_NI_AUTO_CFG_ID_ONU_UPGRADE_COMPLETE
+#define bcmolt_gpon_ni_auto_cfg_id_protection_switching_onus_ranged                             BCMOLT_GPON_NI_AUTO_CFG_ID_PROTECTION_SWITCHING_ONUS_RANGED
+#define bcmolt_gpon_ni_auto_cfg_id_protection_switching_switchover_completed                    BCMOLT_GPON_NI_AUTO_CFG_ID_PROTECTION_SWITCHING_SWITCHOVER_COMPLETED
+#define bcmolt_gpon_ni_auto_cfg_id_protection_switching_traffic_resume                          BCMOLT_GPON_NI_AUTO_CFG_ID_PROTECTION_SWITCHING_TRAFFIC_RESUME
+#define bcmolt_gpon_ni_auto_cfg_id_rogue_detection_completed                                    BCMOLT_GPON_NI_AUTO_CFG_ID_ROGUE_DETECTION_COMPLETED
+#define bcmolt_gpon_ni_auto_cfg_id_rogue_onu_special_map_cycle_start                            BCMOLT_GPON_NI_AUTO_CFG_ID_ROGUE_ONU_SPECIAL_MAP_CYCLE_START
+#define bcmolt_gpon_ni_auto_cfg_id_serial_number_acquisition_cycle_start                        BCMOLT_GPON_NI_AUTO_CFG_ID_SERIAL_NUMBER_ACQUISITION_CYCLE_START
+#define bcmolt_gpon_ni_auto_cfg_id_standby_pon_monitoring_cycle_completed                       BCMOLT_GPON_NI_AUTO_CFG_ID_STANDBY_PON_MONITORING_CYCLE_COMPLETED
+#define bcmolt_gpon_ni_auto_cfg_id_stat_alarm_cleared                                           BCMOLT_GPON_NI_AUTO_CFG_ID_STAT_ALARM_CLEARED
+#define bcmolt_gpon_ni_auto_cfg_id_stat_alarm_raised                                            BCMOLT_GPON_NI_AUTO_CFG_ID_STAT_ALARM_RAISED
+#define bcmolt_gpon_ni_auto_cfg_id_state_change_completed                                       BCMOLT_GPON_NI_AUTO_CFG_ID_STATE_CHANGE_COMPLETED
+#define bcmolt_gpon_ni_auto_cfg_id_tod_request_completed                                        BCMOLT_GPON_NI_AUTO_CFG_ID_TOD_REQUEST_COMPLETED
+#define bcmolt_gpon_ni_auto_cfg_id__num_of                                                      BCMOLT_GPON_NI_AUTO_CFG_ID__NUM_OF
+#define bcmolt_gpon_ni_disable_serial_number_id_control                                         BCMOLT_GPON_NI_DISABLE_SERIAL_NUMBER_ID_CONTROL
+#define bcmolt_gpon_ni_disable_serial_number_id_serial_number                                   BCMOLT_GPON_NI_DISABLE_SERIAL_NUMBER_ID_SERIAL_NUMBER
+#define bcmolt_gpon_ni_disable_serial_number_id__num_of                                         BCMOLT_GPON_NI_DISABLE_SERIAL_NUMBER_ID__NUM_OF
+#define bcmolt_gpon_ni_protection_switching_type_c_set_multiple_onu_state_id_onu_state          BCMOLT_GPON_NI_PROTECTION_SWITCHING_TYPE_C_SET_MULTIPLE_ONU_STATE_ID_ONU_STATE
+#define bcmolt_gpon_ni_protection_switching_type_c_set_multiple_onu_state_id_onu_list           BCMOLT_GPON_NI_PROTECTION_SWITCHING_TYPE_C_SET_MULTIPLE_ONU_STATE_ID_ONU_LIST
+#define bcmolt_gpon_ni_protection_switching_type_c_set_multiple_onu_state_id__num_of            BCMOLT_GPON_NI_PROTECTION_SWITCHING_TYPE_C_SET_MULTIPLE_ONU_STATE_ID__NUM_OF
+#define bcmolt_gpon_ni_reset_id__num_of                                                         BCMOLT_GPON_NI_RESET_ID__NUM_OF
+#define bcmolt_gpon_ni_rogue_detection_window_id_window_type                                    BCMOLT_GPON_NI_ROGUE_DETECTION_WINDOW_ID_WINDOW_TYPE
+#define bcmolt_gpon_ni_rogue_detection_window_id_alloc_id                                       BCMOLT_GPON_NI_ROGUE_DETECTION_WINDOW_ID_ALLOC_ID
+#define bcmolt_gpon_ni_rogue_detection_window_id_onu_id                                         BCMOLT_GPON_NI_ROGUE_DETECTION_WINDOW_ID_ONU_ID
+#define bcmolt_gpon_ni_rogue_detection_window_id_second_ranging_window                          BCMOLT_GPON_NI_ROGUE_DETECTION_WINDOW_ID_SECOND_RANGING_WINDOW
+#define bcmolt_gpon_ni_rogue_detection_window_id__num_of                                        BCMOLT_GPON_NI_ROGUE_DETECTION_WINDOW_ID__NUM_OF
+#define bcmolt_gpon_ni_set_onu_state_id_onu_state                                               BCMOLT_GPON_NI_SET_ONU_STATE_ID_ONU_STATE
+#define bcmolt_gpon_ni_set_onu_state_id__num_of                                                 BCMOLT_GPON_NI_SET_ONU_STATE_ID__NUM_OF
+#define bcmolt_gpon_ni_set_pon_state_id_pon_state                                               BCMOLT_GPON_NI_SET_PON_STATE_ID_PON_STATE
+#define bcmolt_gpon_ni_set_pon_state_id__num_of                                                 BCMOLT_GPON_NI_SET_PON_STATE_ID__NUM_OF
+#define bcmolt_gpon_ni_single_request_standby_pon_monitoring_id__num_of                         BCMOLT_GPON_NI_SINGLE_REQUEST_STANDBY_PON_MONITORING_ID__NUM_OF
+#define bcmolt_gpon_ni_start_onu_upgrade_id_list_of_onu_ids                                     BCMOLT_GPON_NI_START_ONU_UPGRADE_ID_LIST_OF_ONU_IDS
+#define bcmolt_gpon_ni_start_onu_upgrade_id__num_of                                             BCMOLT_GPON_NI_START_ONU_UPGRADE_ID__NUM_OF
+#define bcmolt_gpon_ni_tod_request_id__num_of                                                   BCMOLT_GPON_NI_TOD_REQUEST_ID__NUM_OF
+#define bcmolt_gpon_ni_broadcast_ploam_packet_id_ploam                                          BCMOLT_GPON_NI_BROADCAST_PLOAM_PACKET_ID_PLOAM
+#define bcmolt_gpon_ni_broadcast_ploam_packet_id__num_of                                        BCMOLT_GPON_NI_BROADCAST_PLOAM_PACKET_ID__NUM_OF
+#define bcmolt_gpon_ni_cpu_packets_id_packet_type                                               BCMOLT_GPON_NI_CPU_PACKETS_ID_PACKET_TYPE
+#define bcmolt_gpon_ni_cpu_packets_id_calc_crc                                                  BCMOLT_GPON_NI_CPU_PACKETS_ID_CALC_CRC
+#define bcmolt_gpon_ni_cpu_packets_id_gem_port_list                                             BCMOLT_GPON_NI_CPU_PACKETS_ID_GEM_PORT_LIST
+#define bcmolt_gpon_ni_cpu_packets_id_buffer                                                    BCMOLT_GPON_NI_CPU_PACKETS_ID_BUFFER
+#define bcmolt_gpon_ni_cpu_packets_id__num_of                                                   BCMOLT_GPON_NI_CPU_PACKETS_ID__NUM_OF
+#define bcmolt_gpon_onu_key_id_pon_ni                                                           BCMOLT_GPON_ONU_KEY_ID_PON_NI
+#define bcmolt_gpon_onu_key_id_onu_id                                                           BCMOLT_GPON_ONU_KEY_ID_ONU_ID
+#define bcmolt_gpon_onu_key_id__num_of                                                          BCMOLT_GPON_ONU_KEY_ID__NUM_OF
+#define bcmolt_gpon_onu_cfg_id_onu_state                                                        BCMOLT_GPON_ONU_CFG_ID_ONU_STATE
+#define bcmolt_gpon_onu_cfg_id_serial_number                                                    BCMOLT_GPON_ONU_CFG_ID_SERIAL_NUMBER
+#define bcmolt_gpon_onu_cfg_id_password                                                         BCMOLT_GPON_ONU_CFG_ID_PASSWORD
+#define bcmolt_gpon_onu_cfg_id_auto_password_learning                                           BCMOLT_GPON_ONU_CFG_ID_AUTO_PASSWORD_LEARNING
+#define bcmolt_gpon_onu_cfg_id_us_fec                                                           BCMOLT_GPON_ONU_CFG_ID_US_FEC
+#define bcmolt_gpon_onu_cfg_id_omci_port_id                                                     BCMOLT_GPON_ONU_CFG_ID_OMCI_PORT_ID
+#define bcmolt_gpon_onu_cfg_id_ds_ber_reporting_interval                                        BCMOLT_GPON_ONU_CFG_ID_DS_BER_REPORTING_INTERVAL
+#define bcmolt_gpon_onu_cfg_id_aes_encryption_key                                               BCMOLT_GPON_ONU_CFG_ID_AES_ENCRYPTION_KEY
+#define bcmolt_gpon_onu_cfg_id_alarm_state                                                      BCMOLT_GPON_ONU_CFG_ID_ALARM_STATE
+#define bcmolt_gpon_onu_cfg_id_ranging_time                                                     BCMOLT_GPON_ONU_CFG_ID_RANGING_TIME
+#define bcmolt_gpon_onu_cfg_id_disabled_after_discovery                                         BCMOLT_GPON_ONU_CFG_ID_DISABLED_AFTER_DISCOVERY
+#define bcmolt_gpon_onu_cfg_id_deactivation_reason                                              BCMOLT_GPON_ONU_CFG_ID_DEACTIVATION_REASON
+#define bcmolt_gpon_onu_cfg_id_all_gem_ports                                                    BCMOLT_GPON_ONU_CFG_ID_ALL_GEM_PORTS
+#define bcmolt_gpon_onu_cfg_id_all_allocs                                                       BCMOLT_GPON_ONU_CFG_ID_ALL_ALLOCS
+#define bcmolt_gpon_onu_cfg_id_onu_ps_type_c                                                    BCMOLT_GPON_ONU_CFG_ID_ONU_PS_TYPE_C
+#define bcmolt_gpon_onu_cfg_id_extended_guard_time                                              BCMOLT_GPON_ONU_CFG_ID_EXTENDED_GUARD_TIME
+#define bcmolt_gpon_onu_cfg_id__num_of                                                          BCMOLT_GPON_ONU_CFG_ID__NUM_OF
+#define bcmolt_gpon_onu_stat_id_fec_codewords                                                   BCMOLT_GPON_ONU_STAT_ID_FEC_CODEWORDS
+#define bcmolt_gpon_onu_stat_id_fec_bytes_corrected                                             BCMOLT_GPON_ONU_STAT_ID_FEC_BYTES_CORRECTED
+#define bcmolt_gpon_onu_stat_id_fec_codewords_corrected                                         BCMOLT_GPON_ONU_STAT_ID_FEC_CODEWORDS_CORRECTED
+#define bcmolt_gpon_onu_stat_id_fec_codewords_uncorrected                                       BCMOLT_GPON_ONU_STAT_ID_FEC_CODEWORDS_UNCORRECTED
+#define bcmolt_gpon_onu_stat_id_bip8_bytes                                                      BCMOLT_GPON_ONU_STAT_ID_BIP8_BYTES
+#define bcmolt_gpon_onu_stat_id_bip8_errors                                                     BCMOLT_GPON_ONU_STAT_ID_BIP8_ERRORS
+#define bcmolt_gpon_onu_stat_id_rx_ploams_crc_error                                             BCMOLT_GPON_ONU_STAT_ID_RX_PLOAMS_CRC_ERROR
+#define bcmolt_gpon_onu_stat_id_rx_ploams_non_idle                                              BCMOLT_GPON_ONU_STAT_ID_RX_PLOAMS_NON_IDLE
+#define bcmolt_gpon_onu_stat_id_positive_drift                                                  BCMOLT_GPON_ONU_STAT_ID_POSITIVE_DRIFT
+#define bcmolt_gpon_onu_stat_id_negative_drift                                                  BCMOLT_GPON_ONU_STAT_ID_NEGATIVE_DRIFT
+#define bcmolt_gpon_onu_stat_id_rx_omci                                                         BCMOLT_GPON_ONU_STAT_ID_RX_OMCI
+#define bcmolt_gpon_onu_stat_id_rx_omci_packets_crc_error                                       BCMOLT_GPON_ONU_STAT_ID_RX_OMCI_PACKETS_CRC_ERROR
+#define bcmolt_gpon_onu_stat_id_ber_reported                                                    BCMOLT_GPON_ONU_STAT_ID_BER_REPORTED
+#define bcmolt_gpon_onu_stat_id_unreceived_burst                                                BCMOLT_GPON_ONU_STAT_ID_UNRECEIVED_BURST
+#define bcmolt_gpon_onu_stat_id_lcdg_errors                                                     BCMOLT_GPON_ONU_STAT_ID_LCDG_ERRORS
+#define bcmolt_gpon_onu_stat_id_rdi_errors                                                      BCMOLT_GPON_ONU_STAT_ID_RDI_ERRORS
+#define bcmolt_gpon_onu_stat_id_rx_bytes                                                        BCMOLT_GPON_ONU_STAT_ID_RX_BYTES
+#define bcmolt_gpon_onu_stat_id_rx_packets                                                      BCMOLT_GPON_ONU_STAT_ID_RX_PACKETS
+#define bcmolt_gpon_onu_stat_id_tx_bytes                                                        BCMOLT_GPON_ONU_STAT_ID_TX_BYTES
+#define bcmolt_gpon_onu_stat_id_tx_packets                                                      BCMOLT_GPON_ONU_STAT_ID_TX_PACKETS
+#define bcmolt_gpon_onu_stat_id__num_of                                                         BCMOLT_GPON_ONU_STAT_ID__NUM_OF
+#define bcmolt_gpon_onu_stat_cfg_id_cfg                                                         BCMOLT_GPON_ONU_STAT_CFG_ID_CFG
+#define bcmolt_gpon_onu_stat_cfg_id__num_of                                                     BCMOLT_GPON_ONU_STAT_CFG_ID__NUM_OF
+#define bcmolt_gpon_onu_ber_interval_configuration_completed_id_ber_interval                    BCMOLT_GPON_ONU_BER_INTERVAL_CONFIGURATION_COMPLETED_ID_BER_INTERVAL
+#define bcmolt_gpon_onu_ber_interval_configuration_completed_id_result                          BCMOLT_GPON_ONU_BER_INTERVAL_CONFIGURATION_COMPLETED_ID_RESULT
+#define bcmolt_gpon_onu_ber_interval_configuration_completed_id__num_of                         BCMOLT_GPON_ONU_BER_INTERVAL_CONFIGURATION_COMPLETED_ID__NUM_OF
+#define bcmolt_gpon_onu_dfi_id_alarm_status                                                     BCMOLT_GPON_ONU_DFI_ID_ALARM_STATUS
+#define bcmolt_gpon_onu_dfi_id__num_of                                                          BCMOLT_GPON_ONU_DFI_ID__NUM_OF
+#define bcmolt_gpon_onu_dgi_id_alarm_status                                                     BCMOLT_GPON_ONU_DGI_ID_ALARM_STATUS
+#define bcmolt_gpon_onu_dgi_id__num_of                                                          BCMOLT_GPON_ONU_DGI_ID__NUM_OF
+#define bcmolt_gpon_onu_dowi_id_alarm_status                                                    BCMOLT_GPON_ONU_DOWI_ID_ALARM_STATUS
+#define bcmolt_gpon_onu_dowi_id_drift_value                                                     BCMOLT_GPON_ONU_DOWI_ID_DRIFT_VALUE
+#define bcmolt_gpon_onu_dowi_id_new_eqd                                                         BCMOLT_GPON_ONU_DOWI_ID_NEW_EQD
+#define bcmolt_gpon_onu_dowi_id__num_of                                                         BCMOLT_GPON_ONU_DOWI_ID__NUM_OF
+#define bcmolt_gpon_onu_err_id_bip8_errors                                                      BCMOLT_GPON_ONU_ERR_ID_BIP8_ERRORS
+#define bcmolt_gpon_onu_err_id__num_of                                                          BCMOLT_GPON_ONU_ERR_ID__NUM_OF
+#define bcmolt_gpon_onu_invalid_dbru_report_id_alloc_id                                         BCMOLT_GPON_ONU_INVALID_DBRU_REPORT_ID_ALLOC_ID
+#define bcmolt_gpon_onu_invalid_dbru_report_id__num_of                                          BCMOLT_GPON_ONU_INVALID_DBRU_REPORT_ID__NUM_OF
+#define bcmolt_gpon_onu_key_exchange_completed_id_new_key                                       BCMOLT_GPON_ONU_KEY_EXCHANGE_COMPLETED_ID_NEW_KEY
+#define bcmolt_gpon_onu_key_exchange_completed_id__num_of                                       BCMOLT_GPON_ONU_KEY_EXCHANGE_COMPLETED_ID__NUM_OF
+#define bcmolt_gpon_onu_key_exchange_cycle_skipped_id__num_of                                   BCMOLT_GPON_ONU_KEY_EXCHANGE_CYCLE_SKIPPED_ID__NUM_OF
+#define bcmolt_gpon_onu_key_exchange_decrypt_required_id_new_key                                BCMOLT_GPON_ONU_KEY_EXCHANGE_DECRYPT_REQUIRED_ID_NEW_KEY
+#define bcmolt_gpon_onu_key_exchange_decrypt_required_id__num_of                                BCMOLT_GPON_ONU_KEY_EXCHANGE_DECRYPT_REQUIRED_ID__NUM_OF
+#define bcmolt_gpon_onu_key_exchange_key_mismatch_id_expected_key                               BCMOLT_GPON_ONU_KEY_EXCHANGE_KEY_MISMATCH_ID_EXPECTED_KEY
+#define bcmolt_gpon_onu_key_exchange_key_mismatch_id_received_key                               BCMOLT_GPON_ONU_KEY_EXCHANGE_KEY_MISMATCH_ID_RECEIVED_KEY
+#define bcmolt_gpon_onu_key_exchange_key_mismatch_id__num_of                                    BCMOLT_GPON_ONU_KEY_EXCHANGE_KEY_MISMATCH_ID__NUM_OF
+#define bcmolt_gpon_onu_key_exchange_key_request_timeout_id__num_of                             BCMOLT_GPON_ONU_KEY_EXCHANGE_KEY_REQUEST_TIMEOUT_ID__NUM_OF
+#define bcmolt_gpon_onu_key_exchange_unconsecutive_index_id_expected_index                      BCMOLT_GPON_ONU_KEY_EXCHANGE_UNCONSECUTIVE_INDEX_ID_EXPECTED_INDEX
+#define bcmolt_gpon_onu_key_exchange_unconsecutive_index_id_actual_index                        BCMOLT_GPON_ONU_KEY_EXCHANGE_UNCONSECUTIVE_INDEX_ID_ACTUAL_INDEX
+#define bcmolt_gpon_onu_key_exchange_unconsecutive_index_id__num_of                             BCMOLT_GPON_ONU_KEY_EXCHANGE_UNCONSECUTIVE_INDEX_ID__NUM_OF
+#define bcmolt_gpon_onu_loai_id_alarm_status                                                    BCMOLT_GPON_ONU_LOAI_ID_ALARM_STATUS
+#define bcmolt_gpon_onu_loai_id__num_of                                                         BCMOLT_GPON_ONU_LOAI_ID__NUM_OF
+#define bcmolt_gpon_onu_loki_id_alarm_status                                                    BCMOLT_GPON_ONU_LOKI_ID_ALARM_STATUS
+#define bcmolt_gpon_onu_loki_id__num_of                                                         BCMOLT_GPON_ONU_LOKI_ID__NUM_OF
+#define bcmolt_gpon_onu_memi_id_ploam_buffer                                                    BCMOLT_GPON_ONU_MEMI_ID_PLOAM_BUFFER
+#define bcmolt_gpon_onu_memi_id__num_of                                                         BCMOLT_GPON_ONU_MEMI_ID__NUM_OF
+#define bcmolt_gpon_onu_omci_port_id_configuration_completed_id_gem_port                        BCMOLT_GPON_ONU_OMCI_PORT_ID_CONFIGURATION_COMPLETED_ID_GEM_PORT
+#define bcmolt_gpon_onu_omci_port_id_configuration_completed_id_status                          BCMOLT_GPON_ONU_OMCI_PORT_ID_CONFIGURATION_COMPLETED_ID_STATUS
+#define bcmolt_gpon_onu_omci_port_id_configuration_completed_id_operation                       BCMOLT_GPON_ONU_OMCI_PORT_ID_CONFIGURATION_COMPLETED_ID_OPERATION
+#define bcmolt_gpon_onu_omci_port_id_configuration_completed_id__num_of                         BCMOLT_GPON_ONU_OMCI_PORT_ID_CONFIGURATION_COMPLETED_ID__NUM_OF
+#define bcmolt_gpon_onu_onu_activation_completed_id_status                                      BCMOLT_GPON_ONU_ONU_ACTIVATION_COMPLETED_ID_STATUS
+#define bcmolt_gpon_onu_onu_activation_completed_id_fail_reason                                 BCMOLT_GPON_ONU_ONU_ACTIVATION_COMPLETED_ID_FAIL_REASON
+#define bcmolt_gpon_onu_onu_activation_completed_id__num_of                                     BCMOLT_GPON_ONU_ONU_ACTIVATION_COMPLETED_ID__NUM_OF
+#define bcmolt_gpon_onu_onu_activation_standby_completed_id_result                              BCMOLT_GPON_ONU_ONU_ACTIVATION_STANDBY_COMPLETED_ID_RESULT
+#define bcmolt_gpon_onu_onu_activation_standby_completed_id__num_of                             BCMOLT_GPON_ONU_ONU_ACTIVATION_STANDBY_COMPLETED_ID__NUM_OF
+#define bcmolt_gpon_onu_onu_alarm_id_onu_alarm                                                  BCMOLT_GPON_ONU_ONU_ALARM_ID_ONU_ALARM
+#define bcmolt_gpon_onu_onu_alarm_id__num_of                                                    BCMOLT_GPON_ONU_ONU_ALARM_ID__NUM_OF
+#define bcmolt_gpon_onu_onu_deactivation_completed_id_status                                    BCMOLT_GPON_ONU_ONU_DEACTIVATION_COMPLETED_ID_STATUS
+#define bcmolt_gpon_onu_onu_deactivation_completed_id__num_of                                   BCMOLT_GPON_ONU_ONU_DEACTIVATION_COMPLETED_ID__NUM_OF
+#define bcmolt_gpon_onu_onu_disable_completed_id_serial_number                                  BCMOLT_GPON_ONU_ONU_DISABLE_COMPLETED_ID_SERIAL_NUMBER
+#define bcmolt_gpon_onu_onu_disable_completed_id__num_of                                        BCMOLT_GPON_ONU_ONU_DISABLE_COMPLETED_ID__NUM_OF
+#define bcmolt_gpon_onu_onu_enable_completed_id_serial_number                                   BCMOLT_GPON_ONU_ONU_ENABLE_COMPLETED_ID_SERIAL_NUMBER
+#define bcmolt_gpon_onu_onu_enable_completed_id__num_of                                         BCMOLT_GPON_ONU_ONU_ENABLE_COMPLETED_ID__NUM_OF
+#define bcmolt_gpon_onu_optical_reflection_id__num_of                                           BCMOLT_GPON_ONU_OPTICAL_REFLECTION_ID__NUM_OF
+#define bcmolt_gpon_onu_password_authentication_completed_id_status                             BCMOLT_GPON_ONU_PASSWORD_AUTHENTICATION_COMPLETED_ID_STATUS
+#define bcmolt_gpon_onu_password_authentication_completed_id_fail_reason                        BCMOLT_GPON_ONU_PASSWORD_AUTHENTICATION_COMPLETED_ID_FAIL_REASON
+#define bcmolt_gpon_onu_password_authentication_completed_id_password                           BCMOLT_GPON_ONU_PASSWORD_AUTHENTICATION_COMPLETED_ID_PASSWORD
+#define bcmolt_gpon_onu_password_authentication_completed_id__num_of                            BCMOLT_GPON_ONU_PASSWORD_AUTHENTICATION_COMPLETED_ID__NUM_OF
+#define bcmolt_gpon_onu_pee_id_alarm_status                                                     BCMOLT_GPON_ONU_PEE_ID_ALARM_STATUS
+#define bcmolt_gpon_onu_pee_id__num_of                                                          BCMOLT_GPON_ONU_PEE_ID__NUM_OF
+#define bcmolt_gpon_onu_possible_drift_id_alarm_status                                          BCMOLT_GPON_ONU_POSSIBLE_DRIFT_ID_ALARM_STATUS
+#define bcmolt_gpon_onu_possible_drift_id_estimated_drift                                       BCMOLT_GPON_ONU_POSSIBLE_DRIFT_ID_ESTIMATED_DRIFT
+#define bcmolt_gpon_onu_possible_drift_id__num_of                                               BCMOLT_GPON_ONU_POSSIBLE_DRIFT_ID__NUM_OF
+#define bcmolt_gpon_onu_power_management_state_change_id_old_state                              BCMOLT_GPON_ONU_POWER_MANAGEMENT_STATE_CHANGE_ID_OLD_STATE
+#define bcmolt_gpon_onu_power_management_state_change_id_new_state                              BCMOLT_GPON_ONU_POWER_MANAGEMENT_STATE_CHANGE_ID_NEW_STATE
+#define bcmolt_gpon_onu_power_management_state_change_id_reason                                 BCMOLT_GPON_ONU_POWER_MANAGEMENT_STATE_CHANGE_ID_REASON
+#define bcmolt_gpon_onu_power_management_state_change_id__num_of                                BCMOLT_GPON_ONU_POWER_MANAGEMENT_STATE_CHANGE_ID__NUM_OF
+#define bcmolt_gpon_onu_pst_id_link_number                                                      BCMOLT_GPON_ONU_PST_ID_LINK_NUMBER
+#define bcmolt_gpon_onu_pst_id_k1                                                               BCMOLT_GPON_ONU_PST_ID_K1
+#define bcmolt_gpon_onu_pst_id_k2                                                               BCMOLT_GPON_ONU_PST_ID_K2
+#define bcmolt_gpon_onu_pst_id__num_of                                                          BCMOLT_GPON_ONU_PST_ID__NUM_OF
+#define bcmolt_gpon_onu_ranging_completed_id_status                                             BCMOLT_GPON_ONU_RANGING_COMPLETED_ID_STATUS
+#define bcmolt_gpon_onu_ranging_completed_id_fail_reason                                        BCMOLT_GPON_ONU_RANGING_COMPLETED_ID_FAIL_REASON
+#define bcmolt_gpon_onu_ranging_completed_id_number_of_ploams                                   BCMOLT_GPON_ONU_RANGING_COMPLETED_ID_NUMBER_OF_PLOAMS
+#define bcmolt_gpon_onu_ranging_completed_id_eqd                                                BCMOLT_GPON_ONU_RANGING_COMPLETED_ID_EQD
+#define bcmolt_gpon_onu_ranging_completed_id_power_level                                        BCMOLT_GPON_ONU_RANGING_COMPLETED_ID_POWER_LEVEL
+#define bcmolt_gpon_onu_ranging_completed_id__num_of                                            BCMOLT_GPON_ONU_RANGING_COMPLETED_ID__NUM_OF
+#define bcmolt_gpon_onu_rei_id_bip8_errors                                                      BCMOLT_GPON_ONU_REI_ID_BIP8_ERRORS
+#define bcmolt_gpon_onu_rei_id__num_of                                                          BCMOLT_GPON_ONU_REI_ID__NUM_OF
+#define bcmolt_gpon_onu_rssi_measurement_completed_id_status                                    BCMOLT_GPON_ONU_RSSI_MEASUREMENT_COMPLETED_ID_STATUS
+#define bcmolt_gpon_onu_rssi_measurement_completed_id_fail_reason                               BCMOLT_GPON_ONU_RSSI_MEASUREMENT_COMPLETED_ID_FAIL_REASON
+#define bcmolt_gpon_onu_rssi_measurement_completed_id__num_of                                   BCMOLT_GPON_ONU_RSSI_MEASUREMENT_COMPLETED_ID__NUM_OF
+#define bcmolt_gpon_onu_sdi_id_alarm_status                                                     BCMOLT_GPON_ONU_SDI_ID_ALARM_STATUS
+#define bcmolt_gpon_onu_sdi_id_ber                                                              BCMOLT_GPON_ONU_SDI_ID_BER
+#define bcmolt_gpon_onu_sdi_id__num_of                                                          BCMOLT_GPON_ONU_SDI_ID__NUM_OF
+#define bcmolt_gpon_onu_sfi_id_alarm_status                                                     BCMOLT_GPON_ONU_SFI_ID_ALARM_STATUS
+#define bcmolt_gpon_onu_sfi_id_ber                                                              BCMOLT_GPON_ONU_SFI_ID_BER
+#define bcmolt_gpon_onu_sfi_id__num_of                                                          BCMOLT_GPON_ONU_SFI_ID__NUM_OF
+#define bcmolt_gpon_onu_stat_alarm_cleared_id_stat                                              BCMOLT_GPON_ONU_STAT_ALARM_CLEARED_ID_STAT
+#define bcmolt_gpon_onu_stat_alarm_cleared_id__num_of                                           BCMOLT_GPON_ONU_STAT_ALARM_CLEARED_ID__NUM_OF
+#define bcmolt_gpon_onu_stat_alarm_raised_id_stat                                               BCMOLT_GPON_ONU_STAT_ALARM_RAISED_ID_STAT
+#define bcmolt_gpon_onu_stat_alarm_raised_id__num_of                                            BCMOLT_GPON_ONU_STAT_ALARM_RAISED_ID__NUM_OF
+#define bcmolt_gpon_onu_sufi_id_alarm_status                                                    BCMOLT_GPON_ONU_SUFI_ID_ALARM_STATUS
+#define bcmolt_gpon_onu_sufi_id__num_of                                                         BCMOLT_GPON_ONU_SUFI_ID__NUM_OF
+#define bcmolt_gpon_onu_tiwi_id_alarm_status                                                    BCMOLT_GPON_ONU_TIWI_ID_ALARM_STATUS
+#define bcmolt_gpon_onu_tiwi_id_drift_value                                                     BCMOLT_GPON_ONU_TIWI_ID_DRIFT_VALUE
+#define bcmolt_gpon_onu_tiwi_id__num_of                                                         BCMOLT_GPON_ONU_TIWI_ID__NUM_OF
+#define bcmolt_gpon_onu_auto_cfg_id_ber_interval_configuration_completed                        BCMOLT_GPON_ONU_AUTO_CFG_ID_BER_INTERVAL_CONFIGURATION_COMPLETED
+#define bcmolt_gpon_onu_auto_cfg_id_dfi                                                         BCMOLT_GPON_ONU_AUTO_CFG_ID_DFI
+#define bcmolt_gpon_onu_auto_cfg_id_dgi                                                         BCMOLT_GPON_ONU_AUTO_CFG_ID_DGI
+#define bcmolt_gpon_onu_auto_cfg_id_dowi                                                        BCMOLT_GPON_ONU_AUTO_CFG_ID_DOWI
+#define bcmolt_gpon_onu_auto_cfg_id_err                                                         BCMOLT_GPON_ONU_AUTO_CFG_ID_ERR
+#define bcmolt_gpon_onu_auto_cfg_id_invalid_dbru_report                                         BCMOLT_GPON_ONU_AUTO_CFG_ID_INVALID_DBRU_REPORT
+#define bcmolt_gpon_onu_auto_cfg_id_key_exchange_completed                                      BCMOLT_GPON_ONU_AUTO_CFG_ID_KEY_EXCHANGE_COMPLETED
+#define bcmolt_gpon_onu_auto_cfg_id_key_exchange_cycle_skipped                                  BCMOLT_GPON_ONU_AUTO_CFG_ID_KEY_EXCHANGE_CYCLE_SKIPPED
+#define bcmolt_gpon_onu_auto_cfg_id_key_exchange_decrypt_required                               BCMOLT_GPON_ONU_AUTO_CFG_ID_KEY_EXCHANGE_DECRYPT_REQUIRED
+#define bcmolt_gpon_onu_auto_cfg_id_key_exchange_key_mismatch                                   BCMOLT_GPON_ONU_AUTO_CFG_ID_KEY_EXCHANGE_KEY_MISMATCH
+#define bcmolt_gpon_onu_auto_cfg_id_key_exchange_key_request_timeout                            BCMOLT_GPON_ONU_AUTO_CFG_ID_KEY_EXCHANGE_KEY_REQUEST_TIMEOUT
+#define bcmolt_gpon_onu_auto_cfg_id_key_exchange_unconsecutive_index                            BCMOLT_GPON_ONU_AUTO_CFG_ID_KEY_EXCHANGE_UNCONSECUTIVE_INDEX
+#define bcmolt_gpon_onu_auto_cfg_id_loai                                                        BCMOLT_GPON_ONU_AUTO_CFG_ID_LOAI
+#define bcmolt_gpon_onu_auto_cfg_id_loki                                                        BCMOLT_GPON_ONU_AUTO_CFG_ID_LOKI
+#define bcmolt_gpon_onu_auto_cfg_id_memi                                                        BCMOLT_GPON_ONU_AUTO_CFG_ID_MEMI
+#define bcmolt_gpon_onu_auto_cfg_id_omci_port_id_configuration_completed                        BCMOLT_GPON_ONU_AUTO_CFG_ID_OMCI_PORT_ID_CONFIGURATION_COMPLETED
+#define bcmolt_gpon_onu_auto_cfg_id_onu_activation_completed                                    BCMOLT_GPON_ONU_AUTO_CFG_ID_ONU_ACTIVATION_COMPLETED
+#define bcmolt_gpon_onu_auto_cfg_id_onu_activation_standby_completed                            BCMOLT_GPON_ONU_AUTO_CFG_ID_ONU_ACTIVATION_STANDBY_COMPLETED
+#define bcmolt_gpon_onu_auto_cfg_id_onu_alarm                                                   BCMOLT_GPON_ONU_AUTO_CFG_ID_ONU_ALARM
+#define bcmolt_gpon_onu_auto_cfg_id_onu_deactivation_completed                                  BCMOLT_GPON_ONU_AUTO_CFG_ID_ONU_DEACTIVATION_COMPLETED
+#define bcmolt_gpon_onu_auto_cfg_id_onu_disable_completed                                       BCMOLT_GPON_ONU_AUTO_CFG_ID_ONU_DISABLE_COMPLETED
+#define bcmolt_gpon_onu_auto_cfg_id_onu_enable_completed                                        BCMOLT_GPON_ONU_AUTO_CFG_ID_ONU_ENABLE_COMPLETED
+#define bcmolt_gpon_onu_auto_cfg_id_optical_reflection                                          BCMOLT_GPON_ONU_AUTO_CFG_ID_OPTICAL_REFLECTION
+#define bcmolt_gpon_onu_auto_cfg_id_password_authentication_completed                           BCMOLT_GPON_ONU_AUTO_CFG_ID_PASSWORD_AUTHENTICATION_COMPLETED
+#define bcmolt_gpon_onu_auto_cfg_id_pee                                                         BCMOLT_GPON_ONU_AUTO_CFG_ID_PEE
+#define bcmolt_gpon_onu_auto_cfg_id_possible_drift                                              BCMOLT_GPON_ONU_AUTO_CFG_ID_POSSIBLE_DRIFT
+#define bcmolt_gpon_onu_auto_cfg_id_power_management_state_change                               BCMOLT_GPON_ONU_AUTO_CFG_ID_POWER_MANAGEMENT_STATE_CHANGE
+#define bcmolt_gpon_onu_auto_cfg_id_pst                                                         BCMOLT_GPON_ONU_AUTO_CFG_ID_PST
+#define bcmolt_gpon_onu_auto_cfg_id_ranging_completed                                           BCMOLT_GPON_ONU_AUTO_CFG_ID_RANGING_COMPLETED
+#define bcmolt_gpon_onu_auto_cfg_id_rei                                                         BCMOLT_GPON_ONU_AUTO_CFG_ID_REI
+#define bcmolt_gpon_onu_auto_cfg_id_rssi_measurement_completed                                  BCMOLT_GPON_ONU_AUTO_CFG_ID_RSSI_MEASUREMENT_COMPLETED
+#define bcmolt_gpon_onu_auto_cfg_id_sdi                                                         BCMOLT_GPON_ONU_AUTO_CFG_ID_SDI
+#define bcmolt_gpon_onu_auto_cfg_id_sfi                                                         BCMOLT_GPON_ONU_AUTO_CFG_ID_SFI
+#define bcmolt_gpon_onu_auto_cfg_id_stat_alarm_cleared                                          BCMOLT_GPON_ONU_AUTO_CFG_ID_STAT_ALARM_CLEARED
+#define bcmolt_gpon_onu_auto_cfg_id_stat_alarm_raised                                           BCMOLT_GPON_ONU_AUTO_CFG_ID_STAT_ALARM_RAISED
+#define bcmolt_gpon_onu_auto_cfg_id_sufi                                                        BCMOLT_GPON_ONU_AUTO_CFG_ID_SUFI
+#define bcmolt_gpon_onu_auto_cfg_id_tiwi                                                        BCMOLT_GPON_ONU_AUTO_CFG_ID_TIWI
+#define bcmolt_gpon_onu_auto_cfg_id__num_of                                                     BCMOLT_GPON_ONU_AUTO_CFG_ID__NUM_OF
+#define bcmolt_gpon_onu_change_power_level_id_power_level_action                                BCMOLT_GPON_ONU_CHANGE_POWER_LEVEL_ID_POWER_LEVEL_ACTION
+#define bcmolt_gpon_onu_change_power_level_id__num_of                                           BCMOLT_GPON_ONU_CHANGE_POWER_LEVEL_ID__NUM_OF
+#define bcmolt_gpon_onu_rssi_measurement_id__num_of                                             BCMOLT_GPON_ONU_RSSI_MEASUREMENT_ID__NUM_OF
+#define bcmolt_gpon_onu_set_onu_state_id_onu_state                                              BCMOLT_GPON_ONU_SET_ONU_STATE_ID_ONU_STATE
+#define bcmolt_gpon_onu_set_onu_state_id__num_of                                                BCMOLT_GPON_ONU_SET_ONU_STATE_ID__NUM_OF
+#define bcmolt_gpon_onu_cpu_packets_id_packet_type                                              BCMOLT_GPON_ONU_CPU_PACKETS_ID_PACKET_TYPE
+#define bcmolt_gpon_onu_cpu_packets_id_calc_crc                                                 BCMOLT_GPON_ONU_CPU_PACKETS_ID_CALC_CRC
+#define bcmolt_gpon_onu_cpu_packets_id_number_of_packets                                        BCMOLT_GPON_ONU_CPU_PACKETS_ID_NUMBER_OF_PACKETS
+#define bcmolt_gpon_onu_cpu_packets_id_packet_size                                              BCMOLT_GPON_ONU_CPU_PACKETS_ID_PACKET_SIZE
+#define bcmolt_gpon_onu_cpu_packets_id_buffer                                                   BCMOLT_GPON_ONU_CPU_PACKETS_ID_BUFFER
+#define bcmolt_gpon_onu_cpu_packets_id__num_of                                                  BCMOLT_GPON_ONU_CPU_PACKETS_ID__NUM_OF
+#define bcmolt_gpon_onu_ploam_packet_id_ploam                                                   BCMOLT_GPON_ONU_PLOAM_PACKET_ID_PLOAM
+#define bcmolt_gpon_onu_ploam_packet_id__num_of                                                 BCMOLT_GPON_ONU_PLOAM_PACKET_ID__NUM_OF
+#define bcmolt_gpon_onu_cpu_packet_id_port_id                                                   BCMOLT_GPON_ONU_CPU_PACKET_ID_PORT_ID
+#define bcmolt_gpon_onu_cpu_packet_id_crc_ok                                                    BCMOLT_GPON_ONU_CPU_PACKET_ID_CRC_OK
+#define bcmolt_gpon_onu_cpu_packet_id_packet_size                                               BCMOLT_GPON_ONU_CPU_PACKET_ID_PACKET_SIZE
+#define bcmolt_gpon_onu_cpu_packet_id_buffer                                                    BCMOLT_GPON_ONU_CPU_PACKET_ID_BUFFER
+#define bcmolt_gpon_onu_cpu_packet_id__num_of                                                   BCMOLT_GPON_ONU_CPU_PACKET_ID__NUM_OF
+#define bcmolt_gpon_onu_omci_packet_id_port_id                                                  BCMOLT_GPON_ONU_OMCI_PACKET_ID_PORT_ID
+#define bcmolt_gpon_onu_omci_packet_id_crc_ok                                                   BCMOLT_GPON_ONU_OMCI_PACKET_ID_CRC_OK
+#define bcmolt_gpon_onu_omci_packet_id_packet_size                                              BCMOLT_GPON_ONU_OMCI_PACKET_ID_PACKET_SIZE
+#define bcmolt_gpon_onu_omci_packet_id_buffer                                                   BCMOLT_GPON_ONU_OMCI_PACKET_ID_BUFFER
+#define bcmolt_gpon_onu_omci_packet_id__num_of                                                  BCMOLT_GPON_ONU_OMCI_PACKET_ID__NUM_OF
+#define bcmolt_gpon_trx_key_id_pon_ni                                                           BCMOLT_GPON_TRX_KEY_ID_PON_NI
+#define bcmolt_gpon_trx_key_id__num_of                                                          BCMOLT_GPON_TRX_KEY_ID__NUM_OF
+#define bcmolt_gpon_trx_cfg_id_transceiver_type                                                 BCMOLT_GPON_TRX_CFG_ID_TRANSCEIVER_TYPE
+#define bcmolt_gpon_trx_cfg_id_la_configuration                                                 BCMOLT_GPON_TRX_CFG_ID_LA_CONFIGURATION
+#define bcmolt_gpon_trx_cfg_id_bcdr                                                             BCMOLT_GPON_TRX_CFG_ID_BCDR
+#define bcmolt_gpon_trx_cfg_id_la_ranging_after_no_ed_resync                                    BCMOLT_GPON_TRX_CFG_ID_LA_RANGING_AFTER_NO_ED_RESYNC
+#define bcmolt_gpon_trx_cfg_id_bcdr_ranging_after_no_ed_resync                                  BCMOLT_GPON_TRX_CFG_ID_BCDR_RANGING_AFTER_NO_ED_RESYNC
+#define bcmolt_gpon_trx_cfg_id_la_ranging_after_ed_resync                                       BCMOLT_GPON_TRX_CFG_ID_LA_RANGING_AFTER_ED_RESYNC
+#define bcmolt_gpon_trx_cfg_id_bcdr_ranging_after_ed_resync                                     BCMOLT_GPON_TRX_CFG_ID_BCDR_RANGING_AFTER_ED_RESYNC
+#define bcmolt_gpon_trx_cfg_id_la_resync_polarity                                               BCMOLT_GPON_TRX_CFG_ID_LA_RESYNC_POLARITY
+#define bcmolt_gpon_trx_cfg_id_bcdr_resync_polarity                                             BCMOLT_GPON_TRX_CFG_ID_BCDR_RESYNC_POLARITY
+#define bcmolt_gpon_trx_cfg_id_bcdr_ranging_resync_conditions                                   BCMOLT_GPON_TRX_CFG_ID_BCDR_RANGING_RESYNC_CONDITIONS
+#define bcmolt_gpon_trx_cfg_id_la_ranging_resync_conditions                                     BCMOLT_GPON_TRX_CFG_ID_LA_RANGING_RESYNC_CONDITIONS
+#define bcmolt_gpon_trx_cfg_id_rx_configuration                                                 BCMOLT_GPON_TRX_CFG_ID_RX_CONFIGURATION
+#define bcmolt_gpon_trx_cfg_id_ranging_control_stages_configuration                             BCMOLT_GPON_TRX_CFG_ID_RANGING_CONTROL_STAGES_CONFIGURATION
+#define bcmolt_gpon_trx_cfg_id_energy_detect                                                    BCMOLT_GPON_TRX_CFG_ID_ENERGY_DETECT
+#define bcmolt_gpon_trx_cfg_id_end_of_burst_data_pattern                                        BCMOLT_GPON_TRX_CFG_ID_END_OF_BURST_DATA_PATTERN
+#define bcmolt_gpon_trx_cfg_id_end_of_burst_ranging_pattern                                     BCMOLT_GPON_TRX_CFG_ID_END_OF_BURST_RANGING_PATTERN
+#define bcmolt_gpon_trx_cfg_id_preamble                                                         BCMOLT_GPON_TRX_CFG_ID_PREAMBLE
+#define bcmolt_gpon_trx_cfg_id_delimiter                                                        BCMOLT_GPON_TRX_CFG_ID_DELIMITER
+#define bcmolt_gpon_trx_cfg_id_guard_bits                                                       BCMOLT_GPON_TRX_CFG_ID_GUARD_BITS
+#define bcmolt_gpon_trx_cfg_id_serdes_configuration                                             BCMOLT_GPON_TRX_CFG_ID_SERDES_CONFIGURATION
+#define bcmolt_gpon_trx_cfg_id_plo_ranging                                                      BCMOLT_GPON_TRX_CFG_ID_PLO_RANGING
+#define bcmolt_gpon_trx_cfg_id_plo_data                                                         BCMOLT_GPON_TRX_CFG_ID_PLO_DATA
+#define bcmolt_gpon_trx_cfg_id_rssi_normal_config                                               BCMOLT_GPON_TRX_CFG_ID_RSSI_NORMAL_CONFIG
+#define bcmolt_gpon_trx_cfg_id_ranging_rssi_resync_control                                      BCMOLT_GPON_TRX_CFG_ID_RANGING_RSSI_RESYNC_CONTROL
+#define bcmolt_gpon_trx_cfg_id__num_of                                                          BCMOLT_GPON_TRX_CFG_ID__NUM_OF
+#define bcmolt_log_entry_key_id_log_id                                                          BCMOLT_LOG_ENTRY_KEY_ID_LOG_ID
+#define bcmolt_log_entry_key_id_reserved                                                        BCMOLT_LOG_ENTRY_KEY_ID_RESERVED
+#define bcmolt_log_entry_key_id_name                                                            BCMOLT_LOG_ENTRY_KEY_ID_NAME
+#define bcmolt_log_entry_key_id__num_of                                                         BCMOLT_LOG_ENTRY_KEY_ID__NUM_OF
+#define bcmolt_log_entry_cfg_id_default_log_level                                               BCMOLT_LOG_ENTRY_CFG_ID_DEFAULT_LOG_LEVEL
+#define bcmolt_log_entry_cfg_id_default_log_type                                                BCMOLT_LOG_ENTRY_CFG_ID_DEFAULT_LOG_TYPE
+#define bcmolt_log_entry_cfg_id_log_level_print                                                 BCMOLT_LOG_ENTRY_CFG_ID_LOG_LEVEL_PRINT
+#define bcmolt_log_entry_cfg_id_log_level_save                                                  BCMOLT_LOG_ENTRY_CFG_ID_LOG_LEVEL_SAVE
+#define bcmolt_log_entry_cfg_id_log_type                                                        BCMOLT_LOG_ENTRY_CFG_ID_LOG_TYPE
+#define bcmolt_log_entry_cfg_id_log_style                                                       BCMOLT_LOG_ENTRY_CFG_ID_LOG_STYLE
+#define bcmolt_log_entry_cfg_id_log_name                                                        BCMOLT_LOG_ENTRY_CFG_ID_LOG_NAME
+#define bcmolt_log_entry_cfg_id__num_of                                                         BCMOLT_LOG_ENTRY_CFG_ID__NUM_OF
+#define bcmolt_log_entry_stat_id_msg_count                                                      BCMOLT_LOG_ENTRY_STAT_ID_MSG_COUNT
+#define bcmolt_log_entry_stat_id_lost_msg_count                                                 BCMOLT_LOG_ENTRY_STAT_ID_LOST_MSG_COUNT
+#define bcmolt_log_entry_stat_id__num_of                                                        BCMOLT_LOG_ENTRY_STAT_ID__NUM_OF
+#define bcmolt_log_entry_stat_cfg_id_cfg                                                        BCMOLT_LOG_ENTRY_STAT_CFG_ID_CFG
+#define bcmolt_log_entry_stat_cfg_id__num_of                                                    BCMOLT_LOG_ENTRY_STAT_CFG_ID__NUM_OF
+#define bcmolt_log_entry_stat_alarm_cleared_id_stat                                             BCMOLT_LOG_ENTRY_STAT_ALARM_CLEARED_ID_STAT
+#define bcmolt_log_entry_stat_alarm_cleared_id__num_of                                          BCMOLT_LOG_ENTRY_STAT_ALARM_CLEARED_ID__NUM_OF
+#define bcmolt_log_entry_stat_alarm_raised_id_stat                                              BCMOLT_LOG_ENTRY_STAT_ALARM_RAISED_ID_STAT
+#define bcmolt_log_entry_stat_alarm_raised_id__num_of                                           BCMOLT_LOG_ENTRY_STAT_ALARM_RAISED_ID__NUM_OF
+#define bcmolt_log_entry_auto_cfg_id_stat_alarm_cleared                                         BCMOLT_LOG_ENTRY_AUTO_CFG_ID_STAT_ALARM_CLEARED
+#define bcmolt_log_entry_auto_cfg_id_stat_alarm_raised                                          BCMOLT_LOG_ENTRY_AUTO_CFG_ID_STAT_ALARM_RAISED
+#define bcmolt_log_entry_auto_cfg_id__num_of                                                    BCMOLT_LOG_ENTRY_AUTO_CFG_ID__NUM_OF
+#define bcmolt_logger_key_id_reserved                                                           BCMOLT_LOGGER_KEY_ID_RESERVED
+#define bcmolt_logger_key_id_file_id                                                            BCMOLT_LOGGER_KEY_ID_FILE_ID
+#define bcmolt_logger_key_id__num_of                                                            BCMOLT_LOGGER_KEY_ID__NUM_OF
+#define bcmolt_logger_cfg_id_buffer                                                             BCMOLT_LOGGER_CFG_ID_BUFFER
+#define bcmolt_logger_cfg_id_wrap_around                                                        BCMOLT_LOGGER_CFG_ID_WRAP_AROUND
+#define bcmolt_logger_cfg_id_clear_after_read                                                   BCMOLT_LOGGER_CFG_ID_CLEAR_AFTER_READ
+#define bcmolt_logger_cfg_id_enable_log                                                         BCMOLT_LOGGER_CFG_ID_ENABLE_LOG
+#define bcmolt_logger_cfg_id_log_names                                                          BCMOLT_LOGGER_CFG_ID_LOG_NAMES
+#define bcmolt_logger_cfg_id__num_of                                                            BCMOLT_LOGGER_CFG_ID__NUM_OF
+#define bcmolt_logger_stat_id_lines_in_log                                                      BCMOLT_LOGGER_STAT_ID_LINES_IN_LOG
+#define bcmolt_logger_stat_id__num_of                                                           BCMOLT_LOGGER_STAT_ID__NUM_OF
+#define bcmolt_logger_stat_cfg_id_cfg                                                           BCMOLT_LOGGER_STAT_CFG_ID_CFG
+#define bcmolt_logger_stat_cfg_id__num_of                                                       BCMOLT_LOGGER_STAT_CFG_ID__NUM_OF
+#define bcmolt_logger_stat_alarm_cleared_id_stat                                                BCMOLT_LOGGER_STAT_ALARM_CLEARED_ID_STAT
+#define bcmolt_logger_stat_alarm_cleared_id__num_of                                             BCMOLT_LOGGER_STAT_ALARM_CLEARED_ID__NUM_OF
+#define bcmolt_logger_stat_alarm_raised_id_stat                                                 BCMOLT_LOGGER_STAT_ALARM_RAISED_ID_STAT
+#define bcmolt_logger_stat_alarm_raised_id__num_of                                              BCMOLT_LOGGER_STAT_ALARM_RAISED_ID__NUM_OF
+#define bcmolt_logger_auto_cfg_id_stat_alarm_cleared                                            BCMOLT_LOGGER_AUTO_CFG_ID_STAT_ALARM_CLEARED
+#define bcmolt_logger_auto_cfg_id_stat_alarm_raised                                             BCMOLT_LOGGER_AUTO_CFG_ID_STAT_ALARM_RAISED
+#define bcmolt_logger_auto_cfg_id__num_of                                                       BCMOLT_LOGGER_AUTO_CFG_ID__NUM_OF
+#define bcmolt_logger_clear_log_id__num_of                                                      BCMOLT_LOGGER_CLEAR_LOG_ID__NUM_OF
+#define bcmolt_nni_key_id_pon_ni                                                                BCMOLT_NNI_KEY_ID_PON_NI
+#define bcmolt_nni_key_id__num_of                                                               BCMOLT_NNI_KEY_ID__NUM_OF
+#define bcmolt_nni_cfg_id_remote_loopback                                                       BCMOLT_NNI_CFG_ID_REMOTE_LOOPBACK
+#define bcmolt_nni_cfg_id_line_loopback                                                         BCMOLT_NNI_CFG_ID_LINE_LOOPBACK
+#define bcmolt_nni_cfg_id_mac_address                                                           BCMOLT_NNI_CFG_ID_MAC_ADDRESS
+#define bcmolt_nni_cfg_id_nni_status                                                            BCMOLT_NNI_CFG_ID_NNI_STATUS
+#define bcmolt_nni_cfg_id_nni_backup_status                                                     BCMOLT_NNI_CFG_ID_NNI_BACKUP_STATUS
+#define bcmolt_nni_cfg_id_active_nni                                                            BCMOLT_NNI_CFG_ID_ACTIVE_NNI
+#define bcmolt_nni_cfg_id_nni_status_polling_interval_ms                                        BCMOLT_NNI_CFG_ID_NNI_STATUS_POLLING_INTERVAL_MS
+#define bcmolt_nni_cfg_id_autoswitch                                                            BCMOLT_NNI_CFG_ID_AUTOSWITCH
+#define bcmolt_nni_cfg_id_flow_control                                                          BCMOLT_NNI_CFG_ID_FLOW_CONTROL
+#define bcmolt_nni_cfg_id__num_of                                                               BCMOLT_NNI_CFG_ID__NUM_OF
+#define bcmolt_nni_stat_id_rx_frames_64                                                         BCMOLT_NNI_STAT_ID_RX_FRAMES_64
+#define bcmolt_nni_stat_id_rx_frames_65_127                                                     BCMOLT_NNI_STAT_ID_RX_FRAMES_65_127
+#define bcmolt_nni_stat_id_rx_frames_128_255                                                    BCMOLT_NNI_STAT_ID_RX_FRAMES_128_255
+#define bcmolt_nni_stat_id_rx_frames_256_511                                                    BCMOLT_NNI_STAT_ID_RX_FRAMES_256_511
+#define bcmolt_nni_stat_id_rx_frames_512_1023                                                   BCMOLT_NNI_STAT_ID_RX_FRAMES_512_1023
+#define bcmolt_nni_stat_id_rx_frames_1024_1518                                                  BCMOLT_NNI_STAT_ID_RX_FRAMES_1024_1518
+#define bcmolt_nni_stat_id_rx_frames_1519_2047                                                  BCMOLT_NNI_STAT_ID_RX_FRAMES_1519_2047
+#define bcmolt_nni_stat_id_rx_frames_2048_4095                                                  BCMOLT_NNI_STAT_ID_RX_FRAMES_2048_4095
+#define bcmolt_nni_stat_id_rx_frames_4096_9216                                                  BCMOLT_NNI_STAT_ID_RX_FRAMES_4096_9216
+#define bcmolt_nni_stat_id_rx_frames_9217_16383                                                 BCMOLT_NNI_STAT_ID_RX_FRAMES_9217_16383
+#define bcmolt_nni_stat_id_rx_frames                                                            BCMOLT_NNI_STAT_ID_RX_FRAMES
+#define bcmolt_nni_stat_id_rx_bytes                                                             BCMOLT_NNI_STAT_ID_RX_BYTES
+#define bcmolt_nni_stat_id_rx_good_frames                                                       BCMOLT_NNI_STAT_ID_RX_GOOD_FRAMES
+#define bcmolt_nni_stat_id_rx_unicast_frames                                                    BCMOLT_NNI_STAT_ID_RX_UNICAST_FRAMES
+#define bcmolt_nni_stat_id_rx_multicast_frames                                                  BCMOLT_NNI_STAT_ID_RX_MULTICAST_FRAMES
+#define bcmolt_nni_stat_id_rx_broadcast_frames                                                  BCMOLT_NNI_STAT_ID_RX_BROADCAST_FRAMES
+#define bcmolt_nni_stat_id_rx_fcs_errors                                                        BCMOLT_NNI_STAT_ID_RX_FCS_ERRORS
+#define bcmolt_nni_stat_id_rx_control_frames                                                    BCMOLT_NNI_STAT_ID_RX_CONTROL_FRAMES
+#define bcmolt_nni_stat_id_rx_pause_frames                                                      BCMOLT_NNI_STAT_ID_RX_PAUSE_FRAMES
+#define bcmolt_nni_stat_id_rx_pfc_frames                                                        BCMOLT_NNI_STAT_ID_RX_PFC_FRAMES
+#define bcmolt_nni_stat_id_rx_unsupported_opcode                                                BCMOLT_NNI_STAT_ID_RX_UNSUPPORTED_OPCODE
+#define bcmolt_nni_stat_id_rx_unsupported_da                                                    BCMOLT_NNI_STAT_ID_RX_UNSUPPORTED_DA
+#define bcmolt_nni_stat_id_rx_alignment_errors                                                  BCMOLT_NNI_STAT_ID_RX_ALIGNMENT_ERRORS
+#define bcmolt_nni_stat_id_rx_length_out_of_range                                               BCMOLT_NNI_STAT_ID_RX_LENGTH_OUT_OF_RANGE
+#define bcmolt_nni_stat_id_rx_code_errors                                                       BCMOLT_NNI_STAT_ID_RX_CODE_ERRORS
+#define bcmolt_nni_stat_id_rx_oversized_frames                                                  BCMOLT_NNI_STAT_ID_RX_OVERSIZED_FRAMES
+#define bcmolt_nni_stat_id_rx_jabber_frames                                                     BCMOLT_NNI_STAT_ID_RX_JABBER_FRAMES
+#define bcmolt_nni_stat_id_rx_mtu_check_errors                                                  BCMOLT_NNI_STAT_ID_RX_MTU_CHECK_ERRORS
+#define bcmolt_nni_stat_id_rx_promiscuous_frames                                                BCMOLT_NNI_STAT_ID_RX_PROMISCUOUS_FRAMES
+#define bcmolt_nni_stat_id_rx_vlan_frames                                                       BCMOLT_NNI_STAT_ID_RX_VLAN_FRAMES
+#define bcmolt_nni_stat_id_rx_double_vlan_frames                                                BCMOLT_NNI_STAT_ID_RX_DOUBLE_VLAN_FRAMES
+#define bcmolt_nni_stat_id_rx_truncated_frames                                                  BCMOLT_NNI_STAT_ID_RX_TRUNCATED_FRAMES
+#define bcmolt_nni_stat_id_rx_undersize_frames                                                  BCMOLT_NNI_STAT_ID_RX_UNDERSIZE_FRAMES
+#define bcmolt_nni_stat_id_rx_fragmented_frames                                                 BCMOLT_NNI_STAT_ID_RX_FRAGMENTED_FRAMES
+#define bcmolt_nni_stat_id_rx_runt_frames                                                       BCMOLT_NNI_STAT_ID_RX_RUNT_FRAMES
+#define bcmolt_nni_stat_id_tx_frames_64                                                         BCMOLT_NNI_STAT_ID_TX_FRAMES_64
+#define bcmolt_nni_stat_id_tx_frames_65_127                                                     BCMOLT_NNI_STAT_ID_TX_FRAMES_65_127
+#define bcmolt_nni_stat_id_tx_frames_128_255                                                    BCMOLT_NNI_STAT_ID_TX_FRAMES_128_255
+#define bcmolt_nni_stat_id_tx_frames_256_511                                                    BCMOLT_NNI_STAT_ID_TX_FRAMES_256_511
+#define bcmolt_nni_stat_id_tx_frames_512_1023                                                   BCMOLT_NNI_STAT_ID_TX_FRAMES_512_1023
+#define bcmolt_nni_stat_id_tx_frames_1024_1518                                                  BCMOLT_NNI_STAT_ID_TX_FRAMES_1024_1518
+#define bcmolt_nni_stat_id_tx_frames_1519_2047                                                  BCMOLT_NNI_STAT_ID_TX_FRAMES_1519_2047
+#define bcmolt_nni_stat_id_tx_frames_2048_4095                                                  BCMOLT_NNI_STAT_ID_TX_FRAMES_2048_4095
+#define bcmolt_nni_stat_id_tx_frames_4096_9216                                                  BCMOLT_NNI_STAT_ID_TX_FRAMES_4096_9216
+#define bcmolt_nni_stat_id_tx_frames_9217_16383                                                 BCMOLT_NNI_STAT_ID_TX_FRAMES_9217_16383
+#define bcmolt_nni_stat_id_tx_frames                                                            BCMOLT_NNI_STAT_ID_TX_FRAMES
+#define bcmolt_nni_stat_id_tx_bytes                                                             BCMOLT_NNI_STAT_ID_TX_BYTES
+#define bcmolt_nni_stat_id_tx_good_frames                                                       BCMOLT_NNI_STAT_ID_TX_GOOD_FRAMES
+#define bcmolt_nni_stat_id_tx_unicast_frames                                                    BCMOLT_NNI_STAT_ID_TX_UNICAST_FRAMES
+#define bcmolt_nni_stat_id_tx_multicast_frames                                                  BCMOLT_NNI_STAT_ID_TX_MULTICAST_FRAMES
+#define bcmolt_nni_stat_id_tx_broadcast_frames                                                  BCMOLT_NNI_STAT_ID_TX_BROADCAST_FRAMES
+#define bcmolt_nni_stat_id_tx_pause_frames                                                      BCMOLT_NNI_STAT_ID_TX_PAUSE_FRAMES
+#define bcmolt_nni_stat_id_tx_pfc_frames                                                        BCMOLT_NNI_STAT_ID_TX_PFC_FRAMES
+#define bcmolt_nni_stat_id_tx_jabber_frames                                                     BCMOLT_NNI_STAT_ID_TX_JABBER_FRAMES
+#define bcmolt_nni_stat_id_tx_fcs_errors                                                        BCMOLT_NNI_STAT_ID_TX_FCS_ERRORS
+#define bcmolt_nni_stat_id_tx_control_frames                                                    BCMOLT_NNI_STAT_ID_TX_CONTROL_FRAMES
+#define bcmolt_nni_stat_id_tx_oversize_frames                                                   BCMOLT_NNI_STAT_ID_TX_OVERSIZE_FRAMES
+#define bcmolt_nni_stat_id_tx_fragmented_frames                                                 BCMOLT_NNI_STAT_ID_TX_FRAGMENTED_FRAMES
+#define bcmolt_nni_stat_id_tx_error_frames                                                      BCMOLT_NNI_STAT_ID_TX_ERROR_FRAMES
+#define bcmolt_nni_stat_id_tx_vlan_frames                                                       BCMOLT_NNI_STAT_ID_TX_VLAN_FRAMES
+#define bcmolt_nni_stat_id_tx_double_vlan_frames                                                BCMOLT_NNI_STAT_ID_TX_DOUBLE_VLAN_FRAMES
+#define bcmolt_nni_stat_id_tx_runt_frames                                                       BCMOLT_NNI_STAT_ID_TX_RUNT_FRAMES
+#define bcmolt_nni_stat_id_tx_underrun_frames                                                   BCMOLT_NNI_STAT_ID_TX_UNDERRUN_FRAMES
+#define bcmolt_nni_stat_id__num_of                                                              BCMOLT_NNI_STAT_ID__NUM_OF
+#define bcmolt_nni_stat_cfg_id_cfg                                                              BCMOLT_NNI_STAT_CFG_ID_CFG
+#define bcmolt_nni_stat_cfg_id__num_of                                                          BCMOLT_NNI_STAT_CFG_ID__NUM_OF
+#define bcmolt_nni_stat_alarm_cleared_id_stat                                                   BCMOLT_NNI_STAT_ALARM_CLEARED_ID_STAT
+#define bcmolt_nni_stat_alarm_cleared_id__num_of                                                BCMOLT_NNI_STAT_ALARM_CLEARED_ID__NUM_OF
+#define bcmolt_nni_stat_alarm_raised_id_stat                                                    BCMOLT_NNI_STAT_ALARM_RAISED_ID_STAT
+#define bcmolt_nni_stat_alarm_raised_id__num_of                                                 BCMOLT_NNI_STAT_ALARM_RAISED_ID__NUM_OF
+#define bcmolt_nni_status_changed_id_new_status                                                 BCMOLT_NNI_STATUS_CHANGED_ID_NEW_STATUS
+#define bcmolt_nni_status_changed_id_link                                                       BCMOLT_NNI_STATUS_CHANGED_ID_LINK
+#define bcmolt_nni_status_changed_id_previous_active                                            BCMOLT_NNI_STATUS_CHANGED_ID_PREVIOUS_ACTIVE
+#define bcmolt_nni_status_changed_id_new_active                                                 BCMOLT_NNI_STATUS_CHANGED_ID_NEW_ACTIVE
+#define bcmolt_nni_status_changed_id__num_of                                                    BCMOLT_NNI_STATUS_CHANGED_ID__NUM_OF
+#define bcmolt_nni_auto_cfg_id_stat_alarm_cleared                                               BCMOLT_NNI_AUTO_CFG_ID_STAT_ALARM_CLEARED
+#define bcmolt_nni_auto_cfg_id_stat_alarm_raised                                                BCMOLT_NNI_AUTO_CFG_ID_STAT_ALARM_RAISED
+#define bcmolt_nni_auto_cfg_id_status_changed                                                   BCMOLT_NNI_AUTO_CFG_ID_STATUS_CHANGED
+#define bcmolt_nni_auto_cfg_id__num_of                                                          BCMOLT_NNI_AUTO_CFG_ID__NUM_OF
+#define bcmolt_nni_serdes_key_id_pon_ni                                                         BCMOLT_NNI_SERDES_KEY_ID_PON_NI
+#define bcmolt_nni_serdes_key_id_instance                                                       BCMOLT_NNI_SERDES_KEY_ID_INSTANCE
+#define bcmolt_nni_serdes_key_id__num_of                                                        BCMOLT_NNI_SERDES_KEY_ID__NUM_OF
+#define bcmolt_nni_serdes_cfg_id_rx_vga                                                         BCMOLT_NNI_SERDES_CFG_ID_RX_VGA
+#define bcmolt_nni_serdes_cfg_id_rx_pf                                                          BCMOLT_NNI_SERDES_CFG_ID_RX_PF
+#define bcmolt_nni_serdes_cfg_id_rx_lfpf                                                        BCMOLT_NNI_SERDES_CFG_ID_RX_LFPF
+#define bcmolt_nni_serdes_cfg_id_rx_dfe1                                                        BCMOLT_NNI_SERDES_CFG_ID_RX_DFE1
+#define bcmolt_nni_serdes_cfg_id_rx_dfe2                                                        BCMOLT_NNI_SERDES_CFG_ID_RX_DFE2
+#define bcmolt_nni_serdes_cfg_id_rx_dfe3                                                        BCMOLT_NNI_SERDES_CFG_ID_RX_DFE3
+#define bcmolt_nni_serdes_cfg_id_rx_dfe4                                                        BCMOLT_NNI_SERDES_CFG_ID_RX_DFE4
+#define bcmolt_nni_serdes_cfg_id_rx_dfe5                                                        BCMOLT_NNI_SERDES_CFG_ID_RX_DFE5
+#define bcmolt_nni_serdes_cfg_id_tx_pre                                                         BCMOLT_NNI_SERDES_CFG_ID_TX_PRE
+#define bcmolt_nni_serdes_cfg_id_tx_main                                                        BCMOLT_NNI_SERDES_CFG_ID_TX_MAIN
+#define bcmolt_nni_serdes_cfg_id_tx_post1                                                       BCMOLT_NNI_SERDES_CFG_ID_TX_POST1
+#define bcmolt_nni_serdes_cfg_id_tx_post2                                                       BCMOLT_NNI_SERDES_CFG_ID_TX_POST2
+#define bcmolt_nni_serdes_cfg_id_tx_post3                                                       BCMOLT_NNI_SERDES_CFG_ID_TX_POST3
+#define bcmolt_nni_serdes_cfg_id_tx_amp                                                         BCMOLT_NNI_SERDES_CFG_ID_TX_AMP
+#define bcmolt_nni_serdes_cfg_id__num_of                                                        BCMOLT_NNI_SERDES_CFG_ID__NUM_OF
+#define bcmolt_software_error_key_id_reserved                                                   BCMOLT_SOFTWARE_ERROR_KEY_ID_RESERVED
+#define bcmolt_software_error_key_id_idx                                                        BCMOLT_SOFTWARE_ERROR_KEY_ID_IDX
+#define bcmolt_software_error_key_id__num_of                                                    BCMOLT_SOFTWARE_ERROR_KEY_ID__NUM_OF
+#define bcmolt_software_error_cfg_id_entry                                                      BCMOLT_SOFTWARE_ERROR_CFG_ID_ENTRY
+#define bcmolt_software_error_cfg_id__num_of                                                    BCMOLT_SOFTWARE_ERROR_CFG_ID__NUM_OF
+#define bcmolt_trx_calibration_key_id_reserved                                                  BCMOLT_TRX_CALIBRATION_KEY_ID_RESERVED
+#define bcmolt_trx_calibration_key_id__num_of                                                   BCMOLT_TRX_CALIBRATION_KEY_ID__NUM_OF
+#define bcmolt_trx_calibration_capture_window_and_statistic_completed_id_data_window            BCMOLT_TRX_CALIBRATION_CAPTURE_WINDOW_AND_STATISTIC_COMPLETED_ID_DATA_WINDOW
+#define bcmolt_trx_calibration_capture_window_and_statistic_completed_id_strobe_window          BCMOLT_TRX_CALIBRATION_CAPTURE_WINDOW_AND_STATISTIC_COMPLETED_ID_STROBE_WINDOW
+#define bcmolt_trx_calibration_capture_window_and_statistic_completed_id_edge_rise_min_min      BCMOLT_TRX_CALIBRATION_CAPTURE_WINDOW_AND_STATISTIC_COMPLETED_ID_EDGE_RISE_MIN_MIN
+#define bcmolt_trx_calibration_capture_window_and_statistic_completed_id_edge_rise_min_max      BCMOLT_TRX_CALIBRATION_CAPTURE_WINDOW_AND_STATISTIC_COMPLETED_ID_EDGE_RISE_MIN_MAX
+#define bcmolt_trx_calibration_capture_window_and_statistic_completed_id_edge_rise_max_min      BCMOLT_TRX_CALIBRATION_CAPTURE_WINDOW_AND_STATISTIC_COMPLETED_ID_EDGE_RISE_MAX_MIN
+#define bcmolt_trx_calibration_capture_window_and_statistic_completed_id_edge_rise_max_max      BCMOLT_TRX_CALIBRATION_CAPTURE_WINDOW_AND_STATISTIC_COMPLETED_ID_EDGE_RISE_MAX_MAX
+#define bcmolt_trx_calibration_capture_window_and_statistic_completed_id_edge_fall_min_min      BCMOLT_TRX_CALIBRATION_CAPTURE_WINDOW_AND_STATISTIC_COMPLETED_ID_EDGE_FALL_MIN_MIN
+#define bcmolt_trx_calibration_capture_window_and_statistic_completed_id_edge_fall_min_max      BCMOLT_TRX_CALIBRATION_CAPTURE_WINDOW_AND_STATISTIC_COMPLETED_ID_EDGE_FALL_MIN_MAX
+#define bcmolt_trx_calibration_capture_window_and_statistic_completed_id_edge_fall_max_min      BCMOLT_TRX_CALIBRATION_CAPTURE_WINDOW_AND_STATISTIC_COMPLETED_ID_EDGE_FALL_MAX_MIN
+#define bcmolt_trx_calibration_capture_window_and_statistic_completed_id_edge_fall_max_max      BCMOLT_TRX_CALIBRATION_CAPTURE_WINDOW_AND_STATISTIC_COMPLETED_ID_EDGE_FALL_MAX_MAX
+#define bcmolt_trx_calibration_capture_window_and_statistic_completed_id_result                 BCMOLT_TRX_CALIBRATION_CAPTURE_WINDOW_AND_STATISTIC_COMPLETED_ID_RESULT
+#define bcmolt_trx_calibration_capture_window_and_statistic_completed_id__num_of                BCMOLT_TRX_CALIBRATION_CAPTURE_WINDOW_AND_STATISTIC_COMPLETED_ID__NUM_OF
+#define bcmolt_trx_calibration_auto_cfg_id_capture_window_and_statistic_completed               BCMOLT_TRX_CALIBRATION_AUTO_CFG_ID_CAPTURE_WINDOW_AND_STATISTIC_COMPLETED
+#define bcmolt_trx_calibration_auto_cfg_id__num_of                                              BCMOLT_TRX_CALIBRATION_AUTO_CFG_ID__NUM_OF
+#define bcmolt_trx_calibration_start_capture_window_id_pon_ni                                   BCMOLT_TRX_CALIBRATION_START_CAPTURE_WINDOW_ID_PON_NI
+#define bcmolt_trx_calibration_start_capture_window_id_trigger                                  BCMOLT_TRX_CALIBRATION_START_CAPTURE_WINDOW_ID_TRIGGER
+#define bcmolt_trx_calibration_start_capture_window_id_strobe                                   BCMOLT_TRX_CALIBRATION_START_CAPTURE_WINDOW_ID_STROBE
+#define bcmolt_trx_calibration_start_capture_window_id_window_mode                              BCMOLT_TRX_CALIBRATION_START_CAPTURE_WINDOW_ID_WINDOW_MODE
+#define bcmolt_trx_calibration_start_capture_window_id_onu_id                                   BCMOLT_TRX_CALIBRATION_START_CAPTURE_WINDOW_ID_ONU_ID
+#define bcmolt_trx_calibration_start_capture_window_id_trigger_position                         BCMOLT_TRX_CALIBRATION_START_CAPTURE_WINDOW_ID_TRIGGER_POSITION
+#define bcmolt_trx_calibration_start_capture_window_id_stop_due_to_corrupt_strobe               BCMOLT_TRX_CALIBRATION_START_CAPTURE_WINDOW_ID_STOP_DUE_TO_CORRUPT_STROBE
+#define bcmolt_trx_calibration_start_capture_window_id_start_offset                             BCMOLT_TRX_CALIBRATION_START_CAPTURE_WINDOW_ID_START_OFFSET
+#define bcmolt_trx_calibration_start_capture_window_id_end_offset                               BCMOLT_TRX_CALIBRATION_START_CAPTURE_WINDOW_ID_END_OFFSET
+#define bcmolt_trx_calibration_start_capture_window_id_number_of_cycles                         BCMOLT_TRX_CALIBRATION_START_CAPTURE_WINDOW_ID_NUMBER_OF_CYCLES
+#define bcmolt_trx_calibration_start_capture_window_id__num_of                                  BCMOLT_TRX_CALIBRATION_START_CAPTURE_WINDOW_ID__NUM_OF
+#define bcmolt_trx_calibration_stop_capture_window_id_pon_ni                                    BCMOLT_TRX_CALIBRATION_STOP_CAPTURE_WINDOW_ID_PON_NI
+#define bcmolt_trx_calibration_stop_capture_window_id__num_of                                   BCMOLT_TRX_CALIBRATION_STOP_CAPTURE_WINDOW_ID__NUM_OF
+#define bcmolt_xgpon_alloc_key_id_pon_ni                                                        BCMOLT_XGPON_ALLOC_KEY_ID_PON_NI
+#define bcmolt_xgpon_alloc_key_id_alloc_id                                                      BCMOLT_XGPON_ALLOC_KEY_ID_ALLOC_ID
+#define bcmolt_xgpon_alloc_key_id__num_of                                                       BCMOLT_XGPON_ALLOC_KEY_ID__NUM_OF
+#define bcmolt_xgpon_alloc_cfg_id_state                                                         BCMOLT_XGPON_ALLOC_CFG_ID_STATE
+#define bcmolt_xgpon_alloc_cfg_id_sla                                                           BCMOLT_XGPON_ALLOC_CFG_ID_SLA
+#define bcmolt_xgpon_alloc_cfg_id_onu_id                                                        BCMOLT_XGPON_ALLOC_CFG_ID_ONU_ID
+#define bcmolt_xgpon_alloc_cfg_id_collect_stats                                                 BCMOLT_XGPON_ALLOC_CFG_ID_COLLECT_STATS
+#define bcmolt_xgpon_alloc_cfg_id__num_of                                                       BCMOLT_XGPON_ALLOC_CFG_ID__NUM_OF
+#define bcmolt_xgpon_alloc_stat_id_rx_bytes                                                     BCMOLT_XGPON_ALLOC_STAT_ID_RX_BYTES
+#define bcmolt_xgpon_alloc_stat_id__num_of                                                      BCMOLT_XGPON_ALLOC_STAT_ID__NUM_OF
+#define bcmolt_xgpon_alloc_stat_cfg_id_cfg                                                      BCMOLT_XGPON_ALLOC_STAT_CFG_ID_CFG
+#define bcmolt_xgpon_alloc_stat_cfg_id__num_of                                                  BCMOLT_XGPON_ALLOC_STAT_CFG_ID__NUM_OF
+#define bcmolt_xgpon_alloc_configuration_completed_id_status                                    BCMOLT_XGPON_ALLOC_CONFIGURATION_COMPLETED_ID_STATUS
+#define bcmolt_xgpon_alloc_configuration_completed_id_new_state                                 BCMOLT_XGPON_ALLOC_CONFIGURATION_COMPLETED_ID_NEW_STATE
+#define bcmolt_xgpon_alloc_configuration_completed_id__num_of                                   BCMOLT_XGPON_ALLOC_CONFIGURATION_COMPLETED_ID__NUM_OF
+#define bcmolt_xgpon_alloc_get_alloc_stats_completed_id_status                                  BCMOLT_XGPON_ALLOC_GET_ALLOC_STATS_COMPLETED_ID_STATUS
+#define bcmolt_xgpon_alloc_get_alloc_stats_completed_id_average_nsr_used                        BCMOLT_XGPON_ALLOC_GET_ALLOC_STATS_COMPLETED_ID_AVERAGE_NSR_USED
+#define bcmolt_xgpon_alloc_get_alloc_stats_completed_id_average_nsr_allocated                   BCMOLT_XGPON_ALLOC_GET_ALLOC_STATS_COMPLETED_ID_AVERAGE_NSR_ALLOCATED
+#define bcmolt_xgpon_alloc_get_alloc_stats_completed_id_average_sr_report                       BCMOLT_XGPON_ALLOC_GET_ALLOC_STATS_COMPLETED_ID_AVERAGE_SR_REPORT
+#define bcmolt_xgpon_alloc_get_alloc_stats_completed_id__num_of                                 BCMOLT_XGPON_ALLOC_GET_ALLOC_STATS_COMPLETED_ID__NUM_OF
+#define bcmolt_xgpon_alloc_stat_alarm_cleared_id_stat                                           BCMOLT_XGPON_ALLOC_STAT_ALARM_CLEARED_ID_STAT
+#define bcmolt_xgpon_alloc_stat_alarm_cleared_id__num_of                                        BCMOLT_XGPON_ALLOC_STAT_ALARM_CLEARED_ID__NUM_OF
+#define bcmolt_xgpon_alloc_stat_alarm_raised_id_stat                                            BCMOLT_XGPON_ALLOC_STAT_ALARM_RAISED_ID_STAT
+#define bcmolt_xgpon_alloc_stat_alarm_raised_id__num_of                                         BCMOLT_XGPON_ALLOC_STAT_ALARM_RAISED_ID__NUM_OF
+#define bcmolt_xgpon_alloc_auto_cfg_id_configuration_completed                                  BCMOLT_XGPON_ALLOC_AUTO_CFG_ID_CONFIGURATION_COMPLETED
+#define bcmolt_xgpon_alloc_auto_cfg_id_get_alloc_stats_completed                                BCMOLT_XGPON_ALLOC_AUTO_CFG_ID_GET_ALLOC_STATS_COMPLETED
+#define bcmolt_xgpon_alloc_auto_cfg_id_stat_alarm_cleared                                       BCMOLT_XGPON_ALLOC_AUTO_CFG_ID_STAT_ALARM_CLEARED
+#define bcmolt_xgpon_alloc_auto_cfg_id_stat_alarm_raised                                        BCMOLT_XGPON_ALLOC_AUTO_CFG_ID_STAT_ALARM_RAISED
+#define bcmolt_xgpon_alloc_auto_cfg_id__num_of                                                  BCMOLT_XGPON_ALLOC_AUTO_CFG_ID__NUM_OF
+#define bcmolt_xgpon_alloc_get_stats_id_num_of_cycles                                           BCMOLT_XGPON_ALLOC_GET_STATS_ID_NUM_OF_CYCLES
+#define bcmolt_xgpon_alloc_get_stats_id__num_of                                                 BCMOLT_XGPON_ALLOC_GET_STATS_ID__NUM_OF
+#define bcmolt_xgpon_alloc_set_state_id_state                                                   BCMOLT_XGPON_ALLOC_SET_STATE_ID_STATE
+#define bcmolt_xgpon_alloc_set_state_id__num_of                                                 BCMOLT_XGPON_ALLOC_SET_STATE_ID__NUM_OF
+#define bcmolt_xgpon_gem_port_key_id_pon_ni                                                     BCMOLT_XGPON_GEM_PORT_KEY_ID_PON_NI
+#define bcmolt_xgpon_gem_port_key_id_gem_port_id                                                BCMOLT_XGPON_GEM_PORT_KEY_ID_GEM_PORT_ID
+#define bcmolt_xgpon_gem_port_key_id__num_of                                                    BCMOLT_XGPON_GEM_PORT_KEY_ID__NUM_OF
+#define bcmolt_xgpon_gem_port_cfg_id_configuration                                              BCMOLT_XGPON_GEM_PORT_CFG_ID_CONFIGURATION
+#define bcmolt_xgpon_gem_port_cfg_id_onu_id                                                     BCMOLT_XGPON_GEM_PORT_CFG_ID_ONU_ID
+#define bcmolt_xgpon_gem_port_cfg_id_gem_port_state                                             BCMOLT_XGPON_GEM_PORT_CFG_ID_GEM_PORT_STATE
+#define bcmolt_xgpon_gem_port_cfg_id_encryption_mode                                            BCMOLT_XGPON_GEM_PORT_CFG_ID_ENCRYPTION_MODE
+#define bcmolt_xgpon_gem_port_cfg_id_upstream_destination_queue                                 BCMOLT_XGPON_GEM_PORT_CFG_ID_UPSTREAM_DESTINATION_QUEUE
+#define bcmolt_xgpon_gem_port_cfg_id_control                                                    BCMOLT_XGPON_GEM_PORT_CFG_ID_CONTROL
+#define bcmolt_xgpon_gem_port_cfg_id__num_of                                                    BCMOLT_XGPON_GEM_PORT_CFG_ID__NUM_OF
+#define bcmolt_xgpon_gem_port_stat_id_tx_bytes                                                  BCMOLT_XGPON_GEM_PORT_STAT_ID_TX_BYTES
+#define bcmolt_xgpon_gem_port_stat_id_tx_packets                                                BCMOLT_XGPON_GEM_PORT_STAT_ID_TX_PACKETS
+#define bcmolt_xgpon_gem_port_stat_id_rx_packets                                                BCMOLT_XGPON_GEM_PORT_STAT_ID_RX_PACKETS
+#define bcmolt_xgpon_gem_port_stat_id_rx_bytes                                                  BCMOLT_XGPON_GEM_PORT_STAT_ID_RX_BYTES
+#define bcmolt_xgpon_gem_port_stat_id__num_of                                                   BCMOLT_XGPON_GEM_PORT_STAT_ID__NUM_OF
+#define bcmolt_xgpon_gem_port_stat_cfg_id_cfg                                                   BCMOLT_XGPON_GEM_PORT_STAT_CFG_ID_CFG
+#define bcmolt_xgpon_gem_port_stat_cfg_id__num_of                                               BCMOLT_XGPON_GEM_PORT_STAT_CFG_ID__NUM_OF
+#define bcmolt_xgpon_gem_port_stat_alarm_cleared_id_stat                                        BCMOLT_XGPON_GEM_PORT_STAT_ALARM_CLEARED_ID_STAT
+#define bcmolt_xgpon_gem_port_stat_alarm_cleared_id__num_of                                     BCMOLT_XGPON_GEM_PORT_STAT_ALARM_CLEARED_ID__NUM_OF
+#define bcmolt_xgpon_gem_port_stat_alarm_raised_id_stat                                         BCMOLT_XGPON_GEM_PORT_STAT_ALARM_RAISED_ID_STAT
+#define bcmolt_xgpon_gem_port_stat_alarm_raised_id__num_of                                      BCMOLT_XGPON_GEM_PORT_STAT_ALARM_RAISED_ID__NUM_OF
+#define bcmolt_xgpon_gem_port_auto_cfg_id_stat_alarm_cleared                                    BCMOLT_XGPON_GEM_PORT_AUTO_CFG_ID_STAT_ALARM_CLEARED
+#define bcmolt_xgpon_gem_port_auto_cfg_id_stat_alarm_raised                                     BCMOLT_XGPON_GEM_PORT_AUTO_CFG_ID_STAT_ALARM_RAISED
+#define bcmolt_xgpon_gem_port_auto_cfg_id__num_of                                               BCMOLT_XGPON_GEM_PORT_AUTO_CFG_ID__NUM_OF
+#define bcmolt_xgpon_iwf_key_id_pon_ni                                                          BCMOLT_XGPON_IWF_KEY_ID_PON_NI
+#define bcmolt_xgpon_iwf_key_id__num_of                                                         BCMOLT_XGPON_IWF_KEY_ID__NUM_OF
+#define bcmolt_xgpon_iwf_cfg_id_us_otag_direct_tpid                                             BCMOLT_XGPON_IWF_CFG_ID_US_OTAG_DIRECT_TPID
+#define bcmolt_xgpon_iwf_cfg_id_ds_tpid                                                         BCMOLT_XGPON_IWF_CFG_ID_DS_TPID
+#define bcmolt_xgpon_iwf_cfg_id__num_of                                                         BCMOLT_XGPON_IWF_CFG_ID__NUM_OF
+#define bcmolt_xgpon_ni_key_id_pon_ni                                                           BCMOLT_XGPON_NI_KEY_ID_PON_NI
+#define bcmolt_xgpon_ni_key_id__num_of                                                          BCMOLT_XGPON_NI_KEY_ID__NUM_OF
+#define bcmolt_xgpon_ni_cfg_id_hw_pon_id                                                        BCMOLT_XGPON_NI_CFG_ID_HW_PON_ID
+#define bcmolt_xgpon_ni_cfg_id_available_bandwidth                                              BCMOLT_XGPON_NI_CFG_ID_AVAILABLE_BANDWIDTH
+#define bcmolt_xgpon_ni_cfg_id_number_of_active_onus                                            BCMOLT_XGPON_NI_CFG_ID_NUMBER_OF_ACTIVE_ONUS
+#define bcmolt_xgpon_ni_cfg_id_pon_status                                                       BCMOLT_XGPON_NI_CFG_ID_PON_STATUS
+#define bcmolt_xgpon_ni_cfg_id_pon_distance                                                     BCMOLT_XGPON_NI_CFG_ID_PON_DISTANCE
+#define bcmolt_xgpon_ni_cfg_id_ranging_window_size                                              BCMOLT_XGPON_NI_CFG_ID_RANGING_WINDOW_SIZE
+#define bcmolt_xgpon_ni_cfg_id_eqd_cycles_number                                                BCMOLT_XGPON_NI_CFG_ID_EQD_CYCLES_NUMBER
+#define bcmolt_xgpon_ni_cfg_id_drift_control                                                    BCMOLT_XGPON_NI_CFG_ID_DRIFT_CONTROL
+#define bcmolt_xgpon_ni_cfg_id_los_alarm_threshold                                              BCMOLT_XGPON_NI_CFG_ID_LOS_ALARM_THRESHOLD
+#define bcmolt_xgpon_ni_cfg_id_los_initial_value                                                BCMOLT_XGPON_NI_CFG_ID_LOS_INITIAL_VALUE
+#define bcmolt_xgpon_ni_cfg_id_onu_alarms_thresholds                                            BCMOLT_XGPON_NI_CFG_ID_ONU_ALARMS_THRESHOLDS
+#define bcmolt_xgpon_ni_cfg_id_ber_monitor                                                      BCMOLT_XGPON_NI_CFG_ID_BER_MONITOR
+#define bcmolt_xgpon_ni_cfg_id_onu_activation                                                   BCMOLT_XGPON_NI_CFG_ID_ONU_ACTIVATION
+#define bcmolt_xgpon_ni_cfg_id_sn_acquisition                                                   BCMOLT_XGPON_NI_CFG_ID_SN_ACQUISITION
+#define bcmolt_xgpon_ni_cfg_id_key_exchange                                                     BCMOLT_XGPON_NI_CFG_ID_KEY_EXCHANGE
+#define bcmolt_xgpon_ni_cfg_id_protection_switching                                             BCMOLT_XGPON_NI_CFG_ID_PROTECTION_SWITCHING
+#define bcmolt_xgpon_ni_cfg_id_protection_switching_debug                                       BCMOLT_XGPON_NI_CFG_ID_PROTECTION_SWITCHING_DEBUG
+#define bcmolt_xgpon_ni_cfg_id_cbr_rt_allocation_profile                                        BCMOLT_XGPON_NI_CFG_ID_CBR_RT_ALLOCATION_PROFILE
+#define bcmolt_xgpon_ni_cfg_id_cbr_nrt_allocation_profile                                       BCMOLT_XGPON_NI_CFG_ID_CBR_NRT_ALLOCATION_PROFILE
+#define bcmolt_xgpon_ni_cfg_id_power_management                                                 BCMOLT_XGPON_NI_CFG_ID_POWER_MANAGEMENT
+#define bcmolt_xgpon_ni_cfg_id_rogue_onu_detection_process                                      BCMOLT_XGPON_NI_CFG_ID_ROGUE_ONU_DETECTION_PROCESS
+#define bcmolt_xgpon_ni_cfg_id_periodic_standby_pon_monitoring                                  BCMOLT_XGPON_NI_CFG_ID_PERIODIC_STANDBY_PON_MONITORING
+#define bcmolt_xgpon_ni_cfg_id_dba_mode                                                         BCMOLT_XGPON_NI_CFG_ID_DBA_MODE
+#define bcmolt_xgpon_ni_cfg_id_ploam_handling                                                   BCMOLT_XGPON_NI_CFG_ID_PLOAM_HANDLING
+#define bcmolt_xgpon_ni_cfg_id_min_data_alloc_id                                                BCMOLT_XGPON_NI_CFG_ID_MIN_DATA_ALLOC_ID
+#define bcmolt_xgpon_ni_cfg_id_min_data_gem_port_id                                             BCMOLT_XGPON_NI_CFG_ID_MIN_DATA_GEM_PORT_ID
+#define bcmolt_xgpon_ni_cfg_id_multicast_key                                                    BCMOLT_XGPON_NI_CFG_ID_MULTICAST_KEY
+#define bcmolt_xgpon_ni_cfg_id_prbs_checker                                                     BCMOLT_XGPON_NI_CFG_ID_PRBS_CHECKER
+#define bcmolt_xgpon_ni_cfg_id_prbs_generator                                                   BCMOLT_XGPON_NI_CFG_ID_PRBS_GENERATOR
+#define bcmolt_xgpon_ni_cfg_id_prbs_status                                                      BCMOLT_XGPON_NI_CFG_ID_PRBS_STATUS
+#define bcmolt_xgpon_ni_cfg_id_automatic_onu_deactivation                                       BCMOLT_XGPON_NI_CFG_ID_AUTOMATIC_ONU_DEACTIVATION
+#define bcmolt_xgpon_ni_cfg_id_us_bandwidth_limit                                               BCMOLT_XGPON_NI_CFG_ID_US_BANDWIDTH_LIMIT
+#define bcmolt_xgpon_ni_cfg_id_all_onus                                                         BCMOLT_XGPON_NI_CFG_ID_ALL_ONUS
+#define bcmolt_xgpon_ni_cfg_id_all_mcast_gem_ports                                              BCMOLT_XGPON_NI_CFG_ID_ALL_MCAST_GEM_PORTS
+#define bcmolt_xgpon_ni_cfg_id_debug                                                            BCMOLT_XGPON_NI_CFG_ID_DEBUG
+#define bcmolt_xgpon_ni_cfg_id_onu_upgrade_params                                               BCMOLT_XGPON_NI_CFG_ID_ONU_UPGRADE_PARAMS
+#define bcmolt_xgpon_ni_cfg_id_ds_fec_mode                                                      BCMOLT_XGPON_NI_CFG_ID_DS_FEC_MODE
+#define bcmolt_xgpon_ni_cfg_id_dba_type                                                         BCMOLT_XGPON_NI_CFG_ID_DBA_TYPE
+#define bcmolt_xgpon_ni_cfg_id_onu_tuning                                                       BCMOLT_XGPON_NI_CFG_ID_ONU_TUNING
+#define bcmolt_xgpon_ni_cfg_id__num_of                                                          BCMOLT_XGPON_NI_CFG_ID__NUM_OF
+#define bcmolt_xgpon_ni_stat_id_fec_codewords                                                   BCMOLT_XGPON_NI_STAT_ID_FEC_CODEWORDS
+#define bcmolt_xgpon_ni_stat_id_bip32_bytes                                                     BCMOLT_XGPON_NI_STAT_ID_BIP32_BYTES
+#define bcmolt_xgpon_ni_stat_id_bip32_errors                                                    BCMOLT_XGPON_NI_STAT_ID_BIP32_ERRORS
+#define bcmolt_xgpon_ni_stat_id_rx_xgtc_headers                                                 BCMOLT_XGPON_NI_STAT_ID_RX_XGTC_HEADERS
+#define bcmolt_xgpon_ni_stat_id_rx_xgtc_corrected                                               BCMOLT_XGPON_NI_STAT_ID_RX_XGTC_CORRECTED
+#define bcmolt_xgpon_ni_stat_id_rx_xgtc_uncorrected                                             BCMOLT_XGPON_NI_STAT_ID_RX_XGTC_UNCORRECTED
+#define bcmolt_xgpon_ni_stat_id_rx_xgem                                                         BCMOLT_XGPON_NI_STAT_ID_RX_XGEM
+#define bcmolt_xgpon_ni_stat_id_rx_xgem_dropped                                                 BCMOLT_XGPON_NI_STAT_ID_RX_XGEM_DROPPED
+#define bcmolt_xgpon_ni_stat_id_rx_xgem_idle                                                    BCMOLT_XGPON_NI_STAT_ID_RX_XGEM_IDLE
+#define bcmolt_xgpon_ni_stat_id_rx_xgem_corrected                                               BCMOLT_XGPON_NI_STAT_ID_RX_XGEM_CORRECTED
+#define bcmolt_xgpon_ni_stat_id_rx_crc_error                                                    BCMOLT_XGPON_NI_STAT_ID_RX_CRC_ERROR
+#define bcmolt_xgpon_ni_stat_id_rx_fragment_error                                               BCMOLT_XGPON_NI_STAT_ID_RX_FRAGMENT_ERROR
+#define bcmolt_xgpon_ni_stat_id_rx_packets_dropped                                              BCMOLT_XGPON_NI_STAT_ID_RX_PACKETS_DROPPED
+#define bcmolt_xgpon_ni_stat_id_rx_dropped_too_short                                            BCMOLT_XGPON_NI_STAT_ID_RX_DROPPED_TOO_SHORT
+#define bcmolt_xgpon_ni_stat_id_rx_dropped_too_long                                             BCMOLT_XGPON_NI_STAT_ID_RX_DROPPED_TOO_LONG
+#define bcmolt_xgpon_ni_stat_id_rx_key_error                                                    BCMOLT_XGPON_NI_STAT_ID_RX_KEY_ERROR
+#define bcmolt_xgpon_ni_stat_id_tx_ploams                                                       BCMOLT_XGPON_NI_STAT_ID_TX_PLOAMS
+#define bcmolt_xgpon_ni_stat_id_rx_ploams_dropped                                               BCMOLT_XGPON_NI_STAT_ID_RX_PLOAMS_DROPPED
+#define bcmolt_xgpon_ni_stat_id_rx_allocations_valid                                            BCMOLT_XGPON_NI_STAT_ID_RX_ALLOCATIONS_VALID
+#define bcmolt_xgpon_ni_stat_id_rx_allocations_invalid                                          BCMOLT_XGPON_NI_STAT_ID_RX_ALLOCATIONS_INVALID
+#define bcmolt_xgpon_ni_stat_id_rx_allocations_disabled                                         BCMOLT_XGPON_NI_STAT_ID_RX_ALLOCATIONS_DISABLED
+#define bcmolt_xgpon_ni_stat_id_rx_ploams                                                       BCMOLT_XGPON_NI_STAT_ID_RX_PLOAMS
+#define bcmolt_xgpon_ni_stat_id_rx_ploams_non_idle                                              BCMOLT_XGPON_NI_STAT_ID_RX_PLOAMS_NON_IDLE
+#define bcmolt_xgpon_ni_stat_id_rx_ploams_error                                                 BCMOLT_XGPON_NI_STAT_ID_RX_PLOAMS_ERROR
+#define bcmolt_xgpon_ni_stat_id_rx_cpu                                                          BCMOLT_XGPON_NI_STAT_ID_RX_CPU
+#define bcmolt_xgpon_ni_stat_id_rx_omci                                                         BCMOLT_XGPON_NI_STAT_ID_RX_OMCI
+#define bcmolt_xgpon_ni_stat_id_rx_omci_packets_crc_error                                       BCMOLT_XGPON_NI_STAT_ID_RX_OMCI_PACKETS_CRC_ERROR
+#define bcmolt_xgpon_ni_stat_id_tx_packets                                                      BCMOLT_XGPON_NI_STAT_ID_TX_PACKETS
+#define bcmolt_xgpon_ni_stat_id_tx_xgem                                                         BCMOLT_XGPON_NI_STAT_ID_TX_XGEM
+#define bcmolt_xgpon_ni_stat_id_tx_cpu                                                          BCMOLT_XGPON_NI_STAT_ID_TX_CPU
+#define bcmolt_xgpon_ni_stat_id_tx_omci                                                         BCMOLT_XGPON_NI_STAT_ID_TX_OMCI
+#define bcmolt_xgpon_ni_stat_id_tx_cpu_omci_packets_dropped                                     BCMOLT_XGPON_NI_STAT_ID_TX_CPU_OMCI_PACKETS_DROPPED
+#define bcmolt_xgpon_ni_stat_id_tx_dropped_illegal_length                                       BCMOLT_XGPON_NI_STAT_ID_TX_DROPPED_ILLEGAL_LENGTH
+#define bcmolt_xgpon_ni_stat_id_tx_dropped_tpid_miss                                            BCMOLT_XGPON_NI_STAT_ID_TX_DROPPED_TPID_MISS
+#define bcmolt_xgpon_ni_stat_id_tx_dropped_vid_miss                                             BCMOLT_XGPON_NI_STAT_ID_TX_DROPPED_VID_MISS
+#define bcmolt_xgpon_ni_stat_id__num_of                                                         BCMOLT_XGPON_NI_STAT_ID__NUM_OF
+#define bcmolt_xgpon_ni_stat_cfg_id_cfg                                                         BCMOLT_XGPON_NI_STAT_CFG_ID_CFG
+#define bcmolt_xgpon_ni_stat_cfg_id__num_of                                                     BCMOLT_XGPON_NI_STAT_CFG_ID__NUM_OF
+#define bcmolt_xgpon_ni_activate_all_onus_completed_id__num_of                                  BCMOLT_XGPON_NI_ACTIVATE_ALL_ONUS_COMPLETED_ID__NUM_OF
+#define bcmolt_xgpon_ni_cpu_packets_failure_id_error                                            BCMOLT_XGPON_NI_CPU_PACKETS_FAILURE_ID_ERROR
+#define bcmolt_xgpon_ni_cpu_packets_failure_id_gem_port_id                                      BCMOLT_XGPON_NI_CPU_PACKETS_FAILURE_ID_GEM_PORT_ID
+#define bcmolt_xgpon_ni_cpu_packets_failure_id__num_of                                          BCMOLT_XGPON_NI_CPU_PACKETS_FAILURE_ID__NUM_OF
+#define bcmolt_xgpon_ni_deactivate_all_onus_completed_id__num_of                                BCMOLT_XGPON_NI_DEACTIVATE_ALL_ONUS_COMPLETED_ID__NUM_OF
+#define bcmolt_xgpon_ni_disable_all_onus_completed_id__num_of                                   BCMOLT_XGPON_NI_DISABLE_ALL_ONUS_COMPLETED_ID__NUM_OF
+#define bcmolt_xgpon_ni_enable_all_onus_completed_id__num_of                                    BCMOLT_XGPON_NI_ENABLE_ALL_ONUS_COMPLETED_ID__NUM_OF
+#define bcmolt_xgpon_ni_los_id_status                                                           BCMOLT_XGPON_NI_LOS_ID_STATUS
+#define bcmolt_xgpon_ni_los_id__num_of                                                          BCMOLT_XGPON_NI_LOS_ID__NUM_OF
+#define bcmolt_xgpon_ni_onu_discovered_id_serial_number                                         BCMOLT_XGPON_NI_ONU_DISCOVERED_ID_SERIAL_NUMBER
+#define bcmolt_xgpon_ni_onu_discovered_id_ranging_time                                          BCMOLT_XGPON_NI_ONU_DISCOVERED_ID_RANGING_TIME
+#define bcmolt_xgpon_ni_onu_discovered_id_onu_id                                                BCMOLT_XGPON_NI_ONU_DISCOVERED_ID_ONU_ID
+#define bcmolt_xgpon_ni_onu_discovered_id_upstream_line_rate_capabilities                       BCMOLT_XGPON_NI_ONU_DISCOVERED_ID_UPSTREAM_LINE_RATE_CAPABILITIES
+#define bcmolt_xgpon_ni_onu_discovered_id_current_downstream_pon_id                             BCMOLT_XGPON_NI_ONU_DISCOVERED_ID_CURRENT_DOWNSTREAM_PON_ID
+#define bcmolt_xgpon_ni_onu_discovered_id_current_upstream_pon_id                               BCMOLT_XGPON_NI_ONU_DISCOVERED_ID_CURRENT_UPSTREAM_PON_ID
+#define bcmolt_xgpon_ni_onu_discovered_id_calibration_record                                    BCMOLT_XGPON_NI_ONU_DISCOVERED_ID_CALIBRATION_RECORD
+#define bcmolt_xgpon_ni_onu_discovered_id_tuning_granularity                                    BCMOLT_XGPON_NI_ONU_DISCOVERED_ID_TUNING_GRANULARITY
+#define bcmolt_xgpon_ni_onu_discovered_id_step_tuning_time                                      BCMOLT_XGPON_NI_ONU_DISCOVERED_ID_STEP_TUNING_TIME
+#define bcmolt_xgpon_ni_onu_discovered_id_attenuation                                           BCMOLT_XGPON_NI_ONU_DISCOVERED_ID_ATTENUATION
+#define bcmolt_xgpon_ni_onu_discovered_id_power_levelling_capabilities                          BCMOLT_XGPON_NI_ONU_DISCOVERED_ID_POWER_LEVELLING_CAPABILITIES
+#define bcmolt_xgpon_ni_onu_discovered_id__num_of                                               BCMOLT_XGPON_NI_ONU_DISCOVERED_ID__NUM_OF
+#define bcmolt_xgpon_ni_onu_upgrade_complete_id_status                                          BCMOLT_XGPON_NI_ONU_UPGRADE_COMPLETE_ID_STATUS
+#define bcmolt_xgpon_ni_onu_upgrade_complete_id_list_of_failed_entities                         BCMOLT_XGPON_NI_ONU_UPGRADE_COMPLETE_ID_LIST_OF_FAILED_ENTITIES
+#define bcmolt_xgpon_ni_onu_upgrade_complete_id__num_of                                         BCMOLT_XGPON_NI_ONU_UPGRADE_COMPLETE_ID__NUM_OF
+#define bcmolt_xgpon_ni_protection_switching_onus_ranged_id_onus                                BCMOLT_XGPON_NI_PROTECTION_SWITCHING_ONUS_RANGED_ID_ONUS
+#define bcmolt_xgpon_ni_protection_switching_onus_ranged_id__num_of                             BCMOLT_XGPON_NI_PROTECTION_SWITCHING_ONUS_RANGED_ID__NUM_OF
+#define bcmolt_xgpon_ni_protection_switching_switchover_completed_id_result                     BCMOLT_XGPON_NI_PROTECTION_SWITCHING_SWITCHOVER_COMPLETED_ID_RESULT
+#define bcmolt_xgpon_ni_protection_switching_switchover_completed_id__num_of                    BCMOLT_XGPON_NI_PROTECTION_SWITCHING_SWITCHOVER_COMPLETED_ID__NUM_OF
+#define bcmolt_xgpon_ni_protection_switching_traffic_resume_id_result                           BCMOLT_XGPON_NI_PROTECTION_SWITCHING_TRAFFIC_RESUME_ID_RESULT
+#define bcmolt_xgpon_ni_protection_switching_traffic_resume_id__num_of                          BCMOLT_XGPON_NI_PROTECTION_SWITCHING_TRAFFIC_RESUME_ID__NUM_OF
+#define bcmolt_xgpon_ni_rogue_detection_completed_id_window_type                                BCMOLT_XGPON_NI_ROGUE_DETECTION_COMPLETED_ID_WINDOW_TYPE
+#define bcmolt_xgpon_ni_rogue_detection_completed_id_measurement_status                         BCMOLT_XGPON_NI_ROGUE_DETECTION_COMPLETED_ID_MEASUREMENT_STATUS
+#define bcmolt_xgpon_ni_rogue_detection_completed_id_alloc_id                                   BCMOLT_XGPON_NI_ROGUE_DETECTION_COMPLETED_ID_ALLOC_ID
+#define bcmolt_xgpon_ni_rogue_detection_completed_id_onu_id                                     BCMOLT_XGPON_NI_ROGUE_DETECTION_COMPLETED_ID_ONU_ID
+#define bcmolt_xgpon_ni_rogue_detection_completed_id_is_delineation                             BCMOLT_XGPON_NI_ROGUE_DETECTION_COMPLETED_ID_IS_DELINEATION
+#define bcmolt_xgpon_ni_rogue_detection_completed_id_is_ed                                      BCMOLT_XGPON_NI_ROGUE_DETECTION_COMPLETED_ID_IS_ED
+#define bcmolt_xgpon_ni_rogue_detection_completed_id_rx_data                                    BCMOLT_XGPON_NI_ROGUE_DETECTION_COMPLETED_ID_RX_DATA
+#define bcmolt_xgpon_ni_rogue_detection_completed_id_ploam_received_onu_id                      BCMOLT_XGPON_NI_ROGUE_DETECTION_COMPLETED_ID_PLOAM_RECEIVED_ONU_ID
+#define bcmolt_xgpon_ni_rogue_detection_completed_id_ploam_received_mic_error                   BCMOLT_XGPON_NI_ROGUE_DETECTION_COMPLETED_ID_PLOAM_RECEIVED_MIC_ERROR
+#define bcmolt_xgpon_ni_rogue_detection_completed_id__num_of                                    BCMOLT_XGPON_NI_ROGUE_DETECTION_COMPLETED_ID__NUM_OF
+#define bcmolt_xgpon_ni_rogue_onu_special_map_cycle_start_id__num_of                            BCMOLT_XGPON_NI_ROGUE_ONU_SPECIAL_MAP_CYCLE_START_ID__NUM_OF
+#define bcmolt_xgpon_ni_serial_number_acquisition_cycle_start_id__num_of                        BCMOLT_XGPON_NI_SERIAL_NUMBER_ACQUISITION_CYCLE_START_ID__NUM_OF
+#define bcmolt_xgpon_ni_standby_pon_monitoring_cycle_completed_id_number_of_detected_delimiter  BCMOLT_XGPON_NI_STANDBY_PON_MONITORING_CYCLE_COMPLETED_ID_NUMBER_OF_DETECTED_DELIMITER
+#define bcmolt_xgpon_ni_standby_pon_monitoring_cycle_completed_id_energy_detect_signal          BCMOLT_XGPON_NI_STANDBY_PON_MONITORING_CYCLE_COMPLETED_ID_ENERGY_DETECT_SIGNAL
+#define bcmolt_xgpon_ni_standby_pon_monitoring_cycle_completed_id__num_of                       BCMOLT_XGPON_NI_STANDBY_PON_MONITORING_CYCLE_COMPLETED_ID__NUM_OF
+#define bcmolt_xgpon_ni_stat_alarm_cleared_id_stat                                              BCMOLT_XGPON_NI_STAT_ALARM_CLEARED_ID_STAT
+#define bcmolt_xgpon_ni_stat_alarm_cleared_id__num_of                                           BCMOLT_XGPON_NI_STAT_ALARM_CLEARED_ID__NUM_OF
+#define bcmolt_xgpon_ni_stat_alarm_raised_id_stat                                               BCMOLT_XGPON_NI_STAT_ALARM_RAISED_ID_STAT
+#define bcmolt_xgpon_ni_stat_alarm_raised_id__num_of                                            BCMOLT_XGPON_NI_STAT_ALARM_RAISED_ID__NUM_OF
+#define bcmolt_xgpon_ni_state_change_completed_id_result                                        BCMOLT_XGPON_NI_STATE_CHANGE_COMPLETED_ID_RESULT
+#define bcmolt_xgpon_ni_state_change_completed_id_previous_state                                BCMOLT_XGPON_NI_STATE_CHANGE_COMPLETED_ID_PREVIOUS_STATE
+#define bcmolt_xgpon_ni_state_change_completed_id_new_state                                     BCMOLT_XGPON_NI_STATE_CHANGE_COMPLETED_ID_NEW_STATE
+#define bcmolt_xgpon_ni_state_change_completed_id__num_of                                       BCMOLT_XGPON_NI_STATE_CHANGE_COMPLETED_ID__NUM_OF
+#define bcmolt_xgpon_ni_tod_request_completed_id_tod_string                                     BCMOLT_XGPON_NI_TOD_REQUEST_COMPLETED_ID_TOD_STRING
+#define bcmolt_xgpon_ni_tod_request_completed_id_sfc                                            BCMOLT_XGPON_NI_TOD_REQUEST_COMPLETED_ID_SFC
+#define bcmolt_xgpon_ni_tod_request_completed_id_rtc_offset_sec                                 BCMOLT_XGPON_NI_TOD_REQUEST_COMPLETED_ID_RTC_OFFSET_SEC
+#define bcmolt_xgpon_ni_tod_request_completed_id_rtc_offset_nsec                                BCMOLT_XGPON_NI_TOD_REQUEST_COMPLETED_ID_RTC_OFFSET_NSEC
+#define bcmolt_xgpon_ni_tod_request_completed_id_status                                         BCMOLT_XGPON_NI_TOD_REQUEST_COMPLETED_ID_STATUS
+#define bcmolt_xgpon_ni_tod_request_completed_id__num_of                                        BCMOLT_XGPON_NI_TOD_REQUEST_COMPLETED_ID__NUM_OF
+#define bcmolt_xgpon_ni_auto_cfg_id_activate_all_onus_completed                                 BCMOLT_XGPON_NI_AUTO_CFG_ID_ACTIVATE_ALL_ONUS_COMPLETED
+#define bcmolt_xgpon_ni_auto_cfg_id_cpu_packets_failure                                         BCMOLT_XGPON_NI_AUTO_CFG_ID_CPU_PACKETS_FAILURE
+#define bcmolt_xgpon_ni_auto_cfg_id_deactivate_all_onus_completed                               BCMOLT_XGPON_NI_AUTO_CFG_ID_DEACTIVATE_ALL_ONUS_COMPLETED
+#define bcmolt_xgpon_ni_auto_cfg_id_disable_all_onus_completed                                  BCMOLT_XGPON_NI_AUTO_CFG_ID_DISABLE_ALL_ONUS_COMPLETED
+#define bcmolt_xgpon_ni_auto_cfg_id_enable_all_onus_completed                                   BCMOLT_XGPON_NI_AUTO_CFG_ID_ENABLE_ALL_ONUS_COMPLETED
+#define bcmolt_xgpon_ni_auto_cfg_id_los                                                         BCMOLT_XGPON_NI_AUTO_CFG_ID_LOS
+#define bcmolt_xgpon_ni_auto_cfg_id_onu_discovered                                              BCMOLT_XGPON_NI_AUTO_CFG_ID_ONU_DISCOVERED
+#define bcmolt_xgpon_ni_auto_cfg_id_onu_upgrade_complete                                        BCMOLT_XGPON_NI_AUTO_CFG_ID_ONU_UPGRADE_COMPLETE
+#define bcmolt_xgpon_ni_auto_cfg_id_protection_switching_onus_ranged                            BCMOLT_XGPON_NI_AUTO_CFG_ID_PROTECTION_SWITCHING_ONUS_RANGED
+#define bcmolt_xgpon_ni_auto_cfg_id_protection_switching_switchover_completed                   BCMOLT_XGPON_NI_AUTO_CFG_ID_PROTECTION_SWITCHING_SWITCHOVER_COMPLETED
+#define bcmolt_xgpon_ni_auto_cfg_id_protection_switching_traffic_resume                         BCMOLT_XGPON_NI_AUTO_CFG_ID_PROTECTION_SWITCHING_TRAFFIC_RESUME
+#define bcmolt_xgpon_ni_auto_cfg_id_rogue_detection_completed                                   BCMOLT_XGPON_NI_AUTO_CFG_ID_ROGUE_DETECTION_COMPLETED
+#define bcmolt_xgpon_ni_auto_cfg_id_rogue_onu_special_map_cycle_start                           BCMOLT_XGPON_NI_AUTO_CFG_ID_ROGUE_ONU_SPECIAL_MAP_CYCLE_START
+#define bcmolt_xgpon_ni_auto_cfg_id_serial_number_acquisition_cycle_start                       BCMOLT_XGPON_NI_AUTO_CFG_ID_SERIAL_NUMBER_ACQUISITION_CYCLE_START
+#define bcmolt_xgpon_ni_auto_cfg_id_standby_pon_monitoring_cycle_completed                      BCMOLT_XGPON_NI_AUTO_CFG_ID_STANDBY_PON_MONITORING_CYCLE_COMPLETED
+#define bcmolt_xgpon_ni_auto_cfg_id_stat_alarm_cleared                                          BCMOLT_XGPON_NI_AUTO_CFG_ID_STAT_ALARM_CLEARED
+#define bcmolt_xgpon_ni_auto_cfg_id_stat_alarm_raised                                           BCMOLT_XGPON_NI_AUTO_CFG_ID_STAT_ALARM_RAISED
+#define bcmolt_xgpon_ni_auto_cfg_id_state_change_completed                                      BCMOLT_XGPON_NI_AUTO_CFG_ID_STATE_CHANGE_COMPLETED
+#define bcmolt_xgpon_ni_auto_cfg_id_tod_request_completed                                       BCMOLT_XGPON_NI_AUTO_CFG_ID_TOD_REQUEST_COMPLETED
+#define bcmolt_xgpon_ni_auto_cfg_id__num_of                                                     BCMOLT_XGPON_NI_AUTO_CFG_ID__NUM_OF
+#define bcmolt_xgpon_ni_adjust_tx_wavelength_id_serial_number                                   BCMOLT_XGPON_NI_ADJUST_TX_WAVELENGTH_ID_SERIAL_NUMBER
+#define bcmolt_xgpon_ni_adjust_tx_wavelength_id_freqency_adjustment_direction                   BCMOLT_XGPON_NI_ADJUST_TX_WAVELENGTH_ID_FREQENCY_ADJUSTMENT_DIRECTION
+#define bcmolt_xgpon_ni_adjust_tx_wavelength_id_frequency_adjustment_size                       BCMOLT_XGPON_NI_ADJUST_TX_WAVELENGTH_ID_FREQUENCY_ADJUSTMENT_SIZE
+#define bcmolt_xgpon_ni_adjust_tx_wavelength_id__num_of                                         BCMOLT_XGPON_NI_ADJUST_TX_WAVELENGTH_ID__NUM_OF
+#define bcmolt_xgpon_ni_disable_serial_number_id_control                                        BCMOLT_XGPON_NI_DISABLE_SERIAL_NUMBER_ID_CONTROL
+#define bcmolt_xgpon_ni_disable_serial_number_id_serial_number                                  BCMOLT_XGPON_NI_DISABLE_SERIAL_NUMBER_ID_SERIAL_NUMBER
+#define bcmolt_xgpon_ni_disable_serial_number_id__num_of                                        BCMOLT_XGPON_NI_DISABLE_SERIAL_NUMBER_ID__NUM_OF
+#define bcmolt_xgpon_ni_reset_id__num_of                                                        BCMOLT_XGPON_NI_RESET_ID__NUM_OF
+#define bcmolt_xgpon_ni_rogue_detection_window_id_window_type                                   BCMOLT_XGPON_NI_ROGUE_DETECTION_WINDOW_ID_WINDOW_TYPE
+#define bcmolt_xgpon_ni_rogue_detection_window_id_alloc_id                                      BCMOLT_XGPON_NI_ROGUE_DETECTION_WINDOW_ID_ALLOC_ID
+#define bcmolt_xgpon_ni_rogue_detection_window_id_onu_id                                        BCMOLT_XGPON_NI_ROGUE_DETECTION_WINDOW_ID_ONU_ID
+#define bcmolt_xgpon_ni_rogue_detection_window_id_second_ranging_window                         BCMOLT_XGPON_NI_ROGUE_DETECTION_WINDOW_ID_SECOND_RANGING_WINDOW
+#define bcmolt_xgpon_ni_rogue_detection_window_id__num_of                                       BCMOLT_XGPON_NI_ROGUE_DETECTION_WINDOW_ID__NUM_OF
+#define bcmolt_xgpon_ni_run_special_bw_map_id_number_of_cycle                                   BCMOLT_XGPON_NI_RUN_SPECIAL_BW_MAP_ID_NUMBER_OF_CYCLE
+#define bcmolt_xgpon_ni_run_special_bw_map_id_allocation_number                                 BCMOLT_XGPON_NI_RUN_SPECIAL_BW_MAP_ID_ALLOCATION_NUMBER
+#define bcmolt_xgpon_ni_run_special_bw_map_id_bw_map_array                                      BCMOLT_XGPON_NI_RUN_SPECIAL_BW_MAP_ID_BW_MAP_ARRAY
+#define bcmolt_xgpon_ni_run_special_bw_map_id__num_of                                           BCMOLT_XGPON_NI_RUN_SPECIAL_BW_MAP_ID__NUM_OF
+#define bcmolt_xgpon_ni_set_onu_state_id_onu_state                                              BCMOLT_XGPON_NI_SET_ONU_STATE_ID_ONU_STATE
+#define bcmolt_xgpon_ni_set_onu_state_id__num_of                                                BCMOLT_XGPON_NI_SET_ONU_STATE_ID__NUM_OF
+#define bcmolt_xgpon_ni_set_pon_state_id_pon_state                                              BCMOLT_XGPON_NI_SET_PON_STATE_ID_PON_STATE
+#define bcmolt_xgpon_ni_set_pon_state_id__num_of                                                BCMOLT_XGPON_NI_SET_PON_STATE_ID__NUM_OF
+#define bcmolt_xgpon_ni_single_request_standby_pon_monitoring_id__num_of                        BCMOLT_XGPON_NI_SINGLE_REQUEST_STANDBY_PON_MONITORING_ID__NUM_OF
+#define bcmolt_xgpon_ni_start_onu_upgrade_id_list_of_onu_ids                                    BCMOLT_XGPON_NI_START_ONU_UPGRADE_ID_LIST_OF_ONU_IDS
+#define bcmolt_xgpon_ni_start_onu_upgrade_id__num_of                                            BCMOLT_XGPON_NI_START_ONU_UPGRADE_ID__NUM_OF
+#define bcmolt_xgpon_ni_tod_request_id__num_of                                                  BCMOLT_XGPON_NI_TOD_REQUEST_ID__NUM_OF
+#define bcmolt_xgpon_ni_broadcast_ploam_packet_id_ploam                                         BCMOLT_XGPON_NI_BROADCAST_PLOAM_PACKET_ID_PLOAM
+#define bcmolt_xgpon_ni_broadcast_ploam_packet_id__num_of                                       BCMOLT_XGPON_NI_BROADCAST_PLOAM_PACKET_ID__NUM_OF
+#define bcmolt_xgpon_ni_cpu_packets_id_packet_type                                              BCMOLT_XGPON_NI_CPU_PACKETS_ID_PACKET_TYPE
+#define bcmolt_xgpon_ni_cpu_packets_id_calc_crc                                                 BCMOLT_XGPON_NI_CPU_PACKETS_ID_CALC_CRC
+#define bcmolt_xgpon_ni_cpu_packets_id_gem_port_list                                            BCMOLT_XGPON_NI_CPU_PACKETS_ID_GEM_PORT_LIST
+#define bcmolt_xgpon_ni_cpu_packets_id_buffer                                                   BCMOLT_XGPON_NI_CPU_PACKETS_ID_BUFFER
+#define bcmolt_xgpon_ni_cpu_packets_id__num_of                                                  BCMOLT_XGPON_NI_CPU_PACKETS_ID__NUM_OF
+#define bcmolt_xgpon_onu_key_id_pon_ni                                                          BCMOLT_XGPON_ONU_KEY_ID_PON_NI
+#define bcmolt_xgpon_onu_key_id_onu_id                                                          BCMOLT_XGPON_ONU_KEY_ID_ONU_ID
+#define bcmolt_xgpon_onu_key_id__num_of                                                         BCMOLT_XGPON_ONU_KEY_ID__NUM_OF
+#define bcmolt_xgpon_onu_cfg_id_onu_state                                                       BCMOLT_XGPON_ONU_CFG_ID_ONU_STATE
+#define bcmolt_xgpon_onu_cfg_id_onu_old_state                                                   BCMOLT_XGPON_ONU_CFG_ID_ONU_OLD_STATE
+#define bcmolt_xgpon_onu_cfg_id_alarm_state                                                     BCMOLT_XGPON_ONU_CFG_ID_ALARM_STATE
+#define bcmolt_xgpon_onu_cfg_id_registration_encryption_keys                                    BCMOLT_XGPON_ONU_CFG_ID_REGISTRATION_ENCRYPTION_KEYS
+#define bcmolt_xgpon_onu_cfg_id_current_encryption_key                                          BCMOLT_XGPON_ONU_CFG_ID_CURRENT_ENCRYPTION_KEY
+#define bcmolt_xgpon_onu_cfg_id_serial_number                                                   BCMOLT_XGPON_ONU_CFG_ID_SERIAL_NUMBER
+#define bcmolt_xgpon_onu_cfg_id_registration_id                                                 BCMOLT_XGPON_ONU_CFG_ID_REGISTRATION_ID
+#define bcmolt_xgpon_onu_cfg_id_registration_id_auto_learning                                   BCMOLT_XGPON_ONU_CFG_ID_REGISTRATION_ID_AUTO_LEARNING
+#define bcmolt_xgpon_onu_cfg_id_ranging_burst_profile                                           BCMOLT_XGPON_ONU_CFG_ID_RANGING_BURST_PROFILE
+#define bcmolt_xgpon_onu_cfg_id_data_burst_profile                                              BCMOLT_XGPON_ONU_CFG_ID_DATA_BURST_PROFILE
+#define bcmolt_xgpon_onu_cfg_id_ranging_time                                                    BCMOLT_XGPON_ONU_CFG_ID_RANGING_TIME
+#define bcmolt_xgpon_onu_cfg_id_disabled_after_discovery                                        BCMOLT_XGPON_ONU_CFG_ID_DISABLED_AFTER_DISCOVERY
+#define bcmolt_xgpon_onu_cfg_id_deactivation_reason                                             BCMOLT_XGPON_ONU_CFG_ID_DEACTIVATION_REASON
+#define bcmolt_xgpon_onu_cfg_id_all_gem_ports                                                   BCMOLT_XGPON_ONU_CFG_ID_ALL_GEM_PORTS
+#define bcmolt_xgpon_onu_cfg_id_all_allocs                                                      BCMOLT_XGPON_ONU_CFG_ID_ALL_ALLOCS
+#define bcmolt_xgpon_onu_cfg_id_extended_guard_time                                             BCMOLT_XGPON_ONU_CFG_ID_EXTENDED_GUARD_TIME
+#define bcmolt_xgpon_onu_cfg_id_us_line_rate                                                    BCMOLT_XGPON_ONU_CFG_ID_US_LINE_RATE
+#define bcmolt_xgpon_onu_cfg_id_calibration_record                                              BCMOLT_XGPON_ONU_CFG_ID_CALIBRATION_RECORD
+#define bcmolt_xgpon_onu_cfg_id_tuning_granularity                                              BCMOLT_XGPON_ONU_CFG_ID_TUNING_GRANULARITY
+#define bcmolt_xgpon_onu_cfg_id_step_tuning_time                                                BCMOLT_XGPON_ONU_CFG_ID_STEP_TUNING_TIME
+#define bcmolt_xgpon_onu_cfg_id_power_levelling_capabilities                                    BCMOLT_XGPON_ONU_CFG_ID_POWER_LEVELLING_CAPABILITIES
+#define bcmolt_xgpon_onu_cfg_id_request_registration_status                                     BCMOLT_XGPON_ONU_CFG_ID_REQUEST_REGISTRATION_STATUS
+#define bcmolt_xgpon_onu_cfg_id__num_of                                                         BCMOLT_XGPON_ONU_CFG_ID__NUM_OF
+#define bcmolt_xgpon_onu_stat_id_positive_drift                                                 BCMOLT_XGPON_ONU_STAT_ID_POSITIVE_DRIFT
+#define bcmolt_xgpon_onu_stat_id_negative_drift                                                 BCMOLT_XGPON_ONU_STAT_ID_NEGATIVE_DRIFT
+#define bcmolt_xgpon_onu_stat_id_delimiter_miss_detection                                       BCMOLT_XGPON_ONU_STAT_ID_DELIMITER_MISS_DETECTION
+#define bcmolt_xgpon_onu_stat_id_bip32_errors                                                   BCMOLT_XGPON_ONU_STAT_ID_BIP32_ERRORS
+#define bcmolt_xgpon_onu_stat_id_rx_words                                                       BCMOLT_XGPON_ONU_STAT_ID_RX_WORDS
+#define bcmolt_xgpon_onu_stat_id_fec_corrected_symbols                                          BCMOLT_XGPON_ONU_STAT_ID_FEC_CORRECTED_SYMBOLS
+#define bcmolt_xgpon_onu_stat_id_fec_corrected_codewords                                        BCMOLT_XGPON_ONU_STAT_ID_FEC_CORRECTED_CODEWORDS
+#define bcmolt_xgpon_onu_stat_id_fec_uncorrectable_codewords                                    BCMOLT_XGPON_ONU_STAT_ID_FEC_UNCORRECTABLE_CODEWORDS
+#define bcmolt_xgpon_onu_stat_id_fec_codewords                                                  BCMOLT_XGPON_ONU_STAT_ID_FEC_CODEWORDS
+#define bcmolt_xgpon_onu_stat_id_fec_corrected_bits                                             BCMOLT_XGPON_ONU_STAT_ID_FEC_CORRECTED_BITS
+#define bcmolt_xgpon_onu_stat_id_xgem_key_errors                                                BCMOLT_XGPON_ONU_STAT_ID_XGEM_KEY_ERRORS
+#define bcmolt_xgpon_onu_stat_id_xgem_loss                                                      BCMOLT_XGPON_ONU_STAT_ID_XGEM_LOSS
+#define bcmolt_xgpon_onu_stat_id_rx_ploams_mic_error                                            BCMOLT_XGPON_ONU_STAT_ID_RX_PLOAMS_MIC_ERROR
+#define bcmolt_xgpon_onu_stat_id_rx_ploams_non_idle                                             BCMOLT_XGPON_ONU_STAT_ID_RX_PLOAMS_NON_IDLE
+#define bcmolt_xgpon_onu_stat_id_rx_omci                                                        BCMOLT_XGPON_ONU_STAT_ID_RX_OMCI
+#define bcmolt_xgpon_onu_stat_id_rx_omci_packets_crc_error                                      BCMOLT_XGPON_ONU_STAT_ID_RX_OMCI_PACKETS_CRC_ERROR
+#define bcmolt_xgpon_onu_stat_id_rx_bytes                                                       BCMOLT_XGPON_ONU_STAT_ID_RX_BYTES
+#define bcmolt_xgpon_onu_stat_id_rx_packets                                                     BCMOLT_XGPON_ONU_STAT_ID_RX_PACKETS
+#define bcmolt_xgpon_onu_stat_id_tx_bytes                                                       BCMOLT_XGPON_ONU_STAT_ID_TX_BYTES
+#define bcmolt_xgpon_onu_stat_id_tx_packets                                                     BCMOLT_XGPON_ONU_STAT_ID_TX_PACKETS
+#define bcmolt_xgpon_onu_stat_id__num_of                                                        BCMOLT_XGPON_ONU_STAT_ID__NUM_OF
+#define bcmolt_xgpon_onu_stat_cfg_id_cfg                                                        BCMOLT_XGPON_ONU_STAT_CFG_ID_CFG
+#define bcmolt_xgpon_onu_stat_cfg_id__num_of                                                    BCMOLT_XGPON_ONU_STAT_CFG_ID__NUM_OF
+#define bcmolt_xgpon_onu_dfi_id_alarm_status                                                    BCMOLT_XGPON_ONU_DFI_ID_ALARM_STATUS
+#define bcmolt_xgpon_onu_dfi_id__num_of                                                         BCMOLT_XGPON_ONU_DFI_ID__NUM_OF
+#define bcmolt_xgpon_onu_dgi_id_alarm_status                                                    BCMOLT_XGPON_ONU_DGI_ID_ALARM_STATUS
+#define bcmolt_xgpon_onu_dgi_id__num_of                                                         BCMOLT_XGPON_ONU_DGI_ID__NUM_OF
+#define bcmolt_xgpon_onu_dowi_id_alarm_status                                                   BCMOLT_XGPON_ONU_DOWI_ID_ALARM_STATUS
+#define bcmolt_xgpon_onu_dowi_id_drift_value                                                    BCMOLT_XGPON_ONU_DOWI_ID_DRIFT_VALUE
+#define bcmolt_xgpon_onu_dowi_id_new_eqd                                                        BCMOLT_XGPON_ONU_DOWI_ID_NEW_EQD
+#define bcmolt_xgpon_onu_dowi_id__num_of                                                        BCMOLT_XGPON_ONU_DOWI_ID__NUM_OF
+#define bcmolt_xgpon_onu_invalid_dbru_report_id_alloc_id                                        BCMOLT_XGPON_ONU_INVALID_DBRU_REPORT_ID_ALLOC_ID
+#define bcmolt_xgpon_onu_invalid_dbru_report_id__num_of                                         BCMOLT_XGPON_ONU_INVALID_DBRU_REPORT_ID__NUM_OF
+#define bcmolt_xgpon_onu_key_exchange_completed_id_new_key                                      BCMOLT_XGPON_ONU_KEY_EXCHANGE_COMPLETED_ID_NEW_KEY
+#define bcmolt_xgpon_onu_key_exchange_completed_id__num_of                                      BCMOLT_XGPON_ONU_KEY_EXCHANGE_COMPLETED_ID__NUM_OF
+#define bcmolt_xgpon_onu_key_exchange_cycle_skipped_id__num_of                                  BCMOLT_XGPON_ONU_KEY_EXCHANGE_CYCLE_SKIPPED_ID__NUM_OF
+#define bcmolt_xgpon_onu_key_exchange_key_mismatch_id_expected_key                              BCMOLT_XGPON_ONU_KEY_EXCHANGE_KEY_MISMATCH_ID_EXPECTED_KEY
+#define bcmolt_xgpon_onu_key_exchange_key_mismatch_id_received_key                              BCMOLT_XGPON_ONU_KEY_EXCHANGE_KEY_MISMATCH_ID_RECEIVED_KEY
+#define bcmolt_xgpon_onu_key_exchange_key_mismatch_id__num_of                                   BCMOLT_XGPON_ONU_KEY_EXCHANGE_KEY_MISMATCH_ID__NUM_OF
+#define bcmolt_xgpon_onu_key_exchange_key_request_timeout_id__num_of                            BCMOLT_XGPON_ONU_KEY_EXCHANGE_KEY_REQUEST_TIMEOUT_ID__NUM_OF
+#define bcmolt_xgpon_onu_looci_id_alarm_status                                                  BCMOLT_XGPON_ONU_LOOCI_ID_ALARM_STATUS
+#define bcmolt_xgpon_onu_looci_id__num_of                                                       BCMOLT_XGPON_ONU_LOOCI_ID__NUM_OF
+#define bcmolt_xgpon_onu_onu_activation_completed_id_status                                     BCMOLT_XGPON_ONU_ONU_ACTIVATION_COMPLETED_ID_STATUS
+#define bcmolt_xgpon_onu_onu_activation_completed_id_fail_reason                                BCMOLT_XGPON_ONU_ONU_ACTIVATION_COMPLETED_ID_FAIL_REASON
+#define bcmolt_xgpon_onu_onu_activation_completed_id_registration_id                            BCMOLT_XGPON_ONU_ONU_ACTIVATION_COMPLETED_ID_REGISTRATION_ID
+#define bcmolt_xgpon_onu_onu_activation_completed_id_registration_encryption_keys               BCMOLT_XGPON_ONU_ONU_ACTIVATION_COMPLETED_ID_REGISTRATION_ENCRYPTION_KEYS
+#define bcmolt_xgpon_onu_onu_activation_completed_id__num_of                                    BCMOLT_XGPON_ONU_ONU_ACTIVATION_COMPLETED_ID__NUM_OF
+#define bcmolt_xgpon_onu_onu_alarm_id_onu_alarm                                                 BCMOLT_XGPON_ONU_ONU_ALARM_ID_ONU_ALARM
+#define bcmolt_xgpon_onu_onu_alarm_id__num_of                                                   BCMOLT_XGPON_ONU_ONU_ALARM_ID__NUM_OF
+#define bcmolt_xgpon_onu_onu_deactivation_completed_id_status                                   BCMOLT_XGPON_ONU_ONU_DEACTIVATION_COMPLETED_ID_STATUS
+#define bcmolt_xgpon_onu_onu_deactivation_completed_id__num_of                                  BCMOLT_XGPON_ONU_ONU_DEACTIVATION_COMPLETED_ID__NUM_OF
+#define bcmolt_xgpon_onu_onu_disable_completed_id_serial_number                                 BCMOLT_XGPON_ONU_ONU_DISABLE_COMPLETED_ID_SERIAL_NUMBER
+#define bcmolt_xgpon_onu_onu_disable_completed_id__num_of                                       BCMOLT_XGPON_ONU_ONU_DISABLE_COMPLETED_ID__NUM_OF
+#define bcmolt_xgpon_onu_onu_enable_completed_id_serial_number                                  BCMOLT_XGPON_ONU_ONU_ENABLE_COMPLETED_ID_SERIAL_NUMBER
+#define bcmolt_xgpon_onu_onu_enable_completed_id__num_of                                        BCMOLT_XGPON_ONU_ONU_ENABLE_COMPLETED_ID__NUM_OF
+#define bcmolt_xgpon_onu_onu_tuning_in_completed_id_result                                      BCMOLT_XGPON_ONU_ONU_TUNING_IN_COMPLETED_ID_RESULT
+#define bcmolt_xgpon_onu_onu_tuning_in_completed_id_fail_reason                                 BCMOLT_XGPON_ONU_ONU_TUNING_IN_COMPLETED_ID_FAIL_REASON
+#define bcmolt_xgpon_onu_onu_tuning_in_completed_id__num_of                                     BCMOLT_XGPON_ONU_ONU_TUNING_IN_COMPLETED_ID__NUM_OF
+#define bcmolt_xgpon_onu_onu_tuning_out_completed_id_result                                     BCMOLT_XGPON_ONU_ONU_TUNING_OUT_COMPLETED_ID_RESULT
+#define bcmolt_xgpon_onu_onu_tuning_out_completed_id_fail_reason                                BCMOLT_XGPON_ONU_ONU_TUNING_OUT_COMPLETED_ID_FAIL_REASON
+#define bcmolt_xgpon_onu_onu_tuning_out_completed_id__num_of                                    BCMOLT_XGPON_ONU_ONU_TUNING_OUT_COMPLETED_ID__NUM_OF
+#define bcmolt_xgpon_onu_optical_reflection_id__num_of                                          BCMOLT_XGPON_ONU_OPTICAL_REFLECTION_ID__NUM_OF
+#define bcmolt_xgpon_onu_possible_drift_id_alarm_status                                         BCMOLT_XGPON_ONU_POSSIBLE_DRIFT_ID_ALARM_STATUS
+#define bcmolt_xgpon_onu_possible_drift_id_estimated_drift                                      BCMOLT_XGPON_ONU_POSSIBLE_DRIFT_ID_ESTIMATED_DRIFT
+#define bcmolt_xgpon_onu_possible_drift_id__num_of                                              BCMOLT_XGPON_ONU_POSSIBLE_DRIFT_ID__NUM_OF
+#define bcmolt_xgpon_onu_power_consumption_report_id_power_consumption_report                   BCMOLT_XGPON_ONU_POWER_CONSUMPTION_REPORT_ID_POWER_CONSUMPTION_REPORT
+#define bcmolt_xgpon_onu_power_consumption_report_id__num_of                                    BCMOLT_XGPON_ONU_POWER_CONSUMPTION_REPORT_ID__NUM_OF
+#define bcmolt_xgpon_onu_power_level_report_id_attenuation                                      BCMOLT_XGPON_ONU_POWER_LEVEL_REPORT_ID_ATTENUATION
+#define bcmolt_xgpon_onu_power_level_report_id_power_levelling_capability                       BCMOLT_XGPON_ONU_POWER_LEVEL_REPORT_ID_POWER_LEVELLING_CAPABILITY
+#define bcmolt_xgpon_onu_power_level_report_id__num_of                                          BCMOLT_XGPON_ONU_POWER_LEVEL_REPORT_ID__NUM_OF
+#define bcmolt_xgpon_onu_power_management_state_change_id_old_state                             BCMOLT_XGPON_ONU_POWER_MANAGEMENT_STATE_CHANGE_ID_OLD_STATE
+#define bcmolt_xgpon_onu_power_management_state_change_id_new_state                             BCMOLT_XGPON_ONU_POWER_MANAGEMENT_STATE_CHANGE_ID_NEW_STATE
+#define bcmolt_xgpon_onu_power_management_state_change_id_reason                                BCMOLT_XGPON_ONU_POWER_MANAGEMENT_STATE_CHANGE_ID_REASON
+#define bcmolt_xgpon_onu_power_management_state_change_id__num_of                               BCMOLT_XGPON_ONU_POWER_MANAGEMENT_STATE_CHANGE_ID__NUM_OF
+#define bcmolt_xgpon_onu_pqsi_id_alarm_status                                                   BCMOLT_XGPON_ONU_PQSI_ID_ALARM_STATUS
+#define bcmolt_xgpon_onu_pqsi_id__num_of                                                        BCMOLT_XGPON_ONU_PQSI_ID__NUM_OF
+#define bcmolt_xgpon_onu_ranging_completed_id_status                                            BCMOLT_XGPON_ONU_RANGING_COMPLETED_ID_STATUS
+#define bcmolt_xgpon_onu_ranging_completed_id_fail_reason                                       BCMOLT_XGPON_ONU_RANGING_COMPLETED_ID_FAIL_REASON
+#define bcmolt_xgpon_onu_ranging_completed_id_eqd                                               BCMOLT_XGPON_ONU_RANGING_COMPLETED_ID_EQD
+#define bcmolt_xgpon_onu_ranging_completed_id_number_of_ploams                                  BCMOLT_XGPON_ONU_RANGING_COMPLETED_ID_NUMBER_OF_PLOAMS
+#define bcmolt_xgpon_onu_ranging_completed_id_power_level                                       BCMOLT_XGPON_ONU_RANGING_COMPLETED_ID_POWER_LEVEL
+#define bcmolt_xgpon_onu_ranging_completed_id__num_of                                           BCMOLT_XGPON_ONU_RANGING_COMPLETED_ID__NUM_OF
+#define bcmolt_xgpon_onu_registration_id_id_registration_id                                     BCMOLT_XGPON_ONU_REGISTRATION_ID_ID_REGISTRATION_ID
+#define bcmolt_xgpon_onu_registration_id_id_request_registration_status                         BCMOLT_XGPON_ONU_REGISTRATION_ID_ID_REQUEST_REGISTRATION_STATUS
+#define bcmolt_xgpon_onu_registration_id_id_request_registration_fail_reason                    BCMOLT_XGPON_ONU_REGISTRATION_ID_ID_REQUEST_REGISTRATION_FAIL_REASON
+#define bcmolt_xgpon_onu_registration_id_id__num_of                                             BCMOLT_XGPON_ONU_REGISTRATION_ID_ID__NUM_OF
+#define bcmolt_xgpon_onu_rssi_measurement_completed_id_status                                   BCMOLT_XGPON_ONU_RSSI_MEASUREMENT_COMPLETED_ID_STATUS
+#define bcmolt_xgpon_onu_rssi_measurement_completed_id_fail_reason                              BCMOLT_XGPON_ONU_RSSI_MEASUREMENT_COMPLETED_ID_FAIL_REASON
+#define bcmolt_xgpon_onu_rssi_measurement_completed_id__num_of                                  BCMOLT_XGPON_ONU_RSSI_MEASUREMENT_COMPLETED_ID__NUM_OF
+#define bcmolt_xgpon_onu_sdi_id_alarm_status                                                    BCMOLT_XGPON_ONU_SDI_ID_ALARM_STATUS
+#define bcmolt_xgpon_onu_sdi_id_ber                                                             BCMOLT_XGPON_ONU_SDI_ID_BER
+#define bcmolt_xgpon_onu_sdi_id__num_of                                                         BCMOLT_XGPON_ONU_SDI_ID__NUM_OF
+#define bcmolt_xgpon_onu_secure_mutual_authentication_failure_id_status                         BCMOLT_XGPON_ONU_SECURE_MUTUAL_AUTHENTICATION_FAILURE_ID_STATUS
+#define bcmolt_xgpon_onu_secure_mutual_authentication_failure_id_fail_reason                    BCMOLT_XGPON_ONU_SECURE_MUTUAL_AUTHENTICATION_FAILURE_ID_FAIL_REASON
+#define bcmolt_xgpon_onu_secure_mutual_authentication_failure_id__num_of                        BCMOLT_XGPON_ONU_SECURE_MUTUAL_AUTHENTICATION_FAILURE_ID__NUM_OF
+#define bcmolt_xgpon_onu_sfi_id_alarm_status                                                    BCMOLT_XGPON_ONU_SFI_ID_ALARM_STATUS
+#define bcmolt_xgpon_onu_sfi_id_ber                                                             BCMOLT_XGPON_ONU_SFI_ID_BER
+#define bcmolt_xgpon_onu_sfi_id__num_of                                                         BCMOLT_XGPON_ONU_SFI_ID__NUM_OF
+#define bcmolt_xgpon_onu_stat_alarm_cleared_id_stat                                             BCMOLT_XGPON_ONU_STAT_ALARM_CLEARED_ID_STAT
+#define bcmolt_xgpon_onu_stat_alarm_cleared_id__num_of                                          BCMOLT_XGPON_ONU_STAT_ALARM_CLEARED_ID__NUM_OF
+#define bcmolt_xgpon_onu_stat_alarm_raised_id_stat                                              BCMOLT_XGPON_ONU_STAT_ALARM_RAISED_ID_STAT
+#define bcmolt_xgpon_onu_stat_alarm_raised_id__num_of                                           BCMOLT_XGPON_ONU_STAT_ALARM_RAISED_ID__NUM_OF
+#define bcmolt_xgpon_onu_sufi_id_alarm_status                                                   BCMOLT_XGPON_ONU_SUFI_ID_ALARM_STATUS
+#define bcmolt_xgpon_onu_sufi_id__num_of                                                        BCMOLT_XGPON_ONU_SUFI_ID__NUM_OF
+#define bcmolt_xgpon_onu_tiwi_id_alarm_status                                                   BCMOLT_XGPON_ONU_TIWI_ID_ALARM_STATUS
+#define bcmolt_xgpon_onu_tiwi_id_drift_value                                                    BCMOLT_XGPON_ONU_TIWI_ID_DRIFT_VALUE
+#define bcmolt_xgpon_onu_tiwi_id__num_of                                                        BCMOLT_XGPON_ONU_TIWI_ID__NUM_OF
+#define bcmolt_xgpon_onu_tuning_response_id_ack                                                 BCMOLT_XGPON_ONU_TUNING_RESPONSE_ID_ACK
+#define bcmolt_xgpon_onu_tuning_response_id_result                                              BCMOLT_XGPON_ONU_TUNING_RESPONSE_ID_RESULT
+#define bcmolt_xgpon_onu_tuning_response_id__num_of                                             BCMOLT_XGPON_ONU_TUNING_RESPONSE_ID__NUM_OF
+#define bcmolt_xgpon_onu_auto_cfg_id_dfi                                                        BCMOLT_XGPON_ONU_AUTO_CFG_ID_DFI
+#define bcmolt_xgpon_onu_auto_cfg_id_dgi                                                        BCMOLT_XGPON_ONU_AUTO_CFG_ID_DGI
+#define bcmolt_xgpon_onu_auto_cfg_id_dowi                                                       BCMOLT_XGPON_ONU_AUTO_CFG_ID_DOWI
+#define bcmolt_xgpon_onu_auto_cfg_id_invalid_dbru_report                                        BCMOLT_XGPON_ONU_AUTO_CFG_ID_INVALID_DBRU_REPORT
+#define bcmolt_xgpon_onu_auto_cfg_id_key_exchange_completed                                     BCMOLT_XGPON_ONU_AUTO_CFG_ID_KEY_EXCHANGE_COMPLETED
+#define bcmolt_xgpon_onu_auto_cfg_id_key_exchange_cycle_skipped                                 BCMOLT_XGPON_ONU_AUTO_CFG_ID_KEY_EXCHANGE_CYCLE_SKIPPED
+#define bcmolt_xgpon_onu_auto_cfg_id_key_exchange_key_mismatch                                  BCMOLT_XGPON_ONU_AUTO_CFG_ID_KEY_EXCHANGE_KEY_MISMATCH
+#define bcmolt_xgpon_onu_auto_cfg_id_key_exchange_key_request_timeout                           BCMOLT_XGPON_ONU_AUTO_CFG_ID_KEY_EXCHANGE_KEY_REQUEST_TIMEOUT
+#define bcmolt_xgpon_onu_auto_cfg_id_looci                                                      BCMOLT_XGPON_ONU_AUTO_CFG_ID_LOOCI
+#define bcmolt_xgpon_onu_auto_cfg_id_onu_activation_completed                                   BCMOLT_XGPON_ONU_AUTO_CFG_ID_ONU_ACTIVATION_COMPLETED
+#define bcmolt_xgpon_onu_auto_cfg_id_onu_alarm                                                  BCMOLT_XGPON_ONU_AUTO_CFG_ID_ONU_ALARM
+#define bcmolt_xgpon_onu_auto_cfg_id_onu_deactivation_completed                                 BCMOLT_XGPON_ONU_AUTO_CFG_ID_ONU_DEACTIVATION_COMPLETED
+#define bcmolt_xgpon_onu_auto_cfg_id_onu_disable_completed                                      BCMOLT_XGPON_ONU_AUTO_CFG_ID_ONU_DISABLE_COMPLETED
+#define bcmolt_xgpon_onu_auto_cfg_id_onu_enable_completed                                       BCMOLT_XGPON_ONU_AUTO_CFG_ID_ONU_ENABLE_COMPLETED
+#define bcmolt_xgpon_onu_auto_cfg_id_onu_tuning_in_completed                                    BCMOLT_XGPON_ONU_AUTO_CFG_ID_ONU_TUNING_IN_COMPLETED
+#define bcmolt_xgpon_onu_auto_cfg_id_onu_tuning_out_completed                                   BCMOLT_XGPON_ONU_AUTO_CFG_ID_ONU_TUNING_OUT_COMPLETED
+#define bcmolt_xgpon_onu_auto_cfg_id_optical_reflection                                         BCMOLT_XGPON_ONU_AUTO_CFG_ID_OPTICAL_REFLECTION
+#define bcmolt_xgpon_onu_auto_cfg_id_possible_drift                                             BCMOLT_XGPON_ONU_AUTO_CFG_ID_POSSIBLE_DRIFT
+#define bcmolt_xgpon_onu_auto_cfg_id_power_consumption_report                                   BCMOLT_XGPON_ONU_AUTO_CFG_ID_POWER_CONSUMPTION_REPORT
+#define bcmolt_xgpon_onu_auto_cfg_id_power_level_report                                         BCMOLT_XGPON_ONU_AUTO_CFG_ID_POWER_LEVEL_REPORT
+#define bcmolt_xgpon_onu_auto_cfg_id_power_management_state_change                              BCMOLT_XGPON_ONU_AUTO_CFG_ID_POWER_MANAGEMENT_STATE_CHANGE
+#define bcmolt_xgpon_onu_auto_cfg_id_pqsi                                                       BCMOLT_XGPON_ONU_AUTO_CFG_ID_PQSI
+#define bcmolt_xgpon_onu_auto_cfg_id_ranging_completed                                          BCMOLT_XGPON_ONU_AUTO_CFG_ID_RANGING_COMPLETED
+#define bcmolt_xgpon_onu_auto_cfg_id_registration_id                                            BCMOLT_XGPON_ONU_AUTO_CFG_ID_REGISTRATION_ID
+#define bcmolt_xgpon_onu_auto_cfg_id_rssi_measurement_completed                                 BCMOLT_XGPON_ONU_AUTO_CFG_ID_RSSI_MEASUREMENT_COMPLETED
+#define bcmolt_xgpon_onu_auto_cfg_id_sdi                                                        BCMOLT_XGPON_ONU_AUTO_CFG_ID_SDI
+#define bcmolt_xgpon_onu_auto_cfg_id_secure_mutual_authentication_failure                       BCMOLT_XGPON_ONU_AUTO_CFG_ID_SECURE_MUTUAL_AUTHENTICATION_FAILURE
+#define bcmolt_xgpon_onu_auto_cfg_id_sfi                                                        BCMOLT_XGPON_ONU_AUTO_CFG_ID_SFI
+#define bcmolt_xgpon_onu_auto_cfg_id_stat_alarm_cleared                                         BCMOLT_XGPON_ONU_AUTO_CFG_ID_STAT_ALARM_CLEARED
+#define bcmolt_xgpon_onu_auto_cfg_id_stat_alarm_raised                                          BCMOLT_XGPON_ONU_AUTO_CFG_ID_STAT_ALARM_RAISED
+#define bcmolt_xgpon_onu_auto_cfg_id_sufi                                                       BCMOLT_XGPON_ONU_AUTO_CFG_ID_SUFI
+#define bcmolt_xgpon_onu_auto_cfg_id_tiwi                                                       BCMOLT_XGPON_ONU_AUTO_CFG_ID_TIWI
+#define bcmolt_xgpon_onu_auto_cfg_id_tuning_response                                            BCMOLT_XGPON_ONU_AUTO_CFG_ID_TUNING_RESPONSE
+#define bcmolt_xgpon_onu_auto_cfg_id__num_of                                                    BCMOLT_XGPON_ONU_AUTO_CFG_ID__NUM_OF
+#define bcmolt_xgpon_onu_adjust_tx_wavelength_id_frequency_adjustment_direction                 BCMOLT_XGPON_ONU_ADJUST_TX_WAVELENGTH_ID_FREQUENCY_ADJUSTMENT_DIRECTION
+#define bcmolt_xgpon_onu_adjust_tx_wavelength_id_frequency_adjustment_size                      BCMOLT_XGPON_ONU_ADJUST_TX_WAVELENGTH_ID_FREQUENCY_ADJUSTMENT_SIZE
+#define bcmolt_xgpon_onu_adjust_tx_wavelength_id__num_of                                        BCMOLT_XGPON_ONU_ADJUST_TX_WAVELENGTH_ID__NUM_OF
+#define bcmolt_xgpon_onu_change_power_levelling_id_control                                      BCMOLT_XGPON_ONU_CHANGE_POWER_LEVELLING_ID_CONTROL
+#define bcmolt_xgpon_onu_change_power_levelling_id_attenuation                                  BCMOLT_XGPON_ONU_CHANGE_POWER_LEVELLING_ID_ATTENUATION
+#define bcmolt_xgpon_onu_change_power_levelling_id__num_of                                      BCMOLT_XGPON_ONU_CHANGE_POWER_LEVELLING_ID__NUM_OF
+#define bcmolt_xgpon_onu_get_power_consumption_id__num_of                                       BCMOLT_XGPON_ONU_GET_POWER_CONSUMPTION_ID__NUM_OF
+#define bcmolt_xgpon_onu_get_power_level_id__num_of                                             BCMOLT_XGPON_ONU_GET_POWER_LEVEL_ID__NUM_OF
+#define bcmolt_xgpon_onu_onu_tuning_in_id__num_of                                               BCMOLT_XGPON_ONU_ONU_TUNING_IN_ID__NUM_OF
+#define bcmolt_xgpon_onu_onu_tuning_out_id_target_ds_pon_id                                     BCMOLT_XGPON_ONU_ONU_TUNING_OUT_ID_TARGET_DS_PON_ID
+#define bcmolt_xgpon_onu_onu_tuning_out_id_target_us_pon_id                                     BCMOLT_XGPON_ONU_ONU_TUNING_OUT_ID_TARGET_US_PON_ID
+#define bcmolt_xgpon_onu_onu_tuning_out_id_time_to_switch                                       BCMOLT_XGPON_ONU_ONU_TUNING_OUT_ID_TIME_TO_SWITCH
+#define bcmolt_xgpon_onu_onu_tuning_out_id_rollback                                             BCMOLT_XGPON_ONU_ONU_TUNING_OUT_ID_ROLLBACK
+#define bcmolt_xgpon_onu_onu_tuning_out_id_status                                               BCMOLT_XGPON_ONU_ONU_TUNING_OUT_ID_STATUS
+#define bcmolt_xgpon_onu_onu_tuning_out_id__num_of                                              BCMOLT_XGPON_ONU_ONU_TUNING_OUT_ID__NUM_OF
+#define bcmolt_xgpon_onu_request_registration_id_sma_flag                                       BCMOLT_XGPON_ONU_REQUEST_REGISTRATION_ID_SMA_FLAG
+#define bcmolt_xgpon_onu_request_registration_id__num_of                                        BCMOLT_XGPON_ONU_REQUEST_REGISTRATION_ID__NUM_OF
+#define bcmolt_xgpon_onu_rssi_measurement_id__num_of                                            BCMOLT_XGPON_ONU_RSSI_MEASUREMENT_ID__NUM_OF
+#define bcmolt_xgpon_onu_secure_mutual_authentication_id_master_key                             BCMOLT_XGPON_ONU_SECURE_MUTUAL_AUTHENTICATION_ID_MASTER_KEY
+#define bcmolt_xgpon_onu_secure_mutual_authentication_id_buffer                                 BCMOLT_XGPON_ONU_SECURE_MUTUAL_AUTHENTICATION_ID_BUFFER
+#define bcmolt_xgpon_onu_secure_mutual_authentication_id_mic                                    BCMOLT_XGPON_ONU_SECURE_MUTUAL_AUTHENTICATION_ID_MIC
+#define bcmolt_xgpon_onu_secure_mutual_authentication_id__num_of                                BCMOLT_XGPON_ONU_SECURE_MUTUAL_AUTHENTICATION_ID__NUM_OF
+#define bcmolt_xgpon_onu_set_onu_state_id_onu_state                                             BCMOLT_XGPON_ONU_SET_ONU_STATE_ID_ONU_STATE
+#define bcmolt_xgpon_onu_set_onu_state_id__num_of                                               BCMOLT_XGPON_ONU_SET_ONU_STATE_ID__NUM_OF
+#define bcmolt_xgpon_onu_cpu_packets_id_packet_type                                             BCMOLT_XGPON_ONU_CPU_PACKETS_ID_PACKET_TYPE
+#define bcmolt_xgpon_onu_cpu_packets_id_calc_crc                                                BCMOLT_XGPON_ONU_CPU_PACKETS_ID_CALC_CRC
+#define bcmolt_xgpon_onu_cpu_packets_id_number_of_packets                                       BCMOLT_XGPON_ONU_CPU_PACKETS_ID_NUMBER_OF_PACKETS
+#define bcmolt_xgpon_onu_cpu_packets_id_packet_size                                             BCMOLT_XGPON_ONU_CPU_PACKETS_ID_PACKET_SIZE
+#define bcmolt_xgpon_onu_cpu_packets_id_buffer                                                  BCMOLT_XGPON_ONU_CPU_PACKETS_ID_BUFFER
+#define bcmolt_xgpon_onu_cpu_packets_id__num_of                                                 BCMOLT_XGPON_ONU_CPU_PACKETS_ID__NUM_OF
+#define bcmolt_xgpon_onu_ploam_packet_id_default_key                                            BCMOLT_XGPON_ONU_PLOAM_PACKET_ID_DEFAULT_KEY
+#define bcmolt_xgpon_onu_ploam_packet_id_ploam                                                  BCMOLT_XGPON_ONU_PLOAM_PACKET_ID_PLOAM
+#define bcmolt_xgpon_onu_ploam_packet_id__num_of                                                BCMOLT_XGPON_ONU_PLOAM_PACKET_ID__NUM_OF
+#define bcmolt_xgpon_onu_cpu_packet_id_port_id                                                  BCMOLT_XGPON_ONU_CPU_PACKET_ID_PORT_ID
+#define bcmolt_xgpon_onu_cpu_packet_id_crc_ok                                                   BCMOLT_XGPON_ONU_CPU_PACKET_ID_CRC_OK
+#define bcmolt_xgpon_onu_cpu_packet_id_packet_size                                              BCMOLT_XGPON_ONU_CPU_PACKET_ID_PACKET_SIZE
+#define bcmolt_xgpon_onu_cpu_packet_id_buffer                                                   BCMOLT_XGPON_ONU_CPU_PACKET_ID_BUFFER
+#define bcmolt_xgpon_onu_cpu_packet_id__num_of                                                  BCMOLT_XGPON_ONU_CPU_PACKET_ID__NUM_OF
+#define bcmolt_xgpon_onu_omci_packet_id_port_id                                                 BCMOLT_XGPON_ONU_OMCI_PACKET_ID_PORT_ID
+#define bcmolt_xgpon_onu_omci_packet_id_crc_ok                                                  BCMOLT_XGPON_ONU_OMCI_PACKET_ID_CRC_OK
+#define bcmolt_xgpon_onu_omci_packet_id_packet_size                                             BCMOLT_XGPON_ONU_OMCI_PACKET_ID_PACKET_SIZE
+#define bcmolt_xgpon_onu_omci_packet_id_buffer                                                  BCMOLT_XGPON_ONU_OMCI_PACKET_ID_BUFFER
+#define bcmolt_xgpon_onu_omci_packet_id__num_of                                                 BCMOLT_XGPON_ONU_OMCI_PACKET_ID__NUM_OF
+#define bcmolt_xgpon_trx_key_id_pon_ni                                                          BCMOLT_XGPON_TRX_KEY_ID_PON_NI
+#define bcmolt_xgpon_trx_key_id__num_of                                                         BCMOLT_XGPON_TRX_KEY_ID__NUM_OF
+#define bcmolt_xgpon_trx_cfg_id_burst_profile                                                   BCMOLT_XGPON_TRX_CFG_ID_BURST_PROFILE
+#define bcmolt_xgpon_trx_cfg_id_transceiver_config                                              BCMOLT_XGPON_TRX_CFG_ID_TRANSCEIVER_CONFIG
+#define bcmolt_xgpon_trx_cfg_id_transceiver_type                                                BCMOLT_XGPON_TRX_CFG_ID_TRANSCEIVER_TYPE
+#define bcmolt_xgpon_trx_cfg_id_debug                                                           BCMOLT_XGPON_TRX_CFG_ID_DEBUG
+#define bcmolt_xgpon_trx_cfg_id_rssi_normal_config                                              BCMOLT_XGPON_TRX_CFG_ID_RSSI_NORMAL_CONFIG
+#define bcmolt_xgpon_trx_cfg_id_rssi_ranging_config                                             BCMOLT_XGPON_TRX_CFG_ID_RSSI_RANGING_CONFIG
+#define bcmolt_xgpon_trx_cfg_id_serdes_configuration                                            BCMOLT_XGPON_TRX_CFG_ID_SERDES_CONFIGURATION
+#define bcmolt_xgpon_trx_cfg_id_burst_profile_delimiter_max_errors                              BCMOLT_XGPON_TRX_CFG_ID_BURST_PROFILE_DELIMITER_MAX_ERRORS
+#define bcmolt_xgpon_trx_cfg_id_ranging_sm_patterns_at_init                                     BCMOLT_XGPON_TRX_CFG_ID_RANGING_SM_PATTERNS_AT_INIT
+#define bcmolt_xgpon_trx_cfg_id_ranging_sm_patterns_ed_failure                                  BCMOLT_XGPON_TRX_CFG_ID_RANGING_SM_PATTERNS_ED_FAILURE
+#define bcmolt_xgpon_trx_cfg_id_reset_on_del_miss                                               BCMOLT_XGPON_TRX_CFG_ID_RESET_ON_DEL_MISS
+#define bcmolt_xgpon_trx_cfg_id_ed_state                                                        BCMOLT_XGPON_TRX_CFG_ID_ED_STATE
+#define bcmolt_xgpon_trx_cfg_id_invert_ed                                                       BCMOLT_XGPON_TRX_CFG_ID_INVERT_ED
+#define bcmolt_xgpon_trx_cfg_id_end_of_burst_reset                                              BCMOLT_XGPON_TRX_CFG_ID_END_OF_BURST_RESET
+#define bcmolt_xgpon_trx_cfg_id_trx_rst_polarity                                                BCMOLT_XGPON_TRX_CFG_ID_TRX_RST_POLARITY
+#define bcmolt_xgpon_trx_cfg_id__num_of                                                         BCMOLT_XGPON_TRX_CFG_ID__NUM_OF
+#define bcmolt_xpon_serdes_key_id_pon_ni                                                        BCMOLT_XPON_SERDES_KEY_ID_PON_NI
+#define bcmolt_xpon_serdes_key_id_instance                                                      BCMOLT_XPON_SERDES_KEY_ID_INSTANCE
+#define bcmolt_xpon_serdes_key_id__num_of                                                       BCMOLT_XPON_SERDES_KEY_ID__NUM_OF
+#define bcmolt_xpon_serdes_cfg_id_rx_vga                                                        BCMOLT_XPON_SERDES_CFG_ID_RX_VGA
+#define bcmolt_xpon_serdes_cfg_id_rx_pf                                                         BCMOLT_XPON_SERDES_CFG_ID_RX_PF
+#define bcmolt_xpon_serdes_cfg_id_rx_lfpf                                                       BCMOLT_XPON_SERDES_CFG_ID_RX_LFPF
+#define bcmolt_xpon_serdes_cfg_id_rx_dfe1                                                       BCMOLT_XPON_SERDES_CFG_ID_RX_DFE1
+#define bcmolt_xpon_serdes_cfg_id_rx_dfe2                                                       BCMOLT_XPON_SERDES_CFG_ID_RX_DFE2
+#define bcmolt_xpon_serdes_cfg_id_rx_dfe3                                                       BCMOLT_XPON_SERDES_CFG_ID_RX_DFE3
+#define bcmolt_xpon_serdes_cfg_id_rx_dfe4                                                       BCMOLT_XPON_SERDES_CFG_ID_RX_DFE4
+#define bcmolt_xpon_serdes_cfg_id_rx_dfe5                                                       BCMOLT_XPON_SERDES_CFG_ID_RX_DFE5
+#define bcmolt_xpon_serdes_cfg_id_tx_pre                                                        BCMOLT_XPON_SERDES_CFG_ID_TX_PRE
+#define bcmolt_xpon_serdes_cfg_id_tx_main                                                       BCMOLT_XPON_SERDES_CFG_ID_TX_MAIN
+#define bcmolt_xpon_serdes_cfg_id_tx_post1                                                      BCMOLT_XPON_SERDES_CFG_ID_TX_POST1
+#define bcmolt_xpon_serdes_cfg_id_tx_post2                                                      BCMOLT_XPON_SERDES_CFG_ID_TX_POST2
+#define bcmolt_xpon_serdes_cfg_id_tx_post3                                                      BCMOLT_XPON_SERDES_CFG_ID_TX_POST3
+#define bcmolt_xpon_serdes_cfg_id_tx_amp                                                        BCMOLT_XPON_SERDES_CFG_ID_TX_AMP
+#define bcmolt_xpon_serdes_cfg_id__num_of                                                       BCMOLT_XPON_SERDES_CFG_ID__NUM_OF
+
+/** Checks whether the given object type has the given tag. 
+ *
+ * \return true if the given object has the given tag, false otherwise 
+ */
+bcmos_bool bcmolt_obj_has_tag(bcmolt_obj_id obj, bcmolt_obj_tag tag);
+
+/** @} */
+#endif /* BCMOLT_MODEL_IDS_H_ */
diff --git a/bcm68620_release/release/host_driver/model/bcmolt_model_revision.h b/bcm68620_release/release/host_driver/model/bcmolt_model_revision.h
new file mode 100755
index 0000000..5f93880
--- /dev/null
+++ b/bcm68620_release/release/host_driver/model/bcmolt_model_revision.h
@@ -0,0 +1,47 @@
+/*
+<:copyright-BRCM:2016:proprietary:standard
+ 
+   Broadcom Proprietary and Confidential.(c) 2016 Broadcom
+   All Rights Reserved
+ 
+This program is the proprietary software of Broadcom Corporation and/or its
+licensors, and may only be used, duplicated, modified or distributed pursuant
+to the terms and conditions of a separate, written license agreement executed
+between you and Broadcom (an "Authorized License").  Except as set forth in
+an Authorized License, Broadcom grants no license (express or implied), right
+to use, or waiver of any kind with respect to the Software, and Broadcom
+expressly reserves all rights in and to the Software and all intellectual
+property rights therein.  IF YOU HAVE NO AUTHORIZED LICENSE, THEN YOU HAVE
+NO RIGHT TO USE THIS SOFTWARE IN ANY WAY, AND SHOULD IMMEDIATELY NOTIFY
+BROADCOM AND DISCONTINUE ALL USE OF THE SOFTWARE.
+ 
+Except as expressly set forth in the Authorized License,
+ 
+1. This program, including its structure, sequence and organization,
+    constitutes the valuable trade secrets of Broadcom, and you shall use
+    all reasonable efforts to protect the confidentiality thereof, and to
+    use this information only in connection with your use of Broadcom
+    integrated circuit products.
+ 
+2. TO THE MAXIMUM EXTENT PERMITTED BY LAW, THE SOFTWARE IS PROVIDED "AS IS"
+    AND WITH ALL FAULTS AND BROADCOM MAKES NO PROMISES, REPRESENTATIONS OR
+    WARRANTIES, EITHER EXPRESS, IMPLIED, STATUTORY, OR OTHERWISE, WITH
+    RESPECT TO THE SOFTWARE.  BROADCOM SPECIFICALLY DISCLAIMS ANY AND
+    ALL IMPLIED WARRANTIES OF TITLE, MERCHANTABILITY, NONINFRINGEMENT,
+    FITNESS FOR A PARTICULAR PURPOSE, LACK OF VIRUSES, ACCURACY OR
+    COMPLETENESS, QUIET ENJOYMENT, QUIET POSSESSION OR CORRESPONDENCE
+    TO DESCRIPTION. YOU ASSUME THE ENTIRE RISK ARISING OUT OF USE OR
+    PERFORMANCE OF THE SOFTWARE.
+ 
+3. TO THE MAXIMUM EXTENT PERMITTED BY LAW, IN NO EVENT SHALL BROADCOM OR
+    ITS LICENSORS BE LIABLE FOR (i) CONSEQUENTIAL, INCIDENTAL, SPECIAL,
+    INDIRECT, OR EXEMPLARY DAMAGES WHATSOEVER ARISING OUT OF OR IN ANY
+    WAY RELATING TO YOUR USE OF OR INABILITY TO USE THE SOFTWARE EVEN
+    IF BROADCOM HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES;
+    OR (ii) ANY AMOUNT IN EXCESS OF THE AMOUNT ACTUALLY PAID FOR THE
+    SOFTWARE ITSELF OR U.S. $1, WHICHEVER IS GREATER. THESE LIMITATIONS
+    SHALL APPLY NOTWITHSTANDING ANY FAILURE OF ESSENTIAL PURPOSE OF ANY
+    LIMITED REMEDY.
+:>
+*/
+#define BCMOLT_MODEL_REVISION 1
diff --git a/bcm68620_release/release/host_driver/model/bcmolt_model_types.c b/bcm68620_release/release/host_driver/model/bcmolt_model_types.c
new file mode 100644
index 0000000..cce3c31
--- /dev/null
+++ b/bcm68620_release/release/host_driver/model/bcmolt_model_types.c
@@ -0,0 +1,105484 @@
+/*
+<:copyright-BRCM:2016:proprietary:standard
+
+   Broadcom Proprietary and Confidential.(c) 2016 Broadcom
+   All Rights Reserved
+
+This program is the proprietary software of Broadcom Corporation and/or its
+licensors, and may only be used, duplicated, modified or distributed pursuant
+to the terms and conditions of a separate, written license agreement executed
+between you and Broadcom (an "Authorized License").  Except as set forth in
+an Authorized License, Broadcom grants no license (express or implied), right
+to use, or waiver of any kind with respect to the Software, and Broadcom
+expressly reserves all rights in and to the Software and all intellectual
+property rights therein.  IF YOU HAVE NO AUTHORIZED LICENSE, THEN YOU HAVE
+NO RIGHT TO USE THIS SOFTWARE IN ANY WAY, AND SHOULD IMMEDIATELY NOTIFY
+BROADCOM AND DISCONTINUE ALL USE OF THE SOFTWARE.
+
+Except as expressly set forth in the Authorized License,
+
+1. This program, including its structure, sequence and organization,
+    constitutes the valuable trade secrets of Broadcom, and you shall use
+    all reasonable efforts to protect the confidentiality thereof, and to
+    use this information only in connection with your use of Broadcom
+    integrated circuit products.
+
+2. TO THE MAXIMUM EXTENT PERMITTED BY LAW, THE SOFTWARE IS PROVIDED "AS IS"
+    AND WITH ALL FAULTS AND BROADCOM MAKES NO PROMISES, REPRESENTATIONS OR
+    WARRANTIES, EITHER EXPRESS, IMPLIED, STATUTORY, OR OTHERWISE, WITH
+    RESPECT TO THE SOFTWARE.  BROADCOM SPECIFICALLY DISCLAIMS ANY AND
+    ALL IMPLIED WARRANTIES OF TITLE, MERCHANTABILITY, NONINFRINGEMENT,
+    FITNESS FOR A PARTICULAR PURPOSE, LACK OF VIRUSES, ACCURACY OR
+    COMPLETENESS, QUIET ENJOYMENT, QUIET POSSESSION OR CORRESPONDENCE
+    TO DESCRIPTION. YOU ASSUME THE ENTIRE RISK ARISING OUT OF USE OR
+    PERFORMANCE OF THE SOFTWARE.
+
+3. TO THE MAXIMUM EXTENT PERMITTED BY LAW, IN NO EVENT SHALL BROADCOM OR
+    ITS LICENSORS BE LIABLE FOR (i) CONSEQUENTIAL, INCIDENTAL, SPECIAL,
+    INDIRECT, OR EXEMPLARY DAMAGES WHATSOEVER ARISING OUT OF OR IN ANY
+    WAY RELATING TO YOUR USE OF OR INABILITY TO USE THE SOFTWARE EVEN
+    IF BROADCOM HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES;
+    OR (ii) ANY AMOUNT IN EXCESS OF THE AMOUNT ACTUALLY PAID FOR THE
+    SOFTWARE ITSELF OR U.S. $1, WHICHEVER IS GREATER. THESE LIMITATIONS
+    SHALL APPLY NOTWITHSTANDING ANY FAILURE OF ESSENTIAL PURPOSE OF ANY
+    LIMITED REMEDY.
+:>
+*/
+#include "bcmolt_model_types.h"
+#include "bcmolt_model_ids.h"
+
+/******************************************************************************/
+bcmos_bool bcmolt_activation_fail_reason_pack(bcmolt_activation_fail_reason this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u8(buf, (uint8_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_activation_fail_reason_unpack(bcmolt_activation_fail_reason *this, bcmolt_buf *buf)
+{
+    uint8_t num_val;
+    if (!bcmolt_buf_read_u8(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_additional_bw_eligibility_pack(bcmolt_additional_bw_eligibility this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u8(buf, (uint8_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_additional_bw_eligibility_unpack(bcmolt_additional_bw_eligibility *this, bcmolt_buf *buf)
+{
+    uint8_t num_val;
+    if (!bcmolt_buf_read_u8(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_ae_ni_cfg_id_pack(bcmolt_ae_ni_cfg_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_ae_ni_cfg_id_unpack(bcmolt_ae_ni_cfg_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_ae_ni_en_state_pack(bcmolt_ae_ni_en_state this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u8(buf, (uint8_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_ae_ni_en_state_unpack(bcmolt_ae_ni_en_state *this, bcmolt_buf *buf)
+{
+    uint8_t num_val;
+    if (!bcmolt_buf_read_u8(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_ae_ni_key_id_pack(bcmolt_ae_ni_key_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_ae_ni_key_id_unpack(bcmolt_ae_ni_key_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_ae_ni_set_ae_ni_en_state_id_pack(bcmolt_ae_ni_set_ae_ni_en_state_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_ae_ni_set_ae_ni_en_state_id_unpack(bcmolt_ae_ni_set_ae_ni_en_state_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_ae_path_ds_auto_cfg_id_pack(bcmolt_ae_path_ds_auto_cfg_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_ae_path_ds_auto_cfg_id_unpack(bcmolt_ae_path_ds_auto_cfg_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_ae_path_ds_key_id_pack(bcmolt_ae_path_ds_key_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_ae_path_ds_key_id_unpack(bcmolt_ae_path_ds_key_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_ae_path_ds_stat_alarm_cleared_id_pack(bcmolt_ae_path_ds_stat_alarm_cleared_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_ae_path_ds_stat_alarm_cleared_id_unpack(bcmolt_ae_path_ds_stat_alarm_cleared_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_ae_path_ds_stat_alarm_raised_id_pack(bcmolt_ae_path_ds_stat_alarm_raised_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_ae_path_ds_stat_alarm_raised_id_unpack(bcmolt_ae_path_ds_stat_alarm_raised_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_ae_path_ds_stat_cfg_id_pack(bcmolt_ae_path_ds_stat_cfg_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_ae_path_ds_stat_cfg_id_unpack(bcmolt_ae_path_ds_stat_cfg_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_ae_path_ds_stat_id_pack(bcmolt_ae_path_ds_stat_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_ae_path_ds_stat_id_unpack(bcmolt_ae_path_ds_stat_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_ae_path_us_auto_cfg_id_pack(bcmolt_ae_path_us_auto_cfg_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_ae_path_us_auto_cfg_id_unpack(bcmolt_ae_path_us_auto_cfg_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_ae_path_us_key_id_pack(bcmolt_ae_path_us_key_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_ae_path_us_key_id_unpack(bcmolt_ae_path_us_key_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_ae_path_us_stat_alarm_cleared_id_pack(bcmolt_ae_path_us_stat_alarm_cleared_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_ae_path_us_stat_alarm_cleared_id_unpack(bcmolt_ae_path_us_stat_alarm_cleared_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_ae_path_us_stat_alarm_raised_id_pack(bcmolt_ae_path_us_stat_alarm_raised_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_ae_path_us_stat_alarm_raised_id_unpack(bcmolt_ae_path_us_stat_alarm_raised_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_ae_path_us_stat_cfg_id_pack(bcmolt_ae_path_us_stat_cfg_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_ae_path_us_stat_cfg_id_unpack(bcmolt_ae_path_us_stat_cfg_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_ae_path_us_stat_id_pack(bcmolt_ae_path_us_stat_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_ae_path_us_stat_id_unpack(bcmolt_ae_path_us_stat_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_alloc_operation_pack(bcmolt_alloc_operation this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u8(buf, (uint8_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_alloc_operation_unpack(bcmolt_alloc_operation *this, bcmolt_buf *buf)
+{
+    uint8_t num_val;
+    if (!bcmolt_buf_read_u8(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_alloc_state_pack(bcmolt_alloc_state this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u8(buf, (uint8_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_alloc_state_unpack(bcmolt_alloc_state *this, bcmolt_buf *buf)
+{
+    uint8_t num_val;
+    if (!bcmolt_buf_read_u8(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_alloc_type_pack(bcmolt_alloc_type this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u8(buf, (uint8_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_alloc_type_unpack(bcmolt_alloc_type *this, bcmolt_buf *buf)
+{
+    uint8_t num_val;
+    if (!bcmolt_buf_read_u8(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_alloc_type_to_scan_pack(bcmolt_alloc_type_to_scan this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u8(buf, (uint8_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_alloc_type_to_scan_unpack(bcmolt_alloc_type_to_scan *this, bcmolt_buf *buf)
+{
+    uint8_t num_val;
+    if (!bcmolt_buf_read_u8(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_api_capture_buffer_mode_pack(bcmolt_api_capture_buffer_mode this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u8(buf, (uint8_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_api_capture_buffer_mode_unpack(bcmolt_api_capture_buffer_mode *this, bcmolt_buf *buf)
+{
+    uint8_t num_val;
+    if (!bcmolt_buf_read_u8(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_api_capture_location_pack(bcmolt_api_capture_location this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u8(buf, (uint8_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_api_capture_location_unpack(bcmolt_api_capture_location *this, bcmolt_buf *buf)
+{
+    uint8_t num_val;
+    if (!bcmolt_buf_read_u8(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_calibration_record_pack(bcmolt_calibration_record this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u8(buf, (uint8_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_calibration_record_unpack(bcmolt_calibration_record *this, bcmolt_buf *buf)
+{
+    uint8_t num_val;
+    if (!bcmolt_buf_read_u8(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_sign_pack(bcmolt_sign this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u8(buf, (uint8_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_sign_unpack(bcmolt_sign *this, bcmolt_buf *buf)
+{
+    uint8_t num_val;
+    if (!bcmolt_buf_read_u8(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_upstream_line_rate_capabilities_pack(bcmolt_upstream_line_rate_capabilities this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u8(buf, (uint8_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_upstream_line_rate_capabilities_unpack(bcmolt_upstream_line_rate_capabilities *this, bcmolt_buf *buf)
+{
+    uint8_t num_val;
+    if (!bcmolt_buf_read_u8(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_link_type_pack(bcmolt_link_type this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u8(buf, (uint8_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_link_type_unpack(bcmolt_link_type *this, bcmolt_buf *buf)
+{
+    uint8_t num_val;
+    if (!bcmolt_buf_read_u8(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_capture_strobe_signal_pack(bcmolt_capture_strobe_signal this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u8(buf, (uint8_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_capture_strobe_signal_unpack(bcmolt_capture_strobe_signal *this, bcmolt_buf *buf)
+{
+    uint8_t num_val;
+    if (!bcmolt_buf_read_u8(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_channel_cfg_id_pack(bcmolt_channel_cfg_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_channel_cfg_id_unpack(bcmolt_channel_cfg_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_channel_key_id_pack(bcmolt_channel_key_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_channel_key_id_unpack(bcmolt_channel_key_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_console_redirection_pack(bcmolt_console_redirection this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u8(buf, (uint8_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_console_redirection_unpack(bcmolt_console_redirection *this, bcmolt_buf *buf)
+{
+    uint8_t num_val;
+    if (!bcmolt_buf_read_u8(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_control_state_pack(bcmolt_control_state this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u8(buf, (uint8_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_control_state_unpack(bcmolt_control_state *this, bcmolt_buf *buf)
+{
+    uint8_t num_val;
+    if (!bcmolt_buf_read_u8(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_dba_mode_pack(bcmolt_dba_mode this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u8(buf, (uint8_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_dba_mode_unpack(bcmolt_dba_mode *this, bcmolt_buf *buf)
+{
+    uint8_t num_val;
+    if (!bcmolt_buf_read_u8(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_dba_ram_pack(bcmolt_dba_ram this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u8(buf, (uint8_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_dba_ram_unpack(bcmolt_dba_ram *this, bcmolt_buf *buf)
+{
+    uint8_t num_val;
+    if (!bcmolt_buf_read_u8(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_dba_type_pack(bcmolt_dba_type this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u8(buf, (uint8_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_dba_type_unpack(bcmolt_dba_type *this, bcmolt_buf *buf)
+{
+    uint8_t num_val;
+    if (!bcmolt_buf_read_u8(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_ddr_test_status_pack(bcmolt_ddr_test_status this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u8(buf, (uint8_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_ddr_test_status_unpack(bcmolt_ddr_test_status *this, bcmolt_buf *buf)
+{
+    uint8_t num_val;
+    if (!bcmolt_buf_read_u8(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_ddr_test_result_pack(bcmolt_ddr_test_result this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u8(buf, (uint8_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_ddr_test_result_unpack(bcmolt_ddr_test_result *this, bcmolt_buf *buf)
+{
+    uint8_t num_val;
+    if (!bcmolt_buf_read_u8(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_host_connection_fail_reason_pack(bcmolt_host_connection_fail_reason this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u8(buf, (uint8_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_host_connection_fail_reason_unpack(bcmolt_host_connection_fail_reason *this, bcmolt_buf *buf)
+{
+    uint8_t num_val;
+    if (!bcmolt_buf_read_u8(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_deactivation_reason_pack(bcmolt_deactivation_reason this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u8(buf, (uint8_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_deactivation_reason_unpack(bcmolt_deactivation_reason *this, bcmolt_buf *buf)
+{
+    uint8_t num_val;
+    if (!bcmolt_buf_read_u8(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_debug_auto_cfg_id_pack(bcmolt_debug_auto_cfg_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_debug_auto_cfg_id_unpack(bcmolt_debug_auto_cfg_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_debug_cfg_id_pack(bcmolt_debug_cfg_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_debug_cfg_id_unpack(bcmolt_debug_cfg_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_debug_cli_input_id_pack(bcmolt_debug_cli_input_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_debug_cli_input_id_unpack(bcmolt_debug_cli_input_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_debug_cli_output_id_pack(bcmolt_debug_cli_output_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_debug_cli_output_id_unpack(bcmolt_debug_cli_output_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_debug_file_almost_full_id_pack(bcmolt_debug_file_almost_full_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_debug_file_almost_full_id_unpack(bcmolt_debug_file_almost_full_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_debug_key_id_pack(bcmolt_debug_key_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_debug_key_id_unpack(bcmolt_debug_key_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_debug_reset_api_capture_id_pack(bcmolt_debug_reset_api_capture_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_debug_reset_api_capture_id_unpack(bcmolt_debug_reset_api_capture_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_debug_start_api_capture_id_pack(bcmolt_debug_start_api_capture_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_debug_start_api_capture_id_unpack(bcmolt_debug_start_api_capture_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_debug_stop_api_capture_id_pack(bcmolt_debug_stop_api_capture_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_debug_stop_api_capture_id_unpack(bcmolt_debug_stop_api_capture_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_device_auto_cfg_id_pack(bcmolt_device_auto_cfg_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_device_auto_cfg_id_unpack(bcmolt_device_auto_cfg_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_device_cfg_id_pack(bcmolt_device_cfg_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_device_cfg_id_unpack(bcmolt_device_cfg_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_device_chip_revision_pack(bcmolt_device_chip_revision this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u8(buf, (uint8_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_device_chip_revision_unpack(bcmolt_device_chip_revision *this, bcmolt_buf *buf)
+{
+    uint8_t num_val;
+    if (!bcmolt_buf_read_u8(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_device_connect_id_pack(bcmolt_device_connect_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_device_connect_id_unpack(bcmolt_device_connect_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_device_connection_complete_id_pack(bcmolt_device_connection_complete_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_device_connection_complete_id_unpack(bcmolt_device_connection_complete_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_device_connection_established_id_pack(bcmolt_device_connection_established_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_device_connection_established_id_unpack(bcmolt_device_connection_established_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_device_connection_failure_id_pack(bcmolt_device_connection_failure_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_device_connection_failure_id_unpack(bcmolt_device_connection_failure_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_device_ddr_test_complete_id_pack(bcmolt_device_ddr_test_complete_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_device_ddr_test_complete_id_unpack(bcmolt_device_ddr_test_complete_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_device_device_keep_alive_id_pack(bcmolt_device_device_keep_alive_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_device_device_keep_alive_id_unpack(bcmolt_device_device_keep_alive_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_device_device_ready_id_pack(bcmolt_device_device_ready_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_device_device_ready_id_unpack(bcmolt_device_device_ready_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_device_disconnect_id_pack(bcmolt_device_disconnect_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_device_disconnect_id_unpack(bcmolt_device_disconnect_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_device_disconnection_complete_id_pack(bcmolt_device_disconnection_complete_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_device_disconnection_complete_id_unpack(bcmolt_device_disconnection_complete_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_device_host_keep_alive_id_pack(bcmolt_device_host_keep_alive_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_device_host_keep_alive_id_unpack(bcmolt_device_host_keep_alive_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_device_image_transfer_complete_id_pack(bcmolt_device_image_transfer_complete_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_device_image_transfer_complete_id_unpack(bcmolt_device_image_transfer_complete_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_device_image_transfer_data_id_pack(bcmolt_device_image_transfer_data_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_device_image_transfer_data_id_unpack(bcmolt_device_image_transfer_data_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_device_image_transfer_start_id_pack(bcmolt_device_image_transfer_start_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_device_image_transfer_start_id_unpack(bcmolt_device_image_transfer_start_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_device_image_type_pack(bcmolt_device_image_type this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u8(buf, (uint8_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_device_image_type_unpack(bcmolt_device_image_type *this, bcmolt_buf *buf)
+{
+    uint8_t num_val;
+    if (!bcmolt_buf_read_u8(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_device_indications_dropped_id_pack(bcmolt_device_indications_dropped_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_device_indications_dropped_id_unpack(bcmolt_device_indications_dropped_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_device_key_id_pack(bcmolt_device_key_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_device_key_id_unpack(bcmolt_device_key_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_nni_speed_pack(bcmolt_nni_speed this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u8(buf, (uint8_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_nni_speed_unpack(bcmolt_nni_speed *this, bcmolt_buf *buf)
+{
+    uint8_t num_val;
+    if (!bcmolt_buf_read_u8(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_device_reset_id_pack(bcmolt_device_reset_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_device_reset_id_unpack(bcmolt_device_reset_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_device_reset_mode_pack(bcmolt_device_reset_mode this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u8(buf, (uint8_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_device_reset_mode_unpack(bcmolt_device_reset_mode *this, bcmolt_buf *buf)
+{
+    uint8_t num_val;
+    if (!bcmolt_buf_read_u8(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_device_run_ddr_test_id_pack(bcmolt_device_run_ddr_test_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_device_run_ddr_test_id_unpack(bcmolt_device_run_ddr_test_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_device_state_pack(bcmolt_device_state this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_device_state_unpack(bcmolt_device_state *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_device_sw_error_id_pack(bcmolt_device_sw_error_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_device_sw_error_id_unpack(bcmolt_device_sw_error_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_device_sw_exception_id_pack(bcmolt_device_sw_exception_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_device_sw_exception_id_unpack(bcmolt_device_sw_exception_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_device_sw_upgrade_activate_id_pack(bcmolt_device_sw_upgrade_activate_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_device_sw_upgrade_activate_id_unpack(bcmolt_device_sw_upgrade_activate_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_disable_serial_number_control_pack(bcmolt_disable_serial_number_control this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u8(buf, (uint8_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_disable_serial_number_control_unpack(bcmolt_disable_serial_number_control *this, bcmolt_buf *buf)
+{
+    uint8_t num_val;
+    if (!bcmolt_buf_read_u8(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_drv_icf_id_pack(bcmolt_drv_icf_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u8(buf, (uint8_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_drv_icf_id_unpack(bcmolt_drv_icf_id *this, bcmolt_buf *buf)
+{
+    uint8_t num_val;
+    if (!bcmolt_buf_read_u8(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_drv_sgb_id_pack(bcmolt_drv_sgb_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u8(buf, (uint8_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_drv_sgb_id_unpack(bcmolt_drv_sgb_id *this, bcmolt_buf *buf)
+{
+    uint8_t num_val;
+    if (!bcmolt_buf_read_u8(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_ds_vlan_action_pack(bcmolt_ds_vlan_action this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u8(buf, (uint8_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_ds_vlan_action_unpack(bcmolt_ds_vlan_action *this, bcmolt_buf *buf)
+{
+    uint8_t num_val;
+    if (!bcmolt_buf_read_u8(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_tfb_trap_behavior_pack(bcmolt_tfb_trap_behavior this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u8(buf, (uint8_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_tfb_trap_behavior_unpack(bcmolt_tfb_trap_behavior *this, bcmolt_buf *buf)
+{
+    uint8_t num_val;
+    if (!bcmolt_buf_read_u8(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_tfb_mode_pack(bcmolt_tfb_mode this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u8(buf, (uint8_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_tfb_mode_unpack(bcmolt_tfb_mode *this, bcmolt_buf *buf)
+{
+    uint8_t num_val;
+    if (!bcmolt_buf_read_u8(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_lim_sec_mode_up_pack(bcmolt_lim_sec_mode_up this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u8(buf, (uint8_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_lim_sec_mode_up_unpack(bcmolt_lim_sec_mode_up *this, bcmolt_buf *buf)
+{
+    uint8_t num_val;
+    if (!bcmolt_buf_read_u8(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_lim_sec_mode_dn_pack(bcmolt_lim_sec_mode_dn this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u8(buf, (uint8_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_lim_sec_mode_dn_unpack(bcmolt_lim_sec_mode_dn *this, bcmolt_buf *buf)
+{
+    uint8_t num_val;
+    if (!bcmolt_buf_read_u8(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xim_sec_mode_pack(bcmolt_xim_sec_mode this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u8(buf, (uint8_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xim_sec_mode_unpack(bcmolt_xim_sec_mode *this, bcmolt_buf *buf)
+{
+    uint8_t num_val;
+    if (!bcmolt_buf_read_u8(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_hsc_ram_pack(bcmolt_hsc_ram this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u8(buf, (uint8_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_hsc_ram_unpack(bcmolt_hsc_ram *this, bcmolt_buf *buf)
+{
+    uint8_t num_val;
+    if (!bcmolt_buf_read_u8(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_lim_ram_pack(bcmolt_lim_ram this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u8(buf, (uint8_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_lim_ram_unpack(bcmolt_lim_ram *this, bcmolt_buf *buf)
+{
+    uint8_t num_val;
+    if (!bcmolt_buf_read_u8(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_lky_ram_pack(bcmolt_lky_ram this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u8(buf, (uint8_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_lky_ram_unpack(bcmolt_lky_ram *this, bcmolt_buf *buf)
+{
+    uint8_t num_val;
+    if (!bcmolt_buf_read_u8(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_mic_ram_pack(bcmolt_mic_ram this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u8(buf, (uint8_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_mic_ram_unpack(bcmolt_mic_ram *this, bcmolt_buf *buf)
+{
+    uint8_t num_val;
+    if (!bcmolt_buf_read_u8(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xpcsrm_ram_pack(bcmolt_xpcsrm_ram this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u8(buf, (uint8_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xpcsrm_ram_unpack(bcmolt_xpcsrm_ram *this, bcmolt_buf *buf)
+{
+    uint8_t num_val;
+    if (!bcmolt_buf_read_u8(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_embedded_image_transfer_status_pack(bcmolt_embedded_image_transfer_status this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u8(buf, (uint8_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_embedded_image_transfer_status_unpack(bcmolt_embedded_image_transfer_status *this, bcmolt_buf *buf)
+{
+    uint8_t num_val;
+    if (!bcmolt_buf_read_u8(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_encryption_information_format_pack(bcmolt_epon_encryption_information_format this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u8(buf, (uint8_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_encryption_information_format_unpack(bcmolt_epon_encryption_information_format *this, bcmolt_buf *buf)
+{
+    uint8_t num_val;
+    if (!bcmolt_buf_read_u8(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_energy_detect_source_pack(bcmolt_energy_detect_source this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u8(buf, (uint8_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_energy_detect_source_unpack(bcmolt_energy_detect_source *this, bcmolt_buf *buf)
+{
+    uint8_t num_val;
+    if (!bcmolt_buf_read_u8(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_1g_turbo_mode_pack(bcmolt_epon_1g_turbo_mode this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u8(buf, (uint8_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_1g_turbo_mode_unpack(bcmolt_epon_1g_turbo_mode *this, bcmolt_buf *buf)
+{
+    uint8_t num_val;
+    if (!bcmolt_buf_read_u8(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_clock_transport_mode_pack(bcmolt_epon_clock_transport_mode this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u8(buf, (uint8_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_clock_transport_mode_unpack(bcmolt_epon_clock_transport_mode *this, bcmolt_buf *buf)
+{
+    uint8_t num_val;
+    if (!bcmolt_buf_read_u8(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_dba_reporting_mode_pack(bcmolt_epon_dba_reporting_mode this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u8(buf, (uint8_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_dba_reporting_mode_unpack(bcmolt_epon_dba_reporting_mode *this, bcmolt_buf *buf)
+{
+    uint8_t num_val;
+    if (!bcmolt_buf_read_u8(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_link_rate_pack(bcmolt_epon_link_rate this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_link_rate_unpack(bcmolt_epon_link_rate *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_status_pack(bcmolt_status this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u8(buf, (uint8_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_status_unpack(bcmolt_status *this, bcmolt_buf *buf)
+{
+    uint8_t num_val;
+    if (!bcmolt_buf_read_u8(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_denied_link_auto_cfg_id_pack(bcmolt_epon_denied_link_auto_cfg_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_denied_link_auto_cfg_id_unpack(bcmolt_epon_denied_link_auto_cfg_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_denied_link_cfg_id_pack(bcmolt_epon_denied_link_cfg_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_denied_link_cfg_id_unpack(bcmolt_epon_denied_link_cfg_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_denied_link_key_id_pack(bcmolt_epon_denied_link_key_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_denied_link_key_id_unpack(bcmolt_epon_denied_link_key_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_denied_link_laser_on_off_violation_id_pack(bcmolt_epon_denied_link_laser_on_off_violation_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_denied_link_laser_on_off_violation_id_unpack(bcmolt_epon_denied_link_laser_on_off_violation_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_denied_link_llid_pool_empty_violation_id_pack(bcmolt_epon_denied_link_llid_pool_empty_violation_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_denied_link_llid_pool_empty_violation_id_unpack(bcmolt_epon_denied_link_llid_pool_empty_violation_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_denied_link_max_link_violation_id_pack(bcmolt_epon_denied_link_max_link_violation_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_denied_link_max_link_violation_id_unpack(bcmolt_epon_denied_link_max_link_violation_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_denied_link_overhead_profile_violation_id_pack(bcmolt_epon_denied_link_overhead_profile_violation_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_denied_link_overhead_profile_violation_id_unpack(bcmolt_epon_denied_link_overhead_profile_violation_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_denied_link_range_violation_id_pack(bcmolt_epon_denied_link_range_violation_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_denied_link_range_violation_id_unpack(bcmolt_epon_denied_link_range_violation_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_denied_link_rogue_violation_id_pack(bcmolt_epon_denied_link_rogue_violation_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_denied_link_rogue_violation_id_unpack(bcmolt_epon_denied_link_rogue_violation_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_denied_link_system_resource_violation_id_pack(bcmolt_epon_denied_link_system_resource_violation_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_denied_link_system_resource_violation_id_unpack(bcmolt_epon_denied_link_system_resource_violation_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_denied_link_tdm_channels_exhausted_id_pack(bcmolt_epon_denied_link_tdm_channels_exhausted_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_denied_link_tdm_channels_exhausted_id_unpack(bcmolt_epon_denied_link_tdm_channels_exhausted_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_denied_link_unknown_link_violation_id_pack(bcmolt_epon_denied_link_unknown_link_violation_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_denied_link_unknown_link_violation_id_unpack(bcmolt_epon_denied_link_unknown_link_violation_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_denied_link_upstream_bandwidth_violation_id_pack(bcmolt_epon_denied_link_upstream_bandwidth_violation_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_denied_link_upstream_bandwidth_violation_id_unpack(bcmolt_epon_denied_link_upstream_bandwidth_violation_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_encryption_mode_pack(bcmolt_epon_encryption_mode this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_encryption_mode_unpack(bcmolt_epon_encryption_mode *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_key_choice_pack(bcmolt_epon_key_choice this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u8(buf, (uint8_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_key_choice_unpack(bcmolt_epon_key_choice *this, bcmolt_buf *buf)
+{
+    uint8_t num_val;
+    if (!bcmolt_buf_read_u8(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_encryption_direction_pack(bcmolt_epon_encryption_direction this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u8(buf, (uint8_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_encryption_direction_unpack(bcmolt_epon_encryption_direction *this, bcmolt_buf *buf)
+{
+    uint8_t num_val;
+    if (!bcmolt_buf_read_u8(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_fec_en_state_pack(bcmolt_epon_fec_en_state this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u8(buf, (uint8_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_fec_en_state_unpack(bcmolt_epon_fec_en_state *this, bcmolt_buf *buf)
+{
+    uint8_t num_val;
+    if (!bcmolt_buf_read_u8(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_oam_type_pack(bcmolt_epon_oam_type this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_oam_type_unpack(bcmolt_epon_oam_type *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_link_auto_cfg_id_pack(bcmolt_epon_link_auto_cfg_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_link_auto_cfg_id_unpack(bcmolt_epon_link_auto_cfg_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_link_cfg_id_pack(bcmolt_epon_link_cfg_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_link_cfg_id_unpack(bcmolt_epon_link_cfg_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_link_delete_link_id_pack(bcmolt_epon_link_delete_link_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_link_delete_link_id_unpack(bcmolt_epon_link_delete_link_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_link_duplicate_mpcp_registration_request_id_pack(bcmolt_epon_link_duplicate_mpcp_registration_request_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_link_duplicate_mpcp_registration_request_id_unpack(bcmolt_epon_link_duplicate_mpcp_registration_request_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_link_encryption_enabled_id_pack(bcmolt_epon_link_encryption_enabled_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_link_encryption_enabled_id_unpack(bcmolt_epon_link_encryption_enabled_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_link_fec_state_pack(bcmolt_epon_link_fec_state this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u8(buf, (uint8_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_link_fec_state_unpack(bcmolt_epon_link_fec_state *this, bcmolt_buf *buf)
+{
+    uint8_t num_val;
+    if (!bcmolt_buf_read_u8(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_link_force_rediscovery_id_pack(bcmolt_epon_link_force_rediscovery_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_link_force_rediscovery_id_unpack(bcmolt_epon_link_force_rediscovery_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_link_frame_captured_id_pack(bcmolt_epon_link_frame_captured_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_link_frame_captured_id_unpack(bcmolt_epon_link_frame_captured_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_link_status_pack(bcmolt_epon_link_status this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u8(buf, (uint8_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_link_status_unpack(bcmolt_epon_link_status *this, bcmolt_buf *buf)
+{
+    uint8_t num_val;
+    if (!bcmolt_buf_read_u8(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_mpcp_discovery_info_pack(bcmolt_mpcp_discovery_info this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_mpcp_discovery_info_unpack(bcmolt_mpcp_discovery_info *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_link_inject_frame_id_pack(bcmolt_epon_link_inject_frame_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_link_inject_frame_id_unpack(bcmolt_epon_link_inject_frame_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_link_key_exchange_failure_id_pack(bcmolt_epon_link_key_exchange_failure_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_link_key_exchange_failure_id_unpack(bcmolt_epon_link_key_exchange_failure_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_link_key_exchange_start_id_pack(bcmolt_epon_link_key_exchange_start_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_link_key_exchange_start_id_unpack(bcmolt_epon_link_key_exchange_start_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_link_key_exchange_started_id_pack(bcmolt_epon_link_key_exchange_started_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_link_key_exchange_started_id_unpack(bcmolt_epon_link_key_exchange_started_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_link_key_exchange_stop_id_pack(bcmolt_epon_link_key_exchange_stop_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_link_key_exchange_stop_id_unpack(bcmolt_epon_link_key_exchange_stop_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_link_key_exchange_stopped_id_pack(bcmolt_epon_link_key_exchange_stopped_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_link_key_exchange_stopped_id_unpack(bcmolt_epon_link_key_exchange_stopped_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_link_key_id_pack(bcmolt_epon_link_key_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_link_key_id_unpack(bcmolt_epon_link_key_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_link_link_deleted_id_pack(bcmolt_epon_link_link_deleted_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_link_link_deleted_id_unpack(bcmolt_epon_link_link_deleted_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_link_link_speed_mismatch_id_pack(bcmolt_epon_link_link_speed_mismatch_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_link_link_speed_mismatch_id_unpack(bcmolt_epon_link_link_speed_mismatch_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_link_mpcp_deregistered_id_pack(bcmolt_epon_link_mpcp_deregistered_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_link_mpcp_deregistered_id_unpack(bcmolt_epon_link_mpcp_deregistered_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_link_mpcp_discovered_id_pack(bcmolt_epon_link_mpcp_discovered_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_link_mpcp_discovered_id_unpack(bcmolt_epon_link_mpcp_discovered_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_link_mpcp_reg_ack_timeout_id_pack(bcmolt_epon_link_mpcp_reg_ack_timeout_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_link_mpcp_reg_ack_timeout_id_unpack(bcmolt_epon_link_mpcp_reg_ack_timeout_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_link_mpcp_report_timeout_id_pack(bcmolt_epon_link_mpcp_report_timeout_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_link_mpcp_report_timeout_id_unpack(bcmolt_epon_link_mpcp_report_timeout_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_link_oam_keepalive_timeout_id_pack(bcmolt_epon_link_oam_keepalive_timeout_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_link_oam_keepalive_timeout_id_unpack(bcmolt_epon_link_oam_keepalive_timeout_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_link_oam_keepalive_timer_start_id_pack(bcmolt_epon_link_oam_keepalive_timer_start_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_link_oam_keepalive_timer_start_id_unpack(bcmolt_epon_link_oam_keepalive_timer_start_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_link_oam_keepalive_timer_started_id_pack(bcmolt_epon_link_oam_keepalive_timer_started_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_link_oam_keepalive_timer_started_id_unpack(bcmolt_epon_link_oam_keepalive_timer_started_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_link_oam_keepalive_timer_stop_id_pack(bcmolt_epon_link_oam_keepalive_timer_stop_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_link_oam_keepalive_timer_stop_id_unpack(bcmolt_epon_link_oam_keepalive_timer_stop_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_link_oam_keepalive_timer_stopped_id_pack(bcmolt_epon_link_oam_keepalive_timer_stopped_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_link_oam_keepalive_timer_stopped_id_unpack(bcmolt_epon_link_oam_keepalive_timer_stopped_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_link_preprovisioned_link_created_id_pack(bcmolt_epon_link_preprovisioned_link_created_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_link_preprovisioned_link_created_id_unpack(bcmolt_epon_link_preprovisioned_link_created_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_link_protection_switch_occurred_id_pack(bcmolt_epon_link_protection_switch_occurred_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_link_protection_switch_occurred_id_unpack(bcmolt_epon_link_protection_switch_occurred_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_link_range_value_changed_id_pack(bcmolt_epon_link_range_value_changed_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_link_range_value_changed_id_unpack(bcmolt_epon_link_range_value_changed_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_link_rerange_failure_id_pack(bcmolt_epon_link_rerange_failure_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_link_rerange_failure_id_unpack(bcmolt_epon_link_rerange_failure_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_link_stat_alarm_cleared_id_pack(bcmolt_epon_link_stat_alarm_cleared_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_link_stat_alarm_cleared_id_unpack(bcmolt_epon_link_stat_alarm_cleared_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_link_stat_alarm_raised_id_pack(bcmolt_epon_link_stat_alarm_raised_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_link_stat_alarm_raised_id_unpack(bcmolt_epon_link_stat_alarm_raised_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_link_stat_cfg_id_pack(bcmolt_epon_link_stat_cfg_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_link_stat_cfg_id_unpack(bcmolt_epon_link_stat_cfg_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_link_stat_id_pack(bcmolt_epon_link_stat_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_link_stat_id_unpack(bcmolt_epon_link_stat_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_link_state_flags_pack(bcmolt_epon_link_state_flags this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u8(buf, (uint8_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_link_state_flags_unpack(bcmolt_epon_link_state_flags *this, bcmolt_buf *buf)
+{
+    uint8_t num_val;
+    if (!bcmolt_buf_read_u8(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_link_static_registration_done_id_pack(bcmolt_epon_link_static_registration_done_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_link_static_registration_done_id_unpack(bcmolt_epon_link_static_registration_done_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_link_static_registration_id_pack(bcmolt_epon_link_static_registration_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_link_static_registration_id_unpack(bcmolt_epon_link_static_registration_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_link_type_pack(bcmolt_epon_link_type this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u8(buf, (uint8_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_link_type_unpack(bcmolt_epon_link_type *this, bcmolt_buf *buf)
+{
+    uint8_t num_val;
+    if (!bcmolt_buf_read_u8(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_mpcp_gate_mode_pack(bcmolt_mpcp_gate_mode this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u8(buf, (uint8_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_mpcp_gate_mode_unpack(bcmolt_mpcp_gate_mode *this, bcmolt_buf *buf)
+{
+    uint8_t num_val;
+    if (!bcmolt_buf_read_u8(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_mpcp_registration_gate_flags_pack(bcmolt_mpcp_registration_gate_flags this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u32(buf, (uint32_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_mpcp_registration_gate_flags_unpack(bcmolt_mpcp_registration_gate_flags *this, bcmolt_buf *buf)
+{
+    uint32_t num_val;
+    if (!bcmolt_buf_read_u32(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_ni_add_link_id_pack(bcmolt_epon_ni_add_link_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_ni_add_link_id_unpack(bcmolt_epon_ni_add_link_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_ni_add_multicast_link_id_pack(bcmolt_epon_ni_add_multicast_link_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_ni_add_multicast_link_id_unpack(bcmolt_epon_ni_add_multicast_link_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_ni_add_protected_standby_link_id_pack(bcmolt_epon_ni_add_protected_standby_link_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_ni_add_protected_standby_link_id_unpack(bcmolt_epon_ni_add_protected_standby_link_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_ni_auto_cfg_id_pack(bcmolt_epon_ni_auto_cfg_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_ni_auto_cfg_id_unpack(bcmolt_epon_ni_auto_cfg_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_ni_auto_rogue_scan_10g_failure_id_pack(bcmolt_epon_ni_auto_rogue_scan_10g_failure_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_ni_auto_rogue_scan_10g_failure_id_unpack(bcmolt_epon_ni_auto_rogue_scan_10g_failure_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_ni_auto_rogue_scan_1g_failure_id_pack(bcmolt_epon_ni_auto_rogue_scan_1g_failure_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_ni_auto_rogue_scan_1g_failure_id_unpack(bcmolt_epon_ni_auto_rogue_scan_1g_failure_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_ni_cfg_id_pack(bcmolt_epon_ni_cfg_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_ni_cfg_id_unpack(bcmolt_epon_ni_cfg_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_ni_en_state_pack(bcmolt_epon_ni_en_state this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u8(buf, (uint8_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_ni_en_state_unpack(bcmolt_epon_ni_en_state *this, bcmolt_buf *buf)
+{
+    uint8_t num_val;
+    if (!bcmolt_buf_read_u8(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_ni_issue_rssi_grant_id_pack(bcmolt_epon_ni_issue_rssi_grant_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_ni_issue_rssi_grant_id_unpack(bcmolt_epon_ni_issue_rssi_grant_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_ni_key_id_pack(bcmolt_epon_ni_key_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_ni_key_id_unpack(bcmolt_epon_ni_key_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_ni_llid_quarantined_id_pack(bcmolt_epon_ni_llid_quarantined_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_ni_llid_quarantined_id_unpack(bcmolt_epon_ni_llid_quarantined_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_ni_mpcp_timestamp_changed_id_pack(bcmolt_epon_ni_mpcp_timestamp_changed_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_ni_mpcp_timestamp_changed_id_unpack(bcmolt_epon_ni_mpcp_timestamp_changed_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_ni_no_reports_id_pack(bcmolt_epon_ni_no_reports_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_ni_no_reports_id_unpack(bcmolt_epon_ni_no_reports_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_ni_onu_upgrade_complete_id_pack(bcmolt_epon_ni_onu_upgrade_complete_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_ni_onu_upgrade_complete_id_unpack(bcmolt_epon_ni_onu_upgrade_complete_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_ni_protection_switching_apply_rerange_delta_id_pack(bcmolt_epon_ni_protection_switching_apply_rerange_delta_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_ni_protection_switching_apply_rerange_delta_id_unpack(bcmolt_epon_ni_protection_switching_apply_rerange_delta_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_ni_rerange_failure_id_pack(bcmolt_epon_ni_rerange_failure_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_ni_rerange_failure_id_unpack(bcmolt_epon_ni_rerange_failure_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_ni_rogue_llid_scan_id_pack(bcmolt_epon_ni_rogue_llid_scan_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_ni_rogue_llid_scan_id_unpack(bcmolt_epon_ni_rogue_llid_scan_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_ni_rogue_scan_complete_id_pack(bcmolt_epon_ni_rogue_scan_complete_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_ni_rogue_scan_complete_id_unpack(bcmolt_epon_ni_rogue_scan_complete_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_ni_rssi_measurement_completed_id_pack(bcmolt_epon_ni_rssi_measurement_completed_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_ni_rssi_measurement_completed_id_unpack(bcmolt_epon_ni_rssi_measurement_completed_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_ni_set_epon_ni_en_state_id_pack(bcmolt_epon_ni_set_epon_ni_en_state_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_ni_set_epon_ni_en_state_id_unpack(bcmolt_epon_ni_set_epon_ni_en_state_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_ni_start_onu_upgrade_id_pack(bcmolt_epon_ni_start_onu_upgrade_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_ni_start_onu_upgrade_id_unpack(bcmolt_epon_ni_start_onu_upgrade_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_ni_state_change_completed_id_pack(bcmolt_epon_ni_state_change_completed_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_ni_state_change_completed_id_unpack(bcmolt_epon_ni_state_change_completed_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_oam_extension_type_pack(bcmolt_epon_oam_extension_type this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u8(buf, (uint8_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_oam_extension_type_unpack(bcmolt_epon_oam_extension_type *this, bcmolt_buf *buf)
+{
+    uint8_t num_val;
+    if (!bcmolt_buf_read_u8(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_onu_10g_us_auto_cfg_id_pack(bcmolt_epon_onu_10g_us_auto_cfg_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_onu_10g_us_auto_cfg_id_unpack(bcmolt_epon_onu_10g_us_auto_cfg_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_onu_10g_us_cfg_id_pack(bcmolt_epon_onu_10g_us_cfg_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_onu_10g_us_cfg_id_unpack(bcmolt_epon_onu_10g_us_cfg_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_onu_10g_us_key_id_pack(bcmolt_epon_onu_10g_us_key_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_onu_10g_us_key_id_unpack(bcmolt_epon_onu_10g_us_key_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_onu_10g_us_stat_alarm_cleared_id_pack(bcmolt_epon_onu_10g_us_stat_alarm_cleared_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_onu_10g_us_stat_alarm_cleared_id_unpack(bcmolt_epon_onu_10g_us_stat_alarm_cleared_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_onu_10g_us_stat_alarm_raised_id_pack(bcmolt_epon_onu_10g_us_stat_alarm_raised_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_onu_10g_us_stat_alarm_raised_id_unpack(bcmolt_epon_onu_10g_us_stat_alarm_raised_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_onu_10g_us_stat_cfg_id_pack(bcmolt_epon_onu_10g_us_stat_cfg_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_onu_10g_us_stat_cfg_id_unpack(bcmolt_epon_onu_10g_us_stat_cfg_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_onu_10g_us_stat_id_pack(bcmolt_epon_onu_10g_us_stat_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_onu_10g_us_stat_id_unpack(bcmolt_epon_onu_10g_us_stat_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_onu_1g_us_auto_cfg_id_pack(bcmolt_epon_onu_1g_us_auto_cfg_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_onu_1g_us_auto_cfg_id_unpack(bcmolt_epon_onu_1g_us_auto_cfg_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_onu_1g_us_cfg_id_pack(bcmolt_epon_onu_1g_us_cfg_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_onu_1g_us_cfg_id_unpack(bcmolt_epon_onu_1g_us_cfg_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_onu_1g_us_key_id_pack(bcmolt_epon_onu_1g_us_key_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_onu_1g_us_key_id_unpack(bcmolt_epon_onu_1g_us_key_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_onu_1g_us_stat_alarm_cleared_id_pack(bcmolt_epon_onu_1g_us_stat_alarm_cleared_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_onu_1g_us_stat_alarm_cleared_id_unpack(bcmolt_epon_onu_1g_us_stat_alarm_cleared_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_onu_1g_us_stat_alarm_raised_id_pack(bcmolt_epon_onu_1g_us_stat_alarm_raised_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_onu_1g_us_stat_alarm_raised_id_unpack(bcmolt_epon_onu_1g_us_stat_alarm_raised_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_onu_1g_us_stat_cfg_id_pack(bcmolt_epon_onu_1g_us_stat_cfg_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_onu_1g_us_stat_cfg_id_unpack(bcmolt_epon_onu_1g_us_stat_cfg_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_onu_1g_us_stat_id_pack(bcmolt_epon_onu_1g_us_stat_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_onu_1g_us_stat_id_unpack(bcmolt_epon_onu_1g_us_stat_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_onu_upgrade_onu_response_code_pack(bcmolt_epon_onu_upgrade_onu_response_code this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u8(buf, (uint8_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_onu_upgrade_onu_response_code_unpack(bcmolt_epon_onu_upgrade_onu_response_code *this, bcmolt_buf *buf)
+{
+    uint8_t num_val;
+    if (!bcmolt_buf_read_u8(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_onu_upgrade_return_code_pack(bcmolt_epon_onu_upgrade_return_code this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u8(buf, (uint8_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_onu_upgrade_return_code_unpack(bcmolt_epon_onu_upgrade_return_code *this, bcmolt_buf *buf)
+{
+    uint8_t num_val;
+    if (!bcmolt_buf_read_u8(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_path_10g_ds_auto_cfg_id_pack(bcmolt_epon_path_10g_ds_auto_cfg_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_path_10g_ds_auto_cfg_id_unpack(bcmolt_epon_path_10g_ds_auto_cfg_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_path_10g_ds_cfg_id_pack(bcmolt_epon_path_10g_ds_cfg_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_path_10g_ds_cfg_id_unpack(bcmolt_epon_path_10g_ds_cfg_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_path_10g_ds_key_id_pack(bcmolt_epon_path_10g_ds_key_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_path_10g_ds_key_id_unpack(bcmolt_epon_path_10g_ds_key_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_path_10g_ds_stat_alarm_cleared_id_pack(bcmolt_epon_path_10g_ds_stat_alarm_cleared_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_path_10g_ds_stat_alarm_cleared_id_unpack(bcmolt_epon_path_10g_ds_stat_alarm_cleared_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_path_10g_ds_stat_alarm_raised_id_pack(bcmolt_epon_path_10g_ds_stat_alarm_raised_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_path_10g_ds_stat_alarm_raised_id_unpack(bcmolt_epon_path_10g_ds_stat_alarm_raised_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_path_10g_ds_stat_cfg_id_pack(bcmolt_epon_path_10g_ds_stat_cfg_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_path_10g_ds_stat_cfg_id_unpack(bcmolt_epon_path_10g_ds_stat_cfg_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_path_10g_ds_stat_id_pack(bcmolt_epon_path_10g_ds_stat_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_path_10g_ds_stat_id_unpack(bcmolt_epon_path_10g_ds_stat_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_path_10g_us_auto_cfg_id_pack(bcmolt_epon_path_10g_us_auto_cfg_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_path_10g_us_auto_cfg_id_unpack(bcmolt_epon_path_10g_us_auto_cfg_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_path_10g_us_cfg_id_pack(bcmolt_epon_path_10g_us_cfg_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_path_10g_us_cfg_id_unpack(bcmolt_epon_path_10g_us_cfg_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_path_10g_us_key_id_pack(bcmolt_epon_path_10g_us_key_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_path_10g_us_key_id_unpack(bcmolt_epon_path_10g_us_key_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_path_10g_us_stat_alarm_cleared_id_pack(bcmolt_epon_path_10g_us_stat_alarm_cleared_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_path_10g_us_stat_alarm_cleared_id_unpack(bcmolt_epon_path_10g_us_stat_alarm_cleared_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_path_10g_us_stat_alarm_raised_id_pack(bcmolt_epon_path_10g_us_stat_alarm_raised_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_path_10g_us_stat_alarm_raised_id_unpack(bcmolt_epon_path_10g_us_stat_alarm_raised_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_path_10g_us_stat_cfg_id_pack(bcmolt_epon_path_10g_us_stat_cfg_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_path_10g_us_stat_cfg_id_unpack(bcmolt_epon_path_10g_us_stat_cfg_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_path_10g_us_stat_id_pack(bcmolt_epon_path_10g_us_stat_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_path_10g_us_stat_id_unpack(bcmolt_epon_path_10g_us_stat_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_path_1g_ds_auto_cfg_id_pack(bcmolt_epon_path_1g_ds_auto_cfg_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_path_1g_ds_auto_cfg_id_unpack(bcmolt_epon_path_1g_ds_auto_cfg_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_path_1g_ds_cfg_id_pack(bcmolt_epon_path_1g_ds_cfg_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_path_1g_ds_cfg_id_unpack(bcmolt_epon_path_1g_ds_cfg_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_path_1g_ds_key_id_pack(bcmolt_epon_path_1g_ds_key_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_path_1g_ds_key_id_unpack(bcmolt_epon_path_1g_ds_key_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_path_1g_ds_stat_alarm_cleared_id_pack(bcmolt_epon_path_1g_ds_stat_alarm_cleared_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_path_1g_ds_stat_alarm_cleared_id_unpack(bcmolt_epon_path_1g_ds_stat_alarm_cleared_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_path_1g_ds_stat_alarm_raised_id_pack(bcmolt_epon_path_1g_ds_stat_alarm_raised_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_path_1g_ds_stat_alarm_raised_id_unpack(bcmolt_epon_path_1g_ds_stat_alarm_raised_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_path_1g_ds_stat_cfg_id_pack(bcmolt_epon_path_1g_ds_stat_cfg_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_path_1g_ds_stat_cfg_id_unpack(bcmolt_epon_path_1g_ds_stat_cfg_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_path_1g_ds_stat_id_pack(bcmolt_epon_path_1g_ds_stat_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_path_1g_ds_stat_id_unpack(bcmolt_epon_path_1g_ds_stat_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_path_1g_us_auto_cfg_id_pack(bcmolt_epon_path_1g_us_auto_cfg_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_path_1g_us_auto_cfg_id_unpack(bcmolt_epon_path_1g_us_auto_cfg_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_path_1g_us_cfg_id_pack(bcmolt_epon_path_1g_us_cfg_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_path_1g_us_cfg_id_unpack(bcmolt_epon_path_1g_us_cfg_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_path_1g_us_key_id_pack(bcmolt_epon_path_1g_us_key_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_path_1g_us_key_id_unpack(bcmolt_epon_path_1g_us_key_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_path_1g_us_stat_alarm_cleared_id_pack(bcmolt_epon_path_1g_us_stat_alarm_cleared_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_path_1g_us_stat_alarm_cleared_id_unpack(bcmolt_epon_path_1g_us_stat_alarm_cleared_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_path_1g_us_stat_alarm_raised_id_pack(bcmolt_epon_path_1g_us_stat_alarm_raised_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_path_1g_us_stat_alarm_raised_id_unpack(bcmolt_epon_path_1g_us_stat_alarm_raised_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_path_1g_us_stat_cfg_id_pack(bcmolt_epon_path_1g_us_stat_cfg_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_path_1g_us_stat_cfg_id_unpack(bcmolt_epon_path_1g_us_stat_cfg_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_path_1g_us_stat_id_pack(bcmolt_epon_path_1g_us_stat_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_path_1g_us_stat_id_unpack(bcmolt_epon_path_1g_us_stat_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_protection_state_pack(bcmolt_epon_protection_state this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u8(buf, (uint8_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_protection_state_unpack(bcmolt_epon_protection_state *this, bcmolt_buf *buf)
+{
+    uint8_t num_val;
+    if (!bcmolt_buf_read_u8(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_protection_switching_type_pack(bcmolt_epon_protection_switching_type this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u8(buf, (uint8_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_protection_switching_type_unpack(bcmolt_epon_protection_switching_type *this, bcmolt_buf *buf)
+{
+    uint8_t num_val;
+    if (!bcmolt_buf_read_u8(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_protection_switching_detection_options_pack(bcmolt_protection_switching_detection_options this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u8(buf, (uint8_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_protection_switching_detection_options_unpack(bcmolt_protection_switching_detection_options *this, bcmolt_buf *buf)
+{
+    uint8_t num_val;
+    if (!bcmolt_buf_read_u8(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_protection_switching_reranging_options_pack(bcmolt_epon_protection_switching_reranging_options this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u8(buf, (uint8_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_protection_switching_reranging_options_unpack(bcmolt_epon_protection_switching_reranging_options *this, bcmolt_buf *buf)
+{
+    uint8_t num_val;
+    if (!bcmolt_buf_read_u8(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpio_pin_pack(bcmolt_gpio_pin this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u8(buf, (uint8_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpio_pin_unpack(bcmolt_gpio_pin *this, bcmolt_buf *buf)
+{
+    uint8_t num_val;
+    if (!bcmolt_buf_read_u8(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpio_polarity_pack(bcmolt_gpio_polarity this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u8(buf, (uint8_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpio_polarity_unpack(bcmolt_gpio_polarity *this, bcmolt_buf *buf)
+{
+    uint8_t num_val;
+    if (!bcmolt_buf_read_u8(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_rp_cfg_id_pack(bcmolt_epon_rp_cfg_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_rp_cfg_id_unpack(bcmolt_epon_rp_cfg_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_rp_key_id_pack(bcmolt_epon_rp_key_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_rp_key_id_unpack(bcmolt_epon_rp_key_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_ext_irq_pack(bcmolt_ext_irq this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u8(buf, (uint8_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_ext_irq_unpack(bcmolt_ext_irq *this, bcmolt_buf *buf)
+{
+    uint8_t num_val;
+    if (!bcmolt_buf_read_u8(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_flush_mac_table_option_pack(bcmolt_flush_mac_table_option this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u8(buf, (uint8_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_flush_mac_table_option_unpack(bcmolt_flush_mac_table_option *this, bcmolt_buf *buf)
+{
+    uint8_t num_val;
+    if (!bcmolt_buf_read_u8(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_frequency_adjustment_direction_pack(bcmolt_frequency_adjustment_direction this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u8(buf, (uint8_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_frequency_adjustment_direction_unpack(bcmolt_frequency_adjustment_direction *this, bcmolt_buf *buf)
+{
+    uint8_t num_val;
+    if (!bcmolt_buf_read_u8(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gem_port_direction_pack(bcmolt_gem_port_direction this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u8(buf, (uint8_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gem_port_direction_unpack(bcmolt_gem_port_direction *this, bcmolt_buf *buf)
+{
+    uint8_t num_val;
+    if (!bcmolt_buf_read_u8(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gem_port_type_pack(bcmolt_gem_port_type this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u8(buf, (uint8_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gem_port_type_unpack(bcmolt_gem_port_type *this, bcmolt_buf *buf)
+{
+    uint8_t num_val;
+    if (!bcmolt_buf_read_u8(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gem_port_operation_pack(bcmolt_gem_port_operation this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u8(buf, (uint8_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gem_port_operation_unpack(bcmolt_gem_port_operation *this, bcmolt_buf *buf)
+{
+    uint8_t num_val;
+    if (!bcmolt_buf_read_u8(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpio_cfg_id_pack(bcmolt_gpio_cfg_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpio_cfg_id_unpack(bcmolt_gpio_cfg_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpio_key_id_pack(bcmolt_gpio_key_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpio_key_id_unpack(bcmolt_gpio_key_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpio_pin_dir_pack(bcmolt_gpio_pin_dir this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u8(buf, (uint8_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpio_pin_dir_unpack(bcmolt_gpio_pin_dir *this, bcmolt_buf *buf)
+{
+    uint8_t num_val;
+    if (!bcmolt_buf_read_u8(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpio_value_pack(bcmolt_gpio_value this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u8(buf, (uint8_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpio_value_unpack(bcmolt_gpio_value *this, bcmolt_buf *buf)
+{
+    uint8_t num_val;
+    if (!bcmolt_buf_read_u8(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_alloc_auto_cfg_id_pack(bcmolt_gpon_alloc_auto_cfg_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_alloc_auto_cfg_id_unpack(bcmolt_gpon_alloc_auto_cfg_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_alloc_cfg_id_pack(bcmolt_gpon_alloc_cfg_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_alloc_cfg_id_unpack(bcmolt_gpon_alloc_cfg_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_alloc_configuration_completed_id_pack(bcmolt_gpon_alloc_configuration_completed_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_alloc_configuration_completed_id_unpack(bcmolt_gpon_alloc_configuration_completed_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_alloc_get_alloc_stats_completed_id_pack(bcmolt_gpon_alloc_get_alloc_stats_completed_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_alloc_get_alloc_stats_completed_id_unpack(bcmolt_gpon_alloc_get_alloc_stats_completed_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_alloc_get_stats_id_pack(bcmolt_gpon_alloc_get_stats_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_alloc_get_stats_id_unpack(bcmolt_gpon_alloc_get_stats_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_alloc_key_id_pack(bcmolt_gpon_alloc_key_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_alloc_key_id_unpack(bcmolt_gpon_alloc_key_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_alloc_set_state_id_pack(bcmolt_gpon_alloc_set_state_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_alloc_set_state_id_unpack(bcmolt_gpon_alloc_set_state_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_alloc_stat_alarm_cleared_id_pack(bcmolt_gpon_alloc_stat_alarm_cleared_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_alloc_stat_alarm_cleared_id_unpack(bcmolt_gpon_alloc_stat_alarm_cleared_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_alloc_stat_alarm_raised_id_pack(bcmolt_gpon_alloc_stat_alarm_raised_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_alloc_stat_alarm_raised_id_unpack(bcmolt_gpon_alloc_stat_alarm_raised_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_alloc_stat_cfg_id_pack(bcmolt_gpon_alloc_stat_cfg_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_alloc_stat_cfg_id_unpack(bcmolt_gpon_alloc_stat_cfg_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_alloc_stat_id_pack(bcmolt_gpon_alloc_stat_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_alloc_stat_id_unpack(bcmolt_gpon_alloc_stat_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_gem_port_auto_cfg_id_pack(bcmolt_gpon_gem_port_auto_cfg_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_gem_port_auto_cfg_id_unpack(bcmolt_gpon_gem_port_auto_cfg_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_gem_port_cfg_id_pack(bcmolt_gpon_gem_port_cfg_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_gem_port_cfg_id_unpack(bcmolt_gpon_gem_port_cfg_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_gem_port_configuration_completed_id_pack(bcmolt_gpon_gem_port_configuration_completed_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_gem_port_configuration_completed_id_unpack(bcmolt_gpon_gem_port_configuration_completed_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_gem_port_key_id_pack(bcmolt_gpon_gem_port_key_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_gem_port_key_id_unpack(bcmolt_gpon_gem_port_key_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_gem_port_set_state_id_pack(bcmolt_gpon_gem_port_set_state_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_gem_port_set_state_id_unpack(bcmolt_gpon_gem_port_set_state_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_gem_port_stat_alarm_cleared_id_pack(bcmolt_gpon_gem_port_stat_alarm_cleared_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_gem_port_stat_alarm_cleared_id_unpack(bcmolt_gpon_gem_port_stat_alarm_cleared_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_gem_port_stat_alarm_raised_id_pack(bcmolt_gpon_gem_port_stat_alarm_raised_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_gem_port_stat_alarm_raised_id_unpack(bcmolt_gpon_gem_port_stat_alarm_raised_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_gem_port_stat_cfg_id_pack(bcmolt_gpon_gem_port_stat_cfg_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_gem_port_stat_cfg_id_unpack(bcmolt_gpon_gem_port_stat_cfg_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_gem_port_stat_id_pack(bcmolt_gpon_gem_port_stat_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_gem_port_stat_id_unpack(bcmolt_gpon_gem_port_stat_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_gem_port_state_pack(bcmolt_gpon_gem_port_state this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u8(buf, (uint8_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_gem_port_state_unpack(bcmolt_gpon_gem_port_state *this, bcmolt_buf *buf)
+{
+    uint8_t num_val;
+    if (!bcmolt_buf_read_u8(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_iwf_auto_cfg_id_pack(bcmolt_gpon_iwf_auto_cfg_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_iwf_auto_cfg_id_unpack(bcmolt_gpon_iwf_auto_cfg_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_iwf_cfg_id_pack(bcmolt_gpon_iwf_cfg_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_iwf_cfg_id_unpack(bcmolt_gpon_iwf_cfg_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_iwf_ds_egress_flow_cfg_id_pack(bcmolt_gpon_iwf_ds_egress_flow_cfg_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_iwf_ds_egress_flow_cfg_id_unpack(bcmolt_gpon_iwf_ds_egress_flow_cfg_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_iwf_ds_egress_flow_key_id_pack(bcmolt_gpon_iwf_ds_egress_flow_key_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_iwf_ds_egress_flow_key_id_unpack(bcmolt_gpon_iwf_ds_egress_flow_key_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_iwf_ds_ingress_flow_cfg_id_pack(bcmolt_gpon_iwf_ds_ingress_flow_cfg_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_iwf_ds_ingress_flow_cfg_id_unpack(bcmolt_gpon_iwf_ds_ingress_flow_cfg_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_iwf_ds_ingress_flow_key_id_pack(bcmolt_gpon_iwf_ds_ingress_flow_key_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_iwf_ds_ingress_flow_key_id_unpack(bcmolt_gpon_iwf_ds_ingress_flow_key_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_iwf_flush_mac_table_completed_id_pack(bcmolt_gpon_iwf_flush_mac_table_completed_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_iwf_flush_mac_table_completed_id_unpack(bcmolt_gpon_iwf_flush_mac_table_completed_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_iwf_flush_mac_table_id_pack(bcmolt_gpon_iwf_flush_mac_table_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_iwf_flush_mac_table_id_unpack(bcmolt_gpon_iwf_flush_mac_table_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_iwf_key_id_pack(bcmolt_gpon_iwf_key_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_iwf_key_id_unpack(bcmolt_gpon_iwf_key_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_iwf_mac_table_auto_cfg_id_pack(bcmolt_gpon_iwf_mac_table_auto_cfg_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_iwf_mac_table_auto_cfg_id_unpack(bcmolt_gpon_iwf_mac_table_auto_cfg_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_iwf_mac_table_cfg_id_pack(bcmolt_gpon_iwf_mac_table_cfg_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_iwf_mac_table_cfg_id_unpack(bcmolt_gpon_iwf_mac_table_cfg_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_iwf_mac_table_key_id_pack(bcmolt_gpon_iwf_mac_table_key_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_iwf_mac_table_key_id_unpack(bcmolt_gpon_iwf_mac_table_key_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_iwf_mac_table_mac_aged_id_pack(bcmolt_gpon_iwf_mac_table_mac_aged_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_iwf_mac_table_mac_aged_id_unpack(bcmolt_gpon_iwf_mac_table_mac_aged_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_iwf_mac_table_mac_dropped_id_pack(bcmolt_gpon_iwf_mac_table_mac_dropped_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_iwf_mac_table_mac_dropped_id_unpack(bcmolt_gpon_iwf_mac_table_mac_dropped_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_iwf_mac_table_mac_move_id_pack(bcmolt_gpon_iwf_mac_table_mac_move_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_iwf_mac_table_mac_move_id_unpack(bcmolt_gpon_iwf_mac_table_mac_move_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_iwf_mac_table_new_mac_id_pack(bcmolt_gpon_iwf_mac_table_new_mac_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_iwf_mac_table_new_mac_id_unpack(bcmolt_gpon_iwf_mac_table_new_mac_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_iwf_scan_mac_table_completed_id_pack(bcmolt_gpon_iwf_scan_mac_table_completed_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_iwf_scan_mac_table_completed_id_unpack(bcmolt_gpon_iwf_scan_mac_table_completed_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_iwf_scan_mac_table_id_pack(bcmolt_gpon_iwf_scan_mac_table_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_iwf_scan_mac_table_id_unpack(bcmolt_gpon_iwf_scan_mac_table_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_iwf_stat_alarm_cleared_id_pack(bcmolt_gpon_iwf_stat_alarm_cleared_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_iwf_stat_alarm_cleared_id_unpack(bcmolt_gpon_iwf_stat_alarm_cleared_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_iwf_stat_alarm_raised_id_pack(bcmolt_gpon_iwf_stat_alarm_raised_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_iwf_stat_alarm_raised_id_unpack(bcmolt_gpon_iwf_stat_alarm_raised_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_iwf_stat_cfg_id_pack(bcmolt_gpon_iwf_stat_cfg_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_iwf_stat_cfg_id_unpack(bcmolt_gpon_iwf_stat_cfg_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_iwf_stat_id_pack(bcmolt_gpon_iwf_stat_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_iwf_stat_id_unpack(bcmolt_gpon_iwf_stat_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_iwf_us_flow_cfg_id_pack(bcmolt_gpon_iwf_us_flow_cfg_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_iwf_us_flow_cfg_id_unpack(bcmolt_gpon_iwf_us_flow_cfg_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_iwf_us_flow_key_id_pack(bcmolt_gpon_iwf_us_flow_key_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_iwf_us_flow_key_id_unpack(bcmolt_gpon_iwf_us_flow_key_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_key_exchange_mode_pack(bcmolt_key_exchange_mode this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u8(buf, (uint8_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_key_exchange_mode_unpack(bcmolt_key_exchange_mode *this, bcmolt_buf *buf)
+{
+    uint8_t num_val;
+    if (!bcmolt_buf_read_u8(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_ni_activate_all_onus_completed_id_pack(bcmolt_gpon_ni_activate_all_onus_completed_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_ni_activate_all_onus_completed_id_unpack(bcmolt_gpon_ni_activate_all_onus_completed_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_ni_auto_cfg_id_pack(bcmolt_gpon_ni_auto_cfg_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_ni_auto_cfg_id_unpack(bcmolt_gpon_ni_auto_cfg_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_ni_broadcast_ploam_packet_id_pack(bcmolt_gpon_ni_broadcast_ploam_packet_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_ni_broadcast_ploam_packet_id_unpack(bcmolt_gpon_ni_broadcast_ploam_packet_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_ni_cfg_id_pack(bcmolt_gpon_ni_cfg_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_ni_cfg_id_unpack(bcmolt_gpon_ni_cfg_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_ni_cpu_packets_failure_id_pack(bcmolt_gpon_ni_cpu_packets_failure_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_ni_cpu_packets_failure_id_unpack(bcmolt_gpon_ni_cpu_packets_failure_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_ni_cpu_packets_id_pack(bcmolt_gpon_ni_cpu_packets_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_ni_cpu_packets_id_unpack(bcmolt_gpon_ni_cpu_packets_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_ni_deactivate_all_onus_completed_id_pack(bcmolt_gpon_ni_deactivate_all_onus_completed_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_ni_deactivate_all_onus_completed_id_unpack(bcmolt_gpon_ni_deactivate_all_onus_completed_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_ni_disable_all_onus_completed_id_pack(bcmolt_gpon_ni_disable_all_onus_completed_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_ni_disable_all_onus_completed_id_unpack(bcmolt_gpon_ni_disable_all_onus_completed_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_ni_disable_serial_number_id_pack(bcmolt_gpon_ni_disable_serial_number_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_ni_disable_serial_number_id_unpack(bcmolt_gpon_ni_disable_serial_number_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_ni_enable_all_onus_completed_id_pack(bcmolt_gpon_ni_enable_all_onus_completed_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_ni_enable_all_onus_completed_id_unpack(bcmolt_gpon_ni_enable_all_onus_completed_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_ni_key_id_pack(bcmolt_gpon_ni_key_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_ni_key_id_unpack(bcmolt_gpon_ni_key_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_ni_los_id_pack(bcmolt_gpon_ni_los_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_ni_los_id_unpack(bcmolt_gpon_ni_los_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_ni_onu_discovered_id_pack(bcmolt_gpon_ni_onu_discovered_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_ni_onu_discovered_id_unpack(bcmolt_gpon_ni_onu_discovered_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_ni_onu_upgrade_complete_id_pack(bcmolt_gpon_ni_onu_upgrade_complete_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_ni_onu_upgrade_complete_id_unpack(bcmolt_gpon_ni_onu_upgrade_complete_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_ni_protection_switching_onus_ranged_id_pack(bcmolt_gpon_ni_protection_switching_onus_ranged_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_ni_protection_switching_onus_ranged_id_unpack(bcmolt_gpon_ni_protection_switching_onus_ranged_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_ni_protection_switching_switchover_completed_id_pack(bcmolt_gpon_ni_protection_switching_switchover_completed_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_ni_protection_switching_switchover_completed_id_unpack(bcmolt_gpon_ni_protection_switching_switchover_completed_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_ni_protection_switching_traffic_resume_id_pack(bcmolt_gpon_ni_protection_switching_traffic_resume_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_ni_protection_switching_traffic_resume_id_unpack(bcmolt_gpon_ni_protection_switching_traffic_resume_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_ni_protection_switching_type_c_set_multiple_onu_state_id_pack(bcmolt_gpon_ni_protection_switching_type_c_set_multiple_onu_state_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_ni_protection_switching_type_c_set_multiple_onu_state_id_unpack(bcmolt_gpon_ni_protection_switching_type_c_set_multiple_onu_state_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_ni_reset_id_pack(bcmolt_gpon_ni_reset_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_ni_reset_id_unpack(bcmolt_gpon_ni_reset_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_ni_rogue_detection_completed_id_pack(bcmolt_gpon_ni_rogue_detection_completed_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_ni_rogue_detection_completed_id_unpack(bcmolt_gpon_ni_rogue_detection_completed_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_ni_rogue_detection_window_id_pack(bcmolt_gpon_ni_rogue_detection_window_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_ni_rogue_detection_window_id_unpack(bcmolt_gpon_ni_rogue_detection_window_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_ni_rogue_onu_special_map_cycle_start_id_pack(bcmolt_gpon_ni_rogue_onu_special_map_cycle_start_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_ni_rogue_onu_special_map_cycle_start_id_unpack(bcmolt_gpon_ni_rogue_onu_special_map_cycle_start_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_ni_serial_number_acquisition_cycle_start_id_pack(bcmolt_gpon_ni_serial_number_acquisition_cycle_start_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_ni_serial_number_acquisition_cycle_start_id_unpack(bcmolt_gpon_ni_serial_number_acquisition_cycle_start_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_ni_set_onu_state_id_pack(bcmolt_gpon_ni_set_onu_state_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_ni_set_onu_state_id_unpack(bcmolt_gpon_ni_set_onu_state_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_ni_set_pon_state_id_pack(bcmolt_gpon_ni_set_pon_state_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_ni_set_pon_state_id_unpack(bcmolt_gpon_ni_set_pon_state_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_ni_single_request_standby_pon_monitoring_id_pack(bcmolt_gpon_ni_single_request_standby_pon_monitoring_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_ni_single_request_standby_pon_monitoring_id_unpack(bcmolt_gpon_ni_single_request_standby_pon_monitoring_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_ni_standby_pon_monitoring_cycle_completed_id_pack(bcmolt_gpon_ni_standby_pon_monitoring_cycle_completed_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_ni_standby_pon_monitoring_cycle_completed_id_unpack(bcmolt_gpon_ni_standby_pon_monitoring_cycle_completed_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_ni_start_onu_upgrade_id_pack(bcmolt_gpon_ni_start_onu_upgrade_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_ni_start_onu_upgrade_id_unpack(bcmolt_gpon_ni_start_onu_upgrade_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_ni_stat_alarm_cleared_id_pack(bcmolt_gpon_ni_stat_alarm_cleared_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_ni_stat_alarm_cleared_id_unpack(bcmolt_gpon_ni_stat_alarm_cleared_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_ni_stat_alarm_raised_id_pack(bcmolt_gpon_ni_stat_alarm_raised_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_ni_stat_alarm_raised_id_unpack(bcmolt_gpon_ni_stat_alarm_raised_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_ni_stat_cfg_id_pack(bcmolt_gpon_ni_stat_cfg_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_ni_stat_cfg_id_unpack(bcmolt_gpon_ni_stat_cfg_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_ni_stat_id_pack(bcmolt_gpon_ni_stat_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_ni_stat_id_unpack(bcmolt_gpon_ni_stat_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_ni_state_change_completed_id_pack(bcmolt_gpon_ni_state_change_completed_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_ni_state_change_completed_id_unpack(bcmolt_gpon_ni_state_change_completed_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_ni_tod_request_completed_id_pack(bcmolt_gpon_ni_tod_request_completed_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_ni_tod_request_completed_id_unpack(bcmolt_gpon_ni_tod_request_completed_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_ni_tod_request_id_pack(bcmolt_gpon_ni_tod_request_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_ni_tod_request_id_unpack(bcmolt_gpon_ni_tod_request_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_auto_cfg_id_pack(bcmolt_gpon_onu_auto_cfg_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_auto_cfg_id_unpack(bcmolt_gpon_onu_auto_cfg_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_ber_interval_configuration_completed_id_pack(bcmolt_gpon_onu_ber_interval_configuration_completed_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_ber_interval_configuration_completed_id_unpack(bcmolt_gpon_onu_ber_interval_configuration_completed_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_cfg_id_pack(bcmolt_gpon_onu_cfg_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_cfg_id_unpack(bcmolt_gpon_onu_cfg_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_change_power_level_id_pack(bcmolt_gpon_onu_change_power_level_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_change_power_level_id_unpack(bcmolt_gpon_onu_change_power_level_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_cpu_packet_id_pack(bcmolt_gpon_onu_cpu_packet_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_cpu_packet_id_unpack(bcmolt_gpon_onu_cpu_packet_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_cpu_packets_id_pack(bcmolt_gpon_onu_cpu_packets_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_cpu_packets_id_unpack(bcmolt_gpon_onu_cpu_packets_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_dfi_id_pack(bcmolt_gpon_onu_dfi_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_dfi_id_unpack(bcmolt_gpon_onu_dfi_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_dgi_id_pack(bcmolt_gpon_onu_dgi_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_dgi_id_unpack(bcmolt_gpon_onu_dgi_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_dowi_id_pack(bcmolt_gpon_onu_dowi_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_dowi_id_unpack(bcmolt_gpon_onu_dowi_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_err_id_pack(bcmolt_gpon_onu_err_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_err_id_unpack(bcmolt_gpon_onu_err_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_invalid_dbru_report_id_pack(bcmolt_gpon_onu_invalid_dbru_report_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_invalid_dbru_report_id_unpack(bcmolt_gpon_onu_invalid_dbru_report_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_key_exchange_completed_id_pack(bcmolt_gpon_onu_key_exchange_completed_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_key_exchange_completed_id_unpack(bcmolt_gpon_onu_key_exchange_completed_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_key_exchange_cycle_skipped_id_pack(bcmolt_gpon_onu_key_exchange_cycle_skipped_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_key_exchange_cycle_skipped_id_unpack(bcmolt_gpon_onu_key_exchange_cycle_skipped_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_key_exchange_decrypt_required_id_pack(bcmolt_gpon_onu_key_exchange_decrypt_required_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_key_exchange_decrypt_required_id_unpack(bcmolt_gpon_onu_key_exchange_decrypt_required_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_key_exchange_key_mismatch_id_pack(bcmolt_gpon_onu_key_exchange_key_mismatch_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_key_exchange_key_mismatch_id_unpack(bcmolt_gpon_onu_key_exchange_key_mismatch_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_key_exchange_key_request_timeout_id_pack(bcmolt_gpon_onu_key_exchange_key_request_timeout_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_key_exchange_key_request_timeout_id_unpack(bcmolt_gpon_onu_key_exchange_key_request_timeout_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_key_exchange_unconsecutive_index_id_pack(bcmolt_gpon_onu_key_exchange_unconsecutive_index_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_key_exchange_unconsecutive_index_id_unpack(bcmolt_gpon_onu_key_exchange_unconsecutive_index_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_key_id_pack(bcmolt_gpon_onu_key_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_key_id_unpack(bcmolt_gpon_onu_key_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_loai_id_pack(bcmolt_gpon_onu_loai_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_loai_id_unpack(bcmolt_gpon_onu_loai_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_loki_id_pack(bcmolt_gpon_onu_loki_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_loki_id_unpack(bcmolt_gpon_onu_loki_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_memi_id_pack(bcmolt_gpon_onu_memi_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_memi_id_unpack(bcmolt_gpon_onu_memi_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_omci_packet_id_pack(bcmolt_gpon_onu_omci_packet_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_omci_packet_id_unpack(bcmolt_gpon_onu_omci_packet_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_omci_port_id_configuration_completed_id_pack(bcmolt_gpon_onu_omci_port_id_configuration_completed_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_omci_port_id_configuration_completed_id_unpack(bcmolt_gpon_onu_omci_port_id_configuration_completed_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_onu_activation_completed_id_pack(bcmolt_gpon_onu_onu_activation_completed_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_onu_activation_completed_id_unpack(bcmolt_gpon_onu_onu_activation_completed_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_onu_activation_standby_completed_id_pack(bcmolt_gpon_onu_onu_activation_standby_completed_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_onu_activation_standby_completed_id_unpack(bcmolt_gpon_onu_onu_activation_standby_completed_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_onu_alarm_id_pack(bcmolt_gpon_onu_onu_alarm_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_onu_alarm_id_unpack(bcmolt_gpon_onu_onu_alarm_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_onu_deactivation_completed_id_pack(bcmolt_gpon_onu_onu_deactivation_completed_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_onu_deactivation_completed_id_unpack(bcmolt_gpon_onu_onu_deactivation_completed_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_onu_disable_completed_id_pack(bcmolt_gpon_onu_onu_disable_completed_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_onu_disable_completed_id_unpack(bcmolt_gpon_onu_onu_disable_completed_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_onu_enable_completed_id_pack(bcmolt_gpon_onu_onu_enable_completed_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_onu_enable_completed_id_unpack(bcmolt_gpon_onu_onu_enable_completed_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_optical_reflection_id_pack(bcmolt_gpon_onu_optical_reflection_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_optical_reflection_id_unpack(bcmolt_gpon_onu_optical_reflection_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_password_authentication_completed_id_pack(bcmolt_gpon_onu_password_authentication_completed_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_password_authentication_completed_id_unpack(bcmolt_gpon_onu_password_authentication_completed_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_pee_id_pack(bcmolt_gpon_onu_pee_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_pee_id_unpack(bcmolt_gpon_onu_pee_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_ploam_packet_id_pack(bcmolt_gpon_onu_ploam_packet_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_ploam_packet_id_unpack(bcmolt_gpon_onu_ploam_packet_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_possible_drift_id_pack(bcmolt_gpon_onu_possible_drift_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_possible_drift_id_unpack(bcmolt_gpon_onu_possible_drift_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_power_management_state_change_id_pack(bcmolt_gpon_onu_power_management_state_change_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_power_management_state_change_id_unpack(bcmolt_gpon_onu_power_management_state_change_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_pst_id_pack(bcmolt_gpon_onu_pst_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_pst_id_unpack(bcmolt_gpon_onu_pst_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_ranging_completed_id_pack(bcmolt_gpon_onu_ranging_completed_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_ranging_completed_id_unpack(bcmolt_gpon_onu_ranging_completed_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_rei_id_pack(bcmolt_gpon_onu_rei_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_rei_id_unpack(bcmolt_gpon_onu_rei_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_rssi_measurement_completed_id_pack(bcmolt_gpon_onu_rssi_measurement_completed_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_rssi_measurement_completed_id_unpack(bcmolt_gpon_onu_rssi_measurement_completed_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_rssi_measurement_id_pack(bcmolt_gpon_onu_rssi_measurement_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_rssi_measurement_id_unpack(bcmolt_gpon_onu_rssi_measurement_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_sdi_id_pack(bcmolt_gpon_onu_sdi_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_sdi_id_unpack(bcmolt_gpon_onu_sdi_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_set_onu_state_id_pack(bcmolt_gpon_onu_set_onu_state_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_set_onu_state_id_unpack(bcmolt_gpon_onu_set_onu_state_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_sfi_id_pack(bcmolt_gpon_onu_sfi_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_sfi_id_unpack(bcmolt_gpon_onu_sfi_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_stat_alarm_cleared_id_pack(bcmolt_gpon_onu_stat_alarm_cleared_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_stat_alarm_cleared_id_unpack(bcmolt_gpon_onu_stat_alarm_cleared_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_stat_alarm_raised_id_pack(bcmolt_gpon_onu_stat_alarm_raised_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_stat_alarm_raised_id_unpack(bcmolt_gpon_onu_stat_alarm_raised_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_stat_cfg_id_pack(bcmolt_gpon_onu_stat_cfg_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_stat_cfg_id_unpack(bcmolt_gpon_onu_stat_cfg_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_stat_id_pack(bcmolt_gpon_onu_stat_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_stat_id_unpack(bcmolt_gpon_onu_stat_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_sufi_id_pack(bcmolt_gpon_onu_sufi_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_sufi_id_unpack(bcmolt_gpon_onu_sufi_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_tiwi_id_pack(bcmolt_gpon_onu_tiwi_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_tiwi_id_unpack(bcmolt_gpon_onu_tiwi_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_omci_device_id_pack(bcmolt_omci_device_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u8(buf, (uint8_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_omci_device_id_unpack(bcmolt_omci_device_id *this, bcmolt_buf *buf)
+{
+    uint8_t num_val;
+    if (!bcmolt_buf_read_u8(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_upgrade_return_code_pack(bcmolt_gpon_onu_upgrade_return_code this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u8(buf, (uint8_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_upgrade_return_code_unpack(bcmolt_gpon_onu_upgrade_return_code *this, bcmolt_buf *buf)
+{
+    uint8_t num_val;
+    if (!bcmolt_buf_read_u8(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_omci_result_code_pack(bcmolt_omci_result_code this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u8(buf, (uint8_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_omci_result_code_unpack(bcmolt_omci_result_code *this, bcmolt_buf *buf)
+{
+    uint8_t num_val;
+    if (!bcmolt_buf_read_u8(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_onu_state_pack(bcmolt_onu_state this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u8(buf, (uint8_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_onu_state_unpack(bcmolt_onu_state *this, bcmolt_buf *buf)
+{
+    uint8_t num_val;
+    if (!bcmolt_buf_read_u8(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_rssi_location_sign_pack(bcmolt_rssi_location_sign this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u8(buf, (uint8_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_rssi_location_sign_unpack(bcmolt_rssi_location_sign *this, bcmolt_buf *buf)
+{
+    uint8_t num_val;
+    if (!bcmolt_buf_read_u8(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_onu_post_discovery_mode_pack(bcmolt_onu_post_discovery_mode this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u8(buf, (uint8_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_onu_post_discovery_mode_unpack(bcmolt_onu_post_discovery_mode *this, bcmolt_buf *buf)
+{
+    uint8_t num_val;
+    if (!bcmolt_buf_read_u8(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_trx_cfg_id_pack(bcmolt_gpon_trx_cfg_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_trx_cfg_id_unpack(bcmolt_gpon_trx_cfg_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_trx_key_id_pack(bcmolt_gpon_trx_key_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_trx_key_id_unpack(bcmolt_gpon_trx_key_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_image_transfer_status_pack(bcmolt_image_transfer_status this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u8(buf, (uint8_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_image_transfer_status_unpack(bcmolt_image_transfer_status *this, bcmolt_buf *buf)
+{
+    uint8_t num_val;
+    if (!bcmolt_buf_read_u8(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_iwf_mode_pack(bcmolt_iwf_mode this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u8(buf, (uint8_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_iwf_mode_unpack(bcmolt_iwf_mode *this, bcmolt_buf *buf)
+{
+    uint8_t num_val;
+    if (!bcmolt_buf_read_u8(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_log_entry_auto_cfg_id_pack(bcmolt_log_entry_auto_cfg_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_log_entry_auto_cfg_id_unpack(bcmolt_log_entry_auto_cfg_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_log_entry_cfg_id_pack(bcmolt_log_entry_cfg_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_log_entry_cfg_id_unpack(bcmolt_log_entry_cfg_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_log_entry_key_id_pack(bcmolt_log_entry_key_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_log_entry_key_id_unpack(bcmolt_log_entry_key_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_log_entry_stat_alarm_cleared_id_pack(bcmolt_log_entry_stat_alarm_cleared_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_log_entry_stat_alarm_cleared_id_unpack(bcmolt_log_entry_stat_alarm_cleared_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_log_entry_stat_alarm_raised_id_pack(bcmolt_log_entry_stat_alarm_raised_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_log_entry_stat_alarm_raised_id_unpack(bcmolt_log_entry_stat_alarm_raised_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_log_entry_stat_cfg_id_pack(bcmolt_log_entry_stat_cfg_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_log_entry_stat_cfg_id_unpack(bcmolt_log_entry_stat_cfg_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_log_entry_stat_id_pack(bcmolt_log_entry_stat_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_log_entry_stat_id_unpack(bcmolt_log_entry_stat_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_log_file_id_pack(bcmolt_log_file_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u8(buf, (uint8_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_log_file_id_unpack(bcmolt_log_file_id *this, bcmolt_buf *buf)
+{
+    uint8_t num_val;
+    if (!bcmolt_buf_read_u8(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_log_level_pack(bcmolt_log_level this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u8(buf, (uint8_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_log_level_unpack(bcmolt_log_level *this, bcmolt_buf *buf)
+{
+    uint8_t num_val;
+    if (!bcmolt_buf_read_u8(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_log_style_pack(bcmolt_log_style this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u8(buf, (uint8_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_log_style_unpack(bcmolt_log_style *this, bcmolt_buf *buf)
+{
+    uint8_t num_val;
+    if (!bcmolt_buf_read_u8(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_log_type_pack(bcmolt_log_type this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u8(buf, (uint8_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_log_type_unpack(bcmolt_log_type *this, bcmolt_buf *buf)
+{
+    uint8_t num_val;
+    if (!bcmolt_buf_read_u8(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_logger_auto_cfg_id_pack(bcmolt_logger_auto_cfg_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_logger_auto_cfg_id_unpack(bcmolt_logger_auto_cfg_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_logger_cfg_id_pack(bcmolt_logger_cfg_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_logger_cfg_id_unpack(bcmolt_logger_cfg_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_logger_clear_log_id_pack(bcmolt_logger_clear_log_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_logger_clear_log_id_unpack(bcmolt_logger_clear_log_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_logger_key_id_pack(bcmolt_logger_key_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_logger_key_id_unpack(bcmolt_logger_key_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_logger_stat_alarm_cleared_id_pack(bcmolt_logger_stat_alarm_cleared_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_logger_stat_alarm_cleared_id_unpack(bcmolt_logger_stat_alarm_cleared_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_logger_stat_alarm_raised_id_pack(bcmolt_logger_stat_alarm_raised_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_logger_stat_alarm_raised_id_unpack(bcmolt_logger_stat_alarm_raised_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_logger_stat_cfg_id_pack(bcmolt_logger_stat_cfg_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_logger_stat_cfg_id_unpack(bcmolt_logger_stat_cfg_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_logger_stat_id_pack(bcmolt_logger_stat_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_logger_stat_id_unpack(bcmolt_logger_stat_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_mac_table_miss_fallback_pack(bcmolt_mac_table_miss_fallback this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u8(buf, (uint8_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_mac_table_miss_fallback_unpack(bcmolt_mac_table_miss_fallback *this, bcmolt_buf *buf)
+{
+    uint8_t num_val;
+    if (!bcmolt_buf_read_u8(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_mac_table_learning_mode_pack(bcmolt_mac_table_learning_mode this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u8(buf, (uint8_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_mac_table_learning_mode_unpack(bcmolt_mac_table_learning_mode *this, bcmolt_buf *buf)
+{
+    uint8_t num_val;
+    if (!bcmolt_buf_read_u8(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_mapping_tag_method_pack(bcmolt_mapping_tag_method this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u8(buf, (uint8_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_mapping_tag_method_unpack(bcmolt_mapping_tag_method *this, bcmolt_buf *buf)
+{
+    uint8_t num_val;
+    if (!bcmolt_buf_read_u8(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_nni_auto_cfg_id_pack(bcmolt_nni_auto_cfg_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_nni_auto_cfg_id_unpack(bcmolt_nni_auto_cfg_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_nni_cfg_id_pack(bcmolt_nni_cfg_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_nni_cfg_id_unpack(bcmolt_nni_cfg_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_nni_connection_pack(bcmolt_nni_connection this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u8(buf, (uint8_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_nni_connection_unpack(bcmolt_nni_connection *this, bcmolt_buf *buf)
+{
+    uint8_t num_val;
+    if (!bcmolt_buf_read_u8(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_nni_key_id_pack(bcmolt_nni_key_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_nni_key_id_unpack(bcmolt_nni_key_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_trivalent_pack(bcmolt_trivalent this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u8(buf, (uint8_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_trivalent_unpack(bcmolt_trivalent *this, bcmolt_buf *buf)
+{
+    uint8_t num_val;
+    if (!bcmolt_buf_read_u8(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_nni_serdes_cfg_id_pack(bcmolt_nni_serdes_cfg_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_nni_serdes_cfg_id_unpack(bcmolt_nni_serdes_cfg_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_nni_serdes_key_id_pack(bcmolt_nni_serdes_key_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_nni_serdes_key_id_unpack(bcmolt_nni_serdes_key_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_nni_stat_alarm_cleared_id_pack(bcmolt_nni_stat_alarm_cleared_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_nni_stat_alarm_cleared_id_unpack(bcmolt_nni_stat_alarm_cleared_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_nni_stat_alarm_raised_id_pack(bcmolt_nni_stat_alarm_raised_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_nni_stat_alarm_raised_id_unpack(bcmolt_nni_stat_alarm_raised_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_nni_stat_cfg_id_pack(bcmolt_nni_stat_cfg_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_nni_stat_cfg_id_unpack(bcmolt_nni_stat_cfg_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_nni_stat_id_pack(bcmolt_nni_stat_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_nni_stat_id_unpack(bcmolt_nni_stat_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_nni_status_changed_id_pack(bcmolt_nni_status_changed_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_nni_status_changed_id_unpack(bcmolt_nni_status_changed_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_odn_class_pack(bcmolt_odn_class this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u8(buf, (uint8_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_odn_class_unpack(bcmolt_odn_class *this, bcmolt_buf *buf)
+{
+    uint8_t num_val;
+    if (!bcmolt_buf_read_u8(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_omci_port_id_operation_pack(bcmolt_omci_port_id_operation this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u8(buf, (uint8_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_omci_port_id_operation_unpack(bcmolt_omci_port_id_operation *this, bcmolt_buf *buf)
+{
+    uint8_t num_val;
+    if (!bcmolt_buf_read_u8(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_onu_operation_pack(bcmolt_onu_operation this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u8(buf, (uint8_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_onu_operation_unpack(bcmolt_onu_operation *this, bcmolt_buf *buf)
+{
+    uint8_t num_val;
+    if (!bcmolt_buf_read_u8(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_onu_power_level_pack(bcmolt_onu_power_level this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u8(buf, (uint8_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_onu_power_level_unpack(bcmolt_onu_power_level *this, bcmolt_buf *buf)
+{
+    uint8_t num_val;
+    if (!bcmolt_buf_read_u8(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_tc_protocol_pack(bcmolt_tc_protocol this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u8(buf, (uint8_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_tc_protocol_unpack(bcmolt_tc_protocol *this, bcmolt_buf *buf)
+{
+    uint8_t num_val;
+    if (!bcmolt_buf_read_u8(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_packet_injection_error_pack(bcmolt_packet_injection_error this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u8(buf, (uint8_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_packet_injection_error_unpack(bcmolt_packet_injection_error *this, bcmolt_buf *buf)
+{
+    uint8_t num_val;
+    if (!bcmolt_buf_read_u8(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_packet_type_pack(bcmolt_packet_type this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u8(buf, (uint8_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_packet_type_unpack(bcmolt_packet_type *this, bcmolt_buf *buf)
+{
+    uint8_t num_val;
+    if (!bcmolt_buf_read_u8(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_password_authentication_fail_reason_pack(bcmolt_password_authentication_fail_reason this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u8(buf, (uint8_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_password_authentication_fail_reason_unpack(bcmolt_password_authentication_fail_reason *this, bcmolt_buf *buf)
+{
+    uint8_t num_val;
+    if (!bcmolt_buf_read_u8(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_polarity_pack(bcmolt_polarity this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u8(buf, (uint8_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_polarity_unpack(bcmolt_polarity *this, bcmolt_buf *buf)
+{
+    uint8_t num_val;
+    if (!bcmolt_buf_read_u8(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_polling_interval_pack(bcmolt_polling_interval this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_s32(buf, (int32_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_polling_interval_unpack(bcmolt_polling_interval *this, bcmolt_buf *buf)
+{
+    int32_t num_val;
+    if (!bcmolt_buf_read_s32(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_pon_operation_pack(bcmolt_pon_operation this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u8(buf, (uint8_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_pon_operation_unpack(bcmolt_pon_operation *this, bcmolt_buf *buf)
+{
+    uint8_t num_val;
+    if (!bcmolt_buf_read_u8(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_pon_protection_switching_options_pack(bcmolt_pon_protection_switching_options this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u32(buf, (uint32_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_pon_protection_switching_options_unpack(bcmolt_pon_protection_switching_options *this, bcmolt_buf *buf)
+{
+    uint32_t num_val;
+    if (!bcmolt_buf_read_u32(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_pon_state_pack(bcmolt_pon_state this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u8(buf, (uint8_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_pon_state_unpack(bcmolt_pon_state *this, bcmolt_buf *buf)
+{
+    uint8_t num_val;
+    if (!bcmolt_buf_read_u8(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_power_levelling_control_pack(bcmolt_power_levelling_control this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u8(buf, (uint8_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_power_levelling_control_unpack(bcmolt_power_levelling_control *this, bcmolt_buf *buf)
+{
+    uint8_t num_val;
+    if (!bcmolt_buf_read_u8(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_power_management_transition_reason_pack(bcmolt_power_management_transition_reason this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u8(buf, (uint8_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_power_management_transition_reason_unpack(bcmolt_power_management_transition_reason *this, bcmolt_buf *buf)
+{
+    uint8_t num_val;
+    if (!bcmolt_buf_read_u8(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_prbs_polynomial_pack(bcmolt_prbs_polynomial this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u8(buf, (uint8_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_prbs_polynomial_unpack(bcmolt_prbs_polynomial *this, bcmolt_buf *buf)
+{
+    uint8_t num_val;
+    if (!bcmolt_buf_read_u8(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_prbs_checker_mode_pack(bcmolt_prbs_checker_mode this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u8(buf, (uint8_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_prbs_checker_mode_unpack(bcmolt_prbs_checker_mode *this, bcmolt_buf *buf)
+{
+    uint8_t num_val;
+    if (!bcmolt_buf_read_u8(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_prbs_lock_state_pack(bcmolt_prbs_lock_state this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u8(buf, (uint8_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_prbs_lock_state_unpack(bcmolt_prbs_lock_state *this, bcmolt_buf *buf)
+{
+    uint8_t num_val;
+    if (!bcmolt_buf_read_u8(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_raman_mitigation_mode_pack(bcmolt_raman_mitigation_mode this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u8(buf, (uint8_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_raman_mitigation_mode_unpack(bcmolt_raman_mitigation_mode *this, bcmolt_buf *buf)
+{
+    uint8_t num_val;
+    if (!bcmolt_buf_read_u8(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_ranging_fail_reason_pack(bcmolt_ranging_fail_reason this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u8(buf, (uint8_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_ranging_fail_reason_unpack(bcmolt_ranging_fail_reason *this, bcmolt_buf *buf)
+{
+    uint8_t num_val;
+    if (!bcmolt_buf_read_u8(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_registration_behavior_pack(bcmolt_registration_behavior this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u8(buf, (uint8_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_registration_behavior_unpack(bcmolt_registration_behavior *this, bcmolt_buf *buf)
+{
+    uint8_t num_val;
+    if (!bcmolt_buf_read_u8(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_request_registration_fail_reason_pack(bcmolt_request_registration_fail_reason this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u8(buf, (uint8_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_request_registration_fail_reason_unpack(bcmolt_request_registration_fail_reason *this, bcmolt_buf *buf)
+{
+    uint8_t num_val;
+    if (!bcmolt_buf_read_u8(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_result_pack(bcmolt_result this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u8(buf, (uint8_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_result_unpack(bcmolt_result *this, bcmolt_buf *buf)
+{
+    uint8_t num_val;
+    if (!bcmolt_buf_read_u8(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_rogue_detection_algorithm_type_pack(bcmolt_rogue_detection_algorithm_type this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u8(buf, (uint8_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_rogue_detection_algorithm_type_unpack(bcmolt_rogue_detection_algorithm_type *this, bcmolt_buf *buf)
+{
+    uint8_t num_val;
+    if (!bcmolt_buf_read_u8(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_rogue_detection_window_pack(bcmolt_rogue_detection_window this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u8(buf, (uint8_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_rogue_detection_window_unpack(bcmolt_rogue_detection_window *this, bcmolt_buf *buf)
+{
+    uint8_t num_val;
+    if (!bcmolt_buf_read_u8(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_rogue_measurement_result_pack(bcmolt_rogue_measurement_result this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u8(buf, (uint8_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_rogue_measurement_result_unpack(bcmolt_rogue_measurement_result *this, bcmolt_buf *buf)
+{
+    uint8_t num_val;
+    if (!bcmolt_buf_read_u8(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_rogue_scan_status_pack(bcmolt_rogue_scan_status this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u8(buf, (uint8_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_rogue_scan_status_unpack(bcmolt_rogue_scan_status *this, bcmolt_buf *buf)
+{
+    uint8_t num_val;
+    if (!bcmolt_buf_read_u8(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_rssi_measurement_fail_reason_pack(bcmolt_rssi_measurement_fail_reason this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u8(buf, (uint8_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_rssi_measurement_fail_reason_unpack(bcmolt_rssi_measurement_fail_reason *this, bcmolt_buf *buf)
+{
+    uint8_t num_val;
+    if (!bcmolt_buf_read_u8(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_secure_mutual_authentication_fail_reason_pack(bcmolt_secure_mutual_authentication_fail_reason this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u8(buf, (uint8_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_secure_mutual_authentication_fail_reason_unpack(bcmolt_secure_mutual_authentication_fail_reason *this, bcmolt_buf *buf)
+{
+    uint8_t num_val;
+    if (!bcmolt_buf_read_u8(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_serdes_ranging_mode_pack(bcmolt_serdes_ranging_mode this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u8(buf, (uint8_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_serdes_ranging_mode_unpack(bcmolt_serdes_ranging_mode *this, bcmolt_buf *buf)
+{
+    uint8_t num_val;
+    if (!bcmolt_buf_read_u8(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_serdes_instance_pack(bcmolt_serdes_instance this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u8(buf, (uint8_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_serdes_instance_unpack(bcmolt_serdes_instance *this, bcmolt_buf *buf)
+{
+    uint8_t num_val;
+    if (!bcmolt_buf_read_u8(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_shaper_mode_pack(bcmolt_shaper_mode this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u8(buf, (uint8_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_shaper_mode_unpack(bcmolt_shaper_mode *this, bcmolt_buf *buf)
+{
+    uint8_t num_val;
+    if (!bcmolt_buf_read_u8(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_software_error_cfg_id_pack(bcmolt_software_error_cfg_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_software_error_cfg_id_unpack(bcmolt_software_error_cfg_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_software_error_key_id_pack(bcmolt_software_error_key_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_software_error_key_id_unpack(bcmolt_software_error_key_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_stat_condition_type_pack(bcmolt_stat_condition_type this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u8(buf, (uint8_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_stat_condition_type_unpack(bcmolt_stat_condition_type *this, bcmolt_buf *buf)
+{
+    uint8_t num_val;
+    if (!bcmolt_buf_read_u8(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_switch_over_type_c_onu_state_pack(bcmolt_switch_over_type_c_onu_state this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u8(buf, (uint8_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_switch_over_type_c_onu_state_unpack(bcmolt_switch_over_type_c_onu_state *this, bcmolt_buf *buf)
+{
+    uint8_t num_val;
+    if (!bcmolt_buf_read_u8(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_system_mode_pack(bcmolt_system_mode this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u8(buf, (uint8_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_system_mode_unpack(bcmolt_system_mode *this, bcmolt_buf *buf)
+{
+    uint8_t num_val;
+    if (!bcmolt_buf_read_u8(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_us_operating_wavelength_bands_pack(bcmolt_us_operating_wavelength_bands this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u8(buf, (uint8_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_us_operating_wavelength_bands_unpack(bcmolt_us_operating_wavelength_bands *this, bcmolt_buf *buf)
+{
+    uint8_t num_val;
+    if (!bcmolt_buf_read_u8(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_traffic_resume_result_pack(bcmolt_traffic_resume_result this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u8(buf, (uint8_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_traffic_resume_result_unpack(bcmolt_traffic_resume_result *this, bcmolt_buf *buf)
+{
+    uint8_t num_val;
+    if (!bcmolt_buf_read_u8(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_trx_calibration_auto_cfg_id_pack(bcmolt_trx_calibration_auto_cfg_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_trx_calibration_auto_cfg_id_unpack(bcmolt_trx_calibration_auto_cfg_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_trx_calibration_capture_window_and_statistic_completed_id_pack(bcmolt_trx_calibration_capture_window_and_statistic_completed_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_trx_calibration_capture_window_and_statistic_completed_id_unpack(bcmolt_trx_calibration_capture_window_and_statistic_completed_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_trx_calibration_key_id_pack(bcmolt_trx_calibration_key_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_trx_calibration_key_id_unpack(bcmolt_trx_calibration_key_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_trx_calibration_start_capture_window_id_pack(bcmolt_trx_calibration_start_capture_window_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_trx_calibration_start_capture_window_id_unpack(bcmolt_trx_calibration_start_capture_window_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_trx_calibration_stop_capture_window_id_pack(bcmolt_trx_calibration_stop_capture_window_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_trx_calibration_stop_capture_window_id_unpack(bcmolt_trx_calibration_stop_capture_window_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_trx_calibration_trigger_pack(bcmolt_trx_calibration_trigger this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u8(buf, (uint8_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_trx_calibration_trigger_unpack(bcmolt_trx_calibration_trigger *this, bcmolt_buf *buf)
+{
+    uint8_t num_val;
+    if (!bcmolt_buf_read_u8(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_trx_calibration_trigger_position_pack(bcmolt_trx_calibration_trigger_position this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u8(buf, (uint8_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_trx_calibration_trigger_position_unpack(bcmolt_trx_calibration_trigger_position *this, bcmolt_buf *buf)
+{
+    uint8_t num_val;
+    if (!bcmolt_buf_read_u8(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_trx_calibration_window_mode_pack(bcmolt_trx_calibration_window_mode this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u8(buf, (uint8_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_trx_calibration_window_mode_unpack(bcmolt_trx_calibration_window_mode *this, bcmolt_buf *buf)
+{
+    uint8_t num_val;
+    if (!bcmolt_buf_read_u8(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_trx_type_pack(bcmolt_trx_type this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u8(buf, (uint8_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_trx_type_unpack(bcmolt_trx_type *this, bcmolt_buf *buf)
+{
+    uint8_t num_val;
+    if (!bcmolt_buf_read_u8(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_tune_in_fail_reason_pack(bcmolt_tune_in_fail_reason this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u8(buf, (uint8_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_tune_in_fail_reason_unpack(bcmolt_tune_in_fail_reason *this, bcmolt_buf *buf)
+{
+    uint8_t num_val;
+    if (!bcmolt_buf_read_u8(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_tune_out_fail_reason_pack(bcmolt_tune_out_fail_reason this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u8(buf, (uint8_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_tune_out_fail_reason_unpack(bcmolt_tune_out_fail_reason *this, bcmolt_buf *buf)
+{
+    uint8_t num_val;
+    if (!bcmolt_buf_read_u8(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_uart_baudrate_pack(bcmolt_uart_baudrate this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u8(buf, (uint8_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_uart_baudrate_unpack(bcmolt_uart_baudrate *this, bcmolt_buf *buf)
+{
+    uint8_t num_val;
+    if (!bcmolt_buf_read_u8(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_us_gem_port_destination_pack(bcmolt_us_gem_port_destination this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u8(buf, (uint8_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_us_gem_port_destination_unpack(bcmolt_us_gem_port_destination *this, bcmolt_buf *buf)
+{
+    uint8_t num_val;
+    if (!bcmolt_buf_read_u8(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_us_vlan_action_pack(bcmolt_us_vlan_action this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u8(buf, (uint8_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_us_vlan_action_unpack(bcmolt_us_vlan_action *this, bcmolt_buf *buf)
+{
+    uint8_t num_val;
+    if (!bcmolt_buf_read_u8(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_vlan_to_flow_mapping_method_pack(bcmolt_vlan_to_flow_mapping_method this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u8(buf, (uint8_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_vlan_to_flow_mapping_method_unpack(bcmolt_vlan_to_flow_mapping_method *this, bcmolt_buf *buf)
+{
+    uint8_t num_val;
+    if (!bcmolt_buf_read_u8(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_alloc_auto_cfg_id_pack(bcmolt_xgpon_alloc_auto_cfg_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_alloc_auto_cfg_id_unpack(bcmolt_xgpon_alloc_auto_cfg_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_alloc_cfg_id_pack(bcmolt_xgpon_alloc_cfg_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_alloc_cfg_id_unpack(bcmolt_xgpon_alloc_cfg_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_alloc_configuration_completed_id_pack(bcmolt_xgpon_alloc_configuration_completed_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_alloc_configuration_completed_id_unpack(bcmolt_xgpon_alloc_configuration_completed_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_alloc_get_alloc_stats_completed_id_pack(bcmolt_xgpon_alloc_get_alloc_stats_completed_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_alloc_get_alloc_stats_completed_id_unpack(bcmolt_xgpon_alloc_get_alloc_stats_completed_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_alloc_get_stats_id_pack(bcmolt_xgpon_alloc_get_stats_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_alloc_get_stats_id_unpack(bcmolt_xgpon_alloc_get_stats_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_alloc_key_id_pack(bcmolt_xgpon_alloc_key_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_alloc_key_id_unpack(bcmolt_xgpon_alloc_key_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_alloc_set_state_id_pack(bcmolt_xgpon_alloc_set_state_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_alloc_set_state_id_unpack(bcmolt_xgpon_alloc_set_state_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_alloc_stat_alarm_cleared_id_pack(bcmolt_xgpon_alloc_stat_alarm_cleared_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_alloc_stat_alarm_cleared_id_unpack(bcmolt_xgpon_alloc_stat_alarm_cleared_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_alloc_stat_alarm_raised_id_pack(bcmolt_xgpon_alloc_stat_alarm_raised_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_alloc_stat_alarm_raised_id_unpack(bcmolt_xgpon_alloc_stat_alarm_raised_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_alloc_stat_cfg_id_pack(bcmolt_xgpon_alloc_stat_cfg_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_alloc_stat_cfg_id_unpack(bcmolt_xgpon_alloc_stat_cfg_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_alloc_stat_id_pack(bcmolt_xgpon_alloc_stat_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_alloc_stat_id_unpack(bcmolt_xgpon_alloc_stat_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_gem_port_auto_cfg_id_pack(bcmolt_xgpon_gem_port_auto_cfg_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_gem_port_auto_cfg_id_unpack(bcmolt_xgpon_gem_port_auto_cfg_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_gem_port_cfg_id_pack(bcmolt_xgpon_gem_port_cfg_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_gem_port_cfg_id_unpack(bcmolt_xgpon_gem_port_cfg_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_gem_port_key_id_pack(bcmolt_xgpon_gem_port_key_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_gem_port_key_id_unpack(bcmolt_xgpon_gem_port_key_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_gem_port_stat_alarm_cleared_id_pack(bcmolt_xgpon_gem_port_stat_alarm_cleared_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_gem_port_stat_alarm_cleared_id_unpack(bcmolt_xgpon_gem_port_stat_alarm_cleared_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_gem_port_stat_alarm_raised_id_pack(bcmolt_xgpon_gem_port_stat_alarm_raised_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_gem_port_stat_alarm_raised_id_unpack(bcmolt_xgpon_gem_port_stat_alarm_raised_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_gem_port_stat_cfg_id_pack(bcmolt_xgpon_gem_port_stat_cfg_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_gem_port_stat_cfg_id_unpack(bcmolt_xgpon_gem_port_stat_cfg_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_gem_port_stat_id_pack(bcmolt_xgpon_gem_port_stat_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_gem_port_stat_id_unpack(bcmolt_xgpon_gem_port_stat_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_gem_port_state_pack(bcmolt_xgpon_gem_port_state this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u8(buf, (uint8_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_gem_port_state_unpack(bcmolt_xgpon_gem_port_state *this, bcmolt_buf *buf)
+{
+    uint8_t num_val;
+    if (!bcmolt_buf_read_u8(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_iwf_cfg_id_pack(bcmolt_xgpon_iwf_cfg_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_iwf_cfg_id_unpack(bcmolt_xgpon_iwf_cfg_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_iwf_key_id_pack(bcmolt_xgpon_iwf_key_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_iwf_key_id_unpack(bcmolt_xgpon_iwf_key_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_ni_activate_all_onus_completed_id_pack(bcmolt_xgpon_ni_activate_all_onus_completed_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_ni_activate_all_onus_completed_id_unpack(bcmolt_xgpon_ni_activate_all_onus_completed_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_ni_adjust_tx_wavelength_id_pack(bcmolt_xgpon_ni_adjust_tx_wavelength_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_ni_adjust_tx_wavelength_id_unpack(bcmolt_xgpon_ni_adjust_tx_wavelength_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_ni_auto_cfg_id_pack(bcmolt_xgpon_ni_auto_cfg_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_ni_auto_cfg_id_unpack(bcmolt_xgpon_ni_auto_cfg_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_ni_broadcast_ploam_packet_id_pack(bcmolt_xgpon_ni_broadcast_ploam_packet_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_ni_broadcast_ploam_packet_id_unpack(bcmolt_xgpon_ni_broadcast_ploam_packet_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_ni_cfg_id_pack(bcmolt_xgpon_ni_cfg_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_ni_cfg_id_unpack(bcmolt_xgpon_ni_cfg_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_ni_cpu_packets_failure_id_pack(bcmolt_xgpon_ni_cpu_packets_failure_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_ni_cpu_packets_failure_id_unpack(bcmolt_xgpon_ni_cpu_packets_failure_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_ni_cpu_packets_id_pack(bcmolt_xgpon_ni_cpu_packets_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_ni_cpu_packets_id_unpack(bcmolt_xgpon_ni_cpu_packets_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_ni_deactivate_all_onus_completed_id_pack(bcmolt_xgpon_ni_deactivate_all_onus_completed_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_ni_deactivate_all_onus_completed_id_unpack(bcmolt_xgpon_ni_deactivate_all_onus_completed_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_ni_disable_all_onus_completed_id_pack(bcmolt_xgpon_ni_disable_all_onus_completed_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_ni_disable_all_onus_completed_id_unpack(bcmolt_xgpon_ni_disable_all_onus_completed_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_ni_disable_serial_number_id_pack(bcmolt_xgpon_ni_disable_serial_number_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_ni_disable_serial_number_id_unpack(bcmolt_xgpon_ni_disable_serial_number_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_ni_enable_all_onus_completed_id_pack(bcmolt_xgpon_ni_enable_all_onus_completed_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_ni_enable_all_onus_completed_id_unpack(bcmolt_xgpon_ni_enable_all_onus_completed_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_ni_key_id_pack(bcmolt_xgpon_ni_key_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_ni_key_id_unpack(bcmolt_xgpon_ni_key_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_ni_los_id_pack(bcmolt_xgpon_ni_los_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_ni_los_id_unpack(bcmolt_xgpon_ni_los_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_ni_onu_discovered_id_pack(bcmolt_xgpon_ni_onu_discovered_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_ni_onu_discovered_id_unpack(bcmolt_xgpon_ni_onu_discovered_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_ni_onu_upgrade_complete_id_pack(bcmolt_xgpon_ni_onu_upgrade_complete_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_ni_onu_upgrade_complete_id_unpack(bcmolt_xgpon_ni_onu_upgrade_complete_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_ni_protection_switching_onus_ranged_id_pack(bcmolt_xgpon_ni_protection_switching_onus_ranged_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_ni_protection_switching_onus_ranged_id_unpack(bcmolt_xgpon_ni_protection_switching_onus_ranged_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_ni_protection_switching_switchover_completed_id_pack(bcmolt_xgpon_ni_protection_switching_switchover_completed_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_ni_protection_switching_switchover_completed_id_unpack(bcmolt_xgpon_ni_protection_switching_switchover_completed_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_ni_protection_switching_traffic_resume_id_pack(bcmolt_xgpon_ni_protection_switching_traffic_resume_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_ni_protection_switching_traffic_resume_id_unpack(bcmolt_xgpon_ni_protection_switching_traffic_resume_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_ni_reset_id_pack(bcmolt_xgpon_ni_reset_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_ni_reset_id_unpack(bcmolt_xgpon_ni_reset_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_ni_rogue_detection_completed_id_pack(bcmolt_xgpon_ni_rogue_detection_completed_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_ni_rogue_detection_completed_id_unpack(bcmolt_xgpon_ni_rogue_detection_completed_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_ni_rogue_detection_window_id_pack(bcmolt_xgpon_ni_rogue_detection_window_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_ni_rogue_detection_window_id_unpack(bcmolt_xgpon_ni_rogue_detection_window_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_ni_rogue_onu_special_map_cycle_start_id_pack(bcmolt_xgpon_ni_rogue_onu_special_map_cycle_start_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_ni_rogue_onu_special_map_cycle_start_id_unpack(bcmolt_xgpon_ni_rogue_onu_special_map_cycle_start_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_ni_run_special_bw_map_id_pack(bcmolt_xgpon_ni_run_special_bw_map_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_ni_run_special_bw_map_id_unpack(bcmolt_xgpon_ni_run_special_bw_map_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_ni_serial_number_acquisition_cycle_start_id_pack(bcmolt_xgpon_ni_serial_number_acquisition_cycle_start_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_ni_serial_number_acquisition_cycle_start_id_unpack(bcmolt_xgpon_ni_serial_number_acquisition_cycle_start_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_ni_set_onu_state_id_pack(bcmolt_xgpon_ni_set_onu_state_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_ni_set_onu_state_id_unpack(bcmolt_xgpon_ni_set_onu_state_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_ni_set_pon_state_id_pack(bcmolt_xgpon_ni_set_pon_state_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_ni_set_pon_state_id_unpack(bcmolt_xgpon_ni_set_pon_state_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_ni_single_request_standby_pon_monitoring_id_pack(bcmolt_xgpon_ni_single_request_standby_pon_monitoring_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_ni_single_request_standby_pon_monitoring_id_unpack(bcmolt_xgpon_ni_single_request_standby_pon_monitoring_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_ni_standby_pon_monitoring_cycle_completed_id_pack(bcmolt_xgpon_ni_standby_pon_monitoring_cycle_completed_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_ni_standby_pon_monitoring_cycle_completed_id_unpack(bcmolt_xgpon_ni_standby_pon_monitoring_cycle_completed_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_ni_start_onu_upgrade_id_pack(bcmolt_xgpon_ni_start_onu_upgrade_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_ni_start_onu_upgrade_id_unpack(bcmolt_xgpon_ni_start_onu_upgrade_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_ni_stat_alarm_cleared_id_pack(bcmolt_xgpon_ni_stat_alarm_cleared_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_ni_stat_alarm_cleared_id_unpack(bcmolt_xgpon_ni_stat_alarm_cleared_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_ni_stat_alarm_raised_id_pack(bcmolt_xgpon_ni_stat_alarm_raised_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_ni_stat_alarm_raised_id_unpack(bcmolt_xgpon_ni_stat_alarm_raised_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_ni_stat_cfg_id_pack(bcmolt_xgpon_ni_stat_cfg_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_ni_stat_cfg_id_unpack(bcmolt_xgpon_ni_stat_cfg_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_ni_stat_id_pack(bcmolt_xgpon_ni_stat_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_ni_stat_id_unpack(bcmolt_xgpon_ni_stat_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_ni_state_change_completed_id_pack(bcmolt_xgpon_ni_state_change_completed_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_ni_state_change_completed_id_unpack(bcmolt_xgpon_ni_state_change_completed_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_ni_tod_request_completed_id_pack(bcmolt_xgpon_ni_tod_request_completed_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_ni_tod_request_completed_id_unpack(bcmolt_xgpon_ni_tod_request_completed_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_ni_tod_request_id_pack(bcmolt_xgpon_ni_tod_request_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_ni_tod_request_id_unpack(bcmolt_xgpon_ni_tod_request_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_num_of_onus_pack(bcmolt_xgpon_num_of_onus this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u8(buf, (uint8_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_num_of_onus_unpack(bcmolt_xgpon_num_of_onus *this, bcmolt_buf *buf)
+{
+    uint8_t num_val;
+    if (!bcmolt_buf_read_u8(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_adjust_tx_wavelength_id_pack(bcmolt_xgpon_onu_adjust_tx_wavelength_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_adjust_tx_wavelength_id_unpack(bcmolt_xgpon_onu_adjust_tx_wavelength_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_auto_cfg_id_pack(bcmolt_xgpon_onu_auto_cfg_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_auto_cfg_id_unpack(bcmolt_xgpon_onu_auto_cfg_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_cfg_id_pack(bcmolt_xgpon_onu_cfg_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_cfg_id_unpack(bcmolt_xgpon_onu_cfg_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_change_power_levelling_id_pack(bcmolt_xgpon_onu_change_power_levelling_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_change_power_levelling_id_unpack(bcmolt_xgpon_onu_change_power_levelling_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_cpu_packet_id_pack(bcmolt_xgpon_onu_cpu_packet_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_cpu_packet_id_unpack(bcmolt_xgpon_onu_cpu_packet_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_cpu_packets_id_pack(bcmolt_xgpon_onu_cpu_packets_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_cpu_packets_id_unpack(bcmolt_xgpon_onu_cpu_packets_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_dfi_id_pack(bcmolt_xgpon_onu_dfi_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_dfi_id_unpack(bcmolt_xgpon_onu_dfi_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_dgi_id_pack(bcmolt_xgpon_onu_dgi_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_dgi_id_unpack(bcmolt_xgpon_onu_dgi_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_dowi_id_pack(bcmolt_xgpon_onu_dowi_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_dowi_id_unpack(bcmolt_xgpon_onu_dowi_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_get_power_consumption_id_pack(bcmolt_xgpon_onu_get_power_consumption_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_get_power_consumption_id_unpack(bcmolt_xgpon_onu_get_power_consumption_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_get_power_level_id_pack(bcmolt_xgpon_onu_get_power_level_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_get_power_level_id_unpack(bcmolt_xgpon_onu_get_power_level_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_invalid_dbru_report_id_pack(bcmolt_xgpon_onu_invalid_dbru_report_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_invalid_dbru_report_id_unpack(bcmolt_xgpon_onu_invalid_dbru_report_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_key_exchange_completed_id_pack(bcmolt_xgpon_onu_key_exchange_completed_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_key_exchange_completed_id_unpack(bcmolt_xgpon_onu_key_exchange_completed_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_key_exchange_cycle_skipped_id_pack(bcmolt_xgpon_onu_key_exchange_cycle_skipped_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_key_exchange_cycle_skipped_id_unpack(bcmolt_xgpon_onu_key_exchange_cycle_skipped_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_key_exchange_key_mismatch_id_pack(bcmolt_xgpon_onu_key_exchange_key_mismatch_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_key_exchange_key_mismatch_id_unpack(bcmolt_xgpon_onu_key_exchange_key_mismatch_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_key_exchange_key_request_timeout_id_pack(bcmolt_xgpon_onu_key_exchange_key_request_timeout_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_key_exchange_key_request_timeout_id_unpack(bcmolt_xgpon_onu_key_exchange_key_request_timeout_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_key_id_pack(bcmolt_xgpon_onu_key_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_key_id_unpack(bcmolt_xgpon_onu_key_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_looci_id_pack(bcmolt_xgpon_onu_looci_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_looci_id_unpack(bcmolt_xgpon_onu_looci_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_omci_packet_id_pack(bcmolt_xgpon_onu_omci_packet_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_omci_packet_id_unpack(bcmolt_xgpon_onu_omci_packet_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_onu_activation_completed_id_pack(bcmolt_xgpon_onu_onu_activation_completed_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_onu_activation_completed_id_unpack(bcmolt_xgpon_onu_onu_activation_completed_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_onu_alarm_id_pack(bcmolt_xgpon_onu_onu_alarm_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_onu_alarm_id_unpack(bcmolt_xgpon_onu_onu_alarm_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_onu_deactivation_completed_id_pack(bcmolt_xgpon_onu_onu_deactivation_completed_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_onu_deactivation_completed_id_unpack(bcmolt_xgpon_onu_onu_deactivation_completed_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_onu_disable_completed_id_pack(bcmolt_xgpon_onu_onu_disable_completed_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_onu_disable_completed_id_unpack(bcmolt_xgpon_onu_onu_disable_completed_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_onu_enable_completed_id_pack(bcmolt_xgpon_onu_onu_enable_completed_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_onu_enable_completed_id_unpack(bcmolt_xgpon_onu_onu_enable_completed_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_onu_tuning_in_completed_id_pack(bcmolt_xgpon_onu_onu_tuning_in_completed_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_onu_tuning_in_completed_id_unpack(bcmolt_xgpon_onu_onu_tuning_in_completed_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_onu_tuning_in_id_pack(bcmolt_xgpon_onu_onu_tuning_in_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_onu_tuning_in_id_unpack(bcmolt_xgpon_onu_onu_tuning_in_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_onu_tuning_out_completed_id_pack(bcmolt_xgpon_onu_onu_tuning_out_completed_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_onu_tuning_out_completed_id_unpack(bcmolt_xgpon_onu_onu_tuning_out_completed_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_onu_tuning_out_id_pack(bcmolt_xgpon_onu_onu_tuning_out_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_onu_tuning_out_id_unpack(bcmolt_xgpon_onu_onu_tuning_out_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_optical_reflection_id_pack(bcmolt_xgpon_onu_optical_reflection_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_optical_reflection_id_unpack(bcmolt_xgpon_onu_optical_reflection_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_ploam_packet_id_pack(bcmolt_xgpon_onu_ploam_packet_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_ploam_packet_id_unpack(bcmolt_xgpon_onu_ploam_packet_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_possible_drift_id_pack(bcmolt_xgpon_onu_possible_drift_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_possible_drift_id_unpack(bcmolt_xgpon_onu_possible_drift_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_power_consumption_report_id_pack(bcmolt_xgpon_onu_power_consumption_report_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_power_consumption_report_id_unpack(bcmolt_xgpon_onu_power_consumption_report_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_power_level_report_id_pack(bcmolt_xgpon_onu_power_level_report_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_power_level_report_id_unpack(bcmolt_xgpon_onu_power_level_report_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_power_management_state_change_id_pack(bcmolt_xgpon_onu_power_management_state_change_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_power_management_state_change_id_unpack(bcmolt_xgpon_onu_power_management_state_change_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_pqsi_id_pack(bcmolt_xgpon_onu_pqsi_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_pqsi_id_unpack(bcmolt_xgpon_onu_pqsi_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_ranging_completed_id_pack(bcmolt_xgpon_onu_ranging_completed_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_ranging_completed_id_unpack(bcmolt_xgpon_onu_ranging_completed_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_registration_id_id_pack(bcmolt_xgpon_onu_registration_id_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_registration_id_id_unpack(bcmolt_xgpon_onu_registration_id_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_request_registration_id_pack(bcmolt_xgpon_onu_request_registration_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_request_registration_id_unpack(bcmolt_xgpon_onu_request_registration_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_rssi_measurement_completed_id_pack(bcmolt_xgpon_onu_rssi_measurement_completed_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_rssi_measurement_completed_id_unpack(bcmolt_xgpon_onu_rssi_measurement_completed_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_rssi_measurement_id_pack(bcmolt_xgpon_onu_rssi_measurement_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_rssi_measurement_id_unpack(bcmolt_xgpon_onu_rssi_measurement_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_sdi_id_pack(bcmolt_xgpon_onu_sdi_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_sdi_id_unpack(bcmolt_xgpon_onu_sdi_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_secure_mutual_authentication_failure_id_pack(bcmolt_xgpon_onu_secure_mutual_authentication_failure_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_secure_mutual_authentication_failure_id_unpack(bcmolt_xgpon_onu_secure_mutual_authentication_failure_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_secure_mutual_authentication_id_pack(bcmolt_xgpon_onu_secure_mutual_authentication_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_secure_mutual_authentication_id_unpack(bcmolt_xgpon_onu_secure_mutual_authentication_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_set_onu_state_id_pack(bcmolt_xgpon_onu_set_onu_state_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_set_onu_state_id_unpack(bcmolt_xgpon_onu_set_onu_state_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_sfi_id_pack(bcmolt_xgpon_onu_sfi_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_sfi_id_unpack(bcmolt_xgpon_onu_sfi_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_stat_alarm_cleared_id_pack(bcmolt_xgpon_onu_stat_alarm_cleared_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_stat_alarm_cleared_id_unpack(bcmolt_xgpon_onu_stat_alarm_cleared_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_stat_alarm_raised_id_pack(bcmolt_xgpon_onu_stat_alarm_raised_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_stat_alarm_raised_id_unpack(bcmolt_xgpon_onu_stat_alarm_raised_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_stat_cfg_id_pack(bcmolt_xgpon_onu_stat_cfg_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_stat_cfg_id_unpack(bcmolt_xgpon_onu_stat_cfg_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_stat_id_pack(bcmolt_xgpon_onu_stat_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_stat_id_unpack(bcmolt_xgpon_onu_stat_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_sufi_id_pack(bcmolt_xgpon_onu_sufi_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_sufi_id_unpack(bcmolt_xgpon_onu_sufi_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_tiwi_id_pack(bcmolt_xgpon_onu_tiwi_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_tiwi_id_unpack(bcmolt_xgpon_onu_tiwi_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_tuning_response_id_pack(bcmolt_xgpon_onu_tuning_response_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_tuning_response_id_unpack(bcmolt_xgpon_onu_tuning_response_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_serdes_ranging_mode_pack(bcmolt_xgpon_serdes_ranging_mode this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u8(buf, (uint8_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_serdes_ranging_mode_unpack(bcmolt_xgpon_serdes_ranging_mode *this, bcmolt_buf *buf)
+{
+    uint8_t num_val;
+    if (!bcmolt_buf_read_u8(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_trx_cfg_id_pack(bcmolt_xgpon_trx_cfg_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_trx_cfg_id_unpack(bcmolt_xgpon_trx_cfg_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_trx_key_id_pack(bcmolt_xgpon_trx_key_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_trx_key_id_unpack(bcmolt_xgpon_trx_key_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_trx_type_pack(bcmolt_xgpon_trx_type this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u8(buf, (uint8_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_trx_type_unpack(bcmolt_xgpon_trx_type *this, bcmolt_buf *buf)
+{
+    uint8_t num_val;
+    if (!bcmolt_buf_read_u8(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xpon_serdes_cfg_id_pack(bcmolt_xpon_serdes_cfg_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xpon_serdes_cfg_id_unpack(bcmolt_xpon_serdes_cfg_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xpon_serdes_key_id_pack(bcmolt_xpon_serdes_key_id this, bcmolt_buf *buf)
+{
+    return bcmolt_buf_write_u16(buf, (uint16_t) this);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xpon_serdes_key_id_unpack(bcmolt_xpon_serdes_key_id *this, bcmolt_buf *buf)
+{
+    uint16_t num_val;
+    if (!bcmolt_buf_read_u16(buf, &num_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *this = num_val;
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_actual_schedulershaper_set_default(bcmolt_actual_schedulershaper *this)
+{
+    this->actual_mbs_tq = (bcmolt_time_quanta) 0;
+    this->actual_weight_tq = (bcmolt_time_quanta) 0;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_actual_schedulershaper_pack(const bcmolt_actual_schedulershaper *this, bcmolt_buf *buf)
+{
+    if (!bcmolt_buf_write_u32(buf, (uint32_t) this->actual_mbs_tq))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_write_u32(buf, (uint32_t) this->actual_weight_tq))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_actual_schedulershaper_unpack(bcmolt_actual_schedulershaper *this, bcmolt_buf *buf, void **extra_mem)
+{
+    if (!bcmolt_buf_read_u32(buf, (uint32_t *) &this->actual_mbs_tq))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_read_u32(buf, (uint32_t *) &this->actual_weight_tq))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_actual_schedulershaper_scan(bcmolt_buf *packed, uint32_t *extra_mem)
+{
+    (void)extra_mem;
+    return bcmolt_buf_skip(packed, 8);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_actual_schedulershaper_bounds_check(const bcmolt_actual_schedulershaper *this)
+{
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_aes_key_set_default(bcmolt_aes_key *this)
+{
+    memset(this->bytes, 0, sizeof(this->bytes));
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_aes_key_pack(const bcmolt_aes_key *this, bcmolt_buf *buf)
+{
+    if (!bcmolt_buf_write(buf, this->bytes, 16))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_aes_key_unpack(bcmolt_aes_key *this, bcmolt_buf *buf, void **extra_mem)
+{
+    if (!bcmolt_buf_read(buf, this->bytes, 16))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_aes_key_scan(bcmolt_buf *packed, uint32_t *extra_mem)
+{
+    (void)extra_mem;
+    return bcmolt_buf_skip(packed, 16);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_aes_key_bounds_check(const bcmolt_aes_key *this)
+{
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_api_capture_buffer_reader_set_default(bcmolt_api_capture_buffer_reader *this)
+{
+    this->offset = 0;
+    this->size = 0;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_api_capture_buffer_reader_pack(const bcmolt_api_capture_buffer_reader *this, bcmolt_buf *buf)
+{
+    if (!bcmolt_buf_write_u32(buf, this->offset))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_write_u32(buf, this->size))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_api_capture_buffer_reader_unpack(bcmolt_api_capture_buffer_reader *this, bcmolt_buf *buf, void **extra_mem)
+{
+    if (!bcmolt_buf_read_u32(buf, &this->offset))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_read_u32(buf, &this->size))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_api_capture_buffer_reader_scan(bcmolt_buf *packed, uint32_t *extra_mem)
+{
+    (void)extra_mem;
+    return bcmolt_buf_skip(packed, 8);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_api_capture_buffer_reader_bounds_check(const bcmolt_api_capture_buffer_reader *this)
+{
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_api_capture_config_set_default(bcmolt_api_capture_config *this)
+{
+    this->location = BCMOLT_API_CAPTURE_LOCATION_DEVICE;
+    this->buffer_size_bytes = 16384;
+    this->buffer_mode = BCMOLT_API_CAPTURE_BUFFER_MODE_WRAP;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_api_capture_config_pack(const bcmolt_api_capture_config *this, bcmolt_buf *buf)
+{
+    if (!bcmolt_api_capture_location_pack(this->location, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_write_u32(buf, this->buffer_size_bytes))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_api_capture_buffer_mode_pack(this->buffer_mode, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_api_capture_config_unpack(bcmolt_api_capture_config *this, bcmolt_buf *buf, void **extra_mem)
+{
+    if (!bcmolt_api_capture_location_unpack(&this->location, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_read_u32(buf, &this->buffer_size_bytes))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_api_capture_buffer_mode_unpack(&this->buffer_mode, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_api_capture_config_scan(bcmolt_buf *packed, uint32_t *extra_mem)
+{
+    (void)extra_mem;
+    return bcmolt_buf_skip(packed, 6);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_api_capture_config_bounds_check(const bcmolt_api_capture_config *this)
+{
+    switch (this->location)
+    {
+        case BCMOLT_API_CAPTURE_LOCATION_DEVICE:
+            break;
+        case BCMOLT_API_CAPTURE_LOCATION_HOST:
+            break;
+        default:
+            return BCMOS_FALSE;
+    }
+
+    if (this->buffer_size_bytes < 16384)
+    {
+        return BCMOS_FALSE;
+    }
+
+    switch (this->buffer_mode)
+    {
+        case BCMOLT_API_CAPTURE_BUFFER_MODE_OVERFLOW:
+            break;
+        case BCMOLT_API_CAPTURE_BUFFER_MODE_WRAP:
+            break;
+        default:
+            return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_api_capture_stats_set_default(bcmolt_api_capture_stats *this)
+{
+    this->buffer_used_bytes = 0;
+    this->buffer_wrap_count = 0;
+    this->events_recorded = 0;
+    this->events_dropped = 0;
+    this->readable_bytes = 0;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_api_capture_stats_pack(const bcmolt_api_capture_stats *this, bcmolt_buf *buf)
+{
+    if (!bcmolt_buf_write_u32(buf, this->buffer_used_bytes))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_write_u32(buf, this->buffer_wrap_count))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_write_u32(buf, this->events_recorded))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_write_u32(buf, this->events_dropped))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_write_u32(buf, this->readable_bytes))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_api_capture_stats_unpack(bcmolt_api_capture_stats *this, bcmolt_buf *buf, void **extra_mem)
+{
+    if (!bcmolt_buf_read_u32(buf, &this->buffer_used_bytes))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_read_u32(buf, &this->buffer_wrap_count))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_read_u32(buf, &this->events_recorded))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_read_u32(buf, &this->events_dropped))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_read_u32(buf, &this->readable_bytes))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_api_capture_stats_scan(bcmolt_buf *packed, uint32_t *extra_mem)
+{
+    (void)extra_mem;
+    return bcmolt_buf_skip(packed, 20);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_api_capture_stats_bounds_check(const bcmolt_api_capture_stats *this)
+{
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_bounds_set_default(bcmolt_bounds *this)
+{
+    this->best_case = 0;
+    this->worst_case = 0;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_bounds_pack(const bcmolt_bounds *this, bcmolt_buf *buf)
+{
+    if (!bcmolt_buf_write_u32(buf, this->best_case))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_write_u32(buf, this->worst_case))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_bounds_unpack(bcmolt_bounds *this, bcmolt_buf *buf, void **extra_mem)
+{
+    if (!bcmolt_buf_read_u32(buf, &this->best_case))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_read_u32(buf, &this->worst_case))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_bounds_scan(bcmolt_buf *packed, uint32_t *extra_mem)
+{
+    (void)extra_mem;
+    return bcmolt_buf_skip(packed, 8);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_bounds_bounds_check(const bcmolt_bounds *this)
+{
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_arr_bounds_8_set_default(bcmolt_arr_bounds_8 *this)
+{
+    memset(this->arr, 0, sizeof(this->arr));
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_arr_bounds_8_pack(const bcmolt_arr_bounds_8 *this, bcmolt_buf *buf)
+{
+    uint32_t i0;
+    for (i0 = 0; i0 < 8; i0++)
+    {
+        if (!bcmolt_bounds_pack(&this->arr[i0], buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_arr_bounds_8_unpack(bcmolt_arr_bounds_8 *this, bcmolt_buf *buf, void **extra_mem)
+{
+    uint32_t i0;
+    for (i0 = 0; i0 < 8; i0++)
+    {
+        if (!bcmolt_bounds_unpack(&this->arr[i0], buf, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_arr_bounds_8_scan(bcmolt_buf *packed, uint32_t *extra_mem)
+{
+    (void)extra_mem;
+    return bcmolt_buf_skip(packed, 64);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_arr_bounds_8_bounds_check(const bcmolt_arr_bounds_8 *this)
+{
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_arr_calibration_record_8_set_default(bcmolt_arr_calibration_record_8 *this)
+{
+    memset(this->arr, 0, sizeof(this->arr));
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_arr_calibration_record_8_pack(const bcmolt_arr_calibration_record_8 *this, bcmolt_buf *buf)
+{
+    uint32_t i0;
+    for (i0 = 0; i0 < 8; i0++)
+    {
+        if (!bcmolt_calibration_record_pack(this->arr[i0], buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_arr_calibration_record_8_unpack(bcmolt_arr_calibration_record_8 *this, bcmolt_buf *buf, void **extra_mem)
+{
+    uint32_t i0;
+    for (i0 = 0; i0 < 8; i0++)
+    {
+        if (!bcmolt_calibration_record_unpack(&this->arr[i0], buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_arr_calibration_record_8_scan(bcmolt_buf *packed, uint32_t *extra_mem)
+{
+    (void)extra_mem;
+    return bcmolt_buf_skip(packed, 8);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_arr_calibration_record_8_bounds_check(const bcmolt_arr_calibration_record_8 *this)
+{
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_ds_frequency_offset_set_default(bcmolt_ds_frequency_offset *this)
+{
+    this->sign = BCMOLT_SIGN_POSITIVE;
+    this->value = 0;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_ds_frequency_offset_pack(const bcmolt_ds_frequency_offset *this, bcmolt_buf *buf)
+{
+    if (!bcmolt_sign_pack(this->sign, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_write_u8(buf, this->value))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_ds_frequency_offset_unpack(bcmolt_ds_frequency_offset *this, bcmolt_buf *buf, void **extra_mem)
+{
+    if (!bcmolt_sign_unpack(&this->sign, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_read_u8(buf, &this->value))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_ds_frequency_offset_scan(bcmolt_buf *packed, uint32_t *extra_mem)
+{
+    (void)extra_mem;
+    return bcmolt_buf_skip(packed, 2);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_ds_frequency_offset_bounds_check(const bcmolt_ds_frequency_offset *this)
+{
+    switch (this->sign)
+    {
+        case BCMOLT_SIGN_POSITIVE:
+            break;
+        case BCMOLT_SIGN_NEGATIVE:
+            break;
+        default:
+            return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_channel_profile_set_default(bcmolt_channel_profile *this)
+{
+    this->version = 0;
+    this->channel_index = 0;
+    this->ds_frequency_offset.sign = BCMOLT_SIGN_POSITIVE;
+    this->ds_frequency_offset.value = 0;
+    this->channel_partition = 0;
+    this->uwlch_id = 0;
+    this->us_frequency = 0;
+    this->us_rate = BCMOLT_UPSTREAM_LINE_RATE_CAPABILITIES_RATE_2_P_5_G;
+    this->default_onu_attenuation = 0;
+    this->response_threshold = 0;
+    this->us_link_type = BCMOLT_LINK_TYPE_UNSPECIFIED;
+    this->is_valid = BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_channel_profile_pack(const bcmolt_channel_profile *this, bcmolt_buf *buf)
+{
+    if (!bcmolt_buf_write_u8(buf, this->version))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_write_u8(buf, this->channel_index))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_ds_frequency_offset_pack(&this->ds_frequency_offset, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_write_u8(buf, this->channel_partition))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_write_u8(buf, this->uwlch_id))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_write_u32(buf, this->us_frequency))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_upstream_line_rate_capabilities_pack(this->us_rate, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_write_u8(buf, this->default_onu_attenuation))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_write_u8(buf, this->response_threshold))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_link_type_pack(this->us_link_type, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_write_bool(buf, this->is_valid))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_channel_profile_unpack(bcmolt_channel_profile *this, bcmolt_buf *buf, void **extra_mem)
+{
+    if (!bcmolt_buf_read_u8(buf, &this->version))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_read_u8(buf, &this->channel_index))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_ds_frequency_offset_unpack(&this->ds_frequency_offset, buf, extra_mem))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_read_u8(buf, &this->channel_partition))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_read_u8(buf, &this->uwlch_id))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_read_u32(buf, &this->us_frequency))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_upstream_line_rate_capabilities_unpack(&this->us_rate, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_read_u8(buf, &this->default_onu_attenuation))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_read_u8(buf, &this->response_threshold))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_link_type_unpack(&this->us_link_type, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_read_bool(buf, &this->is_valid))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_channel_profile_scan(bcmolt_buf *packed, uint32_t *extra_mem)
+{
+    (void)extra_mem;
+    return bcmolt_buf_skip(packed, 15);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_channel_profile_bounds_check(const bcmolt_channel_profile *this)
+{
+    if (this->version > 15)
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (this->channel_index > 15)
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_ds_frequency_offset_bounds_check(&this->ds_frequency_offset))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (this->channel_partition > 15)
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (this->uwlch_id > 15)
+    {
+        return BCMOS_FALSE;
+    }
+
+    switch (this->us_rate)
+    {
+        case BCMOLT_UPSTREAM_LINE_RATE_CAPABILITIES_RATE_2_P_5_G:
+            break;
+        case BCMOLT_UPSTREAM_LINE_RATE_CAPABILITIES_RATE_10_G:
+            break;
+        default:
+            return BCMOS_FALSE;
+    }
+
+    if (this->default_onu_attenuation > 7)
+    {
+        return BCMOS_FALSE;
+    }
+
+    switch (this->us_link_type)
+    {
+        case BCMOLT_LINK_TYPE_UNSPECIFIED:
+            break;
+        case BCMOLT_LINK_TYPE_B:
+            break;
+        case BCMOLT_LINK_TYPE_A:
+            break;
+        case BCMOLT_LINK_TYPE_A_AND_B:
+            break;
+        default:
+            return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_arr_channel_profile_8_set_default(bcmolt_arr_channel_profile_8 *this)
+{
+    memset(this->arr, 0, sizeof(this->arr));
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_arr_channel_profile_8_pack(const bcmolt_arr_channel_profile_8 *this, bcmolt_buf *buf)
+{
+    uint32_t i0;
+    for (i0 = 0; i0 < 8; i0++)
+    {
+        if (!bcmolt_channel_profile_pack(&this->arr[i0], buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_arr_channel_profile_8_unpack(bcmolt_arr_channel_profile_8 *this, bcmolt_buf *buf, void **extra_mem)
+{
+    uint32_t i0;
+    for (i0 = 0; i0 < 8; i0++)
+    {
+        if (!bcmolt_channel_profile_unpack(&this->arr[i0], buf, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_arr_channel_profile_8_scan(bcmolt_buf *packed, uint32_t *extra_mem)
+{
+    (void)extra_mem;
+    return bcmolt_buf_skip(packed, 120);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_arr_channel_profile_8_bounds_check(const bcmolt_arr_channel_profile_8 *this)
+{
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_power_consumption_channel_report_set_default(bcmolt_power_consumption_channel_report *this)
+{
+    this->ds_wavelength_channel_id = 0;
+    this->us_wavelength_channel_id = 0;
+    this->power_consumption = 0;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_power_consumption_channel_report_pack(const bcmolt_power_consumption_channel_report *this, bcmolt_buf *buf)
+{
+    if (!bcmolt_buf_write_u8(buf, this->ds_wavelength_channel_id))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_write_u8(buf, this->us_wavelength_channel_id))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_write_u16(buf, this->power_consumption))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_power_consumption_channel_report_unpack(bcmolt_power_consumption_channel_report *this, bcmolt_buf *buf, void **extra_mem)
+{
+    if (!bcmolt_buf_read_u8(buf, &this->ds_wavelength_channel_id))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_read_u8(buf, &this->us_wavelength_channel_id))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_read_u16(buf, &this->power_consumption))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_power_consumption_channel_report_scan(bcmolt_buf *packed, uint32_t *extra_mem)
+{
+    (void)extra_mem;
+    return bcmolt_buf_skip(packed, 4);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_power_consumption_channel_report_bounds_check(const bcmolt_power_consumption_channel_report *this)
+{
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_arr_power_consumption_channel_report_8_set_default(bcmolt_arr_power_consumption_channel_report_8 *this)
+{
+    memset(this->arr, 0, sizeof(this->arr));
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_arr_power_consumption_channel_report_8_pack(const bcmolt_arr_power_consumption_channel_report_8 *this, bcmolt_buf *buf)
+{
+    uint32_t i0;
+    for (i0 = 0; i0 < 8; i0++)
+    {
+        if (!bcmolt_power_consumption_channel_report_pack(&this->arr[i0], buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_arr_power_consumption_channel_report_8_unpack(bcmolt_arr_power_consumption_channel_report_8 *this, bcmolt_buf *buf, void **extra_mem)
+{
+    uint32_t i0;
+    for (i0 = 0; i0 < 8; i0++)
+    {
+        if (!bcmolt_power_consumption_channel_report_unpack(&this->arr[i0], buf, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_arr_power_consumption_channel_report_8_scan(bcmolt_buf *packed, uint32_t *extra_mem)
+{
+    (void)extra_mem;
+    return bcmolt_buf_skip(packed, 32);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_arr_power_consumption_channel_report_8_bounds_check(const bcmolt_arr_power_consumption_channel_report_8 *this)
+{
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_arr_u16_2_set_default(bcmolt_arr_u16_2 *this)
+{
+    this->arr[0] = 4096;
+    this->arr[1] = 8192;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_arr_u16_2_pack(const bcmolt_arr_u16_2 *this, bcmolt_buf *buf)
+{
+    uint32_t i0;
+    for (i0 = 0; i0 < 2; i0++)
+    {
+        if (!bcmolt_buf_write_u16(buf, this->arr[i0]))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_arr_u16_2_unpack(bcmolt_arr_u16_2 *this, bcmolt_buf *buf, void **extra_mem)
+{
+    uint32_t i0;
+    for (i0 = 0; i0 < 2; i0++)
+    {
+        if (!bcmolt_buf_read_u16(buf, &this->arr[i0]))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_arr_u16_2_scan(bcmolt_buf *packed, uint32_t *extra_mem)
+{
+    (void)extra_mem;
+    return bcmolt_buf_skip(packed, 4);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_arr_u16_2_bounds_check(const bcmolt_arr_u16_2 *this)
+{
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_arr_u16_2_hex_set_default(bcmolt_arr_u16_2_hex *this)
+{
+    this->arr[0] = 33024U;
+    this->arr[1] = 33024U;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_arr_u16_2_hex_pack(const bcmolt_arr_u16_2_hex *this, bcmolt_buf *buf)
+{
+    uint32_t i0;
+    for (i0 = 0; i0 < 2; i0++)
+    {
+        if (!bcmolt_buf_write_u16(buf, this->arr[i0]))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_arr_u16_2_hex_unpack(bcmolt_arr_u16_2_hex *this, bcmolt_buf *buf, void **extra_mem)
+{
+    uint32_t i0;
+    for (i0 = 0; i0 < 2; i0++)
+    {
+        if (!bcmolt_buf_read_u16(buf, &this->arr[i0]))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_arr_u16_2_hex_scan(bcmolt_buf *packed, uint32_t *extra_mem)
+{
+    (void)extra_mem;
+    return bcmolt_buf_skip(packed, 4);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_arr_u16_2_hex_bounds_check(const bcmolt_arr_u16_2_hex *this)
+{
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_arr_u16_5_hex_set_default(bcmolt_arr_u16_5_hex *this)
+{
+    this->arr[0] = 33024U;
+    this->arr[1] = 34984U;
+    this->arr[2] = 37120U;
+    this->arr[3] = 37376U;
+    this->arr[4] = 33024U;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_arr_u16_5_hex_pack(const bcmolt_arr_u16_5_hex *this, bcmolt_buf *buf)
+{
+    uint32_t i0;
+    for (i0 = 0; i0 < 5; i0++)
+    {
+        if (!bcmolt_buf_write_u16(buf, this->arr[i0]))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_arr_u16_5_hex_unpack(bcmolt_arr_u16_5_hex *this, bcmolt_buf *buf, void **extra_mem)
+{
+    uint32_t i0;
+    for (i0 = 0; i0 < 5; i0++)
+    {
+        if (!bcmolt_buf_read_u16(buf, &this->arr[i0]))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_arr_u16_5_hex_scan(bcmolt_buf *packed, uint32_t *extra_mem)
+{
+    (void)extra_mem;
+    return bcmolt_buf_skip(packed, 10);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_arr_u16_5_hex_bounds_check(const bcmolt_arr_u16_5_hex *this)
+{
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_arr_u16_7_set_default(bcmolt_arr_u16_7 *this)
+{
+    memset(this->arr, 0, sizeof(this->arr));
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_arr_u16_7_pack(const bcmolt_arr_u16_7 *this, bcmolt_buf *buf)
+{
+    uint32_t i0;
+    for (i0 = 0; i0 < 7; i0++)
+    {
+        if (!bcmolt_buf_write_u16(buf, this->arr[i0]))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_arr_u16_7_unpack(bcmolt_arr_u16_7 *this, bcmolt_buf *buf, void **extra_mem)
+{
+    uint32_t i0;
+    for (i0 = 0; i0 < 7; i0++)
+    {
+        if (!bcmolt_buf_read_u16(buf, &this->arr[i0]))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_arr_u16_7_scan(bcmolt_buf *packed, uint32_t *extra_mem)
+{
+    (void)extra_mem;
+    return bcmolt_buf_skip(packed, 14);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_arr_u16_7_bounds_check(const bcmolt_arr_u16_7 *this)
+{
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_arr_u32_6_set_default(bcmolt_arr_u32_6 *this)
+{
+    memset(this->arr, 0, sizeof(this->arr));
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_arr_u32_6_pack(const bcmolt_arr_u32_6 *this, bcmolt_buf *buf)
+{
+    uint32_t i0;
+    for (i0 = 0; i0 < 6; i0++)
+    {
+        if (!bcmolt_buf_write_u32(buf, this->arr[i0]))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_arr_u32_6_unpack(bcmolt_arr_u32_6 *this, bcmolt_buf *buf, void **extra_mem)
+{
+    uint32_t i0;
+    for (i0 = 0; i0 < 6; i0++)
+    {
+        if (!bcmolt_buf_read_u32(buf, &this->arr[i0]))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_arr_u32_6_scan(bcmolt_buf *packed, uint32_t *extra_mem)
+{
+    (void)extra_mem;
+    return bcmolt_buf_skip(packed, 24);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_arr_u32_6_bounds_check(const bcmolt_arr_u32_6 *this)
+{
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_arr_u8_10_set_default(bcmolt_arr_u8_10 *this)
+{
+    memset(this->arr, 0, sizeof(this->arr));
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_arr_u8_10_pack(const bcmolt_arr_u8_10 *this, bcmolt_buf *buf)
+{
+    if (!bcmolt_buf_write(buf, this->arr, 10))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_arr_u8_10_unpack(bcmolt_arr_u8_10 *this, bcmolt_buf *buf, void **extra_mem)
+{
+    if (!bcmolt_buf_read(buf, this->arr, 10))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_arr_u8_10_scan(bcmolt_buf *packed, uint32_t *extra_mem)
+{
+    (void)extra_mem;
+    return bcmolt_buf_skip(packed, 10);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_arr_u8_10_bounds_check(const bcmolt_arr_u8_10 *this)
+{
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_arr_u8_12_set_default(bcmolt_arr_u8_12 *this)
+{
+    memset(this->arr, 0, sizeof(this->arr));
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_arr_u8_12_pack(const bcmolt_arr_u8_12 *this, bcmolt_buf *buf)
+{
+    if (!bcmolt_buf_write(buf, this->arr, 12))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_arr_u8_12_unpack(bcmolt_arr_u8_12 *this, bcmolt_buf *buf, void **extra_mem)
+{
+    if (!bcmolt_buf_read(buf, this->arr, 12))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_arr_u8_12_scan(bcmolt_buf *packed, uint32_t *extra_mem)
+{
+    (void)extra_mem;
+    return bcmolt_buf_skip(packed, 12);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_arr_u8_12_bounds_check(const bcmolt_arr_u8_12 *this)
+{
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_arr_u8_13_set_default(bcmolt_arr_u8_13 *this)
+{
+    memset(this->arr, 0, sizeof(this->arr));
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_arr_u8_13_pack(const bcmolt_arr_u8_13 *this, bcmolt_buf *buf)
+{
+    if (!bcmolt_buf_write(buf, this->arr, 13))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_arr_u8_13_unpack(bcmolt_arr_u8_13 *this, bcmolt_buf *buf, void **extra_mem)
+{
+    if (!bcmolt_buf_read(buf, this->arr, 13))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_arr_u8_13_scan(bcmolt_buf *packed, uint32_t *extra_mem)
+{
+    (void)extra_mem;
+    return bcmolt_buf_skip(packed, 13);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_arr_u8_13_bounds_check(const bcmolt_arr_u8_13 *this)
+{
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_arr_u8_36_set_default(bcmolt_arr_u8_36 *this)
+{
+    memset(this->arr, 0, sizeof(this->arr));
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_arr_u8_36_pack(const bcmolt_arr_u8_36 *this, bcmolt_buf *buf)
+{
+    if (!bcmolt_buf_write(buf, this->arr, 36))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_arr_u8_36_unpack(bcmolt_arr_u8_36 *this, bcmolt_buf *buf, void **extra_mem)
+{
+    if (!bcmolt_buf_read(buf, this->arr, 36))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_arr_u8_36_scan(bcmolt_buf *packed, uint32_t *extra_mem)
+{
+    (void)extra_mem;
+    return bcmolt_buf_skip(packed, 36);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_arr_u8_36_bounds_check(const bcmolt_arr_u8_36 *this)
+{
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_arr_u8_4_set_default(bcmolt_arr_u8_4 *this)
+{
+    this->arr[0] = 7;
+    this->arr[1] = 7;
+    this->arr[2] = 7;
+    this->arr[3] = 7;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_arr_u8_4_pack(const bcmolt_arr_u8_4 *this, bcmolt_buf *buf)
+{
+    if (!bcmolt_buf_write(buf, this->arr, 4))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_arr_u8_4_unpack(bcmolt_arr_u8_4 *this, bcmolt_buf *buf, void **extra_mem)
+{
+    if (!bcmolt_buf_read(buf, this->arr, 4))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_arr_u8_4_scan(bcmolt_buf *packed, uint32_t *extra_mem)
+{
+    (void)extra_mem;
+    return bcmolt_buf_skip(packed, 4);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_arr_u8_4_bounds_check(const bcmolt_arr_u8_4 *this)
+{
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_arr_u8_40_set_default(bcmolt_arr_u8_40 *this)
+{
+    memset(this->arr, 0, sizeof(this->arr));
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_arr_u8_40_pack(const bcmolt_arr_u8_40 *this, bcmolt_buf *buf)
+{
+    if (!bcmolt_buf_write(buf, this->arr, 40))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_arr_u8_40_unpack(bcmolt_arr_u8_40 *this, bcmolt_buf *buf, void **extra_mem)
+{
+    if (!bcmolt_buf_read(buf, this->arr, 40))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_arr_u8_40_scan(bcmolt_buf *packed, uint32_t *extra_mem)
+{
+    (void)extra_mem;
+    return bcmolt_buf_skip(packed, 40);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_arr_u8_40_bounds_check(const bcmolt_arr_u8_40 *this)
+{
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_xgpon_burst_profile_set_default(bcmolt_xgpon_burst_profile *this)
+{
+    this->profile_version = 0;
+    this->is_fec_on = BCMOS_FALSE;
+    this->delimiter_size_in_bytes = 0;
+    this->delimiter_pattern_high = 0;
+    this->delimiter_pattern_low = 8;
+    this->preamble_length_in_bytes = 8;
+    this->preamble_repeats_count = 0;
+    this->preamble_pattern_high = 0;
+    this->preamble_pattern_low = 0;
+    this->pon_tag = 0;
+    this->num_of_guard_bytes = 0;
+    this->is_profile_valid = BCMOS_FALSE;
+    this->burst_overhead_size_in_words = 0;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_burst_profile_pack(const bcmolt_xgpon_burst_profile *this, bcmolt_buf *buf)
+{
+    if (!bcmolt_buf_write_u8(buf, this->profile_version))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_write_bool(buf, this->is_fec_on))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_write_u8(buf, this->delimiter_size_in_bytes))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_write_u32(buf, this->delimiter_pattern_high))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_write_u32(buf, this->delimiter_pattern_low))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_write_u8(buf, this->preamble_length_in_bytes))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_write_u8(buf, this->preamble_repeats_count))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_write_u32(buf, this->preamble_pattern_high))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_write_u32(buf, this->preamble_pattern_low))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_write_u64(buf, this->pon_tag))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_write_u32(buf, this->num_of_guard_bytes))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_write_bool(buf, this->is_profile_valid))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_write_u32(buf, this->burst_overhead_size_in_words))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_burst_profile_unpack(bcmolt_xgpon_burst_profile *this, bcmolt_buf *buf, void **extra_mem)
+{
+    if (!bcmolt_buf_read_u8(buf, &this->profile_version))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_read_bool(buf, &this->is_fec_on))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_read_u8(buf, &this->delimiter_size_in_bytes))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_read_u32(buf, &this->delimiter_pattern_high))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_read_u32(buf, &this->delimiter_pattern_low))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_read_u8(buf, &this->preamble_length_in_bytes))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_read_u8(buf, &this->preamble_repeats_count))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_read_u32(buf, &this->preamble_pattern_high))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_read_u32(buf, &this->preamble_pattern_low))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_read_u64(buf, &this->pon_tag))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_read_u32(buf, &this->num_of_guard_bytes))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_read_bool(buf, &this->is_profile_valid))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_read_u32(buf, &this->burst_overhead_size_in_words))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_burst_profile_scan(bcmolt_buf *packed, uint32_t *extra_mem)
+{
+    (void)extra_mem;
+    return bcmolt_buf_skip(packed, 38);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_burst_profile_bounds_check(const bcmolt_xgpon_burst_profile *this)
+{
+    if (this->delimiter_size_in_bytes > 8)
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (this->preamble_length_in_bytes < 1)
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (this->preamble_length_in_bytes > 8)
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_arr_xgpon_burst_profile_4_set_default(bcmolt_arr_xgpon_burst_profile_4 *this)
+{
+    this->arr[0].profile_version = 0;
+    this->arr[0].is_fec_on = BCMOS_FALSE;
+    this->arr[0].delimiter_size_in_bytes = 8;
+    this->arr[0].delimiter_pattern_high = 3015562000UL;
+    this->arr[0].delimiter_pattern_low = 2999259041UL;
+    this->arr[0].preamble_length_in_bytes = 8;
+    this->arr[0].preamble_repeats_count = 20;
+    this->arr[0].preamble_pattern_high = 2863311530UL;
+    this->arr[0].preamble_pattern_low = 2863311530UL;
+    this->arr[0].pon_tag = 0;
+    this->arr[0].num_of_guard_bytes = 16;
+    this->arr[0].is_profile_valid = BCMOS_TRUE;
+    this->arr[0].burst_overhead_size_in_words = 78;
+    this->arr[1].profile_version = 0;
+    this->arr[1].is_fec_on = BCMOS_FALSE;
+    this->arr[1].delimiter_size_in_bytes = 8;
+    this->arr[1].delimiter_pattern_high = 3015562000UL;
+    this->arr[1].delimiter_pattern_low = 2999259041UL;
+    this->arr[1].preamble_length_in_bytes = 8;
+    this->arr[1].preamble_repeats_count = 9;
+    this->arr[1].preamble_pattern_high = 2863311530UL;
+    this->arr[1].preamble_pattern_low = 2863311530UL;
+    this->arr[1].pon_tag = 0;
+    this->arr[1].num_of_guard_bytes = 16;
+    this->arr[1].is_profile_valid = BCMOS_TRUE;
+    this->arr[1].burst_overhead_size_in_words = 56;
+    this->arr[2].profile_version = 0;
+    this->arr[2].is_fec_on = BCMOS_TRUE;
+    this->arr[2].delimiter_size_in_bytes = 8;
+    this->arr[2].delimiter_pattern_high = 3015562000UL;
+    this->arr[2].delimiter_pattern_low = 2999259041UL;
+    this->arr[2].preamble_length_in_bytes = 8;
+    this->arr[2].preamble_repeats_count = 20;
+    this->arr[2].preamble_pattern_high = 2863311530UL;
+    this->arr[2].preamble_pattern_low = 2863311530UL;
+    this->arr[2].pon_tag = 0;
+    this->arr[2].num_of_guard_bytes = 16;
+    this->arr[2].is_profile_valid = BCMOS_TRUE;
+    this->arr[2].burst_overhead_size_in_words = 78;
+    this->arr[3].profile_version = 0;
+    this->arr[3].is_fec_on = BCMOS_TRUE;
+    this->arr[3].delimiter_size_in_bytes = 8;
+    this->arr[3].delimiter_pattern_high = 3015562000UL;
+    this->arr[3].delimiter_pattern_low = 2999259041UL;
+    this->arr[3].preamble_length_in_bytes = 8;
+    this->arr[3].preamble_repeats_count = 9;
+    this->arr[3].preamble_pattern_high = 2863311530UL;
+    this->arr[3].preamble_pattern_low = 2863311530UL;
+    this->arr[3].pon_tag = 0;
+    this->arr[3].num_of_guard_bytes = 16;
+    this->arr[3].is_profile_valid = BCMOS_TRUE;
+    this->arr[3].burst_overhead_size_in_words = 56;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_arr_xgpon_burst_profile_4_pack(const bcmolt_arr_xgpon_burst_profile_4 *this, bcmolt_buf *buf)
+{
+    uint32_t i0;
+    for (i0 = 0; i0 < 4; i0++)
+    {
+        if (!bcmolt_xgpon_burst_profile_pack(&this->arr[i0], buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_arr_xgpon_burst_profile_4_unpack(bcmolt_arr_xgpon_burst_profile_4 *this, bcmolt_buf *buf, void **extra_mem)
+{
+    uint32_t i0;
+    for (i0 = 0; i0 < 4; i0++)
+    {
+        if (!bcmolt_xgpon_burst_profile_unpack(&this->arr[i0], buf, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_arr_xgpon_burst_profile_4_scan(bcmolt_buf *packed, uint32_t *extra_mem)
+{
+    (void)extra_mem;
+    return bcmolt_buf_skip(packed, 152);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_arr_xgpon_burst_profile_4_bounds_check(const bcmolt_arr_xgpon_burst_profile_4 *this)
+{
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_xgpon_trx_configuration_set_default(bcmolt_xgpon_trx_configuration *this)
+{
+    this->trx_reset_pattern_first = 0;
+    this->trx_reset_pattern_middle = 0;
+    this->trx_reset_pattern_last = 0;
+    this->trx_reset_middle_repeats_count = 0;
+    this->trx_reset_location = 0;
+    this->trx_reset_polarity = BCMOS_FALSE;
+    this->bcdr_reset_pattern_first = 0;
+    this->bcdr_reset_pattern_middle = 0;
+    this->bcdr_reset_pattern_last = 0;
+    this->bcdr_reset_middle_repeats_count = 0;
+    this->bcdr_reset_location = 0;
+    this->bcdr_reset_polarity = BCMOS_FALSE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_trx_configuration_pack(const bcmolt_xgpon_trx_configuration *this, bcmolt_buf *buf)
+{
+    if (!bcmolt_buf_write_u32(buf, this->trx_reset_pattern_first))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_write_u32(buf, this->trx_reset_pattern_middle))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_write_u32(buf, this->trx_reset_pattern_last))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_write_u8(buf, this->trx_reset_middle_repeats_count))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_write_u16(buf, this->trx_reset_location))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_write_bool(buf, this->trx_reset_polarity))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_write_u32(buf, this->bcdr_reset_pattern_first))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_write_u32(buf, this->bcdr_reset_pattern_middle))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_write_u32(buf, this->bcdr_reset_pattern_last))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_write_u8(buf, this->bcdr_reset_middle_repeats_count))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_write_u8(buf, this->bcdr_reset_location))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_write_bool(buf, this->bcdr_reset_polarity))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_trx_configuration_unpack(bcmolt_xgpon_trx_configuration *this, bcmolt_buf *buf, void **extra_mem)
+{
+    if (!bcmolt_buf_read_u32(buf, &this->trx_reset_pattern_first))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_read_u32(buf, &this->trx_reset_pattern_middle))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_read_u32(buf, &this->trx_reset_pattern_last))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_read_u8(buf, &this->trx_reset_middle_repeats_count))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_read_u16(buf, &this->trx_reset_location))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_read_bool(buf, &this->trx_reset_polarity))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_read_u32(buf, &this->bcdr_reset_pattern_first))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_read_u32(buf, &this->bcdr_reset_pattern_middle))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_read_u32(buf, &this->bcdr_reset_pattern_last))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_read_u8(buf, &this->bcdr_reset_middle_repeats_count))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_read_u8(buf, &this->bcdr_reset_location))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_read_bool(buf, &this->bcdr_reset_polarity))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_trx_configuration_scan(bcmolt_buf *packed, uint32_t *extra_mem)
+{
+    (void)extra_mem;
+    return bcmolt_buf_skip(packed, 31);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_trx_configuration_bounds_check(const bcmolt_xgpon_trx_configuration *this)
+{
+    if (this->trx_reset_location > 511)
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_arr_xgpon_trx_configuration_4_set_default(bcmolt_arr_xgpon_trx_configuration_4 *this)
+{
+    this->arr[0].trx_reset_pattern_first = 0;
+    this->arr[0].trx_reset_pattern_middle = 4294967295UL;
+    this->arr[0].trx_reset_pattern_last = 0;
+    this->arr[0].trx_reset_middle_repeats_count = 4;
+    this->arr[0].trx_reset_location = 0;
+    this->arr[0].trx_reset_polarity = BCMOS_FALSE;
+    this->arr[0].bcdr_reset_pattern_first = 0;
+    this->arr[0].bcdr_reset_pattern_middle = 255;
+    this->arr[0].bcdr_reset_pattern_last = 0;
+    this->arr[0].bcdr_reset_middle_repeats_count = 1;
+    this->arr[0].bcdr_reset_location = 20;
+    this->arr[0].bcdr_reset_polarity = BCMOS_FALSE;
+    this->arr[1].trx_reset_pattern_first = 0;
+    this->arr[1].trx_reset_pattern_middle = 4294967295UL;
+    this->arr[1].trx_reset_pattern_last = 0;
+    this->arr[1].trx_reset_middle_repeats_count = 4;
+    this->arr[1].trx_reset_location = 33;
+    this->arr[1].trx_reset_polarity = BCMOS_FALSE;
+    this->arr[1].bcdr_reset_pattern_first = 0;
+    this->arr[1].bcdr_reset_pattern_middle = 255;
+    this->arr[1].bcdr_reset_pattern_last = 0;
+    this->arr[1].bcdr_reset_middle_repeats_count = 1;
+    this->arr[1].bcdr_reset_location = 23;
+    this->arr[1].bcdr_reset_polarity = BCMOS_FALSE;
+    this->arr[2].trx_reset_pattern_first = 0;
+    this->arr[2].trx_reset_pattern_middle = 4294967295UL;
+    this->arr[2].trx_reset_pattern_last = 0;
+    this->arr[2].trx_reset_middle_repeats_count = 4;
+    this->arr[2].trx_reset_location = 0;
+    this->arr[2].trx_reset_polarity = BCMOS_FALSE;
+    this->arr[2].bcdr_reset_pattern_first = 0;
+    this->arr[2].bcdr_reset_pattern_middle = 255;
+    this->arr[2].bcdr_reset_pattern_last = 0;
+    this->arr[2].bcdr_reset_middle_repeats_count = 1;
+    this->arr[2].bcdr_reset_location = 20;
+    this->arr[2].bcdr_reset_polarity = BCMOS_FALSE;
+    this->arr[3].trx_reset_pattern_first = 0;
+    this->arr[3].trx_reset_pattern_middle = 4294967295UL;
+    this->arr[3].trx_reset_pattern_last = 0;
+    this->arr[3].trx_reset_middle_repeats_count = 4;
+    this->arr[3].trx_reset_location = 33;
+    this->arr[3].trx_reset_polarity = BCMOS_FALSE;
+    this->arr[3].bcdr_reset_pattern_first = 0;
+    this->arr[3].bcdr_reset_pattern_middle = 255;
+    this->arr[3].bcdr_reset_pattern_last = 0;
+    this->arr[3].bcdr_reset_middle_repeats_count = 1;
+    this->arr[3].bcdr_reset_location = 23;
+    this->arr[3].bcdr_reset_polarity = BCMOS_FALSE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_arr_xgpon_trx_configuration_4_pack(const bcmolt_arr_xgpon_trx_configuration_4 *this, bcmolt_buf *buf)
+{
+    uint32_t i0;
+    for (i0 = 0; i0 < 4; i0++)
+    {
+        if (!bcmolt_xgpon_trx_configuration_pack(&this->arr[i0], buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_arr_xgpon_trx_configuration_4_unpack(bcmolt_arr_xgpon_trx_configuration_4 *this, bcmolt_buf *buf, void **extra_mem)
+{
+    uint32_t i0;
+    for (i0 = 0; i0 < 4; i0++)
+    {
+        if (!bcmolt_xgpon_trx_configuration_unpack(&this->arr[i0], buf, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_arr_xgpon_trx_configuration_4_scan(bcmolt_buf *packed, uint32_t *extra_mem)
+{
+    (void)extra_mem;
+    return bcmolt_buf_skip(packed, 124);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_arr_xgpon_trx_configuration_4_bounds_check(const bcmolt_arr_xgpon_trx_configuration_4 *this)
+{
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_automatic_onu_deactivation_set_default(bcmolt_automatic_onu_deactivation *this)
+{
+    this->los = BCMOS_FALSE;
+    this->onu_alarms = BCMOS_FALSE;
+    this->tiwi = BCMOS_FALSE;
+    this->ack_timeout = BCMOS_FALSE;
+    this->sfi = BCMOS_FALSE;
+    this->loki = BCMOS_FALSE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_automatic_onu_deactivation_pack(const bcmolt_automatic_onu_deactivation *this, bcmolt_buf *buf)
+{
+    if (!bcmolt_buf_write_bool(buf, this->los))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_write_bool(buf, this->onu_alarms))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_write_bool(buf, this->tiwi))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_write_bool(buf, this->ack_timeout))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_write_bool(buf, this->sfi))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_write_bool(buf, this->loki))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_automatic_onu_deactivation_unpack(bcmolt_automatic_onu_deactivation *this, bcmolt_buf *buf, void **extra_mem)
+{
+    if (!bcmolt_buf_read_bool(buf, &this->los))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_read_bool(buf, &this->onu_alarms))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_read_bool(buf, &this->tiwi))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_read_bool(buf, &this->ack_timeout))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_read_bool(buf, &this->sfi))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_read_bool(buf, &this->loki))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_automatic_onu_deactivation_scan(bcmolt_buf *packed, uint32_t *extra_mem)
+{
+    (void)extra_mem;
+    return bcmolt_buf_skip(packed, 6);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_automatic_onu_deactivation_bounds_check(const bcmolt_automatic_onu_deactivation *this)
+{
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_resync_control_set_default(bcmolt_resync_control *this)
+{
+    this->start_pattern = 15;
+    this->middle_pattern = 0;
+    this->last_pattern = 0;
+    this->middle_repetition = 0;
+    this->location = 0;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_resync_control_pack(const bcmolt_resync_control *this, bcmolt_buf *buf)
+{
+    if (!bcmolt_buf_write_u8(buf, this->start_pattern))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_write_u8(buf, this->middle_pattern))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_write_u8(buf, this->last_pattern))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_write_u8(buf, this->middle_repetition))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_write_u8(buf, this->location))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_resync_control_unpack(bcmolt_resync_control *this, bcmolt_buf *buf, void **extra_mem)
+{
+    if (!bcmolt_buf_read_u8(buf, &this->start_pattern))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_read_u8(buf, &this->middle_pattern))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_read_u8(buf, &this->last_pattern))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_read_u8(buf, &this->middle_repetition))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_read_u8(buf, &this->location))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_resync_control_scan(bcmolt_buf *packed, uint32_t *extra_mem)
+{
+    (void)extra_mem;
+    return bcmolt_buf_skip(packed, 5);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_resync_control_bounds_check(const bcmolt_resync_control *this)
+{
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_bcdr_resync_pattern_configuration_set_default(bcmolt_bcdr_resync_pattern_configuration *this)
+{
+    this->resync_control.start_pattern = 15;
+    this->resync_control.middle_pattern = 0;
+    this->resync_control.last_pattern = 0;
+    this->resync_control.middle_repetition = 0;
+    this->resync_control.location = 34;
+    this->ranging_resync_control.start_pattern = 15;
+    this->ranging_resync_control.middle_pattern = 0;
+    this->ranging_resync_control.last_pattern = 0;
+    this->ranging_resync_control.middle_repetition = 0;
+    this->ranging_resync_control.location = 7;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_bcdr_resync_pattern_configuration_pack(const bcmolt_bcdr_resync_pattern_configuration *this, bcmolt_buf *buf)
+{
+    if (!bcmolt_resync_control_pack(&this->resync_control, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_resync_control_pack(&this->ranging_resync_control, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_bcdr_resync_pattern_configuration_unpack(bcmolt_bcdr_resync_pattern_configuration *this, bcmolt_buf *buf, void **extra_mem)
+{
+    if (!bcmolt_resync_control_unpack(&this->resync_control, buf, extra_mem))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_resync_control_unpack(&this->ranging_resync_control, buf, extra_mem))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_bcdr_resync_pattern_configuration_scan(bcmolt_buf *packed, uint32_t *extra_mem)
+{
+    (void)extra_mem;
+    return bcmolt_buf_skip(packed, 10);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_bcdr_resync_pattern_configuration_bounds_check(const bcmolt_bcdr_resync_pattern_configuration *this)
+{
+    if (!bcmolt_resync_control_bounds_check(&this->resync_control))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_resync_control_bounds_check(&this->ranging_resync_control))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_ber_monitor_params_set_default(bcmolt_ber_monitor_params *this)
+{
+    this->us_ber_interval = 5000;
+    this->sf_threshold = 3;
+    this->sd_threshold = 5;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_ber_monitor_params_pack(const bcmolt_ber_monitor_params *this, bcmolt_buf *buf)
+{
+    if (!bcmolt_buf_write_u32(buf, this->us_ber_interval))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_write_u8(buf, this->sf_threshold))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_write_u8(buf, this->sd_threshold))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_ber_monitor_params_unpack(bcmolt_ber_monitor_params *this, bcmolt_buf *buf, void **extra_mem)
+{
+    if (!bcmolt_buf_read_u32(buf, &this->us_ber_interval))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_read_u8(buf, &this->sf_threshold))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_read_u8(buf, &this->sd_threshold))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_ber_monitor_params_scan(bcmolt_buf *packed, uint32_t *extra_mem)
+{
+    (void)extra_mem;
+    return bcmolt_buf_skip(packed, 6);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_ber_monitor_params_bounds_check(const bcmolt_ber_monitor_params *this)
+{
+    if (this->us_ber_interval > 60000UL)
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (this->sf_threshold < 3)
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (this->sf_threshold > 8)
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (this->sd_threshold < 4)
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (this->sd_threshold > 9)
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_cbr_rt_allocation_profile_set_default(bcmolt_cbr_rt_allocation_profile *this)
+{
+    this->ma_7 = 64;
+    this->ma_3 = 256;
+    this->ma_1 = 512;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_cbr_rt_allocation_profile_pack(const bcmolt_cbr_rt_allocation_profile *this, bcmolt_buf *buf)
+{
+    if (!bcmolt_buf_write_u16(buf, this->ma_7))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_write_u16(buf, this->ma_3))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_write_u16(buf, this->ma_1))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_cbr_rt_allocation_profile_unpack(bcmolt_cbr_rt_allocation_profile *this, bcmolt_buf *buf, void **extra_mem)
+{
+    if (!bcmolt_buf_read_u16(buf, &this->ma_7))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_read_u16(buf, &this->ma_3))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_read_u16(buf, &this->ma_1))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_cbr_rt_allocation_profile_scan(bcmolt_buf *packed, uint32_t *extra_mem)
+{
+    (void)extra_mem;
+    return bcmolt_buf_skip(packed, 6);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_cbr_rt_allocation_profile_bounds_check(const bcmolt_cbr_rt_allocation_profile *this)
+{
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_ddr_test_completed_set_default(bcmolt_ddr_test_completed *this)
+{
+    this->status = (bcmolt_ddr_test_status) 2;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_ddr_test_completed_pack(const bcmolt_ddr_test_completed *this, bcmolt_buf *buf)
+{
+    if (!bcmolt_ddr_test_status_pack(this->status, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    switch (this->status)
+    {
+        case BCMOLT_DDR_TEST_STATUS_COMPLETED:
+            {
+                if (!bcmolt_ddr_test_result_pack(this->u.completed.cpu_result, buf))
+                {
+                    return BCMOS_FALSE;
+                }
+
+                if (!bcmolt_ddr_test_result_pack(this->u.completed.ras_0_result, buf))
+                {
+                    return BCMOS_FALSE;
+                }
+
+                if (!bcmolt_ddr_test_result_pack(this->u.completed.ras_1_result, buf))
+                {
+                    return BCMOS_FALSE;
+                }
+            }
+            break;
+        case BCMOLT_DDR_TEST_STATUS_CONNECTION_FAILED:
+            {
+                if (!bcmolt_host_connection_fail_reason_pack(this->u.connection_failed.reason, buf))
+                {
+                    return BCMOS_FALSE;
+                }
+            }
+            break;
+        case BCMOLT_DDR_TEST_STATUS_TIMEOUT:
+        default:
+            {
+            }
+            break;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_ddr_test_completed_get_packed_length(const bcmolt_ddr_test_completed *this)
+{
+    uint32_t count = 1;
+    switch (this->status)
+    {
+        case BCMOLT_DDR_TEST_STATUS_COMPLETED:
+            {
+                count += 3;
+            }
+            break;
+        case BCMOLT_DDR_TEST_STATUS_CONNECTION_FAILED:
+            {
+                count += 1;
+            }
+            break;
+        case BCMOLT_DDR_TEST_STATUS_TIMEOUT:
+        default:
+            {
+            }
+            break;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_ddr_test_completed_unpack(bcmolt_ddr_test_completed *this, bcmolt_buf *buf, void **extra_mem)
+{
+    if (!bcmolt_ddr_test_status_unpack(&this->status, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    switch (this->status)
+    {
+        case BCMOLT_DDR_TEST_STATUS_COMPLETED:
+            {
+                if (!bcmolt_ddr_test_result_unpack(&this->u.completed.cpu_result, buf))
+                {
+                    return BCMOS_FALSE;
+                }
+
+                if (!bcmolt_ddr_test_result_unpack(&this->u.completed.ras_0_result, buf))
+                {
+                    return BCMOS_FALSE;
+                }
+
+                if (!bcmolt_ddr_test_result_unpack(&this->u.completed.ras_1_result, buf))
+                {
+                    return BCMOS_FALSE;
+                }
+            }
+            break;
+        case BCMOLT_DDR_TEST_STATUS_CONNECTION_FAILED:
+            {
+                if (!bcmolt_host_connection_fail_reason_unpack(&this->u.connection_failed.reason, buf))
+                {
+                    return BCMOS_FALSE;
+                }
+            }
+            break;
+        case BCMOLT_DDR_TEST_STATUS_TIMEOUT:
+        default:
+            {
+            }
+            break;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_ddr_test_completed_scan(bcmolt_buf *packed, uint32_t *extra_mem)
+{
+    bcmolt_ddr_test_status status;
+    if (!bcmolt_ddr_test_status_unpack(&status, packed))
+    {
+        return BCMOS_FALSE;
+    }
+
+    switch (status)
+    {
+        case BCMOLT_DDR_TEST_STATUS_COMPLETED:
+            {
+                if (!bcmolt_buf_skip(packed, 1))
+                {
+                    return BCMOS_FALSE;
+                }
+
+                if (!bcmolt_buf_skip(packed, 1))
+                {
+                    return BCMOS_FALSE;
+                }
+
+                if (!bcmolt_buf_skip(packed, 1))
+                {
+                    return BCMOS_FALSE;
+                }
+            }
+            break;
+        case BCMOLT_DDR_TEST_STATUS_CONNECTION_FAILED:
+            {
+                if (!bcmolt_buf_skip(packed, 1))
+                {
+                    return BCMOS_FALSE;
+                }
+            }
+            break;
+        case BCMOLT_DDR_TEST_STATUS_TIMEOUT:
+        default:
+            {
+            }
+            break;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_ddr_test_completed_bounds_check(const bcmolt_ddr_test_completed *this)
+{
+    switch (this->status)
+    {
+        case BCMOLT_DDR_TEST_STATUS_COMPLETED:
+            {
+                switch (this->u.completed.cpu_result)
+                {
+                    case BCMOLT_DDR_TEST_RESULT_SUCCESS:
+                        break;
+                    case BCMOLT_DDR_TEST_RESULT_PHY_INIT_ERROR:
+                        break;
+                    case BCMOLT_DDR_TEST_RESULT_DRAM_INIT_ERROR:
+                        break;
+                    case BCMOLT_DDR_TEST_RESULT_SHMOO_ERROR:
+                        break;
+                    case BCMOLT_DDR_TEST_RESULT_EDIS_TEST_ERROR:
+                        break;
+                    case BCMOLT_DDR_TEST_RESULT_MEM_TEST_ERROR:
+                        break;
+                    case BCMOLT_DDR_TEST_RESULT_NOT_TESTED:
+                        break;
+                    default:
+                        return BCMOS_FALSE;
+                }
+
+                switch (this->u.completed.ras_0_result)
+                {
+                    case BCMOLT_DDR_TEST_RESULT_SUCCESS:
+                        break;
+                    case BCMOLT_DDR_TEST_RESULT_PHY_INIT_ERROR:
+                        break;
+                    case BCMOLT_DDR_TEST_RESULT_DRAM_INIT_ERROR:
+                        break;
+                    case BCMOLT_DDR_TEST_RESULT_SHMOO_ERROR:
+                        break;
+                    case BCMOLT_DDR_TEST_RESULT_EDIS_TEST_ERROR:
+                        break;
+                    case BCMOLT_DDR_TEST_RESULT_MEM_TEST_ERROR:
+                        break;
+                    case BCMOLT_DDR_TEST_RESULT_NOT_TESTED:
+                        break;
+                    default:
+                        return BCMOS_FALSE;
+                }
+
+                switch (this->u.completed.ras_1_result)
+                {
+                    case BCMOLT_DDR_TEST_RESULT_SUCCESS:
+                        break;
+                    case BCMOLT_DDR_TEST_RESULT_PHY_INIT_ERROR:
+                        break;
+                    case BCMOLT_DDR_TEST_RESULT_DRAM_INIT_ERROR:
+                        break;
+                    case BCMOLT_DDR_TEST_RESULT_SHMOO_ERROR:
+                        break;
+                    case BCMOLT_DDR_TEST_RESULT_EDIS_TEST_ERROR:
+                        break;
+                    case BCMOLT_DDR_TEST_RESULT_MEM_TEST_ERROR:
+                        break;
+                    case BCMOLT_DDR_TEST_RESULT_NOT_TESTED:
+                        break;
+                    default:
+                        return BCMOS_FALSE;
+                }
+            }
+            break;
+        case BCMOLT_DDR_TEST_STATUS_CONNECTION_FAILED:
+            {
+                switch (this->u.connection_failed.reason)
+                {
+                    case BCMOLT_HOST_CONNECTION_FAIL_REASON_TIMEOUT:
+                        break;
+                    case BCMOLT_HOST_CONNECTION_FAIL_REASON_KEEPALIVE:
+                        break;
+                    case BCMOLT_HOST_CONNECTION_FAIL_REASON_USER_CALLBACK_ERROR:
+                        break;
+                    case BCMOLT_HOST_CONNECTION_FAIL_REASON_SOFTWARE_VERSION_MISMATCH:
+                        break;
+                    case BCMOLT_HOST_CONNECTION_FAIL_REASON_SYSTEM_MODE_MISMATCH:
+                        break;
+                    case BCMOLT_HOST_CONNECTION_FAIL_REASON_NNI_SPEED_MISMATCH:
+                        break;
+                    case BCMOLT_HOST_CONNECTION_FAIL_REASON_RECONNECT_TIMEOUT:
+                        break;
+                    case BCMOLT_HOST_CONNECTION_FAIL_REASON_INTERNAL_ERROR:
+                        break;
+                    case BCMOLT_HOST_CONNECTION_FAIL_REASON_SYSTEM_MODE_NOT_SUPPORTED:
+                        break;
+                    case BCMOLT_HOST_CONNECTION_FAIL_REASON_PARAMETER:
+                        break;
+                    default:
+                        return BCMOS_FALSE;
+                }
+            }
+            break;
+        case BCMOLT_DDR_TEST_STATUS_TIMEOUT:
+            break;
+        default:
+            {
+            }
+
+            return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_debug_device_cfg_set_default(bcmolt_debug_device_cfg *this)
+{
+    this->host_dma_rx_queue_size = 128;
+    this->host_dma_tx_queue_size = 128;
+    this->avs_control = BCMOS_FALSE;
+    this->use_prev_pon_serdes_firmware = BCMOS_FALSE;
+    this->use_prev_nni_serdes_firmware = BCMOS_FALSE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_debug_device_cfg_pack(const bcmolt_debug_device_cfg *this, bcmolt_buf *buf)
+{
+    if (!bcmolt_buf_write_u16(buf, this->host_dma_rx_queue_size))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_write_u16(buf, this->host_dma_tx_queue_size))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_write_bool(buf, this->avs_control))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_write_bool(buf, this->use_prev_pon_serdes_firmware))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_write_bool(buf, this->use_prev_nni_serdes_firmware))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_debug_device_cfg_unpack(bcmolt_debug_device_cfg *this, bcmolt_buf *buf, void **extra_mem)
+{
+    if (!bcmolt_buf_read_u16(buf, &this->host_dma_rx_queue_size))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_read_u16(buf, &this->host_dma_tx_queue_size))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_read_bool(buf, &this->avs_control))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_read_bool(buf, &this->use_prev_pon_serdes_firmware))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_read_bool(buf, &this->use_prev_nni_serdes_firmware))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_debug_device_cfg_scan(bcmolt_buf *packed, uint32_t *extra_mem)
+{
+    (void)extra_mem;
+    return bcmolt_buf_skip(packed, 7);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_debug_device_cfg_bounds_check(const bcmolt_debug_device_cfg *this)
+{
+    if (this->host_dma_rx_queue_size < 1)
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (this->host_dma_rx_queue_size > 1024)
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (this->host_dma_tx_queue_size < 1)
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (this->host_dma_tx_queue_size > 1024)
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_device_nni_speed_set_default(bcmolt_device_nni_speed *this)
+{
+    this->first_half = BCMOLT_NNI_SPEED_GBPS_1;
+    this->second_half = BCMOLT_NNI_SPEED_GBPS_1;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_device_nni_speed_pack(const bcmolt_device_nni_speed *this, bcmolt_buf *buf)
+{
+    if (!bcmolt_nni_speed_pack(this->first_half, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_nni_speed_pack(this->second_half, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_device_nni_speed_unpack(bcmolt_device_nni_speed *this, bcmolt_buf *buf, void **extra_mem)
+{
+    if (!bcmolt_nni_speed_unpack(&this->first_half, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_nni_speed_unpack(&this->second_half, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_device_nni_speed_scan(bcmolt_buf *packed, uint32_t *extra_mem)
+{
+    (void)extra_mem;
+    return bcmolt_buf_skip(packed, 2);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_device_nni_speed_bounds_check(const bcmolt_device_nni_speed *this)
+{
+    switch (this->first_half)
+    {
+        case BCMOLT_NNI_SPEED_GBPS_1:
+            break;
+        case BCMOLT_NNI_SPEED_GBPS_2P5:
+            break;
+        case BCMOLT_NNI_SPEED_GBPS_10:
+            break;
+        case BCMOLT_NNI_SPEED_GBPS_12P5:
+            break;
+        case BCMOLT_NNI_SPEED_GBPS_10_G_MUX:
+            break;
+        default:
+            return BCMOS_FALSE;
+    }
+
+    switch (this->second_half)
+    {
+        case BCMOLT_NNI_SPEED_GBPS_1:
+            break;
+        case BCMOLT_NNI_SPEED_GBPS_2P5:
+            break;
+        case BCMOLT_NNI_SPEED_GBPS_10:
+            break;
+        case BCMOLT_NNI_SPEED_GBPS_12P5:
+            break;
+        case BCMOLT_NNI_SPEED_GBPS_10_G_MUX:
+            break;
+        default:
+            return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/* \cond UNDOCUMENTED_SYMBOLS */
+
+/******************************************************************************/
+void bcmolt_dummy_struct_for_embedded_types_set_default(bcmolt_dummy_struct_for_embedded_types *this)
+{
+    this->ad = (bcmolt_aggregation_domain) 0;
+    this->et = (bcmolt_epon_top) 0;
+    this->elg = (bcmolt_epm_lim_global) 0;
+    this->dba_port = (bcmolt_dba_port) 0;
+    this->sgb = BCMOLT_DRV_SGB_ID_IDX0;
+    this->icf = BCMOLT_DRV_ICF_ID_IDX0;
+    this->tfb_trap_behavior = BCMOLT_TFB_TRAP_BEHAVIOR_DROP;
+    this->tfb_mode = BCMOLT_TFB_MODE_GPON;
+    this->lim_sec_mode_up = BCMOLT_LIM_SEC_MODE_UP_TEK;
+    this->lim_sec_mode_dn = BCMOLT_LIM_SEC_MODE_DN_TEK;
+    this->xim_sec_mode = BCMOLT_XIM_SEC_MODE_RESERVED_0;
+    this->dba_ram = BCMOLT_DBA_RAM_GRANT_FIFO_RAM_0;
+    this->hsc_ram = BCMOLT_HSC_RAM_LLC_T1;
+    this->lim_ram = BCMOLT_LIM_RAM_LLID_UP;
+    this->lky_ram = BCMOLT_LKY_RAM_TX_KEY_RAM;
+    this->mic_ram = BCMOLT_MIC_RAM_RANGE;
+    this->xpcs_ram = BCMOLT_XPCSRM_RAM_CAPTURE_FIFO;
+    this->xg2g_id = (bcmolt_xg2g_id) 0;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_dummy_struct_for_embedded_types_pack(const bcmolt_dummy_struct_for_embedded_types *this, bcmolt_buf *buf)
+{
+    if (!bcmolt_buf_write_u8(buf, (uint8_t) this->ad))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_write_u8(buf, (uint8_t) this->et))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_write_u8(buf, (uint8_t) this->elg))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_write_u8(buf, (uint8_t) this->dba_port))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_drv_sgb_id_pack(this->sgb, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_drv_icf_id_pack(this->icf, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_tfb_trap_behavior_pack(this->tfb_trap_behavior, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_tfb_mode_pack(this->tfb_mode, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_lim_sec_mode_up_pack(this->lim_sec_mode_up, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_lim_sec_mode_dn_pack(this->lim_sec_mode_dn, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_xim_sec_mode_pack(this->xim_sec_mode, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_dba_ram_pack(this->dba_ram, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_hsc_ram_pack(this->hsc_ram, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_lim_ram_pack(this->lim_ram, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_lky_ram_pack(this->lky_ram, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_mic_ram_pack(this->mic_ram, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_xpcsrm_ram_pack(this->xpcs_ram, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_write_u8(buf, (uint8_t) this->xg2g_id))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_dummy_struct_for_embedded_types_unpack(bcmolt_dummy_struct_for_embedded_types *this, bcmolt_buf *buf, void **extra_mem)
+{
+    if (!bcmolt_buf_read_u8(buf, (uint8_t *) &this->ad))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_read_u8(buf, (uint8_t *) &this->et))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_read_u8(buf, (uint8_t *) &this->elg))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_read_u8(buf, (uint8_t *) &this->dba_port))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_drv_sgb_id_unpack(&this->sgb, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_drv_icf_id_unpack(&this->icf, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_tfb_trap_behavior_unpack(&this->tfb_trap_behavior, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_tfb_mode_unpack(&this->tfb_mode, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_lim_sec_mode_up_unpack(&this->lim_sec_mode_up, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_lim_sec_mode_dn_unpack(&this->lim_sec_mode_dn, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_xim_sec_mode_unpack(&this->xim_sec_mode, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_dba_ram_unpack(&this->dba_ram, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_hsc_ram_unpack(&this->hsc_ram, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_lim_ram_unpack(&this->lim_ram, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_lky_ram_unpack(&this->lky_ram, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_mic_ram_unpack(&this->mic_ram, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_xpcsrm_ram_unpack(&this->xpcs_ram, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_read_u8(buf, (uint8_t *) &this->xg2g_id))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_dummy_struct_for_embedded_types_scan(bcmolt_buf *packed, uint32_t *extra_mem)
+{
+    (void)extra_mem;
+    return bcmolt_buf_skip(packed, 18);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_dummy_struct_for_embedded_types_bounds_check(const bcmolt_dummy_struct_for_embedded_types *this)
+{
+    if (this->ad > (bcmolt_aggregation_domain) 1)
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (this->et > (bcmolt_epon_top) 7)
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (this->elg > (bcmolt_epm_lim_global) 15)
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (this->dba_port > (bcmolt_dba_port) 7)
+    {
+        return BCMOS_FALSE;
+    }
+
+    switch (this->sgb)
+    {
+        case BCMOLT_DRV_SGB_ID_IDX0:
+            break;
+        case BCMOLT_DRV_SGB_ID_IDX1:
+            break;
+        default:
+            return BCMOS_FALSE;
+    }
+
+    switch (this->icf)
+    {
+        case BCMOLT_DRV_ICF_ID_IDX0:
+            break;
+        case BCMOLT_DRV_ICF_ID_IDX1:
+            break;
+        case BCMOLT_DRV_ICF_ID_IDX2:
+            break;
+        case BCMOLT_DRV_ICF_ID_IDX3:
+            break;
+        default:
+            return BCMOS_FALSE;
+    }
+
+    switch (this->tfb_trap_behavior)
+    {
+        case BCMOLT_TFB_TRAP_BEHAVIOR_DROP:
+            break;
+        case BCMOLT_TFB_TRAP_BEHAVIOR_FORWARD_NNI:
+            break;
+        case BCMOLT_TFB_TRAP_BEHAVIOR_FORWARD_CPU:
+            break;
+        case BCMOLT_TFB_TRAP_BEHAVIOR_SNOOP:
+            break;
+        default:
+            return BCMOS_FALSE;
+    }
+
+    switch (this->tfb_mode)
+    {
+        case BCMOLT_TFB_MODE_GPON:
+            break;
+        case BCMOLT_TFB_MODE_XGPON:
+            break;
+        case BCMOLT_TFB_MODE_EPON:
+            break;
+        case BCMOLT_TFB_MODE_XEPON:
+            break;
+        case BCMOLT_TFB_MODE_COEX:
+            break;
+        default:
+            return BCMOS_FALSE;
+    }
+
+    switch (this->lim_sec_mode_up)
+    {
+        case BCMOLT_LIM_SEC_MODE_UP_TEK:
+            break;
+        case BCMOLT_LIM_SEC_MODE_UP_PER_LLID:
+            break;
+        case BCMOLT_LIM_SEC_MODE_UP_NTT:
+            break;
+        default:
+            return BCMOS_FALSE;
+    }
+
+    switch (this->lim_sec_mode_dn)
+    {
+        case BCMOLT_LIM_SEC_MODE_DN_TEK:
+            break;
+        case BCMOLT_LIM_SEC_MODE_DN_PER_LLID:
+            break;
+        case BCMOLT_LIM_SEC_MODE_DN_NTT:
+            break;
+        case BCMOLT_LIM_SEC_MODE_DN_CEPON:
+            break;
+        default:
+            return BCMOS_FALSE;
+    }
+
+    switch (this->xim_sec_mode)
+    {
+        case BCMOLT_XIM_SEC_MODE_RESERVED_0:
+            break;
+        case BCMOLT_XIM_SEC_MODE_PER_LLID:
+            break;
+        case BCMOLT_XIM_SEC_MODE_RESERVED_2:
+            break;
+        case BCMOLT_XIM_SEC_MODE_CEPON:
+            break;
+        default:
+            return BCMOS_FALSE;
+    }
+
+    switch (this->dba_ram)
+    {
+        case BCMOLT_DBA_RAM_GRANT_FIFO_RAM_0:
+            break;
+        case BCMOLT_DBA_RAM_GRANT_FIFO_RAM_1:
+            break;
+        case BCMOLT_DBA_RAM_GRANT_FIFO_RAM_2:
+            break;
+        case BCMOLT_DBA_RAM_GRANT_FIFO_RAM_3:
+            break;
+        case BCMOLT_DBA_RAM_GRANT_FIFO_RAM_4:
+            break;
+        case BCMOLT_DBA_RAM_GRANT_FIFO_RAM_5:
+            break;
+        case BCMOLT_DBA_RAM_GRANT_FIFO_RAM_6:
+            break;
+        case BCMOLT_DBA_RAM_GRANT_FIFO_RAM_7:
+            break;
+        case BCMOLT_DBA_RAM_GRANTS_OUT_RAM:
+            break;
+        case BCMOLT_DBA_RAM_GRANTS_IN_RAM:
+            break;
+        case BCMOLT_DBA_RAM_GRANTS_RETIRED_RAM:
+            break;
+        case BCMOLT_DBA_RAM_REPORT_RAM:
+            break;
+        case BCMOLT_DBA_RAM_GRANT_CFG_RAM:
+            break;
+        case BCMOLT_DBA_RAM_DEFAULT_TOKENS_RAM:
+            break;
+        case BCMOLT_DBA_RAM_POLL_RECORDS_RAM:
+            break;
+        case BCMOLT_DBA_RAM_HEIR_POLL_RAM:
+            break;
+        case BCMOLT_DBA_RAM_LAST_POLL_TIME_RAM:
+            break;
+        case BCMOLT_DBA_RAM_POLL_ORDER_RAM:
+            break;
+        case BCMOLT_DBA_RAM_TDM_RAM_0:
+            break;
+        case BCMOLT_DBA_RAM_TDM_RAM_1:
+            break;
+        case BCMOLT_DBA_RAM_TDM_RAM_2:
+            break;
+        case BCMOLT_DBA_RAM_TDM_RAM_3:
+            break;
+        case BCMOLT_DBA_RAM_TDM_RAM_4:
+            break;
+        case BCMOLT_DBA_RAM_TDM_RAM_5:
+            break;
+        case BCMOLT_DBA_RAM_TDM_RAM_6:
+            break;
+        case BCMOLT_DBA_RAM_TDM_RAM_7:
+            break;
+        default:
+            return BCMOS_FALSE;
+    }
+
+    switch (this->hsc_ram)
+    {
+        case BCMOLT_HSC_RAM_LLC_T1:
+            break;
+        case BCMOLT_HSC_RAM_LLC_T2:
+            break;
+        case BCMOLT_HSC_RAM_LLC_T3:
+            break;
+        case BCMOLT_HSC_RAM_GRP_T2:
+            break;
+        case BCMOLT_HSC_RAM_GRP_T3:
+            break;
+        case BCMOLT_HSC_RAM_SHP_T1:
+            break;
+        case BCMOLT_HSC_RAM_SHP_T2:
+            break;
+        case BCMOLT_HSC_RAM_SHP_T3:
+            break;
+        case BCMOLT_HSC_RAM_PRF_T1:
+            break;
+        case BCMOLT_HSC_RAM_PRF_T2:
+            break;
+        case BCMOLT_HSC_RAM_PRF_T3:
+            break;
+        case BCMOLT_HSC_RAM_CRE_T1:
+            break;
+        case BCMOLT_HSC_RAM_CRE_T2:
+            break;
+        case BCMOLT_HSC_RAM_CRE_T3:
+            break;
+        case BCMOLT_HSC_RAM_ELU:
+            break;
+        case BCMOLT_HSC_RAM_PTR_T1:
+            break;
+        case BCMOLT_HSC_RAM_PTR_T2:
+            break;
+        case BCMOLT_HSC_RAM_AGR_SHP_T1:
+            break;
+        case BCMOLT_HSC_RAM_AEM:
+            break;
+        case BCMOLT_HSC_RAM_ALL_LLC:
+            break;
+        default:
+            return BCMOS_FALSE;
+    }
+
+    switch (this->lim_ram)
+    {
+        case BCMOLT_LIM_RAM_LLID_UP:
+            break;
+        case BCMOLT_LIM_RAM_PER_ONU_STAT:
+            break;
+        case BCMOLT_LIM_RAM_FEC_UP_FULL_S:
+            break;
+        case BCMOLT_LIM_RAM_FEC_UP_DATA:
+            break;
+        default:
+            return BCMOS_FALSE;
+    }
+
+    switch (this->lky_ram)
+    {
+        case BCMOLT_LKY_RAM_TX_KEY_RAM:
+            break;
+        case BCMOLT_LKY_RAM_TX_KEY_BUFFER:
+            break;
+        case BCMOLT_LKY_RAM_RX_KEY_RAM:
+            break;
+        case BCMOLT_LKY_RAM_RX_KEY_BUFFER:
+            break;
+        default:
+            return BCMOS_FALSE;
+    }
+
+    switch (this->mic_ram)
+    {
+        case BCMOLT_MIC_RAM_RANGE:
+            break;
+        case BCMOLT_MIC_RAM_LLID:
+            break;
+        case BCMOLT_MIC_RAM_IDX:
+            break;
+        case BCMOLT_MIC_RAM_GRANT_MISS:
+            break;
+        case BCMOLT_MIC_RAM_GRANT_ID:
+            break;
+        case BCMOLT_MIC_RAM_TX_IV:
+            break;
+        case BCMOLT_MIC_RAM_RX_IV:
+            break;
+        case BCMOLT_MIC_RAM_TX_PORT_STAT:
+            break;
+        case BCMOLT_MIC_RAM_RX_PORT_STAT:
+            break;
+        default:
+            return BCMOS_FALSE;
+    }
+
+    switch (this->xpcs_ram)
+    {
+        case BCMOLT_XPCSRM_RAM_CAPTURE_FIFO:
+            break;
+        case BCMOLT_XPCSRM_RAM_FEC_DECODE:
+            break;
+        case BCMOLT_XPCSRM_RAM_FEC_STATS:
+            break;
+        case BCMOLT_XPCSRM_RAM_FEC_ENQUEUE:
+            break;
+        case BCMOLT_XPCSRM_RAM_IDLE_INSERT:
+            break;
+        default:
+            return BCMOS_FALSE;
+    }
+
+    if (this->xg2g_id > (bcmolt_xg2g_id) 7)
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/* \endcond */
+
+/******************************************************************************/
+void bcmolt_embedded_image_entry_set_default(bcmolt_embedded_image_entry *this)
+{
+    this->image_type = BCMOLT_DEVICE_IMAGE_TYPE_BOOTLOADER;
+    this->image_size = 0;
+    this->crc32 = 0;
+    this->status = BCMOLT_EMBEDDED_IMAGE_TRANSFER_STATUS_NONE;
+    memset(this->image_name, 0, 64);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_embedded_image_entry_pack(const bcmolt_embedded_image_entry *this, bcmolt_buf *buf)
+{
+    if (!bcmolt_device_image_type_pack(this->image_type, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_write_u32(buf, this->image_size))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_write_u32(buf, this->crc32))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_embedded_image_transfer_status_pack(this->status, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_write(buf, this->image_name, 64))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_embedded_image_entry_unpack(bcmolt_embedded_image_entry *this, bcmolt_buf *buf, void **extra_mem)
+{
+    if (!bcmolt_device_image_type_unpack(&this->image_type, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_read_u32(buf, &this->image_size))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_read_u32(buf, &this->crc32))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_embedded_image_transfer_status_unpack(&this->status, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_read(buf, this->image_name, 64))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_embedded_image_entry_scan(bcmolt_buf *packed, uint32_t *extra_mem)
+{
+    (void)extra_mem;
+    return bcmolt_buf_skip(packed, 74);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_embedded_image_entry_bounds_check(const bcmolt_embedded_image_entry *this)
+{
+    switch (this->image_type)
+    {
+        case BCMOLT_DEVICE_IMAGE_TYPE_BOOTLOADER:
+            break;
+        case BCMOLT_DEVICE_IMAGE_TYPE_APPLICATION:
+            break;
+        case BCMOLT_DEVICE_IMAGE_TYPE_ITU_PON_ONU_FIRMWARE:
+            break;
+        case BCMOLT_DEVICE_IMAGE_TYPE_EPON_ONU_FIRMWARE:
+            break;
+        default:
+            return BCMOS_FALSE;
+    }
+
+    switch (this->status)
+    {
+        case BCMOLT_EMBEDDED_IMAGE_TRANSFER_STATUS_NONE:
+            break;
+        case BCMOLT_EMBEDDED_IMAGE_TRANSFER_STATUS_IN_PROGRESS:
+            break;
+        case BCMOLT_EMBEDDED_IMAGE_TRANSFER_STATUS_SUCCESS:
+            break;
+        case BCMOLT_EMBEDDED_IMAGE_TRANSFER_STATUS_FAILURE:
+            break;
+        default:
+            return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_embedded_image_entry_list_u8_set_default(bcmolt_embedded_image_entry_list_u8 *this)
+{
+    this->len = 0;
+    this->val = NULL;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_embedded_image_entry_list_u8_pack(const bcmolt_embedded_image_entry_list_u8 *this, bcmolt_buf *buf)
+{
+    uint8_t i0;
+    if (!bcmolt_buf_write_u8(buf, this->len))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if ((this->len > 0) && (this->val == NULL))
+    {
+        bcmos_trace(BCMOS_TRACE_LEVEL_ERROR, "Error: list field \"val\" of struct \"bcmolt_embedded_image_entry_list_u8\" is uninitialized (NULL).  You must allocate memory for this pointer before sending/receiving the message.\n");
+        return BCMOS_FALSE;
+    }
+
+    for (i0 = 0; i0 < this->len; i0++)
+    {
+        if (!bcmolt_embedded_image_entry_pack(&this->val[i0], buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_embedded_image_entry_list_u8_get_packed_length(const bcmolt_embedded_image_entry_list_u8 *this)
+{
+    return 1 + (74 * this->len);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_embedded_image_entry_list_u8_unpack(bcmolt_embedded_image_entry_list_u8 *this, bcmolt_buf *buf, void **extra_mem)
+{
+    uint8_t i0;
+    if (!bcmolt_buf_read_u8(buf, &this->len))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if ((this->len > 0) && (this->val == NULL))
+    {
+        if (extra_mem == NULL)
+        {
+            bcmos_trace(BCMOS_TRACE_LEVEL_ERROR, "Error: list field \"val\" of struct \"bcmolt_embedded_image_entry_list_u8\" is uninitialized (NULL).  You must allocate memory for this pointer before sending/receiving the message.\n");
+            return BCMOS_FALSE;
+        }
+        else
+        {
+            this->val = (bcmolt_embedded_image_entry *) *extra_mem;
+            *extra_mem = ((uint8_t *) *extra_mem) + BCMOS_ROUND_TO_WORD(this->len * sizeof(bcmolt_embedded_image_entry));
+        }
+    }
+
+    for (i0 = 0; i0 < this->len; i0++)
+    {
+        if (!bcmolt_embedded_image_entry_unpack(&this->val[i0], buf, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_embedded_image_entry_list_u8_scan(bcmolt_buf *packed, uint32_t *extra_mem)
+{
+    uint8_t len;
+    if (!bcmolt_buf_read_u8(packed, &len))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *extra_mem += BCMOS_ROUND_TO_WORD(sizeof(bcmolt_embedded_image_entry) * len);
+    if (!bcmolt_buf_skip(packed, len * 74))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_embedded_image_entry_list_u8_bounds_check(const bcmolt_embedded_image_entry_list_u8 *this)
+{
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_encryption_information_container_set_default(bcmolt_encryption_information_container *this)
+{
+    this->format = (bcmolt_epon_encryption_information_format) 0;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_encryption_information_container_pack(const bcmolt_encryption_information_container *this, bcmolt_buf *buf)
+{
+    if (!bcmolt_epon_encryption_information_format_pack(this->format, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    switch (this->format)
+    {
+        case BCMOLT_EPON_ENCRYPTION_INFORMATION_FORMAT_CFB:
+            {
+                if (!bcmolt_buf_write(buf, this->u.cfb.key, 16))
+                {
+                    return BCMOS_FALSE;
+                }
+            }
+            break;
+        case BCMOLT_EPON_ENCRYPTION_INFORMATION_FORMAT_CTR:
+            {
+                if (!bcmolt_buf_write(buf, this->u.ctr.key, 16))
+                {
+                    return BCMOS_FALSE;
+                }
+
+                if (!bcmolt_buf_write(buf, this->u.ctr.sci, 8))
+                {
+                    return BCMOS_FALSE;
+                }
+            }
+            break;
+        default:
+            return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_encryption_information_container_get_packed_length(const bcmolt_encryption_information_container *this)
+{
+    uint32_t count = 1;
+    switch (this->format)
+    {
+        case BCMOLT_EPON_ENCRYPTION_INFORMATION_FORMAT_CFB:
+            {
+                count += 16;
+            }
+            break;
+        case BCMOLT_EPON_ENCRYPTION_INFORMATION_FORMAT_CTR:
+            {
+                count += 24;
+            }
+            break;
+        default:
+            break;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_encryption_information_container_unpack(bcmolt_encryption_information_container *this, bcmolt_buf *buf, void **extra_mem)
+{
+    if (!bcmolt_epon_encryption_information_format_unpack(&this->format, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    switch (this->format)
+    {
+        case BCMOLT_EPON_ENCRYPTION_INFORMATION_FORMAT_CFB:
+            {
+                if (!bcmolt_buf_read(buf, this->u.cfb.key, 16))
+                {
+                    return BCMOS_FALSE;
+                }
+            }
+            break;
+        case BCMOLT_EPON_ENCRYPTION_INFORMATION_FORMAT_CTR:
+            {
+                if (!bcmolt_buf_read(buf, this->u.ctr.key, 16))
+                {
+                    return BCMOS_FALSE;
+                }
+
+                if (!bcmolt_buf_read(buf, this->u.ctr.sci, 8))
+                {
+                    return BCMOS_FALSE;
+                }
+            }
+            break;
+        default:
+            return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_encryption_information_container_scan(bcmolt_buf *packed, uint32_t *extra_mem)
+{
+    bcmolt_epon_encryption_information_format format;
+    if (!bcmolt_epon_encryption_information_format_unpack(&format, packed))
+    {
+        return BCMOS_FALSE;
+    }
+
+    switch (format)
+    {
+        case BCMOLT_EPON_ENCRYPTION_INFORMATION_FORMAT_CFB:
+            {
+                if (!bcmolt_buf_skip(packed, 16))
+                {
+                    return BCMOS_FALSE;
+                }
+            }
+            break;
+        case BCMOLT_EPON_ENCRYPTION_INFORMATION_FORMAT_CTR:
+            {
+                if (!bcmolt_buf_skip(packed, 16))
+                {
+                    return BCMOS_FALSE;
+                }
+
+                if (!bcmolt_buf_skip(packed, 8))
+                {
+                    return BCMOS_FALSE;
+                }
+            }
+            break;
+        default:
+            return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_encryption_information_container_bounds_check(const bcmolt_encryption_information_container *this)
+{
+    switch (this->format)
+    {
+        case BCMOLT_EPON_ENCRYPTION_INFORMATION_FORMAT_CFB:
+            {
+            }
+            break;
+        case BCMOLT_EPON_ENCRYPTION_INFORMATION_FORMAT_CTR:
+            {
+            }
+            break;
+        default:
+            return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_epon_clock_transport_configuration_set_default(bcmolt_epon_clock_transport_configuration *this)
+{
+    this->epon_clock_transport_mode = BCMOLT_EPON_CLOCK_TRANSPORT_MODE_HOST_DRIVEN;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_clock_transport_configuration_pack(const bcmolt_epon_clock_transport_configuration *this, bcmolt_buf *buf)
+{
+    if (!bcmolt_epon_clock_transport_mode_pack(this->epon_clock_transport_mode, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_clock_transport_configuration_unpack(bcmolt_epon_clock_transport_configuration *this, bcmolt_buf *buf, void **extra_mem)
+{
+    if (!bcmolt_epon_clock_transport_mode_unpack(&this->epon_clock_transport_mode, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_clock_transport_configuration_scan(bcmolt_buf *packed, uint32_t *extra_mem)
+{
+    (void)extra_mem;
+    return bcmolt_buf_skip(packed, 1);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_clock_transport_configuration_bounds_check(const bcmolt_epon_clock_transport_configuration *this)
+{
+    switch (this->epon_clock_transport_mode)
+    {
+        case BCMOLT_EPON_CLOCK_TRANSPORT_MODE_HOST_DRIVEN:
+            break;
+        case BCMOLT_EPON_CLOCK_TRANSPORT_MODE_EMBEDDED_DRIVEN:
+            break;
+        default:
+            return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_unknown_link_status_set_default(bcmolt_unknown_link_status *this)
+{
+    this->link_rate = BCMOLT_EPON_LINK_RATE_TEN_TEN;
+    this->alarm_status = BCMOLT_STATUS_OFF;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_unknown_link_status_pack(const bcmolt_unknown_link_status *this, bcmolt_buf *buf)
+{
+    if (!bcmolt_epon_link_rate_pack(this->link_rate, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_status_pack(this->alarm_status, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_unknown_link_status_unpack(bcmolt_unknown_link_status *this, bcmolt_buf *buf, void **extra_mem)
+{
+    if (!bcmolt_epon_link_rate_unpack(&this->link_rate, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_status_unpack(&this->alarm_status, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_unknown_link_status_scan(bcmolt_buf *packed, uint32_t *extra_mem)
+{
+    (void)extra_mem;
+    return bcmolt_buf_skip(packed, 3);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_unknown_link_status_bounds_check(const bcmolt_unknown_link_status *this)
+{
+    switch (this->link_rate)
+    {
+        case BCMOLT_EPON_LINK_RATE_TEN_TEN:
+            break;
+        case BCMOLT_EPON_LINK_RATE_TEN_ONE:
+            break;
+        case BCMOLT_EPON_LINK_RATE_ONE_ONE:
+            break;
+        default:
+            return BCMOS_FALSE;
+    }
+
+    switch (this->alarm_status)
+    {
+        case BCMOLT_STATUS_OFF:
+            break;
+        case BCMOLT_STATUS_ON:
+            break;
+        case BCMOLT_STATUS_NO_CHANGE:
+            break;
+        default:
+            return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_laser_on_off_status_set_default(bcmolt_laser_on_off_status *this)
+{
+    this->laser_on_time = (bcmolt_time_quanta) 0;
+    this->laser_off_time = (bcmolt_time_quanta) 0;
+    this->alarm_status = BCMOLT_STATUS_OFF;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_laser_on_off_status_pack(const bcmolt_laser_on_off_status *this, bcmolt_buf *buf)
+{
+    if (!bcmolt_buf_write_u32(buf, (uint32_t) this->laser_on_time))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_write_u32(buf, (uint32_t) this->laser_off_time))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_status_pack(this->alarm_status, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_laser_on_off_status_unpack(bcmolt_laser_on_off_status *this, bcmolt_buf *buf, void **extra_mem)
+{
+    if (!bcmolt_buf_read_u32(buf, (uint32_t *) &this->laser_on_time))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_read_u32(buf, (uint32_t *) &this->laser_off_time))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_status_unpack(&this->alarm_status, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_laser_on_off_status_scan(bcmolt_buf *packed, uint32_t *extra_mem)
+{
+    (void)extra_mem;
+    return bcmolt_buf_skip(packed, 9);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_laser_on_off_status_bounds_check(const bcmolt_laser_on_off_status *this)
+{
+    switch (this->alarm_status)
+    {
+        case BCMOLT_STATUS_OFF:
+            break;
+        case BCMOLT_STATUS_ON:
+            break;
+        case BCMOLT_STATUS_NO_CHANGE:
+            break;
+        default:
+            return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_range_status_set_default(bcmolt_range_status *this)
+{
+    this->range = (bcmolt_time_quanta) 0;
+    this->alarm_status = BCMOLT_STATUS_OFF;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_range_status_pack(const bcmolt_range_status *this, bcmolt_buf *buf)
+{
+    if (!bcmolt_buf_write_u32(buf, (uint32_t) this->range))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_status_pack(this->alarm_status, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_range_status_unpack(bcmolt_range_status *this, bcmolt_buf *buf, void **extra_mem)
+{
+    if (!bcmolt_buf_read_u32(buf, (uint32_t *) &this->range))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_status_unpack(&this->alarm_status, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_range_status_scan(bcmolt_buf *packed, uint32_t *extra_mem)
+{
+    (void)extra_mem;
+    return bcmolt_buf_skip(packed, 5);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_range_status_bounds_check(const bcmolt_range_status *this)
+{
+    switch (this->alarm_status)
+    {
+        case BCMOLT_STATUS_OFF:
+            break;
+        case BCMOLT_STATUS_ON:
+            break;
+        case BCMOLT_STATUS_NO_CHANGE:
+            break;
+        default:
+            return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_rogue_status_set_default(bcmolt_rogue_status *this)
+{
+    this->denied_llid = (bcmolt_epon_llid) 0;
+    this->denied_range = (bcmolt_time_quanta) 0;
+    this->alarm_status = BCMOLT_STATUS_OFF;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_rogue_status_pack(const bcmolt_rogue_status *this, bcmolt_buf *buf)
+{
+    if (!bcmolt_buf_write_u16(buf, (uint16_t) this->denied_llid))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_write_u32(buf, (uint32_t) this->denied_range))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_status_pack(this->alarm_status, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_rogue_status_unpack(bcmolt_rogue_status *this, bcmolt_buf *buf, void **extra_mem)
+{
+    if (!bcmolt_buf_read_u16(buf, (uint16_t *) &this->denied_llid))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_read_u32(buf, (uint32_t *) &this->denied_range))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_status_unpack(&this->alarm_status, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_rogue_status_scan(bcmolt_buf *packed, uint32_t *extra_mem)
+{
+    (void)extra_mem;
+    return bcmolt_buf_skip(packed, 7);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_rogue_status_bounds_check(const bcmolt_rogue_status *this)
+{
+    switch (this->alarm_status)
+    {
+        case BCMOLT_STATUS_OFF:
+            break;
+        case BCMOLT_STATUS_ON:
+            break;
+        case BCMOLT_STATUS_NO_CHANGE:
+            break;
+        default:
+            return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_epon_denied_link_alarm_state_set_default(bcmolt_epon_denied_link_alarm_state *this)
+{
+    this->unknown_link_violation.link_rate = BCMOLT_EPON_LINK_RATE_TEN_TEN;
+    this->unknown_link_violation.alarm_status = BCMOLT_STATUS_OFF;
+    this->overhead_profile_violation = BCMOLT_STATUS_OFF;
+    this->max_link_violation = BCMOLT_STATUS_OFF;
+    this->llid_pool_empty_violation = BCMOLT_STATUS_OFF;
+    this->laser_on_off_violation.laser_on_time = (bcmolt_time_quanta) 0;
+    this->laser_on_off_violation.laser_off_time = (bcmolt_time_quanta) 0;
+    this->laser_on_off_violation.alarm_status = BCMOLT_STATUS_OFF;
+    this->system_resource_violation = BCMOLT_STATUS_OFF;
+    this->range_violation.range = (bcmolt_time_quanta) 0;
+    this->range_violation.alarm_status = BCMOLT_STATUS_OFF;
+    this->tdm_channels_exhausted = BCMOLT_STATUS_OFF;
+    this->rogue_violation.denied_llid = (bcmolt_epon_llid) 0;
+    this->rogue_violation.denied_range = (bcmolt_time_quanta) 0;
+    this->rogue_violation.alarm_status = BCMOLT_STATUS_OFF;
+    this->upstream_bandwidth_violation = BCMOLT_STATUS_OFF;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_denied_link_alarm_state_pack(const bcmolt_epon_denied_link_alarm_state *this, bcmolt_buf *buf)
+{
+    if (!bcmolt_unknown_link_status_pack(&this->unknown_link_violation, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_status_pack(this->overhead_profile_violation, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_status_pack(this->max_link_violation, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_status_pack(this->llid_pool_empty_violation, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_laser_on_off_status_pack(&this->laser_on_off_violation, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_status_pack(this->system_resource_violation, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_range_status_pack(&this->range_violation, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_status_pack(this->tdm_channels_exhausted, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_rogue_status_pack(&this->rogue_violation, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_status_pack(this->upstream_bandwidth_violation, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_denied_link_alarm_state_unpack(bcmolt_epon_denied_link_alarm_state *this, bcmolt_buf *buf, void **extra_mem)
+{
+    if (!bcmolt_unknown_link_status_unpack(&this->unknown_link_violation, buf, extra_mem))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_status_unpack(&this->overhead_profile_violation, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_status_unpack(&this->max_link_violation, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_status_unpack(&this->llid_pool_empty_violation, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_laser_on_off_status_unpack(&this->laser_on_off_violation, buf, extra_mem))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_status_unpack(&this->system_resource_violation, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_range_status_unpack(&this->range_violation, buf, extra_mem))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_status_unpack(&this->tdm_channels_exhausted, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_rogue_status_unpack(&this->rogue_violation, buf, extra_mem))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_status_unpack(&this->upstream_bandwidth_violation, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_denied_link_alarm_state_scan(bcmolt_buf *packed, uint32_t *extra_mem)
+{
+    (void)extra_mem;
+    return bcmolt_buf_skip(packed, 30);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_denied_link_alarm_state_bounds_check(const bcmolt_epon_denied_link_alarm_state *this)
+{
+    if (!bcmolt_unknown_link_status_bounds_check(&this->unknown_link_violation))
+    {
+        return BCMOS_FALSE;
+    }
+
+    switch (this->overhead_profile_violation)
+    {
+        case BCMOLT_STATUS_OFF:
+            break;
+        case BCMOLT_STATUS_ON:
+            break;
+        case BCMOLT_STATUS_NO_CHANGE:
+            break;
+        default:
+            return BCMOS_FALSE;
+    }
+
+    switch (this->max_link_violation)
+    {
+        case BCMOLT_STATUS_OFF:
+            break;
+        case BCMOLT_STATUS_ON:
+            break;
+        case BCMOLT_STATUS_NO_CHANGE:
+            break;
+        default:
+            return BCMOS_FALSE;
+    }
+
+    switch (this->llid_pool_empty_violation)
+    {
+        case BCMOLT_STATUS_OFF:
+            break;
+        case BCMOLT_STATUS_ON:
+            break;
+        case BCMOLT_STATUS_NO_CHANGE:
+            break;
+        default:
+            return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_laser_on_off_status_bounds_check(&this->laser_on_off_violation))
+    {
+        return BCMOS_FALSE;
+    }
+
+    switch (this->system_resource_violation)
+    {
+        case BCMOLT_STATUS_OFF:
+            break;
+        case BCMOLT_STATUS_ON:
+            break;
+        case BCMOLT_STATUS_NO_CHANGE:
+            break;
+        default:
+            return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_range_status_bounds_check(&this->range_violation))
+    {
+        return BCMOS_FALSE;
+    }
+
+    switch (this->tdm_channels_exhausted)
+    {
+        case BCMOLT_STATUS_OFF:
+            break;
+        case BCMOLT_STATUS_ON:
+            break;
+        case BCMOLT_STATUS_NO_CHANGE:
+            break;
+        default:
+            return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_rogue_status_bounds_check(&this->rogue_violation))
+    {
+        return BCMOS_FALSE;
+    }
+
+    switch (this->upstream_bandwidth_violation)
+    {
+        case BCMOLT_STATUS_OFF:
+            break;
+        case BCMOLT_STATUS_ON:
+            break;
+        case BCMOLT_STATUS_NO_CHANGE:
+            break;
+        default:
+            return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_epon_encryption_config_set_default(bcmolt_epon_encryption_config *this)
+{
+    this->downstream_mode = BCMOLT_EPON_ENCRYPTION_MODE_NO_ENCRYPTION;
+    this->downstream_key_choice = BCMOLT_EPON_KEY_CHOICE_KEY_0;
+    this->downstream_encryption_information.format = BCMOLT_EPON_ENCRYPTION_INFORMATION_FORMAT_CFB;
+    memset(this->downstream_encryption_information.u.cfb.key, 0, sizeof(this->downstream_encryption_information.u.cfb.key));
+    this->upstream_mode = BCMOLT_EPON_ENCRYPTION_MODE_NO_ENCRYPTION;
+    this->upstream_key_choice = BCMOLT_EPON_KEY_CHOICE_KEY_0;
+    this->upstream_encryption_information.format = BCMOLT_EPON_ENCRYPTION_INFORMATION_FORMAT_CFB;
+    memset(this->upstream_encryption_information.u.cfb.key, 0, sizeof(this->upstream_encryption_information.u.cfb.key));
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_encryption_config_pack(const bcmolt_epon_encryption_config *this, bcmolt_buf *buf)
+{
+    if (!bcmolt_epon_encryption_mode_pack(this->downstream_mode, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_epon_key_choice_pack(this->downstream_key_choice, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_encryption_information_container_pack(&this->downstream_encryption_information, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_epon_encryption_mode_pack(this->upstream_mode, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_epon_key_choice_pack(this->upstream_key_choice, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_encryption_information_container_pack(&this->upstream_encryption_information, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_epon_encryption_config_get_packed_length(const bcmolt_epon_encryption_config *this)
+{
+    return 6 + bcmolt_encryption_information_container_get_packed_length(&this->downstream_encryption_information) + bcmolt_encryption_information_container_get_packed_length(&this->upstream_encryption_information);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_encryption_config_unpack(bcmolt_epon_encryption_config *this, bcmolt_buf *buf, void **extra_mem)
+{
+    if (!bcmolt_epon_encryption_mode_unpack(&this->downstream_mode, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_epon_key_choice_unpack(&this->downstream_key_choice, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_encryption_information_container_unpack(&this->downstream_encryption_information, buf, extra_mem))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_epon_encryption_mode_unpack(&this->upstream_mode, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_epon_key_choice_unpack(&this->upstream_key_choice, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_encryption_information_container_unpack(&this->upstream_encryption_information, buf, extra_mem))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_encryption_config_scan(bcmolt_buf *packed, uint32_t *extra_mem)
+{
+    if (!bcmolt_buf_skip(packed, 2))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_skip(packed, 1))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_encryption_information_container_scan(packed, extra_mem))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_skip(packed, 2))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_skip(packed, 1))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_encryption_information_container_scan(packed, extra_mem))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_encryption_config_bounds_check(const bcmolt_epon_encryption_config *this)
+{
+    switch (this->downstream_mode)
+    {
+        case BCMOLT_EPON_ENCRYPTION_MODE_NO_ENCRYPTION:
+            break;
+        case BCMOLT_EPON_ENCRYPTION_MODE_EPON_TRIPLE_CHURNING:
+            break;
+        case BCMOLT_EPON_ENCRYPTION_MODE_EPON_ZERO_OVERHEAD_AES:
+            break;
+        default:
+            return BCMOS_FALSE;
+    }
+
+    switch (this->downstream_key_choice)
+    {
+        case BCMOLT_EPON_KEY_CHOICE_KEY_0:
+            break;
+        case BCMOLT_EPON_KEY_CHOICE_KEY_1:
+            break;
+        default:
+            return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_encryption_information_container_bounds_check(&this->downstream_encryption_information))
+    {
+        return BCMOS_FALSE;
+    }
+
+    switch (this->upstream_mode)
+    {
+        case BCMOLT_EPON_ENCRYPTION_MODE_NO_ENCRYPTION:
+            break;
+        case BCMOLT_EPON_ENCRYPTION_MODE_EPON_TRIPLE_CHURNING:
+            break;
+        case BCMOLT_EPON_ENCRYPTION_MODE_EPON_ZERO_OVERHEAD_AES:
+            break;
+        default:
+            return BCMOS_FALSE;
+    }
+
+    switch (this->upstream_key_choice)
+    {
+        case BCMOLT_EPON_KEY_CHOICE_KEY_0:
+            break;
+        case BCMOLT_EPON_KEY_CHOICE_KEY_1:
+            break;
+        default:
+            return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_encryption_information_container_bounds_check(&this->upstream_encryption_information))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_epon_key_exchange_config_set_default(bcmolt_epon_key_exchange_config *this)
+{
+    this->oam_type = BCMOLT_EPON_OAM_TYPE_BROADCOM;
+    this->period = 0;
+    this->direction = BCMOLT_EPON_ENCRYPTION_DIRECTION_DOWNSTREAM_ONLY;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_key_exchange_config_pack(const bcmolt_epon_key_exchange_config *this, bcmolt_buf *buf)
+{
+    if (!bcmolt_epon_oam_type_pack(this->oam_type, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_write_u16(buf, this->period))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_epon_encryption_direction_pack(this->direction, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_key_exchange_config_unpack(bcmolt_epon_key_exchange_config *this, bcmolt_buf *buf, void **extra_mem)
+{
+    if (!bcmolt_epon_oam_type_unpack(&this->oam_type, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_read_u16(buf, &this->period))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_epon_encryption_direction_unpack(&this->direction, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_key_exchange_config_scan(bcmolt_buf *packed, uint32_t *extra_mem)
+{
+    (void)extra_mem;
+    return bcmolt_buf_skip(packed, 5);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_key_exchange_config_bounds_check(const bcmolt_epon_key_exchange_config *this)
+{
+    switch (this->oam_type)
+    {
+        case BCMOLT_EPON_OAM_TYPE_BROADCOM:
+            break;
+        case BCMOLT_EPON_OAM_TYPE_CTC:
+            break;
+        case BCMOLT_EPON_OAM_TYPE_DPOE:
+            break;
+        case BCMOLT_EPON_OAM_TYPE_SIEPONA:
+            break;
+        default:
+            return BCMOS_FALSE;
+    }
+
+    switch (this->direction)
+    {
+        case BCMOLT_EPON_ENCRYPTION_DIRECTION_DOWNSTREAM_ONLY:
+            break;
+        default:
+            return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_epon_laser_overhead_parameters_set_default(bcmolt_epon_laser_overhead_parameters *this)
+{
+    this->laser_on_time = (bcmolt_time_quanta) 32;
+    this->laser_off_time = (bcmolt_time_quanta) 32;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_laser_overhead_parameters_pack(const bcmolt_epon_laser_overhead_parameters *this, bcmolt_buf *buf)
+{
+    if (!bcmolt_buf_write_u32(buf, (uint32_t) this->laser_on_time))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_write_u32(buf, (uint32_t) this->laser_off_time))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_laser_overhead_parameters_unpack(bcmolt_epon_laser_overhead_parameters *this, bcmolt_buf *buf, void **extra_mem)
+{
+    if (!bcmolt_buf_read_u32(buf, (uint32_t *) &this->laser_on_time))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_read_u32(buf, (uint32_t *) &this->laser_off_time))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_laser_overhead_parameters_scan(bcmolt_buf *packed, uint32_t *extra_mem)
+{
+    (void)extra_mem;
+    return bcmolt_buf_skip(packed, 8);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_laser_overhead_parameters_bounds_check(const bcmolt_epon_laser_overhead_parameters *this)
+{
+    if (this->laser_on_time > (bcmolt_time_quanta) 62)
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (this->laser_off_time > (bcmolt_time_quanta) 62)
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_epon_link_alarm_state_set_default(bcmolt_epon_link_alarm_state *this)
+{
+    this->key_exchange_failure = BCMOLT_STATUS_OFF;
+    this->invalid_mpcp_report_received = BCMOLT_STATUS_OFF;
+    this->mpcp_report_timeout = BCMOLT_STATUS_OFF;
+    this->oam_keepalive_timeout = BCMOLT_STATUS_OFF;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_link_alarm_state_pack(const bcmolt_epon_link_alarm_state *this, bcmolt_buf *buf)
+{
+    if (!bcmolt_status_pack(this->key_exchange_failure, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_status_pack(this->invalid_mpcp_report_received, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_status_pack(this->mpcp_report_timeout, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_status_pack(this->oam_keepalive_timeout, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_link_alarm_state_unpack(bcmolt_epon_link_alarm_state *this, bcmolt_buf *buf, void **extra_mem)
+{
+    if (!bcmolt_status_unpack(&this->key_exchange_failure, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_status_unpack(&this->invalid_mpcp_report_received, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_status_unpack(&this->mpcp_report_timeout, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_status_unpack(&this->oam_keepalive_timeout, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_link_alarm_state_scan(bcmolt_buf *packed, uint32_t *extra_mem)
+{
+    (void)extra_mem;
+    return bcmolt_buf_skip(packed, 4);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_link_alarm_state_bounds_check(const bcmolt_epon_link_alarm_state *this)
+{
+    switch (this->key_exchange_failure)
+    {
+        case BCMOLT_STATUS_OFF:
+            break;
+        case BCMOLT_STATUS_ON:
+            break;
+        case BCMOLT_STATUS_NO_CHANGE:
+            break;
+        default:
+            return BCMOS_FALSE;
+    }
+
+    switch (this->invalid_mpcp_report_received)
+    {
+        case BCMOLT_STATUS_OFF:
+            break;
+        case BCMOLT_STATUS_ON:
+            break;
+        case BCMOLT_STATUS_NO_CHANGE:
+            break;
+        default:
+            return BCMOS_FALSE;
+    }
+
+    switch (this->mpcp_report_timeout)
+    {
+        case BCMOLT_STATUS_OFF:
+            break;
+        case BCMOLT_STATUS_ON:
+            break;
+        case BCMOLT_STATUS_NO_CHANGE:
+            break;
+        default:
+            return BCMOS_FALSE;
+    }
+
+    switch (this->oam_keepalive_timeout)
+    {
+        case BCMOLT_STATUS_OFF:
+            break;
+        case BCMOLT_STATUS_ON:
+            break;
+        case BCMOLT_STATUS_NO_CHANGE:
+            break;
+        default:
+            return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_epon_link_fec_en_set_default(bcmolt_epon_link_fec_en *this)
+{
+    this->upstream = BCMOLT_EPON_LINK_FEC_STATE_USE_DEFAULT;
+    this->downstream = BCMOLT_EPON_LINK_FEC_STATE_USE_DEFAULT;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_link_fec_en_pack(const bcmolt_epon_link_fec_en *this, bcmolt_buf *buf)
+{
+    if (!bcmolt_epon_link_fec_state_pack(this->upstream, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_epon_link_fec_state_pack(this->downstream, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_link_fec_en_unpack(bcmolt_epon_link_fec_en *this, bcmolt_buf *buf, void **extra_mem)
+{
+    if (!bcmolt_epon_link_fec_state_unpack(&this->upstream, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_epon_link_fec_state_unpack(&this->downstream, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_link_fec_en_scan(bcmolt_buf *packed, uint32_t *extra_mem)
+{
+    (void)extra_mem;
+    return bcmolt_buf_skip(packed, 2);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_link_fec_en_bounds_check(const bcmolt_epon_link_fec_en *this)
+{
+    switch (this->upstream)
+    {
+        case BCMOLT_EPON_LINK_FEC_STATE_DISABLED:
+            break;
+        case BCMOLT_EPON_LINK_FEC_STATE_ENABLED:
+            break;
+        case BCMOLT_EPON_LINK_FEC_STATE_USE_DEFAULT:
+            break;
+        default:
+            return BCMOS_FALSE;
+    }
+
+    switch (this->downstream)
+    {
+        case BCMOLT_EPON_LINK_FEC_STATE_DISABLED:
+            break;
+        case BCMOLT_EPON_LINK_FEC_STATE_ENABLED:
+            break;
+        case BCMOLT_EPON_LINK_FEC_STATE_USE_DEFAULT:
+            break;
+        default:
+            return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_epon_link_info_set_default(bcmolt_epon_link_info *this)
+{
+    this->link_status = (bcmolt_epon_link_status) 0;
+    this->rate = BCMOLT_EPON_LINK_RATE_TEN_TEN;
+    this->llid = (bcmolt_epon_llid) 0;
+    this->mpcp_discovery_info = (bcmolt_mpcp_discovery_info) 0;
+    this->onu_laser_on_time_tq = (bcmolt_time_quanta) 0;
+    this->onu_laser_off_time_tq = (bcmolt_time_quanta) 0;
+    this->pending_grants = 0;
+    this->range_value_tq = (bcmolt_time_quanta) 0;
+    this->tunnel_id = (bcmolt_epon_tunnel_id) 0;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_link_info_pack(const bcmolt_epon_link_info *this, bcmolt_buf *buf)
+{
+    if (!bcmolt_epon_link_status_pack(this->link_status, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_epon_link_rate_pack(this->rate, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_write_u16(buf, (uint16_t) this->llid))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_mpcp_discovery_info_pack(this->mpcp_discovery_info, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_write_u32(buf, (uint32_t) this->onu_laser_on_time_tq))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_write_u32(buf, (uint32_t) this->onu_laser_off_time_tq))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_write_u8(buf, this->pending_grants))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_write_u32(buf, (uint32_t) this->range_value_tq))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_write_u32(buf, (uint32_t) this->tunnel_id))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_link_info_unpack(bcmolt_epon_link_info *this, bcmolt_buf *buf, void **extra_mem)
+{
+    if (!bcmolt_epon_link_status_unpack(&this->link_status, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_epon_link_rate_unpack(&this->rate, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_read_u16(buf, (uint16_t *) &this->llid))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_mpcp_discovery_info_unpack(&this->mpcp_discovery_info, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_read_u32(buf, (uint32_t *) &this->onu_laser_on_time_tq))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_read_u32(buf, (uint32_t *) &this->onu_laser_off_time_tq))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_read_u8(buf, &this->pending_grants))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_read_u32(buf, (uint32_t *) &this->range_value_tq))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_read_u32(buf, (uint32_t *) &this->tunnel_id))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_link_info_scan(bcmolt_buf *packed, uint32_t *extra_mem)
+{
+    (void)extra_mem;
+    return bcmolt_buf_skip(packed, 24);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_link_info_bounds_check(const bcmolt_epon_link_info *this)
+{
+    if ((this->link_status & 0x00F6) != 0)
+    {
+        return BCMOS_FALSE;
+    }
+
+    switch (this->rate)
+    {
+        case BCMOLT_EPON_LINK_RATE_TEN_TEN:
+            break;
+        case BCMOLT_EPON_LINK_RATE_TEN_ONE:
+            break;
+        case BCMOLT_EPON_LINK_RATE_ONE_ONE:
+            break;
+        default:
+            return BCMOS_FALSE;
+    }
+
+    if ((this->mpcp_discovery_info & 0xFFCCU) != 0)
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_gate_parameters_set_default(bcmolt_gate_parameters *this)
+{
+    this->flags = (bcmolt_mpcp_registration_gate_flags) 0;
+    this->delay_before_ms = 50;
+    this->gate_size_tq = (bcmolt_time_quanta) 42;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gate_parameters_pack(const bcmolt_gate_parameters *this, bcmolt_buf *buf)
+{
+    if (!bcmolt_mpcp_registration_gate_flags_pack(this->flags, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_write_u32(buf, this->delay_before_ms))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_write_u32(buf, (uint32_t) this->gate_size_tq))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gate_parameters_unpack(bcmolt_gate_parameters *this, bcmolt_buf *buf, void **extra_mem)
+{
+    if (!bcmolt_mpcp_registration_gate_flags_unpack(&this->flags, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_read_u32(buf, &this->delay_before_ms))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_read_u32(buf, (uint32_t *) &this->gate_size_tq))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gate_parameters_scan(bcmolt_buf *packed, uint32_t *extra_mem)
+{
+    (void)extra_mem;
+    return bcmolt_buf_skip(packed, 12);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gate_parameters_bounds_check(const bcmolt_gate_parameters *this)
+{
+    if ((this->flags & 0xFFFFFFFEUL) != 0)
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (this->delay_before_ms > 3600000UL)
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (this->gate_size_tq > (bcmolt_time_quanta) 65535UL)
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_gate_parameters_list_u32_set_default(bcmolt_gate_parameters_list_u32 *this)
+{
+    this->len = 0;
+    this->val = NULL;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gate_parameters_list_u32_pack(const bcmolt_gate_parameters_list_u32 *this, bcmolt_buf *buf)
+{
+    uint32_t i0;
+    if (!bcmolt_buf_write_u32(buf, this->len))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if ((this->len > 0) && (this->val == NULL))
+    {
+        bcmos_trace(BCMOS_TRACE_LEVEL_ERROR, "Error: list field \"val\" of struct \"bcmolt_gate_parameters_list_u32\" is uninitialized (NULL).  You must allocate memory for this pointer before sending/receiving the message.\n");
+        return BCMOS_FALSE;
+    }
+
+    for (i0 = 0; i0 < this->len; i0++)
+    {
+        if (!bcmolt_gate_parameters_pack(&this->val[i0], buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_gate_parameters_list_u32_get_packed_length(const bcmolt_gate_parameters_list_u32 *this)
+{
+    return 4 + (12 * this->len);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gate_parameters_list_u32_unpack(bcmolt_gate_parameters_list_u32 *this, bcmolt_buf *buf, void **extra_mem)
+{
+    uint32_t i0;
+    if (!bcmolt_buf_read_u32(buf, &this->len))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if ((this->len > 0) && (this->val == NULL))
+    {
+        if (extra_mem == NULL)
+        {
+            bcmos_trace(BCMOS_TRACE_LEVEL_ERROR, "Error: list field \"val\" of struct \"bcmolt_gate_parameters_list_u32\" is uninitialized (NULL).  You must allocate memory for this pointer before sending/receiving the message.\n");
+            return BCMOS_FALSE;
+        }
+        else
+        {
+            this->val = (bcmolt_gate_parameters *) *extra_mem;
+            *extra_mem = ((uint8_t *) *extra_mem) + BCMOS_ROUND_TO_WORD(this->len * sizeof(bcmolt_gate_parameters));
+        }
+    }
+
+    for (i0 = 0; i0 < this->len; i0++)
+    {
+        if (!bcmolt_gate_parameters_unpack(&this->val[i0], buf, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gate_parameters_list_u32_scan(bcmolt_buf *packed, uint32_t *extra_mem)
+{
+    uint32_t len;
+    if (!bcmolt_buf_read_u32(packed, &len))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *extra_mem += BCMOS_ROUND_TO_WORD(sizeof(bcmolt_gate_parameters) * len);
+    if (!bcmolt_buf_skip(packed, len * 12))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gate_parameters_list_u32_bounds_check(const bcmolt_gate_parameters_list_u32 *this)
+{
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_epon_registration_gate_mode_set_default(bcmolt_epon_registration_gate_mode *this)
+{
+    this->registration_gate_mode = (bcmolt_mpcp_gate_mode) 0;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_registration_gate_mode_pack(const bcmolt_epon_registration_gate_mode *this, bcmolt_buf *buf)
+{
+    if (!bcmolt_mpcp_gate_mode_pack(this->registration_gate_mode, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    switch (this->registration_gate_mode)
+    {
+        case BCMOLT_MPCP_GATE_MODE_TEKNOVUS:
+            {
+                if (!bcmolt_buf_write_u16(buf, this->u.teknovus.reg_ack_timeout_ms))
+                {
+                    return BCMOS_FALSE;
+                }
+            }
+            break;
+        case BCMOLT_MPCP_GATE_MODE_CUSTOM:
+            {
+                if (!bcmolt_gate_parameters_list_u32_pack(&this->u.custom.gates, buf))
+                {
+                    return BCMOS_FALSE;
+                }
+            }
+            break;
+        default:
+            return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_epon_registration_gate_mode_get_packed_length(const bcmolt_epon_registration_gate_mode *this)
+{
+    uint32_t count = 1;
+    switch (this->registration_gate_mode)
+    {
+        case BCMOLT_MPCP_GATE_MODE_TEKNOVUS:
+            {
+                count += 2;
+            }
+            break;
+        case BCMOLT_MPCP_GATE_MODE_CUSTOM:
+            {
+                count += bcmolt_gate_parameters_list_u32_get_packed_length(&this->u.custom.gates);
+            }
+            break;
+        default:
+            break;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_registration_gate_mode_unpack(bcmolt_epon_registration_gate_mode *this, bcmolt_buf *buf, void **extra_mem)
+{
+    if (!bcmolt_mpcp_gate_mode_unpack(&this->registration_gate_mode, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    switch (this->registration_gate_mode)
+    {
+        case BCMOLT_MPCP_GATE_MODE_TEKNOVUS:
+            {
+                if (!bcmolt_buf_read_u16(buf, &this->u.teknovus.reg_ack_timeout_ms))
+                {
+                    return BCMOS_FALSE;
+                }
+            }
+            break;
+        case BCMOLT_MPCP_GATE_MODE_CUSTOM:
+            {
+                if (!bcmolt_gate_parameters_list_u32_unpack(&this->u.custom.gates, buf, extra_mem))
+                {
+                    return BCMOS_FALSE;
+                }
+            }
+            break;
+        default:
+            return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_registration_gate_mode_scan(bcmolt_buf *packed, uint32_t *extra_mem)
+{
+    bcmolt_mpcp_gate_mode registration_gate_mode;
+    if (!bcmolt_mpcp_gate_mode_unpack(&registration_gate_mode, packed))
+    {
+        return BCMOS_FALSE;
+    }
+
+    switch (registration_gate_mode)
+    {
+        case BCMOLT_MPCP_GATE_MODE_TEKNOVUS:
+            {
+                if (!bcmolt_buf_skip(packed, 2))
+                {
+                    return BCMOS_FALSE;
+                }
+            }
+            break;
+        case BCMOLT_MPCP_GATE_MODE_CUSTOM:
+            {
+                if (!bcmolt_gate_parameters_list_u32_scan(packed, extra_mem))
+                {
+                    return BCMOS_FALSE;
+                }
+            }
+            break;
+        default:
+            return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_registration_gate_mode_bounds_check(const bcmolt_epon_registration_gate_mode *this)
+{
+    switch (this->registration_gate_mode)
+    {
+        case BCMOLT_MPCP_GATE_MODE_TEKNOVUS:
+            {
+                if (this->u.teknovus.reg_ack_timeout_ms < 50)
+                {
+                    return BCMOS_FALSE;
+                }
+
+                if (this->u.teknovus.reg_ack_timeout_ms > 200)
+                {
+                    return BCMOS_FALSE;
+                }
+            }
+            break;
+        case BCMOLT_MPCP_GATE_MODE_CUSTOM:
+            {
+                if (!bcmolt_gate_parameters_list_u32_bounds_check(&this->u.custom.gates))
+                {
+                    return BCMOS_FALSE;
+                }
+            }
+            break;
+        default:
+            return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_epon_logical_link_options_set_default(bcmolt_epon_logical_link_options *this)
+{
+    this->registration_gate_mode.registration_gate_mode = BCMOLT_MPCP_GATE_MODE_TEKNOVUS;
+    this->registration_gate_mode.u.teknovus.reg_ack_timeout_ms = 100;
+    this->reporting_mode = BCMOLT_EPON_DBA_REPORTING_MODE_SIEPON_A;
+    this->max_links = 512;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_logical_link_options_pack(const bcmolt_epon_logical_link_options *this, bcmolt_buf *buf)
+{
+    if (!bcmolt_epon_registration_gate_mode_pack(&this->registration_gate_mode, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_epon_dba_reporting_mode_pack(this->reporting_mode, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_write_u16(buf, this->max_links))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_epon_logical_link_options_get_packed_length(const bcmolt_epon_logical_link_options *this)
+{
+    return 3 + bcmolt_epon_registration_gate_mode_get_packed_length(&this->registration_gate_mode);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_logical_link_options_unpack(bcmolt_epon_logical_link_options *this, bcmolt_buf *buf, void **extra_mem)
+{
+    if (!bcmolt_epon_registration_gate_mode_unpack(&this->registration_gate_mode, buf, extra_mem))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_epon_dba_reporting_mode_unpack(&this->reporting_mode, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_read_u16(buf, &this->max_links))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_logical_link_options_scan(bcmolt_buf *packed, uint32_t *extra_mem)
+{
+    if (!bcmolt_epon_registration_gate_mode_scan(packed, extra_mem))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_skip(packed, 1))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_skip(packed, 2))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_logical_link_options_bounds_check(const bcmolt_epon_logical_link_options *this)
+{
+    if (!bcmolt_epon_registration_gate_mode_bounds_check(&this->registration_gate_mode))
+    {
+        return BCMOS_FALSE;
+    }
+
+    switch (this->reporting_mode)
+    {
+        case BCMOLT_EPON_DBA_REPORTING_MODE_SIEPON_A:
+            break;
+        case BCMOLT_EPON_DBA_REPORTING_MODE_SIEPON_B:
+            break;
+        case BCMOLT_EPON_DBA_REPORTING_MODE_SIEPON_C:
+            break;
+        default:
+            return BCMOS_FALSE;
+    }
+
+    if (this->max_links > 2044)
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_epon_ni_alarm_state_set_default(bcmolt_epon_ni_alarm_state *this)
+{
+    this->no_reports = BCMOLT_STATUS_OFF;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_ni_alarm_state_pack(const bcmolt_epon_ni_alarm_state *this, bcmolt_buf *buf)
+{
+    if (!bcmolt_status_pack(this->no_reports, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_ni_alarm_state_unpack(bcmolt_epon_ni_alarm_state *this, bcmolt_buf *buf, void **extra_mem)
+{
+    if (!bcmolt_status_unpack(&this->no_reports, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_ni_alarm_state_scan(bcmolt_buf *packed, uint32_t *extra_mem)
+{
+    (void)extra_mem;
+    return bcmolt_buf_skip(packed, 1);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_ni_alarm_state_bounds_check(const bcmolt_epon_ni_alarm_state *this)
+{
+    switch (this->no_reports)
+    {
+        case BCMOLT_STATUS_OFF:
+            break;
+        case BCMOLT_STATUS_ON:
+            break;
+        case BCMOLT_STATUS_NO_CHANGE:
+            break;
+        default:
+            return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_epon_ni_encryption_cfg_set_default(bcmolt_epon_ni_encryption_cfg *this)
+{
+    this->downstream_encryption_mode = BCMOLT_EPON_ENCRYPTION_MODE_NO_ENCRYPTION;
+    this->upstream_encryption_mode = BCMOLT_EPON_ENCRYPTION_MODE_NO_ENCRYPTION;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_ni_encryption_cfg_pack(const bcmolt_epon_ni_encryption_cfg *this, bcmolt_buf *buf)
+{
+    if (!bcmolt_epon_encryption_mode_pack(this->downstream_encryption_mode, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_epon_encryption_mode_pack(this->upstream_encryption_mode, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_ni_encryption_cfg_unpack(bcmolt_epon_ni_encryption_cfg *this, bcmolt_buf *buf, void **extra_mem)
+{
+    if (!bcmolt_epon_encryption_mode_unpack(&this->downstream_encryption_mode, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_epon_encryption_mode_unpack(&this->upstream_encryption_mode, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_ni_encryption_cfg_scan(bcmolt_buf *packed, uint32_t *extra_mem)
+{
+    (void)extra_mem;
+    return bcmolt_buf_skip(packed, 4);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_ni_encryption_cfg_bounds_check(const bcmolt_epon_ni_encryption_cfg *this)
+{
+    switch (this->downstream_encryption_mode)
+    {
+        case BCMOLT_EPON_ENCRYPTION_MODE_NO_ENCRYPTION:
+            break;
+        case BCMOLT_EPON_ENCRYPTION_MODE_EPON_TRIPLE_CHURNING:
+            break;
+        case BCMOLT_EPON_ENCRYPTION_MODE_EPON_ZERO_OVERHEAD_AES:
+            break;
+        default:
+            return BCMOS_FALSE;
+    }
+
+    switch (this->upstream_encryption_mode)
+    {
+        case BCMOLT_EPON_ENCRYPTION_MODE_NO_ENCRYPTION:
+            break;
+        case BCMOLT_EPON_ENCRYPTION_MODE_EPON_TRIPLE_CHURNING:
+            break;
+        case BCMOLT_EPON_ENCRYPTION_MODE_EPON_ZERO_OVERHEAD_AES:
+            break;
+        default:
+            return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_epon_onu_upgrade_params_set_default(bcmolt_epon_onu_upgrade_params *this)
+{
+    this->oam_extension_type = (bcmolt_epon_oam_extension_type) 0;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_onu_upgrade_params_pack(const bcmolt_epon_onu_upgrade_params *this, bcmolt_buf *buf)
+{
+    if (!bcmolt_epon_oam_extension_type_pack(this->oam_extension_type, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    switch (this->oam_extension_type)
+    {
+        case BCMOLT_EPON_OAM_EXTENSION_TYPE_RESERVED:
+            {
+            }
+            break;
+        case BCMOLT_EPON_OAM_EXTENSION_TYPE_BROADCOM:
+            {
+                if (!bcmolt_buf_write_u32(buf, this->u.broadcom.response_timeout_ms))
+                {
+                    return BCMOS_FALSE;
+                }
+            }
+            break;
+        case BCMOLT_EPON_OAM_EXTENSION_TYPE_CTC:
+            {
+                if (!bcmolt_buf_write_u32(buf, this->u.ctc.response_timeout_ms))
+                {
+                    return BCMOS_FALSE;
+                }
+            }
+            break;
+        case BCMOLT_EPON_OAM_EXTENSION_TYPE_DASAN:
+            {
+                if (!bcmolt_buf_write_u32(buf, this->u.dasan.response_timeout_ms))
+                {
+                    return BCMOS_FALSE;
+                }
+            }
+            break;
+        case BCMOLT_EPON_OAM_EXTENSION_TYPE_KT:
+            {
+                if (!bcmolt_buf_write_u32(buf, this->u.kt.response_timeout_ms))
+                {
+                    return BCMOS_FALSE;
+                }
+            }
+            break;
+        case BCMOLT_EPON_OAM_EXTENSION_TYPE_DPOE:
+            {
+                if (!bcmolt_buf_write_u32(buf, this->u.dpoe.response_timeout_ms))
+                {
+                    return BCMOS_FALSE;
+                }
+
+                if (!bcmolt_buf_write_u16(buf, this->u.dpoe.block_size))
+                {
+                    return BCMOS_FALSE;
+                }
+
+                if (!bcmolt_buf_write_u32(buf, this->u.dpoe.final_ack_response_timeout))
+                {
+                    return BCMOS_FALSE;
+                }
+            }
+            break;
+        default:
+            return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_epon_onu_upgrade_params_get_packed_length(const bcmolt_epon_onu_upgrade_params *this)
+{
+    uint32_t count = 1;
+    switch (this->oam_extension_type)
+    {
+        case BCMOLT_EPON_OAM_EXTENSION_TYPE_RESERVED:
+            {
+            }
+            break;
+        case BCMOLT_EPON_OAM_EXTENSION_TYPE_BROADCOM:
+            {
+                count += 4;
+            }
+            break;
+        case BCMOLT_EPON_OAM_EXTENSION_TYPE_CTC:
+            {
+                count += 4;
+            }
+            break;
+        case BCMOLT_EPON_OAM_EXTENSION_TYPE_DASAN:
+            {
+                count += 4;
+            }
+            break;
+        case BCMOLT_EPON_OAM_EXTENSION_TYPE_KT:
+            {
+                count += 4;
+            }
+            break;
+        case BCMOLT_EPON_OAM_EXTENSION_TYPE_DPOE:
+            {
+                count += 10;
+            }
+            break;
+        default:
+            break;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_onu_upgrade_params_unpack(bcmolt_epon_onu_upgrade_params *this, bcmolt_buf *buf, void **extra_mem)
+{
+    if (!bcmolt_epon_oam_extension_type_unpack(&this->oam_extension_type, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    switch (this->oam_extension_type)
+    {
+        case BCMOLT_EPON_OAM_EXTENSION_TYPE_RESERVED:
+            {
+            }
+            break;
+        case BCMOLT_EPON_OAM_EXTENSION_TYPE_BROADCOM:
+            {
+                if (!bcmolt_buf_read_u32(buf, &this->u.broadcom.response_timeout_ms))
+                {
+                    return BCMOS_FALSE;
+                }
+            }
+            break;
+        case BCMOLT_EPON_OAM_EXTENSION_TYPE_CTC:
+            {
+                if (!bcmolt_buf_read_u32(buf, &this->u.ctc.response_timeout_ms))
+                {
+                    return BCMOS_FALSE;
+                }
+            }
+            break;
+        case BCMOLT_EPON_OAM_EXTENSION_TYPE_DASAN:
+            {
+                if (!bcmolt_buf_read_u32(buf, &this->u.dasan.response_timeout_ms))
+                {
+                    return BCMOS_FALSE;
+                }
+            }
+            break;
+        case BCMOLT_EPON_OAM_EXTENSION_TYPE_KT:
+            {
+                if (!bcmolt_buf_read_u32(buf, &this->u.kt.response_timeout_ms))
+                {
+                    return BCMOS_FALSE;
+                }
+            }
+            break;
+        case BCMOLT_EPON_OAM_EXTENSION_TYPE_DPOE:
+            {
+                if (!bcmolt_buf_read_u32(buf, &this->u.dpoe.response_timeout_ms))
+                {
+                    return BCMOS_FALSE;
+                }
+
+                if (!bcmolt_buf_read_u16(buf, &this->u.dpoe.block_size))
+                {
+                    return BCMOS_FALSE;
+                }
+
+                if (!bcmolt_buf_read_u32(buf, &this->u.dpoe.final_ack_response_timeout))
+                {
+                    return BCMOS_FALSE;
+                }
+            }
+            break;
+        default:
+            return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_onu_upgrade_params_scan(bcmolt_buf *packed, uint32_t *extra_mem)
+{
+    bcmolt_epon_oam_extension_type oam_extension_type;
+    if (!bcmolt_epon_oam_extension_type_unpack(&oam_extension_type, packed))
+    {
+        return BCMOS_FALSE;
+    }
+
+    switch (oam_extension_type)
+    {
+        case BCMOLT_EPON_OAM_EXTENSION_TYPE_RESERVED:
+            {
+            }
+            break;
+        case BCMOLT_EPON_OAM_EXTENSION_TYPE_BROADCOM:
+            {
+                if (!bcmolt_buf_skip(packed, 4))
+                {
+                    return BCMOS_FALSE;
+                }
+            }
+            break;
+        case BCMOLT_EPON_OAM_EXTENSION_TYPE_CTC:
+            {
+                if (!bcmolt_buf_skip(packed, 4))
+                {
+                    return BCMOS_FALSE;
+                }
+            }
+            break;
+        case BCMOLT_EPON_OAM_EXTENSION_TYPE_DASAN:
+            {
+                if (!bcmolt_buf_skip(packed, 4))
+                {
+                    return BCMOS_FALSE;
+                }
+            }
+            break;
+        case BCMOLT_EPON_OAM_EXTENSION_TYPE_KT:
+            {
+                if (!bcmolt_buf_skip(packed, 4))
+                {
+                    return BCMOS_FALSE;
+                }
+            }
+            break;
+        case BCMOLT_EPON_OAM_EXTENSION_TYPE_DPOE:
+            {
+                if (!bcmolt_buf_skip(packed, 4))
+                {
+                    return BCMOS_FALSE;
+                }
+
+                if (!bcmolt_buf_skip(packed, 2))
+                {
+                    return BCMOS_FALSE;
+                }
+
+                if (!bcmolt_buf_skip(packed, 4))
+                {
+                    return BCMOS_FALSE;
+                }
+            }
+            break;
+        default:
+            return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_onu_upgrade_params_bounds_check(const bcmolt_epon_onu_upgrade_params *this)
+{
+    switch (this->oam_extension_type)
+    {
+        case BCMOLT_EPON_OAM_EXTENSION_TYPE_RESERVED:
+            {
+            }
+            break;
+        case BCMOLT_EPON_OAM_EXTENSION_TYPE_BROADCOM:
+            {
+                if (this->u.broadcom.response_timeout_ms < 50)
+                {
+                    return BCMOS_FALSE;
+                }
+            }
+            break;
+        case BCMOLT_EPON_OAM_EXTENSION_TYPE_CTC:
+            {
+                if (this->u.ctc.response_timeout_ms < 100)
+                {
+                    return BCMOS_FALSE;
+                }
+            }
+            break;
+        case BCMOLT_EPON_OAM_EXTENSION_TYPE_DASAN:
+            {
+                if (this->u.dasan.response_timeout_ms < 50)
+                {
+                    return BCMOS_FALSE;
+                }
+            }
+            break;
+        case BCMOLT_EPON_OAM_EXTENSION_TYPE_KT:
+            {
+                if (this->u.kt.response_timeout_ms < 50)
+                {
+                    return BCMOS_FALSE;
+                }
+            }
+            break;
+        case BCMOLT_EPON_OAM_EXTENSION_TYPE_DPOE:
+            {
+                if (this->u.dpoe.response_timeout_ms < 1000)
+                {
+                    return BCMOS_FALSE;
+                }
+
+                if (this->u.dpoe.block_size < 1)
+                {
+                    return BCMOS_FALSE;
+                }
+
+                if (this->u.dpoe.final_ack_response_timeout < 15)
+                {
+                    return BCMOS_FALSE;
+                }
+            }
+            break;
+        default:
+            return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_epon_onu_upgrade_status_set_default(bcmolt_epon_onu_upgrade_status *this)
+{
+    bcmos_mac_address_init(&this->onu_id);
+    this->error_code = BCMOLT_EPON_ONU_UPGRADE_RETURN_CODE_SUCCESS;
+    this->onu_return_code = BCMOLT_EPON_ONU_UPGRADE_ONU_RESPONSE_CODE_OK;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_onu_upgrade_status_pack(const bcmolt_epon_onu_upgrade_status *this, bcmolt_buf *buf)
+{
+    if (!bcmolt_buf_write_mac_address(buf, this->onu_id))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_epon_onu_upgrade_return_code_pack(this->error_code, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_epon_onu_upgrade_onu_response_code_pack(this->onu_return_code, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_onu_upgrade_status_unpack(bcmolt_epon_onu_upgrade_status *this, bcmolt_buf *buf, void **extra_mem)
+{
+    if (!bcmolt_buf_read_mac_address(buf, &this->onu_id))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_epon_onu_upgrade_return_code_unpack(&this->error_code, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_epon_onu_upgrade_onu_response_code_unpack(&this->onu_return_code, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_onu_upgrade_status_scan(bcmolt_buf *packed, uint32_t *extra_mem)
+{
+    (void)extra_mem;
+    return bcmolt_buf_skip(packed, 8);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_onu_upgrade_status_bounds_check(const bcmolt_epon_onu_upgrade_status *this)
+{
+    switch (this->error_code)
+    {
+        case BCMOLT_EPON_ONU_UPGRADE_RETURN_CODE_SUCCESS:
+            break;
+        case BCMOLT_EPON_ONU_UPGRADE_RETURN_CODE_ONU_RESPONSE_TIMEOUT:
+            break;
+        case BCMOLT_EPON_ONU_UPGRADE_RETURN_CODE_ONU_ERROR_RESPONSE:
+            break;
+        case BCMOLT_EPON_ONU_UPGRADE_RETURN_CODE_SYNC_ERROR:
+            break;
+        case BCMOLT_EPON_ONU_UPGRADE_RETURN_CODE_COMMIT_FAILED:
+            break;
+        case BCMOLT_EPON_ONU_UPGRADE_RETURN_CODE_INTERNAL:
+            break;
+        case BCMOLT_EPON_ONU_UPGRADE_RETURN_CODE_PARSE_ERROR:
+            break;
+        default:
+            return BCMOS_FALSE;
+    }
+
+    switch (this->onu_return_code)
+    {
+        case BCMOLT_EPON_ONU_UPGRADE_ONU_RESPONSE_CODE_OK:
+            break;
+        case BCMOLT_EPON_ONU_UPGRADE_ONU_RESPONSE_CODE_UNDEFINED:
+            break;
+        case BCMOLT_EPON_ONU_UPGRADE_ONU_RESPONSE_CODE_NOT_FOUND:
+            break;
+        case BCMOLT_EPON_ONU_UPGRADE_ONU_RESPONSE_CODE_NO_ACCESS:
+            break;
+        case BCMOLT_EPON_ONU_UPGRADE_ONU_RESPONSE_CODE_FULL:
+            break;
+        case BCMOLT_EPON_ONU_UPGRADE_ONU_RESPONSE_CODE_ILLEGAL_OPERATION:
+            break;
+        case BCMOLT_EPON_ONU_UPGRADE_ONU_RESPONSE_CODE_UNKNOWN_ID:
+            break;
+        case BCMOLT_EPON_ONU_UPGRADE_ONU_RESPONSE_CODE_BAD_BLOCK:
+            break;
+        case BCMOLT_EPON_ONU_UPGRADE_ONU_RESPONSE_CODE_TIMEOUT:
+            break;
+        case BCMOLT_EPON_ONU_UPGRADE_ONU_RESPONSE_CODE_BUSY:
+            break;
+        case BCMOLT_EPON_ONU_UPGRADE_ONU_RESPONSE_CODE_INCOMPATIBLE_FILE:
+            break;
+        case BCMOLT_EPON_ONU_UPGRADE_ONU_RESPONSE_CODE_CORRUPTED_FILE:
+            break;
+        case BCMOLT_EPON_ONU_UPGRADE_ONU_RESPONSE_CODE_ERROR_NOT_DEFINED:
+            break;
+        case BCMOLT_EPON_ONU_UPGRADE_ONU_RESPONSE_CODE_ERROR_ALLOC_EXCEEDED:
+            break;
+        case BCMOLT_EPON_ONU_UPGRADE_ONU_RESPONSE_CODE_ERROR_ILLEGAL_OP:
+            break;
+        case BCMOLT_EPON_ONU_UPGRADE_ONU_RESPONSE_CODE_ERROR_FILE_EXISTS:
+            break;
+        case BCMOLT_EPON_ONU_UPGRADE_ONU_RESPONSE_CODE_END_WRITING_NVS:
+            break;
+        case BCMOLT_EPON_ONU_UPGRADE_ONU_RESPONSE_CODE_END_CRC_ERROR:
+            break;
+        case BCMOLT_EPON_ONU_UPGRADE_ONU_RESPONSE_CODE_END_PARAM_ERROR:
+            break;
+        case BCMOLT_EPON_ONU_UPGRADE_ONU_RESPONSE_CODE_END_CMD_UNSUPPORTED:
+            break;
+        case BCMOLT_EPON_ONU_UPGRADE_ONU_RESPONSE_CODE_LAST:
+            break;
+        default:
+            return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_epon_onu_upgrade_status_list_u32_set_default(bcmolt_epon_onu_upgrade_status_list_u32 *this)
+{
+    this->len = 0;
+    this->val = NULL;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_onu_upgrade_status_list_u32_pack(const bcmolt_epon_onu_upgrade_status_list_u32 *this, bcmolt_buf *buf)
+{
+    uint32_t i0;
+    if (!bcmolt_buf_write_u32(buf, this->len))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if ((this->len > 0) && (this->val == NULL))
+    {
+        bcmos_trace(BCMOS_TRACE_LEVEL_ERROR, "Error: list field \"val\" of struct \"bcmolt_epon_onu_upgrade_status_list_u32\" is uninitialized (NULL).  You must allocate memory for this pointer before sending/receiving the message.\n");
+        return BCMOS_FALSE;
+    }
+
+    for (i0 = 0; i0 < this->len; i0++)
+    {
+        if (!bcmolt_epon_onu_upgrade_status_pack(&this->val[i0], buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_epon_onu_upgrade_status_list_u32_get_packed_length(const bcmolt_epon_onu_upgrade_status_list_u32 *this)
+{
+    return 4 + (8 * this->len);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_onu_upgrade_status_list_u32_unpack(bcmolt_epon_onu_upgrade_status_list_u32 *this, bcmolt_buf *buf, void **extra_mem)
+{
+    uint32_t i0;
+    if (!bcmolt_buf_read_u32(buf, &this->len))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if ((this->len > 0) && (this->val == NULL))
+    {
+        if (extra_mem == NULL)
+        {
+            bcmos_trace(BCMOS_TRACE_LEVEL_ERROR, "Error: list field \"val\" of struct \"bcmolt_epon_onu_upgrade_status_list_u32\" is uninitialized (NULL).  You must allocate memory for this pointer before sending/receiving the message.\n");
+            return BCMOS_FALSE;
+        }
+        else
+        {
+            this->val = (bcmolt_epon_onu_upgrade_status *) *extra_mem;
+            *extra_mem = ((uint8_t *) *extra_mem) + BCMOS_ROUND_TO_WORD(this->len * sizeof(bcmolt_epon_onu_upgrade_status));
+        }
+    }
+
+    for (i0 = 0; i0 < this->len; i0++)
+    {
+        if (!bcmolt_epon_onu_upgrade_status_unpack(&this->val[i0], buf, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_onu_upgrade_status_list_u32_scan(bcmolt_buf *packed, uint32_t *extra_mem)
+{
+    uint32_t len;
+    if (!bcmolt_buf_read_u32(packed, &len))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *extra_mem += BCMOS_ROUND_TO_WORD(sizeof(bcmolt_epon_onu_upgrade_status) * len);
+    if (!bcmolt_buf_skip(packed, len * 8))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_onu_upgrade_status_list_u32_bounds_check(const bcmolt_epon_onu_upgrade_status_list_u32 *this)
+{
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_epon_protection_switching_configuration_set_default(bcmolt_epon_protection_switching_configuration *this)
+{
+    this->protection_type = BCMOLT_EPON_PROTECTION_SWITCHING_TYPE_NO_PROTECTION_SWTICHING;
+    this->protection_switching_options = (bcmolt_protection_switching_detection_options) 0;
+    this->rerange_options = BCMOLT_EPON_PROTECTION_SWITCHING_RERANGING_OPTIONS_RERANGE_NONE;
+    this->rerange_attempts = 0;
+    this->rerange_interval = 0;
+    this->sync_gate_duration = 0;
+    this->gpio_input = BCMOLT_GPIO_PIN_UNCONFIGURED;
+    this->gpio_input_polarity = BCMOLT_GPIO_POLARITY_ACTIVE_HIGH;
+    this->gpio_output = BCMOLT_GPIO_PIN_UNCONFIGURED;
+    this->gpio_output_polarity = BCMOLT_GPIO_POLARITY_ACTIVE_HIGH;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_protection_switching_configuration_pack(const bcmolt_epon_protection_switching_configuration *this, bcmolt_buf *buf)
+{
+    if (!bcmolt_epon_protection_switching_type_pack(this->protection_type, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_protection_switching_detection_options_pack(this->protection_switching_options, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_epon_protection_switching_reranging_options_pack(this->rerange_options, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_write_u8(buf, this->rerange_attempts))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_write_u16(buf, this->rerange_interval))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_write_u16(buf, this->sync_gate_duration))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_gpio_pin_pack(this->gpio_input, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_gpio_polarity_pack(this->gpio_input_polarity, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_gpio_pin_pack(this->gpio_output, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_gpio_polarity_pack(this->gpio_output_polarity, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_protection_switching_configuration_unpack(bcmolt_epon_protection_switching_configuration *this, bcmolt_buf *buf, void **extra_mem)
+{
+    if (!bcmolt_epon_protection_switching_type_unpack(&this->protection_type, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_protection_switching_detection_options_unpack(&this->protection_switching_options, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_epon_protection_switching_reranging_options_unpack(&this->rerange_options, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_read_u8(buf, &this->rerange_attempts))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_read_u16(buf, &this->rerange_interval))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_read_u16(buf, &this->sync_gate_duration))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_gpio_pin_unpack(&this->gpio_input, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_gpio_polarity_unpack(&this->gpio_input_polarity, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_gpio_pin_unpack(&this->gpio_output, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_gpio_polarity_unpack(&this->gpio_output_polarity, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_protection_switching_configuration_scan(bcmolt_buf *packed, uint32_t *extra_mem)
+{
+    (void)extra_mem;
+    return bcmolt_buf_skip(packed, 12);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_protection_switching_configuration_bounds_check(const bcmolt_epon_protection_switching_configuration *this)
+{
+    switch (this->protection_type)
+    {
+        case BCMOLT_EPON_PROTECTION_SWITCHING_TYPE_NO_PROTECTION_SWTICHING:
+            break;
+        case BCMOLT_EPON_PROTECTION_SWITCHING_TYPE_LINE_CARD_PROTECTION_SWITCHING:
+            break;
+        default:
+            return BCMOS_FALSE;
+    }
+
+    if ((this->protection_switching_options & 0x00FE) != 0)
+    {
+        return BCMOS_FALSE;
+    }
+
+    switch (this->rerange_options)
+    {
+        case BCMOLT_EPON_PROTECTION_SWITCHING_RERANGING_OPTIONS_RERANGE_NONE:
+            break;
+        case BCMOLT_EPON_PROTECTION_SWITCHING_RERANGING_OPTIONS_RERANGE_SINGLE_LOGICAL_LINK:
+            break;
+        case BCMOLT_EPON_PROTECTION_SWITCHING_RERANGING_OPTIONS_RERANGE_ALL_LOGICAL_LINKS:
+            break;
+        default:
+            return BCMOS_FALSE;
+    }
+
+    switch (this->gpio_input)
+    {
+        case BCMOLT_GPIO_PIN_PIN0:
+            break;
+        case BCMOLT_GPIO_PIN_PIN1:
+            break;
+        case BCMOLT_GPIO_PIN_PIN2:
+            break;
+        case BCMOLT_GPIO_PIN_PIN3:
+            break;
+        case BCMOLT_GPIO_PIN_PIN4:
+            break;
+        case BCMOLT_GPIO_PIN_PIN5:
+            break;
+        case BCMOLT_GPIO_PIN_PIN6:
+            break;
+        case BCMOLT_GPIO_PIN_PIN7:
+            break;
+        case BCMOLT_GPIO_PIN_PIN8:
+            break;
+        case BCMOLT_GPIO_PIN_PIN9:
+            break;
+        case BCMOLT_GPIO_PIN_PIN10:
+            break;
+        case BCMOLT_GPIO_PIN_PIN11:
+            break;
+        case BCMOLT_GPIO_PIN_PIN12:
+            break;
+        case BCMOLT_GPIO_PIN_PIN13:
+            break;
+        case BCMOLT_GPIO_PIN_PIN14:
+            break;
+        case BCMOLT_GPIO_PIN_PIN15:
+            break;
+        case BCMOLT_GPIO_PIN_PIN16:
+            break;
+        case BCMOLT_GPIO_PIN_PIN17:
+            break;
+        case BCMOLT_GPIO_PIN_PIN18:
+            break;
+        case BCMOLT_GPIO_PIN_PIN19:
+            break;
+        case BCMOLT_GPIO_PIN_PIN20:
+            break;
+        case BCMOLT_GPIO_PIN_PIN21:
+            break;
+        case BCMOLT_GPIO_PIN_PIN22:
+            break;
+        case BCMOLT_GPIO_PIN_PIN23:
+            break;
+        case BCMOLT_GPIO_PIN_PIN24:
+            break;
+        case BCMOLT_GPIO_PIN_PIN25:
+            break;
+        case BCMOLT_GPIO_PIN_PIN26:
+            break;
+        case BCMOLT_GPIO_PIN_PIN27:
+            break;
+        case BCMOLT_GPIO_PIN_PIN28:
+            break;
+        case BCMOLT_GPIO_PIN_PIN29:
+            break;
+        case BCMOLT_GPIO_PIN_PIN30:
+            break;
+        case BCMOLT_GPIO_PIN_PIN31:
+            break;
+        case BCMOLT_GPIO_PIN_PIN32:
+            break;
+        case BCMOLT_GPIO_PIN_PIN33:
+            break;
+        case BCMOLT_GPIO_PIN_PIN34:
+            break;
+        case BCMOLT_GPIO_PIN_PIN35:
+            break;
+        case BCMOLT_GPIO_PIN_PIN36:
+            break;
+        case BCMOLT_GPIO_PIN_PIN37:
+            break;
+        case BCMOLT_GPIO_PIN_PIN38:
+            break;
+        case BCMOLT_GPIO_PIN_PIN39:
+            break;
+        case BCMOLT_GPIO_PIN_PIN40:
+            break;
+        case BCMOLT_GPIO_PIN_PIN41:
+            break;
+        case BCMOLT_GPIO_PIN_PIN42:
+            break;
+        case BCMOLT_GPIO_PIN_PIN43:
+            break;
+        case BCMOLT_GPIO_PIN_PIN44:
+            break;
+        case BCMOLT_GPIO_PIN_PIN45:
+            break;
+        case BCMOLT_GPIO_PIN_PIN46:
+            break;
+        case BCMOLT_GPIO_PIN_PIN47:
+            break;
+        case BCMOLT_GPIO_PIN_PIN48:
+            break;
+        case BCMOLT_GPIO_PIN_PIN49:
+            break;
+        case BCMOLT_GPIO_PIN_PIN50:
+            break;
+        case BCMOLT_GPIO_PIN_PIN51:
+            break;
+        case BCMOLT_GPIO_PIN_PIN52:
+            break;
+        case BCMOLT_GPIO_PIN_PIN53:
+            break;
+        case BCMOLT_GPIO_PIN_PIN54:
+            break;
+        case BCMOLT_GPIO_PIN_PIN55:
+            break;
+        case BCMOLT_GPIO_PIN_PIN56:
+            break;
+        case BCMOLT_GPIO_PIN_PIN57:
+            break;
+        case BCMOLT_GPIO_PIN_PIN58:
+            break;
+        case BCMOLT_GPIO_PIN_PIN59:
+            break;
+        case BCMOLT_GPIO_PIN_PIN60:
+            break;
+        case BCMOLT_GPIO_PIN_PIN61:
+            break;
+        case BCMOLT_GPIO_PIN_PIN62:
+            break;
+        case BCMOLT_GPIO_PIN_PIN63:
+            break;
+        case BCMOLT_GPIO_PIN_PIN64:
+            break;
+        case BCMOLT_GPIO_PIN_PIN65:
+            break;
+        case BCMOLT_GPIO_PIN_PIN66:
+            break;
+        case BCMOLT_GPIO_PIN_PIN67:
+            break;
+        case BCMOLT_GPIO_PIN_PIN68:
+            break;
+        case BCMOLT_GPIO_PIN_PIN69:
+            break;
+        case BCMOLT_GPIO_PIN_PIN70:
+            break;
+        case BCMOLT_GPIO_PIN_PIN71:
+            break;
+        case BCMOLT_GPIO_PIN_PIN72:
+            break;
+        case BCMOLT_GPIO_PIN_PIN73:
+            break;
+        case BCMOLT_GPIO_PIN_PIN74:
+            break;
+        case BCMOLT_GPIO_PIN_PIN75:
+            break;
+        case BCMOLT_GPIO_PIN_PIN76:
+            break;
+        case BCMOLT_GPIO_PIN_PIN77:
+            break;
+        case BCMOLT_GPIO_PIN_PIN78:
+            break;
+        case BCMOLT_GPIO_PIN_PIN79:
+            break;
+        case BCMOLT_GPIO_PIN_PIN80:
+            break;
+        case BCMOLT_GPIO_PIN_PIN81:
+            break;
+        case BCMOLT_GPIO_PIN_PIN82:
+            break;
+        case BCMOLT_GPIO_PIN_PIN83:
+            break;
+        case BCMOLT_GPIO_PIN_PIN84:
+            break;
+        case BCMOLT_GPIO_PIN_PIN85:
+            break;
+        case BCMOLT_GPIO_PIN_PIN86:
+            break;
+        case BCMOLT_GPIO_PIN_PIN87:
+            break;
+        case BCMOLT_GPIO_PIN_PIN88:
+            break;
+        case BCMOLT_GPIO_PIN_PIN89:
+            break;
+        case BCMOLT_GPIO_PIN_PIN90:
+            break;
+        case BCMOLT_GPIO_PIN_PIN91:
+            break;
+        case BCMOLT_GPIO_PIN_PIN92:
+            break;
+        case BCMOLT_GPIO_PIN_PIN93:
+            break;
+        case BCMOLT_GPIO_PIN_PIN94:
+            break;
+        case BCMOLT_GPIO_PIN_PIN95:
+            break;
+        case BCMOLT_GPIO_PIN_PIN96:
+            break;
+        case BCMOLT_GPIO_PIN_PIN97:
+            break;
+        case BCMOLT_GPIO_PIN_PIN98:
+            break;
+        case BCMOLT_GPIO_PIN_PIN99:
+            break;
+        case BCMOLT_GPIO_PIN_PIN100:
+            break;
+        case BCMOLT_GPIO_PIN_PIN101:
+            break;
+        case BCMOLT_GPIO_PIN_PIN102:
+            break;
+        case BCMOLT_GPIO_PIN_PIN103:
+            break;
+        case BCMOLT_GPIO_PIN_PIN104:
+            break;
+        case BCMOLT_GPIO_PIN_PIN105:
+            break;
+        case BCMOLT_GPIO_PIN_PIN106:
+            break;
+        case BCMOLT_GPIO_PIN_UNCONFIGURED:
+            break;
+        default:
+            return BCMOS_FALSE;
+    }
+
+    switch (this->gpio_input_polarity)
+    {
+        case BCMOLT_GPIO_POLARITY_ACTIVE_LOW:
+            break;
+        case BCMOLT_GPIO_POLARITY_ACTIVE_HIGH:
+            break;
+        default:
+            return BCMOS_FALSE;
+    }
+
+    switch (this->gpio_output)
+    {
+        case BCMOLT_GPIO_PIN_PIN0:
+            break;
+        case BCMOLT_GPIO_PIN_PIN1:
+            break;
+        case BCMOLT_GPIO_PIN_PIN2:
+            break;
+        case BCMOLT_GPIO_PIN_PIN3:
+            break;
+        case BCMOLT_GPIO_PIN_PIN4:
+            break;
+        case BCMOLT_GPIO_PIN_PIN5:
+            break;
+        case BCMOLT_GPIO_PIN_PIN6:
+            break;
+        case BCMOLT_GPIO_PIN_PIN7:
+            break;
+        case BCMOLT_GPIO_PIN_PIN8:
+            break;
+        case BCMOLT_GPIO_PIN_PIN9:
+            break;
+        case BCMOLT_GPIO_PIN_PIN10:
+            break;
+        case BCMOLT_GPIO_PIN_PIN11:
+            break;
+        case BCMOLT_GPIO_PIN_PIN12:
+            break;
+        case BCMOLT_GPIO_PIN_PIN13:
+            break;
+        case BCMOLT_GPIO_PIN_PIN14:
+            break;
+        case BCMOLT_GPIO_PIN_PIN15:
+            break;
+        case BCMOLT_GPIO_PIN_PIN16:
+            break;
+        case BCMOLT_GPIO_PIN_PIN17:
+            break;
+        case BCMOLT_GPIO_PIN_PIN18:
+            break;
+        case BCMOLT_GPIO_PIN_PIN19:
+            break;
+        case BCMOLT_GPIO_PIN_PIN20:
+            break;
+        case BCMOLT_GPIO_PIN_PIN21:
+            break;
+        case BCMOLT_GPIO_PIN_PIN22:
+            break;
+        case BCMOLT_GPIO_PIN_PIN23:
+            break;
+        case BCMOLT_GPIO_PIN_PIN24:
+            break;
+        case BCMOLT_GPIO_PIN_PIN25:
+            break;
+        case BCMOLT_GPIO_PIN_PIN26:
+            break;
+        case BCMOLT_GPIO_PIN_PIN27:
+            break;
+        case BCMOLT_GPIO_PIN_PIN28:
+            break;
+        case BCMOLT_GPIO_PIN_PIN29:
+            break;
+        case BCMOLT_GPIO_PIN_PIN30:
+            break;
+        case BCMOLT_GPIO_PIN_PIN31:
+            break;
+        case BCMOLT_GPIO_PIN_PIN32:
+            break;
+        case BCMOLT_GPIO_PIN_PIN33:
+            break;
+        case BCMOLT_GPIO_PIN_PIN34:
+            break;
+        case BCMOLT_GPIO_PIN_PIN35:
+            break;
+        case BCMOLT_GPIO_PIN_PIN36:
+            break;
+        case BCMOLT_GPIO_PIN_PIN37:
+            break;
+        case BCMOLT_GPIO_PIN_PIN38:
+            break;
+        case BCMOLT_GPIO_PIN_PIN39:
+            break;
+        case BCMOLT_GPIO_PIN_PIN40:
+            break;
+        case BCMOLT_GPIO_PIN_PIN41:
+            break;
+        case BCMOLT_GPIO_PIN_PIN42:
+            break;
+        case BCMOLT_GPIO_PIN_PIN43:
+            break;
+        case BCMOLT_GPIO_PIN_PIN44:
+            break;
+        case BCMOLT_GPIO_PIN_PIN45:
+            break;
+        case BCMOLT_GPIO_PIN_PIN46:
+            break;
+        case BCMOLT_GPIO_PIN_PIN47:
+            break;
+        case BCMOLT_GPIO_PIN_PIN48:
+            break;
+        case BCMOLT_GPIO_PIN_PIN49:
+            break;
+        case BCMOLT_GPIO_PIN_PIN50:
+            break;
+        case BCMOLT_GPIO_PIN_PIN51:
+            break;
+        case BCMOLT_GPIO_PIN_PIN52:
+            break;
+        case BCMOLT_GPIO_PIN_PIN53:
+            break;
+        case BCMOLT_GPIO_PIN_PIN54:
+            break;
+        case BCMOLT_GPIO_PIN_PIN55:
+            break;
+        case BCMOLT_GPIO_PIN_PIN56:
+            break;
+        case BCMOLT_GPIO_PIN_PIN57:
+            break;
+        case BCMOLT_GPIO_PIN_PIN58:
+            break;
+        case BCMOLT_GPIO_PIN_PIN59:
+            break;
+        case BCMOLT_GPIO_PIN_PIN60:
+            break;
+        case BCMOLT_GPIO_PIN_PIN61:
+            break;
+        case BCMOLT_GPIO_PIN_PIN62:
+            break;
+        case BCMOLT_GPIO_PIN_PIN63:
+            break;
+        case BCMOLT_GPIO_PIN_PIN64:
+            break;
+        case BCMOLT_GPIO_PIN_PIN65:
+            break;
+        case BCMOLT_GPIO_PIN_PIN66:
+            break;
+        case BCMOLT_GPIO_PIN_PIN67:
+            break;
+        case BCMOLT_GPIO_PIN_PIN68:
+            break;
+        case BCMOLT_GPIO_PIN_PIN69:
+            break;
+        case BCMOLT_GPIO_PIN_PIN70:
+            break;
+        case BCMOLT_GPIO_PIN_PIN71:
+            break;
+        case BCMOLT_GPIO_PIN_PIN72:
+            break;
+        case BCMOLT_GPIO_PIN_PIN73:
+            break;
+        case BCMOLT_GPIO_PIN_PIN74:
+            break;
+        case BCMOLT_GPIO_PIN_PIN75:
+            break;
+        case BCMOLT_GPIO_PIN_PIN76:
+            break;
+        case BCMOLT_GPIO_PIN_PIN77:
+            break;
+        case BCMOLT_GPIO_PIN_PIN78:
+            break;
+        case BCMOLT_GPIO_PIN_PIN79:
+            break;
+        case BCMOLT_GPIO_PIN_PIN80:
+            break;
+        case BCMOLT_GPIO_PIN_PIN81:
+            break;
+        case BCMOLT_GPIO_PIN_PIN82:
+            break;
+        case BCMOLT_GPIO_PIN_PIN83:
+            break;
+        case BCMOLT_GPIO_PIN_PIN84:
+            break;
+        case BCMOLT_GPIO_PIN_PIN85:
+            break;
+        case BCMOLT_GPIO_PIN_PIN86:
+            break;
+        case BCMOLT_GPIO_PIN_PIN87:
+            break;
+        case BCMOLT_GPIO_PIN_PIN88:
+            break;
+        case BCMOLT_GPIO_PIN_PIN89:
+            break;
+        case BCMOLT_GPIO_PIN_PIN90:
+            break;
+        case BCMOLT_GPIO_PIN_PIN91:
+            break;
+        case BCMOLT_GPIO_PIN_PIN92:
+            break;
+        case BCMOLT_GPIO_PIN_PIN93:
+            break;
+        case BCMOLT_GPIO_PIN_PIN94:
+            break;
+        case BCMOLT_GPIO_PIN_PIN95:
+            break;
+        case BCMOLT_GPIO_PIN_PIN96:
+            break;
+        case BCMOLT_GPIO_PIN_PIN97:
+            break;
+        case BCMOLT_GPIO_PIN_PIN98:
+            break;
+        case BCMOLT_GPIO_PIN_PIN99:
+            break;
+        case BCMOLT_GPIO_PIN_PIN100:
+            break;
+        case BCMOLT_GPIO_PIN_PIN101:
+            break;
+        case BCMOLT_GPIO_PIN_PIN102:
+            break;
+        case BCMOLT_GPIO_PIN_PIN103:
+            break;
+        case BCMOLT_GPIO_PIN_PIN104:
+            break;
+        case BCMOLT_GPIO_PIN_PIN105:
+            break;
+        case BCMOLT_GPIO_PIN_PIN106:
+            break;
+        case BCMOLT_GPIO_PIN_UNCONFIGURED:
+            break;
+        default:
+            return BCMOS_FALSE;
+    }
+
+    switch (this->gpio_output_polarity)
+    {
+        case BCMOLT_GPIO_POLARITY_ACTIVE_LOW:
+            break;
+        case BCMOLT_GPIO_POLARITY_ACTIVE_HIGH:
+            break;
+        default:
+            return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_u8_list_u16_set_default(bcmolt_u8_list_u16 *this)
+{
+    this->len = 0;
+    this->val = NULL;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_u8_list_u16_pack(const bcmolt_u8_list_u16 *this, bcmolt_buf *buf)
+{
+    if (!bcmolt_buf_write_u16(buf, this->len))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if ((this->len > 0) && (this->val == NULL))
+    {
+        bcmos_trace(BCMOS_TRACE_LEVEL_ERROR, "Error: list field \"val\" of struct \"bcmolt_u8_list_u16\" is uninitialized (NULL).  You must allocate memory for this pointer before sending/receiving the message.\n");
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_write(buf, this->val, this->len))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_u8_list_u16_get_packed_length(const bcmolt_u8_list_u16 *this)
+{
+    return 2 + this->len;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_u8_list_u16_unpack(bcmolt_u8_list_u16 *this, bcmolt_buf *buf, void **extra_mem)
+{
+    if (!bcmolt_buf_read_u16(buf, &this->len))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if ((this->len > 0) && (this->val == NULL))
+    {
+        if (extra_mem == NULL)
+        {
+            bcmos_trace(BCMOS_TRACE_LEVEL_ERROR, "Error: list field \"val\" of struct \"bcmolt_u8_list_u16\" is uninitialized (NULL).  You must allocate memory for this pointer before sending/receiving the message.\n");
+            return BCMOS_FALSE;
+        }
+        else
+        {
+            this->val = (uint8_t *) *extra_mem;
+            *extra_mem = ((uint8_t *) *extra_mem) + BCMOS_ROUND_TO_WORD(this->len * sizeof(uint8_t));
+        }
+    }
+
+    if (!bcmolt_buf_read(buf, this->val, this->len))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_u8_list_u16_scan(bcmolt_buf *packed, uint32_t *extra_mem)
+{
+    uint16_t len;
+    if (!bcmolt_buf_read_u16(packed, &len))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *extra_mem += BCMOS_ROUND_TO_WORD(sizeof(uint8_t) * len);
+    if (!bcmolt_buf_skip(packed, len * 1))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_u8_list_u16_bounds_check(const bcmolt_u8_list_u16 *this)
+{
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_ethernet_frame_masked_set_default(bcmolt_ethernet_frame_masked *this)
+{
+    this->frame_octets.len = 0;
+    this->frame_octets.val = NULL;
+    this->mask_octets.len = 0;
+    this->mask_octets.val = NULL;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_ethernet_frame_masked_pack(const bcmolt_ethernet_frame_masked *this, bcmolt_buf *buf)
+{
+    if (!bcmolt_u8_list_u16_pack(&this->frame_octets, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_u8_list_u16_pack(&this->mask_octets, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_ethernet_frame_masked_get_packed_length(const bcmolt_ethernet_frame_masked *this)
+{
+    return bcmolt_u8_list_u16_get_packed_length(&this->frame_octets) + bcmolt_u8_list_u16_get_packed_length(&this->mask_octets);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_ethernet_frame_masked_unpack(bcmolt_ethernet_frame_masked *this, bcmolt_buf *buf, void **extra_mem)
+{
+    if (!bcmolt_u8_list_u16_unpack(&this->frame_octets, buf, extra_mem))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_u8_list_u16_unpack(&this->mask_octets, buf, extra_mem))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_ethernet_frame_masked_scan(bcmolt_buf *packed, uint32_t *extra_mem)
+{
+    if (!bcmolt_u8_list_u16_scan(packed, extra_mem))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_u8_list_u16_scan(packed, extra_mem))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_ethernet_frame_masked_bounds_check(const bcmolt_ethernet_frame_masked *this)
+{
+    if (!bcmolt_u8_list_u16_bounds_check(&this->frame_octets))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_u8_list_u16_bounds_check(&this->mask_octets))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_ethernet_frame_unmasked_set_default(bcmolt_ethernet_frame_unmasked *this)
+{
+    this->frame_octets.len = 0;
+    this->frame_octets.val = NULL;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_ethernet_frame_unmasked_pack(const bcmolt_ethernet_frame_unmasked *this, bcmolt_buf *buf)
+{
+    if (!bcmolt_u8_list_u16_pack(&this->frame_octets, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_ethernet_frame_unmasked_get_packed_length(const bcmolt_ethernet_frame_unmasked *this)
+{
+    return bcmolt_u8_list_u16_get_packed_length(&this->frame_octets);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_ethernet_frame_unmasked_unpack(bcmolt_ethernet_frame_unmasked *this, bcmolt_buf *buf, void **extra_mem)
+{
+    if (!bcmolt_u8_list_u16_unpack(&this->frame_octets, buf, extra_mem))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_ethernet_frame_unmasked_scan(bcmolt_buf *packed, uint32_t *extra_mem)
+{
+    if (!bcmolt_u8_list_u16_scan(packed, extra_mem))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_ethernet_frame_unmasked_bounds_check(const bcmolt_ethernet_frame_unmasked *this)
+{
+    if (!bcmolt_u8_list_u16_bounds_check(&this->frame_octets))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_extended_guard_time_set_default(bcmolt_extended_guard_time *this)
+{
+    this->additional_preburst_guard_time = 0;
+    this->additional_postburst_guard_time = 0;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_extended_guard_time_pack(const bcmolt_extended_guard_time *this, bcmolt_buf *buf)
+{
+    if (!bcmolt_buf_write_u32(buf, this->additional_preburst_guard_time))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_write_u32(buf, this->additional_postburst_guard_time))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_extended_guard_time_unpack(bcmolt_extended_guard_time *this, bcmolt_buf *buf, void **extra_mem)
+{
+    if (!bcmolt_buf_read_u32(buf, &this->additional_preburst_guard_time))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_read_u32(buf, &this->additional_postburst_guard_time))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_extended_guard_time_scan(bcmolt_buf *packed, uint32_t *extra_mem)
+{
+    (void)extra_mem;
+    return bcmolt_buf_skip(packed, 8);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_extended_guard_time_bounds_check(const bcmolt_extended_guard_time *this)
+{
+    if (this->additional_preburst_guard_time > 500)
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (this->additional_postburst_guard_time > 500)
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_firmware_sw_version_set_default(bcmolt_firmware_sw_version *this)
+{
+    this->major = 0;
+    this->minor = 0;
+    this->revision = 0;
+    this->model = 0;
+    memset(this->build_time, 0, 32);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_firmware_sw_version_pack(const bcmolt_firmware_sw_version *this, bcmolt_buf *buf)
+{
+    if (!bcmolt_buf_write_u8(buf, this->major))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_write_u8(buf, this->minor))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_write_u8(buf, this->revision))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_write_u32(buf, this->model))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_write(buf, this->build_time, 32))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_firmware_sw_version_unpack(bcmolt_firmware_sw_version *this, bcmolt_buf *buf, void **extra_mem)
+{
+    if (!bcmolt_buf_read_u8(buf, &this->major))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_read_u8(buf, &this->minor))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_read_u8(buf, &this->revision))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_read_u32(buf, &this->model))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_read(buf, this->build_time, 32))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_firmware_sw_version_scan(bcmolt_buf *packed, uint32_t *extra_mem)
+{
+    (void)extra_mem;
+    return bcmolt_buf_skip(packed, 39);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_firmware_sw_version_bounds_check(const bcmolt_firmware_sw_version *this)
+{
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_gem_port_configuration_set_default(bcmolt_gem_port_configuration *this)
+{
+    this->direction = BCMOLT_GEM_PORT_DIRECTION_DOWNSTREAM;
+    this->type = BCMOLT_GEM_PORT_TYPE_UNICAST;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gem_port_configuration_pack(const bcmolt_gem_port_configuration *this, bcmolt_buf *buf)
+{
+    if (!bcmolt_gem_port_direction_pack(this->direction, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_gem_port_type_pack(this->type, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gem_port_configuration_unpack(bcmolt_gem_port_configuration *this, bcmolt_buf *buf, void **extra_mem)
+{
+    if (!bcmolt_gem_port_direction_unpack(&this->direction, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_gem_port_type_unpack(&this->type, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gem_port_configuration_scan(bcmolt_buf *packed, uint32_t *extra_mem)
+{
+    (void)extra_mem;
+    return bcmolt_buf_skip(packed, 2);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gem_port_configuration_bounds_check(const bcmolt_gem_port_configuration *this)
+{
+    switch (this->direction)
+    {
+        case BCMOLT_GEM_PORT_DIRECTION_DOWNSTREAM:
+            break;
+        case BCMOLT_GEM_PORT_DIRECTION_UPSTREAM:
+            break;
+        case BCMOLT_GEM_PORT_DIRECTION_BIDIRECTIONAL:
+            break;
+        default:
+            return BCMOS_FALSE;
+    }
+
+    switch (this->type)
+    {
+        case BCMOLT_GEM_PORT_TYPE_UNICAST:
+            break;
+        case BCMOLT_GEM_PORT_TYPE_MULTICAST:
+            break;
+        default:
+            return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_gpon_alloc_with_state_set_default(bcmolt_gpon_alloc_with_state *this)
+{
+    this->alloc_id = (bcmolt_gpon_alloc_id) 0;
+    this->state = BCMOLT_ALLOC_STATE_NOT_CONFIGURED;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_alloc_with_state_pack(const bcmolt_gpon_alloc_with_state *this, bcmolt_buf *buf)
+{
+    if (!bcmolt_buf_write_u16(buf, (uint16_t) this->alloc_id))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_alloc_state_pack(this->state, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_alloc_with_state_unpack(bcmolt_gpon_alloc_with_state *this, bcmolt_buf *buf, void **extra_mem)
+{
+    if (!bcmolt_buf_read_u16(buf, (uint16_t *) &this->alloc_id))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_alloc_state_unpack(&this->state, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_alloc_with_state_scan(bcmolt_buf *packed, uint32_t *extra_mem)
+{
+    (void)extra_mem;
+    return bcmolt_buf_skip(packed, 3);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_alloc_with_state_bounds_check(const bcmolt_gpon_alloc_with_state *this)
+{
+    if (this->alloc_id > (bcmolt_gpon_alloc_id) 4095)
+    {
+        return BCMOS_FALSE;
+    }
+
+    switch (this->state)
+    {
+        case BCMOLT_ALLOC_STATE_NOT_CONFIGURED:
+            break;
+        case BCMOLT_ALLOC_STATE_INACTIVE:
+            break;
+        case BCMOLT_ALLOC_STATE_PROCESSING:
+            break;
+        case BCMOLT_ALLOC_STATE_ACTIVE:
+            break;
+        default:
+            return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_gpon_alloc_with_state_list_u16_max_32_set_default(bcmolt_gpon_alloc_with_state_list_u16_max_32 *this)
+{
+    this->len = 0;
+    this->val = NULL;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_alloc_with_state_list_u16_max_32_pack(const bcmolt_gpon_alloc_with_state_list_u16_max_32 *this, bcmolt_buf *buf)
+{
+    uint16_t i0;
+    if (!bcmolt_buf_write_u16(buf, this->len))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if ((this->len > 0) && (this->val == NULL))
+    {
+        bcmos_trace(BCMOS_TRACE_LEVEL_ERROR, "Error: list field \"val\" of struct \"bcmolt_gpon_alloc_with_state_list_u16_max_32\" is uninitialized (NULL).  You must allocate memory for this pointer before sending/receiving the message.\n");
+        return BCMOS_FALSE;
+    }
+
+    if (this->len > 32)
+    {
+        return BCMOS_FALSE;
+    }
+
+    for (i0 = 0; i0 < this->len; i0++)
+    {
+        if (!bcmolt_gpon_alloc_with_state_pack(&this->val[i0], buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_gpon_alloc_with_state_list_u16_max_32_get_packed_length(const bcmolt_gpon_alloc_with_state_list_u16_max_32 *this)
+{
+    return 2 + (3 * this->len);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_alloc_with_state_list_u16_max_32_unpack(bcmolt_gpon_alloc_with_state_list_u16_max_32 *this, bcmolt_buf *buf, void **extra_mem)
+{
+    uint16_t i0;
+    if (!bcmolt_buf_read_u16(buf, &this->len))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if ((this->len > 0) && (this->val == NULL))
+    {
+        if (extra_mem == NULL)
+        {
+            bcmos_trace(BCMOS_TRACE_LEVEL_ERROR, "Error: list field \"val\" of struct \"bcmolt_gpon_alloc_with_state_list_u16_max_32\" is uninitialized (NULL).  You must allocate memory for this pointer before sending/receiving the message.\n");
+            return BCMOS_FALSE;
+        }
+        else
+        {
+            this->val = (bcmolt_gpon_alloc_with_state *) *extra_mem;
+            *extra_mem = ((uint8_t *) *extra_mem) + BCMOS_ROUND_TO_WORD(this->len * sizeof(bcmolt_gpon_alloc_with_state));
+        }
+    }
+
+    if (this->len > 32)
+    {
+        return BCMOS_FALSE;
+    }
+
+    for (i0 = 0; i0 < this->len; i0++)
+    {
+        if (!bcmolt_gpon_alloc_with_state_unpack(&this->val[i0], buf, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_alloc_with_state_list_u16_max_32_scan(bcmolt_buf *packed, uint32_t *extra_mem)
+{
+    uint16_t len;
+    if (!bcmolt_buf_read_u16(packed, &len))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *extra_mem += BCMOS_ROUND_TO_WORD(sizeof(bcmolt_gpon_alloc_with_state) * len);
+    if (!bcmolt_buf_skip(packed, len * 3))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_alloc_with_state_list_u16_max_32_bounds_check(const bcmolt_gpon_alloc_with_state_list_u16_max_32 *this)
+{
+    if (this->len > 32)
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_gpon_debug_flow_config_set_default(bcmolt_gpon_debug_flow_config *this)
+{
+    this->untagged_flow = BCMOLT_CONTROL_STATE_DISABLE;
+    this->untagged_vid = (bcmolt_vlan_id) 0;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_debug_flow_config_pack(const bcmolt_gpon_debug_flow_config *this, bcmolt_buf *buf)
+{
+    if (!bcmolt_control_state_pack(this->untagged_flow, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_write_u16(buf, (uint16_t) this->untagged_vid))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_debug_flow_config_unpack(bcmolt_gpon_debug_flow_config *this, bcmolt_buf *buf, void **extra_mem)
+{
+    if (!bcmolt_control_state_unpack(&this->untagged_flow, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_read_u16(buf, (uint16_t *) &this->untagged_vid))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_debug_flow_config_scan(bcmolt_buf *packed, uint32_t *extra_mem)
+{
+    (void)extra_mem;
+    return bcmolt_buf_skip(packed, 3);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_debug_flow_config_bounds_check(const bcmolt_gpon_debug_flow_config *this)
+{
+    switch (this->untagged_flow)
+    {
+        case BCMOLT_CONTROL_STATE_DISABLE:
+            break;
+        case BCMOLT_CONTROL_STATE_ENABLE:
+            break;
+        default:
+            return BCMOS_FALSE;
+    }
+
+    if (this->untagged_vid > (bcmolt_vlan_id) 4095)
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_gpon_gem_id_list_u8_max_16_set_default(bcmolt_gpon_gem_id_list_u8_max_16 *this)
+{
+    this->len = 0;
+    this->val = NULL;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_gem_id_list_u8_max_16_pack(const bcmolt_gpon_gem_id_list_u8_max_16 *this, bcmolt_buf *buf)
+{
+    uint8_t i0;
+    if (!bcmolt_buf_write_u8(buf, this->len))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if ((this->len > 0) && (this->val == NULL))
+    {
+        bcmos_trace(BCMOS_TRACE_LEVEL_ERROR, "Error: list field \"val\" of struct \"bcmolt_gpon_gem_id_list_u8_max_16\" is uninitialized (NULL).  You must allocate memory for this pointer before sending/receiving the message.\n");
+        return BCMOS_FALSE;
+    }
+
+    if (this->len > 16)
+    {
+        return BCMOS_FALSE;
+    }
+
+    for (i0 = 0; i0 < this->len; i0++)
+    {
+        if (!bcmolt_buf_write_u16(buf, (uint16_t) this->val[i0]))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_gpon_gem_id_list_u8_max_16_get_packed_length(const bcmolt_gpon_gem_id_list_u8_max_16 *this)
+{
+    return 1 + (2 * this->len);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_gem_id_list_u8_max_16_unpack(bcmolt_gpon_gem_id_list_u8_max_16 *this, bcmolt_buf *buf, void **extra_mem)
+{
+    uint8_t i0;
+    if (!bcmolt_buf_read_u8(buf, &this->len))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if ((this->len > 0) && (this->val == NULL))
+    {
+        if (extra_mem == NULL)
+        {
+            bcmos_trace(BCMOS_TRACE_LEVEL_ERROR, "Error: list field \"val\" of struct \"bcmolt_gpon_gem_id_list_u8_max_16\" is uninitialized (NULL).  You must allocate memory for this pointer before sending/receiving the message.\n");
+            return BCMOS_FALSE;
+        }
+        else
+        {
+            this->val = (bcmolt_gpon_gem_id *) *extra_mem;
+            *extra_mem = ((uint8_t *) *extra_mem) + BCMOS_ROUND_TO_WORD(this->len * sizeof(bcmolt_gpon_gem_id));
+        }
+    }
+
+    if (this->len > 16)
+    {
+        return BCMOS_FALSE;
+    }
+
+    for (i0 = 0; i0 < this->len; i0++)
+    {
+        if (!bcmolt_buf_read_u16(buf, (uint16_t *) &this->val[i0]))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_gem_id_list_u8_max_16_scan(bcmolt_buf *packed, uint32_t *extra_mem)
+{
+    uint8_t len;
+    if (!bcmolt_buf_read_u8(packed, &len))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *extra_mem += BCMOS_ROUND_TO_WORD(sizeof(bcmolt_gpon_gem_id) * len);
+    if (!bcmolt_buf_skip(packed, len * 2))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_gem_id_list_u8_max_16_bounds_check(const bcmolt_gpon_gem_id_list_u8_max_16 *this)
+{
+    if (this->len > 16)
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_gpon_gem_port_with_state_set_default(bcmolt_gpon_gem_port_with_state *this)
+{
+    this->gem_id = (bcmolt_gpon_gem_id) 0;
+    this->state = BCMOLT_GPON_GEM_PORT_STATE_NOT_CONFIGURED;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_gem_port_with_state_pack(const bcmolt_gpon_gem_port_with_state *this, bcmolt_buf *buf)
+{
+    if (!bcmolt_buf_write_u16(buf, (uint16_t) this->gem_id))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_gpon_gem_port_state_pack(this->state, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_gem_port_with_state_unpack(bcmolt_gpon_gem_port_with_state *this, bcmolt_buf *buf, void **extra_mem)
+{
+    if (!bcmolt_buf_read_u16(buf, (uint16_t *) &this->gem_id))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_gpon_gem_port_state_unpack(&this->state, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_gem_port_with_state_scan(bcmolt_buf *packed, uint32_t *extra_mem)
+{
+    (void)extra_mem;
+    return bcmolt_buf_skip(packed, 3);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_gem_port_with_state_bounds_check(const bcmolt_gpon_gem_port_with_state *this)
+{
+    if (this->gem_id > (bcmolt_gpon_gem_id) 4095)
+    {
+        return BCMOS_FALSE;
+    }
+
+    switch (this->state)
+    {
+        case BCMOLT_GPON_GEM_PORT_STATE_NOT_CONFIGURED:
+            break;
+        case BCMOLT_GPON_GEM_PORT_STATE_INACTIVE:
+            break;
+        case BCMOLT_GPON_GEM_PORT_STATE_PROCESSING:
+            break;
+        case BCMOLT_GPON_GEM_PORT_STATE_ACTIVE:
+            break;
+        default:
+            return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_gpon_gem_port_with_state_list_u16_max_128_set_default(bcmolt_gpon_gem_port_with_state_list_u16_max_128 *this)
+{
+    this->len = 0;
+    this->val = NULL;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_gem_port_with_state_list_u16_max_128_pack(const bcmolt_gpon_gem_port_with_state_list_u16_max_128 *this, bcmolt_buf *buf)
+{
+    uint16_t i0;
+    if (!bcmolt_buf_write_u16(buf, this->len))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if ((this->len > 0) && (this->val == NULL))
+    {
+        bcmos_trace(BCMOS_TRACE_LEVEL_ERROR, "Error: list field \"val\" of struct \"bcmolt_gpon_gem_port_with_state_list_u16_max_128\" is uninitialized (NULL).  You must allocate memory for this pointer before sending/receiving the message.\n");
+        return BCMOS_FALSE;
+    }
+
+    if (this->len > 128)
+    {
+        return BCMOS_FALSE;
+    }
+
+    for (i0 = 0; i0 < this->len; i0++)
+    {
+        if (!bcmolt_gpon_gem_port_with_state_pack(&this->val[i0], buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_gpon_gem_port_with_state_list_u16_max_128_get_packed_length(const bcmolt_gpon_gem_port_with_state_list_u16_max_128 *this)
+{
+    return 2 + (3 * this->len);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_gem_port_with_state_list_u16_max_128_unpack(bcmolt_gpon_gem_port_with_state_list_u16_max_128 *this, bcmolt_buf *buf, void **extra_mem)
+{
+    uint16_t i0;
+    if (!bcmolt_buf_read_u16(buf, &this->len))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if ((this->len > 0) && (this->val == NULL))
+    {
+        if (extra_mem == NULL)
+        {
+            bcmos_trace(BCMOS_TRACE_LEVEL_ERROR, "Error: list field \"val\" of struct \"bcmolt_gpon_gem_port_with_state_list_u16_max_128\" is uninitialized (NULL).  You must allocate memory for this pointer before sending/receiving the message.\n");
+            return BCMOS_FALSE;
+        }
+        else
+        {
+            this->val = (bcmolt_gpon_gem_port_with_state *) *extra_mem;
+            *extra_mem = ((uint8_t *) *extra_mem) + BCMOS_ROUND_TO_WORD(this->len * sizeof(bcmolt_gpon_gem_port_with_state));
+        }
+    }
+
+    if (this->len > 128)
+    {
+        return BCMOS_FALSE;
+    }
+
+    for (i0 = 0; i0 < this->len; i0++)
+    {
+        if (!bcmolt_gpon_gem_port_with_state_unpack(&this->val[i0], buf, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_gem_port_with_state_list_u16_max_128_scan(bcmolt_buf *packed, uint32_t *extra_mem)
+{
+    uint16_t len;
+    if (!bcmolt_buf_read_u16(packed, &len))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *extra_mem += BCMOS_ROUND_TO_WORD(sizeof(bcmolt_gpon_gem_port_with_state) * len);
+    if (!bcmolt_buf_skip(packed, len * 3))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_gem_port_with_state_list_u16_max_128_bounds_check(const bcmolt_gpon_gem_port_with_state_list_u16_max_128 *this)
+{
+    if (this->len > 128)
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_gpon_gem_port_with_state_list_u16_max_256_set_default(bcmolt_gpon_gem_port_with_state_list_u16_max_256 *this)
+{
+    this->len = 0;
+    this->val = NULL;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_gem_port_with_state_list_u16_max_256_pack(const bcmolt_gpon_gem_port_with_state_list_u16_max_256 *this, bcmolt_buf *buf)
+{
+    uint16_t i0;
+    if (!bcmolt_buf_write_u16(buf, this->len))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if ((this->len > 0) && (this->val == NULL))
+    {
+        bcmos_trace(BCMOS_TRACE_LEVEL_ERROR, "Error: list field \"val\" of struct \"bcmolt_gpon_gem_port_with_state_list_u16_max_256\" is uninitialized (NULL).  You must allocate memory for this pointer before sending/receiving the message.\n");
+        return BCMOS_FALSE;
+    }
+
+    if (this->len > 256)
+    {
+        return BCMOS_FALSE;
+    }
+
+    for (i0 = 0; i0 < this->len; i0++)
+    {
+        if (!bcmolt_gpon_gem_port_with_state_pack(&this->val[i0], buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_gpon_gem_port_with_state_list_u16_max_256_get_packed_length(const bcmolt_gpon_gem_port_with_state_list_u16_max_256 *this)
+{
+    return 2 + (3 * this->len);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_gem_port_with_state_list_u16_max_256_unpack(bcmolt_gpon_gem_port_with_state_list_u16_max_256 *this, bcmolt_buf *buf, void **extra_mem)
+{
+    uint16_t i0;
+    if (!bcmolt_buf_read_u16(buf, &this->len))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if ((this->len > 0) && (this->val == NULL))
+    {
+        if (extra_mem == NULL)
+        {
+            bcmos_trace(BCMOS_TRACE_LEVEL_ERROR, "Error: list field \"val\" of struct \"bcmolt_gpon_gem_port_with_state_list_u16_max_256\" is uninitialized (NULL).  You must allocate memory for this pointer before sending/receiving the message.\n");
+            return BCMOS_FALSE;
+        }
+        else
+        {
+            this->val = (bcmolt_gpon_gem_port_with_state *) *extra_mem;
+            *extra_mem = ((uint8_t *) *extra_mem) + BCMOS_ROUND_TO_WORD(this->len * sizeof(bcmolt_gpon_gem_port_with_state));
+        }
+    }
+
+    if (this->len > 256)
+    {
+        return BCMOS_FALSE;
+    }
+
+    for (i0 = 0; i0 < this->len; i0++)
+    {
+        if (!bcmolt_gpon_gem_port_with_state_unpack(&this->val[i0], buf, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_gem_port_with_state_list_u16_max_256_scan(bcmolt_buf *packed, uint32_t *extra_mem)
+{
+    uint16_t len;
+    if (!bcmolt_buf_read_u16(packed, &len))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *extra_mem += BCMOS_ROUND_TO_WORD(sizeof(bcmolt_gpon_gem_port_with_state) * len);
+    if (!bcmolt_buf_skip(packed, len * 3))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_gem_port_with_state_list_u16_max_256_bounds_check(const bcmolt_gpon_gem_port_with_state_list_u16_max_256 *this)
+{
+    if (this->len > 256)
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_gpon_iwf_debug_flow_config_set_default(bcmolt_gpon_iwf_debug_flow_config *this)
+{
+    this->learn_untagged_flow_vids = BCMOS_FALSE;
+    this->untagged_flow_shaping_ms_per_sec = 0;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_iwf_debug_flow_config_pack(const bcmolt_gpon_iwf_debug_flow_config *this, bcmolt_buf *buf)
+{
+    if (!bcmolt_buf_write_bool(buf, this->learn_untagged_flow_vids))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_write_u16(buf, this->untagged_flow_shaping_ms_per_sec))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_iwf_debug_flow_config_unpack(bcmolt_gpon_iwf_debug_flow_config *this, bcmolt_buf *buf, void **extra_mem)
+{
+    if (!bcmolt_buf_read_bool(buf, &this->learn_untagged_flow_vids))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_read_u16(buf, &this->untagged_flow_shaping_ms_per_sec))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_iwf_debug_flow_config_scan(bcmolt_buf *packed, uint32_t *extra_mem)
+{
+    (void)extra_mem;
+    return bcmolt_buf_skip(packed, 3);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_iwf_debug_flow_config_bounds_check(const bcmolt_gpon_iwf_debug_flow_config *this)
+{
+    if (this->untagged_flow_shaping_ms_per_sec > 1000)
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_gpon_key_exchange_set_default(bcmolt_gpon_key_exchange *this)
+{
+    this->interval = 10000;
+    this->control = BCMOLT_CONTROL_STATE_DISABLE;
+    this->mode = BCMOLT_KEY_EXCHANGE_MODE_NORMAL;
+    this->encrypted_ports_only = BCMOLT_CONTROL_STATE_ENABLE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_key_exchange_pack(const bcmolt_gpon_key_exchange *this, bcmolt_buf *buf)
+{
+    if (!bcmolt_buf_write_u32(buf, this->interval))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_control_state_pack(this->control, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_key_exchange_mode_pack(this->mode, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_control_state_pack(this->encrypted_ports_only, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_key_exchange_unpack(bcmolt_gpon_key_exchange *this, bcmolt_buf *buf, void **extra_mem)
+{
+    if (!bcmolt_buf_read_u32(buf, &this->interval))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_control_state_unpack(&this->control, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_key_exchange_mode_unpack(&this->mode, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_control_state_unpack(&this->encrypted_ports_only, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_key_exchange_scan(bcmolt_buf *packed, uint32_t *extra_mem)
+{
+    (void)extra_mem;
+    return bcmolt_buf_skip(packed, 7);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_key_exchange_bounds_check(const bcmolt_gpon_key_exchange *this)
+{
+    if (this->interval < 1000)
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (this->interval > 3600000UL)
+    {
+        return BCMOS_FALSE;
+    }
+
+    switch (this->control)
+    {
+        case BCMOLT_CONTROL_STATE_DISABLE:
+            break;
+        case BCMOLT_CONTROL_STATE_ENABLE:
+            break;
+        default:
+            return BCMOS_FALSE;
+    }
+
+    switch (this->mode)
+    {
+        case BCMOLT_KEY_EXCHANGE_MODE_NORMAL:
+            break;
+        case BCMOLT_KEY_EXCHANGE_MODE_ENHANCED:
+            break;
+        default:
+            return BCMOS_FALSE;
+    }
+
+    switch (this->encrypted_ports_only)
+    {
+        case BCMOLT_CONTROL_STATE_DISABLE:
+            break;
+        case BCMOLT_CONTROL_STATE_ENABLE:
+            break;
+        default:
+            return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_gpon_mac_table_scan_result_set_default(bcmolt_gpon_mac_table_scan_result *this)
+{
+    this->vlan = (bcmolt_vlan_id) 0;
+    this->flow_id = (bcmolt_flow_id) 0;
+    this->stat = BCMOS_FALSE;
+    this->gem_port_id = (bcmolt_gpon_gem_id) 0;
+    this->onu_id = (bcmolt_gpon_onu_id) 0;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_mac_table_scan_result_pack(const bcmolt_gpon_mac_table_scan_result *this, bcmolt_buf *buf)
+{
+    if (!bcmolt_buf_write_u16(buf, (uint16_t) this->vlan))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_write_u16(buf, (uint16_t) this->flow_id))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_write_bool(buf, this->stat))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_write_u16(buf, (uint16_t) this->gem_port_id))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_write_u16(buf, (uint16_t) this->onu_id))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_mac_table_scan_result_unpack(bcmolt_gpon_mac_table_scan_result *this, bcmolt_buf *buf, void **extra_mem)
+{
+    if (!bcmolt_buf_read_u16(buf, (uint16_t *) &this->vlan))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_read_u16(buf, (uint16_t *) &this->flow_id))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_read_bool(buf, &this->stat))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_read_u16(buf, (uint16_t *) &this->gem_port_id))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_read_u16(buf, (uint16_t *) &this->onu_id))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_mac_table_scan_result_scan(bcmolt_buf *packed, uint32_t *extra_mem)
+{
+    (void)extra_mem;
+    return bcmolt_buf_skip(packed, 9);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_mac_table_scan_result_bounds_check(const bcmolt_gpon_mac_table_scan_result *this)
+{
+    if (this->flow_id > (bcmolt_flow_id) 4095)
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (this->gem_port_id > (bcmolt_gpon_gem_id) 4095)
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (this->onu_id > (bcmolt_gpon_onu_id) 127)
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_gpon_mac_table_scan_result_list_u16_set_default(bcmolt_gpon_mac_table_scan_result_list_u16 *this)
+{
+    this->len = 0;
+    this->val = NULL;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_mac_table_scan_result_list_u16_pack(const bcmolt_gpon_mac_table_scan_result_list_u16 *this, bcmolt_buf *buf)
+{
+    uint16_t i0;
+    if (!bcmolt_buf_write_u16(buf, this->len))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if ((this->len > 0) && (this->val == NULL))
+    {
+        bcmos_trace(BCMOS_TRACE_LEVEL_ERROR, "Error: list field \"val\" of struct \"bcmolt_gpon_mac_table_scan_result_list_u16\" is uninitialized (NULL).  You must allocate memory for this pointer before sending/receiving the message.\n");
+        return BCMOS_FALSE;
+    }
+
+    for (i0 = 0; i0 < this->len; i0++)
+    {
+        if (!bcmolt_gpon_mac_table_scan_result_pack(&this->val[i0], buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_gpon_mac_table_scan_result_list_u16_get_packed_length(const bcmolt_gpon_mac_table_scan_result_list_u16 *this)
+{
+    return 2 + (9 * this->len);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_mac_table_scan_result_list_u16_unpack(bcmolt_gpon_mac_table_scan_result_list_u16 *this, bcmolt_buf *buf, void **extra_mem)
+{
+    uint16_t i0;
+    if (!bcmolt_buf_read_u16(buf, &this->len))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if ((this->len > 0) && (this->val == NULL))
+    {
+        if (extra_mem == NULL)
+        {
+            bcmos_trace(BCMOS_TRACE_LEVEL_ERROR, "Error: list field \"val\" of struct \"bcmolt_gpon_mac_table_scan_result_list_u16\" is uninitialized (NULL).  You must allocate memory for this pointer before sending/receiving the message.\n");
+            return BCMOS_FALSE;
+        }
+        else
+        {
+            this->val = (bcmolt_gpon_mac_table_scan_result *) *extra_mem;
+            *extra_mem = ((uint8_t *) *extra_mem) + BCMOS_ROUND_TO_WORD(this->len * sizeof(bcmolt_gpon_mac_table_scan_result));
+        }
+    }
+
+    for (i0 = 0; i0 < this->len; i0++)
+    {
+        if (!bcmolt_gpon_mac_table_scan_result_unpack(&this->val[i0], buf, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_mac_table_scan_result_list_u16_scan(bcmolt_buf *packed, uint32_t *extra_mem)
+{
+    uint16_t len;
+    if (!bcmolt_buf_read_u16(packed, &len))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *extra_mem += BCMOS_ROUND_TO_WORD(sizeof(bcmolt_gpon_mac_table_scan_result) * len);
+    if (!bcmolt_buf_skip(packed, len * 9))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_mac_table_scan_result_list_u16_bounds_check(const bcmolt_gpon_mac_table_scan_result_list_u16 *this)
+{
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_gpon_ni_debug_set_default(bcmolt_gpon_ni_debug *this)
+{
+    this->number_of_gem_ports_per_onu = 64;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_ni_debug_pack(const bcmolt_gpon_ni_debug *this, bcmolt_buf *buf)
+{
+    if (!bcmolt_buf_write_u16(buf, this->number_of_gem_ports_per_onu))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_ni_debug_unpack(bcmolt_gpon_ni_debug *this, bcmolt_buf *buf, void **extra_mem)
+{
+    if (!bcmolt_buf_read_u16(buf, &this->number_of_gem_ports_per_onu))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_ni_debug_scan(bcmolt_buf *packed, uint32_t *extra_mem)
+{
+    (void)extra_mem;
+    return bcmolt_buf_skip(packed, 2);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_ni_debug_bounds_check(const bcmolt_gpon_ni_debug *this)
+{
+    if (this->number_of_gem_ports_per_onu < 8)
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (this->number_of_gem_ports_per_onu > 256)
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_gpon_onu_activation_set_default(bcmolt_gpon_onu_activation *this)
+{
+    this->key_exchange = BCMOLT_CONTROL_STATE_DISABLE;
+    this->password_authentication = BCMOLT_CONTROL_STATE_ENABLE;
+    this->fail_due_to_password_authentication_failure = BCMOLT_CONTROL_STATE_ENABLE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_activation_pack(const bcmolt_gpon_onu_activation *this, bcmolt_buf *buf)
+{
+    if (!bcmolt_control_state_pack(this->key_exchange, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_control_state_pack(this->password_authentication, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_control_state_pack(this->fail_due_to_password_authentication_failure, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_activation_unpack(bcmolt_gpon_onu_activation *this, bcmolt_buf *buf, void **extra_mem)
+{
+    if (!bcmolt_control_state_unpack(&this->key_exchange, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_control_state_unpack(&this->password_authentication, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_control_state_unpack(&this->fail_due_to_password_authentication_failure, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_activation_scan(bcmolt_buf *packed, uint32_t *extra_mem)
+{
+    (void)extra_mem;
+    return bcmolt_buf_skip(packed, 3);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_activation_bounds_check(const bcmolt_gpon_onu_activation *this)
+{
+    switch (this->key_exchange)
+    {
+        case BCMOLT_CONTROL_STATE_DISABLE:
+            break;
+        case BCMOLT_CONTROL_STATE_ENABLE:
+            break;
+        default:
+            return BCMOS_FALSE;
+    }
+
+    switch (this->password_authentication)
+    {
+        case BCMOLT_CONTROL_STATE_DISABLE:
+            break;
+        case BCMOLT_CONTROL_STATE_ENABLE:
+            break;
+        default:
+            return BCMOS_FALSE;
+    }
+
+    switch (this->fail_due_to_password_authentication_failure)
+    {
+        case BCMOLT_CONTROL_STATE_DISABLE:
+            break;
+        case BCMOLT_CONTROL_STATE_ENABLE:
+            break;
+        default:
+            return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_gpon_onu_alarm_state_set_default(bcmolt_gpon_onu_alarm_state *this)
+{
+    this->losi = BCMOLT_STATUS_OFF;
+    this->lofi = BCMOLT_STATUS_OFF;
+    this->loami = BCMOLT_STATUS_OFF;
+    this->dgi = BCMOLT_STATUS_OFF;
+    this->tiwi = BCMOLT_STATUS_OFF;
+    this->dowi = BCMOLT_STATUS_OFF;
+    this->sufi = BCMOLT_STATUS_OFF;
+    this->sfi = BCMOLT_STATUS_OFF;
+    this->sdi = BCMOLT_STATUS_OFF;
+    this->dfi = BCMOLT_STATUS_OFF;
+    this->loai = BCMOLT_STATUS_OFF;
+    this->loki = BCMOLT_STATUS_OFF;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_alarm_state_pack(const bcmolt_gpon_onu_alarm_state *this, bcmolt_buf *buf)
+{
+    if (!bcmolt_status_pack(this->losi, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_status_pack(this->lofi, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_status_pack(this->loami, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_status_pack(this->dgi, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_status_pack(this->tiwi, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_status_pack(this->dowi, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_status_pack(this->sufi, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_status_pack(this->sfi, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_status_pack(this->sdi, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_status_pack(this->dfi, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_status_pack(this->loai, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_status_pack(this->loki, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_alarm_state_unpack(bcmolt_gpon_onu_alarm_state *this, bcmolt_buf *buf, void **extra_mem)
+{
+    if (!bcmolt_status_unpack(&this->losi, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_status_unpack(&this->lofi, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_status_unpack(&this->loami, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_status_unpack(&this->dgi, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_status_unpack(&this->tiwi, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_status_unpack(&this->dowi, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_status_unpack(&this->sufi, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_status_unpack(&this->sfi, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_status_unpack(&this->sdi, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_status_unpack(&this->dfi, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_status_unpack(&this->loai, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_status_unpack(&this->loki, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_alarm_state_scan(bcmolt_buf *packed, uint32_t *extra_mem)
+{
+    (void)extra_mem;
+    return bcmolt_buf_skip(packed, 12);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_alarm_state_bounds_check(const bcmolt_gpon_onu_alarm_state *this)
+{
+    switch (this->losi)
+    {
+        case BCMOLT_STATUS_OFF:
+            break;
+        case BCMOLT_STATUS_ON:
+            break;
+        case BCMOLT_STATUS_NO_CHANGE:
+            break;
+        default:
+            return BCMOS_FALSE;
+    }
+
+    switch (this->lofi)
+    {
+        case BCMOLT_STATUS_OFF:
+            break;
+        case BCMOLT_STATUS_ON:
+            break;
+        case BCMOLT_STATUS_NO_CHANGE:
+            break;
+        default:
+            return BCMOS_FALSE;
+    }
+
+    switch (this->loami)
+    {
+        case BCMOLT_STATUS_OFF:
+            break;
+        case BCMOLT_STATUS_ON:
+            break;
+        case BCMOLT_STATUS_NO_CHANGE:
+            break;
+        default:
+            return BCMOS_FALSE;
+    }
+
+    switch (this->dgi)
+    {
+        case BCMOLT_STATUS_OFF:
+            break;
+        case BCMOLT_STATUS_ON:
+            break;
+        case BCMOLT_STATUS_NO_CHANGE:
+            break;
+        default:
+            return BCMOS_FALSE;
+    }
+
+    switch (this->tiwi)
+    {
+        case BCMOLT_STATUS_OFF:
+            break;
+        case BCMOLT_STATUS_ON:
+            break;
+        case BCMOLT_STATUS_NO_CHANGE:
+            break;
+        default:
+            return BCMOS_FALSE;
+    }
+
+    switch (this->dowi)
+    {
+        case BCMOLT_STATUS_OFF:
+            break;
+        case BCMOLT_STATUS_ON:
+            break;
+        case BCMOLT_STATUS_NO_CHANGE:
+            break;
+        default:
+            return BCMOS_FALSE;
+    }
+
+    switch (this->sufi)
+    {
+        case BCMOLT_STATUS_OFF:
+            break;
+        case BCMOLT_STATUS_ON:
+            break;
+        case BCMOLT_STATUS_NO_CHANGE:
+            break;
+        default:
+            return BCMOS_FALSE;
+    }
+
+    switch (this->sfi)
+    {
+        case BCMOLT_STATUS_OFF:
+            break;
+        case BCMOLT_STATUS_ON:
+            break;
+        case BCMOLT_STATUS_NO_CHANGE:
+            break;
+        default:
+            return BCMOS_FALSE;
+    }
+
+    switch (this->sdi)
+    {
+        case BCMOLT_STATUS_OFF:
+            break;
+        case BCMOLT_STATUS_ON:
+            break;
+        case BCMOLT_STATUS_NO_CHANGE:
+            break;
+        default:
+            return BCMOS_FALSE;
+    }
+
+    switch (this->dfi)
+    {
+        case BCMOLT_STATUS_OFF:
+            break;
+        case BCMOLT_STATUS_ON:
+            break;
+        case BCMOLT_STATUS_NO_CHANGE:
+            break;
+        default:
+            return BCMOS_FALSE;
+    }
+
+    switch (this->loai)
+    {
+        case BCMOLT_STATUS_OFF:
+            break;
+        case BCMOLT_STATUS_ON:
+            break;
+        case BCMOLT_STATUS_NO_CHANGE:
+            break;
+        default:
+            return BCMOS_FALSE;
+    }
+
+    switch (this->loki)
+    {
+        case BCMOLT_STATUS_OFF:
+            break;
+        case BCMOLT_STATUS_ON:
+            break;
+        case BCMOLT_STATUS_NO_CHANGE:
+            break;
+        default:
+            return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_gpon_onu_alarms_set_default(bcmolt_gpon_onu_alarms *this)
+{
+    this->losi = BCMOLT_STATUS_OFF;
+    this->lofi = BCMOLT_STATUS_OFF;
+    this->loami = BCMOLT_STATUS_OFF;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_alarms_pack(const bcmolt_gpon_onu_alarms *this, bcmolt_buf *buf)
+{
+    if (!bcmolt_status_pack(this->losi, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_status_pack(this->lofi, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_status_pack(this->loami, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_alarms_unpack(bcmolt_gpon_onu_alarms *this, bcmolt_buf *buf, void **extra_mem)
+{
+    if (!bcmolt_status_unpack(&this->losi, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_status_unpack(&this->lofi, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_status_unpack(&this->loami, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_alarms_scan(bcmolt_buf *packed, uint32_t *extra_mem)
+{
+    (void)extra_mem;
+    return bcmolt_buf_skip(packed, 3);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_alarms_bounds_check(const bcmolt_gpon_onu_alarms *this)
+{
+    switch (this->losi)
+    {
+        case BCMOLT_STATUS_OFF:
+            break;
+        case BCMOLT_STATUS_ON:
+            break;
+        case BCMOLT_STATUS_NO_CHANGE:
+            break;
+        default:
+            return BCMOS_FALSE;
+    }
+
+    switch (this->lofi)
+    {
+        case BCMOLT_STATUS_OFF:
+            break;
+        case BCMOLT_STATUS_ON:
+            break;
+        case BCMOLT_STATUS_NO_CHANGE:
+            break;
+        default:
+            return BCMOS_FALSE;
+    }
+
+    switch (this->loami)
+    {
+        case BCMOLT_STATUS_OFF:
+            break;
+        case BCMOLT_STATUS_ON:
+            break;
+        case BCMOLT_STATUS_NO_CHANGE:
+            break;
+        default:
+            return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_gpon_onu_alarms_thresholds_set_default(bcmolt_gpon_onu_alarms_thresholds *this)
+{
+    this->losi = 4;
+    this->lofi = 4;
+    this->loami = 3;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_alarms_thresholds_pack(const bcmolt_gpon_onu_alarms_thresholds *this, bcmolt_buf *buf)
+{
+    if (!bcmolt_buf_write_u8(buf, this->losi))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_write_u8(buf, this->lofi))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_write_u8(buf, this->loami))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_alarms_thresholds_unpack(bcmolt_gpon_onu_alarms_thresholds *this, bcmolt_buf *buf, void **extra_mem)
+{
+    if (!bcmolt_buf_read_u8(buf, &this->losi))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_read_u8(buf, &this->lofi))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_read_u8(buf, &this->loami))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_alarms_thresholds_scan(bcmolt_buf *packed, uint32_t *extra_mem)
+{
+    (void)extra_mem;
+    return bcmolt_buf_skip(packed, 3);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_alarms_thresholds_bounds_check(const bcmolt_gpon_onu_alarms_thresholds *this)
+{
+    if (this->losi < 1)
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (this->losi > 15)
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (this->lofi < 1)
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (this->lofi > 15)
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (this->loami < 1)
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (this->loami > 15)
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_gpon_onu_eqd_set_default(bcmolt_gpon_onu_eqd *this)
+{
+    this->onu_id = (bcmolt_gpon_onu_id) 0;
+    this->eqd = 0;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_eqd_pack(const bcmolt_gpon_onu_eqd *this, bcmolt_buf *buf)
+{
+    if (!bcmolt_buf_write_u16(buf, (uint16_t) this->onu_id))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_write_u32(buf, this->eqd))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_eqd_unpack(bcmolt_gpon_onu_eqd *this, bcmolt_buf *buf, void **extra_mem)
+{
+    if (!bcmolt_buf_read_u16(buf, (uint16_t *) &this->onu_id))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_read_u32(buf, &this->eqd))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_eqd_scan(bcmolt_buf *packed, uint32_t *extra_mem)
+{
+    (void)extra_mem;
+    return bcmolt_buf_skip(packed, 6);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_eqd_bounds_check(const bcmolt_gpon_onu_eqd *this)
+{
+    if (this->onu_id > (bcmolt_gpon_onu_id) 127)
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_gpon_onu_eqd_list_u32_set_default(bcmolt_gpon_onu_eqd_list_u32 *this)
+{
+    this->len = 0;
+    this->val = NULL;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_eqd_list_u32_pack(const bcmolt_gpon_onu_eqd_list_u32 *this, bcmolt_buf *buf)
+{
+    uint32_t i0;
+    if (!bcmolt_buf_write_u32(buf, this->len))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if ((this->len > 0) && (this->val == NULL))
+    {
+        bcmos_trace(BCMOS_TRACE_LEVEL_ERROR, "Error: list field \"val\" of struct \"bcmolt_gpon_onu_eqd_list_u32\" is uninitialized (NULL).  You must allocate memory for this pointer before sending/receiving the message.\n");
+        return BCMOS_FALSE;
+    }
+
+    for (i0 = 0; i0 < this->len; i0++)
+    {
+        if (!bcmolt_gpon_onu_eqd_pack(&this->val[i0], buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_gpon_onu_eqd_list_u32_get_packed_length(const bcmolt_gpon_onu_eqd_list_u32 *this)
+{
+    return 4 + (6 * this->len);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_eqd_list_u32_unpack(bcmolt_gpon_onu_eqd_list_u32 *this, bcmolt_buf *buf, void **extra_mem)
+{
+    uint32_t i0;
+    if (!bcmolt_buf_read_u32(buf, &this->len))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if ((this->len > 0) && (this->val == NULL))
+    {
+        if (extra_mem == NULL)
+        {
+            bcmos_trace(BCMOS_TRACE_LEVEL_ERROR, "Error: list field \"val\" of struct \"bcmolt_gpon_onu_eqd_list_u32\" is uninitialized (NULL).  You must allocate memory for this pointer before sending/receiving the message.\n");
+            return BCMOS_FALSE;
+        }
+        else
+        {
+            this->val = (bcmolt_gpon_onu_eqd *) *extra_mem;
+            *extra_mem = ((uint8_t *) *extra_mem) + BCMOS_ROUND_TO_WORD(this->len * sizeof(bcmolt_gpon_onu_eqd));
+        }
+    }
+
+    for (i0 = 0; i0 < this->len; i0++)
+    {
+        if (!bcmolt_gpon_onu_eqd_unpack(&this->val[i0], buf, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_eqd_list_u32_scan(bcmolt_buf *packed, uint32_t *extra_mem)
+{
+    uint32_t len;
+    if (!bcmolt_buf_read_u32(packed, &len))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *extra_mem += BCMOS_ROUND_TO_WORD(sizeof(bcmolt_gpon_onu_eqd) * len);
+    if (!bcmolt_buf_skip(packed, len * 6))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_eqd_list_u32_bounds_check(const bcmolt_gpon_onu_eqd_list_u32 *this)
+{
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_gpon_onu_id_list_u32_max_256_set_default(bcmolt_gpon_onu_id_list_u32_max_256 *this)
+{
+    this->len = 0;
+    this->val = NULL;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_id_list_u32_max_256_pack(const bcmolt_gpon_onu_id_list_u32_max_256 *this, bcmolt_buf *buf)
+{
+    uint32_t i0;
+    if (!bcmolt_buf_write_u32(buf, this->len))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if ((this->len > 0) && (this->val == NULL))
+    {
+        bcmos_trace(BCMOS_TRACE_LEVEL_ERROR, "Error: list field \"val\" of struct \"bcmolt_gpon_onu_id_list_u32_max_256\" is uninitialized (NULL).  You must allocate memory for this pointer before sending/receiving the message.\n");
+        return BCMOS_FALSE;
+    }
+
+    if (this->len > 256)
+    {
+        return BCMOS_FALSE;
+    }
+
+    for (i0 = 0; i0 < this->len; i0++)
+    {
+        if (!bcmolt_buf_write_u16(buf, (uint16_t) this->val[i0]))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_gpon_onu_id_list_u32_max_256_get_packed_length(const bcmolt_gpon_onu_id_list_u32_max_256 *this)
+{
+    return 4 + (2 * this->len);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_id_list_u32_max_256_unpack(bcmolt_gpon_onu_id_list_u32_max_256 *this, bcmolt_buf *buf, void **extra_mem)
+{
+    uint32_t i0;
+    if (!bcmolt_buf_read_u32(buf, &this->len))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if ((this->len > 0) && (this->val == NULL))
+    {
+        if (extra_mem == NULL)
+        {
+            bcmos_trace(BCMOS_TRACE_LEVEL_ERROR, "Error: list field \"val\" of struct \"bcmolt_gpon_onu_id_list_u32_max_256\" is uninitialized (NULL).  You must allocate memory for this pointer before sending/receiving the message.\n");
+            return BCMOS_FALSE;
+        }
+        else
+        {
+            this->val = (bcmolt_gpon_onu_id *) *extra_mem;
+            *extra_mem = ((uint8_t *) *extra_mem) + BCMOS_ROUND_TO_WORD(this->len * sizeof(bcmolt_gpon_onu_id));
+        }
+    }
+
+    if (this->len > 256)
+    {
+        return BCMOS_FALSE;
+    }
+
+    for (i0 = 0; i0 < this->len; i0++)
+    {
+        if (!bcmolt_buf_read_u16(buf, (uint16_t *) &this->val[i0]))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_id_list_u32_max_256_scan(bcmolt_buf *packed, uint32_t *extra_mem)
+{
+    uint32_t len;
+    if (!bcmolt_buf_read_u32(packed, &len))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *extra_mem += BCMOS_ROUND_TO_WORD(sizeof(bcmolt_gpon_onu_id) * len);
+    if (!bcmolt_buf_skip(packed, len * 2))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_id_list_u32_max_256_bounds_check(const bcmolt_gpon_onu_id_list_u32_max_256 *this)
+{
+    if (this->len > 256)
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_gpon_onu_upgrade_params_set_default(bcmolt_gpon_onu_upgrade_params *this)
+{
+    this->response_timeout_ms = 1000;
+    this->max_retry_count = 23;
+    this->omci_format = BCMOLT_OMCI_DEVICE_ID_EXTENDED;
+    this->window_size = 32;
+    this->activate_commit = BCMOS_FALSE;
+    this->delay_for_commit_ms = 40000UL;
+    this->max_activation_attempts = 23;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_upgrade_params_pack(const bcmolt_gpon_onu_upgrade_params *this, bcmolt_buf *buf)
+{
+    if (!bcmolt_buf_write_u32(buf, this->response_timeout_ms))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_write_u8(buf, this->max_retry_count))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_omci_device_id_pack(this->omci_format, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_write_u16(buf, this->window_size))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_write_bool(buf, this->activate_commit))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_write_u32(buf, this->delay_for_commit_ms))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_write_u8(buf, this->max_activation_attempts))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_upgrade_params_unpack(bcmolt_gpon_onu_upgrade_params *this, bcmolt_buf *buf, void **extra_mem)
+{
+    if (!bcmolt_buf_read_u32(buf, &this->response_timeout_ms))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_read_u8(buf, &this->max_retry_count))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_omci_device_id_unpack(&this->omci_format, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_read_u16(buf, &this->window_size))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_read_bool(buf, &this->activate_commit))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_read_u32(buf, &this->delay_for_commit_ms))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_read_u8(buf, &this->max_activation_attempts))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_upgrade_params_scan(bcmolt_buf *packed, uint32_t *extra_mem)
+{
+    (void)extra_mem;
+    return bcmolt_buf_skip(packed, 14);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_upgrade_params_bounds_check(const bcmolt_gpon_onu_upgrade_params *this)
+{
+    if (this->response_timeout_ms < 50)
+    {
+        return BCMOS_FALSE;
+    }
+
+    switch (this->omci_format)
+    {
+        case BCMOLT_OMCI_DEVICE_ID_BASELINE:
+            break;
+        case BCMOLT_OMCI_DEVICE_ID_EXTENDED:
+            break;
+        default:
+            return BCMOS_FALSE;
+    }
+
+    if (this->window_size < 1)
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (this->window_size > 256)
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_gpon_onu_upgrade_status_set_default(bcmolt_gpon_onu_upgrade_status *this)
+{
+    this->onu_id = (bcmolt_pon_onu_id) 0;
+    this->error_code = BCMOLT_GPON_ONU_UPGRADE_RETURN_CODE_SUCCESS;
+    this->fail_reason = BCMOLT_OMCI_RESULT_CODE_NO_ERROR;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_upgrade_status_pack(const bcmolt_gpon_onu_upgrade_status *this, bcmolt_buf *buf)
+{
+    if (!bcmolt_buf_write_u16(buf, (uint16_t) this->onu_id))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_gpon_onu_upgrade_return_code_pack(this->error_code, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_omci_result_code_pack(this->fail_reason, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_upgrade_status_unpack(bcmolt_gpon_onu_upgrade_status *this, bcmolt_buf *buf, void **extra_mem)
+{
+    if (!bcmolt_buf_read_u16(buf, (uint16_t *) &this->onu_id))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_gpon_onu_upgrade_return_code_unpack(&this->error_code, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_omci_result_code_unpack(&this->fail_reason, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_upgrade_status_scan(bcmolt_buf *packed, uint32_t *extra_mem)
+{
+    (void)extra_mem;
+    return bcmolt_buf_skip(packed, 4);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_upgrade_status_bounds_check(const bcmolt_gpon_onu_upgrade_status *this)
+{
+    if (this->onu_id > (bcmolt_pon_onu_id) 511)
+    {
+        return BCMOS_FALSE;
+    }
+
+    switch (this->error_code)
+    {
+        case BCMOLT_GPON_ONU_UPGRADE_RETURN_CODE_SUCCESS:
+            break;
+        case BCMOLT_GPON_ONU_UPGRADE_RETURN_CODE_ONU_RESPONSE_TIMEOUT:
+            break;
+        case BCMOLT_GPON_ONU_UPGRADE_RETURN_CODE_ONU_ERROR_RESPONSE:
+            break;
+        case BCMOLT_GPON_ONU_UPGRADE_RETURN_CODE_TCI_MISMATCH:
+            break;
+        case BCMOLT_GPON_ONU_UPGRADE_RETURN_CODE_GET_IMAGE_FAILED:
+            break;
+        case BCMOLT_GPON_ONU_UPGRADE_RETURN_CODE_ACTIVATION_FAILED:
+            break;
+        case BCMOLT_GPON_ONU_UPGRADE_RETURN_CODE_INTERNAL:
+            break;
+        default:
+            return BCMOS_FALSE;
+    }
+
+    switch (this->fail_reason)
+    {
+        case BCMOLT_OMCI_RESULT_CODE_NO_ERROR:
+            break;
+        case BCMOLT_OMCI_RESULT_CODE_PROCESSING_ERROR:
+            break;
+        case BCMOLT_OMCI_RESULT_CODE_NOT_SUPPORTED:
+            break;
+        case BCMOLT_OMCI_RESULT_CODE_PARAMETER_ERROR:
+            break;
+        case BCMOLT_OMCI_RESULT_CODE_UNKNOWN_ENTITY:
+            break;
+        case BCMOLT_OMCI_RESULT_CODE_UNKNOWN_INSTANCE:
+            break;
+        case BCMOLT_OMCI_RESULT_CODE_DEVICE_BUSY:
+            break;
+        default:
+            return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_gpon_onu_upgrade_status_list_u32_set_default(bcmolt_gpon_onu_upgrade_status_list_u32 *this)
+{
+    this->len = 0;
+    this->val = NULL;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_upgrade_status_list_u32_pack(const bcmolt_gpon_onu_upgrade_status_list_u32 *this, bcmolt_buf *buf)
+{
+    uint32_t i0;
+    if (!bcmolt_buf_write_u32(buf, this->len))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if ((this->len > 0) && (this->val == NULL))
+    {
+        bcmos_trace(BCMOS_TRACE_LEVEL_ERROR, "Error: list field \"val\" of struct \"bcmolt_gpon_onu_upgrade_status_list_u32\" is uninitialized (NULL).  You must allocate memory for this pointer before sending/receiving the message.\n");
+        return BCMOS_FALSE;
+    }
+
+    for (i0 = 0; i0 < this->len; i0++)
+    {
+        if (!bcmolt_gpon_onu_upgrade_status_pack(&this->val[i0], buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_gpon_onu_upgrade_status_list_u32_get_packed_length(const bcmolt_gpon_onu_upgrade_status_list_u32 *this)
+{
+    return 4 + (4 * this->len);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_upgrade_status_list_u32_unpack(bcmolt_gpon_onu_upgrade_status_list_u32 *this, bcmolt_buf *buf, void **extra_mem)
+{
+    uint32_t i0;
+    if (!bcmolt_buf_read_u32(buf, &this->len))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if ((this->len > 0) && (this->val == NULL))
+    {
+        if (extra_mem == NULL)
+        {
+            bcmos_trace(BCMOS_TRACE_LEVEL_ERROR, "Error: list field \"val\" of struct \"bcmolt_gpon_onu_upgrade_status_list_u32\" is uninitialized (NULL).  You must allocate memory for this pointer before sending/receiving the message.\n");
+            return BCMOS_FALSE;
+        }
+        else
+        {
+            this->val = (bcmolt_gpon_onu_upgrade_status *) *extra_mem;
+            *extra_mem = ((uint8_t *) *extra_mem) + BCMOS_ROUND_TO_WORD(this->len * sizeof(bcmolt_gpon_onu_upgrade_status));
+        }
+    }
+
+    for (i0 = 0; i0 < this->len; i0++)
+    {
+        if (!bcmolt_gpon_onu_upgrade_status_unpack(&this->val[i0], buf, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_upgrade_status_list_u32_scan(bcmolt_buf *packed, uint32_t *extra_mem)
+{
+    uint32_t len;
+    if (!bcmolt_buf_read_u32(packed, &len))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *extra_mem += BCMOS_ROUND_TO_WORD(sizeof(bcmolt_gpon_onu_upgrade_status) * len);
+    if (!bcmolt_buf_skip(packed, len * 4))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_upgrade_status_list_u32_bounds_check(const bcmolt_gpon_onu_upgrade_status_list_u32 *this)
+{
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_gpon_onu_with_state_set_default(bcmolt_gpon_onu_with_state *this)
+{
+    this->onu_id = (bcmolt_gpon_onu_id) 0;
+    this->state = BCMOLT_ONU_STATE_NOT_CONFIGURED;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_with_state_pack(const bcmolt_gpon_onu_with_state *this, bcmolt_buf *buf)
+{
+    if (!bcmolt_buf_write_u16(buf, (uint16_t) this->onu_id))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_onu_state_pack(this->state, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_with_state_unpack(bcmolt_gpon_onu_with_state *this, bcmolt_buf *buf, void **extra_mem)
+{
+    if (!bcmolt_buf_read_u16(buf, (uint16_t *) &this->onu_id))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_onu_state_unpack(&this->state, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_with_state_scan(bcmolt_buf *packed, uint32_t *extra_mem)
+{
+    (void)extra_mem;
+    return bcmolt_buf_skip(packed, 3);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_with_state_bounds_check(const bcmolt_gpon_onu_with_state *this)
+{
+    if (this->onu_id > (bcmolt_gpon_onu_id) 127)
+    {
+        return BCMOS_FALSE;
+    }
+
+    switch (this->state)
+    {
+        case BCMOLT_ONU_STATE_NOT_CONFIGURED:
+            break;
+        case BCMOLT_ONU_STATE_INACTIVE:
+            break;
+        case BCMOLT_ONU_STATE_ACTIVE:
+            break;
+        case BCMOLT_ONU_STATE_ACTIVE_STANDBY:
+            break;
+        case BCMOLT_ONU_STATE_DISABLED:
+            break;
+        case BCMOLT_ONU_STATE_AWAKE_FREE:
+            break;
+        case BCMOLT_ONU_STATE_PROCESSING:
+            break;
+        case BCMOLT_ONU_STATE_LOW_POWER_DOZE:
+            break;
+        case BCMOLT_ONU_STATE_LOW_POWER_SLEEP:
+            break;
+        case BCMOLT_ONU_STATE_LOW_POWER_WATCH:
+            break;
+        case BCMOLT_ONU_STATE_UNAWARE:
+            break;
+        default:
+            return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_gpon_onu_with_state_list_u16_max_128_set_default(bcmolt_gpon_onu_with_state_list_u16_max_128 *this)
+{
+    this->len = 0;
+    this->val = NULL;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_with_state_list_u16_max_128_pack(const bcmolt_gpon_onu_with_state_list_u16_max_128 *this, bcmolt_buf *buf)
+{
+    uint16_t i0;
+    if (!bcmolt_buf_write_u16(buf, this->len))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if ((this->len > 0) && (this->val == NULL))
+    {
+        bcmos_trace(BCMOS_TRACE_LEVEL_ERROR, "Error: list field \"val\" of struct \"bcmolt_gpon_onu_with_state_list_u16_max_128\" is uninitialized (NULL).  You must allocate memory for this pointer before sending/receiving the message.\n");
+        return BCMOS_FALSE;
+    }
+
+    if (this->len > 128)
+    {
+        return BCMOS_FALSE;
+    }
+
+    for (i0 = 0; i0 < this->len; i0++)
+    {
+        if (!bcmolt_gpon_onu_with_state_pack(&this->val[i0], buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_gpon_onu_with_state_list_u16_max_128_get_packed_length(const bcmolt_gpon_onu_with_state_list_u16_max_128 *this)
+{
+    return 2 + (3 * this->len);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_with_state_list_u16_max_128_unpack(bcmolt_gpon_onu_with_state_list_u16_max_128 *this, bcmolt_buf *buf, void **extra_mem)
+{
+    uint16_t i0;
+    if (!bcmolt_buf_read_u16(buf, &this->len))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if ((this->len > 0) && (this->val == NULL))
+    {
+        if (extra_mem == NULL)
+        {
+            bcmos_trace(BCMOS_TRACE_LEVEL_ERROR, "Error: list field \"val\" of struct \"bcmolt_gpon_onu_with_state_list_u16_max_128\" is uninitialized (NULL).  You must allocate memory for this pointer before sending/receiving the message.\n");
+            return BCMOS_FALSE;
+        }
+        else
+        {
+            this->val = (bcmolt_gpon_onu_with_state *) *extra_mem;
+            *extra_mem = ((uint8_t *) *extra_mem) + BCMOS_ROUND_TO_WORD(this->len * sizeof(bcmolt_gpon_onu_with_state));
+        }
+    }
+
+    if (this->len > 128)
+    {
+        return BCMOS_FALSE;
+    }
+
+    for (i0 = 0; i0 < this->len; i0++)
+    {
+        if (!bcmolt_gpon_onu_with_state_unpack(&this->val[i0], buf, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_with_state_list_u16_max_128_scan(bcmolt_buf *packed, uint32_t *extra_mem)
+{
+    uint16_t len;
+    if (!bcmolt_buf_read_u16(packed, &len))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *extra_mem += BCMOS_ROUND_TO_WORD(sizeof(bcmolt_gpon_onu_with_state) * len);
+    if (!bcmolt_buf_skip(packed, len * 3))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_with_state_list_u16_max_128_bounds_check(const bcmolt_gpon_onu_with_state_list_u16_max_128 *this)
+{
+    if (this->len > 128)
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_gpon_rssi_general_configuration_set_default(bcmolt_gpon_rssi_general_configuration *this)
+{
+    this->location = 20;
+    this->location_sign = BCMOLT_RSSI_LOCATION_SIGN_BEFORE;
+    this->start_pattern = 15;
+    this->middle_pattern = 15;
+    this->last_pattern = 15;
+    this->middle_repertition = 50;
+    this->minimum_burst = 55;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_rssi_general_configuration_pack(const bcmolt_gpon_rssi_general_configuration *this, bcmolt_buf *buf)
+{
+    if (!bcmolt_buf_write_u8(buf, this->location))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_rssi_location_sign_pack(this->location_sign, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_write_u8(buf, this->start_pattern))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_write_u8(buf, this->middle_pattern))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_write_u8(buf, this->last_pattern))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_write_u8(buf, this->middle_repertition))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_write_u16(buf, this->minimum_burst))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_rssi_general_configuration_unpack(bcmolt_gpon_rssi_general_configuration *this, bcmolt_buf *buf, void **extra_mem)
+{
+    if (!bcmolt_buf_read_u8(buf, &this->location))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_rssi_location_sign_unpack(&this->location_sign, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_read_u8(buf, &this->start_pattern))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_read_u8(buf, &this->middle_pattern))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_read_u8(buf, &this->last_pattern))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_read_u8(buf, &this->middle_repertition))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_read_u16(buf, &this->minimum_burst))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_rssi_general_configuration_scan(bcmolt_buf *packed, uint32_t *extra_mem)
+{
+    (void)extra_mem;
+    return bcmolt_buf_skip(packed, 8);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_rssi_general_configuration_bounds_check(const bcmolt_gpon_rssi_general_configuration *this)
+{
+    switch (this->location_sign)
+    {
+        case BCMOLT_RSSI_LOCATION_SIGN_BEFORE:
+            break;
+        case BCMOLT_RSSI_LOCATION_SIGN_AFTER:
+            break;
+        default:
+            return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_gpon_sn_acquisition_set_default(bcmolt_gpon_sn_acquisition *this)
+{
+    this->interval = 1000;
+    this->control = BCMOLT_CONTROL_STATE_DISABLE;
+    this->onu_post_discovery_mode = BCMOLT_ONU_POST_DISCOVERY_MODE_DISABLE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_sn_acquisition_pack(const bcmolt_gpon_sn_acquisition *this, bcmolt_buf *buf)
+{
+    if (!bcmolt_buf_write_u32(buf, this->interval))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_control_state_pack(this->control, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_onu_post_discovery_mode_pack(this->onu_post_discovery_mode, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_sn_acquisition_unpack(bcmolt_gpon_sn_acquisition *this, bcmolt_buf *buf, void **extra_mem)
+{
+    if (!bcmolt_buf_read_u32(buf, &this->interval))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_control_state_unpack(&this->control, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_onu_post_discovery_mode_unpack(&this->onu_post_discovery_mode, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_sn_acquisition_scan(bcmolt_buf *packed, uint32_t *extra_mem)
+{
+    (void)extra_mem;
+    return bcmolt_buf_skip(packed, 6);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_sn_acquisition_bounds_check(const bcmolt_gpon_sn_acquisition *this)
+{
+    if (this->interval < 1000)
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (this->interval > 2147483UL)
+    {
+        return BCMOS_FALSE;
+    }
+
+    switch (this->control)
+    {
+        case BCMOLT_CONTROL_STATE_DISABLE:
+            break;
+        case BCMOLT_CONTROL_STATE_ENABLE:
+            break;
+        default:
+            return BCMOS_FALSE;
+    }
+
+    switch (this->onu_post_discovery_mode)
+    {
+        case BCMOLT_ONU_POST_DISCOVERY_MODE_NONE:
+            break;
+        case BCMOLT_ONU_POST_DISCOVERY_MODE_ACTIVATE:
+            break;
+        case BCMOLT_ONU_POST_DISCOVERY_MODE_DISABLE:
+            break;
+        default:
+            return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_host_sw_version_set_default(bcmolt_host_sw_version *this)
+{
+    this->major = 0;
+    this->minor = 0;
+    this->revision = 0;
+    this->model = 0;
+    memset(this->build_time, 0, 32);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_host_sw_version_pack(const bcmolt_host_sw_version *this, bcmolt_buf *buf)
+{
+    if (!bcmolt_buf_write_u8(buf, this->major))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_write_u8(buf, this->minor))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_write_u8(buf, this->revision))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_write_u32(buf, this->model))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_write(buf, this->build_time, 32))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_host_sw_version_unpack(bcmolt_host_sw_version *this, bcmolt_buf *buf, void **extra_mem)
+{
+    if (!bcmolt_buf_read_u8(buf, &this->major))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_read_u8(buf, &this->minor))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_read_u8(buf, &this->revision))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_read_u32(buf, &this->model))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_read(buf, this->build_time, 32))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_host_sw_version_scan(bcmolt_buf *packed, uint32_t *extra_mem)
+{
+    (void)extra_mem;
+    return bcmolt_buf_skip(packed, 39);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_host_sw_version_bounds_check(const bcmolt_host_sw_version *this)
+{
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_hw_pon_id_set_default(bcmolt_hw_pon_id *this)
+{
+    this->pon_id_1 = 0;
+    this->pon_id_2 = 0;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_hw_pon_id_pack(const bcmolt_hw_pon_id *this, bcmolt_buf *buf)
+{
+    if (!bcmolt_buf_write_u32(buf, this->pon_id_1))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_write_u32(buf, this->pon_id_2))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_hw_pon_id_unpack(bcmolt_hw_pon_id *this, bcmolt_buf *buf, void **extra_mem)
+{
+    if (!bcmolt_buf_read_u32(buf, &this->pon_id_1))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_read_u32(buf, &this->pon_id_2))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_hw_pon_id_scan(bcmolt_buf *packed, uint32_t *extra_mem)
+{
+    (void)extra_mem;
+    return bcmolt_buf_skip(packed, 8);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_hw_pon_id_bounds_check(const bcmolt_hw_pon_id *this)
+{
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_ieee_8021as_port_identity_set_default(bcmolt_ieee_8021as_port_identity *this)
+{
+    memset(this->clock_identity, 0, sizeof(this->clock_identity));
+    this->port_number = 0;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_ieee_8021as_port_identity_pack(const bcmolt_ieee_8021as_port_identity *this, bcmolt_buf *buf)
+{
+    if (!bcmolt_buf_write(buf, this->clock_identity, 8))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_write_u16(buf, this->port_number))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_ieee_8021as_port_identity_unpack(bcmolt_ieee_8021as_port_identity *this, bcmolt_buf *buf, void **extra_mem)
+{
+    if (!bcmolt_buf_read(buf, this->clock_identity, 8))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_read_u16(buf, &this->port_number))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_ieee_8021as_port_identity_scan(bcmolt_buf *packed, uint32_t *extra_mem)
+{
+    (void)extra_mem;
+    return bcmolt_buf_skip(packed, 10);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_ieee_8021as_port_identity_bounds_check(const bcmolt_ieee_8021as_port_identity *this)
+{
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_ieee_8021as_timestamp_set_default(bcmolt_ieee_8021as_timestamp *this)
+{
+    this->seconds_high = 0;
+    this->seconds_low = 0;
+    this->nanoseconds = 0;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_ieee_8021as_timestamp_pack(const bcmolt_ieee_8021as_timestamp *this, bcmolt_buf *buf)
+{
+    if (!bcmolt_buf_write_u16(buf, this->seconds_high))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_write_u32(buf, this->seconds_low))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_write_u32(buf, this->nanoseconds))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_ieee_8021as_timestamp_unpack(bcmolt_ieee_8021as_timestamp *this, bcmolt_buf *buf, void **extra_mem)
+{
+    if (!bcmolt_buf_read_u16(buf, &this->seconds_high))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_read_u32(buf, &this->seconds_low))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_read_u32(buf, &this->nanoseconds))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_ieee_8021as_timestamp_scan(bcmolt_buf *packed, uint32_t *extra_mem)
+{
+    (void)extra_mem;
+    return bcmolt_buf_skip(packed, 10);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_ieee_8021as_timestamp_bounds_check(const bcmolt_ieee_8021as_timestamp *this)
+{
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_ieee_8021as_time_sync_set_default(bcmolt_ieee_8021as_time_sync *this)
+{
+    bcmos_mac_address_init(&this->destination_mac);
+    bcmos_mac_address_init(&this->source_mac);
+    this->eth_type_len = 0;
+    this->eth_subtype = 0;
+    memset(this->ieee_oui, 0, sizeof(this->ieee_oui));
+    this->msg_id = 0;
+    this->x = 0;
+    this->tod.seconds_high = 0;
+    this->tod.seconds_low = 0;
+    this->tod.nanoseconds = 0;
+    memset(this->port_identity.clock_identity, 0, sizeof(this->port_identity.clock_identity));
+    this->port_identity.port_number = 0;
+    this->log_msg_interval = 0;
+    this->rate_ratio = 0;
+    this->gm_time_base_indicator = 0;
+    memset(this->last_gm_phase_change, 0, sizeof(this->last_gm_phase_change));
+    this->last_frequency_change = 0;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_ieee_8021as_time_sync_pack(const bcmolt_ieee_8021as_time_sync *this, bcmolt_buf *buf)
+{
+    if (!bcmolt_buf_write_mac_address(buf, this->destination_mac))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_write_mac_address(buf, this->source_mac))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_write_u16(buf, this->eth_type_len))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_write_u8(buf, this->eth_subtype))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_write(buf, this->ieee_oui, 3))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_write_u16(buf, this->msg_id))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_write_u32(buf, this->x))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_ieee_8021as_timestamp_pack(&this->tod, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_ieee_8021as_port_identity_pack(&this->port_identity, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_write_s8(buf, this->log_msg_interval))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_write_double(buf, this->rate_ratio))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_write_u16(buf, this->gm_time_base_indicator))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_write(buf, this->last_gm_phase_change, 12))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_write_s32(buf, this->last_frequency_change))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_ieee_8021as_time_sync_unpack(bcmolt_ieee_8021as_time_sync *this, bcmolt_buf *buf, void **extra_mem)
+{
+    if (!bcmolt_buf_read_mac_address(buf, &this->destination_mac))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_read_mac_address(buf, &this->source_mac))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_read_u16(buf, &this->eth_type_len))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_read_u8(buf, &this->eth_subtype))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_read(buf, this->ieee_oui, 3))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_read_u16(buf, &this->msg_id))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_read_u32(buf, &this->x))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_ieee_8021as_timestamp_unpack(&this->tod, buf, extra_mem))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_ieee_8021as_port_identity_unpack(&this->port_identity, buf, extra_mem))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_read_s8(buf, &this->log_msg_interval))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_read_double(buf, &this->rate_ratio))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_read_u16(buf, &this->gm_time_base_indicator))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_read(buf, this->last_gm_phase_change, 12))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_read_s32(buf, &this->last_frequency_change))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_ieee_8021as_time_sync_scan(bcmolt_buf *packed, uint32_t *extra_mem)
+{
+    (void)extra_mem;
+    return bcmolt_buf_skip(packed, 71);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_ieee_8021as_time_sync_bounds_check(const bcmolt_ieee_8021as_time_sync *this)
+{
+    if (!bcmolt_ieee_8021as_timestamp_bounds_check(&this->tod))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_ieee_8021as_port_identity_bounds_check(&this->port_identity))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_indication_shaping_set_default(bcmolt_indication_shaping *this)
+{
+    this->enabled = BCMOS_FALSE;
+    this->max_rate = 1000;
+    this->max_burst = 100;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_indication_shaping_pack(const bcmolt_indication_shaping *this, bcmolt_buf *buf)
+{
+    if (!bcmolt_buf_write_bool(buf, this->enabled))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_write_u32(buf, this->max_rate))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_write_u32(buf, this->max_burst))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_indication_shaping_unpack(bcmolt_indication_shaping *this, bcmolt_buf *buf, void **extra_mem)
+{
+    if (!bcmolt_buf_read_bool(buf, &this->enabled))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_read_u32(buf, &this->max_rate))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_read_u32(buf, &this->max_burst))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_indication_shaping_scan(bcmolt_buf *packed, uint32_t *extra_mem)
+{
+    (void)extra_mem;
+    return bcmolt_buf_skip(packed, 9);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_indication_shaping_bounds_check(const bcmolt_indication_shaping *this)
+{
+    if (this->max_rate < 1)
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (this->max_rate > 10000)
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (this->max_burst < 1)
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (this->max_burst > 10000)
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_la_resync_pattern_configuration_set_default(bcmolt_la_resync_pattern_configuration *this)
+{
+    this->resync_control.start_pattern = 15;
+    this->resync_control.middle_pattern = 15;
+    this->resync_control.last_pattern = 15;
+    this->resync_control.middle_repetition = 0;
+    this->resync_control.location = 40;
+    this->ranging_resync_control.start_pattern = 15;
+    this->ranging_resync_control.middle_pattern = 15;
+    this->ranging_resync_control.last_pattern = 15;
+    this->ranging_resync_control.middle_repetition = 0;
+    this->ranging_resync_control.location = 1;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_la_resync_pattern_configuration_pack(const bcmolt_la_resync_pattern_configuration *this, bcmolt_buf *buf)
+{
+    if (!bcmolt_resync_control_pack(&this->resync_control, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_resync_control_pack(&this->ranging_resync_control, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_la_resync_pattern_configuration_unpack(bcmolt_la_resync_pattern_configuration *this, bcmolt_buf *buf, void **extra_mem)
+{
+    if (!bcmolt_resync_control_unpack(&this->resync_control, buf, extra_mem))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_resync_control_unpack(&this->ranging_resync_control, buf, extra_mem))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_la_resync_pattern_configuration_scan(bcmolt_buf *packed, uint32_t *extra_mem)
+{
+    (void)extra_mem;
+    return bcmolt_buf_skip(packed, 10);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_la_resync_pattern_configuration_bounds_check(const bcmolt_la_resync_pattern_configuration *this)
+{
+    if (!bcmolt_resync_control_bounds_check(&this->resync_control))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_resync_control_bounds_check(&this->ranging_resync_control))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_log_buffer_set_default(bcmolt_log_buffer *this)
+{
+    memset(this->buff, 0, 2048);
+    this->msg_to_read = 0;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_log_buffer_pack(const bcmolt_log_buffer *this, bcmolt_buf *buf)
+{
+    if (!bcmolt_buf_write(buf, this->buff, 2048))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_write_u32(buf, this->msg_to_read))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_log_buffer_unpack(bcmolt_log_buffer *this, bcmolt_buf *buf, void **extra_mem)
+{
+    if (!bcmolt_buf_read(buf, this->buff, 2048))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_read_u32(buf, &this->msg_to_read))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_log_buffer_scan(bcmolt_buf *packed, uint32_t *extra_mem)
+{
+    (void)extra_mem;
+    return bcmolt_buf_skip(packed, 2052);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_log_buffer_bounds_check(const bcmolt_log_buffer *this)
+{
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_mac_table_configuration_set_default(bcmolt_mac_table_configuration *this)
+{
+    this->miss_fallback = BCMOLT_MAC_TABLE_MISS_FALLBACK_DROP;
+    this->default_flow_id = (bcmolt_flow_id) 0;
+    this->aging_time = 30;
+    this->learning_mode = BCMOLT_MAC_TABLE_LEARNING_MODE_NORMAL;
+    this->automatic_mac_learning = BCMOLT_CONTROL_STATE_DISABLE;
+    this->automatic_mac_aging = BCMOLT_CONTROL_STATE_DISABLE;
+    this->automatic_mac_move = BCMOLT_CONTROL_STATE_DISABLE;
+    this->automatic_static_mode = BCMOS_FALSE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_mac_table_configuration_pack(const bcmolt_mac_table_configuration *this, bcmolt_buf *buf)
+{
+    if (!bcmolt_mac_table_miss_fallback_pack(this->miss_fallback, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_write_u16(buf, (uint16_t) this->default_flow_id))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_write_u32(buf, this->aging_time))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_mac_table_learning_mode_pack(this->learning_mode, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_control_state_pack(this->automatic_mac_learning, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_control_state_pack(this->automatic_mac_aging, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_control_state_pack(this->automatic_mac_move, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_write_bool(buf, this->automatic_static_mode))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_mac_table_configuration_unpack(bcmolt_mac_table_configuration *this, bcmolt_buf *buf, void **extra_mem)
+{
+    if (!bcmolt_mac_table_miss_fallback_unpack(&this->miss_fallback, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_read_u16(buf, (uint16_t *) &this->default_flow_id))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_read_u32(buf, &this->aging_time))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_mac_table_learning_mode_unpack(&this->learning_mode, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_control_state_unpack(&this->automatic_mac_learning, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_control_state_unpack(&this->automatic_mac_aging, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_control_state_unpack(&this->automatic_mac_move, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_read_bool(buf, &this->automatic_static_mode))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_mac_table_configuration_scan(bcmolt_buf *packed, uint32_t *extra_mem)
+{
+    (void)extra_mem;
+    return bcmolt_buf_skip(packed, 12);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_mac_table_configuration_bounds_check(const bcmolt_mac_table_configuration *this)
+{
+    switch (this->miss_fallback)
+    {
+        case BCMOLT_MAC_TABLE_MISS_FALLBACK_DROP:
+            break;
+        case BCMOLT_MAC_TABLE_MISS_FALLBACK_DEFAULT_FLOW:
+            break;
+        case BCMOLT_MAC_TABLE_MISS_FALLBACK_VID:
+            break;
+        default:
+            return BCMOS_FALSE;
+    }
+
+    if (this->default_flow_id > (bcmolt_flow_id) 4095)
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (this->aging_time < 30)
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (this->aging_time > 86400UL)
+    {
+        return BCMOS_FALSE;
+    }
+
+    switch (this->learning_mode)
+    {
+        case BCMOLT_MAC_TABLE_LEARNING_MODE_NORMAL:
+            break;
+        case BCMOLT_MAC_TABLE_LEARNING_MODE_MOVE:
+            break;
+        default:
+            return BCMOS_FALSE;
+    }
+
+    switch (this->automatic_mac_learning)
+    {
+        case BCMOLT_CONTROL_STATE_DISABLE:
+            break;
+        case BCMOLT_CONTROL_STATE_ENABLE:
+            break;
+        default:
+            return BCMOS_FALSE;
+    }
+
+    switch (this->automatic_mac_aging)
+    {
+        case BCMOLT_CONTROL_STATE_DISABLE:
+            break;
+        case BCMOLT_CONTROL_STATE_ENABLE:
+            break;
+        default:
+            return BCMOS_FALSE;
+    }
+
+    switch (this->automatic_mac_move)
+    {
+        case BCMOLT_CONTROL_STATE_DISABLE:
+            break;
+        case BCMOLT_CONTROL_STATE_ENABLE:
+            break;
+        default:
+            return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_macaddress_list_u32_set_default(bcmolt_macaddress_list_u32 *this)
+{
+    this->len = 0;
+    this->val = NULL;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_macaddress_list_u32_pack(const bcmolt_macaddress_list_u32 *this, bcmolt_buf *buf)
+{
+    uint32_t i0;
+    if (!bcmolt_buf_write_u32(buf, this->len))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if ((this->len > 0) && (this->val == NULL))
+    {
+        bcmos_trace(BCMOS_TRACE_LEVEL_ERROR, "Error: list field \"val\" of struct \"bcmolt_macaddress_list_u32\" is uninitialized (NULL).  You must allocate memory for this pointer before sending/receiving the message.\n");
+        return BCMOS_FALSE;
+    }
+
+    for (i0 = 0; i0 < this->len; i0++)
+    {
+        if (!bcmolt_buf_write_mac_address(buf, this->val[i0]))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_macaddress_list_u32_get_packed_length(const bcmolt_macaddress_list_u32 *this)
+{
+    return 4 + (6 * this->len);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_macaddress_list_u32_unpack(bcmolt_macaddress_list_u32 *this, bcmolt_buf *buf, void **extra_mem)
+{
+    uint32_t i0;
+    if (!bcmolt_buf_read_u32(buf, &this->len))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if ((this->len > 0) && (this->val == NULL))
+    {
+        if (extra_mem == NULL)
+        {
+            bcmos_trace(BCMOS_TRACE_LEVEL_ERROR, "Error: list field \"val\" of struct \"bcmolt_macaddress_list_u32\" is uninitialized (NULL).  You must allocate memory for this pointer before sending/receiving the message.\n");
+            return BCMOS_FALSE;
+        }
+        else
+        {
+            this->val = (bcmos_mac_address *) *extra_mem;
+            *extra_mem = ((uint8_t *) *extra_mem) + BCMOS_ROUND_TO_WORD(this->len * sizeof(bcmos_mac_address));
+        }
+    }
+
+    for (i0 = 0; i0 < this->len; i0++)
+    {
+        if (!bcmolt_buf_read_mac_address(buf, &this->val[i0]))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_macaddress_list_u32_scan(bcmolt_buf *packed, uint32_t *extra_mem)
+{
+    uint32_t len;
+    if (!bcmolt_buf_read_u32(packed, &len))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *extra_mem += BCMOS_ROUND_TO_WORD(sizeof(bcmos_mac_address) * len);
+    if (!bcmolt_buf_skip(packed, len * 6))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_macaddress_list_u32_bounds_check(const bcmolt_macaddress_list_u32 *this)
+{
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_macaddress_list_u32_max_2048_set_default(bcmolt_macaddress_list_u32_max_2048 *this)
+{
+    this->len = 0;
+    this->val = NULL;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_macaddress_list_u32_max_2048_pack(const bcmolt_macaddress_list_u32_max_2048 *this, bcmolt_buf *buf)
+{
+    uint32_t i0;
+    if (!bcmolt_buf_write_u32(buf, this->len))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if ((this->len > 0) && (this->val == NULL))
+    {
+        bcmos_trace(BCMOS_TRACE_LEVEL_ERROR, "Error: list field \"val\" of struct \"bcmolt_macaddress_list_u32_max_2048\" is uninitialized (NULL).  You must allocate memory for this pointer before sending/receiving the message.\n");
+        return BCMOS_FALSE;
+    }
+
+    if (this->len > 2048)
+    {
+        return BCMOS_FALSE;
+    }
+
+    for (i0 = 0; i0 < this->len; i0++)
+    {
+        if (!bcmolt_buf_write_mac_address(buf, this->val[i0]))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_macaddress_list_u32_max_2048_get_packed_length(const bcmolt_macaddress_list_u32_max_2048 *this)
+{
+    return 4 + (6 * this->len);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_macaddress_list_u32_max_2048_unpack(bcmolt_macaddress_list_u32_max_2048 *this, bcmolt_buf *buf, void **extra_mem)
+{
+    uint32_t i0;
+    if (!bcmolt_buf_read_u32(buf, &this->len))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if ((this->len > 0) && (this->val == NULL))
+    {
+        if (extra_mem == NULL)
+        {
+            bcmos_trace(BCMOS_TRACE_LEVEL_ERROR, "Error: list field \"val\" of struct \"bcmolt_macaddress_list_u32_max_2048\" is uninitialized (NULL).  You must allocate memory for this pointer before sending/receiving the message.\n");
+            return BCMOS_FALSE;
+        }
+        else
+        {
+            this->val = (bcmos_mac_address *) *extra_mem;
+            *extra_mem = ((uint8_t *) *extra_mem) + BCMOS_ROUND_TO_WORD(this->len * sizeof(bcmos_mac_address));
+        }
+    }
+
+    if (this->len > 2048)
+    {
+        return BCMOS_FALSE;
+    }
+
+    for (i0 = 0; i0 < this->len; i0++)
+    {
+        if (!bcmolt_buf_read_mac_address(buf, &this->val[i0]))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_macaddress_list_u32_max_2048_scan(bcmolt_buf *packed, uint32_t *extra_mem)
+{
+    uint32_t len;
+    if (!bcmolt_buf_read_u32(packed, &len))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *extra_mem += BCMOS_ROUND_TO_WORD(sizeof(bcmos_mac_address) * len);
+    if (!bcmolt_buf_skip(packed, len * 6))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_macaddress_list_u32_max_2048_bounds_check(const bcmolt_macaddress_list_u32_max_2048 *this)
+{
+    if (this->len > 2048)
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_nni_link_status_set_default(bcmolt_nni_link_status *this)
+{
+    this->link_status = BCMOLT_TRIVALENT_FALSE;
+    this->signal_detected = BCMOLT_TRIVALENT_FALSE;
+    this->pmd_locked = BCMOLT_TRIVALENT_FALSE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_nni_link_status_pack(const bcmolt_nni_link_status *this, bcmolt_buf *buf)
+{
+    if (!bcmolt_trivalent_pack(this->link_status, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_trivalent_pack(this->signal_detected, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_trivalent_pack(this->pmd_locked, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_nni_link_status_unpack(bcmolt_nni_link_status *this, bcmolt_buf *buf, void **extra_mem)
+{
+    if (!bcmolt_trivalent_unpack(&this->link_status, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_trivalent_unpack(&this->signal_detected, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_trivalent_unpack(&this->pmd_locked, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_nni_link_status_scan(bcmolt_buf *packed, uint32_t *extra_mem)
+{
+    (void)extra_mem;
+    return bcmolt_buf_skip(packed, 3);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_nni_link_status_bounds_check(const bcmolt_nni_link_status *this)
+{
+    switch (this->link_status)
+    {
+        case BCMOLT_TRIVALENT_FALSE:
+            break;
+        case BCMOLT_TRIVALENT_TRUE:
+            break;
+        case BCMOLT_TRIVALENT_NOT_APPLICABLE:
+            break;
+        default:
+            return BCMOS_FALSE;
+    }
+
+    switch (this->signal_detected)
+    {
+        case BCMOLT_TRIVALENT_FALSE:
+            break;
+        case BCMOLT_TRIVALENT_TRUE:
+            break;
+        case BCMOLT_TRIVALENT_NOT_APPLICABLE:
+            break;
+        default:
+            return BCMOS_FALSE;
+    }
+
+    switch (this->pmd_locked)
+    {
+        case BCMOLT_TRIVALENT_FALSE:
+            break;
+        case BCMOLT_TRIVALENT_TRUE:
+            break;
+        case BCMOLT_TRIVALENT_NOT_APPLICABLE:
+            break;
+        default:
+            return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_oam_heartbeat_config_set_default(bcmolt_oam_heartbeat_config *this)
+{
+    this->send_period = 0;
+    this->transmit_frame.len = 0;
+    this->transmit_frame.val = NULL;
+    this->ignored_receive_frame_template.frame_octets.len = 0;
+    this->ignored_receive_frame_template.frame_octets.val = NULL;
+    this->ignored_receive_frame_template.mask_octets.len = 0;
+    this->ignored_receive_frame_template.mask_octets.val = NULL;
+    this->receive_timeout = 1;
+    this->maximum_receive_size = 0;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_oam_heartbeat_config_pack(const bcmolt_oam_heartbeat_config *this, bcmolt_buf *buf)
+{
+    if (!bcmolt_buf_write_u16(buf, this->send_period))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_u8_list_u16_pack(&this->transmit_frame, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_ethernet_frame_masked_pack(&this->ignored_receive_frame_template, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_write_u16(buf, this->receive_timeout))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_write_u16(buf, this->maximum_receive_size))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_oam_heartbeat_config_get_packed_length(const bcmolt_oam_heartbeat_config *this)
+{
+    return 6 + bcmolt_u8_list_u16_get_packed_length(&this->transmit_frame) + bcmolt_ethernet_frame_masked_get_packed_length(&this->ignored_receive_frame_template);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_oam_heartbeat_config_unpack(bcmolt_oam_heartbeat_config *this, bcmolt_buf *buf, void **extra_mem)
+{
+    if (!bcmolt_buf_read_u16(buf, &this->send_period))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_u8_list_u16_unpack(&this->transmit_frame, buf, extra_mem))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_ethernet_frame_masked_unpack(&this->ignored_receive_frame_template, buf, extra_mem))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_read_u16(buf, &this->receive_timeout))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_read_u16(buf, &this->maximum_receive_size))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_oam_heartbeat_config_scan(bcmolt_buf *packed, uint32_t *extra_mem)
+{
+    if (!bcmolt_buf_skip(packed, 2))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_u8_list_u16_scan(packed, extra_mem))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_ethernet_frame_masked_scan(packed, extra_mem))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_skip(packed, 2))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_skip(packed, 2))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_oam_heartbeat_config_bounds_check(const bcmolt_oam_heartbeat_config *this)
+{
+    if (!bcmolt_u8_list_u16_bounds_check(&this->transmit_frame))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_ethernet_frame_masked_bounds_check(&this->ignored_receive_frame_template))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (this->receive_timeout < 1)
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_onu_power_management_configuration_set_default(bcmolt_onu_power_management_configuration *this)
+{
+    this->ilowpower = 1600;
+    this->iaware = 160;
+    this->itransinit = 80;
+    this->itxinit = 40;
+    this->irxoff = 1600;
+    this->low_power_clobi = 8;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_onu_power_management_configuration_pack(const bcmolt_onu_power_management_configuration *this, bcmolt_buf *buf)
+{
+    if (!bcmolt_buf_write_u32(buf, this->ilowpower))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_write_u32(buf, this->iaware))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_write_u16(buf, this->itransinit))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_write_u16(buf, this->itxinit))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_write_u32(buf, this->irxoff))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_write_u16(buf, this->low_power_clobi))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_onu_power_management_configuration_unpack(bcmolt_onu_power_management_configuration *this, bcmolt_buf *buf, void **extra_mem)
+{
+    if (!bcmolt_buf_read_u32(buf, &this->ilowpower))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_read_u32(buf, &this->iaware))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_read_u16(buf, &this->itransinit))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_read_u16(buf, &this->itxinit))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_read_u32(buf, &this->irxoff))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_read_u16(buf, &this->low_power_clobi))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_onu_power_management_configuration_scan(bcmolt_buf *packed, uint32_t *extra_mem)
+{
+    (void)extra_mem;
+    return bcmolt_buf_skip(packed, 18);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_onu_power_management_configuration_bounds_check(const bcmolt_onu_power_management_configuration *this)
+{
+    if (this->ilowpower < 8)
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (this->ilowpower > 480000UL)
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (this->iaware < 8)
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (this->iaware > 480000UL)
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (this->itransinit > 8000)
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (this->itxinit > 8000)
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (this->irxoff < 8)
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (this->irxoff > 480000UL)
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (this->low_power_clobi < 1)
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (this->low_power_clobi > 1023)
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_onu_tuning_configuration_set_default(bcmolt_onu_tuning_configuration *this)
+{
+    this->tsource = 1000;
+    this->ttarget = 1000;
+    this->request_registration_required = BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_onu_tuning_configuration_pack(const bcmolt_onu_tuning_configuration *this, bcmolt_buf *buf)
+{
+    if (!bcmolt_buf_write_u32(buf, this->tsource))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_write_u32(buf, this->ttarget))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_write_bool(buf, this->request_registration_required))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_onu_tuning_configuration_unpack(bcmolt_onu_tuning_configuration *this, bcmolt_buf *buf, void **extra_mem)
+{
+    if (!bcmolt_buf_read_u32(buf, &this->tsource))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_read_u32(buf, &this->ttarget))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_read_bool(buf, &this->request_registration_required))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_onu_tuning_configuration_scan(bcmolt_buf *packed, uint32_t *extra_mem)
+{
+    (void)extra_mem;
+    return bcmolt_buf_skip(packed, 9);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_onu_tuning_configuration_bounds_check(const bcmolt_onu_tuning_configuration *this)
+{
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_pon_id_set_default(bcmolt_pon_id *this)
+{
+    this->administrative_label = 0;
+    this->dwlch_id = 0;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_pon_id_pack(const bcmolt_pon_id *this, bcmolt_buf *buf)
+{
+    if (!bcmolt_buf_write_u32(buf, this->administrative_label))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_write_u8(buf, this->dwlch_id))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_pon_id_unpack(bcmolt_pon_id *this, bcmolt_buf *buf, void **extra_mem)
+{
+    if (!bcmolt_buf_read_u32(buf, &this->administrative_label))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_read_u8(buf, &this->dwlch_id))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_pon_id_scan(bcmolt_buf *packed, uint32_t *extra_mem)
+{
+    (void)extra_mem;
+    return bcmolt_buf_skip(packed, 5);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_pon_id_bounds_check(const bcmolt_pon_id *this)
+{
+    if (this->administrative_label > 4294967280UL)
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (this->dwlch_id > 7)
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_operation_control_set_default(bcmolt_operation_control *this)
+{
+    this->re = 0;
+    this->odn_class = BCMOLT_ODN_CLASS_N1;
+    this->ds_fec_mode = BCMOLT_CONTROL_STATE_ENABLE;
+    this->protocol = BCMOLT_TC_PROTOCOL_TC_LAYER_PROTOCOL_G_989_P_3;
+    this->ds_link_type = BCMOLT_LINK_TYPE_UNSPECIFIED;
+    this->pon_id.administrative_label = 0;
+    this->pon_id.dwlch_id = 0;
+    this->c = 0;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_operation_control_pack(const bcmolt_operation_control *this, bcmolt_buf *buf)
+{
+    if (!bcmolt_buf_write_u8(buf, this->re))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_odn_class_pack(this->odn_class, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_control_state_pack(this->ds_fec_mode, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_tc_protocol_pack(this->protocol, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_link_type_pack(this->ds_link_type, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_pon_id_pack(&this->pon_id, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_write_u8(buf, this->c))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_operation_control_unpack(bcmolt_operation_control *this, bcmolt_buf *buf, void **extra_mem)
+{
+    if (!bcmolt_buf_read_u8(buf, &this->re))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_odn_class_unpack(&this->odn_class, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_control_state_unpack(&this->ds_fec_mode, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_tc_protocol_unpack(&this->protocol, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_link_type_unpack(&this->ds_link_type, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_pon_id_unpack(&this->pon_id, buf, extra_mem))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_read_u8(buf, &this->c))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_operation_control_scan(bcmolt_buf *packed, uint32_t *extra_mem)
+{
+    (void)extra_mem;
+    return bcmolt_buf_skip(packed, 11);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_operation_control_bounds_check(const bcmolt_operation_control *this)
+{
+    if (this->re > 1)
+    {
+        return BCMOS_FALSE;
+    }
+
+    switch (this->odn_class)
+    {
+        case BCMOLT_ODN_CLASS_N1:
+            break;
+        case BCMOLT_ODN_CLASS_N2:
+            break;
+        case BCMOLT_ODN_CLASS_E1:
+            break;
+        case BCMOLT_ODN_CLASS_E2:
+            break;
+        default:
+            return BCMOS_FALSE;
+    }
+
+    switch (this->ds_fec_mode)
+    {
+        case BCMOLT_CONTROL_STATE_DISABLE:
+            break;
+        case BCMOLT_CONTROL_STATE_ENABLE:
+            break;
+        default:
+            return BCMOS_FALSE;
+    }
+
+    switch (this->protocol)
+    {
+        case BCMOLT_TC_PROTOCOL_TC_LAYER_PROTOCOL_G_987_P_3:
+            break;
+        case BCMOLT_TC_PROTOCOL_TC_LAYER_PROTOCOL_G_989_P_3:
+            break;
+        default:
+            return BCMOS_FALSE;
+    }
+
+    switch (this->ds_link_type)
+    {
+        case BCMOLT_LINK_TYPE_UNSPECIFIED:
+            break;
+        case BCMOLT_LINK_TYPE_B:
+            break;
+        case BCMOLT_LINK_TYPE_A:
+            break;
+        case BCMOLT_LINK_TYPE_A_AND_B:
+            break;
+        default:
+            return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_pon_id_bounds_check(&this->pon_id))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (this->c > 1)
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_periodic_standby_pon_monitoring_set_default(bcmolt_periodic_standby_pon_monitoring *this)
+{
+    this->interval = 5000;
+    this->control = BCMOLT_CONTROL_STATE_DISABLE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_periodic_standby_pon_monitoring_pack(const bcmolt_periodic_standby_pon_monitoring *this, bcmolt_buf *buf)
+{
+    if (!bcmolt_buf_write_u32(buf, this->interval))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_control_state_pack(this->control, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_periodic_standby_pon_monitoring_unpack(bcmolt_periodic_standby_pon_monitoring *this, bcmolt_buf *buf, void **extra_mem)
+{
+    if (!bcmolt_buf_read_u32(buf, &this->interval))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_control_state_unpack(&this->control, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_periodic_standby_pon_monitoring_scan(bcmolt_buf *packed, uint32_t *extra_mem)
+{
+    (void)extra_mem;
+    return bcmolt_buf_skip(packed, 5);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_periodic_standby_pon_monitoring_bounds_check(const bcmolt_periodic_standby_pon_monitoring *this)
+{
+    if (this->interval < 1000)
+    {
+        return BCMOS_FALSE;
+    }
+
+    switch (this->control)
+    {
+        case BCMOLT_CONTROL_STATE_DISABLE:
+            break;
+        case BCMOLT_CONTROL_STATE_ENABLE:
+            break;
+        default:
+            return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_pon_aggregate_shaper_set_default(bcmolt_pon_aggregate_shaper *this)
+{
+    this->bandwidth_kbps = 0;
+    this->mbs_kB = 0;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_pon_aggregate_shaper_pack(const bcmolt_pon_aggregate_shaper *this, bcmolt_buf *buf)
+{
+    if (!bcmolt_buf_write_u32(buf, this->bandwidth_kbps))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_write_u32(buf, this->mbs_kB))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_pon_aggregate_shaper_unpack(bcmolt_pon_aggregate_shaper *this, bcmolt_buf *buf, void **extra_mem)
+{
+    if (!bcmolt_buf_read_u32(buf, &this->bandwidth_kbps))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_read_u32(buf, &this->mbs_kB))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_pon_aggregate_shaper_scan(bcmolt_buf *packed, uint32_t *extra_mem)
+{
+    (void)extra_mem;
+    return bcmolt_buf_skip(packed, 8);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_pon_aggregate_shaper_bounds_check(const bcmolt_pon_aggregate_shaper *this)
+{
+    if (this->mbs_kB > 4000)
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_pon_alloc_sla_set_default(bcmolt_pon_alloc_sla *this)
+{
+    this->cbr_rt_bw = 0;
+    this->cbr_nrt_bw = 0;
+    this->guaranteed_bw = 0;
+    this->maximum_bw = 0;
+    this->additional_bw_eligibility = BCMOLT_ADDITIONAL_BW_ELIGIBILITY_NONE;
+    this->cbr_rt_compensation = BCMOS_FALSE;
+    this->cbr_rt_ap_index = 0;
+    this->cbr_nrt_ap_index = 0;
+    this->alloc_type = BCMOLT_ALLOC_TYPE_NONE;
+    this->weight = 0;
+    this->priority = 0;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_pon_alloc_sla_pack(const bcmolt_pon_alloc_sla *this, bcmolt_buf *buf)
+{
+    if (!bcmolt_buf_write_u32(buf, this->cbr_rt_bw))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_write_u32(buf, this->cbr_nrt_bw))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_write_u32(buf, this->guaranteed_bw))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_write_u32(buf, this->maximum_bw))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_additional_bw_eligibility_pack(this->additional_bw_eligibility, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_write_bool(buf, this->cbr_rt_compensation))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_write_u8(buf, this->cbr_rt_ap_index))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_write_u8(buf, this->cbr_nrt_ap_index))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_alloc_type_pack(this->alloc_type, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_write_u8(buf, this->weight))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_write_u8(buf, this->priority))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_pon_alloc_sla_unpack(bcmolt_pon_alloc_sla *this, bcmolt_buf *buf, void **extra_mem)
+{
+    if (!bcmolt_buf_read_u32(buf, &this->cbr_rt_bw))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_read_u32(buf, &this->cbr_nrt_bw))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_read_u32(buf, &this->guaranteed_bw))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_read_u32(buf, &this->maximum_bw))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_additional_bw_eligibility_unpack(&this->additional_bw_eligibility, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_read_bool(buf, &this->cbr_rt_compensation))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_read_u8(buf, &this->cbr_rt_ap_index))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_read_u8(buf, &this->cbr_nrt_ap_index))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_alloc_type_unpack(&this->alloc_type, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_read_u8(buf, &this->weight))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_read_u8(buf, &this->priority))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_pon_alloc_sla_scan(bcmolt_buf *packed, uint32_t *extra_mem)
+{
+    (void)extra_mem;
+    return bcmolt_buf_skip(packed, 23);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_pon_alloc_sla_bounds_check(const bcmolt_pon_alloc_sla *this)
+{
+    switch (this->additional_bw_eligibility)
+    {
+        case BCMOLT_ADDITIONAL_BW_ELIGIBILITY_NONE:
+            break;
+        case BCMOLT_ADDITIONAL_BW_ELIGIBILITY_NON_ASSURED:
+            break;
+        case BCMOLT_ADDITIONAL_BW_ELIGIBILITY_BEST_EFFORT:
+            break;
+        default:
+            return BCMOS_FALSE;
+    }
+
+    if (this->cbr_rt_ap_index > 0)
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (this->cbr_nrt_ap_index > 1)
+    {
+        return BCMOS_FALSE;
+    }
+
+    switch (this->alloc_type)
+    {
+        case BCMOLT_ALLOC_TYPE_NONE:
+            break;
+        case BCMOLT_ALLOC_TYPE_NSR:
+            break;
+        case BCMOLT_ALLOC_TYPE_SR:
+            break;
+        default:
+            return BCMOS_FALSE;
+    }
+
+    if (this->weight > 100)
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (this->priority > 7)
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_pon_available_bandwidth_set_default(bcmolt_pon_available_bandwidth *this)
+{
+    this->cbr_bw = 0;
+    this->total_bw = 0;
+    this->next_onu_total_bw = 0;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_pon_available_bandwidth_pack(const bcmolt_pon_available_bandwidth *this, bcmolt_buf *buf)
+{
+    if (!bcmolt_buf_write_u32(buf, this->cbr_bw))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_write_u32(buf, this->total_bw))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_write_u32(buf, this->next_onu_total_bw))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_pon_available_bandwidth_unpack(bcmolt_pon_available_bandwidth *this, bcmolt_buf *buf, void **extra_mem)
+{
+    if (!bcmolt_buf_read_u32(buf, &this->cbr_bw))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_read_u32(buf, &this->total_bw))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_read_u32(buf, &this->next_onu_total_bw))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_pon_available_bandwidth_scan(bcmolt_buf *packed, uint32_t *extra_mem)
+{
+    (void)extra_mem;
+    return bcmolt_buf_skip(packed, 12);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_pon_available_bandwidth_bounds_check(const bcmolt_pon_available_bandwidth *this)
+{
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_pon_dba_set_default(bcmolt_pon_dba *this)
+{
+    this->sr_reporting_block_size = 48;
+    this->dba_mode = BCMOLT_DBA_MODE_NORMAL;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_pon_dba_pack(const bcmolt_pon_dba *this, bcmolt_buf *buf)
+{
+    if (!bcmolt_buf_write_u8(buf, this->sr_reporting_block_size))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_dba_mode_pack(this->dba_mode, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_pon_dba_unpack(bcmolt_pon_dba *this, bcmolt_buf *buf, void **extra_mem)
+{
+    if (!bcmolt_buf_read_u8(buf, &this->sr_reporting_block_size))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_dba_mode_unpack(&this->dba_mode, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_pon_dba_scan(bcmolt_buf *packed, uint32_t *extra_mem)
+{
+    (void)extra_mem;
+    return bcmolt_buf_skip(packed, 2);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_pon_dba_bounds_check(const bcmolt_pon_dba *this)
+{
+    switch (this->dba_mode)
+    {
+        case BCMOLT_DBA_MODE_NORMAL:
+            break;
+        case BCMOLT_DBA_MODE_EXTENDED:
+            break;
+        default:
+            return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_pon_distance_set_default(bcmolt_pon_distance *this)
+{
+    this->max_log_distance = 20;
+    this->max_diff_reach = 20;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_pon_distance_pack(const bcmolt_pon_distance *this, bcmolt_buf *buf)
+{
+    if (!bcmolt_buf_write_u32(buf, this->max_log_distance))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_write_u32(buf, this->max_diff_reach))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_pon_distance_unpack(bcmolt_pon_distance *this, bcmolt_buf *buf, void **extra_mem)
+{
+    if (!bcmolt_buf_read_u32(buf, &this->max_log_distance))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_read_u32(buf, &this->max_diff_reach))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_pon_distance_scan(bcmolt_buf *packed, uint32_t *extra_mem)
+{
+    (void)extra_mem;
+    return bcmolt_buf_skip(packed, 8);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_pon_distance_bounds_check(const bcmolt_pon_distance *this)
+{
+    if (this->max_log_distance < 1)
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (this->max_log_distance > 100)
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (this->max_diff_reach < 1)
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (this->max_diff_reach > 60)
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_pon_drift_control_set_default(bcmolt_pon_drift_control *this)
+{
+    this->drift_interval = 1000;
+    this->drift_limit = 4;
+    this->transmission_control_limit = 8;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_pon_drift_control_pack(const bcmolt_pon_drift_control *this, bcmolt_buf *buf)
+{
+    if (!bcmolt_buf_write_u32(buf, this->drift_interval))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_write_u8(buf, this->drift_limit))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_write_u8(buf, this->transmission_control_limit))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_pon_drift_control_unpack(bcmolt_pon_drift_control *this, bcmolt_buf *buf, void **extra_mem)
+{
+    if (!bcmolt_buf_read_u32(buf, &this->drift_interval))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_read_u8(buf, &this->drift_limit))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_read_u8(buf, &this->transmission_control_limit))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_pon_drift_control_scan(bcmolt_buf *packed, uint32_t *extra_mem)
+{
+    (void)extra_mem;
+    return bcmolt_buf_skip(packed, 6);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_pon_drift_control_bounds_check(const bcmolt_pon_drift_control *this)
+{
+    if (this->drift_interval > 60000UL)
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (this->drift_limit < 1)
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (this->drift_limit > 32)
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (this->transmission_control_limit < 1)
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (this->transmission_control_limit > 64)
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_pon_onu_id_list_u32_set_default(bcmolt_pon_onu_id_list_u32 *this)
+{
+    this->len = 0;
+    this->val = NULL;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_pon_onu_id_list_u32_pack(const bcmolt_pon_onu_id_list_u32 *this, bcmolt_buf *buf)
+{
+    uint32_t i0;
+    if (!bcmolt_buf_write_u32(buf, this->len))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if ((this->len > 0) && (this->val == NULL))
+    {
+        bcmos_trace(BCMOS_TRACE_LEVEL_ERROR, "Error: list field \"val\" of struct \"bcmolt_pon_onu_id_list_u32\" is uninitialized (NULL).  You must allocate memory for this pointer before sending/receiving the message.\n");
+        return BCMOS_FALSE;
+    }
+
+    for (i0 = 0; i0 < this->len; i0++)
+    {
+        if (!bcmolt_buf_write_u16(buf, (uint16_t) this->val[i0]))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_pon_onu_id_list_u32_get_packed_length(const bcmolt_pon_onu_id_list_u32 *this)
+{
+    return 4 + (2 * this->len);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_pon_onu_id_list_u32_unpack(bcmolt_pon_onu_id_list_u32 *this, bcmolt_buf *buf, void **extra_mem)
+{
+    uint32_t i0;
+    if (!bcmolt_buf_read_u32(buf, &this->len))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if ((this->len > 0) && (this->val == NULL))
+    {
+        if (extra_mem == NULL)
+        {
+            bcmos_trace(BCMOS_TRACE_LEVEL_ERROR, "Error: list field \"val\" of struct \"bcmolt_pon_onu_id_list_u32\" is uninitialized (NULL).  You must allocate memory for this pointer before sending/receiving the message.\n");
+            return BCMOS_FALSE;
+        }
+        else
+        {
+            this->val = (bcmolt_pon_onu_id *) *extra_mem;
+            *extra_mem = ((uint8_t *) *extra_mem) + BCMOS_ROUND_TO_WORD(this->len * sizeof(bcmolt_pon_onu_id));
+        }
+    }
+
+    for (i0 = 0; i0 < this->len; i0++)
+    {
+        if (!bcmolt_buf_read_u16(buf, (uint16_t *) &this->val[i0]))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_pon_onu_id_list_u32_scan(bcmolt_buf *packed, uint32_t *extra_mem)
+{
+    uint32_t len;
+    if (!bcmolt_buf_read_u32(packed, &len))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *extra_mem += BCMOS_ROUND_TO_WORD(sizeof(bcmolt_pon_onu_id) * len);
+    if (!bcmolt_buf_skip(packed, len * 2))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_pon_onu_id_list_u32_bounds_check(const bcmolt_pon_onu_id_list_u32 *this)
+{
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_pon_power_level_set_default(bcmolt_pon_power_level *this)
+{
+    this->pls_maximum_allocation_size = 120;
+    this->mode = 0;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_pon_power_level_pack(const bcmolt_pon_power_level *this, bcmolt_buf *buf)
+{
+    if (!bcmolt_buf_write_u32(buf, this->pls_maximum_allocation_size))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_write_u8(buf, this->mode))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_pon_power_level_unpack(bcmolt_pon_power_level *this, bcmolt_buf *buf, void **extra_mem)
+{
+    if (!bcmolt_buf_read_u32(buf, &this->pls_maximum_allocation_size))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_read_u8(buf, &this->mode))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_pon_power_level_scan(bcmolt_buf *packed, uint32_t *extra_mem)
+{
+    (void)extra_mem;
+    return bcmolt_buf_skip(packed, 5);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_pon_power_level_bounds_check(const bcmolt_pon_power_level *this)
+{
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_pon_protection_switching_set_default(bcmolt_pon_protection_switching *this)
+{
+    this->timeout = 100;
+    this->gpio_pin = BCMOLT_GPIO_PIN_UNCONFIGURED;
+    this->options = (bcmolt_pon_protection_switching_options) 0;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_pon_protection_switching_pack(const bcmolt_pon_protection_switching *this, bcmolt_buf *buf)
+{
+    if (!bcmolt_buf_write_u16(buf, this->timeout))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_gpio_pin_pack(this->gpio_pin, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_pon_protection_switching_options_pack(this->options, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_pon_protection_switching_unpack(bcmolt_pon_protection_switching *this, bcmolt_buf *buf, void **extra_mem)
+{
+    if (!bcmolt_buf_read_u16(buf, &this->timeout))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_gpio_pin_unpack(&this->gpio_pin, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_pon_protection_switching_options_unpack(&this->options, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_pon_protection_switching_scan(bcmolt_buf *packed, uint32_t *extra_mem)
+{
+    (void)extra_mem;
+    return bcmolt_buf_skip(packed, 7);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_pon_protection_switching_bounds_check(const bcmolt_pon_protection_switching *this)
+{
+    switch (this->gpio_pin)
+    {
+        case BCMOLT_GPIO_PIN_PIN0:
+            break;
+        case BCMOLT_GPIO_PIN_PIN1:
+            break;
+        case BCMOLT_GPIO_PIN_PIN2:
+            break;
+        case BCMOLT_GPIO_PIN_PIN3:
+            break;
+        case BCMOLT_GPIO_PIN_PIN4:
+            break;
+        case BCMOLT_GPIO_PIN_PIN5:
+            break;
+        case BCMOLT_GPIO_PIN_PIN6:
+            break;
+        case BCMOLT_GPIO_PIN_PIN7:
+            break;
+        case BCMOLT_GPIO_PIN_PIN8:
+            break;
+        case BCMOLT_GPIO_PIN_PIN9:
+            break;
+        case BCMOLT_GPIO_PIN_PIN10:
+            break;
+        case BCMOLT_GPIO_PIN_PIN11:
+            break;
+        case BCMOLT_GPIO_PIN_PIN12:
+            break;
+        case BCMOLT_GPIO_PIN_PIN13:
+            break;
+        case BCMOLT_GPIO_PIN_PIN14:
+            break;
+        case BCMOLT_GPIO_PIN_PIN15:
+            break;
+        case BCMOLT_GPIO_PIN_PIN16:
+            break;
+        case BCMOLT_GPIO_PIN_PIN17:
+            break;
+        case BCMOLT_GPIO_PIN_PIN18:
+            break;
+        case BCMOLT_GPIO_PIN_PIN19:
+            break;
+        case BCMOLT_GPIO_PIN_PIN20:
+            break;
+        case BCMOLT_GPIO_PIN_PIN21:
+            break;
+        case BCMOLT_GPIO_PIN_PIN22:
+            break;
+        case BCMOLT_GPIO_PIN_PIN23:
+            break;
+        case BCMOLT_GPIO_PIN_PIN24:
+            break;
+        case BCMOLT_GPIO_PIN_PIN25:
+            break;
+        case BCMOLT_GPIO_PIN_PIN26:
+            break;
+        case BCMOLT_GPIO_PIN_PIN27:
+            break;
+        case BCMOLT_GPIO_PIN_PIN28:
+            break;
+        case BCMOLT_GPIO_PIN_PIN29:
+            break;
+        case BCMOLT_GPIO_PIN_PIN30:
+            break;
+        case BCMOLT_GPIO_PIN_PIN31:
+            break;
+        case BCMOLT_GPIO_PIN_PIN32:
+            break;
+        case BCMOLT_GPIO_PIN_PIN33:
+            break;
+        case BCMOLT_GPIO_PIN_PIN34:
+            break;
+        case BCMOLT_GPIO_PIN_PIN35:
+            break;
+        case BCMOLT_GPIO_PIN_PIN36:
+            break;
+        case BCMOLT_GPIO_PIN_PIN37:
+            break;
+        case BCMOLT_GPIO_PIN_PIN38:
+            break;
+        case BCMOLT_GPIO_PIN_PIN39:
+            break;
+        case BCMOLT_GPIO_PIN_PIN40:
+            break;
+        case BCMOLT_GPIO_PIN_PIN41:
+            break;
+        case BCMOLT_GPIO_PIN_PIN42:
+            break;
+        case BCMOLT_GPIO_PIN_PIN43:
+            break;
+        case BCMOLT_GPIO_PIN_PIN44:
+            break;
+        case BCMOLT_GPIO_PIN_PIN45:
+            break;
+        case BCMOLT_GPIO_PIN_PIN46:
+            break;
+        case BCMOLT_GPIO_PIN_PIN47:
+            break;
+        case BCMOLT_GPIO_PIN_PIN48:
+            break;
+        case BCMOLT_GPIO_PIN_PIN49:
+            break;
+        case BCMOLT_GPIO_PIN_PIN50:
+            break;
+        case BCMOLT_GPIO_PIN_PIN51:
+            break;
+        case BCMOLT_GPIO_PIN_PIN52:
+            break;
+        case BCMOLT_GPIO_PIN_PIN53:
+            break;
+        case BCMOLT_GPIO_PIN_PIN54:
+            break;
+        case BCMOLT_GPIO_PIN_PIN55:
+            break;
+        case BCMOLT_GPIO_PIN_PIN56:
+            break;
+        case BCMOLT_GPIO_PIN_PIN57:
+            break;
+        case BCMOLT_GPIO_PIN_PIN58:
+            break;
+        case BCMOLT_GPIO_PIN_PIN59:
+            break;
+        case BCMOLT_GPIO_PIN_PIN60:
+            break;
+        case BCMOLT_GPIO_PIN_PIN61:
+            break;
+        case BCMOLT_GPIO_PIN_PIN62:
+            break;
+        case BCMOLT_GPIO_PIN_PIN63:
+            break;
+        case BCMOLT_GPIO_PIN_PIN64:
+            break;
+        case BCMOLT_GPIO_PIN_PIN65:
+            break;
+        case BCMOLT_GPIO_PIN_PIN66:
+            break;
+        case BCMOLT_GPIO_PIN_PIN67:
+            break;
+        case BCMOLT_GPIO_PIN_PIN68:
+            break;
+        case BCMOLT_GPIO_PIN_PIN69:
+            break;
+        case BCMOLT_GPIO_PIN_PIN70:
+            break;
+        case BCMOLT_GPIO_PIN_PIN71:
+            break;
+        case BCMOLT_GPIO_PIN_PIN72:
+            break;
+        case BCMOLT_GPIO_PIN_PIN73:
+            break;
+        case BCMOLT_GPIO_PIN_PIN74:
+            break;
+        case BCMOLT_GPIO_PIN_PIN75:
+            break;
+        case BCMOLT_GPIO_PIN_PIN76:
+            break;
+        case BCMOLT_GPIO_PIN_PIN77:
+            break;
+        case BCMOLT_GPIO_PIN_PIN78:
+            break;
+        case BCMOLT_GPIO_PIN_PIN79:
+            break;
+        case BCMOLT_GPIO_PIN_PIN80:
+            break;
+        case BCMOLT_GPIO_PIN_PIN81:
+            break;
+        case BCMOLT_GPIO_PIN_PIN82:
+            break;
+        case BCMOLT_GPIO_PIN_PIN83:
+            break;
+        case BCMOLT_GPIO_PIN_PIN84:
+            break;
+        case BCMOLT_GPIO_PIN_PIN85:
+            break;
+        case BCMOLT_GPIO_PIN_PIN86:
+            break;
+        case BCMOLT_GPIO_PIN_PIN87:
+            break;
+        case BCMOLT_GPIO_PIN_PIN88:
+            break;
+        case BCMOLT_GPIO_PIN_PIN89:
+            break;
+        case BCMOLT_GPIO_PIN_PIN90:
+            break;
+        case BCMOLT_GPIO_PIN_PIN91:
+            break;
+        case BCMOLT_GPIO_PIN_PIN92:
+            break;
+        case BCMOLT_GPIO_PIN_PIN93:
+            break;
+        case BCMOLT_GPIO_PIN_PIN94:
+            break;
+        case BCMOLT_GPIO_PIN_PIN95:
+            break;
+        case BCMOLT_GPIO_PIN_PIN96:
+            break;
+        case BCMOLT_GPIO_PIN_PIN97:
+            break;
+        case BCMOLT_GPIO_PIN_PIN98:
+            break;
+        case BCMOLT_GPIO_PIN_PIN99:
+            break;
+        case BCMOLT_GPIO_PIN_PIN100:
+            break;
+        case BCMOLT_GPIO_PIN_PIN101:
+            break;
+        case BCMOLT_GPIO_PIN_PIN102:
+            break;
+        case BCMOLT_GPIO_PIN_PIN103:
+            break;
+        case BCMOLT_GPIO_PIN_PIN104:
+            break;
+        case BCMOLT_GPIO_PIN_PIN105:
+            break;
+        case BCMOLT_GPIO_PIN_PIN106:
+            break;
+        case BCMOLT_GPIO_PIN_UNCONFIGURED:
+            break;
+        default:
+            return BCMOS_FALSE;
+    }
+
+    if ((this->options & 0xFFFFFFFCUL) != 0)
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_pon_status_set_default(bcmolt_pon_status *this)
+{
+    this->state = BCMOLT_PON_STATE_INACTIVE;
+    this->los_status = BCMOLT_STATUS_OFF;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_pon_status_pack(const bcmolt_pon_status *this, bcmolt_buf *buf)
+{
+    if (!bcmolt_pon_state_pack(this->state, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_status_pack(this->los_status, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_pon_status_unpack(bcmolt_pon_status *this, bcmolt_buf *buf, void **extra_mem)
+{
+    if (!bcmolt_pon_state_unpack(&this->state, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_status_unpack(&this->los_status, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_pon_status_scan(bcmolt_buf *packed, uint32_t *extra_mem)
+{
+    (void)extra_mem;
+    return bcmolt_buf_skip(packed, 2);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_pon_status_bounds_check(const bcmolt_pon_status *this)
+{
+    switch (this->state)
+    {
+        case BCMOLT_PON_STATE_INACTIVE:
+            break;
+        case BCMOLT_PON_STATE_PROCESSING:
+            break;
+        case BCMOLT_PON_STATE_ACTIVE_WORKING:
+            break;
+        case BCMOLT_PON_STATE_ACTIVE_STANDBY:
+            break;
+        default:
+            return BCMOS_FALSE;
+    }
+
+    switch (this->los_status)
+    {
+        case BCMOLT_STATUS_OFF:
+            break;
+        case BCMOLT_STATUS_ON:
+            break;
+        case BCMOLT_STATUS_NO_CHANGE:
+            break;
+        default:
+            return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_prbs_checker_config_set_default(bcmolt_prbs_checker_config *this)
+{
+    this->polynom = BCMOLT_PRBS_POLYNOMIAL_PRBS_7;
+    this->mode = BCMOLT_PRBS_CHECKER_MODE_SELF_SYNC;
+    this->data_invert = BCMOS_FALSE;
+    this->control = BCMOLT_CONTROL_STATE_DISABLE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_prbs_checker_config_pack(const bcmolt_prbs_checker_config *this, bcmolt_buf *buf)
+{
+    if (!bcmolt_prbs_polynomial_pack(this->polynom, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_prbs_checker_mode_pack(this->mode, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_write_bool(buf, this->data_invert))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_control_state_pack(this->control, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_prbs_checker_config_unpack(bcmolt_prbs_checker_config *this, bcmolt_buf *buf, void **extra_mem)
+{
+    if (!bcmolt_prbs_polynomial_unpack(&this->polynom, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_prbs_checker_mode_unpack(&this->mode, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_read_bool(buf, &this->data_invert))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_control_state_unpack(&this->control, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_prbs_checker_config_scan(bcmolt_buf *packed, uint32_t *extra_mem)
+{
+    (void)extra_mem;
+    return bcmolt_buf_skip(packed, 4);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_prbs_checker_config_bounds_check(const bcmolt_prbs_checker_config *this)
+{
+    switch (this->polynom)
+    {
+        case BCMOLT_PRBS_POLYNOMIAL_PRBS_7:
+            break;
+        case BCMOLT_PRBS_POLYNOMIAL_PRBS_9:
+            break;
+        case BCMOLT_PRBS_POLYNOMIAL_PRBS_11:
+            break;
+        case BCMOLT_PRBS_POLYNOMIAL_PRBS_15:
+            break;
+        case BCMOLT_PRBS_POLYNOMIAL_PRBS_23:
+            break;
+        case BCMOLT_PRBS_POLYNOMIAL_PRBS_31:
+            break;
+        case BCMOLT_PRBS_POLYNOMIAL_PRBS_58:
+            break;
+        default:
+            return BCMOS_FALSE;
+    }
+
+    switch (this->mode)
+    {
+        case BCMOLT_PRBS_CHECKER_MODE_SELF_SYNC:
+            break;
+        case BCMOLT_PRBS_CHECKER_MODE_INITIAL_SEED_MODE:
+            break;
+        case BCMOLT_PRBS_CHECKER_MODE_INITIAL_SEED_MODE_2:
+            break;
+        default:
+            return BCMOS_FALSE;
+    }
+
+    switch (this->control)
+    {
+        case BCMOLT_CONTROL_STATE_DISABLE:
+            break;
+        case BCMOLT_CONTROL_STATE_ENABLE:
+            break;
+        default:
+            return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_prbs_generator_config_set_default(bcmolt_prbs_generator_config *this)
+{
+    this->polynom = BCMOLT_PRBS_POLYNOMIAL_PRBS_7;
+    this->error_insert = BCMOS_FALSE;
+    this->invert = BCMOS_FALSE;
+    this->control = BCMOLT_CONTROL_STATE_DISABLE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_prbs_generator_config_pack(const bcmolt_prbs_generator_config *this, bcmolt_buf *buf)
+{
+    if (!bcmolt_prbs_polynomial_pack(this->polynom, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_write_bool(buf, this->error_insert))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_write_bool(buf, this->invert))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_control_state_pack(this->control, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_prbs_generator_config_unpack(bcmolt_prbs_generator_config *this, bcmolt_buf *buf, void **extra_mem)
+{
+    if (!bcmolt_prbs_polynomial_unpack(&this->polynom, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_read_bool(buf, &this->error_insert))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_read_bool(buf, &this->invert))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_control_state_unpack(&this->control, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_prbs_generator_config_scan(bcmolt_buf *packed, uint32_t *extra_mem)
+{
+    (void)extra_mem;
+    return bcmolt_buf_skip(packed, 4);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_prbs_generator_config_bounds_check(const bcmolt_prbs_generator_config *this)
+{
+    switch (this->polynom)
+    {
+        case BCMOLT_PRBS_POLYNOMIAL_PRBS_7:
+            break;
+        case BCMOLT_PRBS_POLYNOMIAL_PRBS_9:
+            break;
+        case BCMOLT_PRBS_POLYNOMIAL_PRBS_11:
+            break;
+        case BCMOLT_PRBS_POLYNOMIAL_PRBS_15:
+            break;
+        case BCMOLT_PRBS_POLYNOMIAL_PRBS_23:
+            break;
+        case BCMOLT_PRBS_POLYNOMIAL_PRBS_31:
+            break;
+        case BCMOLT_PRBS_POLYNOMIAL_PRBS_58:
+            break;
+        default:
+            return BCMOS_FALSE;
+    }
+
+    switch (this->control)
+    {
+        case BCMOLT_CONTROL_STATE_DISABLE:
+            break;
+        case BCMOLT_CONTROL_STATE_ENABLE:
+            break;
+        default:
+            return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_prbs_status_set_default(bcmolt_prbs_status *this)
+{
+    this->lock_state = BCMOLT_PRBS_LOCK_STATE_UNLOCKED;
+    this->error_counts = 0;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_prbs_status_pack(const bcmolt_prbs_status *this, bcmolt_buf *buf)
+{
+    if (!bcmolt_prbs_lock_state_pack(this->lock_state, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_write_u32(buf, this->error_counts))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_prbs_status_unpack(bcmolt_prbs_status *this, bcmolt_buf *buf, void **extra_mem)
+{
+    if (!bcmolt_prbs_lock_state_unpack(&this->lock_state, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_read_u32(buf, &this->error_counts))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_prbs_status_scan(bcmolt_buf *packed, uint32_t *extra_mem)
+{
+    (void)extra_mem;
+    return bcmolt_buf_skip(packed, 5);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_prbs_status_bounds_check(const bcmolt_prbs_status *this)
+{
+    switch (this->lock_state)
+    {
+        case BCMOLT_PRBS_LOCK_STATE_UNLOCKED:
+            break;
+        case BCMOLT_PRBS_LOCK_STATE_LOCKED:
+            break;
+        default:
+            return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_ranging_control_configuration_set_default(bcmolt_ranging_control_configuration *this)
+{
+    this->wait_state_1_window_size = 0;
+    this->wait_state_2_window_size = 0;
+    this->wait_after_resync_4 = BCMOS_FALSE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_ranging_control_configuration_pack(const bcmolt_ranging_control_configuration *this, bcmolt_buf *buf)
+{
+    if (!bcmolt_buf_write_u8(buf, this->wait_state_1_window_size))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_write_u8(buf, this->wait_state_2_window_size))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_write_bool(buf, this->wait_after_resync_4))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_ranging_control_configuration_unpack(bcmolt_ranging_control_configuration *this, bcmolt_buf *buf, void **extra_mem)
+{
+    if (!bcmolt_buf_read_u8(buf, &this->wait_state_1_window_size))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_read_u8(buf, &this->wait_state_2_window_size))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_read_bool(buf, &this->wait_after_resync_4))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_ranging_control_configuration_scan(bcmolt_buf *packed, uint32_t *extra_mem)
+{
+    (void)extra_mem;
+    return bcmolt_buf_skip(packed, 3);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_ranging_control_configuration_bounds_check(const bcmolt_ranging_control_configuration *this)
+{
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_ranging_resync_conditions_set_default(bcmolt_ranging_resync_conditions *this)
+{
+    this->after_init = BCMOS_FALSE;
+    this->after_no_ed = BCMOS_FALSE;
+    this->after_ed = BCMOS_FALSE;
+    this->after_no_del = BCMOS_FALSE;
+    this->after_ranging_access = BCMOS_FALSE;
+    this->med_val = 0;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_ranging_resync_conditions_pack(const bcmolt_ranging_resync_conditions *this, bcmolt_buf *buf)
+{
+    if (!bcmolt_buf_write_bool(buf, this->after_init))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_write_bool(buf, this->after_no_ed))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_write_bool(buf, this->after_ed))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_write_bool(buf, this->after_no_del))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_write_bool(buf, this->after_ranging_access))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_write_u16(buf, this->med_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_ranging_resync_conditions_unpack(bcmolt_ranging_resync_conditions *this, bcmolt_buf *buf, void **extra_mem)
+{
+    if (!bcmolt_buf_read_bool(buf, &this->after_init))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_read_bool(buf, &this->after_no_ed))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_read_bool(buf, &this->after_ed))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_read_bool(buf, &this->after_no_del))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_read_bool(buf, &this->after_ranging_access))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_read_u16(buf, &this->med_val))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_ranging_resync_conditions_scan(bcmolt_buf *packed, uint32_t *extra_mem)
+{
+    (void)extra_mem;
+    return bcmolt_buf_skip(packed, 7);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_ranging_resync_conditions_bounds_check(const bcmolt_ranging_resync_conditions *this)
+{
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_ranging_rssi_control_set_default(bcmolt_ranging_rssi_control *this)
+{
+    this->after_no_ed = BCMOS_FALSE;
+    this->after_ed = BCMOS_FALSE;
+    this->after_reset_3 = BCMOS_FALSE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_ranging_rssi_control_pack(const bcmolt_ranging_rssi_control *this, bcmolt_buf *buf)
+{
+    if (!bcmolt_buf_write_bool(buf, this->after_no_ed))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_write_bool(buf, this->after_ed))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_write_bool(buf, this->after_reset_3))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_ranging_rssi_control_unpack(bcmolt_ranging_rssi_control *this, bcmolt_buf *buf, void **extra_mem)
+{
+    if (!bcmolt_buf_read_bool(buf, &this->after_no_ed))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_read_bool(buf, &this->after_ed))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_read_bool(buf, &this->after_reset_3))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_ranging_rssi_control_scan(bcmolt_buf *packed, uint32_t *extra_mem)
+{
+    (void)extra_mem;
+    return bcmolt_buf_skip(packed, 3);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_ranging_rssi_control_bounds_check(const bcmolt_ranging_rssi_control *this)
+{
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_request_registration_status_set_default(bcmolt_request_registration_status *this)
+{
+    this->request_registration_state = BCMOLT_CONTROL_STATE_DISABLE;
+    this->sma_flag = BCMOS_FALSE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_request_registration_status_pack(const bcmolt_request_registration_status *this, bcmolt_buf *buf)
+{
+    if (!bcmolt_control_state_pack(this->request_registration_state, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_write_bool(buf, this->sma_flag))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_request_registration_status_unpack(bcmolt_request_registration_status *this, bcmolt_buf *buf, void **extra_mem)
+{
+    if (!bcmolt_control_state_unpack(&this->request_registration_state, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_read_bool(buf, &this->sma_flag))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_request_registration_status_scan(bcmolt_buf *packed, uint32_t *extra_mem)
+{
+    (void)extra_mem;
+    return bcmolt_buf_skip(packed, 2);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_request_registration_status_bounds_check(const bcmolt_request_registration_status *this)
+{
+    switch (this->request_registration_state)
+    {
+        case BCMOLT_CONTROL_STATE_DISABLE:
+            break;
+        case BCMOLT_CONTROL_STATE_ENABLE:
+            break;
+        default:
+            return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_rogue_detection_special_map_set_default(bcmolt_rogue_detection_special_map *this)
+{
+    this->plo_size = 0;
+    this->alloc_id = (bcmolt_pon_alloc_id) 0;
+    this->onu_id = (bcmolt_pon_onu_id) 0;
+    this->access_size = 0;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_rogue_detection_special_map_pack(const bcmolt_rogue_detection_special_map *this, bcmolt_buf *buf)
+{
+    if (!bcmolt_buf_write_u32(buf, this->plo_size))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_write_u16(buf, (uint16_t) this->alloc_id))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_write_u16(buf, (uint16_t) this->onu_id))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_write_u8(buf, this->access_size))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_rogue_detection_special_map_unpack(bcmolt_rogue_detection_special_map *this, bcmolt_buf *buf, void **extra_mem)
+{
+    if (!bcmolt_buf_read_u32(buf, &this->plo_size))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_read_u16(buf, (uint16_t *) &this->alloc_id))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_read_u16(buf, (uint16_t *) &this->onu_id))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_read_u8(buf, &this->access_size))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_rogue_detection_special_map_scan(bcmolt_buf *packed, uint32_t *extra_mem)
+{
+    (void)extra_mem;
+    return bcmolt_buf_skip(packed, 9);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_rogue_detection_special_map_bounds_check(const bcmolt_rogue_detection_special_map *this)
+{
+    if (this->alloc_id > (bcmolt_pon_alloc_id) 16383)
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (this->onu_id > (bcmolt_pon_onu_id) 511)
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_rogue_detection_special_map_list_u32_max_8_set_default(bcmolt_rogue_detection_special_map_list_u32_max_8 *this)
+{
+    this->len = 0;
+    this->val = NULL;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_rogue_detection_special_map_list_u32_max_8_pack(const bcmolt_rogue_detection_special_map_list_u32_max_8 *this, bcmolt_buf *buf)
+{
+    uint32_t i0;
+    if (!bcmolt_buf_write_u32(buf, this->len))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if ((this->len > 0) && (this->val == NULL))
+    {
+        bcmos_trace(BCMOS_TRACE_LEVEL_ERROR, "Error: list field \"val\" of struct \"bcmolt_rogue_detection_special_map_list_u32_max_8\" is uninitialized (NULL).  You must allocate memory for this pointer before sending/receiving the message.\n");
+        return BCMOS_FALSE;
+    }
+
+    if (this->len > 8)
+    {
+        return BCMOS_FALSE;
+    }
+
+    for (i0 = 0; i0 < this->len; i0++)
+    {
+        if (!bcmolt_rogue_detection_special_map_pack(&this->val[i0], buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_rogue_detection_special_map_list_u32_max_8_get_packed_length(const bcmolt_rogue_detection_special_map_list_u32_max_8 *this)
+{
+    return 4 + (9 * this->len);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_rogue_detection_special_map_list_u32_max_8_unpack(bcmolt_rogue_detection_special_map_list_u32_max_8 *this, bcmolt_buf *buf, void **extra_mem)
+{
+    uint32_t i0;
+    if (!bcmolt_buf_read_u32(buf, &this->len))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if ((this->len > 0) && (this->val == NULL))
+    {
+        if (extra_mem == NULL)
+        {
+            bcmos_trace(BCMOS_TRACE_LEVEL_ERROR, "Error: list field \"val\" of struct \"bcmolt_rogue_detection_special_map_list_u32_max_8\" is uninitialized (NULL).  You must allocate memory for this pointer before sending/receiving the message.\n");
+            return BCMOS_FALSE;
+        }
+        else
+        {
+            this->val = (bcmolt_rogue_detection_special_map *) *extra_mem;
+            *extra_mem = ((uint8_t *) *extra_mem) + BCMOS_ROUND_TO_WORD(this->len * sizeof(bcmolt_rogue_detection_special_map));
+        }
+    }
+
+    if (this->len > 8)
+    {
+        return BCMOS_FALSE;
+    }
+
+    for (i0 = 0; i0 < this->len; i0++)
+    {
+        if (!bcmolt_rogue_detection_special_map_unpack(&this->val[i0], buf, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_rogue_detection_special_map_list_u32_max_8_scan(bcmolt_buf *packed, uint32_t *extra_mem)
+{
+    uint32_t len;
+    if (!bcmolt_buf_read_u32(packed, &len))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *extra_mem += BCMOS_ROUND_TO_WORD(sizeof(bcmolt_rogue_detection_special_map) * len);
+    if (!bcmolt_buf_skip(packed, len * 9))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_rogue_detection_special_map_list_u32_max_8_bounds_check(const bcmolt_rogue_detection_special_map_list_u32_max_8 *this)
+{
+    if (this->len > 8)
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_rogue_detection_algorithm_set_default(bcmolt_rogue_detection_algorithm *this)
+{
+    this->algorithm_type = (bcmolt_rogue_detection_algorithm_type) 0;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_rogue_detection_algorithm_pack(const bcmolt_rogue_detection_algorithm *this, bcmolt_buf *buf)
+{
+    if (!bcmolt_rogue_detection_algorithm_type_pack(this->algorithm_type, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    switch (this->algorithm_type)
+    {
+        case BCMOLT_ROGUE_DETECTION_ALGORITHM_TYPE_EARLY_ROGUE_DETECTION:
+            {
+                if (!bcmolt_rogue_detection_window_pack(this->u.early_rogue_detection.measurement_type, buf))
+                {
+                    return BCMOS_FALSE;
+                }
+
+                if (!bcmolt_buf_write_u32(buf, this->u.early_rogue_detection.interval))
+                {
+                    return BCMOS_FALSE;
+                }
+
+                if (!bcmolt_buf_write_bool(buf, this->u.early_rogue_detection.second_ranging_window))
+                {
+                    return BCMOS_FALSE;
+                }
+
+                if (!bcmolt_alloc_type_to_scan_pack(this->u.early_rogue_detection.alloc_type_to_scan, buf))
+                {
+                    return BCMOS_FALSE;
+                }
+            }
+            break;
+        case BCMOLT_ROGUE_DETECTION_ALGORITHM_TYPE_SPECIAL_MAP:
+            {
+                if (!bcmolt_rogue_detection_special_map_list_u32_max_8_pack(&this->u.special_map.accesses, buf))
+                {
+                    return BCMOS_FALSE;
+                }
+            }
+            break;
+        case BCMOLT_ROGUE_DETECTION_ALGORITHM_TYPE_EXTENDED_GUARD_TIME:
+            {
+                if (!bcmolt_buf_write_u32(buf, this->u.extended_guard_time.additional_guard_time))
+                {
+                    return BCMOS_FALSE;
+                }
+            }
+            break;
+        default:
+            return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_rogue_detection_algorithm_get_packed_length(const bcmolt_rogue_detection_algorithm *this)
+{
+    uint32_t count = 1;
+    switch (this->algorithm_type)
+    {
+        case BCMOLT_ROGUE_DETECTION_ALGORITHM_TYPE_EARLY_ROGUE_DETECTION:
+            {
+                count += 7;
+            }
+            break;
+        case BCMOLT_ROGUE_DETECTION_ALGORITHM_TYPE_SPECIAL_MAP:
+            {
+                count += bcmolt_rogue_detection_special_map_list_u32_max_8_get_packed_length(&this->u.special_map.accesses);
+            }
+            break;
+        case BCMOLT_ROGUE_DETECTION_ALGORITHM_TYPE_EXTENDED_GUARD_TIME:
+            {
+                count += 4;
+            }
+            break;
+        default:
+            break;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_rogue_detection_algorithm_unpack(bcmolt_rogue_detection_algorithm *this, bcmolt_buf *buf, void **extra_mem)
+{
+    if (!bcmolt_rogue_detection_algorithm_type_unpack(&this->algorithm_type, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    switch (this->algorithm_type)
+    {
+        case BCMOLT_ROGUE_DETECTION_ALGORITHM_TYPE_EARLY_ROGUE_DETECTION:
+            {
+                if (!bcmolt_rogue_detection_window_unpack(&this->u.early_rogue_detection.measurement_type, buf))
+                {
+                    return BCMOS_FALSE;
+                }
+
+                if (!bcmolt_buf_read_u32(buf, &this->u.early_rogue_detection.interval))
+                {
+                    return BCMOS_FALSE;
+                }
+
+                if (!bcmolt_buf_read_bool(buf, &this->u.early_rogue_detection.second_ranging_window))
+                {
+                    return BCMOS_FALSE;
+                }
+
+                if (!bcmolt_alloc_type_to_scan_unpack(&this->u.early_rogue_detection.alloc_type_to_scan, buf))
+                {
+                    return BCMOS_FALSE;
+                }
+            }
+            break;
+        case BCMOLT_ROGUE_DETECTION_ALGORITHM_TYPE_SPECIAL_MAP:
+            {
+                if (!bcmolt_rogue_detection_special_map_list_u32_max_8_unpack(&this->u.special_map.accesses, buf, extra_mem))
+                {
+                    return BCMOS_FALSE;
+                }
+            }
+            break;
+        case BCMOLT_ROGUE_DETECTION_ALGORITHM_TYPE_EXTENDED_GUARD_TIME:
+            {
+                if (!bcmolt_buf_read_u32(buf, &this->u.extended_guard_time.additional_guard_time))
+                {
+                    return BCMOS_FALSE;
+                }
+            }
+            break;
+        default:
+            return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_rogue_detection_algorithm_scan(bcmolt_buf *packed, uint32_t *extra_mem)
+{
+    bcmolt_rogue_detection_algorithm_type algorithm_type;
+    if (!bcmolt_rogue_detection_algorithm_type_unpack(&algorithm_type, packed))
+    {
+        return BCMOS_FALSE;
+    }
+
+    switch (algorithm_type)
+    {
+        case BCMOLT_ROGUE_DETECTION_ALGORITHM_TYPE_EARLY_ROGUE_DETECTION:
+            {
+                if (!bcmolt_buf_skip(packed, 1))
+                {
+                    return BCMOS_FALSE;
+                }
+
+                if (!bcmolt_buf_skip(packed, 4))
+                {
+                    return BCMOS_FALSE;
+                }
+
+                if (!bcmolt_buf_skip(packed, 1))
+                {
+                    return BCMOS_FALSE;
+                }
+
+                if (!bcmolt_buf_skip(packed, 1))
+                {
+                    return BCMOS_FALSE;
+                }
+            }
+            break;
+        case BCMOLT_ROGUE_DETECTION_ALGORITHM_TYPE_SPECIAL_MAP:
+            {
+                if (!bcmolt_rogue_detection_special_map_list_u32_max_8_scan(packed, extra_mem))
+                {
+                    return BCMOS_FALSE;
+                }
+            }
+            break;
+        case BCMOLT_ROGUE_DETECTION_ALGORITHM_TYPE_EXTENDED_GUARD_TIME:
+            {
+                if (!bcmolt_buf_skip(packed, 4))
+                {
+                    return BCMOS_FALSE;
+                }
+            }
+            break;
+        default:
+            return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_rogue_detection_algorithm_bounds_check(const bcmolt_rogue_detection_algorithm *this)
+{
+    switch (this->algorithm_type)
+    {
+        case BCMOLT_ROGUE_DETECTION_ALGORITHM_TYPE_EARLY_ROGUE_DETECTION:
+            {
+                switch (this->u.early_rogue_detection.measurement_type)
+                {
+                    case BCMOLT_ROGUE_DETECTION_WINDOW_SILENT_WINDOW:
+                        break;
+                    case BCMOLT_ROGUE_DETECTION_WINDOW_CUT_OFF_WINDOW:
+                        break;
+                    default:
+                        return BCMOS_FALSE;
+                }
+
+                if (this->u.early_rogue_detection.interval < 1000)
+                {
+                    return BCMOS_FALSE;
+                }
+
+                if (this->u.early_rogue_detection.interval > 10000000UL)
+                {
+                    return BCMOS_FALSE;
+                }
+
+                switch (this->u.early_rogue_detection.alloc_type_to_scan)
+                {
+                    case BCMOLT_ALLOC_TYPE_TO_SCAN_UNUSED:
+                        break;
+                    case BCMOLT_ALLOC_TYPE_TO_SCAN_PREVIOUSLY_USED:
+                        break;
+                    case BCMOLT_ALLOC_TYPE_TO_SCAN_ALL:
+                        break;
+                    default:
+                        return BCMOS_FALSE;
+                }
+            }
+            break;
+        case BCMOLT_ROGUE_DETECTION_ALGORITHM_TYPE_SPECIAL_MAP:
+            {
+                if (this->u.special_map.accesses.len > 8)
+                {
+                    return BCMOS_FALSE;
+                }
+
+                if (!bcmolt_rogue_detection_special_map_list_u32_max_8_bounds_check(&this->u.special_map.accesses))
+                {
+                    return BCMOS_FALSE;
+                }
+            }
+            break;
+        case BCMOLT_ROGUE_DETECTION_ALGORITHM_TYPE_EXTENDED_GUARD_TIME:
+            {
+                if (this->u.extended_guard_time.additional_guard_time > 500)
+                {
+                    return BCMOS_FALSE;
+                }
+            }
+            break;
+        default:
+            return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_rogue_onu_detection_process_set_default(bcmolt_rogue_onu_detection_process *this)
+{
+    this->control = BCMOLT_CONTROL_STATE_DISABLE;
+    this->detection_algorithm.algorithm_type = BCMOLT_ROGUE_DETECTION_ALGORITHM_TYPE_EARLY_ROGUE_DETECTION;
+    this->detection_algorithm.u.early_rogue_detection.measurement_type = BCMOLT_ROGUE_DETECTION_WINDOW_SILENT_WINDOW;
+    this->detection_algorithm.u.early_rogue_detection.interval = 10000;
+    this->detection_algorithm.u.early_rogue_detection.second_ranging_window = BCMOS_FALSE;
+    this->detection_algorithm.u.early_rogue_detection.alloc_type_to_scan = BCMOLT_ALLOC_TYPE_TO_SCAN_ALL;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_rogue_onu_detection_process_pack(const bcmolt_rogue_onu_detection_process *this, bcmolt_buf *buf)
+{
+    if (!bcmolt_control_state_pack(this->control, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_rogue_detection_algorithm_pack(&this->detection_algorithm, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_rogue_onu_detection_process_get_packed_length(const bcmolt_rogue_onu_detection_process *this)
+{
+    return 1 + bcmolt_rogue_detection_algorithm_get_packed_length(&this->detection_algorithm);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_rogue_onu_detection_process_unpack(bcmolt_rogue_onu_detection_process *this, bcmolt_buf *buf, void **extra_mem)
+{
+    if (!bcmolt_control_state_unpack(&this->control, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_rogue_detection_algorithm_unpack(&this->detection_algorithm, buf, extra_mem))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_rogue_onu_detection_process_scan(bcmolt_buf *packed, uint32_t *extra_mem)
+{
+    if (!bcmolt_buf_skip(packed, 1))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_rogue_detection_algorithm_scan(packed, extra_mem))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_rogue_onu_detection_process_bounds_check(const bcmolt_rogue_onu_detection_process *this)
+{
+    switch (this->control)
+    {
+        case BCMOLT_CONTROL_STATE_DISABLE:
+            break;
+        case BCMOLT_CONTROL_STATE_ENABLE:
+            break;
+        default:
+            return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_rogue_detection_algorithm_bounds_check(&this->detection_algorithm))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_serdes_configuration_set_default(bcmolt_serdes_configuration *this)
+{
+    this->ranging_mode = BCMOLT_SERDES_RANGING_MODE_BCDR_RESET_MODE;
+    this->multi_ed_mode = BCMOS_FALSE;
+    this->burst_enable_start_offset = 0;
+    this->burst_enable_end_offset = 0;
+    this->ed_invertion = BCMOS_FALSE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_serdes_configuration_pack(const bcmolt_serdes_configuration *this, bcmolt_buf *buf)
+{
+    if (!bcmolt_serdes_ranging_mode_pack(this->ranging_mode, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_write_bool(buf, this->multi_ed_mode))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_write_u16(buf, this->burst_enable_start_offset))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_write_u16(buf, this->burst_enable_end_offset))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_write_bool(buf, this->ed_invertion))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_serdes_configuration_unpack(bcmolt_serdes_configuration *this, bcmolt_buf *buf, void **extra_mem)
+{
+    if (!bcmolt_serdes_ranging_mode_unpack(&this->ranging_mode, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_read_bool(buf, &this->multi_ed_mode))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_read_u16(buf, &this->burst_enable_start_offset))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_read_u16(buf, &this->burst_enable_end_offset))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_read_bool(buf, &this->ed_invertion))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_serdes_configuration_scan(bcmolt_buf *packed, uint32_t *extra_mem)
+{
+    (void)extra_mem;
+    return bcmolt_buf_skip(packed, 7);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_serdes_configuration_bounds_check(const bcmolt_serdes_configuration *this)
+{
+    switch (this->ranging_mode)
+    {
+        case BCMOLT_SERDES_RANGING_MODE_ED_MODE:
+            break;
+        case BCMOLT_SERDES_RANGING_MODE_BCDR_RESET_MODE:
+            break;
+        case BCMOLT_SERDES_RANGING_MODE_FAST_MODE:
+            break;
+        default:
+            return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_serial_number_set_default(bcmolt_serial_number *this)
+{
+    memset(this->vendor_id, 0, sizeof(this->vendor_id));
+    memset(this->vendor_specific, 0, sizeof(this->vendor_specific));
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_serial_number_pack(const bcmolt_serial_number *this, bcmolt_buf *buf)
+{
+    if (!bcmolt_buf_write(buf, this->vendor_id, 4))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_write(buf, this->vendor_specific, 4))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_serial_number_unpack(bcmolt_serial_number *this, bcmolt_buf *buf, void **extra_mem)
+{
+    if (!bcmolt_buf_read(buf, this->vendor_id, 4))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_read(buf, this->vendor_specific, 4))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_serial_number_scan(bcmolt_buf *packed, uint32_t *extra_mem)
+{
+    (void)extra_mem;
+    return bcmolt_buf_skip(packed, 8);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_serial_number_bounds_check(const bcmolt_serial_number *this)
+{
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_solicited_scheduler_set_default(bcmolt_solicited_scheduler *this)
+{
+    this->bandwidth_Kbps = (bcmolt_bandwidth_Kbps) 0;
+    this->max_burst_size_tq = (bcmolt_time_quanta) 0;
+    this->priority = 0;
+    this->weight_tq = (bcmolt_time_quanta) 0;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_solicited_scheduler_pack(const bcmolt_solicited_scheduler *this, bcmolt_buf *buf)
+{
+    if (!bcmolt_buf_write_u32(buf, (uint32_t) this->bandwidth_Kbps))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_write_u32(buf, (uint32_t) this->max_burst_size_tq))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_write_u8(buf, this->priority))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_write_u32(buf, (uint32_t) this->weight_tq))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_solicited_scheduler_unpack(bcmolt_solicited_scheduler *this, bcmolt_buf *buf, void **extra_mem)
+{
+    if (!bcmolt_buf_read_u32(buf, (uint32_t *) &this->bandwidth_Kbps))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_read_u32(buf, (uint32_t *) &this->max_burst_size_tq))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_read_u8(buf, &this->priority))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_read_u32(buf, (uint32_t *) &this->weight_tq))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_solicited_scheduler_scan(bcmolt_buf *packed, uint32_t *extra_mem)
+{
+    (void)extra_mem;
+    return bcmolt_buf_skip(packed, 13);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_solicited_scheduler_bounds_check(const bcmolt_solicited_scheduler *this)
+{
+    if (this->priority > 7)
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (this->weight_tq > (bcmolt_time_quanta) 262106UL)
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_stat_alarm_trigger_config_set_default(bcmolt_stat_alarm_trigger_config *this)
+{
+    this->type = (bcmolt_stat_condition_type) 0;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_stat_alarm_trigger_config_pack(const bcmolt_stat_alarm_trigger_config *this, bcmolt_buf *buf)
+{
+    if (!bcmolt_stat_condition_type_pack(this->type, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    switch (this->type)
+    {
+        case BCMOLT_STAT_CONDITION_TYPE_RATE_THRESHOLD:
+            {
+                if (!bcmolt_buf_write_u64(buf, this->u.rate_threshold.rising))
+                {
+                    return BCMOS_FALSE;
+                }
+
+                if (!bcmolt_buf_write_u64(buf, this->u.rate_threshold.falling))
+                {
+                    return BCMOS_FALSE;
+                }
+            }
+            break;
+        case BCMOLT_STAT_CONDITION_TYPE_RATE_RANGE:
+            {
+                if (!bcmolt_buf_write_u64(buf, this->u.rate_range.upper))
+                {
+                    return BCMOS_FALSE;
+                }
+
+                if (!bcmolt_buf_write_u64(buf, this->u.rate_range.lower))
+                {
+                    return BCMOS_FALSE;
+                }
+            }
+            break;
+        case BCMOLT_STAT_CONDITION_TYPE_VALUE_THRESHOLD:
+            {
+                if (!bcmolt_buf_write_u64(buf, this->u.value_threshold.limit))
+                {
+                    return BCMOS_FALSE;
+                }
+            }
+            break;
+        case BCMOLT_STAT_CONDITION_TYPE_NONE:
+            {
+            }
+            break;
+        default:
+            return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_stat_alarm_trigger_config_get_packed_length(const bcmolt_stat_alarm_trigger_config *this)
+{
+    uint32_t count = 1;
+    switch (this->type)
+    {
+        case BCMOLT_STAT_CONDITION_TYPE_RATE_THRESHOLD:
+            {
+                count += 16;
+            }
+            break;
+        case BCMOLT_STAT_CONDITION_TYPE_RATE_RANGE:
+            {
+                count += 16;
+            }
+            break;
+        case BCMOLT_STAT_CONDITION_TYPE_VALUE_THRESHOLD:
+            {
+                count += 8;
+            }
+            break;
+        case BCMOLT_STAT_CONDITION_TYPE_NONE:
+            {
+            }
+            break;
+        default:
+            break;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_stat_alarm_trigger_config_unpack(bcmolt_stat_alarm_trigger_config *this, bcmolt_buf *buf, void **extra_mem)
+{
+    if (!bcmolt_stat_condition_type_unpack(&this->type, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    switch (this->type)
+    {
+        case BCMOLT_STAT_CONDITION_TYPE_RATE_THRESHOLD:
+            {
+                if (!bcmolt_buf_read_u64(buf, &this->u.rate_threshold.rising))
+                {
+                    return BCMOS_FALSE;
+                }
+
+                if (!bcmolt_buf_read_u64(buf, &this->u.rate_threshold.falling))
+                {
+                    return BCMOS_FALSE;
+                }
+            }
+            break;
+        case BCMOLT_STAT_CONDITION_TYPE_RATE_RANGE:
+            {
+                if (!bcmolt_buf_read_u64(buf, &this->u.rate_range.upper))
+                {
+                    return BCMOS_FALSE;
+                }
+
+                if (!bcmolt_buf_read_u64(buf, &this->u.rate_range.lower))
+                {
+                    return BCMOS_FALSE;
+                }
+            }
+            break;
+        case BCMOLT_STAT_CONDITION_TYPE_VALUE_THRESHOLD:
+            {
+                if (!bcmolt_buf_read_u64(buf, &this->u.value_threshold.limit))
+                {
+                    return BCMOS_FALSE;
+                }
+            }
+            break;
+        case BCMOLT_STAT_CONDITION_TYPE_NONE:
+            {
+            }
+            break;
+        default:
+            return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_stat_alarm_trigger_config_scan(bcmolt_buf *packed, uint32_t *extra_mem)
+{
+    bcmolt_stat_condition_type type;
+    if (!bcmolt_stat_condition_type_unpack(&type, packed))
+    {
+        return BCMOS_FALSE;
+    }
+
+    switch (type)
+    {
+        case BCMOLT_STAT_CONDITION_TYPE_RATE_THRESHOLD:
+            {
+                if (!bcmolt_buf_skip(packed, 8))
+                {
+                    return BCMOS_FALSE;
+                }
+
+                if (!bcmolt_buf_skip(packed, 8))
+                {
+                    return BCMOS_FALSE;
+                }
+            }
+            break;
+        case BCMOLT_STAT_CONDITION_TYPE_RATE_RANGE:
+            {
+                if (!bcmolt_buf_skip(packed, 8))
+                {
+                    return BCMOS_FALSE;
+                }
+
+                if (!bcmolt_buf_skip(packed, 8))
+                {
+                    return BCMOS_FALSE;
+                }
+            }
+            break;
+        case BCMOLT_STAT_CONDITION_TYPE_VALUE_THRESHOLD:
+            {
+                if (!bcmolt_buf_skip(packed, 8))
+                {
+                    return BCMOS_FALSE;
+                }
+            }
+            break;
+        case BCMOLT_STAT_CONDITION_TYPE_NONE:
+            {
+            }
+            break;
+        default:
+            return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_stat_alarm_trigger_config_bounds_check(const bcmolt_stat_alarm_trigger_config *this)
+{
+    switch (this->type)
+    {
+        case BCMOLT_STAT_CONDITION_TYPE_RATE_THRESHOLD:
+            {
+            }
+            break;
+        case BCMOLT_STAT_CONDITION_TYPE_RATE_RANGE:
+            {
+            }
+            break;
+        case BCMOLT_STAT_CONDITION_TYPE_VALUE_THRESHOLD:
+            {
+            }
+            break;
+        case BCMOLT_STAT_CONDITION_TYPE_NONE:
+            {
+            }
+            break;
+        default:
+            return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_stat_alarm_soak_config_set_default(bcmolt_stat_alarm_soak_config *this)
+{
+    this->active_soak_time = 0;
+    this->clear_soak_time = 0;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_stat_alarm_soak_config_pack(const bcmolt_stat_alarm_soak_config *this, bcmolt_buf *buf)
+{
+    if (!bcmolt_buf_write_u32(buf, this->active_soak_time))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_write_u32(buf, this->clear_soak_time))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_stat_alarm_soak_config_unpack(bcmolt_stat_alarm_soak_config *this, bcmolt_buf *buf, void **extra_mem)
+{
+    if (!bcmolt_buf_read_u32(buf, &this->active_soak_time))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_read_u32(buf, &this->clear_soak_time))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_stat_alarm_soak_config_scan(bcmolt_buf *packed, uint32_t *extra_mem)
+{
+    (void)extra_mem;
+    return bcmolt_buf_skip(packed, 8);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_stat_alarm_soak_config_bounds_check(const bcmolt_stat_alarm_soak_config *this)
+{
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_stat_alarm_config_set_default(bcmolt_stat_alarm_config *this)
+{
+    this->trigger.type = BCMOLT_STAT_CONDITION_TYPE_NONE;
+    this->soak.active_soak_time = 0;
+    this->soak.clear_soak_time = 0;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_stat_alarm_config_pack(const bcmolt_stat_alarm_config *this, bcmolt_buf *buf)
+{
+    if (!bcmolt_stat_alarm_trigger_config_pack(&this->trigger, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_stat_alarm_soak_config_pack(&this->soak, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_stat_alarm_config_get_packed_length(const bcmolt_stat_alarm_config *this)
+{
+    return 8 + bcmolt_stat_alarm_trigger_config_get_packed_length(&this->trigger);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_stat_alarm_config_unpack(bcmolt_stat_alarm_config *this, bcmolt_buf *buf, void **extra_mem)
+{
+    if (!bcmolt_stat_alarm_trigger_config_unpack(&this->trigger, buf, extra_mem))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_stat_alarm_soak_config_unpack(&this->soak, buf, extra_mem))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_stat_alarm_config_scan(bcmolt_buf *packed, uint32_t *extra_mem)
+{
+    if (!bcmolt_stat_alarm_trigger_config_scan(packed, extra_mem))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_skip(packed, 8))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_stat_alarm_config_bounds_check(const bcmolt_stat_alarm_config *this)
+{
+    if (!bcmolt_stat_alarm_trigger_config_bounds_check(&this->trigger))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_stat_alarm_soak_config_bounds_check(&this->soak))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_str_100_set_default(bcmolt_str_100 *this)
+{
+    memset(this->str, 0, 100);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_str_100_pack(const bcmolt_str_100 *this, bcmolt_buf *buf)
+{
+    if (!bcmolt_buf_write(buf, this->str, 100))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_str_100_unpack(bcmolt_str_100 *this, bcmolt_buf *buf, void **extra_mem)
+{
+    if (!bcmolt_buf_read(buf, this->str, 100))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_str_100_scan(bcmolt_buf *packed, uint32_t *extra_mem)
+{
+    (void)extra_mem;
+    return bcmolt_buf_skip(packed, 100);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_str_100_bounds_check(const bcmolt_str_100 *this)
+{
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_str_1000_set_default(bcmolt_str_1000 *this)
+{
+    memset(this->str, 0, 1000);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_str_1000_pack(const bcmolt_str_1000 *this, bcmolt_buf *buf)
+{
+    if (!bcmolt_buf_write(buf, this->str, 1000))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_str_1000_unpack(bcmolt_str_1000 *this, bcmolt_buf *buf, void **extra_mem)
+{
+    if (!bcmolt_buf_read(buf, this->str, 1000))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_str_1000_scan(bcmolt_buf *packed, uint32_t *extra_mem)
+{
+    (void)extra_mem;
+    return bcmolt_buf_skip(packed, 1000);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_str_1000_bounds_check(const bcmolt_str_1000 *this)
+{
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_str_2000_set_default(bcmolt_str_2000 *this)
+{
+    memset(this->str, 0, 2000);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_str_2000_pack(const bcmolt_str_2000 *this, bcmolt_buf *buf)
+{
+    if (!bcmolt_buf_write(buf, this->str, 2000))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_str_2000_unpack(bcmolt_str_2000 *this, bcmolt_buf *buf, void **extra_mem)
+{
+    if (!bcmolt_buf_read(buf, this->str, 2000))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_str_2000_scan(bcmolt_buf *packed, uint32_t *extra_mem)
+{
+    (void)extra_mem;
+    return bcmolt_buf_skip(packed, 2000);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_str_2000_bounds_check(const bcmolt_str_2000 *this)
+{
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_str_256_set_default(bcmolt_str_256 *this)
+{
+    memset(this->str, 0, 256);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_str_256_pack(const bcmolt_str_256 *this, bcmolt_buf *buf)
+{
+    if (!bcmolt_buf_write(buf, this->str, 256))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_str_256_unpack(bcmolt_str_256 *this, bcmolt_buf *buf, void **extra_mem)
+{
+    if (!bcmolt_buf_read(buf, this->str, 256))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_str_256_scan(bcmolt_buf *packed, uint32_t *extra_mem)
+{
+    (void)extra_mem;
+    return bcmolt_buf_skip(packed, 256);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_str_256_bounds_check(const bcmolt_str_256 *this)
+{
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_str_64_set_default(bcmolt_str_64 *this)
+{
+    memset(this->str, 0, 64);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_str_64_pack(const bcmolt_str_64 *this, bcmolt_buf *buf)
+{
+    if (!bcmolt_buf_write(buf, this->str, 64))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_str_64_unpack(bcmolt_str_64 *this, bcmolt_buf *buf, void **extra_mem)
+{
+    if (!bcmolt_buf_read(buf, this->str, 64))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_str_64_scan(bcmolt_buf *packed, uint32_t *extra_mem)
+{
+    (void)extra_mem;
+    return bcmolt_buf_skip(packed, 64);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_str_64_bounds_check(const bcmolt_str_64 *this)
+{
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_sw_error_set_default(bcmolt_sw_error *this)
+{
+    this->first_error_time_us = 0;
+    this->last_error_time_us = 0;
+    this->line_number = 0;
+    this->error_counter = 0;
+    this->instance = 0;
+    memset(this->filename, 0, 64);
+    memset(this->task_name, 0, 64);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_sw_error_pack(const bcmolt_sw_error *this, bcmolt_buf *buf)
+{
+    if (!bcmolt_buf_write_u64(buf, this->first_error_time_us))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_write_u64(buf, this->last_error_time_us))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_write_u32(buf, this->line_number))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_write_u32(buf, this->error_counter))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_write_u32(buf, this->instance))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_write(buf, this->filename, 64))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_write(buf, this->task_name, 64))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_sw_error_unpack(bcmolt_sw_error *this, bcmolt_buf *buf, void **extra_mem)
+{
+    if (!bcmolt_buf_read_u64(buf, &this->first_error_time_us))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_read_u64(buf, &this->last_error_time_us))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_read_u32(buf, &this->line_number))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_read_u32(buf, &this->error_counter))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_read_u32(buf, &this->instance))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_read(buf, this->filename, 64))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_read(buf, this->task_name, 64))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_sw_error_scan(bcmolt_buf *packed, uint32_t *extra_mem)
+{
+    (void)extra_mem;
+    return bcmolt_buf_skip(packed, 156);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_sw_error_bounds_check(const bcmolt_sw_error *this)
+{
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_system_profile_set_default(bcmolt_system_profile *this)
+{
+    this->ng_2_sys_id = 0;
+    this->version = 0;
+    this->channel_spacing = 0;
+    this->us_operating_wavelength_bands = BCMOLT_US_OPERATING_WAVELENGTH_BANDS_EXPANDED_SPECTRUM_WIDE_BAND;
+    this->us_mse = 0;
+    this->loose_calibration_bound = BCMOLT_CALIBRATION_RECORD_UNSPECIFIED;
+    this->fsr = 0;
+    this->twdm_channel_count = 8;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_system_profile_pack(const bcmolt_system_profile *this, bcmolt_buf *buf)
+{
+    if (!bcmolt_buf_write_u32(buf, this->ng_2_sys_id))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_write_u8(buf, this->version))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_write_u8(buf, this->channel_spacing))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_us_operating_wavelength_bands_pack(this->us_operating_wavelength_bands, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_write_u8(buf, this->us_mse))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_calibration_record_pack(this->loose_calibration_bound, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_write_u16(buf, this->fsr))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_write_u8(buf, this->twdm_channel_count))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_system_profile_unpack(bcmolt_system_profile *this, bcmolt_buf *buf, void **extra_mem)
+{
+    if (!bcmolt_buf_read_u32(buf, &this->ng_2_sys_id))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_read_u8(buf, &this->version))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_read_u8(buf, &this->channel_spacing))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_us_operating_wavelength_bands_unpack(&this->us_operating_wavelength_bands, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_read_u8(buf, &this->us_mse))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_calibration_record_unpack(&this->loose_calibration_bound, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_read_u16(buf, &this->fsr))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_read_u8(buf, &this->twdm_channel_count))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_system_profile_scan(bcmolt_buf *packed, uint32_t *extra_mem)
+{
+    (void)extra_mem;
+    return bcmolt_buf_skip(packed, 12);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_system_profile_bounds_check(const bcmolt_system_profile *this)
+{
+    if (this->ng_2_sys_id > 1048575UL)
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (this->version > 15)
+    {
+        return BCMOS_FALSE;
+    }
+
+    switch (this->us_operating_wavelength_bands)
+    {
+        case BCMOLT_US_OPERATING_WAVELENGTH_BANDS_EXPANDED_SPECTRUM_WIDE_BAND:
+            break;
+        case BCMOLT_US_OPERATING_WAVELENGTH_BANDS_EXPANDED_SPECTRUM_REDUCED_BAND:
+            break;
+        case BCMOLT_US_OPERATING_WAVELENGTH_BANDS_EXPANDED_SPECTRUM_NARROW_BAND:
+            break;
+        case BCMOLT_US_OPERATING_WAVELENGTH_BANDS_SHARED_SPECTRUM_WIDE_BAND:
+            break;
+        case BCMOLT_US_OPERATING_WAVELENGTH_BANDS_SHARED_SPECTRUM_REDUCED_BAND:
+            break;
+        case BCMOLT_US_OPERATING_WAVELENGTH_BANDS_SHARED_SPECTRUM_NARROW_BAND:
+            break;
+        default:
+            return BCMOS_FALSE;
+    }
+
+    switch (this->loose_calibration_bound)
+    {
+        case BCMOLT_CALIBRATION_RECORD_UNSPECIFIED:
+            break;
+        case BCMOLT_CALIBRATION_RECORD_UNCALIBRATED:
+            break;
+        case BCMOLT_CALIBRATION_RECORD_LOOSE:
+            break;
+        case BCMOLT_CALIBRATION_RECORD_SUFFICIENT:
+            break;
+        default:
+            return BCMOS_FALSE;
+    }
+
+    if (this->twdm_channel_count > 15)
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_trx_delimiter_set_default(bcmolt_trx_delimiter *this)
+{
+    this->pattern[0] = 171;
+    this->pattern[1] = 89;
+    this->pattern[2] = 131;
+    this->size = 3;
+    this->window_size = 124;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_trx_delimiter_pack(const bcmolt_trx_delimiter *this, bcmolt_buf *buf)
+{
+    if (!bcmolt_buf_write(buf, this->pattern, 3))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_write_u8(buf, this->size))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_write_u8(buf, this->window_size))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_trx_delimiter_unpack(bcmolt_trx_delimiter *this, bcmolt_buf *buf, void **extra_mem)
+{
+    if (!bcmolt_buf_read(buf, this->pattern, 3))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_read_u8(buf, &this->size))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_read_u8(buf, &this->window_size))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_trx_delimiter_scan(bcmolt_buf *packed, uint32_t *extra_mem)
+{
+    (void)extra_mem;
+    return bcmolt_buf_skip(packed, 5);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_trx_delimiter_bounds_check(const bcmolt_trx_delimiter *this)
+{
+    if (this->window_size < 2)
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_trx_energy_detect_set_default(bcmolt_trx_energy_detect *this)
+{
+    this->ranging_ed_source = BCMOLT_ENERGY_DETECT_SOURCE_TRX;
+    this->delimiter_ed_source = BCMOLT_ENERGY_DETECT_SOURCE_TRX;
+    this->minimum_threshold = 0;
+    this->maximum_threshold = 41;
+    this->ed_pattern = 170;
+    this->ed_pattern_size = 0;
+    this->window_size = 124;
+    this->inversion = BCMOS_FALSE;
+    this->no_ed_threshold = 127;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_trx_energy_detect_pack(const bcmolt_trx_energy_detect *this, bcmolt_buf *buf)
+{
+    if (!bcmolt_energy_detect_source_pack(this->ranging_ed_source, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_energy_detect_source_pack(this->delimiter_ed_source, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_write_u8(buf, this->minimum_threshold))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_write_u8(buf, this->maximum_threshold))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_write_u8(buf, this->ed_pattern))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_write_u8(buf, this->ed_pattern_size))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_write_u8(buf, this->window_size))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_write_bool(buf, this->inversion))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_write_u8(buf, this->no_ed_threshold))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_trx_energy_detect_unpack(bcmolt_trx_energy_detect *this, bcmolt_buf *buf, void **extra_mem)
+{
+    if (!bcmolt_energy_detect_source_unpack(&this->ranging_ed_source, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_energy_detect_source_unpack(&this->delimiter_ed_source, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_read_u8(buf, &this->minimum_threshold))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_read_u8(buf, &this->maximum_threshold))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_read_u8(buf, &this->ed_pattern))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_read_u8(buf, &this->ed_pattern_size))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_read_u8(buf, &this->window_size))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_read_bool(buf, &this->inversion))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_read_u8(buf, &this->no_ed_threshold))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_trx_energy_detect_scan(bcmolt_buf *packed, uint32_t *extra_mem)
+{
+    (void)extra_mem;
+    return bcmolt_buf_skip(packed, 9);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_trx_energy_detect_bounds_check(const bcmolt_trx_energy_detect *this)
+{
+    switch (this->ranging_ed_source)
+    {
+        case BCMOLT_ENERGY_DETECT_SOURCE_INTERNAL:
+            break;
+        case BCMOLT_ENERGY_DETECT_SOURCE_TRX:
+            break;
+        case BCMOLT_ENERGY_DETECT_SOURCE_BCDR:
+            break;
+        default:
+            return BCMOS_FALSE;
+    }
+
+    switch (this->delimiter_ed_source)
+    {
+        case BCMOLT_ENERGY_DETECT_SOURCE_INTERNAL:
+            break;
+        case BCMOLT_ENERGY_DETECT_SOURCE_TRX:
+            break;
+        case BCMOLT_ENERGY_DETECT_SOURCE_BCDR:
+            break;
+        default:
+            return BCMOS_FALSE;
+    }
+
+    if (this->window_size < 2)
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_trx_preamble_set_default(bcmolt_trx_preamble *this)
+{
+    this->type_1_size = 0;
+    this->type_2_size = 0;
+    this->type_3_pre_ranging_size = 50;
+    this->type_3_post_ranging_size = 15;
+    this->type_3_pattern = 170;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_trx_preamble_pack(const bcmolt_trx_preamble *this, bcmolt_buf *buf)
+{
+    if (!bcmolt_buf_write_u8(buf, this->type_1_size))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_write_u8(buf, this->type_2_size))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_write_u8(buf, this->type_3_pre_ranging_size))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_write_u8(buf, this->type_3_post_ranging_size))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_write_u8(buf, this->type_3_pattern))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_trx_preamble_unpack(bcmolt_trx_preamble *this, bcmolt_buf *buf, void **extra_mem)
+{
+    if (!bcmolt_buf_read_u8(buf, &this->type_1_size))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_read_u8(buf, &this->type_2_size))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_read_u8(buf, &this->type_3_pre_ranging_size))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_read_u8(buf, &this->type_3_post_ranging_size))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_read_u8(buf, &this->type_3_pattern))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_trx_preamble_scan(bcmolt_buf *packed, uint32_t *extra_mem)
+{
+    (void)extra_mem;
+    return bcmolt_buf_skip(packed, 5);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_trx_preamble_bounds_check(const bcmolt_trx_preamble *this)
+{
+    if (this->type_3_post_ranging_size < 5)
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (this->type_3_post_ranging_size > 120)
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_trx_rx_configuration_set_default(bcmolt_trx_rx_configuration *this)
+{
+    this->wait_window_size = 0;
+    this->ranging_access_window_size = 15;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_trx_rx_configuration_pack(const bcmolt_trx_rx_configuration *this, bcmolt_buf *buf)
+{
+    if (!bcmolt_buf_write_u8(buf, this->wait_window_size))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_write_u8(buf, this->ranging_access_window_size))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_trx_rx_configuration_unpack(bcmolt_trx_rx_configuration *this, bcmolt_buf *buf, void **extra_mem)
+{
+    if (!bcmolt_buf_read_u8(buf, &this->wait_window_size))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_read_u8(buf, &this->ranging_access_window_size))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_trx_rx_configuration_scan(bcmolt_buf *packed, uint32_t *extra_mem)
+{
+    (void)extra_mem;
+    return bcmolt_buf_skip(packed, 2);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_trx_rx_configuration_bounds_check(const bcmolt_trx_rx_configuration *this)
+{
+    if (this->ranging_access_window_size < 7)
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_u32_list_u32_max_500_hex_set_default(bcmolt_u32_list_u32_max_500_hex *this)
+{
+    this->len = 0;
+    this->val = NULL;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_u32_list_u32_max_500_hex_pack(const bcmolt_u32_list_u32_max_500_hex *this, bcmolt_buf *buf)
+{
+    uint32_t i0;
+    if (!bcmolt_buf_write_u32(buf, this->len))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if ((this->len > 0) && (this->val == NULL))
+    {
+        bcmos_trace(BCMOS_TRACE_LEVEL_ERROR, "Error: list field \"val\" of struct \"bcmolt_u32_list_u32_max_500_hex\" is uninitialized (NULL).  You must allocate memory for this pointer before sending/receiving the message.\n");
+        return BCMOS_FALSE;
+    }
+
+    if (this->len > 500)
+    {
+        return BCMOS_FALSE;
+    }
+
+    for (i0 = 0; i0 < this->len; i0++)
+    {
+        if (!bcmolt_buf_write_u32(buf, this->val[i0]))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_u32_list_u32_max_500_hex_get_packed_length(const bcmolt_u32_list_u32_max_500_hex *this)
+{
+    return 4 + (4 * this->len);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_u32_list_u32_max_500_hex_unpack(bcmolt_u32_list_u32_max_500_hex *this, bcmolt_buf *buf, void **extra_mem)
+{
+    uint32_t i0;
+    if (!bcmolt_buf_read_u32(buf, &this->len))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if ((this->len > 0) && (this->val == NULL))
+    {
+        if (extra_mem == NULL)
+        {
+            bcmos_trace(BCMOS_TRACE_LEVEL_ERROR, "Error: list field \"val\" of struct \"bcmolt_u32_list_u32_max_500_hex\" is uninitialized (NULL).  You must allocate memory for this pointer before sending/receiving the message.\n");
+            return BCMOS_FALSE;
+        }
+        else
+        {
+            this->val = (uint32_t *) *extra_mem;
+            *extra_mem = ((uint8_t *) *extra_mem) + BCMOS_ROUND_TO_WORD(this->len * sizeof(uint32_t));
+        }
+    }
+
+    if (this->len > 500)
+    {
+        return BCMOS_FALSE;
+    }
+
+    for (i0 = 0; i0 < this->len; i0++)
+    {
+        if (!bcmolt_buf_read_u32(buf, &this->val[i0]))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_u32_list_u32_max_500_hex_scan(bcmolt_buf *packed, uint32_t *extra_mem)
+{
+    uint32_t len;
+    if (!bcmolt_buf_read_u32(packed, &len))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *extra_mem += BCMOS_ROUND_TO_WORD(sizeof(uint32_t) * len);
+    if (!bcmolt_buf_skip(packed, len * 4))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_u32_list_u32_max_500_hex_bounds_check(const bcmolt_u32_list_u32_max_500_hex *this)
+{
+    if (this->len > 500)
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_u8_list_u16_hex_set_default(bcmolt_u8_list_u16_hex *this)
+{
+    this->len = 0;
+    this->val = NULL;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_u8_list_u16_hex_pack(const bcmolt_u8_list_u16_hex *this, bcmolt_buf *buf)
+{
+    if (!bcmolt_buf_write_u16(buf, this->len))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if ((this->len > 0) && (this->val == NULL))
+    {
+        bcmos_trace(BCMOS_TRACE_LEVEL_ERROR, "Error: list field \"val\" of struct \"bcmolt_u8_list_u16_hex\" is uninitialized (NULL).  You must allocate memory for this pointer before sending/receiving the message.\n");
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_write(buf, this->val, this->len))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_u8_list_u16_hex_get_packed_length(const bcmolt_u8_list_u16_hex *this)
+{
+    return 2 + this->len;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_u8_list_u16_hex_unpack(bcmolt_u8_list_u16_hex *this, bcmolt_buf *buf, void **extra_mem)
+{
+    if (!bcmolt_buf_read_u16(buf, &this->len))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if ((this->len > 0) && (this->val == NULL))
+    {
+        if (extra_mem == NULL)
+        {
+            bcmos_trace(BCMOS_TRACE_LEVEL_ERROR, "Error: list field \"val\" of struct \"bcmolt_u8_list_u16_hex\" is uninitialized (NULL).  You must allocate memory for this pointer before sending/receiving the message.\n");
+            return BCMOS_FALSE;
+        }
+        else
+        {
+            this->val = (uint8_t *) *extra_mem;
+            *extra_mem = ((uint8_t *) *extra_mem) + BCMOS_ROUND_TO_WORD(this->len * sizeof(uint8_t));
+        }
+    }
+
+    if (!bcmolt_buf_read(buf, this->val, this->len))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_u8_list_u16_hex_scan(bcmolt_buf *packed, uint32_t *extra_mem)
+{
+    uint16_t len;
+    if (!bcmolt_buf_read_u16(packed, &len))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *extra_mem += BCMOS_ROUND_TO_WORD(sizeof(uint8_t) * len);
+    if (!bcmolt_buf_skip(packed, len * 1))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_u8_list_u16_hex_bounds_check(const bcmolt_u8_list_u16_hex *this)
+{
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_u8_list_u32_set_default(bcmolt_u8_list_u32 *this)
+{
+    this->len = 0;
+    this->val = NULL;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_u8_list_u32_pack(const bcmolt_u8_list_u32 *this, bcmolt_buf *buf)
+{
+    if (!bcmolt_buf_write_u32(buf, this->len))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if ((this->len > 0) && (this->val == NULL))
+    {
+        bcmos_trace(BCMOS_TRACE_LEVEL_ERROR, "Error: list field \"val\" of struct \"bcmolt_u8_list_u32\" is uninitialized (NULL).  You must allocate memory for this pointer before sending/receiving the message.\n");
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_write(buf, this->val, this->len))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_u8_list_u32_get_packed_length(const bcmolt_u8_list_u32 *this)
+{
+    return 4 + this->len;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_u8_list_u32_unpack(bcmolt_u8_list_u32 *this, bcmolt_buf *buf, void **extra_mem)
+{
+    if (!bcmolt_buf_read_u32(buf, &this->len))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if ((this->len > 0) && (this->val == NULL))
+    {
+        if (extra_mem == NULL)
+        {
+            bcmos_trace(BCMOS_TRACE_LEVEL_ERROR, "Error: list field \"val\" of struct \"bcmolt_u8_list_u32\" is uninitialized (NULL).  You must allocate memory for this pointer before sending/receiving the message.\n");
+            return BCMOS_FALSE;
+        }
+        else
+        {
+            this->val = (uint8_t *) *extra_mem;
+            *extra_mem = ((uint8_t *) *extra_mem) + BCMOS_ROUND_TO_WORD(this->len * sizeof(uint8_t));
+        }
+    }
+
+    if (!bcmolt_buf_read(buf, this->val, this->len))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_u8_list_u32_scan(bcmolt_buf *packed, uint32_t *extra_mem)
+{
+    uint32_t len;
+    if (!bcmolt_buf_read_u32(packed, &len))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *extra_mem += BCMOS_ROUND_TO_WORD(sizeof(uint8_t) * len);
+    if (!bcmolt_buf_skip(packed, len * 1))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_u8_list_u32_bounds_check(const bcmolt_u8_list_u32 *this)
+{
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_u8_list_u32_max_2048_set_default(bcmolt_u8_list_u32_max_2048 *this)
+{
+    this->len = 0;
+    this->val = NULL;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_u8_list_u32_max_2048_pack(const bcmolt_u8_list_u32_max_2048 *this, bcmolt_buf *buf)
+{
+    if (!bcmolt_buf_write_u32(buf, this->len))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if ((this->len > 0) && (this->val == NULL))
+    {
+        bcmos_trace(BCMOS_TRACE_LEVEL_ERROR, "Error: list field \"val\" of struct \"bcmolt_u8_list_u32_max_2048\" is uninitialized (NULL).  You must allocate memory for this pointer before sending/receiving the message.\n");
+        return BCMOS_FALSE;
+    }
+
+    if (this->len > 2048)
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_write(buf, this->val, this->len))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_u8_list_u32_max_2048_get_packed_length(const bcmolt_u8_list_u32_max_2048 *this)
+{
+    return 4 + this->len;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_u8_list_u32_max_2048_unpack(bcmolt_u8_list_u32_max_2048 *this, bcmolt_buf *buf, void **extra_mem)
+{
+    if (!bcmolt_buf_read_u32(buf, &this->len))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if ((this->len > 0) && (this->val == NULL))
+    {
+        if (extra_mem == NULL)
+        {
+            bcmos_trace(BCMOS_TRACE_LEVEL_ERROR, "Error: list field \"val\" of struct \"bcmolt_u8_list_u32_max_2048\" is uninitialized (NULL).  You must allocate memory for this pointer before sending/receiving the message.\n");
+            return BCMOS_FALSE;
+        }
+        else
+        {
+            this->val = (uint8_t *) *extra_mem;
+            *extra_mem = ((uint8_t *) *extra_mem) + BCMOS_ROUND_TO_WORD(this->len * sizeof(uint8_t));
+        }
+    }
+
+    if (this->len > 2048)
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_read(buf, this->val, this->len))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_u8_list_u32_max_2048_scan(bcmolt_buf *packed, uint32_t *extra_mem)
+{
+    uint32_t len;
+    if (!bcmolt_buf_read_u32(packed, &len))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *extra_mem += BCMOS_ROUND_TO_WORD(sizeof(uint8_t) * len);
+    if (!bcmolt_buf_skip(packed, len * 1))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_u8_list_u32_max_2048_bounds_check(const bcmolt_u8_list_u32_max_2048 *this)
+{
+    if (this->len > 2048)
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_ubd_info_set_default(bcmolt_ubd_info *this)
+{
+    this->actual_polling_interval = 0;
+    this->actual_grant_threshold_tq = (bcmolt_time_quanta) 0;
+    this->actual_min_schedulershaper.actual_mbs_tq = (bcmolt_time_quanta) 0;
+    this->actual_min_schedulershaper.actual_weight_tq = (bcmolt_time_quanta) 0;
+    this->actual_max_schedulershaper.actual_mbs_tq = (bcmolt_time_quanta) 0;
+    this->actual_max_schedulershaper.actual_weight_tq = (bcmolt_time_quanta) 0;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_ubd_info_pack(const bcmolt_ubd_info *this, bcmolt_buf *buf)
+{
+    if (!bcmolt_buf_write_u16(buf, this->actual_polling_interval))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_write_u32(buf, (uint32_t) this->actual_grant_threshold_tq))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_actual_schedulershaper_pack(&this->actual_min_schedulershaper, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_actual_schedulershaper_pack(&this->actual_max_schedulershaper, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_ubd_info_unpack(bcmolt_ubd_info *this, bcmolt_buf *buf, void **extra_mem)
+{
+    if (!bcmolt_buf_read_u16(buf, &this->actual_polling_interval))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_read_u32(buf, (uint32_t *) &this->actual_grant_threshold_tq))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_actual_schedulershaper_unpack(&this->actual_min_schedulershaper, buf, extra_mem))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_actual_schedulershaper_unpack(&this->actual_max_schedulershaper, buf, extra_mem))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_ubd_info_scan(bcmolt_buf *packed, uint32_t *extra_mem)
+{
+    (void)extra_mem;
+    return bcmolt_buf_skip(packed, 22);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_ubd_info_bounds_check(const bcmolt_ubd_info *this)
+{
+    if (!bcmolt_actual_schedulershaper_bounds_check(&this->actual_min_schedulershaper))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_actual_schedulershaper_bounds_check(&this->actual_max_schedulershaper))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_upstream_bandwidth_distribution_set_default(bcmolt_upstream_bandwidth_distribution *this)
+{
+    this->polling_interval_us = BCMOLT_POLLING_INTERVAL_AUTOMATIC;
+    this->grant_threshold_tq = (bcmolt_time_quanta) 0;
+    this->min_schedulershaper.bandwidth_Kbps = (bcmolt_bandwidth_Kbps) 0;
+    this->min_schedulershaper.max_burst_size_tq = (bcmolt_time_quanta) 0;
+    this->min_schedulershaper.priority = 0;
+    this->min_schedulershaper.weight_tq = (bcmolt_time_quanta) 0;
+    this->max_schedulershaper.bandwidth_Kbps = (bcmolt_bandwidth_Kbps) 0;
+    this->max_schedulershaper.max_burst_size_tq = (bcmolt_time_quanta) 0;
+    this->max_schedulershaper.priority = 0;
+    this->max_schedulershaper.weight_tq = (bcmolt_time_quanta) 0;
+    this->tdm_grant_size_tq = (bcmolt_time_quanta) 0;
+    this->tdm_grant_interval_us = 0;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_upstream_bandwidth_distribution_pack(const bcmolt_upstream_bandwidth_distribution *this, bcmolt_buf *buf)
+{
+    if (!bcmolt_polling_interval_pack(this->polling_interval_us, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_write_u32(buf, (uint32_t) this->grant_threshold_tq))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_solicited_scheduler_pack(&this->min_schedulershaper, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_solicited_scheduler_pack(&this->max_schedulershaper, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_write_u32(buf, (uint32_t) this->tdm_grant_size_tq))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_write_u32(buf, this->tdm_grant_interval_us))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_upstream_bandwidth_distribution_unpack(bcmolt_upstream_bandwidth_distribution *this, bcmolt_buf *buf, void **extra_mem)
+{
+    if (!bcmolt_polling_interval_unpack(&this->polling_interval_us, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_read_u32(buf, (uint32_t *) &this->grant_threshold_tq))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_solicited_scheduler_unpack(&this->min_schedulershaper, buf, extra_mem))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_solicited_scheduler_unpack(&this->max_schedulershaper, buf, extra_mem))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_read_u32(buf, (uint32_t *) &this->tdm_grant_size_tq))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_read_u32(buf, &this->tdm_grant_interval_us))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_upstream_bandwidth_distribution_scan(bcmolt_buf *packed, uint32_t *extra_mem)
+{
+    (void)extra_mem;
+    return bcmolt_buf_skip(packed, 42);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_upstream_bandwidth_distribution_bounds_check(const bcmolt_upstream_bandwidth_distribution *this)
+{
+    switch (this->polling_interval_us)
+    {
+        case BCMOLT_POLLING_INTERVAL_POLLING_DISABLED:
+            break;
+        case BCMOLT_POLLING_INTERVAL_US_500:
+            break;
+        case BCMOLT_POLLING_INTERVAL_MS_1:
+            break;
+        case BCMOLT_POLLING_INTERVAL_MS_2:
+            break;
+        case BCMOLT_POLLING_INTERVAL_MS_4:
+            break;
+        case BCMOLT_POLLING_INTERVAL_MS_8:
+            break;
+        case BCMOLT_POLLING_INTERVAL_MS_16:
+            break;
+        case BCMOLT_POLLING_INTERVAL_AUTOMATIC:
+            break;
+        default:
+            return BCMOS_FALSE;
+    }
+
+    if (this->grant_threshold_tq > (bcmolt_time_quanta) 65408UL)
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_solicited_scheduler_bounds_check(&this->min_schedulershaper))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_solicited_scheduler_bounds_check(&this->max_schedulershaper))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (this->tdm_grant_size_tq > (bcmolt_time_quanta) 65408UL)
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (this->tdm_grant_interval_us > 50000UL)
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_vlan_tag_set_default(bcmolt_vlan_tag *this)
+{
+    this->vlan_id = (bcmolt_vlan_id) 0;
+    this->pbit = 0;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_vlan_tag_pack(const bcmolt_vlan_tag *this, bcmolt_buf *buf)
+{
+    if (!bcmolt_buf_write_u16(buf, (uint16_t) this->vlan_id))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_write_u8(buf, this->pbit))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_vlan_tag_unpack(bcmolt_vlan_tag *this, bcmolt_buf *buf, void **extra_mem)
+{
+    if (!bcmolt_buf_read_u16(buf, (uint16_t *) &this->vlan_id))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_read_u8(buf, &this->pbit))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_vlan_tag_scan(bcmolt_buf *packed, uint32_t *extra_mem)
+{
+    (void)extra_mem;
+    return bcmolt_buf_skip(packed, 3);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_vlan_tag_bounds_check(const bcmolt_vlan_tag *this)
+{
+    if (this->vlan_id > (bcmolt_vlan_id) 4095)
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (this->pbit > 7)
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_xgpon_alloc_with_state_set_default(bcmolt_xgpon_alloc_with_state *this)
+{
+    this->alloc_id = (bcmolt_xgpon_alloc_id) 0;
+    this->state = BCMOLT_ALLOC_STATE_NOT_CONFIGURED;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_alloc_with_state_pack(const bcmolt_xgpon_alloc_with_state *this, bcmolt_buf *buf)
+{
+    if (!bcmolt_buf_write_u16(buf, (uint16_t) this->alloc_id))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_alloc_state_pack(this->state, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_alloc_with_state_unpack(bcmolt_xgpon_alloc_with_state *this, bcmolt_buf *buf, void **extra_mem)
+{
+    if (!bcmolt_buf_read_u16(buf, (uint16_t *) &this->alloc_id))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_alloc_state_unpack(&this->state, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_alloc_with_state_scan(bcmolt_buf *packed, uint32_t *extra_mem)
+{
+    (void)extra_mem;
+    return bcmolt_buf_skip(packed, 3);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_alloc_with_state_bounds_check(const bcmolt_xgpon_alloc_with_state *this)
+{
+    if (this->alloc_id > (bcmolt_xgpon_alloc_id) 16383)
+    {
+        return BCMOS_FALSE;
+    }
+
+    switch (this->state)
+    {
+        case BCMOLT_ALLOC_STATE_NOT_CONFIGURED:
+            break;
+        case BCMOLT_ALLOC_STATE_INACTIVE:
+            break;
+        case BCMOLT_ALLOC_STATE_PROCESSING:
+            break;
+        case BCMOLT_ALLOC_STATE_ACTIVE:
+            break;
+        default:
+            return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_xgpon_alloc_with_state_list_u16_max_32_set_default(bcmolt_xgpon_alloc_with_state_list_u16_max_32 *this)
+{
+    this->len = 0;
+    this->val = NULL;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_alloc_with_state_list_u16_max_32_pack(const bcmolt_xgpon_alloc_with_state_list_u16_max_32 *this, bcmolt_buf *buf)
+{
+    uint16_t i0;
+    if (!bcmolt_buf_write_u16(buf, this->len))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if ((this->len > 0) && (this->val == NULL))
+    {
+        bcmos_trace(BCMOS_TRACE_LEVEL_ERROR, "Error: list field \"val\" of struct \"bcmolt_xgpon_alloc_with_state_list_u16_max_32\" is uninitialized (NULL).  You must allocate memory for this pointer before sending/receiving the message.\n");
+        return BCMOS_FALSE;
+    }
+
+    if (this->len > 32)
+    {
+        return BCMOS_FALSE;
+    }
+
+    for (i0 = 0; i0 < this->len; i0++)
+    {
+        if (!bcmolt_xgpon_alloc_with_state_pack(&this->val[i0], buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_xgpon_alloc_with_state_list_u16_max_32_get_packed_length(const bcmolt_xgpon_alloc_with_state_list_u16_max_32 *this)
+{
+    return 2 + (3 * this->len);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_alloc_with_state_list_u16_max_32_unpack(bcmolt_xgpon_alloc_with_state_list_u16_max_32 *this, bcmolt_buf *buf, void **extra_mem)
+{
+    uint16_t i0;
+    if (!bcmolt_buf_read_u16(buf, &this->len))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if ((this->len > 0) && (this->val == NULL))
+    {
+        if (extra_mem == NULL)
+        {
+            bcmos_trace(BCMOS_TRACE_LEVEL_ERROR, "Error: list field \"val\" of struct \"bcmolt_xgpon_alloc_with_state_list_u16_max_32\" is uninitialized (NULL).  You must allocate memory for this pointer before sending/receiving the message.\n");
+            return BCMOS_FALSE;
+        }
+        else
+        {
+            this->val = (bcmolt_xgpon_alloc_with_state *) *extra_mem;
+            *extra_mem = ((uint8_t *) *extra_mem) + BCMOS_ROUND_TO_WORD(this->len * sizeof(bcmolt_xgpon_alloc_with_state));
+        }
+    }
+
+    if (this->len > 32)
+    {
+        return BCMOS_FALSE;
+    }
+
+    for (i0 = 0; i0 < this->len; i0++)
+    {
+        if (!bcmolt_xgpon_alloc_with_state_unpack(&this->val[i0], buf, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_alloc_with_state_list_u16_max_32_scan(bcmolt_buf *packed, uint32_t *extra_mem)
+{
+    uint16_t len;
+    if (!bcmolt_buf_read_u16(packed, &len))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *extra_mem += BCMOS_ROUND_TO_WORD(sizeof(bcmolt_xgpon_alloc_with_state) * len);
+    if (!bcmolt_buf_skip(packed, len * 3))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_alloc_with_state_list_u16_max_32_bounds_check(const bcmolt_xgpon_alloc_with_state_list_u16_max_32 *this)
+{
+    if (this->len > 32)
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_xgpon_ed_state_set_default(bcmolt_xgpon_ed_state *this)
+{
+    this->reset_on_ed_fail = BCMOS_FALSE;
+    this->reset_on_ed_success = BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_ed_state_pack(const bcmolt_xgpon_ed_state *this, bcmolt_buf *buf)
+{
+    if (!bcmolt_buf_write_bool(buf, this->reset_on_ed_fail))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_write_bool(buf, this->reset_on_ed_success))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_ed_state_unpack(bcmolt_xgpon_ed_state *this, bcmolt_buf *buf, void **extra_mem)
+{
+    if (!bcmolt_buf_read_bool(buf, &this->reset_on_ed_fail))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_read_bool(buf, &this->reset_on_ed_success))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_ed_state_scan(bcmolt_buf *packed, uint32_t *extra_mem)
+{
+    (void)extra_mem;
+    return bcmolt_buf_skip(packed, 2);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_ed_state_bounds_check(const bcmolt_xgpon_ed_state *this)
+{
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_xgpon_gem_id_list_u8_max_16_set_default(bcmolt_xgpon_gem_id_list_u8_max_16 *this)
+{
+    this->len = 0;
+    this->val = NULL;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_gem_id_list_u8_max_16_pack(const bcmolt_xgpon_gem_id_list_u8_max_16 *this, bcmolt_buf *buf)
+{
+    uint8_t i0;
+    if (!bcmolt_buf_write_u8(buf, this->len))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if ((this->len > 0) && (this->val == NULL))
+    {
+        bcmos_trace(BCMOS_TRACE_LEVEL_ERROR, "Error: list field \"val\" of struct \"bcmolt_xgpon_gem_id_list_u8_max_16\" is uninitialized (NULL).  You must allocate memory for this pointer before sending/receiving the message.\n");
+        return BCMOS_FALSE;
+    }
+
+    if (this->len > 16)
+    {
+        return BCMOS_FALSE;
+    }
+
+    for (i0 = 0; i0 < this->len; i0++)
+    {
+        if (!bcmolt_buf_write_u16(buf, (uint16_t) this->val[i0]))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_xgpon_gem_id_list_u8_max_16_get_packed_length(const bcmolt_xgpon_gem_id_list_u8_max_16 *this)
+{
+    return 1 + (2 * this->len);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_gem_id_list_u8_max_16_unpack(bcmolt_xgpon_gem_id_list_u8_max_16 *this, bcmolt_buf *buf, void **extra_mem)
+{
+    uint8_t i0;
+    if (!bcmolt_buf_read_u8(buf, &this->len))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if ((this->len > 0) && (this->val == NULL))
+    {
+        if (extra_mem == NULL)
+        {
+            bcmos_trace(BCMOS_TRACE_LEVEL_ERROR, "Error: list field \"val\" of struct \"bcmolt_xgpon_gem_id_list_u8_max_16\" is uninitialized (NULL).  You must allocate memory for this pointer before sending/receiving the message.\n");
+            return BCMOS_FALSE;
+        }
+        else
+        {
+            this->val = (bcmolt_xgpon_gem_id *) *extra_mem;
+            *extra_mem = ((uint8_t *) *extra_mem) + BCMOS_ROUND_TO_WORD(this->len * sizeof(bcmolt_xgpon_gem_id));
+        }
+    }
+
+    if (this->len > 16)
+    {
+        return BCMOS_FALSE;
+    }
+
+    for (i0 = 0; i0 < this->len; i0++)
+    {
+        if (!bcmolt_buf_read_u16(buf, (uint16_t *) &this->val[i0]))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_gem_id_list_u8_max_16_scan(bcmolt_buf *packed, uint32_t *extra_mem)
+{
+    uint8_t len;
+    if (!bcmolt_buf_read_u8(packed, &len))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *extra_mem += BCMOS_ROUND_TO_WORD(sizeof(bcmolt_xgpon_gem_id) * len);
+    if (!bcmolt_buf_skip(packed, len * 2))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_gem_id_list_u8_max_16_bounds_check(const bcmolt_xgpon_gem_id_list_u8_max_16 *this)
+{
+    if (this->len > 16)
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_xgpon_gem_port_with_state_set_default(bcmolt_xgpon_gem_port_with_state *this)
+{
+    this->gem_id = (bcmolt_xgpon_gem_id) 0;
+    this->state = BCMOLT_XGPON_GEM_PORT_STATE_NOT_CONFIGURED;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_gem_port_with_state_pack(const bcmolt_xgpon_gem_port_with_state *this, bcmolt_buf *buf)
+{
+    if (!bcmolt_buf_write_u16(buf, (uint16_t) this->gem_id))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_xgpon_gem_port_state_pack(this->state, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_gem_port_with_state_unpack(bcmolt_xgpon_gem_port_with_state *this, bcmolt_buf *buf, void **extra_mem)
+{
+    if (!bcmolt_buf_read_u16(buf, (uint16_t *) &this->gem_id))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_xgpon_gem_port_state_unpack(&this->state, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_gem_port_with_state_scan(bcmolt_buf *packed, uint32_t *extra_mem)
+{
+    (void)extra_mem;
+    return bcmolt_buf_skip(packed, 3);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_gem_port_with_state_bounds_check(const bcmolt_xgpon_gem_port_with_state *this)
+{
+    if (this->gem_id > (bcmolt_xgpon_gem_id) 65533U)
+    {
+        return BCMOS_FALSE;
+    }
+
+    switch (this->state)
+    {
+        case BCMOLT_XGPON_GEM_PORT_STATE_NOT_CONFIGURED:
+            break;
+        case BCMOLT_XGPON_GEM_PORT_STATE_INACTIVE:
+            break;
+        case BCMOLT_XGPON_GEM_PORT_STATE_ACTIVE:
+            break;
+        default:
+            return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_xgpon_gem_port_with_state_list_u16_max_128_set_default(bcmolt_xgpon_gem_port_with_state_list_u16_max_128 *this)
+{
+    this->len = 0;
+    this->val = NULL;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_gem_port_with_state_list_u16_max_128_pack(const bcmolt_xgpon_gem_port_with_state_list_u16_max_128 *this, bcmolt_buf *buf)
+{
+    uint16_t i0;
+    if (!bcmolt_buf_write_u16(buf, this->len))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if ((this->len > 0) && (this->val == NULL))
+    {
+        bcmos_trace(BCMOS_TRACE_LEVEL_ERROR, "Error: list field \"val\" of struct \"bcmolt_xgpon_gem_port_with_state_list_u16_max_128\" is uninitialized (NULL).  You must allocate memory for this pointer before sending/receiving the message.\n");
+        return BCMOS_FALSE;
+    }
+
+    if (this->len > 128)
+    {
+        return BCMOS_FALSE;
+    }
+
+    for (i0 = 0; i0 < this->len; i0++)
+    {
+        if (!bcmolt_xgpon_gem_port_with_state_pack(&this->val[i0], buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_xgpon_gem_port_with_state_list_u16_max_128_get_packed_length(const bcmolt_xgpon_gem_port_with_state_list_u16_max_128 *this)
+{
+    return 2 + (3 * this->len);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_gem_port_with_state_list_u16_max_128_unpack(bcmolt_xgpon_gem_port_with_state_list_u16_max_128 *this, bcmolt_buf *buf, void **extra_mem)
+{
+    uint16_t i0;
+    if (!bcmolt_buf_read_u16(buf, &this->len))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if ((this->len > 0) && (this->val == NULL))
+    {
+        if (extra_mem == NULL)
+        {
+            bcmos_trace(BCMOS_TRACE_LEVEL_ERROR, "Error: list field \"val\" of struct \"bcmolt_xgpon_gem_port_with_state_list_u16_max_128\" is uninitialized (NULL).  You must allocate memory for this pointer before sending/receiving the message.\n");
+            return BCMOS_FALSE;
+        }
+        else
+        {
+            this->val = (bcmolt_xgpon_gem_port_with_state *) *extra_mem;
+            *extra_mem = ((uint8_t *) *extra_mem) + BCMOS_ROUND_TO_WORD(this->len * sizeof(bcmolt_xgpon_gem_port_with_state));
+        }
+    }
+
+    if (this->len > 128)
+    {
+        return BCMOS_FALSE;
+    }
+
+    for (i0 = 0; i0 < this->len; i0++)
+    {
+        if (!bcmolt_xgpon_gem_port_with_state_unpack(&this->val[i0], buf, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_gem_port_with_state_list_u16_max_128_scan(bcmolt_buf *packed, uint32_t *extra_mem)
+{
+    uint16_t len;
+    if (!bcmolt_buf_read_u16(packed, &len))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *extra_mem += BCMOS_ROUND_TO_WORD(sizeof(bcmolt_xgpon_gem_port_with_state) * len);
+    if (!bcmolt_buf_skip(packed, len * 3))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_gem_port_with_state_list_u16_max_128_bounds_check(const bcmolt_xgpon_gem_port_with_state_list_u16_max_128 *this)
+{
+    if (this->len > 128)
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_xgpon_gem_port_with_state_list_u16_max_256_set_default(bcmolt_xgpon_gem_port_with_state_list_u16_max_256 *this)
+{
+    this->len = 0;
+    this->val = NULL;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_gem_port_with_state_list_u16_max_256_pack(const bcmolt_xgpon_gem_port_with_state_list_u16_max_256 *this, bcmolt_buf *buf)
+{
+    uint16_t i0;
+    if (!bcmolt_buf_write_u16(buf, this->len))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if ((this->len > 0) && (this->val == NULL))
+    {
+        bcmos_trace(BCMOS_TRACE_LEVEL_ERROR, "Error: list field \"val\" of struct \"bcmolt_xgpon_gem_port_with_state_list_u16_max_256\" is uninitialized (NULL).  You must allocate memory for this pointer before sending/receiving the message.\n");
+        return BCMOS_FALSE;
+    }
+
+    if (this->len > 256)
+    {
+        return BCMOS_FALSE;
+    }
+
+    for (i0 = 0; i0 < this->len; i0++)
+    {
+        if (!bcmolt_xgpon_gem_port_with_state_pack(&this->val[i0], buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_xgpon_gem_port_with_state_list_u16_max_256_get_packed_length(const bcmolt_xgpon_gem_port_with_state_list_u16_max_256 *this)
+{
+    return 2 + (3 * this->len);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_gem_port_with_state_list_u16_max_256_unpack(bcmolt_xgpon_gem_port_with_state_list_u16_max_256 *this, bcmolt_buf *buf, void **extra_mem)
+{
+    uint16_t i0;
+    if (!bcmolt_buf_read_u16(buf, &this->len))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if ((this->len > 0) && (this->val == NULL))
+    {
+        if (extra_mem == NULL)
+        {
+            bcmos_trace(BCMOS_TRACE_LEVEL_ERROR, "Error: list field \"val\" of struct \"bcmolt_xgpon_gem_port_with_state_list_u16_max_256\" is uninitialized (NULL).  You must allocate memory for this pointer before sending/receiving the message.\n");
+            return BCMOS_FALSE;
+        }
+        else
+        {
+            this->val = (bcmolt_xgpon_gem_port_with_state *) *extra_mem;
+            *extra_mem = ((uint8_t *) *extra_mem) + BCMOS_ROUND_TO_WORD(this->len * sizeof(bcmolt_xgpon_gem_port_with_state));
+        }
+    }
+
+    if (this->len > 256)
+    {
+        return BCMOS_FALSE;
+    }
+
+    for (i0 = 0; i0 < this->len; i0++)
+    {
+        if (!bcmolt_xgpon_gem_port_with_state_unpack(&this->val[i0], buf, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_gem_port_with_state_list_u16_max_256_scan(bcmolt_buf *packed, uint32_t *extra_mem)
+{
+    uint16_t len;
+    if (!bcmolt_buf_read_u16(packed, &len))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *extra_mem += BCMOS_ROUND_TO_WORD(sizeof(bcmolt_xgpon_gem_port_with_state) * len);
+    if (!bcmolt_buf_skip(packed, len * 3))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_gem_port_with_state_list_u16_max_256_bounds_check(const bcmolt_xgpon_gem_port_with_state_list_u16_max_256 *this)
+{
+    if (this->len > 256)
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_xgpon_key_exchange_set_default(bcmolt_xgpon_key_exchange *this)
+{
+    this->interval = 10000;
+    this->control = BCMOLT_CONTROL_STATE_DISABLE;
+    this->encrypted_ports_only = BCMOLT_CONTROL_STATE_DISABLE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_key_exchange_pack(const bcmolt_xgpon_key_exchange *this, bcmolt_buf *buf)
+{
+    if (!bcmolt_buf_write_u32(buf, this->interval))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_control_state_pack(this->control, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_control_state_pack(this->encrypted_ports_only, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_key_exchange_unpack(bcmolt_xgpon_key_exchange *this, bcmolt_buf *buf, void **extra_mem)
+{
+    if (!bcmolt_buf_read_u32(buf, &this->interval))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_control_state_unpack(&this->control, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_control_state_unpack(&this->encrypted_ports_only, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_key_exchange_scan(bcmolt_buf *packed, uint32_t *extra_mem)
+{
+    (void)extra_mem;
+    return bcmolt_buf_skip(packed, 6);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_key_exchange_bounds_check(const bcmolt_xgpon_key_exchange *this)
+{
+    if (this->interval < 10000)
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (this->interval > 3600000UL)
+    {
+        return BCMOS_FALSE;
+    }
+
+    switch (this->control)
+    {
+        case BCMOLT_CONTROL_STATE_DISABLE:
+            break;
+        case BCMOLT_CONTROL_STATE_ENABLE:
+            break;
+        default:
+            return BCMOS_FALSE;
+    }
+
+    switch (this->encrypted_ports_only)
+    {
+        case BCMOLT_CONTROL_STATE_DISABLE:
+            break;
+        case BCMOLT_CONTROL_STATE_ENABLE:
+            break;
+        default:
+            return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_xgpon_multicast_key_set_default(bcmolt_xgpon_multicast_key *this)
+{
+    memset(this->key.bytes, 0, sizeof(this->key.bytes));
+    this->key_control = BCMOS_FALSE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_multicast_key_pack(const bcmolt_xgpon_multicast_key *this, bcmolt_buf *buf)
+{
+    if (!bcmolt_aes_key_pack(&this->key, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_write_bool(buf, this->key_control))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_multicast_key_unpack(bcmolt_xgpon_multicast_key *this, bcmolt_buf *buf, void **extra_mem)
+{
+    if (!bcmolt_aes_key_unpack(&this->key, buf, extra_mem))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_read_bool(buf, &this->key_control))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_multicast_key_scan(bcmolt_buf *packed, uint32_t *extra_mem)
+{
+    (void)extra_mem;
+    return bcmolt_buf_skip(packed, 17);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_multicast_key_bounds_check(const bcmolt_xgpon_multicast_key *this)
+{
+    if (!bcmolt_aes_key_bounds_check(&this->key))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_xgpon_ni_debug_set_default(bcmolt_xgpon_ni_debug *this)
+{
+    this->increase_available_cbr_bw = BCMOS_FALSE;
+    this->inter_burst_gap_in_bytes = 512;
+    this->number_of_gem_ports_per_onu = 64;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_ni_debug_pack(const bcmolt_xgpon_ni_debug *this, bcmolt_buf *buf)
+{
+    if (!bcmolt_buf_write_bool(buf, this->increase_available_cbr_bw))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_write_u16(buf, this->inter_burst_gap_in_bytes))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_write_u16(buf, this->number_of_gem_ports_per_onu))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_ni_debug_unpack(bcmolt_xgpon_ni_debug *this, bcmolt_buf *buf, void **extra_mem)
+{
+    if (!bcmolt_buf_read_bool(buf, &this->increase_available_cbr_bw))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_read_u16(buf, &this->inter_burst_gap_in_bytes))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_read_u16(buf, &this->number_of_gem_ports_per_onu))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_ni_debug_scan(bcmolt_buf *packed, uint32_t *extra_mem)
+{
+    (void)extra_mem;
+    return bcmolt_buf_skip(packed, 5);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_ni_debug_bounds_check(const bcmolt_xgpon_ni_debug *this)
+{
+    if (this->number_of_gem_ports_per_onu < 8)
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (this->number_of_gem_ports_per_onu > 256)
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_xgpon_onu_activation_set_default(bcmolt_xgpon_onu_activation *this)
+{
+    this->key_exchange = BCMOLT_CONTROL_STATE_DISABLE;
+    this->fail_due_to_regis_auto_fail = BCMOLT_CONTROL_STATE_ENABLE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_activation_pack(const bcmolt_xgpon_onu_activation *this, bcmolt_buf *buf)
+{
+    if (!bcmolt_control_state_pack(this->key_exchange, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_control_state_pack(this->fail_due_to_regis_auto_fail, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_activation_unpack(bcmolt_xgpon_onu_activation *this, bcmolt_buf *buf, void **extra_mem)
+{
+    if (!bcmolt_control_state_unpack(&this->key_exchange, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_control_state_unpack(&this->fail_due_to_regis_auto_fail, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_activation_scan(bcmolt_buf *packed, uint32_t *extra_mem)
+{
+    (void)extra_mem;
+    return bcmolt_buf_skip(packed, 2);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_activation_bounds_check(const bcmolt_xgpon_onu_activation *this)
+{
+    switch (this->key_exchange)
+    {
+        case BCMOLT_CONTROL_STATE_DISABLE:
+            break;
+        case BCMOLT_CONTROL_STATE_ENABLE:
+            break;
+        default:
+            return BCMOS_FALSE;
+    }
+
+    switch (this->fail_due_to_regis_auto_fail)
+    {
+        case BCMOLT_CONTROL_STATE_DISABLE:
+            break;
+        case BCMOLT_CONTROL_STATE_ENABLE:
+            break;
+        default:
+            return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_xgpon_onu_aes_key_set_default(bcmolt_xgpon_onu_aes_key *this)
+{
+    memset(this->encryption_key.bytes, 0, sizeof(this->encryption_key.bytes));
+    this->key_index = 0;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_aes_key_pack(const bcmolt_xgpon_onu_aes_key *this, bcmolt_buf *buf)
+{
+    if (!bcmolt_aes_key_pack(&this->encryption_key, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_write_u8(buf, this->key_index))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_aes_key_unpack(bcmolt_xgpon_onu_aes_key *this, bcmolt_buf *buf, void **extra_mem)
+{
+    if (!bcmolt_aes_key_unpack(&this->encryption_key, buf, extra_mem))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_read_u8(buf, &this->key_index))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_aes_key_scan(bcmolt_buf *packed, uint32_t *extra_mem)
+{
+    (void)extra_mem;
+    return bcmolt_buf_skip(packed, 17);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_aes_key_bounds_check(const bcmolt_xgpon_onu_aes_key *this)
+{
+    if (!bcmolt_aes_key_bounds_check(&this->encryption_key))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_xgpon_onu_alarm_state_set_default(bcmolt_xgpon_onu_alarm_state *this)
+{
+    this->losi = BCMOLT_STATUS_OFF;
+    this->lobi = BCMOLT_STATUS_OFF;
+    this->lopci = BCMOLT_STATUS_OFF;
+    this->lopci_mic_error = BCMOLT_STATUS_OFF;
+    this->looci = BCMOLT_STATUS_OFF;
+    this->tiwi = BCMOLT_STATUS_OFF;
+    this->dowi = BCMOLT_STATUS_OFF;
+    this->sufi = BCMOLT_STATUS_OFF;
+    this->sfi = BCMOLT_STATUS_OFF;
+    this->sdi = BCMOLT_STATUS_OFF;
+    this->dfi = BCMOLT_STATUS_OFF;
+    this->dgi = BCMOLT_STATUS_OFF;
+    this->pqsi = BCMOLT_STATUS_OFF;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_alarm_state_pack(const bcmolt_xgpon_onu_alarm_state *this, bcmolt_buf *buf)
+{
+    if (!bcmolt_status_pack(this->losi, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_status_pack(this->lobi, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_status_pack(this->lopci, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_status_pack(this->lopci_mic_error, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_status_pack(this->looci, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_status_pack(this->tiwi, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_status_pack(this->dowi, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_status_pack(this->sufi, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_status_pack(this->sfi, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_status_pack(this->sdi, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_status_pack(this->dfi, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_status_pack(this->dgi, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_status_pack(this->pqsi, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_alarm_state_unpack(bcmolt_xgpon_onu_alarm_state *this, bcmolt_buf *buf, void **extra_mem)
+{
+    if (!bcmolt_status_unpack(&this->losi, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_status_unpack(&this->lobi, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_status_unpack(&this->lopci, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_status_unpack(&this->lopci_mic_error, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_status_unpack(&this->looci, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_status_unpack(&this->tiwi, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_status_unpack(&this->dowi, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_status_unpack(&this->sufi, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_status_unpack(&this->sfi, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_status_unpack(&this->sdi, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_status_unpack(&this->dfi, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_status_unpack(&this->dgi, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_status_unpack(&this->pqsi, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_alarm_state_scan(bcmolt_buf *packed, uint32_t *extra_mem)
+{
+    (void)extra_mem;
+    return bcmolt_buf_skip(packed, 13);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_alarm_state_bounds_check(const bcmolt_xgpon_onu_alarm_state *this)
+{
+    switch (this->losi)
+    {
+        case BCMOLT_STATUS_OFF:
+            break;
+        case BCMOLT_STATUS_ON:
+            break;
+        case BCMOLT_STATUS_NO_CHANGE:
+            break;
+        default:
+            return BCMOS_FALSE;
+    }
+
+    switch (this->lobi)
+    {
+        case BCMOLT_STATUS_OFF:
+            break;
+        case BCMOLT_STATUS_ON:
+            break;
+        case BCMOLT_STATUS_NO_CHANGE:
+            break;
+        default:
+            return BCMOS_FALSE;
+    }
+
+    switch (this->lopci)
+    {
+        case BCMOLT_STATUS_OFF:
+            break;
+        case BCMOLT_STATUS_ON:
+            break;
+        case BCMOLT_STATUS_NO_CHANGE:
+            break;
+        default:
+            return BCMOS_FALSE;
+    }
+
+    switch (this->lopci_mic_error)
+    {
+        case BCMOLT_STATUS_OFF:
+            break;
+        case BCMOLT_STATUS_ON:
+            break;
+        case BCMOLT_STATUS_NO_CHANGE:
+            break;
+        default:
+            return BCMOS_FALSE;
+    }
+
+    switch (this->looci)
+    {
+        case BCMOLT_STATUS_OFF:
+            break;
+        case BCMOLT_STATUS_ON:
+            break;
+        case BCMOLT_STATUS_NO_CHANGE:
+            break;
+        default:
+            return BCMOS_FALSE;
+    }
+
+    switch (this->tiwi)
+    {
+        case BCMOLT_STATUS_OFF:
+            break;
+        case BCMOLT_STATUS_ON:
+            break;
+        case BCMOLT_STATUS_NO_CHANGE:
+            break;
+        default:
+            return BCMOS_FALSE;
+    }
+
+    switch (this->dowi)
+    {
+        case BCMOLT_STATUS_OFF:
+            break;
+        case BCMOLT_STATUS_ON:
+            break;
+        case BCMOLT_STATUS_NO_CHANGE:
+            break;
+        default:
+            return BCMOS_FALSE;
+    }
+
+    switch (this->sufi)
+    {
+        case BCMOLT_STATUS_OFF:
+            break;
+        case BCMOLT_STATUS_ON:
+            break;
+        case BCMOLT_STATUS_NO_CHANGE:
+            break;
+        default:
+            return BCMOS_FALSE;
+    }
+
+    switch (this->sfi)
+    {
+        case BCMOLT_STATUS_OFF:
+            break;
+        case BCMOLT_STATUS_ON:
+            break;
+        case BCMOLT_STATUS_NO_CHANGE:
+            break;
+        default:
+            return BCMOS_FALSE;
+    }
+
+    switch (this->sdi)
+    {
+        case BCMOLT_STATUS_OFF:
+            break;
+        case BCMOLT_STATUS_ON:
+            break;
+        case BCMOLT_STATUS_NO_CHANGE:
+            break;
+        default:
+            return BCMOS_FALSE;
+    }
+
+    switch (this->dfi)
+    {
+        case BCMOLT_STATUS_OFF:
+            break;
+        case BCMOLT_STATUS_ON:
+            break;
+        case BCMOLT_STATUS_NO_CHANGE:
+            break;
+        default:
+            return BCMOS_FALSE;
+    }
+
+    switch (this->dgi)
+    {
+        case BCMOLT_STATUS_OFF:
+            break;
+        case BCMOLT_STATUS_ON:
+            break;
+        case BCMOLT_STATUS_NO_CHANGE:
+            break;
+        default:
+            return BCMOS_FALSE;
+    }
+
+    switch (this->pqsi)
+    {
+        case BCMOLT_STATUS_OFF:
+            break;
+        case BCMOLT_STATUS_ON:
+            break;
+        case BCMOLT_STATUS_NO_CHANGE:
+            break;
+        default:
+            return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_xgpon_onu_alarms_set_default(bcmolt_xgpon_onu_alarms *this)
+{
+    this->losi = BCMOLT_STATUS_OFF;
+    this->lobi = BCMOLT_STATUS_OFF;
+    this->lopci_miss = BCMOLT_STATUS_OFF;
+    this->lopci_mic_error = BCMOLT_STATUS_OFF;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_alarms_pack(const bcmolt_xgpon_onu_alarms *this, bcmolt_buf *buf)
+{
+    if (!bcmolt_status_pack(this->losi, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_status_pack(this->lobi, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_status_pack(this->lopci_miss, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_status_pack(this->lopci_mic_error, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_alarms_unpack(bcmolt_xgpon_onu_alarms *this, bcmolt_buf *buf, void **extra_mem)
+{
+    if (!bcmolt_status_unpack(&this->losi, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_status_unpack(&this->lobi, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_status_unpack(&this->lopci_miss, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_status_unpack(&this->lopci_mic_error, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_alarms_scan(bcmolt_buf *packed, uint32_t *extra_mem)
+{
+    (void)extra_mem;
+    return bcmolt_buf_skip(packed, 4);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_alarms_bounds_check(const bcmolt_xgpon_onu_alarms *this)
+{
+    switch (this->losi)
+    {
+        case BCMOLT_STATUS_OFF:
+            break;
+        case BCMOLT_STATUS_ON:
+            break;
+        case BCMOLT_STATUS_NO_CHANGE:
+            break;
+        default:
+            return BCMOS_FALSE;
+    }
+
+    switch (this->lobi)
+    {
+        case BCMOLT_STATUS_OFF:
+            break;
+        case BCMOLT_STATUS_ON:
+            break;
+        case BCMOLT_STATUS_NO_CHANGE:
+            break;
+        default:
+            return BCMOS_FALSE;
+    }
+
+    switch (this->lopci_miss)
+    {
+        case BCMOLT_STATUS_OFF:
+            break;
+        case BCMOLT_STATUS_ON:
+            break;
+        case BCMOLT_STATUS_NO_CHANGE:
+            break;
+        default:
+            return BCMOS_FALSE;
+    }
+
+    switch (this->lopci_mic_error)
+    {
+        case BCMOLT_STATUS_OFF:
+            break;
+        case BCMOLT_STATUS_ON:
+            break;
+        case BCMOLT_STATUS_NO_CHANGE:
+            break;
+        default:
+            return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_xgpon_onu_alarms_thresholds_set_default(bcmolt_xgpon_onu_alarms_thresholds *this)
+{
+    this->losi = 4;
+    this->lobi = 4;
+    this->looci = 3;
+    this->lopci = 3;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_alarms_thresholds_pack(const bcmolt_xgpon_onu_alarms_thresholds *this, bcmolt_buf *buf)
+{
+    if (!bcmolt_buf_write_u8(buf, this->losi))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_write_u8(buf, this->lobi))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_write_u8(buf, this->looci))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_write_u8(buf, this->lopci))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_alarms_thresholds_unpack(bcmolt_xgpon_onu_alarms_thresholds *this, bcmolt_buf *buf, void **extra_mem)
+{
+    if (!bcmolt_buf_read_u8(buf, &this->losi))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_read_u8(buf, &this->lobi))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_read_u8(buf, &this->looci))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_read_u8(buf, &this->lopci))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_alarms_thresholds_scan(bcmolt_buf *packed, uint32_t *extra_mem)
+{
+    (void)extra_mem;
+    return bcmolt_buf_skip(packed, 4);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_alarms_thresholds_bounds_check(const bcmolt_xgpon_onu_alarms_thresholds *this)
+{
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_xgpon_onu_eqd_set_default(bcmolt_xgpon_onu_eqd *this)
+{
+    this->onu_id = (bcmolt_xgpon_onu_id) 0;
+    this->eqd = 0;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_eqd_pack(const bcmolt_xgpon_onu_eqd *this, bcmolt_buf *buf)
+{
+    if (!bcmolt_buf_write_u16(buf, (uint16_t) this->onu_id))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_write_u32(buf, this->eqd))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_eqd_unpack(bcmolt_xgpon_onu_eqd *this, bcmolt_buf *buf, void **extra_mem)
+{
+    if (!bcmolt_buf_read_u16(buf, (uint16_t *) &this->onu_id))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_read_u32(buf, &this->eqd))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_eqd_scan(bcmolt_buf *packed, uint32_t *extra_mem)
+{
+    (void)extra_mem;
+    return bcmolt_buf_skip(packed, 6);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_eqd_bounds_check(const bcmolt_xgpon_onu_eqd *this)
+{
+    if (this->onu_id > (bcmolt_xgpon_onu_id) 511)
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_xgpon_onu_eqd_list_u32_set_default(bcmolt_xgpon_onu_eqd_list_u32 *this)
+{
+    this->len = 0;
+    this->val = NULL;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_eqd_list_u32_pack(const bcmolt_xgpon_onu_eqd_list_u32 *this, bcmolt_buf *buf)
+{
+    uint32_t i0;
+    if (!bcmolt_buf_write_u32(buf, this->len))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if ((this->len > 0) && (this->val == NULL))
+    {
+        bcmos_trace(BCMOS_TRACE_LEVEL_ERROR, "Error: list field \"val\" of struct \"bcmolt_xgpon_onu_eqd_list_u32\" is uninitialized (NULL).  You must allocate memory for this pointer before sending/receiving the message.\n");
+        return BCMOS_FALSE;
+    }
+
+    for (i0 = 0; i0 < this->len; i0++)
+    {
+        if (!bcmolt_xgpon_onu_eqd_pack(&this->val[i0], buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_xgpon_onu_eqd_list_u32_get_packed_length(const bcmolt_xgpon_onu_eqd_list_u32 *this)
+{
+    return 4 + (6 * this->len);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_eqd_list_u32_unpack(bcmolt_xgpon_onu_eqd_list_u32 *this, bcmolt_buf *buf, void **extra_mem)
+{
+    uint32_t i0;
+    if (!bcmolt_buf_read_u32(buf, &this->len))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if ((this->len > 0) && (this->val == NULL))
+    {
+        if (extra_mem == NULL)
+        {
+            bcmos_trace(BCMOS_TRACE_LEVEL_ERROR, "Error: list field \"val\" of struct \"bcmolt_xgpon_onu_eqd_list_u32\" is uninitialized (NULL).  You must allocate memory for this pointer before sending/receiving the message.\n");
+            return BCMOS_FALSE;
+        }
+        else
+        {
+            this->val = (bcmolt_xgpon_onu_eqd *) *extra_mem;
+            *extra_mem = ((uint8_t *) *extra_mem) + BCMOS_ROUND_TO_WORD(this->len * sizeof(bcmolt_xgpon_onu_eqd));
+        }
+    }
+
+    for (i0 = 0; i0 < this->len; i0++)
+    {
+        if (!bcmolt_xgpon_onu_eqd_unpack(&this->val[i0], buf, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_eqd_list_u32_scan(bcmolt_buf *packed, uint32_t *extra_mem)
+{
+    uint32_t len;
+    if (!bcmolt_buf_read_u32(packed, &len))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *extra_mem += BCMOS_ROUND_TO_WORD(sizeof(bcmolt_xgpon_onu_eqd) * len);
+    if (!bcmolt_buf_skip(packed, len * 6))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_eqd_list_u32_bounds_check(const bcmolt_xgpon_onu_eqd_list_u32 *this)
+{
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_xgpon_onu_registration_keys_set_default(bcmolt_xgpon_onu_registration_keys *this)
+{
+    memset(this->ploam_ik.bytes, 0, sizeof(this->ploam_ik.bytes));
+    memset(this->omci_ik.bytes, 0, sizeof(this->omci_ik.bytes));
+    memset(this->omci_k1.bytes, 0, sizeof(this->omci_k1.bytes));
+    memset(this->omci_k2.bytes, 0, sizeof(this->omci_k2.bytes));
+    memset(this->kek.bytes, 0, sizeof(this->kek.bytes));
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_registration_keys_pack(const bcmolt_xgpon_onu_registration_keys *this, bcmolt_buf *buf)
+{
+    if (!bcmolt_aes_key_pack(&this->ploam_ik, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_aes_key_pack(&this->omci_ik, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_aes_key_pack(&this->omci_k1, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_aes_key_pack(&this->omci_k2, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_aes_key_pack(&this->kek, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_registration_keys_unpack(bcmolt_xgpon_onu_registration_keys *this, bcmolt_buf *buf, void **extra_mem)
+{
+    if (!bcmolt_aes_key_unpack(&this->ploam_ik, buf, extra_mem))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_aes_key_unpack(&this->omci_ik, buf, extra_mem))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_aes_key_unpack(&this->omci_k1, buf, extra_mem))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_aes_key_unpack(&this->omci_k2, buf, extra_mem))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_aes_key_unpack(&this->kek, buf, extra_mem))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_registration_keys_scan(bcmolt_buf *packed, uint32_t *extra_mem)
+{
+    (void)extra_mem;
+    return bcmolt_buf_skip(packed, 80);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_registration_keys_bounds_check(const bcmolt_xgpon_onu_registration_keys *this)
+{
+    if (!bcmolt_aes_key_bounds_check(&this->ploam_ik))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_aes_key_bounds_check(&this->omci_ik))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_aes_key_bounds_check(&this->omci_k1))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_aes_key_bounds_check(&this->omci_k2))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_aes_key_bounds_check(&this->kek))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_xgpon_onu_with_state_set_default(bcmolt_xgpon_onu_with_state *this)
+{
+    this->onu_id = (bcmolt_xgpon_onu_id) 0;
+    this->state = BCMOLT_ONU_STATE_NOT_CONFIGURED;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_with_state_pack(const bcmolt_xgpon_onu_with_state *this, bcmolt_buf *buf)
+{
+    if (!bcmolt_buf_write_u16(buf, (uint16_t) this->onu_id))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_onu_state_pack(this->state, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_with_state_unpack(bcmolt_xgpon_onu_with_state *this, bcmolt_buf *buf, void **extra_mem)
+{
+    if (!bcmolt_buf_read_u16(buf, (uint16_t *) &this->onu_id))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_onu_state_unpack(&this->state, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_with_state_scan(bcmolt_buf *packed, uint32_t *extra_mem)
+{
+    (void)extra_mem;
+    return bcmolt_buf_skip(packed, 3);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_with_state_bounds_check(const bcmolt_xgpon_onu_with_state *this)
+{
+    if (this->onu_id > (bcmolt_xgpon_onu_id) 511)
+    {
+        return BCMOS_FALSE;
+    }
+
+    switch (this->state)
+    {
+        case BCMOLT_ONU_STATE_NOT_CONFIGURED:
+            break;
+        case BCMOLT_ONU_STATE_INACTIVE:
+            break;
+        case BCMOLT_ONU_STATE_ACTIVE:
+            break;
+        case BCMOLT_ONU_STATE_ACTIVE_STANDBY:
+            break;
+        case BCMOLT_ONU_STATE_DISABLED:
+            break;
+        case BCMOLT_ONU_STATE_AWAKE_FREE:
+            break;
+        case BCMOLT_ONU_STATE_PROCESSING:
+            break;
+        case BCMOLT_ONU_STATE_LOW_POWER_DOZE:
+            break;
+        case BCMOLT_ONU_STATE_LOW_POWER_SLEEP:
+            break;
+        case BCMOLT_ONU_STATE_LOW_POWER_WATCH:
+            break;
+        case BCMOLT_ONU_STATE_UNAWARE:
+            break;
+        default:
+            return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_xgpon_onu_with_state_list_u16_max_510_set_default(bcmolt_xgpon_onu_with_state_list_u16_max_510 *this)
+{
+    this->len = 0;
+    this->val = NULL;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_with_state_list_u16_max_510_pack(const bcmolt_xgpon_onu_with_state_list_u16_max_510 *this, bcmolt_buf *buf)
+{
+    uint16_t i0;
+    if (!bcmolt_buf_write_u16(buf, this->len))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if ((this->len > 0) && (this->val == NULL))
+    {
+        bcmos_trace(BCMOS_TRACE_LEVEL_ERROR, "Error: list field \"val\" of struct \"bcmolt_xgpon_onu_with_state_list_u16_max_510\" is uninitialized (NULL).  You must allocate memory for this pointer before sending/receiving the message.\n");
+        return BCMOS_FALSE;
+    }
+
+    if (this->len > 510)
+    {
+        return BCMOS_FALSE;
+    }
+
+    for (i0 = 0; i0 < this->len; i0++)
+    {
+        if (!bcmolt_xgpon_onu_with_state_pack(&this->val[i0], buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_xgpon_onu_with_state_list_u16_max_510_get_packed_length(const bcmolt_xgpon_onu_with_state_list_u16_max_510 *this)
+{
+    return 2 + (3 * this->len);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_with_state_list_u16_max_510_unpack(bcmolt_xgpon_onu_with_state_list_u16_max_510 *this, bcmolt_buf *buf, void **extra_mem)
+{
+    uint16_t i0;
+    if (!bcmolt_buf_read_u16(buf, &this->len))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if ((this->len > 0) && (this->val == NULL))
+    {
+        if (extra_mem == NULL)
+        {
+            bcmos_trace(BCMOS_TRACE_LEVEL_ERROR, "Error: list field \"val\" of struct \"bcmolt_xgpon_onu_with_state_list_u16_max_510\" is uninitialized (NULL).  You must allocate memory for this pointer before sending/receiving the message.\n");
+            return BCMOS_FALSE;
+        }
+        else
+        {
+            this->val = (bcmolt_xgpon_onu_with_state *) *extra_mem;
+            *extra_mem = ((uint8_t *) *extra_mem) + BCMOS_ROUND_TO_WORD(this->len * sizeof(bcmolt_xgpon_onu_with_state));
+        }
+    }
+
+    if (this->len > 510)
+    {
+        return BCMOS_FALSE;
+    }
+
+    for (i0 = 0; i0 < this->len; i0++)
+    {
+        if (!bcmolt_xgpon_onu_with_state_unpack(&this->val[i0], buf, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_with_state_list_u16_max_510_scan(bcmolt_buf *packed, uint32_t *extra_mem)
+{
+    uint16_t len;
+    if (!bcmolt_buf_read_u16(packed, &len))
+    {
+        return BCMOS_FALSE;
+    }
+
+    *extra_mem += BCMOS_ROUND_TO_WORD(sizeof(bcmolt_xgpon_onu_with_state) * len);
+    if (!bcmolt_buf_skip(packed, len * 3))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_with_state_list_u16_max_510_bounds_check(const bcmolt_xgpon_onu_with_state_list_u16_max_510 *this)
+{
+    if (this->len > 510)
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_xgpon_ploam_handling_set_default(bcmolt_xgpon_ploam_handling *this)
+{
+    this->ack_timeout = 2000;
+    this->retrans_ranging_time = 0;
+    this->retrans_assign_alloc_id = 0;
+    this->retrans_key_control = 0;
+    this->retrans_request_registration = 0;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_ploam_handling_pack(const bcmolt_xgpon_ploam_handling *this, bcmolt_buf *buf)
+{
+    if (!bcmolt_buf_write_u32(buf, this->ack_timeout))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_write_u8(buf, this->retrans_ranging_time))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_write_u8(buf, this->retrans_assign_alloc_id))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_write_u8(buf, this->retrans_key_control))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_write_u8(buf, this->retrans_request_registration))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_ploam_handling_unpack(bcmolt_xgpon_ploam_handling *this, bcmolt_buf *buf, void **extra_mem)
+{
+    if (!bcmolt_buf_read_u32(buf, &this->ack_timeout))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_read_u8(buf, &this->retrans_ranging_time))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_read_u8(buf, &this->retrans_assign_alloc_id))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_read_u8(buf, &this->retrans_key_control))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_read_u8(buf, &this->retrans_request_registration))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_ploam_handling_scan(bcmolt_buf *packed, uint32_t *extra_mem)
+{
+    (void)extra_mem;
+    return bcmolt_buf_skip(packed, 8);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_ploam_handling_bounds_check(const bcmolt_xgpon_ploam_handling *this)
+{
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_xgpon_protection_switching_set_default(bcmolt_xgpon_protection_switching *this)
+{
+    this->timeout = 100;
+    this->gpio_pin = BCMOLT_GPIO_PIN_UNCONFIGURED;
+    this->fast_ranging = BCMOS_FALSE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_protection_switching_pack(const bcmolt_xgpon_protection_switching *this, bcmolt_buf *buf)
+{
+    if (!bcmolt_buf_write_u16(buf, this->timeout))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_gpio_pin_pack(this->gpio_pin, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_write_bool(buf, this->fast_ranging))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_protection_switching_unpack(bcmolt_xgpon_protection_switching *this, bcmolt_buf *buf, void **extra_mem)
+{
+    if (!bcmolt_buf_read_u16(buf, &this->timeout))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_gpio_pin_unpack(&this->gpio_pin, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_read_bool(buf, &this->fast_ranging))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_protection_switching_scan(bcmolt_buf *packed, uint32_t *extra_mem)
+{
+    (void)extra_mem;
+    return bcmolt_buf_skip(packed, 4);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_protection_switching_bounds_check(const bcmolt_xgpon_protection_switching *this)
+{
+    switch (this->gpio_pin)
+    {
+        case BCMOLT_GPIO_PIN_PIN0:
+            break;
+        case BCMOLT_GPIO_PIN_PIN1:
+            break;
+        case BCMOLT_GPIO_PIN_PIN2:
+            break;
+        case BCMOLT_GPIO_PIN_PIN3:
+            break;
+        case BCMOLT_GPIO_PIN_PIN4:
+            break;
+        case BCMOLT_GPIO_PIN_PIN5:
+            break;
+        case BCMOLT_GPIO_PIN_PIN6:
+            break;
+        case BCMOLT_GPIO_PIN_PIN7:
+            break;
+        case BCMOLT_GPIO_PIN_PIN8:
+            break;
+        case BCMOLT_GPIO_PIN_PIN9:
+            break;
+        case BCMOLT_GPIO_PIN_PIN10:
+            break;
+        case BCMOLT_GPIO_PIN_PIN11:
+            break;
+        case BCMOLT_GPIO_PIN_PIN12:
+            break;
+        case BCMOLT_GPIO_PIN_PIN13:
+            break;
+        case BCMOLT_GPIO_PIN_PIN14:
+            break;
+        case BCMOLT_GPIO_PIN_PIN15:
+            break;
+        case BCMOLT_GPIO_PIN_PIN16:
+            break;
+        case BCMOLT_GPIO_PIN_PIN17:
+            break;
+        case BCMOLT_GPIO_PIN_PIN18:
+            break;
+        case BCMOLT_GPIO_PIN_PIN19:
+            break;
+        case BCMOLT_GPIO_PIN_PIN20:
+            break;
+        case BCMOLT_GPIO_PIN_PIN21:
+            break;
+        case BCMOLT_GPIO_PIN_PIN22:
+            break;
+        case BCMOLT_GPIO_PIN_PIN23:
+            break;
+        case BCMOLT_GPIO_PIN_PIN24:
+            break;
+        case BCMOLT_GPIO_PIN_PIN25:
+            break;
+        case BCMOLT_GPIO_PIN_PIN26:
+            break;
+        case BCMOLT_GPIO_PIN_PIN27:
+            break;
+        case BCMOLT_GPIO_PIN_PIN28:
+            break;
+        case BCMOLT_GPIO_PIN_PIN29:
+            break;
+        case BCMOLT_GPIO_PIN_PIN30:
+            break;
+        case BCMOLT_GPIO_PIN_PIN31:
+            break;
+        case BCMOLT_GPIO_PIN_PIN32:
+            break;
+        case BCMOLT_GPIO_PIN_PIN33:
+            break;
+        case BCMOLT_GPIO_PIN_PIN34:
+            break;
+        case BCMOLT_GPIO_PIN_PIN35:
+            break;
+        case BCMOLT_GPIO_PIN_PIN36:
+            break;
+        case BCMOLT_GPIO_PIN_PIN37:
+            break;
+        case BCMOLT_GPIO_PIN_PIN38:
+            break;
+        case BCMOLT_GPIO_PIN_PIN39:
+            break;
+        case BCMOLT_GPIO_PIN_PIN40:
+            break;
+        case BCMOLT_GPIO_PIN_PIN41:
+            break;
+        case BCMOLT_GPIO_PIN_PIN42:
+            break;
+        case BCMOLT_GPIO_PIN_PIN43:
+            break;
+        case BCMOLT_GPIO_PIN_PIN44:
+            break;
+        case BCMOLT_GPIO_PIN_PIN45:
+            break;
+        case BCMOLT_GPIO_PIN_PIN46:
+            break;
+        case BCMOLT_GPIO_PIN_PIN47:
+            break;
+        case BCMOLT_GPIO_PIN_PIN48:
+            break;
+        case BCMOLT_GPIO_PIN_PIN49:
+            break;
+        case BCMOLT_GPIO_PIN_PIN50:
+            break;
+        case BCMOLT_GPIO_PIN_PIN51:
+            break;
+        case BCMOLT_GPIO_PIN_PIN52:
+            break;
+        case BCMOLT_GPIO_PIN_PIN53:
+            break;
+        case BCMOLT_GPIO_PIN_PIN54:
+            break;
+        case BCMOLT_GPIO_PIN_PIN55:
+            break;
+        case BCMOLT_GPIO_PIN_PIN56:
+            break;
+        case BCMOLT_GPIO_PIN_PIN57:
+            break;
+        case BCMOLT_GPIO_PIN_PIN58:
+            break;
+        case BCMOLT_GPIO_PIN_PIN59:
+            break;
+        case BCMOLT_GPIO_PIN_PIN60:
+            break;
+        case BCMOLT_GPIO_PIN_PIN61:
+            break;
+        case BCMOLT_GPIO_PIN_PIN62:
+            break;
+        case BCMOLT_GPIO_PIN_PIN63:
+            break;
+        case BCMOLT_GPIO_PIN_PIN64:
+            break;
+        case BCMOLT_GPIO_PIN_PIN65:
+            break;
+        case BCMOLT_GPIO_PIN_PIN66:
+            break;
+        case BCMOLT_GPIO_PIN_PIN67:
+            break;
+        case BCMOLT_GPIO_PIN_PIN68:
+            break;
+        case BCMOLT_GPIO_PIN_PIN69:
+            break;
+        case BCMOLT_GPIO_PIN_PIN70:
+            break;
+        case BCMOLT_GPIO_PIN_PIN71:
+            break;
+        case BCMOLT_GPIO_PIN_PIN72:
+            break;
+        case BCMOLT_GPIO_PIN_PIN73:
+            break;
+        case BCMOLT_GPIO_PIN_PIN74:
+            break;
+        case BCMOLT_GPIO_PIN_PIN75:
+            break;
+        case BCMOLT_GPIO_PIN_PIN76:
+            break;
+        case BCMOLT_GPIO_PIN_PIN77:
+            break;
+        case BCMOLT_GPIO_PIN_PIN78:
+            break;
+        case BCMOLT_GPIO_PIN_PIN79:
+            break;
+        case BCMOLT_GPIO_PIN_PIN80:
+            break;
+        case BCMOLT_GPIO_PIN_PIN81:
+            break;
+        case BCMOLT_GPIO_PIN_PIN82:
+            break;
+        case BCMOLT_GPIO_PIN_PIN83:
+            break;
+        case BCMOLT_GPIO_PIN_PIN84:
+            break;
+        case BCMOLT_GPIO_PIN_PIN85:
+            break;
+        case BCMOLT_GPIO_PIN_PIN86:
+            break;
+        case BCMOLT_GPIO_PIN_PIN87:
+            break;
+        case BCMOLT_GPIO_PIN_PIN88:
+            break;
+        case BCMOLT_GPIO_PIN_PIN89:
+            break;
+        case BCMOLT_GPIO_PIN_PIN90:
+            break;
+        case BCMOLT_GPIO_PIN_PIN91:
+            break;
+        case BCMOLT_GPIO_PIN_PIN92:
+            break;
+        case BCMOLT_GPIO_PIN_PIN93:
+            break;
+        case BCMOLT_GPIO_PIN_PIN94:
+            break;
+        case BCMOLT_GPIO_PIN_PIN95:
+            break;
+        case BCMOLT_GPIO_PIN_PIN96:
+            break;
+        case BCMOLT_GPIO_PIN_PIN97:
+            break;
+        case BCMOLT_GPIO_PIN_PIN98:
+            break;
+        case BCMOLT_GPIO_PIN_PIN99:
+            break;
+        case BCMOLT_GPIO_PIN_PIN100:
+            break;
+        case BCMOLT_GPIO_PIN_PIN101:
+            break;
+        case BCMOLT_GPIO_PIN_PIN102:
+            break;
+        case BCMOLT_GPIO_PIN_PIN103:
+            break;
+        case BCMOLT_GPIO_PIN_PIN104:
+            break;
+        case BCMOLT_GPIO_PIN_PIN105:
+            break;
+        case BCMOLT_GPIO_PIN_PIN106:
+            break;
+        case BCMOLT_GPIO_PIN_UNCONFIGURED:
+            break;
+        default:
+            return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_xgpon_protection_switching_debug_set_default(bcmolt_xgpon_protection_switching_debug *this)
+{
+    this->data_map_delay_ms = 0;
+    this->rerange_send_ranging_time = BCMOS_FALSE;
+    this->rerange_send_ranging_time_delay = 0;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_protection_switching_debug_pack(const bcmolt_xgpon_protection_switching_debug *this, bcmolt_buf *buf)
+{
+    if (!bcmolt_buf_write_u16(buf, this->data_map_delay_ms))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_write_bool(buf, this->rerange_send_ranging_time))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_write_u16(buf, this->rerange_send_ranging_time_delay))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_protection_switching_debug_unpack(bcmolt_xgpon_protection_switching_debug *this, bcmolt_buf *buf, void **extra_mem)
+{
+    if (!bcmolt_buf_read_u16(buf, &this->data_map_delay_ms))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_read_bool(buf, &this->rerange_send_ranging_time))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_read_u16(buf, &this->rerange_send_ranging_time_delay))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_protection_switching_debug_scan(bcmolt_buf *packed, uint32_t *extra_mem)
+{
+    (void)extra_mem;
+    return bcmolt_buf_skip(packed, 5);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_protection_switching_debug_bounds_check(const bcmolt_xgpon_protection_switching_debug *this)
+{
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_xgpon_rssi_normal_config_set_default(bcmolt_xgpon_rssi_normal_config *this)
+{
+    this->polarity = BCMOLT_POLARITY_LOW;
+    this->location = 35;
+    this->location_sign = BCMOLT_SIGN_POSITIVE;
+    this->pulse_width = 80;
+    this->minimum_burst = 200;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_rssi_normal_config_pack(const bcmolt_xgpon_rssi_normal_config *this, bcmolt_buf *buf)
+{
+    if (!bcmolt_polarity_pack(this->polarity, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_write_u8(buf, this->location))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_sign_pack(this->location_sign, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_write_u16(buf, this->pulse_width))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_write_u16(buf, this->minimum_burst))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_rssi_normal_config_unpack(bcmolt_xgpon_rssi_normal_config *this, bcmolt_buf *buf, void **extra_mem)
+{
+    if (!bcmolt_polarity_unpack(&this->polarity, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_read_u8(buf, &this->location))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_sign_unpack(&this->location_sign, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_read_u16(buf, &this->pulse_width))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_read_u16(buf, &this->minimum_burst))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_rssi_normal_config_scan(bcmolt_buf *packed, uint32_t *extra_mem)
+{
+    (void)extra_mem;
+    return bcmolt_buf_skip(packed, 7);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_rssi_normal_config_bounds_check(const bcmolt_xgpon_rssi_normal_config *this)
+{
+    switch (this->polarity)
+    {
+        case BCMOLT_POLARITY_LOW:
+            break;
+        case BCMOLT_POLARITY_HIGH:
+            break;
+        default:
+            return BCMOS_FALSE;
+    }
+
+    switch (this->location_sign)
+    {
+        case BCMOLT_SIGN_POSITIVE:
+            break;
+        case BCMOLT_SIGN_NEGATIVE:
+            break;
+        default:
+            return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_xgpon_rssi_ranging_config_set_default(bcmolt_xgpon_rssi_ranging_config *this)
+{
+    this->start_on_ed = BCMOS_TRUE;
+    this->frame_delay = 0;
+    this->word_delay = 20;
+    this->frame_delay_after_ed = 0;
+    this->word_delay_after_ed = 1;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_rssi_ranging_config_pack(const bcmolt_xgpon_rssi_ranging_config *this, bcmolt_buf *buf)
+{
+    if (!bcmolt_buf_write_bool(buf, this->start_on_ed))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_write_u8(buf, this->frame_delay))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_write_u16(buf, this->word_delay))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_write_u8(buf, this->frame_delay_after_ed))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_write_u16(buf, this->word_delay_after_ed))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_rssi_ranging_config_unpack(bcmolt_xgpon_rssi_ranging_config *this, bcmolt_buf *buf, void **extra_mem)
+{
+    if (!bcmolt_buf_read_bool(buf, &this->start_on_ed))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_read_u8(buf, &this->frame_delay))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_read_u16(buf, &this->word_delay))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_read_u8(buf, &this->frame_delay_after_ed))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_read_u16(buf, &this->word_delay_after_ed))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_rssi_ranging_config_scan(bcmolt_buf *packed, uint32_t *extra_mem)
+{
+    (void)extra_mem;
+    return bcmolt_buf_skip(packed, 7);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_rssi_ranging_config_bounds_check(const bcmolt_xgpon_rssi_ranging_config *this)
+{
+    if (this->frame_delay > 31)
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (this->word_delay > 16383)
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (this->frame_delay_after_ed > 31)
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (this->word_delay_after_ed > 16383)
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_xgpon_rx_ranging_sm_pattern_set_default(bcmolt_xgpon_rx_ranging_sm_pattern *this)
+{
+    this->trx_reset_pattern_first = 0;
+    this->trx_reset_pattern_middle = 0;
+    this->trx_reset_pattern_last = 0;
+    this->trx_reset_middle_repeats = 0;
+    this->trx_reset_location = 0;
+    this->bcdr_reset_pattern_first = 0;
+    this->bcdr_reset_pattern_middle = 0;
+    this->bcdr_reset_pattern_last = 0;
+    this->bcdr_reset_middle_repeats = 0;
+    this->bcdr_reset_location = 0;
+    this->bcdr_reset_polarity = BCMOS_FALSE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_rx_ranging_sm_pattern_pack(const bcmolt_xgpon_rx_ranging_sm_pattern *this, bcmolt_buf *buf)
+{
+    if (!bcmolt_buf_write_u32(buf, this->trx_reset_pattern_first))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_write_u32(buf, this->trx_reset_pattern_middle))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_write_u32(buf, this->trx_reset_pattern_last))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_write_u8(buf, this->trx_reset_middle_repeats))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_write_u8(buf, this->trx_reset_location))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_write_u32(buf, this->bcdr_reset_pattern_first))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_write_u32(buf, this->bcdr_reset_pattern_middle))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_write_u32(buf, this->bcdr_reset_pattern_last))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_write_u8(buf, this->bcdr_reset_middle_repeats))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_write_u8(buf, this->bcdr_reset_location))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_write_bool(buf, this->bcdr_reset_polarity))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_rx_ranging_sm_pattern_unpack(bcmolt_xgpon_rx_ranging_sm_pattern *this, bcmolt_buf *buf, void **extra_mem)
+{
+    if (!bcmolt_buf_read_u32(buf, &this->trx_reset_pattern_first))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_read_u32(buf, &this->trx_reset_pattern_middle))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_read_u32(buf, &this->trx_reset_pattern_last))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_read_u8(buf, &this->trx_reset_middle_repeats))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_read_u8(buf, &this->trx_reset_location))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_read_u32(buf, &this->bcdr_reset_pattern_first))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_read_u32(buf, &this->bcdr_reset_pattern_middle))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_read_u32(buf, &this->bcdr_reset_pattern_last))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_read_u8(buf, &this->bcdr_reset_middle_repeats))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_read_u8(buf, &this->bcdr_reset_location))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_read_bool(buf, &this->bcdr_reset_polarity))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_rx_ranging_sm_pattern_scan(bcmolt_buf *packed, uint32_t *extra_mem)
+{
+    (void)extra_mem;
+    return bcmolt_buf_skip(packed, 29);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_rx_ranging_sm_pattern_bounds_check(const bcmolt_xgpon_rx_ranging_sm_pattern *this)
+{
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_xgpon_serdes_configuration_set_default(bcmolt_xgpon_serdes_configuration *this)
+{
+    this->multi_ed_mode = BCMOS_FALSE;
+    this->ranging_mode = BCMOLT_XGPON_SERDES_RANGING_MODE_BCDR;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_serdes_configuration_pack(const bcmolt_xgpon_serdes_configuration *this, bcmolt_buf *buf)
+{
+    if (!bcmolt_buf_write_bool(buf, this->multi_ed_mode))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_xgpon_serdes_ranging_mode_pack(this->ranging_mode, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_serdes_configuration_unpack(bcmolt_xgpon_serdes_configuration *this, bcmolt_buf *buf, void **extra_mem)
+{
+    if (!bcmolt_buf_read_bool(buf, &this->multi_ed_mode))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_xgpon_serdes_ranging_mode_unpack(&this->ranging_mode, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_serdes_configuration_scan(bcmolt_buf *packed, uint32_t *extra_mem)
+{
+    (void)extra_mem;
+    return bcmolt_buf_skip(packed, 2);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_serdes_configuration_bounds_check(const bcmolt_xgpon_serdes_configuration *this)
+{
+    switch (this->ranging_mode)
+    {
+        case BCMOLT_XGPON_SERDES_RANGING_MODE_ED:
+            break;
+        case BCMOLT_XGPON_SERDES_RANGING_MODE_BCDR:
+            break;
+        case BCMOLT_XGPON_SERDES_RANGING_MODE_FAST_RANGING1:
+            break;
+        case BCMOLT_XGPON_SERDES_RANGING_MODE_FAST_RANGING2:
+            break;
+        default:
+            return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_xgpon_sn_acquisition_set_default(bcmolt_xgpon_sn_acquisition *this)
+{
+    this->interval = 1000;
+    this->control = BCMOLT_CONTROL_STATE_DISABLE;
+    this->onu_post_discovery_mode = BCMOLT_ONU_POST_DISCOVERY_MODE_NONE;
+    this->burst_profile = (bcmolt_burst_profile_index) 0;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_sn_acquisition_pack(const bcmolt_xgpon_sn_acquisition *this, bcmolt_buf *buf)
+{
+    if (!bcmolt_buf_write_u32(buf, this->interval))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_control_state_pack(this->control, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_onu_post_discovery_mode_pack(this->onu_post_discovery_mode, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_write_u8(buf, (uint8_t) this->burst_profile))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_sn_acquisition_unpack(bcmolt_xgpon_sn_acquisition *this, bcmolt_buf *buf, void **extra_mem)
+{
+    if (!bcmolt_buf_read_u32(buf, &this->interval))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_control_state_unpack(&this->control, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_onu_post_discovery_mode_unpack(&this->onu_post_discovery_mode, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_buf_read_u8(buf, (uint8_t *) &this->burst_profile))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_sn_acquisition_scan(bcmolt_buf *packed, uint32_t *extra_mem)
+{
+    (void)extra_mem;
+    return bcmolt_buf_skip(packed, 7);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_sn_acquisition_bounds_check(const bcmolt_xgpon_sn_acquisition *this)
+{
+    if (this->interval < 1000)
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (this->interval > 2147483UL)
+    {
+        return BCMOS_FALSE;
+    }
+
+    switch (this->control)
+    {
+        case BCMOLT_CONTROL_STATE_DISABLE:
+            break;
+        case BCMOLT_CONTROL_STATE_ENABLE:
+            break;
+        default:
+            return BCMOS_FALSE;
+    }
+
+    switch (this->onu_post_discovery_mode)
+    {
+        case BCMOLT_ONU_POST_DISCOVERY_MODE_NONE:
+            break;
+        case BCMOLT_ONU_POST_DISCOVERY_MODE_ACTIVATE:
+            break;
+        case BCMOLT_ONU_POST_DISCOVERY_MODE_DISABLE:
+            break;
+        default:
+            return BCMOS_FALSE;
+    }
+
+    if (this->burst_profile > (bcmolt_burst_profile_index) 3)
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_xgpon_trx_debug_set_default(bcmolt_xgpon_trx_debug *this)
+{
+    this->rx_reversed_polarity = BCMOLT_CONTROL_STATE_DISABLE;
+    this->neg_out_bit = BCMOLT_CONTROL_STATE_DISABLE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_trx_debug_pack(const bcmolt_xgpon_trx_debug *this, bcmolt_buf *buf)
+{
+    if (!bcmolt_control_state_pack(this->rx_reversed_polarity, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_control_state_pack(this->neg_out_bit, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_trx_debug_unpack(bcmolt_xgpon_trx_debug *this, bcmolt_buf *buf, void **extra_mem)
+{
+    if (!bcmolt_control_state_unpack(&this->rx_reversed_polarity, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    if (!bcmolt_control_state_unpack(&this->neg_out_bit, buf))
+    {
+        return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_trx_debug_scan(bcmolt_buf *packed, uint32_t *extra_mem)
+{
+    (void)extra_mem;
+    return bcmolt_buf_skip(packed, 2);
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_trx_debug_bounds_check(const bcmolt_xgpon_trx_debug *this)
+{
+    switch (this->rx_reversed_polarity)
+    {
+        case BCMOLT_CONTROL_STATE_DISABLE:
+            break;
+        case BCMOLT_CONTROL_STATE_ENABLE:
+            break;
+        default:
+            return BCMOS_FALSE;
+    }
+
+    switch (this->neg_out_bit)
+    {
+        case BCMOLT_CONTROL_STATE_DISABLE:
+            break;
+        case BCMOLT_CONTROL_STATE_ENABLE:
+            break;
+        default:
+            return BCMOS_FALSE;
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_ae_ni_key_set_default(bcmolt_ae_ni_key *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_AE_NI_KEY_ID_AE_NI)) != 0)
+    {
+        this->ae_ni = (bcmolt_ae_ni) 0;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_ae_ni_key_pack(const bcmolt_ae_ni_key *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_AE_NI_KEY_ID_AE_NI)) != 0)
+    {
+        if (!bcmolt_buf_write_u16(buf, (uint16_t) this->ae_ni))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_ae_ni_key_get_packed_length(const bcmolt_ae_ni_key *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_AE_NI_KEY_ID_AE_NI)) != 0)
+    {
+        count += 2;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_ae_ni_key_unpack(bcmolt_ae_ni_key *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_AE_NI_KEY_ID_AE_NI)) != 0)
+    {
+        if (!bcmolt_buf_read_u16(buf, (uint16_t *) &this->ae_ni))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_ae_ni_key_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_AE_NI_KEY_ID_AE_NI)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 2))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_ae_ni_key_bounds_check(const bcmolt_ae_ni_key *this, bcmolt_presence_mask fields_present, bcmolt_ae_ni_key_id *failed_prop)
+{
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_ae_ni_cfg_data_set_default(bcmolt_ae_ni_cfg_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_AE_NI_CFG_ID_MAC_ADDRESS)) != 0)
+    {
+        this->mac_address.u8[0] = 0x0000;
+        this->mac_address.u8[1] = 0x000D;
+        this->mac_address.u8[2] = 0x00B6;
+        this->mac_address.u8[3] = 0x0000;
+        this->mac_address.u8[4] = 0x0000;
+        this->mac_address.u8[5] = 0x0000;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_AE_NI_CFG_ID_AE_NI_EN)) != 0)
+    {
+        this->ae_ni_en = BCMOLT_AE_NI_EN_STATE_DISABLED;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_AE_NI_CFG_ID_MTU_10G)) != 0)
+    {
+        this->mtu_10g = 1536;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_AE_NI_CFG_ID_PRBS_GENERATOR)) != 0)
+    {
+        this->prbs_generator.polynom = BCMOLT_PRBS_POLYNOMIAL_PRBS_7;
+        this->prbs_generator.error_insert = BCMOS_FALSE;
+        this->prbs_generator.invert = BCMOS_FALSE;
+        this->prbs_generator.control = BCMOLT_CONTROL_STATE_DISABLE;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_AE_NI_CFG_ID_PRBS_CHECKER)) != 0)
+    {
+        this->prbs_checker.polynom = BCMOLT_PRBS_POLYNOMIAL_PRBS_7;
+        this->prbs_checker.mode = BCMOLT_PRBS_CHECKER_MODE_SELF_SYNC;
+        this->prbs_checker.data_invert = BCMOS_FALSE;
+        this->prbs_checker.control = BCMOLT_CONTROL_STATE_DISABLE;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_AE_NI_CFG_ID_PRBS_STATUS)) != 0)
+    {
+        this->prbs_status.lock_state = BCMOLT_PRBS_LOCK_STATE_UNLOCKED;
+        this->prbs_status.error_counts = 0;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_ae_ni_cfg_data_pack(const bcmolt_ae_ni_cfg_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_AE_NI_CFG_ID_MAC_ADDRESS)) != 0)
+    {
+        if (!bcmolt_buf_write_mac_address(buf, this->mac_address))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_AE_NI_CFG_ID_AE_NI_EN)) != 0)
+    {
+        if (!bcmolt_ae_ni_en_state_pack(this->ae_ni_en, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_AE_NI_CFG_ID_MTU_10G)) != 0)
+    {
+        if (!bcmolt_buf_write_u16(buf, this->mtu_10g))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_AE_NI_CFG_ID_PRBS_GENERATOR)) != 0)
+    {
+        if (!bcmolt_prbs_generator_config_pack(&this->prbs_generator, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_AE_NI_CFG_ID_PRBS_CHECKER)) != 0)
+    {
+        if (!bcmolt_prbs_checker_config_pack(&this->prbs_checker, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_AE_NI_CFG_ID_PRBS_STATUS)) != 0)
+    {
+        if (!bcmolt_prbs_status_pack(&this->prbs_status, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_ae_ni_cfg_data_get_packed_length(const bcmolt_ae_ni_cfg_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_AE_NI_CFG_ID_MAC_ADDRESS)) != 0)
+    {
+        count += 6;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_AE_NI_CFG_ID_AE_NI_EN)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_AE_NI_CFG_ID_MTU_10G)) != 0)
+    {
+        count += 2;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_AE_NI_CFG_ID_PRBS_GENERATOR)) != 0)
+    {
+        count += 4;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_AE_NI_CFG_ID_PRBS_CHECKER)) != 0)
+    {
+        count += 4;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_AE_NI_CFG_ID_PRBS_STATUS)) != 0)
+    {
+        count += 5;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_ae_ni_cfg_data_unpack(bcmolt_ae_ni_cfg_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_AE_NI_CFG_ID_MAC_ADDRESS)) != 0)
+    {
+        if (!bcmolt_buf_read_mac_address(buf, &this->mac_address))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_AE_NI_CFG_ID_AE_NI_EN)) != 0)
+    {
+        if (!bcmolt_ae_ni_en_state_unpack(&this->ae_ni_en, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_AE_NI_CFG_ID_MTU_10G)) != 0)
+    {
+        if (!bcmolt_buf_read_u16(buf, &this->mtu_10g))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_AE_NI_CFG_ID_PRBS_GENERATOR)) != 0)
+    {
+        if (!bcmolt_prbs_generator_config_unpack(&this->prbs_generator, buf, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_AE_NI_CFG_ID_PRBS_CHECKER)) != 0)
+    {
+        if (!bcmolt_prbs_checker_config_unpack(&this->prbs_checker, buf, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_AE_NI_CFG_ID_PRBS_STATUS)) != 0)
+    {
+        if (!bcmolt_prbs_status_unpack(&this->prbs_status, buf, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_ae_ni_cfg_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_AE_NI_CFG_ID_MAC_ADDRESS)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 6))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_AE_NI_CFG_ID_AE_NI_EN)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_AE_NI_CFG_ID_MTU_10G)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 2))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_AE_NI_CFG_ID_PRBS_GENERATOR)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 4))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_AE_NI_CFG_ID_PRBS_CHECKER)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 4))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_AE_NI_CFG_ID_PRBS_STATUS)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 5))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_ae_ni_cfg_data_bounds_check(const bcmolt_ae_ni_cfg_data *this, bcmolt_presence_mask fields_present, bcmolt_ae_ni_cfg_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_AE_NI_CFG_ID_AE_NI_EN)) != 0)
+    {
+        switch (this->ae_ni_en)
+        {
+            case BCMOLT_AE_NI_EN_STATE_DISABLED:
+                break;
+            case BCMOLT_AE_NI_EN_STATE_ENABLED:
+                break;
+            default:
+                *failed_prop = BCMOLT_AE_NI_CFG_ID_AE_NI_EN;
+                return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_AE_NI_CFG_ID_MTU_10G)) != 0)
+    {
+        if (this->mtu_10g < 64)
+        {
+            *failed_prop = BCMOLT_AE_NI_CFG_ID_MTU_10G;
+            return BCMOS_FALSE;
+        }
+
+        if (this->mtu_10g > 10000)
+        {
+            *failed_prop = BCMOLT_AE_NI_CFG_ID_MTU_10G;
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_AE_NI_CFG_ID_PRBS_GENERATOR)) != 0)
+    {
+        if (!bcmolt_prbs_generator_config_bounds_check(&this->prbs_generator))
+        {
+            *failed_prop = BCMOLT_AE_NI_CFG_ID_PRBS_GENERATOR;
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_AE_NI_CFG_ID_PRBS_CHECKER)) != 0)
+    {
+        if (!bcmolt_prbs_checker_config_bounds_check(&this->prbs_checker))
+        {
+            *failed_prop = BCMOLT_AE_NI_CFG_ID_PRBS_CHECKER;
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_AE_NI_CFG_ID_PRBS_STATUS)) != 0)
+    {
+        if (!bcmolt_prbs_status_bounds_check(&this->prbs_status))
+        {
+            *failed_prop = BCMOLT_AE_NI_CFG_ID_PRBS_STATUS;
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_ae_ni_set_ae_ni_en_state_data_set_default(bcmolt_ae_ni_set_ae_ni_en_state_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_AE_NI_SET_AE_NI_EN_STATE_ID_NEW_STATE)) != 0)
+    {
+        this->new_state = BCMOLT_AE_NI_EN_STATE_DISABLED;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_ae_ni_set_ae_ni_en_state_data_pack(const bcmolt_ae_ni_set_ae_ni_en_state_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_AE_NI_SET_AE_NI_EN_STATE_ID_NEW_STATE)) != 0)
+    {
+        if (!bcmolt_ae_ni_en_state_pack(this->new_state, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_ae_ni_set_ae_ni_en_state_data_get_packed_length(const bcmolt_ae_ni_set_ae_ni_en_state_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_AE_NI_SET_AE_NI_EN_STATE_ID_NEW_STATE)) != 0)
+    {
+        count += 1;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_ae_ni_set_ae_ni_en_state_data_unpack(bcmolt_ae_ni_set_ae_ni_en_state_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_AE_NI_SET_AE_NI_EN_STATE_ID_NEW_STATE)) != 0)
+    {
+        if (!bcmolt_ae_ni_en_state_unpack(&this->new_state, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_ae_ni_set_ae_ni_en_state_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_AE_NI_SET_AE_NI_EN_STATE_ID_NEW_STATE)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_ae_ni_set_ae_ni_en_state_data_bounds_check(const bcmolt_ae_ni_set_ae_ni_en_state_data *this, bcmolt_presence_mask fields_present, bcmolt_ae_ni_set_ae_ni_en_state_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_AE_NI_SET_AE_NI_EN_STATE_ID_NEW_STATE)) != 0)
+    {
+        switch (this->new_state)
+        {
+            case BCMOLT_AE_NI_EN_STATE_DISABLED:
+                break;
+            case BCMOLT_AE_NI_EN_STATE_ENABLED:
+                break;
+            default:
+                *failed_prop = BCMOLT_AE_NI_SET_AE_NI_EN_STATE_ID_NEW_STATE;
+                return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_ae_path_ds_key_set_default(bcmolt_ae_path_ds_key *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_AE_PATH_DS_KEY_ID_AE_NI)) != 0)
+    {
+        this->ae_ni = (bcmolt_ae_ni) 0;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_ae_path_ds_key_pack(const bcmolt_ae_path_ds_key *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_AE_PATH_DS_KEY_ID_AE_NI)) != 0)
+    {
+        if (!bcmolt_buf_write_u16(buf, (uint16_t) this->ae_ni))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_ae_path_ds_key_get_packed_length(const bcmolt_ae_path_ds_key *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_AE_PATH_DS_KEY_ID_AE_NI)) != 0)
+    {
+        count += 2;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_ae_path_ds_key_unpack(bcmolt_ae_path_ds_key *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_AE_PATH_DS_KEY_ID_AE_NI)) != 0)
+    {
+        if (!bcmolt_buf_read_u16(buf, (uint16_t *) &this->ae_ni))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_ae_path_ds_key_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_AE_PATH_DS_KEY_ID_AE_NI)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 2))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_ae_path_ds_key_bounds_check(const bcmolt_ae_path_ds_key *this, bcmolt_presence_mask fields_present, bcmolt_ae_path_ds_key_id *failed_prop)
+{
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_ae_path_ds_stat_data_set_default(bcmolt_ae_path_ds_stat_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_AE_PATH_DS_STAT_ID_BYTES)) != 0)
+    {
+        this->bytes = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_AE_PATH_DS_STAT_ID_FRAMES)) != 0)
+    {
+        this->frames = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_AE_PATH_DS_STAT_ID_FRAMES_64)) != 0)
+    {
+        this->frames_64 = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_AE_PATH_DS_STAT_ID_FRAMES_65_127)) != 0)
+    {
+        this->frames_65_127 = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_AE_PATH_DS_STAT_ID_FRAMES_128_255)) != 0)
+    {
+        this->frames_128_255 = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_AE_PATH_DS_STAT_ID_FRAMES_256_511)) != 0)
+    {
+        this->frames_256_511 = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_AE_PATH_DS_STAT_ID_FRAMES_512_1023)) != 0)
+    {
+        this->frames_512_1023 = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_AE_PATH_DS_STAT_ID_FRAMES_1024_1518)) != 0)
+    {
+        this->frames_1024_1518 = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_AE_PATH_DS_STAT_ID_FRAMES_1519_2047)) != 0)
+    {
+        this->frames_1519_2047 = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_AE_PATH_DS_STAT_ID_FRAMES_2048_4095)) != 0)
+    {
+        this->frames_2048_4095 = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_AE_PATH_DS_STAT_ID_FRAMES_4096_9216)) != 0)
+    {
+        this->frames_4096_9216 = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_AE_PATH_DS_STAT_ID_FRAMES_9217_16383)) != 0)
+    {
+        this->frames_9217_16383 = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_AE_PATH_DS_STAT_ID_BROADCAST_FRAMES)) != 0)
+    {
+        this->broadcast_frames = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_AE_PATH_DS_STAT_ID_DATA_BYTES)) != 0)
+    {
+        this->data_bytes = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_AE_PATH_DS_STAT_ID_MULTICAST_FRAMES)) != 0)
+    {
+        this->multicast_frames = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_AE_PATH_DS_STAT_ID_UNICAST_FRAMES)) != 0)
+    {
+        this->unicast_frames = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_AE_PATH_DS_STAT_ID_ABORT_FRAMES)) != 0)
+    {
+        this->abort_frames = 0;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_ae_path_ds_stat_data_pack(const bcmolt_ae_path_ds_stat_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_AE_PATH_DS_STAT_ID_BYTES)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->bytes))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_AE_PATH_DS_STAT_ID_FRAMES)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->frames))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_AE_PATH_DS_STAT_ID_FRAMES_64)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->frames_64))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_AE_PATH_DS_STAT_ID_FRAMES_65_127)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->frames_65_127))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_AE_PATH_DS_STAT_ID_FRAMES_128_255)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->frames_128_255))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_AE_PATH_DS_STAT_ID_FRAMES_256_511)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->frames_256_511))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_AE_PATH_DS_STAT_ID_FRAMES_512_1023)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->frames_512_1023))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_AE_PATH_DS_STAT_ID_FRAMES_1024_1518)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->frames_1024_1518))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_AE_PATH_DS_STAT_ID_FRAMES_1519_2047)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->frames_1519_2047))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_AE_PATH_DS_STAT_ID_FRAMES_2048_4095)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->frames_2048_4095))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_AE_PATH_DS_STAT_ID_FRAMES_4096_9216)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->frames_4096_9216))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_AE_PATH_DS_STAT_ID_FRAMES_9217_16383)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->frames_9217_16383))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_AE_PATH_DS_STAT_ID_BROADCAST_FRAMES)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->broadcast_frames))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_AE_PATH_DS_STAT_ID_DATA_BYTES)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->data_bytes))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_AE_PATH_DS_STAT_ID_MULTICAST_FRAMES)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->multicast_frames))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_AE_PATH_DS_STAT_ID_UNICAST_FRAMES)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->unicast_frames))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_AE_PATH_DS_STAT_ID_ABORT_FRAMES)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->abort_frames))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_ae_path_ds_stat_data_get_packed_length(const bcmolt_ae_path_ds_stat_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_AE_PATH_DS_STAT_ID_BYTES)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_AE_PATH_DS_STAT_ID_FRAMES)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_AE_PATH_DS_STAT_ID_FRAMES_64)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_AE_PATH_DS_STAT_ID_FRAMES_65_127)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_AE_PATH_DS_STAT_ID_FRAMES_128_255)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_AE_PATH_DS_STAT_ID_FRAMES_256_511)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_AE_PATH_DS_STAT_ID_FRAMES_512_1023)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_AE_PATH_DS_STAT_ID_FRAMES_1024_1518)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_AE_PATH_DS_STAT_ID_FRAMES_1519_2047)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_AE_PATH_DS_STAT_ID_FRAMES_2048_4095)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_AE_PATH_DS_STAT_ID_FRAMES_4096_9216)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_AE_PATH_DS_STAT_ID_FRAMES_9217_16383)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_AE_PATH_DS_STAT_ID_BROADCAST_FRAMES)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_AE_PATH_DS_STAT_ID_DATA_BYTES)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_AE_PATH_DS_STAT_ID_MULTICAST_FRAMES)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_AE_PATH_DS_STAT_ID_UNICAST_FRAMES)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_AE_PATH_DS_STAT_ID_ABORT_FRAMES)) != 0)
+    {
+        count += 8;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_ae_path_ds_stat_data_unpack(bcmolt_ae_path_ds_stat_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_AE_PATH_DS_STAT_ID_BYTES)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->bytes))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_AE_PATH_DS_STAT_ID_FRAMES)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->frames))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_AE_PATH_DS_STAT_ID_FRAMES_64)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->frames_64))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_AE_PATH_DS_STAT_ID_FRAMES_65_127)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->frames_65_127))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_AE_PATH_DS_STAT_ID_FRAMES_128_255)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->frames_128_255))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_AE_PATH_DS_STAT_ID_FRAMES_256_511)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->frames_256_511))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_AE_PATH_DS_STAT_ID_FRAMES_512_1023)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->frames_512_1023))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_AE_PATH_DS_STAT_ID_FRAMES_1024_1518)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->frames_1024_1518))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_AE_PATH_DS_STAT_ID_FRAMES_1519_2047)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->frames_1519_2047))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_AE_PATH_DS_STAT_ID_FRAMES_2048_4095)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->frames_2048_4095))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_AE_PATH_DS_STAT_ID_FRAMES_4096_9216)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->frames_4096_9216))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_AE_PATH_DS_STAT_ID_FRAMES_9217_16383)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->frames_9217_16383))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_AE_PATH_DS_STAT_ID_BROADCAST_FRAMES)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->broadcast_frames))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_AE_PATH_DS_STAT_ID_DATA_BYTES)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->data_bytes))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_AE_PATH_DS_STAT_ID_MULTICAST_FRAMES)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->multicast_frames))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_AE_PATH_DS_STAT_ID_UNICAST_FRAMES)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->unicast_frames))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_AE_PATH_DS_STAT_ID_ABORT_FRAMES)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->abort_frames))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_ae_path_ds_stat_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_AE_PATH_DS_STAT_ID_BYTES)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_AE_PATH_DS_STAT_ID_FRAMES)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_AE_PATH_DS_STAT_ID_FRAMES_64)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_AE_PATH_DS_STAT_ID_FRAMES_65_127)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_AE_PATH_DS_STAT_ID_FRAMES_128_255)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_AE_PATH_DS_STAT_ID_FRAMES_256_511)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_AE_PATH_DS_STAT_ID_FRAMES_512_1023)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_AE_PATH_DS_STAT_ID_FRAMES_1024_1518)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_AE_PATH_DS_STAT_ID_FRAMES_1519_2047)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_AE_PATH_DS_STAT_ID_FRAMES_2048_4095)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_AE_PATH_DS_STAT_ID_FRAMES_4096_9216)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_AE_PATH_DS_STAT_ID_FRAMES_9217_16383)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_AE_PATH_DS_STAT_ID_BROADCAST_FRAMES)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_AE_PATH_DS_STAT_ID_DATA_BYTES)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_AE_PATH_DS_STAT_ID_MULTICAST_FRAMES)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_AE_PATH_DS_STAT_ID_UNICAST_FRAMES)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_AE_PATH_DS_STAT_ID_ABORT_FRAMES)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_ae_path_ds_stat_data_bounds_check(const bcmolt_ae_path_ds_stat_data *this, bcmolt_presence_mask fields_present, bcmolt_ae_path_ds_stat_id *failed_prop)
+{
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_ae_path_ds_stat_cfg_data_set_default(bcmolt_ae_path_ds_stat_cfg_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_AE_PATH_DS_STAT_CFG_ID_CFG)) != 0)
+    {
+        this->cfg.trigger.type = BCMOLT_STAT_CONDITION_TYPE_NONE;
+        this->cfg.soak.active_soak_time = 0;
+        this->cfg.soak.clear_soak_time = 0;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_ae_path_ds_stat_cfg_data_pack(const bcmolt_ae_path_ds_stat_cfg_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_AE_PATH_DS_STAT_CFG_ID_CFG)) != 0)
+    {
+        if (!bcmolt_stat_alarm_config_pack(&this->cfg, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_ae_path_ds_stat_cfg_data_get_packed_length(const bcmolt_ae_path_ds_stat_cfg_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_AE_PATH_DS_STAT_CFG_ID_CFG)) != 0)
+    {
+        count += bcmolt_stat_alarm_config_get_packed_length(&this->cfg);
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_ae_path_ds_stat_cfg_data_unpack(bcmolt_ae_path_ds_stat_cfg_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_AE_PATH_DS_STAT_CFG_ID_CFG)) != 0)
+    {
+        if (!bcmolt_stat_alarm_config_unpack(&this->cfg, buf, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_ae_path_ds_stat_cfg_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_AE_PATH_DS_STAT_CFG_ID_CFG)) != 0)
+    {
+        if (!bcmolt_stat_alarm_config_scan(packed, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_ae_path_ds_stat_cfg_data_bounds_check(const bcmolt_ae_path_ds_stat_cfg_data *this, bcmolt_presence_mask fields_present, bcmolt_ae_path_ds_stat_cfg_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_AE_PATH_DS_STAT_CFG_ID_CFG)) != 0)
+    {
+        if (!bcmolt_stat_alarm_config_bounds_check(&this->cfg))
+        {
+            *failed_prop = BCMOLT_AE_PATH_DS_STAT_CFG_ID_CFG;
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_ae_path_ds_stat_alarm_cleared_data_set_default(bcmolt_ae_path_ds_stat_alarm_cleared_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_AE_PATH_DS_STAT_ALARM_CLEARED_ID_STAT)) != 0)
+    {
+        this->stat = BCMOLT_AE_PATH_DS_STAT_ID_BYTES;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_ae_path_ds_stat_alarm_cleared_data_pack(const bcmolt_ae_path_ds_stat_alarm_cleared_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_AE_PATH_DS_STAT_ALARM_CLEARED_ID_STAT)) != 0)
+    {
+        if (!bcmolt_ae_path_ds_stat_id_pack(this->stat, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_ae_path_ds_stat_alarm_cleared_data_get_packed_length(const bcmolt_ae_path_ds_stat_alarm_cleared_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_AE_PATH_DS_STAT_ALARM_CLEARED_ID_STAT)) != 0)
+    {
+        count += 2;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_ae_path_ds_stat_alarm_cleared_data_unpack(bcmolt_ae_path_ds_stat_alarm_cleared_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_AE_PATH_DS_STAT_ALARM_CLEARED_ID_STAT)) != 0)
+    {
+        if (!bcmolt_ae_path_ds_stat_id_unpack(&this->stat, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_ae_path_ds_stat_alarm_cleared_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_AE_PATH_DS_STAT_ALARM_CLEARED_ID_STAT)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 2))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_ae_path_ds_stat_alarm_cleared_data_bounds_check(const bcmolt_ae_path_ds_stat_alarm_cleared_data *this, bcmolt_presence_mask fields_present, bcmolt_ae_path_ds_stat_alarm_cleared_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_AE_PATH_DS_STAT_ALARM_CLEARED_ID_STAT)) != 0)
+    {
+        switch (this->stat)
+        {
+            case BCMOLT_AE_PATH_DS_STAT_ID_BYTES:
+                break;
+            case BCMOLT_AE_PATH_DS_STAT_ID_FRAMES:
+                break;
+            case BCMOLT_AE_PATH_DS_STAT_ID_FRAMES_64:
+                break;
+            case BCMOLT_AE_PATH_DS_STAT_ID_FRAMES_65_127:
+                break;
+            case BCMOLT_AE_PATH_DS_STAT_ID_FRAMES_128_255:
+                break;
+            case BCMOLT_AE_PATH_DS_STAT_ID_FRAMES_256_511:
+                break;
+            case BCMOLT_AE_PATH_DS_STAT_ID_FRAMES_512_1023:
+                break;
+            case BCMOLT_AE_PATH_DS_STAT_ID_FRAMES_1024_1518:
+                break;
+            case BCMOLT_AE_PATH_DS_STAT_ID_FRAMES_1519_2047:
+                break;
+            case BCMOLT_AE_PATH_DS_STAT_ID_FRAMES_2048_4095:
+                break;
+            case BCMOLT_AE_PATH_DS_STAT_ID_FRAMES_4096_9216:
+                break;
+            case BCMOLT_AE_PATH_DS_STAT_ID_FRAMES_9217_16383:
+                break;
+            case BCMOLT_AE_PATH_DS_STAT_ID_BROADCAST_FRAMES:
+                break;
+            case BCMOLT_AE_PATH_DS_STAT_ID_DATA_BYTES:
+                break;
+            case BCMOLT_AE_PATH_DS_STAT_ID_MULTICAST_FRAMES:
+                break;
+            case BCMOLT_AE_PATH_DS_STAT_ID_UNICAST_FRAMES:
+                break;
+            case BCMOLT_AE_PATH_DS_STAT_ID_ABORT_FRAMES:
+                break;
+            default:
+                *failed_prop = BCMOLT_AE_PATH_DS_STAT_ALARM_CLEARED_ID_STAT;
+                return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_ae_path_ds_stat_alarm_raised_data_set_default(bcmolt_ae_path_ds_stat_alarm_raised_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_AE_PATH_DS_STAT_ALARM_RAISED_ID_STAT)) != 0)
+    {
+        this->stat = BCMOLT_AE_PATH_DS_STAT_ID_BYTES;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_ae_path_ds_stat_alarm_raised_data_pack(const bcmolt_ae_path_ds_stat_alarm_raised_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_AE_PATH_DS_STAT_ALARM_RAISED_ID_STAT)) != 0)
+    {
+        if (!bcmolt_ae_path_ds_stat_id_pack(this->stat, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_ae_path_ds_stat_alarm_raised_data_get_packed_length(const bcmolt_ae_path_ds_stat_alarm_raised_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_AE_PATH_DS_STAT_ALARM_RAISED_ID_STAT)) != 0)
+    {
+        count += 2;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_ae_path_ds_stat_alarm_raised_data_unpack(bcmolt_ae_path_ds_stat_alarm_raised_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_AE_PATH_DS_STAT_ALARM_RAISED_ID_STAT)) != 0)
+    {
+        if (!bcmolt_ae_path_ds_stat_id_unpack(&this->stat, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_ae_path_ds_stat_alarm_raised_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_AE_PATH_DS_STAT_ALARM_RAISED_ID_STAT)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 2))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_ae_path_ds_stat_alarm_raised_data_bounds_check(const bcmolt_ae_path_ds_stat_alarm_raised_data *this, bcmolt_presence_mask fields_present, bcmolt_ae_path_ds_stat_alarm_raised_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_AE_PATH_DS_STAT_ALARM_RAISED_ID_STAT)) != 0)
+    {
+        switch (this->stat)
+        {
+            case BCMOLT_AE_PATH_DS_STAT_ID_BYTES:
+                break;
+            case BCMOLT_AE_PATH_DS_STAT_ID_FRAMES:
+                break;
+            case BCMOLT_AE_PATH_DS_STAT_ID_FRAMES_64:
+                break;
+            case BCMOLT_AE_PATH_DS_STAT_ID_FRAMES_65_127:
+                break;
+            case BCMOLT_AE_PATH_DS_STAT_ID_FRAMES_128_255:
+                break;
+            case BCMOLT_AE_PATH_DS_STAT_ID_FRAMES_256_511:
+                break;
+            case BCMOLT_AE_PATH_DS_STAT_ID_FRAMES_512_1023:
+                break;
+            case BCMOLT_AE_PATH_DS_STAT_ID_FRAMES_1024_1518:
+                break;
+            case BCMOLT_AE_PATH_DS_STAT_ID_FRAMES_1519_2047:
+                break;
+            case BCMOLT_AE_PATH_DS_STAT_ID_FRAMES_2048_4095:
+                break;
+            case BCMOLT_AE_PATH_DS_STAT_ID_FRAMES_4096_9216:
+                break;
+            case BCMOLT_AE_PATH_DS_STAT_ID_FRAMES_9217_16383:
+                break;
+            case BCMOLT_AE_PATH_DS_STAT_ID_BROADCAST_FRAMES:
+                break;
+            case BCMOLT_AE_PATH_DS_STAT_ID_DATA_BYTES:
+                break;
+            case BCMOLT_AE_PATH_DS_STAT_ID_MULTICAST_FRAMES:
+                break;
+            case BCMOLT_AE_PATH_DS_STAT_ID_UNICAST_FRAMES:
+                break;
+            case BCMOLT_AE_PATH_DS_STAT_ID_ABORT_FRAMES:
+                break;
+            default:
+                *failed_prop = BCMOLT_AE_PATH_DS_STAT_ALARM_RAISED_ID_STAT;
+                return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_ae_path_ds_auto_cfg_data_set_default(bcmolt_ae_path_ds_auto_cfg_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_AE_PATH_DS_AUTO_CFG_ID_STAT_ALARM_CLEARED)) != 0)
+    {
+        this->stat_alarm_cleared = BCMOS_FALSE;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_AE_PATH_DS_AUTO_CFG_ID_STAT_ALARM_RAISED)) != 0)
+    {
+        this->stat_alarm_raised = BCMOS_FALSE;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_ae_path_ds_auto_cfg_data_pack(const bcmolt_ae_path_ds_auto_cfg_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_AE_PATH_DS_AUTO_CFG_ID_STAT_ALARM_CLEARED)) != 0)
+    {
+        if (!bcmolt_buf_write_bool(buf, this->stat_alarm_cleared))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_AE_PATH_DS_AUTO_CFG_ID_STAT_ALARM_RAISED)) != 0)
+    {
+        if (!bcmolt_buf_write_bool(buf, this->stat_alarm_raised))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_ae_path_ds_auto_cfg_data_get_packed_length(const bcmolt_ae_path_ds_auto_cfg_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_AE_PATH_DS_AUTO_CFG_ID_STAT_ALARM_CLEARED)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_AE_PATH_DS_AUTO_CFG_ID_STAT_ALARM_RAISED)) != 0)
+    {
+        count += 1;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_ae_path_ds_auto_cfg_data_unpack(bcmolt_ae_path_ds_auto_cfg_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_AE_PATH_DS_AUTO_CFG_ID_STAT_ALARM_CLEARED)) != 0)
+    {
+        if (!bcmolt_buf_read_bool(buf, &this->stat_alarm_cleared))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_AE_PATH_DS_AUTO_CFG_ID_STAT_ALARM_RAISED)) != 0)
+    {
+        if (!bcmolt_buf_read_bool(buf, &this->stat_alarm_raised))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_ae_path_ds_auto_cfg_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_AE_PATH_DS_AUTO_CFG_ID_STAT_ALARM_CLEARED)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_AE_PATH_DS_AUTO_CFG_ID_STAT_ALARM_RAISED)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_ae_path_ds_auto_cfg_data_bounds_check(const bcmolt_ae_path_ds_auto_cfg_data *this, bcmolt_presence_mask fields_present, bcmolt_ae_path_ds_auto_cfg_id *failed_prop)
+{
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_ae_path_us_key_set_default(bcmolt_ae_path_us_key *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_AE_PATH_US_KEY_ID_AE_NI)) != 0)
+    {
+        this->ae_ni = (bcmolt_ae_ni) 0;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_ae_path_us_key_pack(const bcmolt_ae_path_us_key *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_AE_PATH_US_KEY_ID_AE_NI)) != 0)
+    {
+        if (!bcmolt_buf_write_u16(buf, (uint16_t) this->ae_ni))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_ae_path_us_key_get_packed_length(const bcmolt_ae_path_us_key *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_AE_PATH_US_KEY_ID_AE_NI)) != 0)
+    {
+        count += 2;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_ae_path_us_key_unpack(bcmolt_ae_path_us_key *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_AE_PATH_US_KEY_ID_AE_NI)) != 0)
+    {
+        if (!bcmolt_buf_read_u16(buf, (uint16_t *) &this->ae_ni))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_ae_path_us_key_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_AE_PATH_US_KEY_ID_AE_NI)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 2))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_ae_path_us_key_bounds_check(const bcmolt_ae_path_us_key *this, bcmolt_presence_mask fields_present, bcmolt_ae_path_us_key_id *failed_prop)
+{
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_ae_path_us_stat_data_set_default(bcmolt_ae_path_us_stat_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_AE_PATH_US_STAT_ID_BYTES)) != 0)
+    {
+        this->bytes = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_AE_PATH_US_STAT_ID_FRAMES)) != 0)
+    {
+        this->frames = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_AE_PATH_US_STAT_ID_FRAMES_64)) != 0)
+    {
+        this->frames_64 = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_AE_PATH_US_STAT_ID_FRAMES_65_127)) != 0)
+    {
+        this->frames_65_127 = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_AE_PATH_US_STAT_ID_FRAMES_128_255)) != 0)
+    {
+        this->frames_128_255 = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_AE_PATH_US_STAT_ID_FRAMES_256_511)) != 0)
+    {
+        this->frames_256_511 = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_AE_PATH_US_STAT_ID_FRAMES_512_1023)) != 0)
+    {
+        this->frames_512_1023 = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_AE_PATH_US_STAT_ID_FRAMES_1024_1518)) != 0)
+    {
+        this->frames_1024_1518 = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_AE_PATH_US_STAT_ID_FRAMES_1519_2047)) != 0)
+    {
+        this->frames_1519_2047 = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_AE_PATH_US_STAT_ID_FRAMES_2048_4095)) != 0)
+    {
+        this->frames_2048_4095 = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_AE_PATH_US_STAT_ID_FRAMES_4096_9216)) != 0)
+    {
+        this->frames_4096_9216 = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_AE_PATH_US_STAT_ID_FRAMES_9217_16383)) != 0)
+    {
+        this->frames_9217_16383 = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_AE_PATH_US_STAT_ID_BROADCAST_FRAMES)) != 0)
+    {
+        this->broadcast_frames = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_AE_PATH_US_STAT_ID_DATA_BYTES)) != 0)
+    {
+        this->data_bytes = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_AE_PATH_US_STAT_ID_MULTICAST_FRAMES)) != 0)
+    {
+        this->multicast_frames = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_AE_PATH_US_STAT_ID_UNICAST_FRAMES)) != 0)
+    {
+        this->unicast_frames = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_AE_PATH_US_STAT_ID_ABORT_FRAMES)) != 0)
+    {
+        this->abort_frames = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_AE_PATH_US_STAT_ID_FCS_ERROR)) != 0)
+    {
+        this->fcs_error = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_AE_PATH_US_STAT_ID_OVERSIZE_ERROR)) != 0)
+    {
+        this->oversize_error = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_AE_PATH_US_STAT_ID_RUNT_ERROR)) != 0)
+    {
+        this->runt_error = 0;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_ae_path_us_stat_data_pack(const bcmolt_ae_path_us_stat_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_AE_PATH_US_STAT_ID_BYTES)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->bytes))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_AE_PATH_US_STAT_ID_FRAMES)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->frames))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_AE_PATH_US_STAT_ID_FRAMES_64)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->frames_64))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_AE_PATH_US_STAT_ID_FRAMES_65_127)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->frames_65_127))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_AE_PATH_US_STAT_ID_FRAMES_128_255)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->frames_128_255))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_AE_PATH_US_STAT_ID_FRAMES_256_511)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->frames_256_511))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_AE_PATH_US_STAT_ID_FRAMES_512_1023)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->frames_512_1023))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_AE_PATH_US_STAT_ID_FRAMES_1024_1518)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->frames_1024_1518))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_AE_PATH_US_STAT_ID_FRAMES_1519_2047)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->frames_1519_2047))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_AE_PATH_US_STAT_ID_FRAMES_2048_4095)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->frames_2048_4095))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_AE_PATH_US_STAT_ID_FRAMES_4096_9216)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->frames_4096_9216))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_AE_PATH_US_STAT_ID_FRAMES_9217_16383)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->frames_9217_16383))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_AE_PATH_US_STAT_ID_BROADCAST_FRAMES)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->broadcast_frames))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_AE_PATH_US_STAT_ID_DATA_BYTES)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->data_bytes))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_AE_PATH_US_STAT_ID_MULTICAST_FRAMES)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->multicast_frames))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_AE_PATH_US_STAT_ID_UNICAST_FRAMES)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->unicast_frames))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_AE_PATH_US_STAT_ID_ABORT_FRAMES)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->abort_frames))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_AE_PATH_US_STAT_ID_FCS_ERROR)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->fcs_error))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_AE_PATH_US_STAT_ID_OVERSIZE_ERROR)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->oversize_error))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_AE_PATH_US_STAT_ID_RUNT_ERROR)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->runt_error))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_ae_path_us_stat_data_get_packed_length(const bcmolt_ae_path_us_stat_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_AE_PATH_US_STAT_ID_BYTES)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_AE_PATH_US_STAT_ID_FRAMES)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_AE_PATH_US_STAT_ID_FRAMES_64)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_AE_PATH_US_STAT_ID_FRAMES_65_127)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_AE_PATH_US_STAT_ID_FRAMES_128_255)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_AE_PATH_US_STAT_ID_FRAMES_256_511)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_AE_PATH_US_STAT_ID_FRAMES_512_1023)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_AE_PATH_US_STAT_ID_FRAMES_1024_1518)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_AE_PATH_US_STAT_ID_FRAMES_1519_2047)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_AE_PATH_US_STAT_ID_FRAMES_2048_4095)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_AE_PATH_US_STAT_ID_FRAMES_4096_9216)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_AE_PATH_US_STAT_ID_FRAMES_9217_16383)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_AE_PATH_US_STAT_ID_BROADCAST_FRAMES)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_AE_PATH_US_STAT_ID_DATA_BYTES)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_AE_PATH_US_STAT_ID_MULTICAST_FRAMES)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_AE_PATH_US_STAT_ID_UNICAST_FRAMES)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_AE_PATH_US_STAT_ID_ABORT_FRAMES)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_AE_PATH_US_STAT_ID_FCS_ERROR)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_AE_PATH_US_STAT_ID_OVERSIZE_ERROR)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_AE_PATH_US_STAT_ID_RUNT_ERROR)) != 0)
+    {
+        count += 8;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_ae_path_us_stat_data_unpack(bcmolt_ae_path_us_stat_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_AE_PATH_US_STAT_ID_BYTES)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->bytes))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_AE_PATH_US_STAT_ID_FRAMES)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->frames))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_AE_PATH_US_STAT_ID_FRAMES_64)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->frames_64))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_AE_PATH_US_STAT_ID_FRAMES_65_127)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->frames_65_127))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_AE_PATH_US_STAT_ID_FRAMES_128_255)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->frames_128_255))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_AE_PATH_US_STAT_ID_FRAMES_256_511)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->frames_256_511))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_AE_PATH_US_STAT_ID_FRAMES_512_1023)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->frames_512_1023))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_AE_PATH_US_STAT_ID_FRAMES_1024_1518)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->frames_1024_1518))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_AE_PATH_US_STAT_ID_FRAMES_1519_2047)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->frames_1519_2047))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_AE_PATH_US_STAT_ID_FRAMES_2048_4095)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->frames_2048_4095))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_AE_PATH_US_STAT_ID_FRAMES_4096_9216)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->frames_4096_9216))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_AE_PATH_US_STAT_ID_FRAMES_9217_16383)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->frames_9217_16383))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_AE_PATH_US_STAT_ID_BROADCAST_FRAMES)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->broadcast_frames))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_AE_PATH_US_STAT_ID_DATA_BYTES)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->data_bytes))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_AE_PATH_US_STAT_ID_MULTICAST_FRAMES)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->multicast_frames))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_AE_PATH_US_STAT_ID_UNICAST_FRAMES)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->unicast_frames))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_AE_PATH_US_STAT_ID_ABORT_FRAMES)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->abort_frames))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_AE_PATH_US_STAT_ID_FCS_ERROR)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->fcs_error))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_AE_PATH_US_STAT_ID_OVERSIZE_ERROR)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->oversize_error))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_AE_PATH_US_STAT_ID_RUNT_ERROR)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->runt_error))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_ae_path_us_stat_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_AE_PATH_US_STAT_ID_BYTES)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_AE_PATH_US_STAT_ID_FRAMES)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_AE_PATH_US_STAT_ID_FRAMES_64)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_AE_PATH_US_STAT_ID_FRAMES_65_127)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_AE_PATH_US_STAT_ID_FRAMES_128_255)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_AE_PATH_US_STAT_ID_FRAMES_256_511)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_AE_PATH_US_STAT_ID_FRAMES_512_1023)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_AE_PATH_US_STAT_ID_FRAMES_1024_1518)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_AE_PATH_US_STAT_ID_FRAMES_1519_2047)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_AE_PATH_US_STAT_ID_FRAMES_2048_4095)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_AE_PATH_US_STAT_ID_FRAMES_4096_9216)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_AE_PATH_US_STAT_ID_FRAMES_9217_16383)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_AE_PATH_US_STAT_ID_BROADCAST_FRAMES)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_AE_PATH_US_STAT_ID_DATA_BYTES)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_AE_PATH_US_STAT_ID_MULTICAST_FRAMES)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_AE_PATH_US_STAT_ID_UNICAST_FRAMES)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_AE_PATH_US_STAT_ID_ABORT_FRAMES)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_AE_PATH_US_STAT_ID_FCS_ERROR)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_AE_PATH_US_STAT_ID_OVERSIZE_ERROR)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_AE_PATH_US_STAT_ID_RUNT_ERROR)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_ae_path_us_stat_data_bounds_check(const bcmolt_ae_path_us_stat_data *this, bcmolt_presence_mask fields_present, bcmolt_ae_path_us_stat_id *failed_prop)
+{
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_ae_path_us_stat_cfg_data_set_default(bcmolt_ae_path_us_stat_cfg_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_AE_PATH_US_STAT_CFG_ID_CFG)) != 0)
+    {
+        this->cfg.trigger.type = BCMOLT_STAT_CONDITION_TYPE_NONE;
+        this->cfg.soak.active_soak_time = 0;
+        this->cfg.soak.clear_soak_time = 0;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_ae_path_us_stat_cfg_data_pack(const bcmolt_ae_path_us_stat_cfg_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_AE_PATH_US_STAT_CFG_ID_CFG)) != 0)
+    {
+        if (!bcmolt_stat_alarm_config_pack(&this->cfg, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_ae_path_us_stat_cfg_data_get_packed_length(const bcmolt_ae_path_us_stat_cfg_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_AE_PATH_US_STAT_CFG_ID_CFG)) != 0)
+    {
+        count += bcmolt_stat_alarm_config_get_packed_length(&this->cfg);
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_ae_path_us_stat_cfg_data_unpack(bcmolt_ae_path_us_stat_cfg_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_AE_PATH_US_STAT_CFG_ID_CFG)) != 0)
+    {
+        if (!bcmolt_stat_alarm_config_unpack(&this->cfg, buf, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_ae_path_us_stat_cfg_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_AE_PATH_US_STAT_CFG_ID_CFG)) != 0)
+    {
+        if (!bcmolt_stat_alarm_config_scan(packed, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_ae_path_us_stat_cfg_data_bounds_check(const bcmolt_ae_path_us_stat_cfg_data *this, bcmolt_presence_mask fields_present, bcmolt_ae_path_us_stat_cfg_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_AE_PATH_US_STAT_CFG_ID_CFG)) != 0)
+    {
+        if (!bcmolt_stat_alarm_config_bounds_check(&this->cfg))
+        {
+            *failed_prop = BCMOLT_AE_PATH_US_STAT_CFG_ID_CFG;
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_ae_path_us_stat_alarm_cleared_data_set_default(bcmolt_ae_path_us_stat_alarm_cleared_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_AE_PATH_US_STAT_ALARM_CLEARED_ID_STAT)) != 0)
+    {
+        this->stat = BCMOLT_AE_PATH_US_STAT_ID_BYTES;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_ae_path_us_stat_alarm_cleared_data_pack(const bcmolt_ae_path_us_stat_alarm_cleared_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_AE_PATH_US_STAT_ALARM_CLEARED_ID_STAT)) != 0)
+    {
+        if (!bcmolt_ae_path_us_stat_id_pack(this->stat, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_ae_path_us_stat_alarm_cleared_data_get_packed_length(const bcmolt_ae_path_us_stat_alarm_cleared_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_AE_PATH_US_STAT_ALARM_CLEARED_ID_STAT)) != 0)
+    {
+        count += 2;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_ae_path_us_stat_alarm_cleared_data_unpack(bcmolt_ae_path_us_stat_alarm_cleared_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_AE_PATH_US_STAT_ALARM_CLEARED_ID_STAT)) != 0)
+    {
+        if (!bcmolt_ae_path_us_stat_id_unpack(&this->stat, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_ae_path_us_stat_alarm_cleared_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_AE_PATH_US_STAT_ALARM_CLEARED_ID_STAT)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 2))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_ae_path_us_stat_alarm_cleared_data_bounds_check(const bcmolt_ae_path_us_stat_alarm_cleared_data *this, bcmolt_presence_mask fields_present, bcmolt_ae_path_us_stat_alarm_cleared_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_AE_PATH_US_STAT_ALARM_CLEARED_ID_STAT)) != 0)
+    {
+        switch (this->stat)
+        {
+            case BCMOLT_AE_PATH_US_STAT_ID_BYTES:
+                break;
+            case BCMOLT_AE_PATH_US_STAT_ID_FRAMES:
+                break;
+            case BCMOLT_AE_PATH_US_STAT_ID_FRAMES_64:
+                break;
+            case BCMOLT_AE_PATH_US_STAT_ID_FRAMES_65_127:
+                break;
+            case BCMOLT_AE_PATH_US_STAT_ID_FRAMES_128_255:
+                break;
+            case BCMOLT_AE_PATH_US_STAT_ID_FRAMES_256_511:
+                break;
+            case BCMOLT_AE_PATH_US_STAT_ID_FRAMES_512_1023:
+                break;
+            case BCMOLT_AE_PATH_US_STAT_ID_FRAMES_1024_1518:
+                break;
+            case BCMOLT_AE_PATH_US_STAT_ID_FRAMES_1519_2047:
+                break;
+            case BCMOLT_AE_PATH_US_STAT_ID_FRAMES_2048_4095:
+                break;
+            case BCMOLT_AE_PATH_US_STAT_ID_FRAMES_4096_9216:
+                break;
+            case BCMOLT_AE_PATH_US_STAT_ID_FRAMES_9217_16383:
+                break;
+            case BCMOLT_AE_PATH_US_STAT_ID_BROADCAST_FRAMES:
+                break;
+            case BCMOLT_AE_PATH_US_STAT_ID_DATA_BYTES:
+                break;
+            case BCMOLT_AE_PATH_US_STAT_ID_MULTICAST_FRAMES:
+                break;
+            case BCMOLT_AE_PATH_US_STAT_ID_UNICAST_FRAMES:
+                break;
+            case BCMOLT_AE_PATH_US_STAT_ID_ABORT_FRAMES:
+                break;
+            case BCMOLT_AE_PATH_US_STAT_ID_FCS_ERROR:
+                break;
+            case BCMOLT_AE_PATH_US_STAT_ID_OVERSIZE_ERROR:
+                break;
+            case BCMOLT_AE_PATH_US_STAT_ID_RUNT_ERROR:
+                break;
+            default:
+                *failed_prop = BCMOLT_AE_PATH_US_STAT_ALARM_CLEARED_ID_STAT;
+                return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_ae_path_us_stat_alarm_raised_data_set_default(bcmolt_ae_path_us_stat_alarm_raised_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_AE_PATH_US_STAT_ALARM_RAISED_ID_STAT)) != 0)
+    {
+        this->stat = BCMOLT_AE_PATH_US_STAT_ID_BYTES;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_ae_path_us_stat_alarm_raised_data_pack(const bcmolt_ae_path_us_stat_alarm_raised_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_AE_PATH_US_STAT_ALARM_RAISED_ID_STAT)) != 0)
+    {
+        if (!bcmolt_ae_path_us_stat_id_pack(this->stat, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_ae_path_us_stat_alarm_raised_data_get_packed_length(const bcmolt_ae_path_us_stat_alarm_raised_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_AE_PATH_US_STAT_ALARM_RAISED_ID_STAT)) != 0)
+    {
+        count += 2;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_ae_path_us_stat_alarm_raised_data_unpack(bcmolt_ae_path_us_stat_alarm_raised_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_AE_PATH_US_STAT_ALARM_RAISED_ID_STAT)) != 0)
+    {
+        if (!bcmolt_ae_path_us_stat_id_unpack(&this->stat, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_ae_path_us_stat_alarm_raised_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_AE_PATH_US_STAT_ALARM_RAISED_ID_STAT)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 2))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_ae_path_us_stat_alarm_raised_data_bounds_check(const bcmolt_ae_path_us_stat_alarm_raised_data *this, bcmolt_presence_mask fields_present, bcmolt_ae_path_us_stat_alarm_raised_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_AE_PATH_US_STAT_ALARM_RAISED_ID_STAT)) != 0)
+    {
+        switch (this->stat)
+        {
+            case BCMOLT_AE_PATH_US_STAT_ID_BYTES:
+                break;
+            case BCMOLT_AE_PATH_US_STAT_ID_FRAMES:
+                break;
+            case BCMOLT_AE_PATH_US_STAT_ID_FRAMES_64:
+                break;
+            case BCMOLT_AE_PATH_US_STAT_ID_FRAMES_65_127:
+                break;
+            case BCMOLT_AE_PATH_US_STAT_ID_FRAMES_128_255:
+                break;
+            case BCMOLT_AE_PATH_US_STAT_ID_FRAMES_256_511:
+                break;
+            case BCMOLT_AE_PATH_US_STAT_ID_FRAMES_512_1023:
+                break;
+            case BCMOLT_AE_PATH_US_STAT_ID_FRAMES_1024_1518:
+                break;
+            case BCMOLT_AE_PATH_US_STAT_ID_FRAMES_1519_2047:
+                break;
+            case BCMOLT_AE_PATH_US_STAT_ID_FRAMES_2048_4095:
+                break;
+            case BCMOLT_AE_PATH_US_STAT_ID_FRAMES_4096_9216:
+                break;
+            case BCMOLT_AE_PATH_US_STAT_ID_FRAMES_9217_16383:
+                break;
+            case BCMOLT_AE_PATH_US_STAT_ID_BROADCAST_FRAMES:
+                break;
+            case BCMOLT_AE_PATH_US_STAT_ID_DATA_BYTES:
+                break;
+            case BCMOLT_AE_PATH_US_STAT_ID_MULTICAST_FRAMES:
+                break;
+            case BCMOLT_AE_PATH_US_STAT_ID_UNICAST_FRAMES:
+                break;
+            case BCMOLT_AE_PATH_US_STAT_ID_ABORT_FRAMES:
+                break;
+            case BCMOLT_AE_PATH_US_STAT_ID_FCS_ERROR:
+                break;
+            case BCMOLT_AE_PATH_US_STAT_ID_OVERSIZE_ERROR:
+                break;
+            case BCMOLT_AE_PATH_US_STAT_ID_RUNT_ERROR:
+                break;
+            default:
+                *failed_prop = BCMOLT_AE_PATH_US_STAT_ALARM_RAISED_ID_STAT;
+                return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_ae_path_us_auto_cfg_data_set_default(bcmolt_ae_path_us_auto_cfg_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_AE_PATH_US_AUTO_CFG_ID_STAT_ALARM_CLEARED)) != 0)
+    {
+        this->stat_alarm_cleared = BCMOS_FALSE;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_AE_PATH_US_AUTO_CFG_ID_STAT_ALARM_RAISED)) != 0)
+    {
+        this->stat_alarm_raised = BCMOS_FALSE;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_ae_path_us_auto_cfg_data_pack(const bcmolt_ae_path_us_auto_cfg_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_AE_PATH_US_AUTO_CFG_ID_STAT_ALARM_CLEARED)) != 0)
+    {
+        if (!bcmolt_buf_write_bool(buf, this->stat_alarm_cleared))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_AE_PATH_US_AUTO_CFG_ID_STAT_ALARM_RAISED)) != 0)
+    {
+        if (!bcmolt_buf_write_bool(buf, this->stat_alarm_raised))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_ae_path_us_auto_cfg_data_get_packed_length(const bcmolt_ae_path_us_auto_cfg_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_AE_PATH_US_AUTO_CFG_ID_STAT_ALARM_CLEARED)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_AE_PATH_US_AUTO_CFG_ID_STAT_ALARM_RAISED)) != 0)
+    {
+        count += 1;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_ae_path_us_auto_cfg_data_unpack(bcmolt_ae_path_us_auto_cfg_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_AE_PATH_US_AUTO_CFG_ID_STAT_ALARM_CLEARED)) != 0)
+    {
+        if (!bcmolt_buf_read_bool(buf, &this->stat_alarm_cleared))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_AE_PATH_US_AUTO_CFG_ID_STAT_ALARM_RAISED)) != 0)
+    {
+        if (!bcmolt_buf_read_bool(buf, &this->stat_alarm_raised))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_ae_path_us_auto_cfg_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_AE_PATH_US_AUTO_CFG_ID_STAT_ALARM_CLEARED)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_AE_PATH_US_AUTO_CFG_ID_STAT_ALARM_RAISED)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_ae_path_us_auto_cfg_data_bounds_check(const bcmolt_ae_path_us_auto_cfg_data *this, bcmolt_presence_mask fields_present, bcmolt_ae_path_us_auto_cfg_id *failed_prop)
+{
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_channel_key_set_default(bcmolt_channel_key *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_CHANNEL_KEY_ID_PON_NI)) != 0)
+    {
+        this->pon_ni = (bcmolt_pon_ni) 0;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_channel_key_pack(const bcmolt_channel_key *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_CHANNEL_KEY_ID_PON_NI)) != 0)
+    {
+        if (!bcmolt_buf_write_u8(buf, (uint8_t) this->pon_ni))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_channel_key_get_packed_length(const bcmolt_channel_key *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_CHANNEL_KEY_ID_PON_NI)) != 0)
+    {
+        count += 1;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_channel_key_unpack(bcmolt_channel_key *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_CHANNEL_KEY_ID_PON_NI)) != 0)
+    {
+        if (!bcmolt_buf_read_u8(buf, (uint8_t *) &this->pon_ni))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_channel_key_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_CHANNEL_KEY_ID_PON_NI)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_channel_key_bounds_check(const bcmolt_channel_key *this, bcmolt_presence_mask fields_present, bcmolt_channel_key_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_CHANNEL_KEY_ID_PON_NI)) != 0)
+    {
+        if (this->pon_ni > (bcmolt_pon_ni) 15)
+        {
+            *failed_prop = BCMOLT_CHANNEL_KEY_ID_PON_NI;
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_channel_cfg_data_set_default(bcmolt_channel_cfg_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_CHANNEL_CFG_ID_OPERATION_CONTROL)) != 0)
+    {
+        this->operation_control.re = 0;
+        this->operation_control.odn_class = BCMOLT_ODN_CLASS_N1;
+        this->operation_control.ds_fec_mode = BCMOLT_CONTROL_STATE_ENABLE;
+        this->operation_control.protocol = BCMOLT_TC_PROTOCOL_TC_LAYER_PROTOCOL_G_989_P_3;
+        this->operation_control.ds_link_type = BCMOLT_LINK_TYPE_UNSPECIFIED;
+        this->operation_control.pon_id.administrative_label = 0;
+        this->operation_control.pon_id.dwlch_id = 0;
+        this->operation_control.c = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_CHANNEL_CFG_ID_TOL)) != 0)
+    {
+        this->tol = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_CHANNEL_CFG_ID_SYSTEM_PROFILE)) != 0)
+    {
+        this->system_profile.ng_2_sys_id = 0;
+        this->system_profile.version = 0;
+        this->system_profile.channel_spacing = 0;
+        this->system_profile.us_operating_wavelength_bands = BCMOLT_US_OPERATING_WAVELENGTH_BANDS_EXPANDED_SPECTRUM_WIDE_BAND;
+        this->system_profile.us_mse = 0;
+        this->system_profile.loose_calibration_bound = BCMOLT_CALIBRATION_RECORD_UNSPECIFIED;
+        this->system_profile.fsr = 0;
+        this->system_profile.twdm_channel_count = 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_CHANNEL_CFG_ID_CHANNEL_PROFILE)) != 0)
+    {
+        memset(this->channel_profile.arr, 0, sizeof(this->channel_profile.arr));
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_channel_cfg_data_pack(const bcmolt_channel_cfg_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_CHANNEL_CFG_ID_OPERATION_CONTROL)) != 0)
+    {
+        if (!bcmolt_operation_control_pack(&this->operation_control, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_CHANNEL_CFG_ID_TOL)) != 0)
+    {
+        if (!bcmolt_buf_write_u16(buf, this->tol))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_CHANNEL_CFG_ID_SYSTEM_PROFILE)) != 0)
+    {
+        if (!bcmolt_system_profile_pack(&this->system_profile, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_CHANNEL_CFG_ID_CHANNEL_PROFILE)) != 0)
+    {
+        if (!bcmolt_arr_channel_profile_8_pack(&this->channel_profile, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_channel_cfg_data_get_packed_length(const bcmolt_channel_cfg_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_CHANNEL_CFG_ID_OPERATION_CONTROL)) != 0)
+    {
+        count += 11;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_CHANNEL_CFG_ID_TOL)) != 0)
+    {
+        count += 2;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_CHANNEL_CFG_ID_SYSTEM_PROFILE)) != 0)
+    {
+        count += 12;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_CHANNEL_CFG_ID_CHANNEL_PROFILE)) != 0)
+    {
+        count += 120;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_channel_cfg_data_unpack(bcmolt_channel_cfg_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_CHANNEL_CFG_ID_OPERATION_CONTROL)) != 0)
+    {
+        if (!bcmolt_operation_control_unpack(&this->operation_control, buf, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_CHANNEL_CFG_ID_TOL)) != 0)
+    {
+        if (!bcmolt_buf_read_u16(buf, &this->tol))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_CHANNEL_CFG_ID_SYSTEM_PROFILE)) != 0)
+    {
+        if (!bcmolt_system_profile_unpack(&this->system_profile, buf, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_CHANNEL_CFG_ID_CHANNEL_PROFILE)) != 0)
+    {
+        if (!bcmolt_arr_channel_profile_8_unpack(&this->channel_profile, buf, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_channel_cfg_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_CHANNEL_CFG_ID_OPERATION_CONTROL)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 11))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_CHANNEL_CFG_ID_TOL)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 2))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_CHANNEL_CFG_ID_SYSTEM_PROFILE)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 12))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_CHANNEL_CFG_ID_CHANNEL_PROFILE)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 120))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_channel_cfg_data_bounds_check(const bcmolt_channel_cfg_data *this, bcmolt_presence_mask fields_present, bcmolt_channel_cfg_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_CHANNEL_CFG_ID_OPERATION_CONTROL)) != 0)
+    {
+        if (!bcmolt_operation_control_bounds_check(&this->operation_control))
+        {
+            *failed_prop = BCMOLT_CHANNEL_CFG_ID_OPERATION_CONTROL;
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_CHANNEL_CFG_ID_TOL)) != 0)
+    {
+        if (this->tol > 511)
+        {
+            *failed_prop = BCMOLT_CHANNEL_CFG_ID_TOL;
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_CHANNEL_CFG_ID_SYSTEM_PROFILE)) != 0)
+    {
+        if (!bcmolt_system_profile_bounds_check(&this->system_profile))
+        {
+            *failed_prop = BCMOLT_CHANNEL_CFG_ID_SYSTEM_PROFILE;
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_CHANNEL_CFG_ID_CHANNEL_PROFILE)) != 0)
+    {
+        if (!bcmolt_arr_channel_profile_8_bounds_check(&this->channel_profile))
+        {
+            *failed_prop = BCMOLT_CHANNEL_CFG_ID_CHANNEL_PROFILE;
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_debug_key_set_default(bcmolt_debug_key *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_DEBUG_KEY_ID_RESERVED)) != 0)
+    {
+        this->reserved = 0;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_debug_key_pack(const bcmolt_debug_key *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_DEBUG_KEY_ID_RESERVED)) != 0)
+    {
+        if (!bcmolt_buf_write_u32(buf, this->reserved))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_debug_key_get_packed_length(const bcmolt_debug_key *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_DEBUG_KEY_ID_RESERVED)) != 0)
+    {
+        count += 4;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_debug_key_unpack(bcmolt_debug_key *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_DEBUG_KEY_ID_RESERVED)) != 0)
+    {
+        if (!bcmolt_buf_read_u32(buf, &this->reserved))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_debug_key_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_DEBUG_KEY_ID_RESERVED)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 4))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_debug_key_bounds_check(const bcmolt_debug_key *this, bcmolt_presence_mask fields_present, bcmolt_debug_key_id *failed_prop)
+{
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_debug_cfg_data_set_default(bcmolt_debug_cfg_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_DEBUG_CFG_ID_CONSOLE_REDIRECTION)) != 0)
+    {
+        this->console_redirection = BCMOLT_CONSOLE_REDIRECTION_NONE;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEBUG_CFG_ID_INDICATIONS_DROPPED)) != 0)
+    {
+        this->indications_dropped = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEBUG_CFG_ID_FILE_USED_PERCENT)) != 0)
+    {
+        this->file_used_percent = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEBUG_CFG_ID_API_CAPTURE_CFG)) != 0)
+    {
+        this->api_capture_cfg.location = BCMOLT_API_CAPTURE_LOCATION_DEVICE;
+        this->api_capture_cfg.buffer_size_bytes = 16384;
+        this->api_capture_cfg.buffer_mode = BCMOLT_API_CAPTURE_BUFFER_MODE_WRAP;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEBUG_CFG_ID_API_CAPTURE_STATS)) != 0)
+    {
+        this->api_capture_stats.buffer_used_bytes = 0;
+        this->api_capture_stats.buffer_wrap_count = 0;
+        this->api_capture_stats.events_recorded = 0;
+        this->api_capture_stats.events_dropped = 0;
+        this->api_capture_stats.readable_bytes = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEBUG_CFG_ID_API_CAPTURE_BUFFER_READ)) != 0)
+    {
+        this->api_capture_buffer_read.offset = 0;
+        this->api_capture_buffer_read.size = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEBUG_CFG_ID_API_CAPTURE_BUFFER)) != 0)
+    {
+        this->api_capture_buffer.len = 0;
+        this->api_capture_buffer.val = NULL;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_debug_cfg_data_pack(const bcmolt_debug_cfg_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_DEBUG_CFG_ID_CONSOLE_REDIRECTION)) != 0)
+    {
+        if (!bcmolt_console_redirection_pack(this->console_redirection, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEBUG_CFG_ID_INDICATIONS_DROPPED)) != 0)
+    {
+        if (!bcmolt_buf_write_u32(buf, this->indications_dropped))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEBUG_CFG_ID_FILE_USED_PERCENT)) != 0)
+    {
+        if (!bcmolt_buf_write_u8(buf, this->file_used_percent))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEBUG_CFG_ID_API_CAPTURE_CFG)) != 0)
+    {
+        if (!bcmolt_api_capture_config_pack(&this->api_capture_cfg, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEBUG_CFG_ID_API_CAPTURE_STATS)) != 0)
+    {
+        if (!bcmolt_api_capture_stats_pack(&this->api_capture_stats, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEBUG_CFG_ID_API_CAPTURE_BUFFER_READ)) != 0)
+    {
+        if (!bcmolt_api_capture_buffer_reader_pack(&this->api_capture_buffer_read, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEBUG_CFG_ID_API_CAPTURE_BUFFER)) != 0)
+    {
+        if (!bcmolt_u8_list_u32_pack(&this->api_capture_buffer, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_debug_cfg_data_get_packed_length(const bcmolt_debug_cfg_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_DEBUG_CFG_ID_CONSOLE_REDIRECTION)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEBUG_CFG_ID_INDICATIONS_DROPPED)) != 0)
+    {
+        count += 4;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEBUG_CFG_ID_FILE_USED_PERCENT)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEBUG_CFG_ID_API_CAPTURE_CFG)) != 0)
+    {
+        count += 6;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEBUG_CFG_ID_API_CAPTURE_STATS)) != 0)
+    {
+        count += 20;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEBUG_CFG_ID_API_CAPTURE_BUFFER_READ)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEBUG_CFG_ID_API_CAPTURE_BUFFER)) != 0)
+    {
+        count += bcmolt_u8_list_u32_get_packed_length(&this->api_capture_buffer);
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_debug_cfg_data_unpack(bcmolt_debug_cfg_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_DEBUG_CFG_ID_CONSOLE_REDIRECTION)) != 0)
+    {
+        if (!bcmolt_console_redirection_unpack(&this->console_redirection, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEBUG_CFG_ID_INDICATIONS_DROPPED)) != 0)
+    {
+        if (!bcmolt_buf_read_u32(buf, &this->indications_dropped))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEBUG_CFG_ID_FILE_USED_PERCENT)) != 0)
+    {
+        if (!bcmolt_buf_read_u8(buf, &this->file_used_percent))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEBUG_CFG_ID_API_CAPTURE_CFG)) != 0)
+    {
+        if (!bcmolt_api_capture_config_unpack(&this->api_capture_cfg, buf, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEBUG_CFG_ID_API_CAPTURE_STATS)) != 0)
+    {
+        if (!bcmolt_api_capture_stats_unpack(&this->api_capture_stats, buf, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEBUG_CFG_ID_API_CAPTURE_BUFFER_READ)) != 0)
+    {
+        if (!bcmolt_api_capture_buffer_reader_unpack(&this->api_capture_buffer_read, buf, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEBUG_CFG_ID_API_CAPTURE_BUFFER)) != 0)
+    {
+        if (!bcmolt_u8_list_u32_unpack(&this->api_capture_buffer, buf, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_debug_cfg_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_DEBUG_CFG_ID_CONSOLE_REDIRECTION)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEBUG_CFG_ID_INDICATIONS_DROPPED)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 4))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEBUG_CFG_ID_FILE_USED_PERCENT)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEBUG_CFG_ID_API_CAPTURE_CFG)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 6))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEBUG_CFG_ID_API_CAPTURE_STATS)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 20))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEBUG_CFG_ID_API_CAPTURE_BUFFER_READ)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEBUG_CFG_ID_API_CAPTURE_BUFFER)) != 0)
+    {
+        if (!bcmolt_u8_list_u32_scan(packed, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_debug_cfg_data_bounds_check(const bcmolt_debug_cfg_data *this, bcmolt_presence_mask fields_present, bcmolt_debug_cfg_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_DEBUG_CFG_ID_CONSOLE_REDIRECTION)) != 0)
+    {
+        switch (this->console_redirection)
+        {
+            case BCMOLT_CONSOLE_REDIRECTION_NONE:
+                break;
+            case BCMOLT_CONSOLE_REDIRECTION_REDIRECT:
+                break;
+            case BCMOLT_CONSOLE_REDIRECTION_CLONE:
+                break;
+            default:
+                *failed_prop = BCMOLT_DEBUG_CFG_ID_CONSOLE_REDIRECTION;
+                return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEBUG_CFG_ID_API_CAPTURE_CFG)) != 0)
+    {
+        if (!bcmolt_api_capture_config_bounds_check(&this->api_capture_cfg))
+        {
+            *failed_prop = BCMOLT_DEBUG_CFG_ID_API_CAPTURE_CFG;
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEBUG_CFG_ID_API_CAPTURE_STATS)) != 0)
+    {
+        if (!bcmolt_api_capture_stats_bounds_check(&this->api_capture_stats))
+        {
+            *failed_prop = BCMOLT_DEBUG_CFG_ID_API_CAPTURE_STATS;
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEBUG_CFG_ID_API_CAPTURE_BUFFER_READ)) != 0)
+    {
+        if (!bcmolt_api_capture_buffer_reader_bounds_check(&this->api_capture_buffer_read))
+        {
+            *failed_prop = BCMOLT_DEBUG_CFG_ID_API_CAPTURE_BUFFER_READ;
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEBUG_CFG_ID_API_CAPTURE_BUFFER)) != 0)
+    {
+        if (!bcmolt_u8_list_u32_bounds_check(&this->api_capture_buffer))
+        {
+            *failed_prop = BCMOLT_DEBUG_CFG_ID_API_CAPTURE_BUFFER;
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_debug_cli_output_data_set_default(bcmolt_debug_cli_output_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_DEBUG_CLI_OUTPUT_ID_DATA)) != 0)
+    {
+        this->data.len = 0;
+        this->data.val = NULL;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_debug_cli_output_data_pack(const bcmolt_debug_cli_output_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_DEBUG_CLI_OUTPUT_ID_DATA)) != 0)
+    {
+        if (!bcmolt_u8_list_u32_pack(&this->data, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_debug_cli_output_data_get_packed_length(const bcmolt_debug_cli_output_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_DEBUG_CLI_OUTPUT_ID_DATA)) != 0)
+    {
+        count += bcmolt_u8_list_u32_get_packed_length(&this->data);
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_debug_cli_output_data_unpack(bcmolt_debug_cli_output_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_DEBUG_CLI_OUTPUT_ID_DATA)) != 0)
+    {
+        if (!bcmolt_u8_list_u32_unpack(&this->data, buf, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_debug_cli_output_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_DEBUG_CLI_OUTPUT_ID_DATA)) != 0)
+    {
+        if (!bcmolt_u8_list_u32_scan(packed, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_debug_cli_output_data_bounds_check(const bcmolt_debug_cli_output_data *this, bcmolt_presence_mask fields_present, bcmolt_debug_cli_output_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_DEBUG_CLI_OUTPUT_ID_DATA)) != 0)
+    {
+        if (!bcmolt_u8_list_u32_bounds_check(&this->data))
+        {
+            *failed_prop = BCMOLT_DEBUG_CLI_OUTPUT_ID_DATA;
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_debug_auto_cfg_data_set_default(bcmolt_debug_auto_cfg_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_DEBUG_AUTO_CFG_ID_CLI_OUTPUT)) != 0)
+    {
+        this->cli_output = BCMOS_FALSE;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEBUG_AUTO_CFG_ID_FILE_ALMOST_FULL)) != 0)
+    {
+        this->file_almost_full = BCMOS_FALSE;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_debug_auto_cfg_data_pack(const bcmolt_debug_auto_cfg_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_DEBUG_AUTO_CFG_ID_CLI_OUTPUT)) != 0)
+    {
+        if (!bcmolt_buf_write_bool(buf, this->cli_output))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEBUG_AUTO_CFG_ID_FILE_ALMOST_FULL)) != 0)
+    {
+        if (!bcmolt_buf_write_bool(buf, this->file_almost_full))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_debug_auto_cfg_data_get_packed_length(const bcmolt_debug_auto_cfg_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_DEBUG_AUTO_CFG_ID_CLI_OUTPUT)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEBUG_AUTO_CFG_ID_FILE_ALMOST_FULL)) != 0)
+    {
+        count += 1;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_debug_auto_cfg_data_unpack(bcmolt_debug_auto_cfg_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_DEBUG_AUTO_CFG_ID_CLI_OUTPUT)) != 0)
+    {
+        if (!bcmolt_buf_read_bool(buf, &this->cli_output))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEBUG_AUTO_CFG_ID_FILE_ALMOST_FULL)) != 0)
+    {
+        if (!bcmolt_buf_read_bool(buf, &this->file_almost_full))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_debug_auto_cfg_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_DEBUG_AUTO_CFG_ID_CLI_OUTPUT)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEBUG_AUTO_CFG_ID_FILE_ALMOST_FULL)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_debug_auto_cfg_data_bounds_check(const bcmolt_debug_auto_cfg_data *this, bcmolt_presence_mask fields_present, bcmolt_debug_auto_cfg_id *failed_prop)
+{
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_debug_cli_input_data_set_default(bcmolt_debug_cli_input_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_DEBUG_CLI_INPUT_ID_DATA)) != 0)
+    {
+        this->data.len = 0;
+        this->data.val = NULL;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_debug_cli_input_data_pack(const bcmolt_debug_cli_input_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_DEBUG_CLI_INPUT_ID_DATA)) != 0)
+    {
+        if (!bcmolt_u8_list_u32_pack(&this->data, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_debug_cli_input_data_get_packed_length(const bcmolt_debug_cli_input_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_DEBUG_CLI_INPUT_ID_DATA)) != 0)
+    {
+        count += bcmolt_u8_list_u32_get_packed_length(&this->data);
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_debug_cli_input_data_unpack(bcmolt_debug_cli_input_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_DEBUG_CLI_INPUT_ID_DATA)) != 0)
+    {
+        if (!bcmolt_u8_list_u32_unpack(&this->data, buf, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_debug_cli_input_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_DEBUG_CLI_INPUT_ID_DATA)) != 0)
+    {
+        if (!bcmolt_u8_list_u32_scan(packed, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_debug_cli_input_data_bounds_check(const bcmolt_debug_cli_input_data *this, bcmolt_presence_mask fields_present, bcmolt_debug_cli_input_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_DEBUG_CLI_INPUT_ID_DATA)) != 0)
+    {
+        if (!bcmolt_u8_list_u32_bounds_check(&this->data))
+        {
+            *failed_prop = BCMOLT_DEBUG_CLI_INPUT_ID_DATA;
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_device_key_set_default(bcmolt_device_key *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_KEY_ID_RESERVED)) != 0)
+    {
+        this->reserved = 0;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_device_key_pack(const bcmolt_device_key *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_KEY_ID_RESERVED)) != 0)
+    {
+        if (!bcmolt_buf_write_u32(buf, this->reserved))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_device_key_get_packed_length(const bcmolt_device_key *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_KEY_ID_RESERVED)) != 0)
+    {
+        count += 4;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_device_key_unpack(bcmolt_device_key *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_KEY_ID_RESERVED)) != 0)
+    {
+        if (!bcmolt_buf_read_u32(buf, &this->reserved))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_device_key_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_KEY_ID_RESERVED)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 4))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_device_key_bounds_check(const bcmolt_device_key *this, bcmolt_presence_mask fields_present, bcmolt_device_key_id *failed_prop)
+{
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_device_cfg_data_set_default(bcmolt_device_cfg_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_CFG_ID_SYSTEM_MODE)) != 0)
+    {
+        this->system_mode = BCMOLT_SYSTEM_MODE_GPON__16_X;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_CFG_ID_KEEPALIVE_INTERVAL)) != 0)
+    {
+        this->keepalive_interval = 5;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_CFG_ID_KEEPALIVE_TOLERANCE)) != 0)
+    {
+        this->keepalive_tolerance = 3;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_CFG_ID_FIRMWARE_SW_VERSION)) != 0)
+    {
+        this->firmware_sw_version.major = 0;
+        this->firmware_sw_version.minor = 0;
+        this->firmware_sw_version.revision = 0;
+        this->firmware_sw_version.model = 0;
+        memset(this->firmware_sw_version.build_time, 0, 32);
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_CFG_ID_HOST_SW_VERSION)) != 0)
+    {
+        this->host_sw_version.major = 0;
+        this->host_sw_version.minor = 0;
+        this->host_sw_version.revision = 0;
+        this->host_sw_version.model = 0;
+        memset(this->host_sw_version.build_time, 0, 32);
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_CFG_ID_CHIP_REVISION)) != 0)
+    {
+        this->chip_revision = (bcmolt_device_chip_revision) 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_CFG_ID_STATE)) != 0)
+    {
+        this->state = BCMOLT_DEVICE_STATE_DISCONNECTED;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_CFG_ID_DEBUG)) != 0)
+    {
+        this->debug.host_dma_rx_queue_size = 128;
+        this->debug.host_dma_tx_queue_size = 128;
+        this->debug.avs_control = BCMOS_FALSE;
+        this->debug.use_prev_pon_serdes_firmware = BCMOS_FALSE;
+        this->debug.use_prev_nni_serdes_firmware = BCMOS_FALSE;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_CFG_ID_NNI_SPEED)) != 0)
+    {
+        this->nni_speed.first_half = BCMOLT_NNI_SPEED_GBPS_1;
+        this->nni_speed.second_half = BCMOLT_NNI_SPEED_GBPS_1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_CFG_ID_PROTECTION_SWITCHING_EXT_IRQ)) != 0)
+    {
+        this->protection_switching_ext_irq = BCMOLT_EXT_IRQ_UNCONFIGURED;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_CFG_ID_EPON_CLOCK_TRANSPORT_SAMPLE_DELAY)) != 0)
+    {
+        this->epon_clock_transport_sample_delay = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_CFG_ID_INDICATION_SHAPING)) != 0)
+    {
+        this->indication_shaping.enabled = BCMOS_FALSE;
+        this->indication_shaping.max_rate = 1000;
+        this->indication_shaping.max_burst = 100;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_CFG_ID_CHIP_TEMPERATURE)) != 0)
+    {
+        this->chip_temperature = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_CFG_ID_GPON_XGPON_TOD_ENABLE)) != 0)
+    {
+        this->gpon_xgpon_tod_enable = BCMOLT_CONTROL_STATE_DISABLE;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_CFG_ID_GPON_XGPON_TOD_GPIO_PIN)) != 0)
+    {
+        this->gpon_xgpon_tod_gpio_pin = BCMOLT_GPIO_PIN_UNCONFIGURED;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_CFG_ID_GPON_XGPON_TOD_CONNECTED_INTERNALLY)) != 0)
+    {
+        this->gpon_xgpon_tod_connected_internally = BCMOS_FALSE;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_CFG_ID_EPON_8021_AS_TOD_FORMAT)) != 0)
+    {
+        memset(this->epon_8021_as_tod_format.str, 0, 256);
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_CFG_ID_EPON_SHAPER_MODE)) != 0)
+    {
+        this->epon_shaper_mode = BCMOLT_SHAPER_MODE_LAYER_1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_CFG_ID_EMBEDDED_IMAGE_LIST)) != 0)
+    {
+        this->embedded_image_list.len = 0;
+        this->embedded_image_list.val = NULL;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_CFG_ID_CHIP_VOLTAGE)) != 0)
+    {
+        this->chip_voltage = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_CFG_ID_EPON_TOD_STRING)) != 0)
+    {
+        memset(this->epon_tod_string.str, 0, 256);
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_CFG_ID_XGPON_NUM_OF_ONUS)) != 0)
+    {
+        this->xgpon_num_of_onus = BCMOLT_XGPON_NUM_OF_ONUS_XGPON_SUPPORT_256_ONUS;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_CFG_ID_DEVICE_IP_ADDRESS)) != 0)
+    {
+        bcmos_ipv4_address_init(&this->device_ip_address);
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_CFG_ID_DEVICE_UDP_PORT)) != 0)
+    {
+        this->device_udp_port = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_CFG_ID_TOD_UART_BAUDRATE)) != 0)
+    {
+        this->tod_uart_baudrate = BCMOLT_UART_BAUDRATE_UART_RATE_9600;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_CFG_ID_GPON_XGPON_TOD_STRING_LENGTH)) != 0)
+    {
+        this->gpon_xgpon_tod_string_length = 16;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_device_cfg_data_pack(const bcmolt_device_cfg_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_CFG_ID_SYSTEM_MODE)) != 0)
+    {
+        if (!bcmolt_system_mode_pack(this->system_mode, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_CFG_ID_KEEPALIVE_INTERVAL)) != 0)
+    {
+        if (!bcmolt_buf_write_u32(buf, this->keepalive_interval))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_CFG_ID_KEEPALIVE_TOLERANCE)) != 0)
+    {
+        if (!bcmolt_buf_write_u32(buf, this->keepalive_tolerance))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_CFG_ID_FIRMWARE_SW_VERSION)) != 0)
+    {
+        if (!bcmolt_firmware_sw_version_pack(&this->firmware_sw_version, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_CFG_ID_HOST_SW_VERSION)) != 0)
+    {
+        if (!bcmolt_host_sw_version_pack(&this->host_sw_version, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_CFG_ID_CHIP_REVISION)) != 0)
+    {
+        if (!bcmolt_device_chip_revision_pack(this->chip_revision, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_CFG_ID_STATE)) != 0)
+    {
+        if (!bcmolt_device_state_pack(this->state, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_CFG_ID_DEBUG)) != 0)
+    {
+        if (!bcmolt_debug_device_cfg_pack(&this->debug, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_CFG_ID_NNI_SPEED)) != 0)
+    {
+        if (!bcmolt_device_nni_speed_pack(&this->nni_speed, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_CFG_ID_PROTECTION_SWITCHING_EXT_IRQ)) != 0)
+    {
+        if (!bcmolt_ext_irq_pack(this->protection_switching_ext_irq, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_CFG_ID_EPON_CLOCK_TRANSPORT_SAMPLE_DELAY)) != 0)
+    {
+        if (!bcmolt_buf_write_u32(buf, this->epon_clock_transport_sample_delay))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_CFG_ID_INDICATION_SHAPING)) != 0)
+    {
+        if (!bcmolt_indication_shaping_pack(&this->indication_shaping, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_CFG_ID_CHIP_TEMPERATURE)) != 0)
+    {
+        if (!bcmolt_buf_write_u32(buf, this->chip_temperature))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_CFG_ID_GPON_XGPON_TOD_ENABLE)) != 0)
+    {
+        if (!bcmolt_control_state_pack(this->gpon_xgpon_tod_enable, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_CFG_ID_GPON_XGPON_TOD_GPIO_PIN)) != 0)
+    {
+        if (!bcmolt_gpio_pin_pack(this->gpon_xgpon_tod_gpio_pin, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_CFG_ID_GPON_XGPON_TOD_CONNECTED_INTERNALLY)) != 0)
+    {
+        if (!bcmolt_buf_write_bool(buf, this->gpon_xgpon_tod_connected_internally))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_CFG_ID_EPON_8021_AS_TOD_FORMAT)) != 0)
+    {
+        if (!bcmolt_str_256_pack(&this->epon_8021_as_tod_format, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_CFG_ID_EPON_SHAPER_MODE)) != 0)
+    {
+        if (!bcmolt_shaper_mode_pack(this->epon_shaper_mode, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_CFG_ID_EMBEDDED_IMAGE_LIST)) != 0)
+    {
+        if (!bcmolt_embedded_image_entry_list_u8_pack(&this->embedded_image_list, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_CFG_ID_CHIP_VOLTAGE)) != 0)
+    {
+        if (!bcmolt_buf_write_u32(buf, this->chip_voltage))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_CFG_ID_EPON_TOD_STRING)) != 0)
+    {
+        if (!bcmolt_str_256_pack(&this->epon_tod_string, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_CFG_ID_XGPON_NUM_OF_ONUS)) != 0)
+    {
+        if (!bcmolt_xgpon_num_of_onus_pack(this->xgpon_num_of_onus, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_CFG_ID_DEVICE_IP_ADDRESS)) != 0)
+    {
+        if (!bcmolt_buf_write_ipv4_address(buf, this->device_ip_address))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_CFG_ID_DEVICE_UDP_PORT)) != 0)
+    {
+        if (!bcmolt_buf_write_u16(buf, this->device_udp_port))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_CFG_ID_TOD_UART_BAUDRATE)) != 0)
+    {
+        if (!bcmolt_uart_baudrate_pack(this->tod_uart_baudrate, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_CFG_ID_GPON_XGPON_TOD_STRING_LENGTH)) != 0)
+    {
+        if (!bcmolt_buf_write_u8(buf, this->gpon_xgpon_tod_string_length))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_device_cfg_data_get_packed_length(const bcmolt_device_cfg_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_CFG_ID_SYSTEM_MODE)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_CFG_ID_KEEPALIVE_INTERVAL)) != 0)
+    {
+        count += 4;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_CFG_ID_KEEPALIVE_TOLERANCE)) != 0)
+    {
+        count += 4;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_CFG_ID_FIRMWARE_SW_VERSION)) != 0)
+    {
+        count += 39;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_CFG_ID_HOST_SW_VERSION)) != 0)
+    {
+        count += 39;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_CFG_ID_CHIP_REVISION)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_CFG_ID_STATE)) != 0)
+    {
+        count += 2;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_CFG_ID_DEBUG)) != 0)
+    {
+        count += 7;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_CFG_ID_NNI_SPEED)) != 0)
+    {
+        count += 2;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_CFG_ID_PROTECTION_SWITCHING_EXT_IRQ)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_CFG_ID_EPON_CLOCK_TRANSPORT_SAMPLE_DELAY)) != 0)
+    {
+        count += 4;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_CFG_ID_INDICATION_SHAPING)) != 0)
+    {
+        count += 9;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_CFG_ID_CHIP_TEMPERATURE)) != 0)
+    {
+        count += 4;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_CFG_ID_GPON_XGPON_TOD_ENABLE)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_CFG_ID_GPON_XGPON_TOD_GPIO_PIN)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_CFG_ID_GPON_XGPON_TOD_CONNECTED_INTERNALLY)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_CFG_ID_EPON_8021_AS_TOD_FORMAT)) != 0)
+    {
+        count += 256;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_CFG_ID_EPON_SHAPER_MODE)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_CFG_ID_EMBEDDED_IMAGE_LIST)) != 0)
+    {
+        count += bcmolt_embedded_image_entry_list_u8_get_packed_length(&this->embedded_image_list);
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_CFG_ID_CHIP_VOLTAGE)) != 0)
+    {
+        count += 4;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_CFG_ID_EPON_TOD_STRING)) != 0)
+    {
+        count += 256;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_CFG_ID_XGPON_NUM_OF_ONUS)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_CFG_ID_DEVICE_IP_ADDRESS)) != 0)
+    {
+        count += 4;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_CFG_ID_DEVICE_UDP_PORT)) != 0)
+    {
+        count += 2;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_CFG_ID_TOD_UART_BAUDRATE)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_CFG_ID_GPON_XGPON_TOD_STRING_LENGTH)) != 0)
+    {
+        count += 1;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_device_cfg_data_unpack(bcmolt_device_cfg_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_CFG_ID_SYSTEM_MODE)) != 0)
+    {
+        if (!bcmolt_system_mode_unpack(&this->system_mode, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_CFG_ID_KEEPALIVE_INTERVAL)) != 0)
+    {
+        if (!bcmolt_buf_read_u32(buf, &this->keepalive_interval))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_CFG_ID_KEEPALIVE_TOLERANCE)) != 0)
+    {
+        if (!bcmolt_buf_read_u32(buf, &this->keepalive_tolerance))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_CFG_ID_FIRMWARE_SW_VERSION)) != 0)
+    {
+        if (!bcmolt_firmware_sw_version_unpack(&this->firmware_sw_version, buf, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_CFG_ID_HOST_SW_VERSION)) != 0)
+    {
+        if (!bcmolt_host_sw_version_unpack(&this->host_sw_version, buf, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_CFG_ID_CHIP_REVISION)) != 0)
+    {
+        if (!bcmolt_device_chip_revision_unpack(&this->chip_revision, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_CFG_ID_STATE)) != 0)
+    {
+        if (!bcmolt_device_state_unpack(&this->state, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_CFG_ID_DEBUG)) != 0)
+    {
+        if (!bcmolt_debug_device_cfg_unpack(&this->debug, buf, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_CFG_ID_NNI_SPEED)) != 0)
+    {
+        if (!bcmolt_device_nni_speed_unpack(&this->nni_speed, buf, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_CFG_ID_PROTECTION_SWITCHING_EXT_IRQ)) != 0)
+    {
+        if (!bcmolt_ext_irq_unpack(&this->protection_switching_ext_irq, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_CFG_ID_EPON_CLOCK_TRANSPORT_SAMPLE_DELAY)) != 0)
+    {
+        if (!bcmolt_buf_read_u32(buf, &this->epon_clock_transport_sample_delay))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_CFG_ID_INDICATION_SHAPING)) != 0)
+    {
+        if (!bcmolt_indication_shaping_unpack(&this->indication_shaping, buf, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_CFG_ID_CHIP_TEMPERATURE)) != 0)
+    {
+        if (!bcmolt_buf_read_u32(buf, &this->chip_temperature))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_CFG_ID_GPON_XGPON_TOD_ENABLE)) != 0)
+    {
+        if (!bcmolt_control_state_unpack(&this->gpon_xgpon_tod_enable, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_CFG_ID_GPON_XGPON_TOD_GPIO_PIN)) != 0)
+    {
+        if (!bcmolt_gpio_pin_unpack(&this->gpon_xgpon_tod_gpio_pin, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_CFG_ID_GPON_XGPON_TOD_CONNECTED_INTERNALLY)) != 0)
+    {
+        if (!bcmolt_buf_read_bool(buf, &this->gpon_xgpon_tod_connected_internally))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_CFG_ID_EPON_8021_AS_TOD_FORMAT)) != 0)
+    {
+        if (!bcmolt_str_256_unpack(&this->epon_8021_as_tod_format, buf, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_CFG_ID_EPON_SHAPER_MODE)) != 0)
+    {
+        if (!bcmolt_shaper_mode_unpack(&this->epon_shaper_mode, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_CFG_ID_EMBEDDED_IMAGE_LIST)) != 0)
+    {
+        if (!bcmolt_embedded_image_entry_list_u8_unpack(&this->embedded_image_list, buf, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_CFG_ID_CHIP_VOLTAGE)) != 0)
+    {
+        if (!bcmolt_buf_read_u32(buf, &this->chip_voltage))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_CFG_ID_EPON_TOD_STRING)) != 0)
+    {
+        if (!bcmolt_str_256_unpack(&this->epon_tod_string, buf, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_CFG_ID_XGPON_NUM_OF_ONUS)) != 0)
+    {
+        if (!bcmolt_xgpon_num_of_onus_unpack(&this->xgpon_num_of_onus, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_CFG_ID_DEVICE_IP_ADDRESS)) != 0)
+    {
+        if (!bcmolt_buf_read_ipv4_address(buf, &this->device_ip_address))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_CFG_ID_DEVICE_UDP_PORT)) != 0)
+    {
+        if (!bcmolt_buf_read_u16(buf, &this->device_udp_port))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_CFG_ID_TOD_UART_BAUDRATE)) != 0)
+    {
+        if (!bcmolt_uart_baudrate_unpack(&this->tod_uart_baudrate, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_CFG_ID_GPON_XGPON_TOD_STRING_LENGTH)) != 0)
+    {
+        if (!bcmolt_buf_read_u8(buf, &this->gpon_xgpon_tod_string_length))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_device_cfg_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_CFG_ID_SYSTEM_MODE)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_CFG_ID_KEEPALIVE_INTERVAL)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 4))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_CFG_ID_KEEPALIVE_TOLERANCE)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 4))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_CFG_ID_FIRMWARE_SW_VERSION)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 39))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_CFG_ID_HOST_SW_VERSION)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 39))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_CFG_ID_CHIP_REVISION)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_CFG_ID_STATE)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 2))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_CFG_ID_DEBUG)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 7))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_CFG_ID_NNI_SPEED)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 2))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_CFG_ID_PROTECTION_SWITCHING_EXT_IRQ)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_CFG_ID_EPON_CLOCK_TRANSPORT_SAMPLE_DELAY)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 4))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_CFG_ID_INDICATION_SHAPING)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 9))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_CFG_ID_CHIP_TEMPERATURE)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 4))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_CFG_ID_GPON_XGPON_TOD_ENABLE)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_CFG_ID_GPON_XGPON_TOD_GPIO_PIN)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_CFG_ID_GPON_XGPON_TOD_CONNECTED_INTERNALLY)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_CFG_ID_EPON_8021_AS_TOD_FORMAT)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 256))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_CFG_ID_EPON_SHAPER_MODE)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_CFG_ID_EMBEDDED_IMAGE_LIST)) != 0)
+    {
+        if (!bcmolt_embedded_image_entry_list_u8_scan(packed, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_CFG_ID_CHIP_VOLTAGE)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 4))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_CFG_ID_EPON_TOD_STRING)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 256))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_CFG_ID_XGPON_NUM_OF_ONUS)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_CFG_ID_DEVICE_IP_ADDRESS)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 4))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_CFG_ID_DEVICE_UDP_PORT)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 2))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_CFG_ID_TOD_UART_BAUDRATE)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_CFG_ID_GPON_XGPON_TOD_STRING_LENGTH)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_device_cfg_data_bounds_check(const bcmolt_device_cfg_data *this, bcmolt_presence_mask fields_present, bcmolt_device_cfg_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_CFG_ID_SYSTEM_MODE)) != 0)
+    {
+        switch (this->system_mode)
+        {
+            case BCMOLT_SYSTEM_MODE_GPON__16_X:
+                break;
+            case BCMOLT_SYSTEM_MODE_GPON__8_X:
+                break;
+            case BCMOLT_SYSTEM_MODE_GPON__4_X:
+                break;
+            case BCMOLT_SYSTEM_MODE_EPON__16_X:
+                break;
+            case BCMOLT_SYSTEM_MODE_XGPON_1__8_X:
+                break;
+            case BCMOLT_SYSTEM_MODE_EPON__8_X_COEXISTENCE_TDMA:
+                break;
+            case BCMOLT_SYSTEM_MODE_AE_8_X:
+                break;
+            case BCMOLT_SYSTEM_MODE_EPON__8_X_10_G:
+                break;
+            case BCMOLT_SYSTEM_MODE_GPON_8_XGPON_4_X_COEXISTENCE:
+                break;
+            case BCMOLT_SYSTEM_MODE_EPON__8_X:
+                break;
+            case BCMOLT_SYSTEM_MODE_EPON__4_X:
+                break;
+            case BCMOLT_SYSTEM_MODE_EPON__4_X_COEXISTENCE_TDMA:
+                break;
+            case BCMOLT_SYSTEM_MODE_EPON__4_X_10_G:
+                break;
+            case BCMOLT_SYSTEM_MODE_XGS__2_X_10_G:
+                break;
+            case BCMOLT_SYSTEM_MODE_NGPON2__2_X_10_G:
+                break;
+            case BCMOLT_SYSTEM_MODE_NGPON2__8_X_2_P_5_G:
+                break;
+            case BCMOLT_SYSTEM_MODE_XGPON_1__4_X:
+                break;
+            case BCMOLT_SYSTEM_MODE_EPON__2_X_10_G:
+                break;
+            default:
+                *failed_prop = BCMOLT_DEVICE_CFG_ID_SYSTEM_MODE;
+                return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_CFG_ID_KEEPALIVE_INTERVAL)) != 0)
+    {
+        if (this->keepalive_interval > 15)
+        {
+            *failed_prop = BCMOLT_DEVICE_CFG_ID_KEEPALIVE_INTERVAL;
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_CFG_ID_KEEPALIVE_TOLERANCE)) != 0)
+    {
+        if (this->keepalive_tolerance > 5)
+        {
+            *failed_prop = BCMOLT_DEVICE_CFG_ID_KEEPALIVE_TOLERANCE;
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_CFG_ID_FIRMWARE_SW_VERSION)) != 0)
+    {
+        if (!bcmolt_firmware_sw_version_bounds_check(&this->firmware_sw_version))
+        {
+            *failed_prop = BCMOLT_DEVICE_CFG_ID_FIRMWARE_SW_VERSION;
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_CFG_ID_HOST_SW_VERSION)) != 0)
+    {
+        if (!bcmolt_host_sw_version_bounds_check(&this->host_sw_version))
+        {
+            *failed_prop = BCMOLT_DEVICE_CFG_ID_HOST_SW_VERSION;
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_CFG_ID_CHIP_REVISION)) != 0)
+    {
+        switch (this->chip_revision)
+        {
+            case BCMOLT_DEVICE_CHIP_REVISION_A0:
+                break;
+            case BCMOLT_DEVICE_CHIP_REVISION_B0:
+                break;
+            default:
+                *failed_prop = BCMOLT_DEVICE_CFG_ID_CHIP_REVISION;
+                return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_CFG_ID_STATE)) != 0)
+    {
+        switch (this->state)
+        {
+            case BCMOLT_DEVICE_STATE_DISCONNECTED:
+                break;
+            case BCMOLT_DEVICE_STATE_CONNECTING:
+                break;
+            case BCMOLT_DEVICE_STATE_READY:
+                break;
+            case BCMOLT_DEVICE_STATE_WAITING_FOR_DEVICE:
+                break;
+            case BCMOLT_DEVICE_STATE_TESTING_DDR:
+                break;
+            default:
+                *failed_prop = BCMOLT_DEVICE_CFG_ID_STATE;
+                return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_CFG_ID_DEBUG)) != 0)
+    {
+        if (!bcmolt_debug_device_cfg_bounds_check(&this->debug))
+        {
+            *failed_prop = BCMOLT_DEVICE_CFG_ID_DEBUG;
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_CFG_ID_NNI_SPEED)) != 0)
+    {
+        if (!bcmolt_device_nni_speed_bounds_check(&this->nni_speed))
+        {
+            *failed_prop = BCMOLT_DEVICE_CFG_ID_NNI_SPEED;
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_CFG_ID_PROTECTION_SWITCHING_EXT_IRQ)) != 0)
+    {
+        switch (this->protection_switching_ext_irq)
+        {
+            case BCMOLT_EXT_IRQ_EXT_IRQ0:
+                break;
+            case BCMOLT_EXT_IRQ_EXT_IRQ1:
+                break;
+            case BCMOLT_EXT_IRQ_EXT_IRQ2:
+                break;
+            case BCMOLT_EXT_IRQ_EXT_IRQ3:
+                break;
+            case BCMOLT_EXT_IRQ_EXT_IRQ4:
+                break;
+            case BCMOLT_EXT_IRQ_EXT_IRQ5:
+                break;
+            case BCMOLT_EXT_IRQ_UNCONFIGURED:
+                break;
+            default:
+                *failed_prop = BCMOLT_DEVICE_CFG_ID_PROTECTION_SWITCHING_EXT_IRQ;
+                return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_CFG_ID_INDICATION_SHAPING)) != 0)
+    {
+        if (!bcmolt_indication_shaping_bounds_check(&this->indication_shaping))
+        {
+            *failed_prop = BCMOLT_DEVICE_CFG_ID_INDICATION_SHAPING;
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_CFG_ID_GPON_XGPON_TOD_ENABLE)) != 0)
+    {
+        switch (this->gpon_xgpon_tod_enable)
+        {
+            case BCMOLT_CONTROL_STATE_DISABLE:
+                break;
+            case BCMOLT_CONTROL_STATE_ENABLE:
+                break;
+            default:
+                *failed_prop = BCMOLT_DEVICE_CFG_ID_GPON_XGPON_TOD_ENABLE;
+                return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_CFG_ID_GPON_XGPON_TOD_GPIO_PIN)) != 0)
+    {
+        switch (this->gpon_xgpon_tod_gpio_pin)
+        {
+            case BCMOLT_GPIO_PIN_PIN0:
+                break;
+            case BCMOLT_GPIO_PIN_PIN1:
+                break;
+            case BCMOLT_GPIO_PIN_PIN2:
+                break;
+            case BCMOLT_GPIO_PIN_PIN3:
+                break;
+            case BCMOLT_GPIO_PIN_PIN4:
+                break;
+            case BCMOLT_GPIO_PIN_PIN5:
+                break;
+            case BCMOLT_GPIO_PIN_PIN6:
+                break;
+            case BCMOLT_GPIO_PIN_PIN7:
+                break;
+            case BCMOLT_GPIO_PIN_PIN8:
+                break;
+            case BCMOLT_GPIO_PIN_PIN9:
+                break;
+            case BCMOLT_GPIO_PIN_PIN10:
+                break;
+            case BCMOLT_GPIO_PIN_PIN11:
+                break;
+            case BCMOLT_GPIO_PIN_PIN12:
+                break;
+            case BCMOLT_GPIO_PIN_PIN13:
+                break;
+            case BCMOLT_GPIO_PIN_PIN14:
+                break;
+            case BCMOLT_GPIO_PIN_PIN15:
+                break;
+            case BCMOLT_GPIO_PIN_PIN16:
+                break;
+            case BCMOLT_GPIO_PIN_PIN17:
+                break;
+            case BCMOLT_GPIO_PIN_PIN18:
+                break;
+            case BCMOLT_GPIO_PIN_PIN19:
+                break;
+            case BCMOLT_GPIO_PIN_PIN20:
+                break;
+            case BCMOLT_GPIO_PIN_PIN21:
+                break;
+            case BCMOLT_GPIO_PIN_PIN22:
+                break;
+            case BCMOLT_GPIO_PIN_PIN23:
+                break;
+            case BCMOLT_GPIO_PIN_PIN24:
+                break;
+            case BCMOLT_GPIO_PIN_PIN25:
+                break;
+            case BCMOLT_GPIO_PIN_PIN26:
+                break;
+            case BCMOLT_GPIO_PIN_PIN27:
+                break;
+            case BCMOLT_GPIO_PIN_PIN28:
+                break;
+            case BCMOLT_GPIO_PIN_PIN29:
+                break;
+            case BCMOLT_GPIO_PIN_PIN30:
+                break;
+            case BCMOLT_GPIO_PIN_PIN31:
+                break;
+            case BCMOLT_GPIO_PIN_PIN32:
+                break;
+            case BCMOLT_GPIO_PIN_PIN33:
+                break;
+            case BCMOLT_GPIO_PIN_PIN34:
+                break;
+            case BCMOLT_GPIO_PIN_PIN35:
+                break;
+            case BCMOLT_GPIO_PIN_PIN36:
+                break;
+            case BCMOLT_GPIO_PIN_PIN37:
+                break;
+            case BCMOLT_GPIO_PIN_PIN38:
+                break;
+            case BCMOLT_GPIO_PIN_PIN39:
+                break;
+            case BCMOLT_GPIO_PIN_PIN40:
+                break;
+            case BCMOLT_GPIO_PIN_PIN41:
+                break;
+            case BCMOLT_GPIO_PIN_PIN42:
+                break;
+            case BCMOLT_GPIO_PIN_PIN43:
+                break;
+            case BCMOLT_GPIO_PIN_PIN44:
+                break;
+            case BCMOLT_GPIO_PIN_PIN45:
+                break;
+            case BCMOLT_GPIO_PIN_PIN46:
+                break;
+            case BCMOLT_GPIO_PIN_PIN47:
+                break;
+            case BCMOLT_GPIO_PIN_PIN48:
+                break;
+            case BCMOLT_GPIO_PIN_PIN49:
+                break;
+            case BCMOLT_GPIO_PIN_PIN50:
+                break;
+            case BCMOLT_GPIO_PIN_PIN51:
+                break;
+            case BCMOLT_GPIO_PIN_PIN52:
+                break;
+            case BCMOLT_GPIO_PIN_PIN53:
+                break;
+            case BCMOLT_GPIO_PIN_PIN54:
+                break;
+            case BCMOLT_GPIO_PIN_PIN55:
+                break;
+            case BCMOLT_GPIO_PIN_PIN56:
+                break;
+            case BCMOLT_GPIO_PIN_PIN57:
+                break;
+            case BCMOLT_GPIO_PIN_PIN58:
+                break;
+            case BCMOLT_GPIO_PIN_PIN59:
+                break;
+            case BCMOLT_GPIO_PIN_PIN60:
+                break;
+            case BCMOLT_GPIO_PIN_PIN61:
+                break;
+            case BCMOLT_GPIO_PIN_PIN62:
+                break;
+            case BCMOLT_GPIO_PIN_PIN63:
+                break;
+            case BCMOLT_GPIO_PIN_PIN64:
+                break;
+            case BCMOLT_GPIO_PIN_PIN65:
+                break;
+            case BCMOLT_GPIO_PIN_PIN66:
+                break;
+            case BCMOLT_GPIO_PIN_PIN67:
+                break;
+            case BCMOLT_GPIO_PIN_PIN68:
+                break;
+            case BCMOLT_GPIO_PIN_PIN69:
+                break;
+            case BCMOLT_GPIO_PIN_PIN70:
+                break;
+            case BCMOLT_GPIO_PIN_PIN71:
+                break;
+            case BCMOLT_GPIO_PIN_PIN72:
+                break;
+            case BCMOLT_GPIO_PIN_PIN73:
+                break;
+            case BCMOLT_GPIO_PIN_PIN74:
+                break;
+            case BCMOLT_GPIO_PIN_PIN75:
+                break;
+            case BCMOLT_GPIO_PIN_PIN76:
+                break;
+            case BCMOLT_GPIO_PIN_PIN77:
+                break;
+            case BCMOLT_GPIO_PIN_PIN78:
+                break;
+            case BCMOLT_GPIO_PIN_PIN79:
+                break;
+            case BCMOLT_GPIO_PIN_PIN80:
+                break;
+            case BCMOLT_GPIO_PIN_PIN81:
+                break;
+            case BCMOLT_GPIO_PIN_PIN82:
+                break;
+            case BCMOLT_GPIO_PIN_PIN83:
+                break;
+            case BCMOLT_GPIO_PIN_PIN84:
+                break;
+            case BCMOLT_GPIO_PIN_PIN85:
+                break;
+            case BCMOLT_GPIO_PIN_PIN86:
+                break;
+            case BCMOLT_GPIO_PIN_PIN87:
+                break;
+            case BCMOLT_GPIO_PIN_PIN88:
+                break;
+            case BCMOLT_GPIO_PIN_PIN89:
+                break;
+            case BCMOLT_GPIO_PIN_PIN90:
+                break;
+            case BCMOLT_GPIO_PIN_PIN91:
+                break;
+            case BCMOLT_GPIO_PIN_PIN92:
+                break;
+            case BCMOLT_GPIO_PIN_PIN93:
+                break;
+            case BCMOLT_GPIO_PIN_PIN94:
+                break;
+            case BCMOLT_GPIO_PIN_PIN95:
+                break;
+            case BCMOLT_GPIO_PIN_PIN96:
+                break;
+            case BCMOLT_GPIO_PIN_PIN97:
+                break;
+            case BCMOLT_GPIO_PIN_PIN98:
+                break;
+            case BCMOLT_GPIO_PIN_PIN99:
+                break;
+            case BCMOLT_GPIO_PIN_PIN100:
+                break;
+            case BCMOLT_GPIO_PIN_PIN101:
+                break;
+            case BCMOLT_GPIO_PIN_PIN102:
+                break;
+            case BCMOLT_GPIO_PIN_PIN103:
+                break;
+            case BCMOLT_GPIO_PIN_PIN104:
+                break;
+            case BCMOLT_GPIO_PIN_PIN105:
+                break;
+            case BCMOLT_GPIO_PIN_PIN106:
+                break;
+            case BCMOLT_GPIO_PIN_UNCONFIGURED:
+                break;
+            default:
+                *failed_prop = BCMOLT_DEVICE_CFG_ID_GPON_XGPON_TOD_GPIO_PIN;
+                return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_CFG_ID_EPON_8021_AS_TOD_FORMAT)) != 0)
+    {
+        if (!bcmolt_str_256_bounds_check(&this->epon_8021_as_tod_format))
+        {
+            *failed_prop = BCMOLT_DEVICE_CFG_ID_EPON_8021_AS_TOD_FORMAT;
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_CFG_ID_EPON_SHAPER_MODE)) != 0)
+    {
+        switch (this->epon_shaper_mode)
+        {
+            case BCMOLT_SHAPER_MODE_LAYER_1:
+                break;
+            case BCMOLT_SHAPER_MODE_LAYER_2:
+                break;
+            default:
+                *failed_prop = BCMOLT_DEVICE_CFG_ID_EPON_SHAPER_MODE;
+                return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_CFG_ID_EMBEDDED_IMAGE_LIST)) != 0)
+    {
+        if (!bcmolt_embedded_image_entry_list_u8_bounds_check(&this->embedded_image_list))
+        {
+            *failed_prop = BCMOLT_DEVICE_CFG_ID_EMBEDDED_IMAGE_LIST;
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_CFG_ID_EPON_TOD_STRING)) != 0)
+    {
+        if (!bcmolt_str_256_bounds_check(&this->epon_tod_string))
+        {
+            *failed_prop = BCMOLT_DEVICE_CFG_ID_EPON_TOD_STRING;
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_CFG_ID_XGPON_NUM_OF_ONUS)) != 0)
+    {
+        switch (this->xgpon_num_of_onus)
+        {
+            case BCMOLT_XGPON_NUM_OF_ONUS_XGPON_SUPPORT_256_ONUS:
+                break;
+            case BCMOLT_XGPON_NUM_OF_ONUS_XGPON_SUPPORT_510_ONUS:
+                break;
+            default:
+                *failed_prop = BCMOLT_DEVICE_CFG_ID_XGPON_NUM_OF_ONUS;
+                return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_CFG_ID_TOD_UART_BAUDRATE)) != 0)
+    {
+        switch (this->tod_uart_baudrate)
+        {
+            case BCMOLT_UART_BAUDRATE_UART_RATE_4800:
+                break;
+            case BCMOLT_UART_BAUDRATE_UART_RATE_9600:
+                break;
+            case BCMOLT_UART_BAUDRATE_UART_RATE_14400:
+                break;
+            case BCMOLT_UART_BAUDRATE_UART_RATE_19200:
+                break;
+            case BCMOLT_UART_BAUDRATE_UART_RATE_38400:
+                break;
+            case BCMOLT_UART_BAUDRATE_UART_RATE_57600:
+                break;
+            case BCMOLT_UART_BAUDRATE_UART_RATE_115200:
+                break;
+            case BCMOLT_UART_BAUDRATE_UART_RATE_230400:
+                break;
+            case BCMOLT_UART_BAUDRATE_UART_RATE_380400:
+                break;
+            case BCMOLT_UART_BAUDRATE_UART_RATE_460800:
+                break;
+            case BCMOLT_UART_BAUDRATE_UART_RATE_921600:
+                break;
+            default:
+                *failed_prop = BCMOLT_DEVICE_CFG_ID_TOD_UART_BAUDRATE;
+                return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_CFG_ID_GPON_XGPON_TOD_STRING_LENGTH)) != 0)
+    {
+        if (this->gpon_xgpon_tod_string_length > 64)
+        {
+            *failed_prop = BCMOLT_DEVICE_CFG_ID_GPON_XGPON_TOD_STRING_LENGTH;
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_device_connection_complete_data_set_default(bcmolt_device_connection_complete_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_CONNECTION_COMPLETE_ID_STANDALONE)) != 0)
+    {
+        this->standalone = BCMOS_FALSE;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_device_connection_complete_data_pack(const bcmolt_device_connection_complete_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_CONNECTION_COMPLETE_ID_STANDALONE)) != 0)
+    {
+        if (!bcmolt_buf_write_bool(buf, this->standalone))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_device_connection_complete_data_get_packed_length(const bcmolt_device_connection_complete_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_CONNECTION_COMPLETE_ID_STANDALONE)) != 0)
+    {
+        count += 1;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_device_connection_complete_data_unpack(bcmolt_device_connection_complete_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_CONNECTION_COMPLETE_ID_STANDALONE)) != 0)
+    {
+        if (!bcmolt_buf_read_bool(buf, &this->standalone))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_device_connection_complete_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_CONNECTION_COMPLETE_ID_STANDALONE)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_device_connection_complete_data_bounds_check(const bcmolt_device_connection_complete_data *this, bcmolt_presence_mask fields_present, bcmolt_device_connection_complete_id *failed_prop)
+{
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_device_connection_failure_data_set_default(bcmolt_device_connection_failure_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_CONNECTION_FAILURE_ID_REASON)) != 0)
+    {
+        this->reason = BCMOLT_HOST_CONNECTION_FAIL_REASON_TIMEOUT;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_device_connection_failure_data_pack(const bcmolt_device_connection_failure_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_CONNECTION_FAILURE_ID_REASON)) != 0)
+    {
+        if (!bcmolt_host_connection_fail_reason_pack(this->reason, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_device_connection_failure_data_get_packed_length(const bcmolt_device_connection_failure_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_CONNECTION_FAILURE_ID_REASON)) != 0)
+    {
+        count += 1;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_device_connection_failure_data_unpack(bcmolt_device_connection_failure_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_CONNECTION_FAILURE_ID_REASON)) != 0)
+    {
+        if (!bcmolt_host_connection_fail_reason_unpack(&this->reason, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_device_connection_failure_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_CONNECTION_FAILURE_ID_REASON)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_device_connection_failure_data_bounds_check(const bcmolt_device_connection_failure_data *this, bcmolt_presence_mask fields_present, bcmolt_device_connection_failure_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_CONNECTION_FAILURE_ID_REASON)) != 0)
+    {
+        switch (this->reason)
+        {
+            case BCMOLT_HOST_CONNECTION_FAIL_REASON_TIMEOUT:
+                break;
+            case BCMOLT_HOST_CONNECTION_FAIL_REASON_KEEPALIVE:
+                break;
+            case BCMOLT_HOST_CONNECTION_FAIL_REASON_USER_CALLBACK_ERROR:
+                break;
+            case BCMOLT_HOST_CONNECTION_FAIL_REASON_SOFTWARE_VERSION_MISMATCH:
+                break;
+            case BCMOLT_HOST_CONNECTION_FAIL_REASON_SYSTEM_MODE_MISMATCH:
+                break;
+            case BCMOLT_HOST_CONNECTION_FAIL_REASON_NNI_SPEED_MISMATCH:
+                break;
+            case BCMOLT_HOST_CONNECTION_FAIL_REASON_RECONNECT_TIMEOUT:
+                break;
+            case BCMOLT_HOST_CONNECTION_FAIL_REASON_INTERNAL_ERROR:
+                break;
+            case BCMOLT_HOST_CONNECTION_FAIL_REASON_SYSTEM_MODE_NOT_SUPPORTED:
+                break;
+            case BCMOLT_HOST_CONNECTION_FAIL_REASON_PARAMETER:
+                break;
+            default:
+                *failed_prop = BCMOLT_DEVICE_CONNECTION_FAILURE_ID_REASON;
+                return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_device_ddr_test_complete_data_set_default(bcmolt_device_ddr_test_complete_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_DDR_TEST_COMPLETE_ID_DDR_TEST)) != 0)
+    {
+        this->ddr_test.status = BCMOLT_DDR_TEST_STATUS_COMPLETED;
+        this->ddr_test.u.completed.cpu_result = BCMOLT_DDR_TEST_RESULT_SUCCESS;
+        this->ddr_test.u.completed.ras_0_result = BCMOLT_DDR_TEST_RESULT_SUCCESS;
+        this->ddr_test.u.completed.ras_1_result = BCMOLT_DDR_TEST_RESULT_SUCCESS;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_device_ddr_test_complete_data_pack(const bcmolt_device_ddr_test_complete_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_DDR_TEST_COMPLETE_ID_DDR_TEST)) != 0)
+    {
+        if (!bcmolt_ddr_test_completed_pack(&this->ddr_test, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_device_ddr_test_complete_data_get_packed_length(const bcmolt_device_ddr_test_complete_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_DDR_TEST_COMPLETE_ID_DDR_TEST)) != 0)
+    {
+        count += bcmolt_ddr_test_completed_get_packed_length(&this->ddr_test);
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_device_ddr_test_complete_data_unpack(bcmolt_device_ddr_test_complete_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_DDR_TEST_COMPLETE_ID_DDR_TEST)) != 0)
+    {
+        if (!bcmolt_ddr_test_completed_unpack(&this->ddr_test, buf, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_device_ddr_test_complete_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_DDR_TEST_COMPLETE_ID_DDR_TEST)) != 0)
+    {
+        if (!bcmolt_ddr_test_completed_scan(packed, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_device_ddr_test_complete_data_bounds_check(const bcmolt_device_ddr_test_complete_data *this, bcmolt_presence_mask fields_present, bcmolt_device_ddr_test_complete_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_DDR_TEST_COMPLETE_ID_DDR_TEST)) != 0)
+    {
+        if (!bcmolt_ddr_test_completed_bounds_check(&this->ddr_test))
+        {
+            *failed_prop = BCMOLT_DEVICE_DDR_TEST_COMPLETE_ID_DDR_TEST;
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_device_device_keep_alive_data_set_default(bcmolt_device_device_keep_alive_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_DEVICE_KEEP_ALIVE_ID_SEQUENCE_NUMBER)) != 0)
+    {
+        this->sequence_number = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_DEVICE_KEEP_ALIVE_ID_TIME_STAMP)) != 0)
+    {
+        this->time_stamp = 0;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_device_device_keep_alive_data_pack(const bcmolt_device_device_keep_alive_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_DEVICE_KEEP_ALIVE_ID_SEQUENCE_NUMBER)) != 0)
+    {
+        if (!bcmolt_buf_write_u32(buf, this->sequence_number))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_DEVICE_KEEP_ALIVE_ID_TIME_STAMP)) != 0)
+    {
+        if (!bcmolt_buf_write_u32(buf, this->time_stamp))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_device_device_keep_alive_data_get_packed_length(const bcmolt_device_device_keep_alive_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_DEVICE_KEEP_ALIVE_ID_SEQUENCE_NUMBER)) != 0)
+    {
+        count += 4;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_DEVICE_KEEP_ALIVE_ID_TIME_STAMP)) != 0)
+    {
+        count += 4;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_device_device_keep_alive_data_unpack(bcmolt_device_device_keep_alive_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_DEVICE_KEEP_ALIVE_ID_SEQUENCE_NUMBER)) != 0)
+    {
+        if (!bcmolt_buf_read_u32(buf, &this->sequence_number))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_DEVICE_KEEP_ALIVE_ID_TIME_STAMP)) != 0)
+    {
+        if (!bcmolt_buf_read_u32(buf, &this->time_stamp))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_device_device_keep_alive_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_DEVICE_KEEP_ALIVE_ID_SEQUENCE_NUMBER)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 4))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_DEVICE_KEEP_ALIVE_ID_TIME_STAMP)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 4))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_device_device_keep_alive_data_bounds_check(const bcmolt_device_device_keep_alive_data *this, bcmolt_presence_mask fields_present, bcmolt_device_device_keep_alive_id *failed_prop)
+{
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_device_device_ready_data_set_default(bcmolt_device_device_ready_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_DEVICE_READY_ID_FIRMWARE_SW_VERSION)) != 0)
+    {
+        this->firmware_sw_version.major = 0;
+        this->firmware_sw_version.minor = 0;
+        this->firmware_sw_version.revision = 0;
+        this->firmware_sw_version.model = 0;
+        memset(this->firmware_sw_version.build_time, 0, 32);
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_DEVICE_READY_ID_SYSTEM_MODE)) != 0)
+    {
+        this->system_mode = BCMOLT_SYSTEM_MODE_GPON__16_X;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_DEVICE_READY_ID_NNI_SPEED)) != 0)
+    {
+        this->nni_speed.first_half = BCMOLT_NNI_SPEED_GBPS_1;
+        this->nni_speed.second_half = BCMOLT_NNI_SPEED_GBPS_1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_DEVICE_READY_ID_CHIP_REVISION)) != 0)
+    {
+        this->chip_revision = (bcmolt_device_chip_revision) 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_DEVICE_READY_ID_TOD_ENABLE)) != 0)
+    {
+        this->tod_enable = BCMOLT_CONTROL_STATE_DISABLE;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_DEVICE_READY_ID_TOD_GPIO_PIN)) != 0)
+    {
+        this->tod_gpio_pin = BCMOLT_GPIO_PIN_PIN0;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_device_device_ready_data_pack(const bcmolt_device_device_ready_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_DEVICE_READY_ID_FIRMWARE_SW_VERSION)) != 0)
+    {
+        if (!bcmolt_firmware_sw_version_pack(&this->firmware_sw_version, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_DEVICE_READY_ID_SYSTEM_MODE)) != 0)
+    {
+        if (!bcmolt_system_mode_pack(this->system_mode, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_DEVICE_READY_ID_NNI_SPEED)) != 0)
+    {
+        if (!bcmolt_device_nni_speed_pack(&this->nni_speed, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_DEVICE_READY_ID_CHIP_REVISION)) != 0)
+    {
+        if (!bcmolt_device_chip_revision_pack(this->chip_revision, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_DEVICE_READY_ID_TOD_ENABLE)) != 0)
+    {
+        if (!bcmolt_control_state_pack(this->tod_enable, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_DEVICE_READY_ID_TOD_GPIO_PIN)) != 0)
+    {
+        if (!bcmolt_gpio_pin_pack(this->tod_gpio_pin, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_device_device_ready_data_get_packed_length(const bcmolt_device_device_ready_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_DEVICE_READY_ID_FIRMWARE_SW_VERSION)) != 0)
+    {
+        count += 39;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_DEVICE_READY_ID_SYSTEM_MODE)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_DEVICE_READY_ID_NNI_SPEED)) != 0)
+    {
+        count += 2;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_DEVICE_READY_ID_CHIP_REVISION)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_DEVICE_READY_ID_TOD_ENABLE)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_DEVICE_READY_ID_TOD_GPIO_PIN)) != 0)
+    {
+        count += 1;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_device_device_ready_data_unpack(bcmolt_device_device_ready_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_DEVICE_READY_ID_FIRMWARE_SW_VERSION)) != 0)
+    {
+        if (!bcmolt_firmware_sw_version_unpack(&this->firmware_sw_version, buf, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_DEVICE_READY_ID_SYSTEM_MODE)) != 0)
+    {
+        if (!bcmolt_system_mode_unpack(&this->system_mode, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_DEVICE_READY_ID_NNI_SPEED)) != 0)
+    {
+        if (!bcmolt_device_nni_speed_unpack(&this->nni_speed, buf, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_DEVICE_READY_ID_CHIP_REVISION)) != 0)
+    {
+        if (!bcmolt_device_chip_revision_unpack(&this->chip_revision, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_DEVICE_READY_ID_TOD_ENABLE)) != 0)
+    {
+        if (!bcmolt_control_state_unpack(&this->tod_enable, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_DEVICE_READY_ID_TOD_GPIO_PIN)) != 0)
+    {
+        if (!bcmolt_gpio_pin_unpack(&this->tod_gpio_pin, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_device_device_ready_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_DEVICE_READY_ID_FIRMWARE_SW_VERSION)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 39))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_DEVICE_READY_ID_SYSTEM_MODE)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_DEVICE_READY_ID_NNI_SPEED)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 2))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_DEVICE_READY_ID_CHIP_REVISION)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_DEVICE_READY_ID_TOD_ENABLE)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_DEVICE_READY_ID_TOD_GPIO_PIN)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_device_device_ready_data_bounds_check(const bcmolt_device_device_ready_data *this, bcmolt_presence_mask fields_present, bcmolt_device_device_ready_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_DEVICE_READY_ID_FIRMWARE_SW_VERSION)) != 0)
+    {
+        if (!bcmolt_firmware_sw_version_bounds_check(&this->firmware_sw_version))
+        {
+            *failed_prop = BCMOLT_DEVICE_DEVICE_READY_ID_FIRMWARE_SW_VERSION;
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_DEVICE_READY_ID_SYSTEM_MODE)) != 0)
+    {
+        switch (this->system_mode)
+        {
+            case BCMOLT_SYSTEM_MODE_GPON__16_X:
+                break;
+            case BCMOLT_SYSTEM_MODE_GPON__8_X:
+                break;
+            case BCMOLT_SYSTEM_MODE_GPON__4_X:
+                break;
+            case BCMOLT_SYSTEM_MODE_EPON__16_X:
+                break;
+            case BCMOLT_SYSTEM_MODE_XGPON_1__8_X:
+                break;
+            case BCMOLT_SYSTEM_MODE_EPON__8_X_COEXISTENCE_TDMA:
+                break;
+            case BCMOLT_SYSTEM_MODE_AE_8_X:
+                break;
+            case BCMOLT_SYSTEM_MODE_EPON__8_X_10_G:
+                break;
+            case BCMOLT_SYSTEM_MODE_GPON_8_XGPON_4_X_COEXISTENCE:
+                break;
+            case BCMOLT_SYSTEM_MODE_EPON__8_X:
+                break;
+            case BCMOLT_SYSTEM_MODE_EPON__4_X:
+                break;
+            case BCMOLT_SYSTEM_MODE_EPON__4_X_COEXISTENCE_TDMA:
+                break;
+            case BCMOLT_SYSTEM_MODE_EPON__4_X_10_G:
+                break;
+            case BCMOLT_SYSTEM_MODE_XGS__2_X_10_G:
+                break;
+            case BCMOLT_SYSTEM_MODE_NGPON2__2_X_10_G:
+                break;
+            case BCMOLT_SYSTEM_MODE_NGPON2__8_X_2_P_5_G:
+                break;
+            case BCMOLT_SYSTEM_MODE_XGPON_1__4_X:
+                break;
+            case BCMOLT_SYSTEM_MODE_EPON__2_X_10_G:
+                break;
+            default:
+                *failed_prop = BCMOLT_DEVICE_DEVICE_READY_ID_SYSTEM_MODE;
+                return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_DEVICE_READY_ID_NNI_SPEED)) != 0)
+    {
+        if (!bcmolt_device_nni_speed_bounds_check(&this->nni_speed))
+        {
+            *failed_prop = BCMOLT_DEVICE_DEVICE_READY_ID_NNI_SPEED;
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_DEVICE_READY_ID_CHIP_REVISION)) != 0)
+    {
+        switch (this->chip_revision)
+        {
+            case BCMOLT_DEVICE_CHIP_REVISION_A0:
+                break;
+            case BCMOLT_DEVICE_CHIP_REVISION_B0:
+                break;
+            default:
+                *failed_prop = BCMOLT_DEVICE_DEVICE_READY_ID_CHIP_REVISION;
+                return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_DEVICE_READY_ID_TOD_ENABLE)) != 0)
+    {
+        switch (this->tod_enable)
+        {
+            case BCMOLT_CONTROL_STATE_DISABLE:
+                break;
+            case BCMOLT_CONTROL_STATE_ENABLE:
+                break;
+            default:
+                *failed_prop = BCMOLT_DEVICE_DEVICE_READY_ID_TOD_ENABLE;
+                return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_DEVICE_READY_ID_TOD_GPIO_PIN)) != 0)
+    {
+        switch (this->tod_gpio_pin)
+        {
+            case BCMOLT_GPIO_PIN_PIN0:
+                break;
+            case BCMOLT_GPIO_PIN_PIN1:
+                break;
+            case BCMOLT_GPIO_PIN_PIN2:
+                break;
+            case BCMOLT_GPIO_PIN_PIN3:
+                break;
+            case BCMOLT_GPIO_PIN_PIN4:
+                break;
+            case BCMOLT_GPIO_PIN_PIN5:
+                break;
+            case BCMOLT_GPIO_PIN_PIN6:
+                break;
+            case BCMOLT_GPIO_PIN_PIN7:
+                break;
+            case BCMOLT_GPIO_PIN_PIN8:
+                break;
+            case BCMOLT_GPIO_PIN_PIN9:
+                break;
+            case BCMOLT_GPIO_PIN_PIN10:
+                break;
+            case BCMOLT_GPIO_PIN_PIN11:
+                break;
+            case BCMOLT_GPIO_PIN_PIN12:
+                break;
+            case BCMOLT_GPIO_PIN_PIN13:
+                break;
+            case BCMOLT_GPIO_PIN_PIN14:
+                break;
+            case BCMOLT_GPIO_PIN_PIN15:
+                break;
+            case BCMOLT_GPIO_PIN_PIN16:
+                break;
+            case BCMOLT_GPIO_PIN_PIN17:
+                break;
+            case BCMOLT_GPIO_PIN_PIN18:
+                break;
+            case BCMOLT_GPIO_PIN_PIN19:
+                break;
+            case BCMOLT_GPIO_PIN_PIN20:
+                break;
+            case BCMOLT_GPIO_PIN_PIN21:
+                break;
+            case BCMOLT_GPIO_PIN_PIN22:
+                break;
+            case BCMOLT_GPIO_PIN_PIN23:
+                break;
+            case BCMOLT_GPIO_PIN_PIN24:
+                break;
+            case BCMOLT_GPIO_PIN_PIN25:
+                break;
+            case BCMOLT_GPIO_PIN_PIN26:
+                break;
+            case BCMOLT_GPIO_PIN_PIN27:
+                break;
+            case BCMOLT_GPIO_PIN_PIN28:
+                break;
+            case BCMOLT_GPIO_PIN_PIN29:
+                break;
+            case BCMOLT_GPIO_PIN_PIN30:
+                break;
+            case BCMOLT_GPIO_PIN_PIN31:
+                break;
+            case BCMOLT_GPIO_PIN_PIN32:
+                break;
+            case BCMOLT_GPIO_PIN_PIN33:
+                break;
+            case BCMOLT_GPIO_PIN_PIN34:
+                break;
+            case BCMOLT_GPIO_PIN_PIN35:
+                break;
+            case BCMOLT_GPIO_PIN_PIN36:
+                break;
+            case BCMOLT_GPIO_PIN_PIN37:
+                break;
+            case BCMOLT_GPIO_PIN_PIN38:
+                break;
+            case BCMOLT_GPIO_PIN_PIN39:
+                break;
+            case BCMOLT_GPIO_PIN_PIN40:
+                break;
+            case BCMOLT_GPIO_PIN_PIN41:
+                break;
+            case BCMOLT_GPIO_PIN_PIN42:
+                break;
+            case BCMOLT_GPIO_PIN_PIN43:
+                break;
+            case BCMOLT_GPIO_PIN_PIN44:
+                break;
+            case BCMOLT_GPIO_PIN_PIN45:
+                break;
+            case BCMOLT_GPIO_PIN_PIN46:
+                break;
+            case BCMOLT_GPIO_PIN_PIN47:
+                break;
+            case BCMOLT_GPIO_PIN_PIN48:
+                break;
+            case BCMOLT_GPIO_PIN_PIN49:
+                break;
+            case BCMOLT_GPIO_PIN_PIN50:
+                break;
+            case BCMOLT_GPIO_PIN_PIN51:
+                break;
+            case BCMOLT_GPIO_PIN_PIN52:
+                break;
+            case BCMOLT_GPIO_PIN_PIN53:
+                break;
+            case BCMOLT_GPIO_PIN_PIN54:
+                break;
+            case BCMOLT_GPIO_PIN_PIN55:
+                break;
+            case BCMOLT_GPIO_PIN_PIN56:
+                break;
+            case BCMOLT_GPIO_PIN_PIN57:
+                break;
+            case BCMOLT_GPIO_PIN_PIN58:
+                break;
+            case BCMOLT_GPIO_PIN_PIN59:
+                break;
+            case BCMOLT_GPIO_PIN_PIN60:
+                break;
+            case BCMOLT_GPIO_PIN_PIN61:
+                break;
+            case BCMOLT_GPIO_PIN_PIN62:
+                break;
+            case BCMOLT_GPIO_PIN_PIN63:
+                break;
+            case BCMOLT_GPIO_PIN_PIN64:
+                break;
+            case BCMOLT_GPIO_PIN_PIN65:
+                break;
+            case BCMOLT_GPIO_PIN_PIN66:
+                break;
+            case BCMOLT_GPIO_PIN_PIN67:
+                break;
+            case BCMOLT_GPIO_PIN_PIN68:
+                break;
+            case BCMOLT_GPIO_PIN_PIN69:
+                break;
+            case BCMOLT_GPIO_PIN_PIN70:
+                break;
+            case BCMOLT_GPIO_PIN_PIN71:
+                break;
+            case BCMOLT_GPIO_PIN_PIN72:
+                break;
+            case BCMOLT_GPIO_PIN_PIN73:
+                break;
+            case BCMOLT_GPIO_PIN_PIN74:
+                break;
+            case BCMOLT_GPIO_PIN_PIN75:
+                break;
+            case BCMOLT_GPIO_PIN_PIN76:
+                break;
+            case BCMOLT_GPIO_PIN_PIN77:
+                break;
+            case BCMOLT_GPIO_PIN_PIN78:
+                break;
+            case BCMOLT_GPIO_PIN_PIN79:
+                break;
+            case BCMOLT_GPIO_PIN_PIN80:
+                break;
+            case BCMOLT_GPIO_PIN_PIN81:
+                break;
+            case BCMOLT_GPIO_PIN_PIN82:
+                break;
+            case BCMOLT_GPIO_PIN_PIN83:
+                break;
+            case BCMOLT_GPIO_PIN_PIN84:
+                break;
+            case BCMOLT_GPIO_PIN_PIN85:
+                break;
+            case BCMOLT_GPIO_PIN_PIN86:
+                break;
+            case BCMOLT_GPIO_PIN_PIN87:
+                break;
+            case BCMOLT_GPIO_PIN_PIN88:
+                break;
+            case BCMOLT_GPIO_PIN_PIN89:
+                break;
+            case BCMOLT_GPIO_PIN_PIN90:
+                break;
+            case BCMOLT_GPIO_PIN_PIN91:
+                break;
+            case BCMOLT_GPIO_PIN_PIN92:
+                break;
+            case BCMOLT_GPIO_PIN_PIN93:
+                break;
+            case BCMOLT_GPIO_PIN_PIN94:
+                break;
+            case BCMOLT_GPIO_PIN_PIN95:
+                break;
+            case BCMOLT_GPIO_PIN_PIN96:
+                break;
+            case BCMOLT_GPIO_PIN_PIN97:
+                break;
+            case BCMOLT_GPIO_PIN_PIN98:
+                break;
+            case BCMOLT_GPIO_PIN_PIN99:
+                break;
+            case BCMOLT_GPIO_PIN_PIN100:
+                break;
+            case BCMOLT_GPIO_PIN_PIN101:
+                break;
+            case BCMOLT_GPIO_PIN_PIN102:
+                break;
+            case BCMOLT_GPIO_PIN_PIN103:
+                break;
+            case BCMOLT_GPIO_PIN_PIN104:
+                break;
+            case BCMOLT_GPIO_PIN_PIN105:
+                break;
+            case BCMOLT_GPIO_PIN_PIN106:
+                break;
+            case BCMOLT_GPIO_PIN_UNCONFIGURED:
+                break;
+            default:
+                *failed_prop = BCMOLT_DEVICE_DEVICE_READY_ID_TOD_GPIO_PIN;
+                return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_device_image_transfer_complete_data_set_default(bcmolt_device_image_transfer_complete_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_IMAGE_TRANSFER_COMPLETE_ID_IMAGE_TYPE)) != 0)
+    {
+        this->image_type = BCMOLT_DEVICE_IMAGE_TYPE_BOOTLOADER;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_IMAGE_TRANSFER_COMPLETE_ID_BLOCK_NUMBER)) != 0)
+    {
+        this->block_number = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_IMAGE_TRANSFER_COMPLETE_ID_STATUS)) != 0)
+    {
+        this->status = BCMOLT_IMAGE_TRANSFER_STATUS_SUCCESS;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_device_image_transfer_complete_data_pack(const bcmolt_device_image_transfer_complete_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_IMAGE_TRANSFER_COMPLETE_ID_IMAGE_TYPE)) != 0)
+    {
+        if (!bcmolt_device_image_type_pack(this->image_type, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_IMAGE_TRANSFER_COMPLETE_ID_BLOCK_NUMBER)) != 0)
+    {
+        if (!bcmolt_buf_write_u32(buf, this->block_number))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_IMAGE_TRANSFER_COMPLETE_ID_STATUS)) != 0)
+    {
+        if (!bcmolt_image_transfer_status_pack(this->status, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_device_image_transfer_complete_data_get_packed_length(const bcmolt_device_image_transfer_complete_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_IMAGE_TRANSFER_COMPLETE_ID_IMAGE_TYPE)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_IMAGE_TRANSFER_COMPLETE_ID_BLOCK_NUMBER)) != 0)
+    {
+        count += 4;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_IMAGE_TRANSFER_COMPLETE_ID_STATUS)) != 0)
+    {
+        count += 1;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_device_image_transfer_complete_data_unpack(bcmolt_device_image_transfer_complete_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_IMAGE_TRANSFER_COMPLETE_ID_IMAGE_TYPE)) != 0)
+    {
+        if (!bcmolt_device_image_type_unpack(&this->image_type, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_IMAGE_TRANSFER_COMPLETE_ID_BLOCK_NUMBER)) != 0)
+    {
+        if (!bcmolt_buf_read_u32(buf, &this->block_number))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_IMAGE_TRANSFER_COMPLETE_ID_STATUS)) != 0)
+    {
+        if (!bcmolt_image_transfer_status_unpack(&this->status, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_device_image_transfer_complete_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_IMAGE_TRANSFER_COMPLETE_ID_IMAGE_TYPE)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_IMAGE_TRANSFER_COMPLETE_ID_BLOCK_NUMBER)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 4))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_IMAGE_TRANSFER_COMPLETE_ID_STATUS)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_device_image_transfer_complete_data_bounds_check(const bcmolt_device_image_transfer_complete_data *this, bcmolt_presence_mask fields_present, bcmolt_device_image_transfer_complete_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_IMAGE_TRANSFER_COMPLETE_ID_IMAGE_TYPE)) != 0)
+    {
+        switch (this->image_type)
+        {
+            case BCMOLT_DEVICE_IMAGE_TYPE_BOOTLOADER:
+                break;
+            case BCMOLT_DEVICE_IMAGE_TYPE_APPLICATION:
+                break;
+            case BCMOLT_DEVICE_IMAGE_TYPE_ITU_PON_ONU_FIRMWARE:
+                break;
+            case BCMOLT_DEVICE_IMAGE_TYPE_EPON_ONU_FIRMWARE:
+                break;
+            default:
+                *failed_prop = BCMOLT_DEVICE_IMAGE_TRANSFER_COMPLETE_ID_IMAGE_TYPE;
+                return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_IMAGE_TRANSFER_COMPLETE_ID_STATUS)) != 0)
+    {
+        switch (this->status)
+        {
+            case BCMOLT_IMAGE_TRANSFER_STATUS_SUCCESS:
+                break;
+            case BCMOLT_IMAGE_TRANSFER_STATUS_MEMORY_ALLOCATION_FAILURE:
+                break;
+            case BCMOLT_IMAGE_TRANSFER_STATUS_UNSUPPORTED_FILE_TYPE:
+                break;
+            case BCMOLT_IMAGE_TRANSFER_STATUS_CRC_ERROR:
+                break;
+            case BCMOLT_IMAGE_TRANSFER_STATUS_BLOCK_OUT_OF_SYNC:
+                break;
+            case BCMOLT_IMAGE_TRANSFER_STATUS_INTERNAL_ERROR:
+                break;
+            case BCMOLT_IMAGE_TRANSFER_STATUS_INVALID_STATE:
+                break;
+            case BCMOLT_IMAGE_TRANSFER_STATUS_PREMATURE_TERMINATION:
+                break;
+            case BCMOLT_IMAGE_TRANSFER_STATUS_ACK_TIMEOUT:
+                break;
+            default:
+                *failed_prop = BCMOLT_DEVICE_IMAGE_TRANSFER_COMPLETE_ID_STATUS;
+                return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_device_indications_dropped_data_set_default(bcmolt_device_indications_dropped_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_INDICATIONS_DROPPED_ID_TOTAL_COUNT)) != 0)
+    {
+        this->total_count = 0;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_device_indications_dropped_data_pack(const bcmolt_device_indications_dropped_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_INDICATIONS_DROPPED_ID_TOTAL_COUNT)) != 0)
+    {
+        if (!bcmolt_buf_write_u32(buf, this->total_count))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_device_indications_dropped_data_get_packed_length(const bcmolt_device_indications_dropped_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_INDICATIONS_DROPPED_ID_TOTAL_COUNT)) != 0)
+    {
+        count += 4;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_device_indications_dropped_data_unpack(bcmolt_device_indications_dropped_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_INDICATIONS_DROPPED_ID_TOTAL_COUNT)) != 0)
+    {
+        if (!bcmolt_buf_read_u32(buf, &this->total_count))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_device_indications_dropped_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_INDICATIONS_DROPPED_ID_TOTAL_COUNT)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 4))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_device_indications_dropped_data_bounds_check(const bcmolt_device_indications_dropped_data *this, bcmolt_presence_mask fields_present, bcmolt_device_indications_dropped_id *failed_prop)
+{
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_device_sw_error_data_set_default(bcmolt_device_sw_error_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_SW_ERROR_ID_TASK_NAME)) != 0)
+    {
+        memset(this->task_name.str, 0, 100);
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_SW_ERROR_ID_FILE_NAME)) != 0)
+    {
+        memset(this->file_name.str, 0, 100);
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_SW_ERROR_ID_LINE_NUMBER)) != 0)
+    {
+        this->line_number = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_SW_ERROR_ID_PON_NI)) != 0)
+    {
+        this->pon_ni = 0;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_device_sw_error_data_pack(const bcmolt_device_sw_error_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_SW_ERROR_ID_TASK_NAME)) != 0)
+    {
+        if (!bcmolt_str_100_pack(&this->task_name, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_SW_ERROR_ID_FILE_NAME)) != 0)
+    {
+        if (!bcmolt_str_100_pack(&this->file_name, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_SW_ERROR_ID_LINE_NUMBER)) != 0)
+    {
+        if (!bcmolt_buf_write_u32(buf, this->line_number))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_SW_ERROR_ID_PON_NI)) != 0)
+    {
+        if (!bcmolt_buf_write_u8(buf, this->pon_ni))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_device_sw_error_data_get_packed_length(const bcmolt_device_sw_error_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_SW_ERROR_ID_TASK_NAME)) != 0)
+    {
+        count += 100;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_SW_ERROR_ID_FILE_NAME)) != 0)
+    {
+        count += 100;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_SW_ERROR_ID_LINE_NUMBER)) != 0)
+    {
+        count += 4;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_SW_ERROR_ID_PON_NI)) != 0)
+    {
+        count += 1;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_device_sw_error_data_unpack(bcmolt_device_sw_error_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_SW_ERROR_ID_TASK_NAME)) != 0)
+    {
+        if (!bcmolt_str_100_unpack(&this->task_name, buf, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_SW_ERROR_ID_FILE_NAME)) != 0)
+    {
+        if (!bcmolt_str_100_unpack(&this->file_name, buf, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_SW_ERROR_ID_LINE_NUMBER)) != 0)
+    {
+        if (!bcmolt_buf_read_u32(buf, &this->line_number))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_SW_ERROR_ID_PON_NI)) != 0)
+    {
+        if (!bcmolt_buf_read_u8(buf, &this->pon_ni))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_device_sw_error_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_SW_ERROR_ID_TASK_NAME)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 100))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_SW_ERROR_ID_FILE_NAME)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 100))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_SW_ERROR_ID_LINE_NUMBER)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 4))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_SW_ERROR_ID_PON_NI)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_device_sw_error_data_bounds_check(const bcmolt_device_sw_error_data *this, bcmolt_presence_mask fields_present, bcmolt_device_sw_error_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_SW_ERROR_ID_TASK_NAME)) != 0)
+    {
+        if (!bcmolt_str_100_bounds_check(&this->task_name))
+        {
+            *failed_prop = BCMOLT_DEVICE_SW_ERROR_ID_TASK_NAME;
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_SW_ERROR_ID_FILE_NAME)) != 0)
+    {
+        if (!bcmolt_str_100_bounds_check(&this->file_name))
+        {
+            *failed_prop = BCMOLT_DEVICE_SW_ERROR_ID_FILE_NAME;
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_device_sw_exception_data_set_default(bcmolt_device_sw_exception_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_SW_EXCEPTION_ID_CPU_ID)) != 0)
+    {
+        this->cpu_id = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_SW_EXCEPTION_ID_TEXT)) != 0)
+    {
+        memset(this->text.str, 0, 2000);
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_device_sw_exception_data_pack(const bcmolt_device_sw_exception_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_SW_EXCEPTION_ID_CPU_ID)) != 0)
+    {
+        if (!bcmolt_buf_write_u8(buf, this->cpu_id))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_SW_EXCEPTION_ID_TEXT)) != 0)
+    {
+        if (!bcmolt_str_2000_pack(&this->text, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_device_sw_exception_data_get_packed_length(const bcmolt_device_sw_exception_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_SW_EXCEPTION_ID_CPU_ID)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_SW_EXCEPTION_ID_TEXT)) != 0)
+    {
+        count += 2000;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_device_sw_exception_data_unpack(bcmolt_device_sw_exception_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_SW_EXCEPTION_ID_CPU_ID)) != 0)
+    {
+        if (!bcmolt_buf_read_u8(buf, &this->cpu_id))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_SW_EXCEPTION_ID_TEXT)) != 0)
+    {
+        if (!bcmolt_str_2000_unpack(&this->text, buf, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_device_sw_exception_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_SW_EXCEPTION_ID_CPU_ID)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_SW_EXCEPTION_ID_TEXT)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 2000))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_device_sw_exception_data_bounds_check(const bcmolt_device_sw_exception_data *this, bcmolt_presence_mask fields_present, bcmolt_device_sw_exception_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_SW_EXCEPTION_ID_TEXT)) != 0)
+    {
+        if (!bcmolt_str_2000_bounds_check(&this->text))
+        {
+            *failed_prop = BCMOLT_DEVICE_SW_EXCEPTION_ID_TEXT;
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_device_auto_cfg_data_set_default(bcmolt_device_auto_cfg_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_AUTO_CFG_ID_CONNECTION_COMPLETE)) != 0)
+    {
+        this->connection_complete = BCMOS_FALSE;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_AUTO_CFG_ID_CONNECTION_ESTABLISHED)) != 0)
+    {
+        this->connection_established = BCMOS_FALSE;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_AUTO_CFG_ID_CONNECTION_FAILURE)) != 0)
+    {
+        this->connection_failure = BCMOS_FALSE;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_AUTO_CFG_ID_DDR_TEST_COMPLETE)) != 0)
+    {
+        this->ddr_test_complete = BCMOS_FALSE;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_AUTO_CFG_ID_DEVICE_KEEP_ALIVE)) != 0)
+    {
+        this->device_keep_alive = BCMOS_FALSE;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_AUTO_CFG_ID_DEVICE_READY)) != 0)
+    {
+        this->device_ready = BCMOS_FALSE;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_AUTO_CFG_ID_DISCONNECTION_COMPLETE)) != 0)
+    {
+        this->disconnection_complete = BCMOS_FALSE;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_AUTO_CFG_ID_IMAGE_TRANSFER_COMPLETE)) != 0)
+    {
+        this->image_transfer_complete = BCMOS_FALSE;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_AUTO_CFG_ID_INDICATIONS_DROPPED)) != 0)
+    {
+        this->indications_dropped = BCMOS_FALSE;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_AUTO_CFG_ID_SW_ERROR)) != 0)
+    {
+        this->sw_error = BCMOS_FALSE;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_AUTO_CFG_ID_SW_EXCEPTION)) != 0)
+    {
+        this->sw_exception = BCMOS_FALSE;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_device_auto_cfg_data_pack(const bcmolt_device_auto_cfg_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_AUTO_CFG_ID_CONNECTION_COMPLETE)) != 0)
+    {
+        if (!bcmolt_buf_write_bool(buf, this->connection_complete))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_AUTO_CFG_ID_CONNECTION_ESTABLISHED)) != 0)
+    {
+        if (!bcmolt_buf_write_bool(buf, this->connection_established))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_AUTO_CFG_ID_CONNECTION_FAILURE)) != 0)
+    {
+        if (!bcmolt_buf_write_bool(buf, this->connection_failure))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_AUTO_CFG_ID_DDR_TEST_COMPLETE)) != 0)
+    {
+        if (!bcmolt_buf_write_bool(buf, this->ddr_test_complete))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_AUTO_CFG_ID_DEVICE_KEEP_ALIVE)) != 0)
+    {
+        if (!bcmolt_buf_write_bool(buf, this->device_keep_alive))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_AUTO_CFG_ID_DEVICE_READY)) != 0)
+    {
+        if (!bcmolt_buf_write_bool(buf, this->device_ready))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_AUTO_CFG_ID_DISCONNECTION_COMPLETE)) != 0)
+    {
+        if (!bcmolt_buf_write_bool(buf, this->disconnection_complete))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_AUTO_CFG_ID_IMAGE_TRANSFER_COMPLETE)) != 0)
+    {
+        if (!bcmolt_buf_write_bool(buf, this->image_transfer_complete))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_AUTO_CFG_ID_INDICATIONS_DROPPED)) != 0)
+    {
+        if (!bcmolt_buf_write_bool(buf, this->indications_dropped))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_AUTO_CFG_ID_SW_ERROR)) != 0)
+    {
+        if (!bcmolt_buf_write_bool(buf, this->sw_error))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_AUTO_CFG_ID_SW_EXCEPTION)) != 0)
+    {
+        if (!bcmolt_buf_write_bool(buf, this->sw_exception))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_device_auto_cfg_data_get_packed_length(const bcmolt_device_auto_cfg_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_AUTO_CFG_ID_CONNECTION_COMPLETE)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_AUTO_CFG_ID_CONNECTION_ESTABLISHED)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_AUTO_CFG_ID_CONNECTION_FAILURE)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_AUTO_CFG_ID_DDR_TEST_COMPLETE)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_AUTO_CFG_ID_DEVICE_KEEP_ALIVE)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_AUTO_CFG_ID_DEVICE_READY)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_AUTO_CFG_ID_DISCONNECTION_COMPLETE)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_AUTO_CFG_ID_IMAGE_TRANSFER_COMPLETE)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_AUTO_CFG_ID_INDICATIONS_DROPPED)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_AUTO_CFG_ID_SW_ERROR)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_AUTO_CFG_ID_SW_EXCEPTION)) != 0)
+    {
+        count += 1;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_device_auto_cfg_data_unpack(bcmolt_device_auto_cfg_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_AUTO_CFG_ID_CONNECTION_COMPLETE)) != 0)
+    {
+        if (!bcmolt_buf_read_bool(buf, &this->connection_complete))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_AUTO_CFG_ID_CONNECTION_ESTABLISHED)) != 0)
+    {
+        if (!bcmolt_buf_read_bool(buf, &this->connection_established))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_AUTO_CFG_ID_CONNECTION_FAILURE)) != 0)
+    {
+        if (!bcmolt_buf_read_bool(buf, &this->connection_failure))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_AUTO_CFG_ID_DDR_TEST_COMPLETE)) != 0)
+    {
+        if (!bcmolt_buf_read_bool(buf, &this->ddr_test_complete))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_AUTO_CFG_ID_DEVICE_KEEP_ALIVE)) != 0)
+    {
+        if (!bcmolt_buf_read_bool(buf, &this->device_keep_alive))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_AUTO_CFG_ID_DEVICE_READY)) != 0)
+    {
+        if (!bcmolt_buf_read_bool(buf, &this->device_ready))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_AUTO_CFG_ID_DISCONNECTION_COMPLETE)) != 0)
+    {
+        if (!bcmolt_buf_read_bool(buf, &this->disconnection_complete))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_AUTO_CFG_ID_IMAGE_TRANSFER_COMPLETE)) != 0)
+    {
+        if (!bcmolt_buf_read_bool(buf, &this->image_transfer_complete))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_AUTO_CFG_ID_INDICATIONS_DROPPED)) != 0)
+    {
+        if (!bcmolt_buf_read_bool(buf, &this->indications_dropped))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_AUTO_CFG_ID_SW_ERROR)) != 0)
+    {
+        if (!bcmolt_buf_read_bool(buf, &this->sw_error))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_AUTO_CFG_ID_SW_EXCEPTION)) != 0)
+    {
+        if (!bcmolt_buf_read_bool(buf, &this->sw_exception))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_device_auto_cfg_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_AUTO_CFG_ID_CONNECTION_COMPLETE)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_AUTO_CFG_ID_CONNECTION_ESTABLISHED)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_AUTO_CFG_ID_CONNECTION_FAILURE)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_AUTO_CFG_ID_DDR_TEST_COMPLETE)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_AUTO_CFG_ID_DEVICE_KEEP_ALIVE)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_AUTO_CFG_ID_DEVICE_READY)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_AUTO_CFG_ID_DISCONNECTION_COMPLETE)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_AUTO_CFG_ID_IMAGE_TRANSFER_COMPLETE)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_AUTO_CFG_ID_INDICATIONS_DROPPED)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_AUTO_CFG_ID_SW_ERROR)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_AUTO_CFG_ID_SW_EXCEPTION)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_device_auto_cfg_data_bounds_check(const bcmolt_device_auto_cfg_data *this, bcmolt_presence_mask fields_present, bcmolt_device_auto_cfg_id *failed_prop)
+{
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_device_host_keep_alive_data_set_default(bcmolt_device_host_keep_alive_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_HOST_KEEP_ALIVE_ID_SEQUENCE_NUMBER)) != 0)
+    {
+        this->sequence_number = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_HOST_KEEP_ALIVE_ID_TIME_STAMP)) != 0)
+    {
+        this->time_stamp = 0;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_device_host_keep_alive_data_pack(const bcmolt_device_host_keep_alive_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_HOST_KEEP_ALIVE_ID_SEQUENCE_NUMBER)) != 0)
+    {
+        if (!bcmolt_buf_write_u32(buf, this->sequence_number))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_HOST_KEEP_ALIVE_ID_TIME_STAMP)) != 0)
+    {
+        if (!bcmolt_buf_write_u32(buf, this->time_stamp))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_device_host_keep_alive_data_get_packed_length(const bcmolt_device_host_keep_alive_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_HOST_KEEP_ALIVE_ID_SEQUENCE_NUMBER)) != 0)
+    {
+        count += 4;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_HOST_KEEP_ALIVE_ID_TIME_STAMP)) != 0)
+    {
+        count += 4;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_device_host_keep_alive_data_unpack(bcmolt_device_host_keep_alive_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_HOST_KEEP_ALIVE_ID_SEQUENCE_NUMBER)) != 0)
+    {
+        if (!bcmolt_buf_read_u32(buf, &this->sequence_number))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_HOST_KEEP_ALIVE_ID_TIME_STAMP)) != 0)
+    {
+        if (!bcmolt_buf_read_u32(buf, &this->time_stamp))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_device_host_keep_alive_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_HOST_KEEP_ALIVE_ID_SEQUENCE_NUMBER)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 4))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_HOST_KEEP_ALIVE_ID_TIME_STAMP)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 4))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_device_host_keep_alive_data_bounds_check(const bcmolt_device_host_keep_alive_data *this, bcmolt_presence_mask fields_present, bcmolt_device_host_keep_alive_id *failed_prop)
+{
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_device_image_transfer_data_data_set_default(bcmolt_device_image_transfer_data_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_IMAGE_TRANSFER_DATA_ID_BLOCK_NUMBER)) != 0)
+    {
+        this->block_number = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_IMAGE_TRANSFER_DATA_ID_MORE_DATA)) != 0)
+    {
+        this->more_data = BCMOS_FALSE;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_IMAGE_TRANSFER_DATA_ID_DATA)) != 0)
+    {
+        this->data.len = 0;
+        this->data.val = NULL;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_device_image_transfer_data_data_pack(const bcmolt_device_image_transfer_data_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_IMAGE_TRANSFER_DATA_ID_BLOCK_NUMBER)) != 0)
+    {
+        if (!bcmolt_buf_write_u32(buf, this->block_number))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_IMAGE_TRANSFER_DATA_ID_MORE_DATA)) != 0)
+    {
+        if (!bcmolt_buf_write_bool(buf, this->more_data))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_IMAGE_TRANSFER_DATA_ID_DATA)) != 0)
+    {
+        if (!bcmolt_u8_list_u16_hex_pack(&this->data, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_device_image_transfer_data_data_get_packed_length(const bcmolt_device_image_transfer_data_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_IMAGE_TRANSFER_DATA_ID_BLOCK_NUMBER)) != 0)
+    {
+        count += 4;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_IMAGE_TRANSFER_DATA_ID_MORE_DATA)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_IMAGE_TRANSFER_DATA_ID_DATA)) != 0)
+    {
+        count += bcmolt_u8_list_u16_hex_get_packed_length(&this->data);
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_device_image_transfer_data_data_unpack(bcmolt_device_image_transfer_data_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_IMAGE_TRANSFER_DATA_ID_BLOCK_NUMBER)) != 0)
+    {
+        if (!bcmolt_buf_read_u32(buf, &this->block_number))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_IMAGE_TRANSFER_DATA_ID_MORE_DATA)) != 0)
+    {
+        if (!bcmolt_buf_read_bool(buf, &this->more_data))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_IMAGE_TRANSFER_DATA_ID_DATA)) != 0)
+    {
+        if (!bcmolt_u8_list_u16_hex_unpack(&this->data, buf, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_device_image_transfer_data_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_IMAGE_TRANSFER_DATA_ID_BLOCK_NUMBER)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 4))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_IMAGE_TRANSFER_DATA_ID_MORE_DATA)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_IMAGE_TRANSFER_DATA_ID_DATA)) != 0)
+    {
+        if (!bcmolt_u8_list_u16_hex_scan(packed, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_device_image_transfer_data_data_bounds_check(const bcmolt_device_image_transfer_data_data *this, bcmolt_presence_mask fields_present, bcmolt_device_image_transfer_data_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_IMAGE_TRANSFER_DATA_ID_DATA)) != 0)
+    {
+        if (!bcmolt_u8_list_u16_hex_bounds_check(&this->data))
+        {
+            *failed_prop = BCMOLT_DEVICE_IMAGE_TRANSFER_DATA_ID_DATA;
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_device_image_transfer_start_data_set_default(bcmolt_device_image_transfer_start_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_IMAGE_TRANSFER_START_ID_IMAGE_TYPE)) != 0)
+    {
+        this->image_type = BCMOLT_DEVICE_IMAGE_TYPE_BOOTLOADER;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_IMAGE_TRANSFER_START_ID_IMAGE_SIZE)) != 0)
+    {
+        this->image_size = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_IMAGE_TRANSFER_START_ID_CRC32)) != 0)
+    {
+        this->crc32 = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_IMAGE_TRANSFER_START_ID_IMAGE_NAME)) != 0)
+    {
+        memset(this->image_name.str, 0, 64);
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_device_image_transfer_start_data_pack(const bcmolt_device_image_transfer_start_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_IMAGE_TRANSFER_START_ID_IMAGE_TYPE)) != 0)
+    {
+        if (!bcmolt_device_image_type_pack(this->image_type, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_IMAGE_TRANSFER_START_ID_IMAGE_SIZE)) != 0)
+    {
+        if (!bcmolt_buf_write_u32(buf, this->image_size))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_IMAGE_TRANSFER_START_ID_CRC32)) != 0)
+    {
+        if (!bcmolt_buf_write_u32(buf, this->crc32))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_IMAGE_TRANSFER_START_ID_IMAGE_NAME)) != 0)
+    {
+        if (!bcmolt_str_64_pack(&this->image_name, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_device_image_transfer_start_data_get_packed_length(const bcmolt_device_image_transfer_start_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_IMAGE_TRANSFER_START_ID_IMAGE_TYPE)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_IMAGE_TRANSFER_START_ID_IMAGE_SIZE)) != 0)
+    {
+        count += 4;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_IMAGE_TRANSFER_START_ID_CRC32)) != 0)
+    {
+        count += 4;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_IMAGE_TRANSFER_START_ID_IMAGE_NAME)) != 0)
+    {
+        count += 64;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_device_image_transfer_start_data_unpack(bcmolt_device_image_transfer_start_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_IMAGE_TRANSFER_START_ID_IMAGE_TYPE)) != 0)
+    {
+        if (!bcmolt_device_image_type_unpack(&this->image_type, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_IMAGE_TRANSFER_START_ID_IMAGE_SIZE)) != 0)
+    {
+        if (!bcmolt_buf_read_u32(buf, &this->image_size))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_IMAGE_TRANSFER_START_ID_CRC32)) != 0)
+    {
+        if (!bcmolt_buf_read_u32(buf, &this->crc32))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_IMAGE_TRANSFER_START_ID_IMAGE_NAME)) != 0)
+    {
+        if (!bcmolt_str_64_unpack(&this->image_name, buf, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_device_image_transfer_start_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_IMAGE_TRANSFER_START_ID_IMAGE_TYPE)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_IMAGE_TRANSFER_START_ID_IMAGE_SIZE)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 4))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_IMAGE_TRANSFER_START_ID_CRC32)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 4))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_IMAGE_TRANSFER_START_ID_IMAGE_NAME)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 64))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_device_image_transfer_start_data_bounds_check(const bcmolt_device_image_transfer_start_data *this, bcmolt_presence_mask fields_present, bcmolt_device_image_transfer_start_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_IMAGE_TRANSFER_START_ID_IMAGE_TYPE)) != 0)
+    {
+        switch (this->image_type)
+        {
+            case BCMOLT_DEVICE_IMAGE_TYPE_BOOTLOADER:
+                break;
+            case BCMOLT_DEVICE_IMAGE_TYPE_APPLICATION:
+                break;
+            case BCMOLT_DEVICE_IMAGE_TYPE_ITU_PON_ONU_FIRMWARE:
+                break;
+            case BCMOLT_DEVICE_IMAGE_TYPE_EPON_ONU_FIRMWARE:
+                break;
+            default:
+                *failed_prop = BCMOLT_DEVICE_IMAGE_TRANSFER_START_ID_IMAGE_TYPE;
+                return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_IMAGE_TRANSFER_START_ID_IMAGE_NAME)) != 0)
+    {
+        if (!bcmolt_str_64_bounds_check(&this->image_name))
+        {
+            *failed_prop = BCMOLT_DEVICE_IMAGE_TRANSFER_START_ID_IMAGE_NAME;
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_device_reset_data_set_default(bcmolt_device_reset_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_RESET_ID_MODE)) != 0)
+    {
+        this->mode = (bcmolt_device_reset_mode) 0;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_device_reset_data_pack(const bcmolt_device_reset_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_RESET_ID_MODE)) != 0)
+    {
+        if (!bcmolt_device_reset_mode_pack(this->mode, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_device_reset_data_get_packed_length(const bcmolt_device_reset_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_RESET_ID_MODE)) != 0)
+    {
+        count += 1;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_device_reset_data_unpack(bcmolt_device_reset_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_RESET_ID_MODE)) != 0)
+    {
+        if (!bcmolt_device_reset_mode_unpack(&this->mode, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_device_reset_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_RESET_ID_MODE)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_device_reset_data_bounds_check(const bcmolt_device_reset_data *this, bcmolt_presence_mask fields_present, bcmolt_device_reset_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_RESET_ID_MODE)) != 0)
+    {
+        switch (this->mode)
+        {
+            case BCMOLT_DEVICE_RESET_MODE_DEVICE:
+                break;
+            case BCMOLT_DEVICE_RESET_MODE_HOST:
+                break;
+            case BCMOLT_DEVICE_RESET_MODE_ALL:
+                break;
+            default:
+                *failed_prop = BCMOLT_DEVICE_RESET_ID_MODE;
+                return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_device_run_ddr_test_data_set_default(bcmolt_device_run_ddr_test_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_RUN_DDR_TEST_ID_CPU)) != 0)
+    {
+        this->cpu = BCMOS_FALSE;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_RUN_DDR_TEST_ID_RAS_0)) != 0)
+    {
+        this->ras_0 = BCMOS_FALSE;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_RUN_DDR_TEST_ID_RAS_1)) != 0)
+    {
+        this->ras_1 = BCMOS_FALSE;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_device_run_ddr_test_data_pack(const bcmolt_device_run_ddr_test_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_RUN_DDR_TEST_ID_CPU)) != 0)
+    {
+        if (!bcmolt_buf_write_bool(buf, this->cpu))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_RUN_DDR_TEST_ID_RAS_0)) != 0)
+    {
+        if (!bcmolt_buf_write_bool(buf, this->ras_0))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_RUN_DDR_TEST_ID_RAS_1)) != 0)
+    {
+        if (!bcmolt_buf_write_bool(buf, this->ras_1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_device_run_ddr_test_data_get_packed_length(const bcmolt_device_run_ddr_test_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_RUN_DDR_TEST_ID_CPU)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_RUN_DDR_TEST_ID_RAS_0)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_RUN_DDR_TEST_ID_RAS_1)) != 0)
+    {
+        count += 1;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_device_run_ddr_test_data_unpack(bcmolt_device_run_ddr_test_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_RUN_DDR_TEST_ID_CPU)) != 0)
+    {
+        if (!bcmolt_buf_read_bool(buf, &this->cpu))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_RUN_DDR_TEST_ID_RAS_0)) != 0)
+    {
+        if (!bcmolt_buf_read_bool(buf, &this->ras_0))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_RUN_DDR_TEST_ID_RAS_1)) != 0)
+    {
+        if (!bcmolt_buf_read_bool(buf, &this->ras_1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_device_run_ddr_test_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_RUN_DDR_TEST_ID_CPU)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_RUN_DDR_TEST_ID_RAS_0)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_DEVICE_RUN_DDR_TEST_ID_RAS_1)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_device_run_ddr_test_data_bounds_check(const bcmolt_device_run_ddr_test_data *this, bcmolt_presence_mask fields_present, bcmolt_device_run_ddr_test_id *failed_prop)
+{
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_epon_denied_link_key_set_default(bcmolt_epon_denied_link_key *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_DENIED_LINK_KEY_ID_EPON_NI)) != 0)
+    {
+        this->epon_ni = (bcmolt_epon_ni) 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_DENIED_LINK_KEY_ID_MAC_ADDRESS)) != 0)
+    {
+        bcmos_mac_address_init(&this->mac_address);
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_denied_link_key_pack(const bcmolt_epon_denied_link_key *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_DENIED_LINK_KEY_ID_EPON_NI)) != 0)
+    {
+        if (!bcmolt_buf_write_u16(buf, (uint16_t) this->epon_ni))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_DENIED_LINK_KEY_ID_MAC_ADDRESS)) != 0)
+    {
+        if (!bcmolt_buf_write_mac_address(buf, this->mac_address))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_epon_denied_link_key_get_packed_length(const bcmolt_epon_denied_link_key *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_EPON_DENIED_LINK_KEY_ID_EPON_NI)) != 0)
+    {
+        count += 2;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_DENIED_LINK_KEY_ID_MAC_ADDRESS)) != 0)
+    {
+        count += 6;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_denied_link_key_unpack(bcmolt_epon_denied_link_key *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_DENIED_LINK_KEY_ID_EPON_NI)) != 0)
+    {
+        if (!bcmolt_buf_read_u16(buf, (uint16_t *) &this->epon_ni))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_DENIED_LINK_KEY_ID_MAC_ADDRESS)) != 0)
+    {
+        if (!bcmolt_buf_read_mac_address(buf, &this->mac_address))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_denied_link_key_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_DENIED_LINK_KEY_ID_EPON_NI)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 2))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_DENIED_LINK_KEY_ID_MAC_ADDRESS)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 6))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_denied_link_key_bounds_check(const bcmolt_epon_denied_link_key *this, bcmolt_presence_mask fields_present, bcmolt_epon_denied_link_key_id *failed_prop)
+{
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_epon_denied_link_cfg_data_set_default(bcmolt_epon_denied_link_cfg_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_DENIED_LINK_CFG_ID_ALARM_STATE)) != 0)
+    {
+        this->alarm_state.unknown_link_violation.link_rate = BCMOLT_EPON_LINK_RATE_TEN_TEN;
+        this->alarm_state.unknown_link_violation.alarm_status = BCMOLT_STATUS_OFF;
+        this->alarm_state.overhead_profile_violation = BCMOLT_STATUS_OFF;
+        this->alarm_state.max_link_violation = BCMOLT_STATUS_OFF;
+        this->alarm_state.llid_pool_empty_violation = BCMOLT_STATUS_OFF;
+        this->alarm_state.laser_on_off_violation.laser_on_time = (bcmolt_time_quanta) 0;
+        this->alarm_state.laser_on_off_violation.laser_off_time = (bcmolt_time_quanta) 0;
+        this->alarm_state.laser_on_off_violation.alarm_status = BCMOLT_STATUS_OFF;
+        this->alarm_state.system_resource_violation = BCMOLT_STATUS_OFF;
+        this->alarm_state.range_violation.range = (bcmolt_time_quanta) 0;
+        this->alarm_state.range_violation.alarm_status = BCMOLT_STATUS_OFF;
+        this->alarm_state.tdm_channels_exhausted = BCMOLT_STATUS_OFF;
+        this->alarm_state.rogue_violation.denied_llid = (bcmolt_epon_llid) 0;
+        this->alarm_state.rogue_violation.denied_range = (bcmolt_time_quanta) 0;
+        this->alarm_state.rogue_violation.alarm_status = BCMOLT_STATUS_OFF;
+        this->alarm_state.upstream_bandwidth_violation = BCMOLT_STATUS_OFF;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_denied_link_cfg_data_pack(const bcmolt_epon_denied_link_cfg_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_DENIED_LINK_CFG_ID_ALARM_STATE)) != 0)
+    {
+        if (!bcmolt_epon_denied_link_alarm_state_pack(&this->alarm_state, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_epon_denied_link_cfg_data_get_packed_length(const bcmolt_epon_denied_link_cfg_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_EPON_DENIED_LINK_CFG_ID_ALARM_STATE)) != 0)
+    {
+        count += 30;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_denied_link_cfg_data_unpack(bcmolt_epon_denied_link_cfg_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_DENIED_LINK_CFG_ID_ALARM_STATE)) != 0)
+    {
+        if (!bcmolt_epon_denied_link_alarm_state_unpack(&this->alarm_state, buf, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_denied_link_cfg_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_DENIED_LINK_CFG_ID_ALARM_STATE)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 30))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_denied_link_cfg_data_bounds_check(const bcmolt_epon_denied_link_cfg_data *this, bcmolt_presence_mask fields_present, bcmolt_epon_denied_link_cfg_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_DENIED_LINK_CFG_ID_ALARM_STATE)) != 0)
+    {
+        if (!bcmolt_epon_denied_link_alarm_state_bounds_check(&this->alarm_state))
+        {
+            *failed_prop = BCMOLT_EPON_DENIED_LINK_CFG_ID_ALARM_STATE;
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_epon_denied_link_laser_on_off_violation_data_set_default(bcmolt_epon_denied_link_laser_on_off_violation_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_DENIED_LINK_LASER_ON_OFF_VIOLATION_ID_ALARM_STATUS)) != 0)
+    {
+        this->alarm_status.laser_on_time = (bcmolt_time_quanta) 0;
+        this->alarm_status.laser_off_time = (bcmolt_time_quanta) 0;
+        this->alarm_status.alarm_status = BCMOLT_STATUS_OFF;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_denied_link_laser_on_off_violation_data_pack(const bcmolt_epon_denied_link_laser_on_off_violation_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_DENIED_LINK_LASER_ON_OFF_VIOLATION_ID_ALARM_STATUS)) != 0)
+    {
+        if (!bcmolt_laser_on_off_status_pack(&this->alarm_status, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_epon_denied_link_laser_on_off_violation_data_get_packed_length(const bcmolt_epon_denied_link_laser_on_off_violation_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_EPON_DENIED_LINK_LASER_ON_OFF_VIOLATION_ID_ALARM_STATUS)) != 0)
+    {
+        count += 9;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_denied_link_laser_on_off_violation_data_unpack(bcmolt_epon_denied_link_laser_on_off_violation_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_DENIED_LINK_LASER_ON_OFF_VIOLATION_ID_ALARM_STATUS)) != 0)
+    {
+        if (!bcmolt_laser_on_off_status_unpack(&this->alarm_status, buf, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_denied_link_laser_on_off_violation_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_DENIED_LINK_LASER_ON_OFF_VIOLATION_ID_ALARM_STATUS)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 9))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_denied_link_laser_on_off_violation_data_bounds_check(const bcmolt_epon_denied_link_laser_on_off_violation_data *this, bcmolt_presence_mask fields_present, bcmolt_epon_denied_link_laser_on_off_violation_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_DENIED_LINK_LASER_ON_OFF_VIOLATION_ID_ALARM_STATUS)) != 0)
+    {
+        if (!bcmolt_laser_on_off_status_bounds_check(&this->alarm_status))
+        {
+            *failed_prop = BCMOLT_EPON_DENIED_LINK_LASER_ON_OFF_VIOLATION_ID_ALARM_STATUS;
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_epon_denied_link_llid_pool_empty_violation_data_set_default(bcmolt_epon_denied_link_llid_pool_empty_violation_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_DENIED_LINK_LLID_POOL_EMPTY_VIOLATION_ID_ALARM_STATUS)) != 0)
+    {
+        this->alarm_status = BCMOLT_STATUS_OFF;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_denied_link_llid_pool_empty_violation_data_pack(const bcmolt_epon_denied_link_llid_pool_empty_violation_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_DENIED_LINK_LLID_POOL_EMPTY_VIOLATION_ID_ALARM_STATUS)) != 0)
+    {
+        if (!bcmolt_status_pack(this->alarm_status, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_epon_denied_link_llid_pool_empty_violation_data_get_packed_length(const bcmolt_epon_denied_link_llid_pool_empty_violation_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_EPON_DENIED_LINK_LLID_POOL_EMPTY_VIOLATION_ID_ALARM_STATUS)) != 0)
+    {
+        count += 1;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_denied_link_llid_pool_empty_violation_data_unpack(bcmolt_epon_denied_link_llid_pool_empty_violation_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_DENIED_LINK_LLID_POOL_EMPTY_VIOLATION_ID_ALARM_STATUS)) != 0)
+    {
+        if (!bcmolt_status_unpack(&this->alarm_status, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_denied_link_llid_pool_empty_violation_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_DENIED_LINK_LLID_POOL_EMPTY_VIOLATION_ID_ALARM_STATUS)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_denied_link_llid_pool_empty_violation_data_bounds_check(const bcmolt_epon_denied_link_llid_pool_empty_violation_data *this, bcmolt_presence_mask fields_present, bcmolt_epon_denied_link_llid_pool_empty_violation_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_DENIED_LINK_LLID_POOL_EMPTY_VIOLATION_ID_ALARM_STATUS)) != 0)
+    {
+        switch (this->alarm_status)
+        {
+            case BCMOLT_STATUS_OFF:
+                break;
+            case BCMOLT_STATUS_ON:
+                break;
+            case BCMOLT_STATUS_NO_CHANGE:
+                break;
+            default:
+                *failed_prop = BCMOLT_EPON_DENIED_LINK_LLID_POOL_EMPTY_VIOLATION_ID_ALARM_STATUS;
+                return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_epon_denied_link_max_link_violation_data_set_default(bcmolt_epon_denied_link_max_link_violation_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_DENIED_LINK_MAX_LINK_VIOLATION_ID_ALARM_STATUS)) != 0)
+    {
+        this->alarm_status = BCMOLT_STATUS_OFF;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_denied_link_max_link_violation_data_pack(const bcmolt_epon_denied_link_max_link_violation_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_DENIED_LINK_MAX_LINK_VIOLATION_ID_ALARM_STATUS)) != 0)
+    {
+        if (!bcmolt_status_pack(this->alarm_status, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_epon_denied_link_max_link_violation_data_get_packed_length(const bcmolt_epon_denied_link_max_link_violation_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_EPON_DENIED_LINK_MAX_LINK_VIOLATION_ID_ALARM_STATUS)) != 0)
+    {
+        count += 1;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_denied_link_max_link_violation_data_unpack(bcmolt_epon_denied_link_max_link_violation_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_DENIED_LINK_MAX_LINK_VIOLATION_ID_ALARM_STATUS)) != 0)
+    {
+        if (!bcmolt_status_unpack(&this->alarm_status, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_denied_link_max_link_violation_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_DENIED_LINK_MAX_LINK_VIOLATION_ID_ALARM_STATUS)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_denied_link_max_link_violation_data_bounds_check(const bcmolt_epon_denied_link_max_link_violation_data *this, bcmolt_presence_mask fields_present, bcmolt_epon_denied_link_max_link_violation_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_DENIED_LINK_MAX_LINK_VIOLATION_ID_ALARM_STATUS)) != 0)
+    {
+        switch (this->alarm_status)
+        {
+            case BCMOLT_STATUS_OFF:
+                break;
+            case BCMOLT_STATUS_ON:
+                break;
+            case BCMOLT_STATUS_NO_CHANGE:
+                break;
+            default:
+                *failed_prop = BCMOLT_EPON_DENIED_LINK_MAX_LINK_VIOLATION_ID_ALARM_STATUS;
+                return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_epon_denied_link_overhead_profile_violation_data_set_default(bcmolt_epon_denied_link_overhead_profile_violation_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_DENIED_LINK_OVERHEAD_PROFILE_VIOLATION_ID_ALARM_STATUS)) != 0)
+    {
+        this->alarm_status = BCMOLT_STATUS_OFF;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_denied_link_overhead_profile_violation_data_pack(const bcmolt_epon_denied_link_overhead_profile_violation_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_DENIED_LINK_OVERHEAD_PROFILE_VIOLATION_ID_ALARM_STATUS)) != 0)
+    {
+        if (!bcmolt_status_pack(this->alarm_status, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_epon_denied_link_overhead_profile_violation_data_get_packed_length(const bcmolt_epon_denied_link_overhead_profile_violation_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_EPON_DENIED_LINK_OVERHEAD_PROFILE_VIOLATION_ID_ALARM_STATUS)) != 0)
+    {
+        count += 1;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_denied_link_overhead_profile_violation_data_unpack(bcmolt_epon_denied_link_overhead_profile_violation_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_DENIED_LINK_OVERHEAD_PROFILE_VIOLATION_ID_ALARM_STATUS)) != 0)
+    {
+        if (!bcmolt_status_unpack(&this->alarm_status, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_denied_link_overhead_profile_violation_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_DENIED_LINK_OVERHEAD_PROFILE_VIOLATION_ID_ALARM_STATUS)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_denied_link_overhead_profile_violation_data_bounds_check(const bcmolt_epon_denied_link_overhead_profile_violation_data *this, bcmolt_presence_mask fields_present, bcmolt_epon_denied_link_overhead_profile_violation_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_DENIED_LINK_OVERHEAD_PROFILE_VIOLATION_ID_ALARM_STATUS)) != 0)
+    {
+        switch (this->alarm_status)
+        {
+            case BCMOLT_STATUS_OFF:
+                break;
+            case BCMOLT_STATUS_ON:
+                break;
+            case BCMOLT_STATUS_NO_CHANGE:
+                break;
+            default:
+                *failed_prop = BCMOLT_EPON_DENIED_LINK_OVERHEAD_PROFILE_VIOLATION_ID_ALARM_STATUS;
+                return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_epon_denied_link_range_violation_data_set_default(bcmolt_epon_denied_link_range_violation_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_DENIED_LINK_RANGE_VIOLATION_ID_ALARM_STATUS)) != 0)
+    {
+        this->alarm_status.range = (bcmolt_time_quanta) 0;
+        this->alarm_status.alarm_status = BCMOLT_STATUS_OFF;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_denied_link_range_violation_data_pack(const bcmolt_epon_denied_link_range_violation_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_DENIED_LINK_RANGE_VIOLATION_ID_ALARM_STATUS)) != 0)
+    {
+        if (!bcmolt_range_status_pack(&this->alarm_status, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_epon_denied_link_range_violation_data_get_packed_length(const bcmolt_epon_denied_link_range_violation_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_EPON_DENIED_LINK_RANGE_VIOLATION_ID_ALARM_STATUS)) != 0)
+    {
+        count += 5;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_denied_link_range_violation_data_unpack(bcmolt_epon_denied_link_range_violation_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_DENIED_LINK_RANGE_VIOLATION_ID_ALARM_STATUS)) != 0)
+    {
+        if (!bcmolt_range_status_unpack(&this->alarm_status, buf, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_denied_link_range_violation_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_DENIED_LINK_RANGE_VIOLATION_ID_ALARM_STATUS)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 5))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_denied_link_range_violation_data_bounds_check(const bcmolt_epon_denied_link_range_violation_data *this, bcmolt_presence_mask fields_present, bcmolt_epon_denied_link_range_violation_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_DENIED_LINK_RANGE_VIOLATION_ID_ALARM_STATUS)) != 0)
+    {
+        if (!bcmolt_range_status_bounds_check(&this->alarm_status))
+        {
+            *failed_prop = BCMOLT_EPON_DENIED_LINK_RANGE_VIOLATION_ID_ALARM_STATUS;
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_epon_denied_link_rogue_violation_data_set_default(bcmolt_epon_denied_link_rogue_violation_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_DENIED_LINK_ROGUE_VIOLATION_ID_ALARM_STATUS)) != 0)
+    {
+        this->alarm_status.denied_llid = (bcmolt_epon_llid) 0;
+        this->alarm_status.denied_range = (bcmolt_time_quanta) 0;
+        this->alarm_status.alarm_status = BCMOLT_STATUS_OFF;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_denied_link_rogue_violation_data_pack(const bcmolt_epon_denied_link_rogue_violation_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_DENIED_LINK_ROGUE_VIOLATION_ID_ALARM_STATUS)) != 0)
+    {
+        if (!bcmolt_rogue_status_pack(&this->alarm_status, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_epon_denied_link_rogue_violation_data_get_packed_length(const bcmolt_epon_denied_link_rogue_violation_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_EPON_DENIED_LINK_ROGUE_VIOLATION_ID_ALARM_STATUS)) != 0)
+    {
+        count += 7;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_denied_link_rogue_violation_data_unpack(bcmolt_epon_denied_link_rogue_violation_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_DENIED_LINK_ROGUE_VIOLATION_ID_ALARM_STATUS)) != 0)
+    {
+        if (!bcmolt_rogue_status_unpack(&this->alarm_status, buf, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_denied_link_rogue_violation_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_DENIED_LINK_ROGUE_VIOLATION_ID_ALARM_STATUS)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 7))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_denied_link_rogue_violation_data_bounds_check(const bcmolt_epon_denied_link_rogue_violation_data *this, bcmolt_presence_mask fields_present, bcmolt_epon_denied_link_rogue_violation_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_DENIED_LINK_ROGUE_VIOLATION_ID_ALARM_STATUS)) != 0)
+    {
+        if (!bcmolt_rogue_status_bounds_check(&this->alarm_status))
+        {
+            *failed_prop = BCMOLT_EPON_DENIED_LINK_ROGUE_VIOLATION_ID_ALARM_STATUS;
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_epon_denied_link_system_resource_violation_data_set_default(bcmolt_epon_denied_link_system_resource_violation_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_DENIED_LINK_SYSTEM_RESOURCE_VIOLATION_ID_ALARM_STATUS)) != 0)
+    {
+        this->alarm_status = BCMOLT_STATUS_OFF;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_denied_link_system_resource_violation_data_pack(const bcmolt_epon_denied_link_system_resource_violation_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_DENIED_LINK_SYSTEM_RESOURCE_VIOLATION_ID_ALARM_STATUS)) != 0)
+    {
+        if (!bcmolt_status_pack(this->alarm_status, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_epon_denied_link_system_resource_violation_data_get_packed_length(const bcmolt_epon_denied_link_system_resource_violation_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_EPON_DENIED_LINK_SYSTEM_RESOURCE_VIOLATION_ID_ALARM_STATUS)) != 0)
+    {
+        count += 1;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_denied_link_system_resource_violation_data_unpack(bcmolt_epon_denied_link_system_resource_violation_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_DENIED_LINK_SYSTEM_RESOURCE_VIOLATION_ID_ALARM_STATUS)) != 0)
+    {
+        if (!bcmolt_status_unpack(&this->alarm_status, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_denied_link_system_resource_violation_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_DENIED_LINK_SYSTEM_RESOURCE_VIOLATION_ID_ALARM_STATUS)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_denied_link_system_resource_violation_data_bounds_check(const bcmolt_epon_denied_link_system_resource_violation_data *this, bcmolt_presence_mask fields_present, bcmolt_epon_denied_link_system_resource_violation_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_DENIED_LINK_SYSTEM_RESOURCE_VIOLATION_ID_ALARM_STATUS)) != 0)
+    {
+        switch (this->alarm_status)
+        {
+            case BCMOLT_STATUS_OFF:
+                break;
+            case BCMOLT_STATUS_ON:
+                break;
+            case BCMOLT_STATUS_NO_CHANGE:
+                break;
+            default:
+                *failed_prop = BCMOLT_EPON_DENIED_LINK_SYSTEM_RESOURCE_VIOLATION_ID_ALARM_STATUS;
+                return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_epon_denied_link_tdm_channels_exhausted_data_set_default(bcmolt_epon_denied_link_tdm_channels_exhausted_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_DENIED_LINK_TDM_CHANNELS_EXHAUSTED_ID_ALARM_STATUS)) != 0)
+    {
+        this->alarm_status = BCMOLT_STATUS_OFF;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_denied_link_tdm_channels_exhausted_data_pack(const bcmolt_epon_denied_link_tdm_channels_exhausted_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_DENIED_LINK_TDM_CHANNELS_EXHAUSTED_ID_ALARM_STATUS)) != 0)
+    {
+        if (!bcmolt_status_pack(this->alarm_status, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_epon_denied_link_tdm_channels_exhausted_data_get_packed_length(const bcmolt_epon_denied_link_tdm_channels_exhausted_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_EPON_DENIED_LINK_TDM_CHANNELS_EXHAUSTED_ID_ALARM_STATUS)) != 0)
+    {
+        count += 1;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_denied_link_tdm_channels_exhausted_data_unpack(bcmolt_epon_denied_link_tdm_channels_exhausted_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_DENIED_LINK_TDM_CHANNELS_EXHAUSTED_ID_ALARM_STATUS)) != 0)
+    {
+        if (!bcmolt_status_unpack(&this->alarm_status, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_denied_link_tdm_channels_exhausted_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_DENIED_LINK_TDM_CHANNELS_EXHAUSTED_ID_ALARM_STATUS)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_denied_link_tdm_channels_exhausted_data_bounds_check(const bcmolt_epon_denied_link_tdm_channels_exhausted_data *this, bcmolt_presence_mask fields_present, bcmolt_epon_denied_link_tdm_channels_exhausted_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_DENIED_LINK_TDM_CHANNELS_EXHAUSTED_ID_ALARM_STATUS)) != 0)
+    {
+        switch (this->alarm_status)
+        {
+            case BCMOLT_STATUS_OFF:
+                break;
+            case BCMOLT_STATUS_ON:
+                break;
+            case BCMOLT_STATUS_NO_CHANGE:
+                break;
+            default:
+                *failed_prop = BCMOLT_EPON_DENIED_LINK_TDM_CHANNELS_EXHAUSTED_ID_ALARM_STATUS;
+                return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_epon_denied_link_unknown_link_violation_data_set_default(bcmolt_epon_denied_link_unknown_link_violation_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_DENIED_LINK_UNKNOWN_LINK_VIOLATION_ID_ALARM_STATUS)) != 0)
+    {
+        this->alarm_status.link_rate = BCMOLT_EPON_LINK_RATE_TEN_TEN;
+        this->alarm_status.alarm_status = BCMOLT_STATUS_OFF;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_denied_link_unknown_link_violation_data_pack(const bcmolt_epon_denied_link_unknown_link_violation_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_DENIED_LINK_UNKNOWN_LINK_VIOLATION_ID_ALARM_STATUS)) != 0)
+    {
+        if (!bcmolt_unknown_link_status_pack(&this->alarm_status, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_epon_denied_link_unknown_link_violation_data_get_packed_length(const bcmolt_epon_denied_link_unknown_link_violation_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_EPON_DENIED_LINK_UNKNOWN_LINK_VIOLATION_ID_ALARM_STATUS)) != 0)
+    {
+        count += 3;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_denied_link_unknown_link_violation_data_unpack(bcmolt_epon_denied_link_unknown_link_violation_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_DENIED_LINK_UNKNOWN_LINK_VIOLATION_ID_ALARM_STATUS)) != 0)
+    {
+        if (!bcmolt_unknown_link_status_unpack(&this->alarm_status, buf, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_denied_link_unknown_link_violation_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_DENIED_LINK_UNKNOWN_LINK_VIOLATION_ID_ALARM_STATUS)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 3))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_denied_link_unknown_link_violation_data_bounds_check(const bcmolt_epon_denied_link_unknown_link_violation_data *this, bcmolt_presence_mask fields_present, bcmolt_epon_denied_link_unknown_link_violation_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_DENIED_LINK_UNKNOWN_LINK_VIOLATION_ID_ALARM_STATUS)) != 0)
+    {
+        if (!bcmolt_unknown_link_status_bounds_check(&this->alarm_status))
+        {
+            *failed_prop = BCMOLT_EPON_DENIED_LINK_UNKNOWN_LINK_VIOLATION_ID_ALARM_STATUS;
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_epon_denied_link_upstream_bandwidth_violation_data_set_default(bcmolt_epon_denied_link_upstream_bandwidth_violation_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_DENIED_LINK_UPSTREAM_BANDWIDTH_VIOLATION_ID_ALARM_STATUS)) != 0)
+    {
+        this->alarm_status = BCMOLT_STATUS_OFF;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_denied_link_upstream_bandwidth_violation_data_pack(const bcmolt_epon_denied_link_upstream_bandwidth_violation_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_DENIED_LINK_UPSTREAM_BANDWIDTH_VIOLATION_ID_ALARM_STATUS)) != 0)
+    {
+        if (!bcmolt_status_pack(this->alarm_status, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_epon_denied_link_upstream_bandwidth_violation_data_get_packed_length(const bcmolt_epon_denied_link_upstream_bandwidth_violation_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_EPON_DENIED_LINK_UPSTREAM_BANDWIDTH_VIOLATION_ID_ALARM_STATUS)) != 0)
+    {
+        count += 1;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_denied_link_upstream_bandwidth_violation_data_unpack(bcmolt_epon_denied_link_upstream_bandwidth_violation_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_DENIED_LINK_UPSTREAM_BANDWIDTH_VIOLATION_ID_ALARM_STATUS)) != 0)
+    {
+        if (!bcmolt_status_unpack(&this->alarm_status, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_denied_link_upstream_bandwidth_violation_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_DENIED_LINK_UPSTREAM_BANDWIDTH_VIOLATION_ID_ALARM_STATUS)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_denied_link_upstream_bandwidth_violation_data_bounds_check(const bcmolt_epon_denied_link_upstream_bandwidth_violation_data *this, bcmolt_presence_mask fields_present, bcmolt_epon_denied_link_upstream_bandwidth_violation_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_DENIED_LINK_UPSTREAM_BANDWIDTH_VIOLATION_ID_ALARM_STATUS)) != 0)
+    {
+        switch (this->alarm_status)
+        {
+            case BCMOLT_STATUS_OFF:
+                break;
+            case BCMOLT_STATUS_ON:
+                break;
+            case BCMOLT_STATUS_NO_CHANGE:
+                break;
+            default:
+                *failed_prop = BCMOLT_EPON_DENIED_LINK_UPSTREAM_BANDWIDTH_VIOLATION_ID_ALARM_STATUS;
+                return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_epon_denied_link_auto_cfg_data_set_default(bcmolt_epon_denied_link_auto_cfg_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_DENIED_LINK_AUTO_CFG_ID_LASER_ON_OFF_VIOLATION)) != 0)
+    {
+        this->laser_on_off_violation = BCMOS_FALSE;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_DENIED_LINK_AUTO_CFG_ID_LLID_POOL_EMPTY_VIOLATION)) != 0)
+    {
+        this->llid_pool_empty_violation = BCMOS_FALSE;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_DENIED_LINK_AUTO_CFG_ID_MAX_LINK_VIOLATION)) != 0)
+    {
+        this->max_link_violation = BCMOS_FALSE;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_DENIED_LINK_AUTO_CFG_ID_OVERHEAD_PROFILE_VIOLATION)) != 0)
+    {
+        this->overhead_profile_violation = BCMOS_FALSE;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_DENIED_LINK_AUTO_CFG_ID_RANGE_VIOLATION)) != 0)
+    {
+        this->range_violation = BCMOS_FALSE;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_DENIED_LINK_AUTO_CFG_ID_ROGUE_VIOLATION)) != 0)
+    {
+        this->rogue_violation = BCMOS_FALSE;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_DENIED_LINK_AUTO_CFG_ID_SYSTEM_RESOURCE_VIOLATION)) != 0)
+    {
+        this->system_resource_violation = BCMOS_FALSE;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_DENIED_LINK_AUTO_CFG_ID_TDM_CHANNELS_EXHAUSTED)) != 0)
+    {
+        this->tdm_channels_exhausted = BCMOS_FALSE;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_DENIED_LINK_AUTO_CFG_ID_UNKNOWN_LINK_VIOLATION)) != 0)
+    {
+        this->unknown_link_violation = BCMOS_FALSE;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_DENIED_LINK_AUTO_CFG_ID_UPSTREAM_BANDWIDTH_VIOLATION)) != 0)
+    {
+        this->upstream_bandwidth_violation = BCMOS_FALSE;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_denied_link_auto_cfg_data_pack(const bcmolt_epon_denied_link_auto_cfg_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_DENIED_LINK_AUTO_CFG_ID_LASER_ON_OFF_VIOLATION)) != 0)
+    {
+        if (!bcmolt_buf_write_bool(buf, this->laser_on_off_violation))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_DENIED_LINK_AUTO_CFG_ID_LLID_POOL_EMPTY_VIOLATION)) != 0)
+    {
+        if (!bcmolt_buf_write_bool(buf, this->llid_pool_empty_violation))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_DENIED_LINK_AUTO_CFG_ID_MAX_LINK_VIOLATION)) != 0)
+    {
+        if (!bcmolt_buf_write_bool(buf, this->max_link_violation))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_DENIED_LINK_AUTO_CFG_ID_OVERHEAD_PROFILE_VIOLATION)) != 0)
+    {
+        if (!bcmolt_buf_write_bool(buf, this->overhead_profile_violation))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_DENIED_LINK_AUTO_CFG_ID_RANGE_VIOLATION)) != 0)
+    {
+        if (!bcmolt_buf_write_bool(buf, this->range_violation))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_DENIED_LINK_AUTO_CFG_ID_ROGUE_VIOLATION)) != 0)
+    {
+        if (!bcmolt_buf_write_bool(buf, this->rogue_violation))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_DENIED_LINK_AUTO_CFG_ID_SYSTEM_RESOURCE_VIOLATION)) != 0)
+    {
+        if (!bcmolt_buf_write_bool(buf, this->system_resource_violation))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_DENIED_LINK_AUTO_CFG_ID_TDM_CHANNELS_EXHAUSTED)) != 0)
+    {
+        if (!bcmolt_buf_write_bool(buf, this->tdm_channels_exhausted))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_DENIED_LINK_AUTO_CFG_ID_UNKNOWN_LINK_VIOLATION)) != 0)
+    {
+        if (!bcmolt_buf_write_bool(buf, this->unknown_link_violation))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_DENIED_LINK_AUTO_CFG_ID_UPSTREAM_BANDWIDTH_VIOLATION)) != 0)
+    {
+        if (!bcmolt_buf_write_bool(buf, this->upstream_bandwidth_violation))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_epon_denied_link_auto_cfg_data_get_packed_length(const bcmolt_epon_denied_link_auto_cfg_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_EPON_DENIED_LINK_AUTO_CFG_ID_LASER_ON_OFF_VIOLATION)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_DENIED_LINK_AUTO_CFG_ID_LLID_POOL_EMPTY_VIOLATION)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_DENIED_LINK_AUTO_CFG_ID_MAX_LINK_VIOLATION)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_DENIED_LINK_AUTO_CFG_ID_OVERHEAD_PROFILE_VIOLATION)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_DENIED_LINK_AUTO_CFG_ID_RANGE_VIOLATION)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_DENIED_LINK_AUTO_CFG_ID_ROGUE_VIOLATION)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_DENIED_LINK_AUTO_CFG_ID_SYSTEM_RESOURCE_VIOLATION)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_DENIED_LINK_AUTO_CFG_ID_TDM_CHANNELS_EXHAUSTED)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_DENIED_LINK_AUTO_CFG_ID_UNKNOWN_LINK_VIOLATION)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_DENIED_LINK_AUTO_CFG_ID_UPSTREAM_BANDWIDTH_VIOLATION)) != 0)
+    {
+        count += 1;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_denied_link_auto_cfg_data_unpack(bcmolt_epon_denied_link_auto_cfg_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_DENIED_LINK_AUTO_CFG_ID_LASER_ON_OFF_VIOLATION)) != 0)
+    {
+        if (!bcmolt_buf_read_bool(buf, &this->laser_on_off_violation))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_DENIED_LINK_AUTO_CFG_ID_LLID_POOL_EMPTY_VIOLATION)) != 0)
+    {
+        if (!bcmolt_buf_read_bool(buf, &this->llid_pool_empty_violation))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_DENIED_LINK_AUTO_CFG_ID_MAX_LINK_VIOLATION)) != 0)
+    {
+        if (!bcmolt_buf_read_bool(buf, &this->max_link_violation))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_DENIED_LINK_AUTO_CFG_ID_OVERHEAD_PROFILE_VIOLATION)) != 0)
+    {
+        if (!bcmolt_buf_read_bool(buf, &this->overhead_profile_violation))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_DENIED_LINK_AUTO_CFG_ID_RANGE_VIOLATION)) != 0)
+    {
+        if (!bcmolt_buf_read_bool(buf, &this->range_violation))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_DENIED_LINK_AUTO_CFG_ID_ROGUE_VIOLATION)) != 0)
+    {
+        if (!bcmolt_buf_read_bool(buf, &this->rogue_violation))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_DENIED_LINK_AUTO_CFG_ID_SYSTEM_RESOURCE_VIOLATION)) != 0)
+    {
+        if (!bcmolt_buf_read_bool(buf, &this->system_resource_violation))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_DENIED_LINK_AUTO_CFG_ID_TDM_CHANNELS_EXHAUSTED)) != 0)
+    {
+        if (!bcmolt_buf_read_bool(buf, &this->tdm_channels_exhausted))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_DENIED_LINK_AUTO_CFG_ID_UNKNOWN_LINK_VIOLATION)) != 0)
+    {
+        if (!bcmolt_buf_read_bool(buf, &this->unknown_link_violation))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_DENIED_LINK_AUTO_CFG_ID_UPSTREAM_BANDWIDTH_VIOLATION)) != 0)
+    {
+        if (!bcmolt_buf_read_bool(buf, &this->upstream_bandwidth_violation))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_denied_link_auto_cfg_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_DENIED_LINK_AUTO_CFG_ID_LASER_ON_OFF_VIOLATION)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_DENIED_LINK_AUTO_CFG_ID_LLID_POOL_EMPTY_VIOLATION)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_DENIED_LINK_AUTO_CFG_ID_MAX_LINK_VIOLATION)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_DENIED_LINK_AUTO_CFG_ID_OVERHEAD_PROFILE_VIOLATION)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_DENIED_LINK_AUTO_CFG_ID_RANGE_VIOLATION)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_DENIED_LINK_AUTO_CFG_ID_ROGUE_VIOLATION)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_DENIED_LINK_AUTO_CFG_ID_SYSTEM_RESOURCE_VIOLATION)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_DENIED_LINK_AUTO_CFG_ID_TDM_CHANNELS_EXHAUSTED)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_DENIED_LINK_AUTO_CFG_ID_UNKNOWN_LINK_VIOLATION)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_DENIED_LINK_AUTO_CFG_ID_UPSTREAM_BANDWIDTH_VIOLATION)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_denied_link_auto_cfg_data_bounds_check(const bcmolt_epon_denied_link_auto_cfg_data *this, bcmolt_presence_mask fields_present, bcmolt_epon_denied_link_auto_cfg_id *failed_prop)
+{
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_epon_link_key_set_default(bcmolt_epon_link_key *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_KEY_ID_EPON_NI)) != 0)
+    {
+        this->epon_ni = (bcmolt_epon_ni) 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_KEY_ID_MAC_ADDRESS)) != 0)
+    {
+        bcmos_mac_address_init(&this->mac_address);
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_link_key_pack(const bcmolt_epon_link_key *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_KEY_ID_EPON_NI)) != 0)
+    {
+        if (!bcmolt_buf_write_u16(buf, (uint16_t) this->epon_ni))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_KEY_ID_MAC_ADDRESS)) != 0)
+    {
+        if (!bcmolt_buf_write_mac_address(buf, this->mac_address))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_epon_link_key_get_packed_length(const bcmolt_epon_link_key *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_KEY_ID_EPON_NI)) != 0)
+    {
+        count += 2;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_KEY_ID_MAC_ADDRESS)) != 0)
+    {
+        count += 6;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_link_key_unpack(bcmolt_epon_link_key *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_KEY_ID_EPON_NI)) != 0)
+    {
+        if (!bcmolt_buf_read_u16(buf, (uint16_t *) &this->epon_ni))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_KEY_ID_MAC_ADDRESS)) != 0)
+    {
+        if (!bcmolt_buf_read_mac_address(buf, &this->mac_address))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_link_key_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_KEY_ID_EPON_NI)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 2))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_KEY_ID_MAC_ADDRESS)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 6))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_link_key_bounds_check(const bcmolt_epon_link_key *this, bcmolt_presence_mask fields_present, bcmolt_epon_link_key_id *failed_prop)
+{
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_epon_link_cfg_data_set_default(bcmolt_epon_link_cfg_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_CFG_ID_LINK_RATE)) != 0)
+    {
+        this->link_rate = BCMOLT_EPON_LINK_RATE_TEN_TEN;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_CFG_ID_STATE_FLAGS)) != 0)
+    {
+        this->state_flags = (bcmolt_epon_link_state_flags) 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_CFG_ID_LLID)) != 0)
+    {
+        this->llid = (bcmolt_epon_llid) 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_CFG_ID_LASER_ON_TIME_TQ)) != 0)
+    {
+        this->laser_on_time_tq = (bcmolt_time_quanta) 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_CFG_ID_LASER_OFF_TIME_TQ)) != 0)
+    {
+        this->laser_off_time_tq = (bcmolt_time_quanta) 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_CFG_ID_RANGE_VALUE_TQ)) != 0)
+    {
+        this->range_value_tq = (bcmolt_time_quanta) 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_CFG_ID_DISTANCE)) != 0)
+    {
+        this->distance = (bcmolt_meters) 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_CFG_ID_ALARM_STATE)) != 0)
+    {
+        this->alarm_state.key_exchange_failure = BCMOLT_STATUS_OFF;
+        this->alarm_state.invalid_mpcp_report_received = BCMOLT_STATUS_OFF;
+        this->alarm_state.mpcp_report_timeout = BCMOLT_STATUS_OFF;
+        this->alarm_state.oam_keepalive_timeout = BCMOLT_STATUS_OFF;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_CFG_ID_TUNNEL_ID)) != 0)
+    {
+        this->tunnel_id = (bcmolt_epon_tunnel_id) 2164260864UL;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_CFG_ID_ONU_ID)) != 0)
+    {
+        this->onu_id = (bcmolt_epon_onu_id) 255;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_CFG_ID_MIN_LASER_OVERHEAD)) != 0)
+    {
+        this->min_laser_overhead.laser_on_time = (bcmolt_time_quanta) 32;
+        this->min_laser_overhead.laser_off_time = (bcmolt_time_quanta) 32;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_CFG_ID_KEY_EXCHANGE_CONFIG)) != 0)
+    {
+        this->key_exchange_config.oam_type = BCMOLT_EPON_OAM_TYPE_BROADCOM;
+        this->key_exchange_config.period = 0;
+        this->key_exchange_config.direction = BCMOLT_EPON_ENCRYPTION_DIRECTION_DOWNSTREAM_ONLY;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_CFG_ID_EPON_ENCRYPTION)) != 0)
+    {
+        this->epon_encryption.downstream_mode = BCMOLT_EPON_ENCRYPTION_MODE_NO_ENCRYPTION;
+        this->epon_encryption.downstream_key_choice = BCMOLT_EPON_KEY_CHOICE_KEY_0;
+        this->epon_encryption.downstream_encryption_information.format = BCMOLT_EPON_ENCRYPTION_INFORMATION_FORMAT_CFB;
+        memset(this->epon_encryption.downstream_encryption_information.u.cfb.key, 0, sizeof(this->epon_encryption.downstream_encryption_information.u.cfb.key));
+        this->epon_encryption.upstream_mode = BCMOLT_EPON_ENCRYPTION_MODE_NO_ENCRYPTION;
+        this->epon_encryption.upstream_key_choice = BCMOLT_EPON_KEY_CHOICE_KEY_0;
+        this->epon_encryption.upstream_encryption_information.format = BCMOLT_EPON_ENCRYPTION_INFORMATION_FORMAT_CFB;
+        memset(this->epon_encryption.upstream_encryption_information.u.cfb.key, 0, sizeof(this->epon_encryption.upstream_encryption_information.u.cfb.key));
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_CFG_ID_FEC_ENABLE)) != 0)
+    {
+        this->fec_enable.upstream = BCMOLT_EPON_LINK_FEC_STATE_USE_DEFAULT;
+        this->fec_enable.downstream = BCMOLT_EPON_LINK_FEC_STATE_USE_DEFAULT;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_CFG_ID_OAM_HEARTBEAT_CONFIG)) != 0)
+    {
+        this->oam_heartbeat_config.send_period = 0;
+        this->oam_heartbeat_config.transmit_frame.len = 0;
+        this->oam_heartbeat_config.transmit_frame.val = NULL;
+        this->oam_heartbeat_config.ignored_receive_frame_template.frame_octets.len = 0;
+        this->oam_heartbeat_config.ignored_receive_frame_template.frame_octets.val = NULL;
+        this->oam_heartbeat_config.ignored_receive_frame_template.mask_octets.len = 0;
+        this->oam_heartbeat_config.ignored_receive_frame_template.mask_octets.val = NULL;
+        this->oam_heartbeat_config.receive_timeout = 1;
+        this->oam_heartbeat_config.maximum_receive_size = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_CFG_ID_UPSTREAM_BANDWIDTH)) != 0)
+    {
+        this->upstream_bandwidth.polling_interval_us = BCMOLT_POLLING_INTERVAL_AUTOMATIC;
+        this->upstream_bandwidth.grant_threshold_tq = (bcmolt_time_quanta) 0;
+        this->upstream_bandwidth.min_schedulershaper.bandwidth_Kbps = (bcmolt_bandwidth_Kbps) 0;
+        this->upstream_bandwidth.min_schedulershaper.max_burst_size_tq = (bcmolt_time_quanta) 0;
+        this->upstream_bandwidth.min_schedulershaper.priority = 0;
+        this->upstream_bandwidth.min_schedulershaper.weight_tq = (bcmolt_time_quanta) 0;
+        this->upstream_bandwidth.max_schedulershaper.bandwidth_Kbps = (bcmolt_bandwidth_Kbps) 0;
+        this->upstream_bandwidth.max_schedulershaper.max_burst_size_tq = (bcmolt_time_quanta) 0;
+        this->upstream_bandwidth.max_schedulershaper.priority = 0;
+        this->upstream_bandwidth.max_schedulershaper.weight_tq = (bcmolt_time_quanta) 0;
+        this->upstream_bandwidth.tdm_grant_size_tq = (bcmolt_time_quanta) 0;
+        this->upstream_bandwidth.tdm_grant_interval_us = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_CFG_ID_UBD_INFO)) != 0)
+    {
+        this->ubd_info.actual_polling_interval = 0;
+        this->ubd_info.actual_grant_threshold_tq = (bcmolt_time_quanta) 0;
+        this->ubd_info.actual_min_schedulershaper.actual_mbs_tq = (bcmolt_time_quanta) 0;
+        this->ubd_info.actual_min_schedulershaper.actual_weight_tq = (bcmolt_time_quanta) 0;
+        this->ubd_info.actual_max_schedulershaper.actual_mbs_tq = (bcmolt_time_quanta) 0;
+        this->ubd_info.actual_max_schedulershaper.actual_weight_tq = (bcmolt_time_quanta) 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_CFG_ID_CLOCK_TRANSPORT_ENABLE)) != 0)
+    {
+        this->clock_transport_enable = BCMOS_TRUE;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_CFG_ID_PENDING_GRANTS)) != 0)
+    {
+        this->pending_grants = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_CFG_ID_LINK_TYPE)) != 0)
+    {
+        this->link_type = BCMOLT_EPON_LINK_TYPE_SYSTEM;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_link_cfg_data_pack(const bcmolt_epon_link_cfg_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_CFG_ID_LINK_RATE)) != 0)
+    {
+        if (!bcmolt_epon_link_rate_pack(this->link_rate, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_CFG_ID_STATE_FLAGS)) != 0)
+    {
+        if (!bcmolt_epon_link_state_flags_pack(this->state_flags, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_CFG_ID_LLID)) != 0)
+    {
+        if (!bcmolt_buf_write_u16(buf, (uint16_t) this->llid))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_CFG_ID_LASER_ON_TIME_TQ)) != 0)
+    {
+        if (!bcmolt_buf_write_u32(buf, (uint32_t) this->laser_on_time_tq))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_CFG_ID_LASER_OFF_TIME_TQ)) != 0)
+    {
+        if (!bcmolt_buf_write_u32(buf, (uint32_t) this->laser_off_time_tq))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_CFG_ID_RANGE_VALUE_TQ)) != 0)
+    {
+        if (!bcmolt_buf_write_u32(buf, (uint32_t) this->range_value_tq))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_CFG_ID_DISTANCE)) != 0)
+    {
+        if (!bcmolt_buf_write_u32(buf, (uint32_t) this->distance))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_CFG_ID_ALARM_STATE)) != 0)
+    {
+        if (!bcmolt_epon_link_alarm_state_pack(&this->alarm_state, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_CFG_ID_TUNNEL_ID)) != 0)
+    {
+        if (!bcmolt_buf_write_u32(buf, (uint32_t) this->tunnel_id))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_CFG_ID_ONU_ID)) != 0)
+    {
+        if (!bcmolt_buf_write_u8(buf, (uint8_t) this->onu_id))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_CFG_ID_MIN_LASER_OVERHEAD)) != 0)
+    {
+        if (!bcmolt_epon_laser_overhead_parameters_pack(&this->min_laser_overhead, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_CFG_ID_KEY_EXCHANGE_CONFIG)) != 0)
+    {
+        if (!bcmolt_epon_key_exchange_config_pack(&this->key_exchange_config, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_CFG_ID_EPON_ENCRYPTION)) != 0)
+    {
+        if (!bcmolt_epon_encryption_config_pack(&this->epon_encryption, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_CFG_ID_FEC_ENABLE)) != 0)
+    {
+        if (!bcmolt_epon_link_fec_en_pack(&this->fec_enable, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_CFG_ID_OAM_HEARTBEAT_CONFIG)) != 0)
+    {
+        if (!bcmolt_oam_heartbeat_config_pack(&this->oam_heartbeat_config, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_CFG_ID_UPSTREAM_BANDWIDTH)) != 0)
+    {
+        if (!bcmolt_upstream_bandwidth_distribution_pack(&this->upstream_bandwidth, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_CFG_ID_UBD_INFO)) != 0)
+    {
+        if (!bcmolt_ubd_info_pack(&this->ubd_info, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_CFG_ID_CLOCK_TRANSPORT_ENABLE)) != 0)
+    {
+        if (!bcmolt_buf_write_bool(buf, this->clock_transport_enable))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_CFG_ID_PENDING_GRANTS)) != 0)
+    {
+        if (!bcmolt_buf_write_u8(buf, this->pending_grants))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_CFG_ID_LINK_TYPE)) != 0)
+    {
+        if (!bcmolt_epon_link_type_pack(this->link_type, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_epon_link_cfg_data_get_packed_length(const bcmolt_epon_link_cfg_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_CFG_ID_LINK_RATE)) != 0)
+    {
+        count += 2;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_CFG_ID_STATE_FLAGS)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_CFG_ID_LLID)) != 0)
+    {
+        count += 2;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_CFG_ID_LASER_ON_TIME_TQ)) != 0)
+    {
+        count += 4;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_CFG_ID_LASER_OFF_TIME_TQ)) != 0)
+    {
+        count += 4;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_CFG_ID_RANGE_VALUE_TQ)) != 0)
+    {
+        count += 4;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_CFG_ID_DISTANCE)) != 0)
+    {
+        count += 4;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_CFG_ID_ALARM_STATE)) != 0)
+    {
+        count += 4;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_CFG_ID_TUNNEL_ID)) != 0)
+    {
+        count += 4;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_CFG_ID_ONU_ID)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_CFG_ID_MIN_LASER_OVERHEAD)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_CFG_ID_KEY_EXCHANGE_CONFIG)) != 0)
+    {
+        count += 5;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_CFG_ID_EPON_ENCRYPTION)) != 0)
+    {
+        count += bcmolt_epon_encryption_config_get_packed_length(&this->epon_encryption);
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_CFG_ID_FEC_ENABLE)) != 0)
+    {
+        count += 2;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_CFG_ID_OAM_HEARTBEAT_CONFIG)) != 0)
+    {
+        count += bcmolt_oam_heartbeat_config_get_packed_length(&this->oam_heartbeat_config);
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_CFG_ID_UPSTREAM_BANDWIDTH)) != 0)
+    {
+        count += 42;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_CFG_ID_UBD_INFO)) != 0)
+    {
+        count += 22;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_CFG_ID_CLOCK_TRANSPORT_ENABLE)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_CFG_ID_PENDING_GRANTS)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_CFG_ID_LINK_TYPE)) != 0)
+    {
+        count += 1;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_link_cfg_data_unpack(bcmolt_epon_link_cfg_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_CFG_ID_LINK_RATE)) != 0)
+    {
+        if (!bcmolt_epon_link_rate_unpack(&this->link_rate, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_CFG_ID_STATE_FLAGS)) != 0)
+    {
+        if (!bcmolt_epon_link_state_flags_unpack(&this->state_flags, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_CFG_ID_LLID)) != 0)
+    {
+        if (!bcmolt_buf_read_u16(buf, (uint16_t *) &this->llid))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_CFG_ID_LASER_ON_TIME_TQ)) != 0)
+    {
+        if (!bcmolt_buf_read_u32(buf, (uint32_t *) &this->laser_on_time_tq))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_CFG_ID_LASER_OFF_TIME_TQ)) != 0)
+    {
+        if (!bcmolt_buf_read_u32(buf, (uint32_t *) &this->laser_off_time_tq))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_CFG_ID_RANGE_VALUE_TQ)) != 0)
+    {
+        if (!bcmolt_buf_read_u32(buf, (uint32_t *) &this->range_value_tq))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_CFG_ID_DISTANCE)) != 0)
+    {
+        if (!bcmolt_buf_read_u32(buf, (uint32_t *) &this->distance))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_CFG_ID_ALARM_STATE)) != 0)
+    {
+        if (!bcmolt_epon_link_alarm_state_unpack(&this->alarm_state, buf, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_CFG_ID_TUNNEL_ID)) != 0)
+    {
+        if (!bcmolt_buf_read_u32(buf, (uint32_t *) &this->tunnel_id))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_CFG_ID_ONU_ID)) != 0)
+    {
+        if (!bcmolt_buf_read_u8(buf, (uint8_t *) &this->onu_id))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_CFG_ID_MIN_LASER_OVERHEAD)) != 0)
+    {
+        if (!bcmolt_epon_laser_overhead_parameters_unpack(&this->min_laser_overhead, buf, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_CFG_ID_KEY_EXCHANGE_CONFIG)) != 0)
+    {
+        if (!bcmolt_epon_key_exchange_config_unpack(&this->key_exchange_config, buf, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_CFG_ID_EPON_ENCRYPTION)) != 0)
+    {
+        if (!bcmolt_epon_encryption_config_unpack(&this->epon_encryption, buf, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_CFG_ID_FEC_ENABLE)) != 0)
+    {
+        if (!bcmolt_epon_link_fec_en_unpack(&this->fec_enable, buf, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_CFG_ID_OAM_HEARTBEAT_CONFIG)) != 0)
+    {
+        if (!bcmolt_oam_heartbeat_config_unpack(&this->oam_heartbeat_config, buf, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_CFG_ID_UPSTREAM_BANDWIDTH)) != 0)
+    {
+        if (!bcmolt_upstream_bandwidth_distribution_unpack(&this->upstream_bandwidth, buf, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_CFG_ID_UBD_INFO)) != 0)
+    {
+        if (!bcmolt_ubd_info_unpack(&this->ubd_info, buf, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_CFG_ID_CLOCK_TRANSPORT_ENABLE)) != 0)
+    {
+        if (!bcmolt_buf_read_bool(buf, &this->clock_transport_enable))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_CFG_ID_PENDING_GRANTS)) != 0)
+    {
+        if (!bcmolt_buf_read_u8(buf, &this->pending_grants))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_CFG_ID_LINK_TYPE)) != 0)
+    {
+        if (!bcmolt_epon_link_type_unpack(&this->link_type, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_link_cfg_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_CFG_ID_LINK_RATE)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 2))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_CFG_ID_STATE_FLAGS)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_CFG_ID_LLID)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 2))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_CFG_ID_LASER_ON_TIME_TQ)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 4))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_CFG_ID_LASER_OFF_TIME_TQ)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 4))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_CFG_ID_RANGE_VALUE_TQ)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 4))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_CFG_ID_DISTANCE)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 4))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_CFG_ID_ALARM_STATE)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 4))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_CFG_ID_TUNNEL_ID)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 4))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_CFG_ID_ONU_ID)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_CFG_ID_MIN_LASER_OVERHEAD)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_CFG_ID_KEY_EXCHANGE_CONFIG)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 5))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_CFG_ID_EPON_ENCRYPTION)) != 0)
+    {
+        if (!bcmolt_epon_encryption_config_scan(packed, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_CFG_ID_FEC_ENABLE)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 2))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_CFG_ID_OAM_HEARTBEAT_CONFIG)) != 0)
+    {
+        if (!bcmolt_oam_heartbeat_config_scan(packed, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_CFG_ID_UPSTREAM_BANDWIDTH)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 42))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_CFG_ID_UBD_INFO)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 22))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_CFG_ID_CLOCK_TRANSPORT_ENABLE)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_CFG_ID_PENDING_GRANTS)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_CFG_ID_LINK_TYPE)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_link_cfg_data_bounds_check(const bcmolt_epon_link_cfg_data *this, bcmolt_presence_mask fields_present, bcmolt_epon_link_cfg_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_CFG_ID_LINK_RATE)) != 0)
+    {
+        switch (this->link_rate)
+        {
+            case BCMOLT_EPON_LINK_RATE_TEN_TEN:
+                break;
+            case BCMOLT_EPON_LINK_RATE_TEN_ONE:
+                break;
+            case BCMOLT_EPON_LINK_RATE_ONE_ONE:
+                break;
+            default:
+                *failed_prop = BCMOLT_EPON_LINK_CFG_ID_LINK_RATE;
+                return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_CFG_ID_STATE_FLAGS)) != 0)
+    {
+        if ((this->state_flags & 0x00FE) != 0)
+        {
+            *failed_prop = BCMOLT_EPON_LINK_CFG_ID_STATE_FLAGS;
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_CFG_ID_ALARM_STATE)) != 0)
+    {
+        if (!bcmolt_epon_link_alarm_state_bounds_check(&this->alarm_state))
+        {
+            *failed_prop = BCMOLT_EPON_LINK_CFG_ID_ALARM_STATE;
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_CFG_ID_TUNNEL_ID)) != 0)
+    {
+        if (this->tunnel_id < (bcmolt_epon_tunnel_id) 2164260864UL)
+        {
+            *failed_prop = BCMOLT_EPON_LINK_CFG_ID_TUNNEL_ID;
+            return BCMOS_FALSE;
+        }
+
+        if (this->tunnel_id > (bcmolt_epon_tunnel_id) 2164264959UL)
+        {
+            *failed_prop = BCMOLT_EPON_LINK_CFG_ID_TUNNEL_ID;
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_CFG_ID_ONU_ID)) != 0)
+    {
+        if (this->onu_id > (bcmolt_epon_onu_id) 127)
+        {
+            *failed_prop = BCMOLT_EPON_LINK_CFG_ID_ONU_ID;
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_CFG_ID_MIN_LASER_OVERHEAD)) != 0)
+    {
+        if (!bcmolt_epon_laser_overhead_parameters_bounds_check(&this->min_laser_overhead))
+        {
+            *failed_prop = BCMOLT_EPON_LINK_CFG_ID_MIN_LASER_OVERHEAD;
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_CFG_ID_KEY_EXCHANGE_CONFIG)) != 0)
+    {
+        if (!bcmolt_epon_key_exchange_config_bounds_check(&this->key_exchange_config))
+        {
+            *failed_prop = BCMOLT_EPON_LINK_CFG_ID_KEY_EXCHANGE_CONFIG;
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_CFG_ID_EPON_ENCRYPTION)) != 0)
+    {
+        if (!bcmolt_epon_encryption_config_bounds_check(&this->epon_encryption))
+        {
+            *failed_prop = BCMOLT_EPON_LINK_CFG_ID_EPON_ENCRYPTION;
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_CFG_ID_FEC_ENABLE)) != 0)
+    {
+        if (!bcmolt_epon_link_fec_en_bounds_check(&this->fec_enable))
+        {
+            *failed_prop = BCMOLT_EPON_LINK_CFG_ID_FEC_ENABLE;
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_CFG_ID_OAM_HEARTBEAT_CONFIG)) != 0)
+    {
+        if (!bcmolt_oam_heartbeat_config_bounds_check(&this->oam_heartbeat_config))
+        {
+            *failed_prop = BCMOLT_EPON_LINK_CFG_ID_OAM_HEARTBEAT_CONFIG;
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_CFG_ID_UPSTREAM_BANDWIDTH)) != 0)
+    {
+        if (!bcmolt_upstream_bandwidth_distribution_bounds_check(&this->upstream_bandwidth))
+        {
+            *failed_prop = BCMOLT_EPON_LINK_CFG_ID_UPSTREAM_BANDWIDTH;
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_CFG_ID_UBD_INFO)) != 0)
+    {
+        if (!bcmolt_ubd_info_bounds_check(&this->ubd_info))
+        {
+            *failed_prop = BCMOLT_EPON_LINK_CFG_ID_UBD_INFO;
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_CFG_ID_LINK_TYPE)) != 0)
+    {
+        switch (this->link_type)
+        {
+            case BCMOLT_EPON_LINK_TYPE_SYSTEM:
+                break;
+            case BCMOLT_EPON_LINK_TYPE_DOWNSTREAM_ONLY:
+                break;
+            case BCMOLT_EPON_LINK_TYPE_BIDIRECTIONAL:
+                break;
+            default:
+                *failed_prop = BCMOLT_EPON_LINK_CFG_ID_LINK_TYPE;
+                return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_epon_link_stat_data_set_default(bcmolt_epon_link_stat_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_STAT_ID_RX_DATA_BYTES)) != 0)
+    {
+        this->rx_data_bytes = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_STAT_ID_RX_DATA_FRAMES)) != 0)
+    {
+        this->rx_data_frames = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_STAT_ID_RX_FRAMES_64)) != 0)
+    {
+        this->rx_frames_64 = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_STAT_ID_RX_FRAMES_65_127)) != 0)
+    {
+        this->rx_frames_65_127 = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_STAT_ID_RX_FRAMES_128_255)) != 0)
+    {
+        this->rx_frames_128_255 = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_STAT_ID_RX_FRAMES_256_511)) != 0)
+    {
+        this->rx_frames_256_511 = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_STAT_ID_RX_FRAMES_512_1023)) != 0)
+    {
+        this->rx_frames_512_1023 = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_STAT_ID_RX_FRAMES_1024_1518)) != 0)
+    {
+        this->rx_frames_1024_1518 = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_STAT_ID_RX_FRAMES_1519_2047)) != 0)
+    {
+        this->rx_frames_1519_2047 = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_STAT_ID_RX_FRAMES_2048_4095)) != 0)
+    {
+        this->rx_frames_2048_4095 = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_STAT_ID_RX_FRAMES_4096_9216)) != 0)
+    {
+        this->rx_frames_4096_9216 = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_STAT_ID_RX_FRAMES_9217_16383)) != 0)
+    {
+        this->rx_frames_9217_16383 = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_STAT_ID_RX_OAM_BYTES)) != 0)
+    {
+        this->rx_oam_bytes = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_STAT_ID_RX_OAM_FRAMES)) != 0)
+    {
+        this->rx_oam_frames = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_STAT_ID_RX_MPCP_FRAMES)) != 0)
+    {
+        this->rx_mpcp_frames = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_STAT_ID_RX_BROADCAST_FRAMES)) != 0)
+    {
+        this->rx_broadcast_frames = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_STAT_ID_RX_UNICAST_FRAMES)) != 0)
+    {
+        this->rx_unicast_frames = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_STAT_ID_RX_MULTICAST_FRAMES)) != 0)
+    {
+        this->rx_multicast_frames = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_STAT_ID_RX_REPORT_FRAMES)) != 0)
+    {
+        this->rx_report_frames = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_STAT_ID_RX_FCS_ERROR)) != 0)
+    {
+        this->rx_fcs_error = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_STAT_ID_RX_OVERSIZE_ERROR)) != 0)
+    {
+        this->rx_oversize_error = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_STAT_ID_RX_RUNT_ERROR)) != 0)
+    {
+        this->rx_runt_error = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_STAT_ID_RX_LINE_CODE_ERROR)) != 0)
+    {
+        this->rx_line_code_error = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_STAT_ID_RX_LINE_CODE_ERROR_MAX)) != 0)
+    {
+        this->rx_line_code_error_max = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_STAT_ID_TX_DATA_BYTES)) != 0)
+    {
+        this->tx_data_bytes = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_STAT_ID_TX_DATA_FRAMES)) != 0)
+    {
+        this->tx_data_frames = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_STAT_ID_TX_FRAMES_64)) != 0)
+    {
+        this->tx_frames_64 = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_STAT_ID_TX_FRAMES_65_127)) != 0)
+    {
+        this->tx_frames_65_127 = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_STAT_ID_TX_FRAMES_128_255)) != 0)
+    {
+        this->tx_frames_128_255 = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_STAT_ID_TX_FRAMES_256_511)) != 0)
+    {
+        this->tx_frames_256_511 = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_STAT_ID_TX_FRAMES_512_1023)) != 0)
+    {
+        this->tx_frames_512_1023 = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_STAT_ID_TX_FRAMES_1024_1518)) != 0)
+    {
+        this->tx_frames_1024_1518 = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_STAT_ID_TX_FRAMES_1519_2047)) != 0)
+    {
+        this->tx_frames_1519_2047 = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_STAT_ID_TX_FRAMES_2048_4095)) != 0)
+    {
+        this->tx_frames_2048_4095 = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_STAT_ID_TX_FRAMES_4096_9216)) != 0)
+    {
+        this->tx_frames_4096_9216 = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_STAT_ID_TX_FRAMES_9217_16383)) != 0)
+    {
+        this->tx_frames_9217_16383 = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_STAT_ID_TX_OAM_BYTES)) != 0)
+    {
+        this->tx_oam_bytes = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_STAT_ID_TX_OAM_FRAMES)) != 0)
+    {
+        this->tx_oam_frames = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_STAT_ID_TX_MPCP_FRAMES)) != 0)
+    {
+        this->tx_mpcp_frames = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_STAT_ID_TX_BROADCAST_FRAMES)) != 0)
+    {
+        this->tx_broadcast_frames = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_STAT_ID_TX_UNICAST_FRAMES)) != 0)
+    {
+        this->tx_unicast_frames = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_STAT_ID_TX_MULTICAST_FRAMES)) != 0)
+    {
+        this->tx_multicast_frames = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_STAT_ID_TX_GATES)) != 0)
+    {
+        this->tx_gates = 0;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_link_stat_data_pack(const bcmolt_epon_link_stat_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_STAT_ID_RX_DATA_BYTES)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->rx_data_bytes))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_STAT_ID_RX_DATA_FRAMES)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->rx_data_frames))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_STAT_ID_RX_FRAMES_64)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->rx_frames_64))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_STAT_ID_RX_FRAMES_65_127)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->rx_frames_65_127))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_STAT_ID_RX_FRAMES_128_255)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->rx_frames_128_255))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_STAT_ID_RX_FRAMES_256_511)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->rx_frames_256_511))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_STAT_ID_RX_FRAMES_512_1023)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->rx_frames_512_1023))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_STAT_ID_RX_FRAMES_1024_1518)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->rx_frames_1024_1518))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_STAT_ID_RX_FRAMES_1519_2047)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->rx_frames_1519_2047))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_STAT_ID_RX_FRAMES_2048_4095)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->rx_frames_2048_4095))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_STAT_ID_RX_FRAMES_4096_9216)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->rx_frames_4096_9216))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_STAT_ID_RX_FRAMES_9217_16383)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->rx_frames_9217_16383))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_STAT_ID_RX_OAM_BYTES)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->rx_oam_bytes))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_STAT_ID_RX_OAM_FRAMES)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->rx_oam_frames))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_STAT_ID_RX_MPCP_FRAMES)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->rx_mpcp_frames))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_STAT_ID_RX_BROADCAST_FRAMES)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->rx_broadcast_frames))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_STAT_ID_RX_UNICAST_FRAMES)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->rx_unicast_frames))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_STAT_ID_RX_MULTICAST_FRAMES)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->rx_multicast_frames))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_STAT_ID_RX_REPORT_FRAMES)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->rx_report_frames))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_STAT_ID_RX_FCS_ERROR)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->rx_fcs_error))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_STAT_ID_RX_OVERSIZE_ERROR)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->rx_oversize_error))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_STAT_ID_RX_RUNT_ERROR)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->rx_runt_error))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_STAT_ID_RX_LINE_CODE_ERROR)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->rx_line_code_error))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_STAT_ID_RX_LINE_CODE_ERROR_MAX)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->rx_line_code_error_max))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_STAT_ID_TX_DATA_BYTES)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->tx_data_bytes))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_STAT_ID_TX_DATA_FRAMES)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->tx_data_frames))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_STAT_ID_TX_FRAMES_64)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->tx_frames_64))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_STAT_ID_TX_FRAMES_65_127)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->tx_frames_65_127))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_STAT_ID_TX_FRAMES_128_255)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->tx_frames_128_255))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_STAT_ID_TX_FRAMES_256_511)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->tx_frames_256_511))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_STAT_ID_TX_FRAMES_512_1023)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->tx_frames_512_1023))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_STAT_ID_TX_FRAMES_1024_1518)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->tx_frames_1024_1518))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_STAT_ID_TX_FRAMES_1519_2047)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->tx_frames_1519_2047))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_STAT_ID_TX_FRAMES_2048_4095)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->tx_frames_2048_4095))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_STAT_ID_TX_FRAMES_4096_9216)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->tx_frames_4096_9216))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_STAT_ID_TX_FRAMES_9217_16383)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->tx_frames_9217_16383))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_STAT_ID_TX_OAM_BYTES)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->tx_oam_bytes))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_STAT_ID_TX_OAM_FRAMES)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->tx_oam_frames))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_STAT_ID_TX_MPCP_FRAMES)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->tx_mpcp_frames))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_STAT_ID_TX_BROADCAST_FRAMES)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->tx_broadcast_frames))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_STAT_ID_TX_UNICAST_FRAMES)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->tx_unicast_frames))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_STAT_ID_TX_MULTICAST_FRAMES)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->tx_multicast_frames))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_STAT_ID_TX_GATES)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->tx_gates))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_epon_link_stat_data_get_packed_length(const bcmolt_epon_link_stat_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_STAT_ID_RX_DATA_BYTES)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_STAT_ID_RX_DATA_FRAMES)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_STAT_ID_RX_FRAMES_64)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_STAT_ID_RX_FRAMES_65_127)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_STAT_ID_RX_FRAMES_128_255)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_STAT_ID_RX_FRAMES_256_511)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_STAT_ID_RX_FRAMES_512_1023)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_STAT_ID_RX_FRAMES_1024_1518)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_STAT_ID_RX_FRAMES_1519_2047)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_STAT_ID_RX_FRAMES_2048_4095)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_STAT_ID_RX_FRAMES_4096_9216)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_STAT_ID_RX_FRAMES_9217_16383)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_STAT_ID_RX_OAM_BYTES)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_STAT_ID_RX_OAM_FRAMES)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_STAT_ID_RX_MPCP_FRAMES)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_STAT_ID_RX_BROADCAST_FRAMES)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_STAT_ID_RX_UNICAST_FRAMES)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_STAT_ID_RX_MULTICAST_FRAMES)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_STAT_ID_RX_REPORT_FRAMES)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_STAT_ID_RX_FCS_ERROR)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_STAT_ID_RX_OVERSIZE_ERROR)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_STAT_ID_RX_RUNT_ERROR)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_STAT_ID_RX_LINE_CODE_ERROR)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_STAT_ID_RX_LINE_CODE_ERROR_MAX)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_STAT_ID_TX_DATA_BYTES)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_STAT_ID_TX_DATA_FRAMES)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_STAT_ID_TX_FRAMES_64)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_STAT_ID_TX_FRAMES_65_127)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_STAT_ID_TX_FRAMES_128_255)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_STAT_ID_TX_FRAMES_256_511)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_STAT_ID_TX_FRAMES_512_1023)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_STAT_ID_TX_FRAMES_1024_1518)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_STAT_ID_TX_FRAMES_1519_2047)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_STAT_ID_TX_FRAMES_2048_4095)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_STAT_ID_TX_FRAMES_4096_9216)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_STAT_ID_TX_FRAMES_9217_16383)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_STAT_ID_TX_OAM_BYTES)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_STAT_ID_TX_OAM_FRAMES)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_STAT_ID_TX_MPCP_FRAMES)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_STAT_ID_TX_BROADCAST_FRAMES)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_STAT_ID_TX_UNICAST_FRAMES)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_STAT_ID_TX_MULTICAST_FRAMES)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_STAT_ID_TX_GATES)) != 0)
+    {
+        count += 8;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_link_stat_data_unpack(bcmolt_epon_link_stat_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_STAT_ID_RX_DATA_BYTES)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->rx_data_bytes))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_STAT_ID_RX_DATA_FRAMES)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->rx_data_frames))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_STAT_ID_RX_FRAMES_64)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->rx_frames_64))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_STAT_ID_RX_FRAMES_65_127)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->rx_frames_65_127))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_STAT_ID_RX_FRAMES_128_255)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->rx_frames_128_255))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_STAT_ID_RX_FRAMES_256_511)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->rx_frames_256_511))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_STAT_ID_RX_FRAMES_512_1023)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->rx_frames_512_1023))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_STAT_ID_RX_FRAMES_1024_1518)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->rx_frames_1024_1518))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_STAT_ID_RX_FRAMES_1519_2047)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->rx_frames_1519_2047))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_STAT_ID_RX_FRAMES_2048_4095)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->rx_frames_2048_4095))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_STAT_ID_RX_FRAMES_4096_9216)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->rx_frames_4096_9216))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_STAT_ID_RX_FRAMES_9217_16383)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->rx_frames_9217_16383))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_STAT_ID_RX_OAM_BYTES)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->rx_oam_bytes))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_STAT_ID_RX_OAM_FRAMES)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->rx_oam_frames))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_STAT_ID_RX_MPCP_FRAMES)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->rx_mpcp_frames))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_STAT_ID_RX_BROADCAST_FRAMES)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->rx_broadcast_frames))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_STAT_ID_RX_UNICAST_FRAMES)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->rx_unicast_frames))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_STAT_ID_RX_MULTICAST_FRAMES)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->rx_multicast_frames))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_STAT_ID_RX_REPORT_FRAMES)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->rx_report_frames))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_STAT_ID_RX_FCS_ERROR)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->rx_fcs_error))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_STAT_ID_RX_OVERSIZE_ERROR)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->rx_oversize_error))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_STAT_ID_RX_RUNT_ERROR)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->rx_runt_error))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_STAT_ID_RX_LINE_CODE_ERROR)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->rx_line_code_error))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_STAT_ID_RX_LINE_CODE_ERROR_MAX)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->rx_line_code_error_max))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_STAT_ID_TX_DATA_BYTES)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->tx_data_bytes))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_STAT_ID_TX_DATA_FRAMES)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->tx_data_frames))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_STAT_ID_TX_FRAMES_64)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->tx_frames_64))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_STAT_ID_TX_FRAMES_65_127)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->tx_frames_65_127))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_STAT_ID_TX_FRAMES_128_255)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->tx_frames_128_255))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_STAT_ID_TX_FRAMES_256_511)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->tx_frames_256_511))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_STAT_ID_TX_FRAMES_512_1023)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->tx_frames_512_1023))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_STAT_ID_TX_FRAMES_1024_1518)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->tx_frames_1024_1518))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_STAT_ID_TX_FRAMES_1519_2047)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->tx_frames_1519_2047))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_STAT_ID_TX_FRAMES_2048_4095)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->tx_frames_2048_4095))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_STAT_ID_TX_FRAMES_4096_9216)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->tx_frames_4096_9216))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_STAT_ID_TX_FRAMES_9217_16383)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->tx_frames_9217_16383))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_STAT_ID_TX_OAM_BYTES)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->tx_oam_bytes))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_STAT_ID_TX_OAM_FRAMES)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->tx_oam_frames))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_STAT_ID_TX_MPCP_FRAMES)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->tx_mpcp_frames))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_STAT_ID_TX_BROADCAST_FRAMES)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->tx_broadcast_frames))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_STAT_ID_TX_UNICAST_FRAMES)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->tx_unicast_frames))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_STAT_ID_TX_MULTICAST_FRAMES)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->tx_multicast_frames))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_STAT_ID_TX_GATES)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->tx_gates))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_link_stat_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_STAT_ID_RX_DATA_BYTES)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_STAT_ID_RX_DATA_FRAMES)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_STAT_ID_RX_FRAMES_64)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_STAT_ID_RX_FRAMES_65_127)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_STAT_ID_RX_FRAMES_128_255)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_STAT_ID_RX_FRAMES_256_511)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_STAT_ID_RX_FRAMES_512_1023)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_STAT_ID_RX_FRAMES_1024_1518)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_STAT_ID_RX_FRAMES_1519_2047)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_STAT_ID_RX_FRAMES_2048_4095)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_STAT_ID_RX_FRAMES_4096_9216)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_STAT_ID_RX_FRAMES_9217_16383)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_STAT_ID_RX_OAM_BYTES)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_STAT_ID_RX_OAM_FRAMES)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_STAT_ID_RX_MPCP_FRAMES)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_STAT_ID_RX_BROADCAST_FRAMES)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_STAT_ID_RX_UNICAST_FRAMES)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_STAT_ID_RX_MULTICAST_FRAMES)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_STAT_ID_RX_REPORT_FRAMES)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_STAT_ID_RX_FCS_ERROR)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_STAT_ID_RX_OVERSIZE_ERROR)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_STAT_ID_RX_RUNT_ERROR)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_STAT_ID_RX_LINE_CODE_ERROR)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_STAT_ID_RX_LINE_CODE_ERROR_MAX)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_STAT_ID_TX_DATA_BYTES)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_STAT_ID_TX_DATA_FRAMES)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_STAT_ID_TX_FRAMES_64)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_STAT_ID_TX_FRAMES_65_127)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_STAT_ID_TX_FRAMES_128_255)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_STAT_ID_TX_FRAMES_256_511)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_STAT_ID_TX_FRAMES_512_1023)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_STAT_ID_TX_FRAMES_1024_1518)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_STAT_ID_TX_FRAMES_1519_2047)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_STAT_ID_TX_FRAMES_2048_4095)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_STAT_ID_TX_FRAMES_4096_9216)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_STAT_ID_TX_FRAMES_9217_16383)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_STAT_ID_TX_OAM_BYTES)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_STAT_ID_TX_OAM_FRAMES)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_STAT_ID_TX_MPCP_FRAMES)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_STAT_ID_TX_BROADCAST_FRAMES)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_STAT_ID_TX_UNICAST_FRAMES)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_STAT_ID_TX_MULTICAST_FRAMES)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_STAT_ID_TX_GATES)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_link_stat_data_bounds_check(const bcmolt_epon_link_stat_data *this, bcmolt_presence_mask fields_present, bcmolt_epon_link_stat_id *failed_prop)
+{
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_epon_link_stat_cfg_data_set_default(bcmolt_epon_link_stat_cfg_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_STAT_CFG_ID_CFG)) != 0)
+    {
+        this->cfg.trigger.type = BCMOLT_STAT_CONDITION_TYPE_NONE;
+        this->cfg.soak.active_soak_time = 0;
+        this->cfg.soak.clear_soak_time = 0;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_link_stat_cfg_data_pack(const bcmolt_epon_link_stat_cfg_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_STAT_CFG_ID_CFG)) != 0)
+    {
+        if (!bcmolt_stat_alarm_config_pack(&this->cfg, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_epon_link_stat_cfg_data_get_packed_length(const bcmolt_epon_link_stat_cfg_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_STAT_CFG_ID_CFG)) != 0)
+    {
+        count += bcmolt_stat_alarm_config_get_packed_length(&this->cfg);
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_link_stat_cfg_data_unpack(bcmolt_epon_link_stat_cfg_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_STAT_CFG_ID_CFG)) != 0)
+    {
+        if (!bcmolt_stat_alarm_config_unpack(&this->cfg, buf, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_link_stat_cfg_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_STAT_CFG_ID_CFG)) != 0)
+    {
+        if (!bcmolt_stat_alarm_config_scan(packed, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_link_stat_cfg_data_bounds_check(const bcmolt_epon_link_stat_cfg_data *this, bcmolt_presence_mask fields_present, bcmolt_epon_link_stat_cfg_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_STAT_CFG_ID_CFG)) != 0)
+    {
+        if (!bcmolt_stat_alarm_config_bounds_check(&this->cfg))
+        {
+            *failed_prop = BCMOLT_EPON_LINK_STAT_CFG_ID_CFG;
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_epon_link_duplicate_mpcp_registration_request_data_set_default(bcmolt_epon_link_duplicate_mpcp_registration_request_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_DUPLICATE_MPCP_REGISTRATION_REQUEST_ID_INITIAL_RANGE_TQ)) != 0)
+    {
+        this->initial_range_tq = (bcmolt_time_quanta) 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_DUPLICATE_MPCP_REGISTRATION_REQUEST_ID_CURRENT_RANGE_TQ)) != 0)
+    {
+        this->current_range_tq = (bcmolt_time_quanta) 0;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_link_duplicate_mpcp_registration_request_data_pack(const bcmolt_epon_link_duplicate_mpcp_registration_request_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_DUPLICATE_MPCP_REGISTRATION_REQUEST_ID_INITIAL_RANGE_TQ)) != 0)
+    {
+        if (!bcmolt_buf_write_u32(buf, (uint32_t) this->initial_range_tq))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_DUPLICATE_MPCP_REGISTRATION_REQUEST_ID_CURRENT_RANGE_TQ)) != 0)
+    {
+        if (!bcmolt_buf_write_u32(buf, (uint32_t) this->current_range_tq))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_epon_link_duplicate_mpcp_registration_request_data_get_packed_length(const bcmolt_epon_link_duplicate_mpcp_registration_request_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_DUPLICATE_MPCP_REGISTRATION_REQUEST_ID_INITIAL_RANGE_TQ)) != 0)
+    {
+        count += 4;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_DUPLICATE_MPCP_REGISTRATION_REQUEST_ID_CURRENT_RANGE_TQ)) != 0)
+    {
+        count += 4;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_link_duplicate_mpcp_registration_request_data_unpack(bcmolt_epon_link_duplicate_mpcp_registration_request_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_DUPLICATE_MPCP_REGISTRATION_REQUEST_ID_INITIAL_RANGE_TQ)) != 0)
+    {
+        if (!bcmolt_buf_read_u32(buf, (uint32_t *) &this->initial_range_tq))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_DUPLICATE_MPCP_REGISTRATION_REQUEST_ID_CURRENT_RANGE_TQ)) != 0)
+    {
+        if (!bcmolt_buf_read_u32(buf, (uint32_t *) &this->current_range_tq))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_link_duplicate_mpcp_registration_request_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_DUPLICATE_MPCP_REGISTRATION_REQUEST_ID_INITIAL_RANGE_TQ)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 4))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_DUPLICATE_MPCP_REGISTRATION_REQUEST_ID_CURRENT_RANGE_TQ)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 4))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_link_duplicate_mpcp_registration_request_data_bounds_check(const bcmolt_epon_link_duplicate_mpcp_registration_request_data *this, bcmolt_presence_mask fields_present, bcmolt_epon_link_duplicate_mpcp_registration_request_id *failed_prop)
+{
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_epon_link_key_exchange_failure_data_set_default(bcmolt_epon_link_key_exchange_failure_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_KEY_EXCHANGE_FAILURE_ID_ALARM_STATUS)) != 0)
+    {
+        this->alarm_status = BCMOLT_STATUS_OFF;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_link_key_exchange_failure_data_pack(const bcmolt_epon_link_key_exchange_failure_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_KEY_EXCHANGE_FAILURE_ID_ALARM_STATUS)) != 0)
+    {
+        if (!bcmolt_status_pack(this->alarm_status, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_epon_link_key_exchange_failure_data_get_packed_length(const bcmolt_epon_link_key_exchange_failure_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_KEY_EXCHANGE_FAILURE_ID_ALARM_STATUS)) != 0)
+    {
+        count += 1;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_link_key_exchange_failure_data_unpack(bcmolt_epon_link_key_exchange_failure_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_KEY_EXCHANGE_FAILURE_ID_ALARM_STATUS)) != 0)
+    {
+        if (!bcmolt_status_unpack(&this->alarm_status, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_link_key_exchange_failure_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_KEY_EXCHANGE_FAILURE_ID_ALARM_STATUS)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_link_key_exchange_failure_data_bounds_check(const bcmolt_epon_link_key_exchange_failure_data *this, bcmolt_presence_mask fields_present, bcmolt_epon_link_key_exchange_failure_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_KEY_EXCHANGE_FAILURE_ID_ALARM_STATUS)) != 0)
+    {
+        switch (this->alarm_status)
+        {
+            case BCMOLT_STATUS_OFF:
+                break;
+            case BCMOLT_STATUS_ON:
+                break;
+            case BCMOLT_STATUS_NO_CHANGE:
+                break;
+            default:
+                *failed_prop = BCMOLT_EPON_LINK_KEY_EXCHANGE_FAILURE_ID_ALARM_STATUS;
+                return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_epon_link_link_speed_mismatch_data_set_default(bcmolt_epon_link_link_speed_mismatch_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_LINK_SPEED_MISMATCH_ID_PREVIOUS_RATE)) != 0)
+    {
+        this->previous_rate = BCMOLT_EPON_LINK_RATE_TEN_TEN;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_LINK_SPEED_MISMATCH_ID_CURRENT_RATE)) != 0)
+    {
+        this->current_rate = BCMOLT_EPON_LINK_RATE_TEN_TEN;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_link_link_speed_mismatch_data_pack(const bcmolt_epon_link_link_speed_mismatch_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_LINK_SPEED_MISMATCH_ID_PREVIOUS_RATE)) != 0)
+    {
+        if (!bcmolt_epon_link_rate_pack(this->previous_rate, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_LINK_SPEED_MISMATCH_ID_CURRENT_RATE)) != 0)
+    {
+        if (!bcmolt_epon_link_rate_pack(this->current_rate, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_epon_link_link_speed_mismatch_data_get_packed_length(const bcmolt_epon_link_link_speed_mismatch_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_LINK_SPEED_MISMATCH_ID_PREVIOUS_RATE)) != 0)
+    {
+        count += 2;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_LINK_SPEED_MISMATCH_ID_CURRENT_RATE)) != 0)
+    {
+        count += 2;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_link_link_speed_mismatch_data_unpack(bcmolt_epon_link_link_speed_mismatch_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_LINK_SPEED_MISMATCH_ID_PREVIOUS_RATE)) != 0)
+    {
+        if (!bcmolt_epon_link_rate_unpack(&this->previous_rate, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_LINK_SPEED_MISMATCH_ID_CURRENT_RATE)) != 0)
+    {
+        if (!bcmolt_epon_link_rate_unpack(&this->current_rate, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_link_link_speed_mismatch_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_LINK_SPEED_MISMATCH_ID_PREVIOUS_RATE)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 2))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_LINK_SPEED_MISMATCH_ID_CURRENT_RATE)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 2))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_link_link_speed_mismatch_data_bounds_check(const bcmolt_epon_link_link_speed_mismatch_data *this, bcmolt_presence_mask fields_present, bcmolt_epon_link_link_speed_mismatch_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_LINK_SPEED_MISMATCH_ID_PREVIOUS_RATE)) != 0)
+    {
+        switch (this->previous_rate)
+        {
+            case BCMOLT_EPON_LINK_RATE_TEN_TEN:
+                break;
+            case BCMOLT_EPON_LINK_RATE_TEN_ONE:
+                break;
+            case BCMOLT_EPON_LINK_RATE_ONE_ONE:
+                break;
+            default:
+                *failed_prop = BCMOLT_EPON_LINK_LINK_SPEED_MISMATCH_ID_PREVIOUS_RATE;
+                return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_LINK_SPEED_MISMATCH_ID_CURRENT_RATE)) != 0)
+    {
+        switch (this->current_rate)
+        {
+            case BCMOLT_EPON_LINK_RATE_TEN_TEN:
+                break;
+            case BCMOLT_EPON_LINK_RATE_TEN_ONE:
+                break;
+            case BCMOLT_EPON_LINK_RATE_ONE_ONE:
+                break;
+            default:
+                *failed_prop = BCMOLT_EPON_LINK_LINK_SPEED_MISMATCH_ID_CURRENT_RATE;
+                return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_epon_link_mpcp_discovered_data_set_default(bcmolt_epon_link_mpcp_discovered_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_MPCP_DISCOVERED_ID_LINK_INFO)) != 0)
+    {
+        this->link_info.link_status = (bcmolt_epon_link_status) 0;
+        this->link_info.rate = BCMOLT_EPON_LINK_RATE_TEN_TEN;
+        this->link_info.llid = (bcmolt_epon_llid) 0;
+        this->link_info.mpcp_discovery_info = (bcmolt_mpcp_discovery_info) 0;
+        this->link_info.onu_laser_on_time_tq = (bcmolt_time_quanta) 0;
+        this->link_info.onu_laser_off_time_tq = (bcmolt_time_quanta) 0;
+        this->link_info.pending_grants = 0;
+        this->link_info.range_value_tq = (bcmolt_time_quanta) 0;
+        this->link_info.tunnel_id = (bcmolt_epon_tunnel_id) 0;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_link_mpcp_discovered_data_pack(const bcmolt_epon_link_mpcp_discovered_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_MPCP_DISCOVERED_ID_LINK_INFO)) != 0)
+    {
+        if (!bcmolt_epon_link_info_pack(&this->link_info, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_epon_link_mpcp_discovered_data_get_packed_length(const bcmolt_epon_link_mpcp_discovered_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_MPCP_DISCOVERED_ID_LINK_INFO)) != 0)
+    {
+        count += 24;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_link_mpcp_discovered_data_unpack(bcmolt_epon_link_mpcp_discovered_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_MPCP_DISCOVERED_ID_LINK_INFO)) != 0)
+    {
+        if (!bcmolt_epon_link_info_unpack(&this->link_info, buf, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_link_mpcp_discovered_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_MPCP_DISCOVERED_ID_LINK_INFO)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 24))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_link_mpcp_discovered_data_bounds_check(const bcmolt_epon_link_mpcp_discovered_data *this, bcmolt_presence_mask fields_present, bcmolt_epon_link_mpcp_discovered_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_MPCP_DISCOVERED_ID_LINK_INFO)) != 0)
+    {
+        if (!bcmolt_epon_link_info_bounds_check(&this->link_info))
+        {
+            *failed_prop = BCMOLT_EPON_LINK_MPCP_DISCOVERED_ID_LINK_INFO;
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_epon_link_mpcp_report_timeout_data_set_default(bcmolt_epon_link_mpcp_report_timeout_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_MPCP_REPORT_TIMEOUT_ID_ALARM_STATUS)) != 0)
+    {
+        this->alarm_status = BCMOLT_STATUS_OFF;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_link_mpcp_report_timeout_data_pack(const bcmolt_epon_link_mpcp_report_timeout_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_MPCP_REPORT_TIMEOUT_ID_ALARM_STATUS)) != 0)
+    {
+        if (!bcmolt_status_pack(this->alarm_status, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_epon_link_mpcp_report_timeout_data_get_packed_length(const bcmolt_epon_link_mpcp_report_timeout_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_MPCP_REPORT_TIMEOUT_ID_ALARM_STATUS)) != 0)
+    {
+        count += 1;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_link_mpcp_report_timeout_data_unpack(bcmolt_epon_link_mpcp_report_timeout_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_MPCP_REPORT_TIMEOUT_ID_ALARM_STATUS)) != 0)
+    {
+        if (!bcmolt_status_unpack(&this->alarm_status, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_link_mpcp_report_timeout_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_MPCP_REPORT_TIMEOUT_ID_ALARM_STATUS)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_link_mpcp_report_timeout_data_bounds_check(const bcmolt_epon_link_mpcp_report_timeout_data *this, bcmolt_presence_mask fields_present, bcmolt_epon_link_mpcp_report_timeout_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_MPCP_REPORT_TIMEOUT_ID_ALARM_STATUS)) != 0)
+    {
+        switch (this->alarm_status)
+        {
+            case BCMOLT_STATUS_OFF:
+                break;
+            case BCMOLT_STATUS_ON:
+                break;
+            case BCMOLT_STATUS_NO_CHANGE:
+                break;
+            default:
+                *failed_prop = BCMOLT_EPON_LINK_MPCP_REPORT_TIMEOUT_ID_ALARM_STATUS;
+                return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_epon_link_oam_keepalive_timeout_data_set_default(bcmolt_epon_link_oam_keepalive_timeout_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_OAM_KEEPALIVE_TIMEOUT_ID_ALARM_STATUS)) != 0)
+    {
+        this->alarm_status = BCMOLT_STATUS_OFF;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_link_oam_keepalive_timeout_data_pack(const bcmolt_epon_link_oam_keepalive_timeout_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_OAM_KEEPALIVE_TIMEOUT_ID_ALARM_STATUS)) != 0)
+    {
+        if (!bcmolt_status_pack(this->alarm_status, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_epon_link_oam_keepalive_timeout_data_get_packed_length(const bcmolt_epon_link_oam_keepalive_timeout_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_OAM_KEEPALIVE_TIMEOUT_ID_ALARM_STATUS)) != 0)
+    {
+        count += 1;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_link_oam_keepalive_timeout_data_unpack(bcmolt_epon_link_oam_keepalive_timeout_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_OAM_KEEPALIVE_TIMEOUT_ID_ALARM_STATUS)) != 0)
+    {
+        if (!bcmolt_status_unpack(&this->alarm_status, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_link_oam_keepalive_timeout_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_OAM_KEEPALIVE_TIMEOUT_ID_ALARM_STATUS)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_link_oam_keepalive_timeout_data_bounds_check(const bcmolt_epon_link_oam_keepalive_timeout_data *this, bcmolt_presence_mask fields_present, bcmolt_epon_link_oam_keepalive_timeout_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_OAM_KEEPALIVE_TIMEOUT_ID_ALARM_STATUS)) != 0)
+    {
+        switch (this->alarm_status)
+        {
+            case BCMOLT_STATUS_OFF:
+                break;
+            case BCMOLT_STATUS_ON:
+                break;
+            case BCMOLT_STATUS_NO_CHANGE:
+                break;
+            default:
+                *failed_prop = BCMOLT_EPON_LINK_OAM_KEEPALIVE_TIMEOUT_ID_ALARM_STATUS;
+                return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_epon_link_preprovisioned_link_created_data_set_default(bcmolt_epon_link_preprovisioned_link_created_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_PREPROVISIONED_LINK_CREATED_ID_LINK_INFO)) != 0)
+    {
+        this->link_info.link_status = (bcmolt_epon_link_status) 0;
+        this->link_info.rate = BCMOLT_EPON_LINK_RATE_TEN_TEN;
+        this->link_info.llid = (bcmolt_epon_llid) 0;
+        this->link_info.mpcp_discovery_info = (bcmolt_mpcp_discovery_info) 0;
+        this->link_info.onu_laser_on_time_tq = (bcmolt_time_quanta) 0;
+        this->link_info.onu_laser_off_time_tq = (bcmolt_time_quanta) 0;
+        this->link_info.pending_grants = 0;
+        this->link_info.range_value_tq = (bcmolt_time_quanta) 0;
+        this->link_info.tunnel_id = (bcmolt_epon_tunnel_id) 0;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_link_preprovisioned_link_created_data_pack(const bcmolt_epon_link_preprovisioned_link_created_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_PREPROVISIONED_LINK_CREATED_ID_LINK_INFO)) != 0)
+    {
+        if (!bcmolt_epon_link_info_pack(&this->link_info, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_epon_link_preprovisioned_link_created_data_get_packed_length(const bcmolt_epon_link_preprovisioned_link_created_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_PREPROVISIONED_LINK_CREATED_ID_LINK_INFO)) != 0)
+    {
+        count += 24;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_link_preprovisioned_link_created_data_unpack(bcmolt_epon_link_preprovisioned_link_created_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_PREPROVISIONED_LINK_CREATED_ID_LINK_INFO)) != 0)
+    {
+        if (!bcmolt_epon_link_info_unpack(&this->link_info, buf, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_link_preprovisioned_link_created_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_PREPROVISIONED_LINK_CREATED_ID_LINK_INFO)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 24))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_link_preprovisioned_link_created_data_bounds_check(const bcmolt_epon_link_preprovisioned_link_created_data *this, bcmolt_presence_mask fields_present, bcmolt_epon_link_preprovisioned_link_created_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_PREPROVISIONED_LINK_CREATED_ID_LINK_INFO)) != 0)
+    {
+        if (!bcmolt_epon_link_info_bounds_check(&this->link_info))
+        {
+            *failed_prop = BCMOLT_EPON_LINK_PREPROVISIONED_LINK_CREATED_ID_LINK_INFO;
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_epon_link_protection_switch_occurred_data_set_default(bcmolt_epon_link_protection_switch_occurred_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_PROTECTION_SWITCH_OCCURRED_ID_PROTECTION_STATUS)) != 0)
+    {
+        this->protection_status = BCMOLT_EPON_PROTECTION_STATE_UNPROTECTED;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_PROTECTION_SWITCH_OCCURRED_ID_RANGE_VALUE_TQ)) != 0)
+    {
+        this->range_value_tq = (bcmolt_time_quanta) 0;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_link_protection_switch_occurred_data_pack(const bcmolt_epon_link_protection_switch_occurred_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_PROTECTION_SWITCH_OCCURRED_ID_PROTECTION_STATUS)) != 0)
+    {
+        if (!bcmolt_epon_protection_state_pack(this->protection_status, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_PROTECTION_SWITCH_OCCURRED_ID_RANGE_VALUE_TQ)) != 0)
+    {
+        if (!bcmolt_buf_write_u32(buf, (uint32_t) this->range_value_tq))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_epon_link_protection_switch_occurred_data_get_packed_length(const bcmolt_epon_link_protection_switch_occurred_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_PROTECTION_SWITCH_OCCURRED_ID_PROTECTION_STATUS)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_PROTECTION_SWITCH_OCCURRED_ID_RANGE_VALUE_TQ)) != 0)
+    {
+        count += 4;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_link_protection_switch_occurred_data_unpack(bcmolt_epon_link_protection_switch_occurred_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_PROTECTION_SWITCH_OCCURRED_ID_PROTECTION_STATUS)) != 0)
+    {
+        if (!bcmolt_epon_protection_state_unpack(&this->protection_status, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_PROTECTION_SWITCH_OCCURRED_ID_RANGE_VALUE_TQ)) != 0)
+    {
+        if (!bcmolt_buf_read_u32(buf, (uint32_t *) &this->range_value_tq))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_link_protection_switch_occurred_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_PROTECTION_SWITCH_OCCURRED_ID_PROTECTION_STATUS)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_PROTECTION_SWITCH_OCCURRED_ID_RANGE_VALUE_TQ)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 4))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_link_protection_switch_occurred_data_bounds_check(const bcmolt_epon_link_protection_switch_occurred_data *this, bcmolt_presence_mask fields_present, bcmolt_epon_link_protection_switch_occurred_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_PROTECTION_SWITCH_OCCURRED_ID_PROTECTION_STATUS)) != 0)
+    {
+        switch (this->protection_status)
+        {
+            case BCMOLT_EPON_PROTECTION_STATE_UNPROTECTED:
+                break;
+            case BCMOLT_EPON_PROTECTION_STATE_PROTECTED_STANDBY:
+                break;
+            case BCMOLT_EPON_PROTECTION_STATE_PROTECTED_WORKING:
+                break;
+            default:
+                *failed_prop = BCMOLT_EPON_LINK_PROTECTION_SWITCH_OCCURRED_ID_PROTECTION_STATUS;
+                return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_epon_link_range_value_changed_data_set_default(bcmolt_epon_link_range_value_changed_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_RANGE_VALUE_CHANGED_ID_RANGE_VALUE_TQ)) != 0)
+    {
+        this->range_value_tq = (bcmolt_time_quanta) 0;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_link_range_value_changed_data_pack(const bcmolt_epon_link_range_value_changed_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_RANGE_VALUE_CHANGED_ID_RANGE_VALUE_TQ)) != 0)
+    {
+        if (!bcmolt_buf_write_u32(buf, (uint32_t) this->range_value_tq))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_epon_link_range_value_changed_data_get_packed_length(const bcmolt_epon_link_range_value_changed_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_RANGE_VALUE_CHANGED_ID_RANGE_VALUE_TQ)) != 0)
+    {
+        count += 4;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_link_range_value_changed_data_unpack(bcmolt_epon_link_range_value_changed_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_RANGE_VALUE_CHANGED_ID_RANGE_VALUE_TQ)) != 0)
+    {
+        if (!bcmolt_buf_read_u32(buf, (uint32_t *) &this->range_value_tq))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_link_range_value_changed_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_RANGE_VALUE_CHANGED_ID_RANGE_VALUE_TQ)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 4))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_link_range_value_changed_data_bounds_check(const bcmolt_epon_link_range_value_changed_data *this, bcmolt_presence_mask fields_present, bcmolt_epon_link_range_value_changed_id *failed_prop)
+{
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_epon_link_stat_alarm_cleared_data_set_default(bcmolt_epon_link_stat_alarm_cleared_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_STAT_ALARM_CLEARED_ID_STAT)) != 0)
+    {
+        this->stat = BCMOLT_EPON_LINK_STAT_ID_RX_DATA_BYTES;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_link_stat_alarm_cleared_data_pack(const bcmolt_epon_link_stat_alarm_cleared_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_STAT_ALARM_CLEARED_ID_STAT)) != 0)
+    {
+        if (!bcmolt_epon_link_stat_id_pack(this->stat, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_epon_link_stat_alarm_cleared_data_get_packed_length(const bcmolt_epon_link_stat_alarm_cleared_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_STAT_ALARM_CLEARED_ID_STAT)) != 0)
+    {
+        count += 2;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_link_stat_alarm_cleared_data_unpack(bcmolt_epon_link_stat_alarm_cleared_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_STAT_ALARM_CLEARED_ID_STAT)) != 0)
+    {
+        if (!bcmolt_epon_link_stat_id_unpack(&this->stat, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_link_stat_alarm_cleared_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_STAT_ALARM_CLEARED_ID_STAT)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 2))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_link_stat_alarm_cleared_data_bounds_check(const bcmolt_epon_link_stat_alarm_cleared_data *this, bcmolt_presence_mask fields_present, bcmolt_epon_link_stat_alarm_cleared_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_STAT_ALARM_CLEARED_ID_STAT)) != 0)
+    {
+        switch (this->stat)
+        {
+            case BCMOLT_EPON_LINK_STAT_ID_RX_DATA_BYTES:
+                break;
+            case BCMOLT_EPON_LINK_STAT_ID_RX_DATA_FRAMES:
+                break;
+            case BCMOLT_EPON_LINK_STAT_ID_RX_FRAMES_64:
+                break;
+            case BCMOLT_EPON_LINK_STAT_ID_RX_FRAMES_65_127:
+                break;
+            case BCMOLT_EPON_LINK_STAT_ID_RX_FRAMES_128_255:
+                break;
+            case BCMOLT_EPON_LINK_STAT_ID_RX_FRAMES_256_511:
+                break;
+            case BCMOLT_EPON_LINK_STAT_ID_RX_FRAMES_512_1023:
+                break;
+            case BCMOLT_EPON_LINK_STAT_ID_RX_FRAMES_1024_1518:
+                break;
+            case BCMOLT_EPON_LINK_STAT_ID_RX_FRAMES_1519_2047:
+                break;
+            case BCMOLT_EPON_LINK_STAT_ID_RX_FRAMES_2048_4095:
+                break;
+            case BCMOLT_EPON_LINK_STAT_ID_RX_FRAMES_4096_9216:
+                break;
+            case BCMOLT_EPON_LINK_STAT_ID_RX_FRAMES_9217_16383:
+                break;
+            case BCMOLT_EPON_LINK_STAT_ID_RX_OAM_BYTES:
+                break;
+            case BCMOLT_EPON_LINK_STAT_ID_RX_OAM_FRAMES:
+                break;
+            case BCMOLT_EPON_LINK_STAT_ID_RX_MPCP_FRAMES:
+                break;
+            case BCMOLT_EPON_LINK_STAT_ID_RX_BROADCAST_FRAMES:
+                break;
+            case BCMOLT_EPON_LINK_STAT_ID_RX_UNICAST_FRAMES:
+                break;
+            case BCMOLT_EPON_LINK_STAT_ID_RX_MULTICAST_FRAMES:
+                break;
+            case BCMOLT_EPON_LINK_STAT_ID_RX_REPORT_FRAMES:
+                break;
+            case BCMOLT_EPON_LINK_STAT_ID_RX_FCS_ERROR:
+                break;
+            case BCMOLT_EPON_LINK_STAT_ID_RX_OVERSIZE_ERROR:
+                break;
+            case BCMOLT_EPON_LINK_STAT_ID_RX_RUNT_ERROR:
+                break;
+            case BCMOLT_EPON_LINK_STAT_ID_RX_LINE_CODE_ERROR:
+                break;
+            case BCMOLT_EPON_LINK_STAT_ID_RX_LINE_CODE_ERROR_MAX:
+                break;
+            case BCMOLT_EPON_LINK_STAT_ID_TX_DATA_BYTES:
+                break;
+            case BCMOLT_EPON_LINK_STAT_ID_TX_DATA_FRAMES:
+                break;
+            case BCMOLT_EPON_LINK_STAT_ID_TX_FRAMES_64:
+                break;
+            case BCMOLT_EPON_LINK_STAT_ID_TX_FRAMES_65_127:
+                break;
+            case BCMOLT_EPON_LINK_STAT_ID_TX_FRAMES_128_255:
+                break;
+            case BCMOLT_EPON_LINK_STAT_ID_TX_FRAMES_256_511:
+                break;
+            case BCMOLT_EPON_LINK_STAT_ID_TX_FRAMES_512_1023:
+                break;
+            case BCMOLT_EPON_LINK_STAT_ID_TX_FRAMES_1024_1518:
+                break;
+            case BCMOLT_EPON_LINK_STAT_ID_TX_FRAMES_1519_2047:
+                break;
+            case BCMOLT_EPON_LINK_STAT_ID_TX_FRAMES_2048_4095:
+                break;
+            case BCMOLT_EPON_LINK_STAT_ID_TX_FRAMES_4096_9216:
+                break;
+            case BCMOLT_EPON_LINK_STAT_ID_TX_FRAMES_9217_16383:
+                break;
+            case BCMOLT_EPON_LINK_STAT_ID_TX_OAM_BYTES:
+                break;
+            case BCMOLT_EPON_LINK_STAT_ID_TX_OAM_FRAMES:
+                break;
+            case BCMOLT_EPON_LINK_STAT_ID_TX_MPCP_FRAMES:
+                break;
+            case BCMOLT_EPON_LINK_STAT_ID_TX_BROADCAST_FRAMES:
+                break;
+            case BCMOLT_EPON_LINK_STAT_ID_TX_UNICAST_FRAMES:
+                break;
+            case BCMOLT_EPON_LINK_STAT_ID_TX_MULTICAST_FRAMES:
+                break;
+            case BCMOLT_EPON_LINK_STAT_ID_TX_GATES:
+                break;
+            default:
+                *failed_prop = BCMOLT_EPON_LINK_STAT_ALARM_CLEARED_ID_STAT;
+                return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_epon_link_stat_alarm_raised_data_set_default(bcmolt_epon_link_stat_alarm_raised_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_STAT_ALARM_RAISED_ID_STAT)) != 0)
+    {
+        this->stat = BCMOLT_EPON_LINK_STAT_ID_RX_DATA_BYTES;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_link_stat_alarm_raised_data_pack(const bcmolt_epon_link_stat_alarm_raised_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_STAT_ALARM_RAISED_ID_STAT)) != 0)
+    {
+        if (!bcmolt_epon_link_stat_id_pack(this->stat, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_epon_link_stat_alarm_raised_data_get_packed_length(const bcmolt_epon_link_stat_alarm_raised_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_STAT_ALARM_RAISED_ID_STAT)) != 0)
+    {
+        count += 2;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_link_stat_alarm_raised_data_unpack(bcmolt_epon_link_stat_alarm_raised_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_STAT_ALARM_RAISED_ID_STAT)) != 0)
+    {
+        if (!bcmolt_epon_link_stat_id_unpack(&this->stat, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_link_stat_alarm_raised_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_STAT_ALARM_RAISED_ID_STAT)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 2))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_link_stat_alarm_raised_data_bounds_check(const bcmolt_epon_link_stat_alarm_raised_data *this, bcmolt_presence_mask fields_present, bcmolt_epon_link_stat_alarm_raised_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_STAT_ALARM_RAISED_ID_STAT)) != 0)
+    {
+        switch (this->stat)
+        {
+            case BCMOLT_EPON_LINK_STAT_ID_RX_DATA_BYTES:
+                break;
+            case BCMOLT_EPON_LINK_STAT_ID_RX_DATA_FRAMES:
+                break;
+            case BCMOLT_EPON_LINK_STAT_ID_RX_FRAMES_64:
+                break;
+            case BCMOLT_EPON_LINK_STAT_ID_RX_FRAMES_65_127:
+                break;
+            case BCMOLT_EPON_LINK_STAT_ID_RX_FRAMES_128_255:
+                break;
+            case BCMOLT_EPON_LINK_STAT_ID_RX_FRAMES_256_511:
+                break;
+            case BCMOLT_EPON_LINK_STAT_ID_RX_FRAMES_512_1023:
+                break;
+            case BCMOLT_EPON_LINK_STAT_ID_RX_FRAMES_1024_1518:
+                break;
+            case BCMOLT_EPON_LINK_STAT_ID_RX_FRAMES_1519_2047:
+                break;
+            case BCMOLT_EPON_LINK_STAT_ID_RX_FRAMES_2048_4095:
+                break;
+            case BCMOLT_EPON_LINK_STAT_ID_RX_FRAMES_4096_9216:
+                break;
+            case BCMOLT_EPON_LINK_STAT_ID_RX_FRAMES_9217_16383:
+                break;
+            case BCMOLT_EPON_LINK_STAT_ID_RX_OAM_BYTES:
+                break;
+            case BCMOLT_EPON_LINK_STAT_ID_RX_OAM_FRAMES:
+                break;
+            case BCMOLT_EPON_LINK_STAT_ID_RX_MPCP_FRAMES:
+                break;
+            case BCMOLT_EPON_LINK_STAT_ID_RX_BROADCAST_FRAMES:
+                break;
+            case BCMOLT_EPON_LINK_STAT_ID_RX_UNICAST_FRAMES:
+                break;
+            case BCMOLT_EPON_LINK_STAT_ID_RX_MULTICAST_FRAMES:
+                break;
+            case BCMOLT_EPON_LINK_STAT_ID_RX_REPORT_FRAMES:
+                break;
+            case BCMOLT_EPON_LINK_STAT_ID_RX_FCS_ERROR:
+                break;
+            case BCMOLT_EPON_LINK_STAT_ID_RX_OVERSIZE_ERROR:
+                break;
+            case BCMOLT_EPON_LINK_STAT_ID_RX_RUNT_ERROR:
+                break;
+            case BCMOLT_EPON_LINK_STAT_ID_RX_LINE_CODE_ERROR:
+                break;
+            case BCMOLT_EPON_LINK_STAT_ID_RX_LINE_CODE_ERROR_MAX:
+                break;
+            case BCMOLT_EPON_LINK_STAT_ID_TX_DATA_BYTES:
+                break;
+            case BCMOLT_EPON_LINK_STAT_ID_TX_DATA_FRAMES:
+                break;
+            case BCMOLT_EPON_LINK_STAT_ID_TX_FRAMES_64:
+                break;
+            case BCMOLT_EPON_LINK_STAT_ID_TX_FRAMES_65_127:
+                break;
+            case BCMOLT_EPON_LINK_STAT_ID_TX_FRAMES_128_255:
+                break;
+            case BCMOLT_EPON_LINK_STAT_ID_TX_FRAMES_256_511:
+                break;
+            case BCMOLT_EPON_LINK_STAT_ID_TX_FRAMES_512_1023:
+                break;
+            case BCMOLT_EPON_LINK_STAT_ID_TX_FRAMES_1024_1518:
+                break;
+            case BCMOLT_EPON_LINK_STAT_ID_TX_FRAMES_1519_2047:
+                break;
+            case BCMOLT_EPON_LINK_STAT_ID_TX_FRAMES_2048_4095:
+                break;
+            case BCMOLT_EPON_LINK_STAT_ID_TX_FRAMES_4096_9216:
+                break;
+            case BCMOLT_EPON_LINK_STAT_ID_TX_FRAMES_9217_16383:
+                break;
+            case BCMOLT_EPON_LINK_STAT_ID_TX_OAM_BYTES:
+                break;
+            case BCMOLT_EPON_LINK_STAT_ID_TX_OAM_FRAMES:
+                break;
+            case BCMOLT_EPON_LINK_STAT_ID_TX_MPCP_FRAMES:
+                break;
+            case BCMOLT_EPON_LINK_STAT_ID_TX_BROADCAST_FRAMES:
+                break;
+            case BCMOLT_EPON_LINK_STAT_ID_TX_UNICAST_FRAMES:
+                break;
+            case BCMOLT_EPON_LINK_STAT_ID_TX_MULTICAST_FRAMES:
+                break;
+            case BCMOLT_EPON_LINK_STAT_ID_TX_GATES:
+                break;
+            default:
+                *failed_prop = BCMOLT_EPON_LINK_STAT_ALARM_RAISED_ID_STAT;
+                return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_epon_link_auto_cfg_data_set_default(bcmolt_epon_link_auto_cfg_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_AUTO_CFG_ID_DUPLICATE_MPCP_REGISTRATION_REQUEST)) != 0)
+    {
+        this->duplicate_mpcp_registration_request = BCMOS_FALSE;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_AUTO_CFG_ID_ENCRYPTION_ENABLED)) != 0)
+    {
+        this->encryption_enabled = BCMOS_FALSE;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_AUTO_CFG_ID_KEY_EXCHANGE_FAILURE)) != 0)
+    {
+        this->key_exchange_failure = BCMOS_FALSE;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_AUTO_CFG_ID_KEY_EXCHANGE_STARTED)) != 0)
+    {
+        this->key_exchange_started = BCMOS_FALSE;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_AUTO_CFG_ID_KEY_EXCHANGE_STOPPED)) != 0)
+    {
+        this->key_exchange_stopped = BCMOS_FALSE;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_AUTO_CFG_ID_LINK_DELETED)) != 0)
+    {
+        this->link_deleted = BCMOS_FALSE;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_AUTO_CFG_ID_LINK_SPEED_MISMATCH)) != 0)
+    {
+        this->link_speed_mismatch = BCMOS_FALSE;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_AUTO_CFG_ID_MPCP_DEREGISTERED)) != 0)
+    {
+        this->mpcp_deregistered = BCMOS_FALSE;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_AUTO_CFG_ID_MPCP_DISCOVERED)) != 0)
+    {
+        this->mpcp_discovered = BCMOS_FALSE;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_AUTO_CFG_ID_MPCP_REG_ACK_TIMEOUT)) != 0)
+    {
+        this->mpcp_reg_ack_timeout = BCMOS_FALSE;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_AUTO_CFG_ID_MPCP_REPORT_TIMEOUT)) != 0)
+    {
+        this->mpcp_report_timeout = BCMOS_FALSE;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_AUTO_CFG_ID_OAM_KEEPALIVE_TIMEOUT)) != 0)
+    {
+        this->oam_keepalive_timeout = BCMOS_FALSE;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_AUTO_CFG_ID_OAM_KEEPALIVE_TIMER_STARTED)) != 0)
+    {
+        this->oam_keepalive_timer_started = BCMOS_FALSE;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_AUTO_CFG_ID_OAM_KEEPALIVE_TIMER_STOPPED)) != 0)
+    {
+        this->oam_keepalive_timer_stopped = BCMOS_FALSE;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_AUTO_CFG_ID_PREPROVISIONED_LINK_CREATED)) != 0)
+    {
+        this->preprovisioned_link_created = BCMOS_FALSE;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_AUTO_CFG_ID_PROTECTION_SWITCH_OCCURRED)) != 0)
+    {
+        this->protection_switch_occurred = BCMOS_FALSE;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_AUTO_CFG_ID_RANGE_VALUE_CHANGED)) != 0)
+    {
+        this->range_value_changed = BCMOS_FALSE;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_AUTO_CFG_ID_RERANGE_FAILURE)) != 0)
+    {
+        this->rerange_failure = BCMOS_FALSE;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_AUTO_CFG_ID_STAT_ALARM_CLEARED)) != 0)
+    {
+        this->stat_alarm_cleared = BCMOS_FALSE;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_AUTO_CFG_ID_STAT_ALARM_RAISED)) != 0)
+    {
+        this->stat_alarm_raised = BCMOS_FALSE;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_AUTO_CFG_ID_STATIC_REGISTRATION_DONE)) != 0)
+    {
+        this->static_registration_done = BCMOS_FALSE;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_link_auto_cfg_data_pack(const bcmolt_epon_link_auto_cfg_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_AUTO_CFG_ID_DUPLICATE_MPCP_REGISTRATION_REQUEST)) != 0)
+    {
+        if (!bcmolt_buf_write_bool(buf, this->duplicate_mpcp_registration_request))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_AUTO_CFG_ID_ENCRYPTION_ENABLED)) != 0)
+    {
+        if (!bcmolt_buf_write_bool(buf, this->encryption_enabled))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_AUTO_CFG_ID_KEY_EXCHANGE_FAILURE)) != 0)
+    {
+        if (!bcmolt_buf_write_bool(buf, this->key_exchange_failure))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_AUTO_CFG_ID_KEY_EXCHANGE_STARTED)) != 0)
+    {
+        if (!bcmolt_buf_write_bool(buf, this->key_exchange_started))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_AUTO_CFG_ID_KEY_EXCHANGE_STOPPED)) != 0)
+    {
+        if (!bcmolt_buf_write_bool(buf, this->key_exchange_stopped))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_AUTO_CFG_ID_LINK_DELETED)) != 0)
+    {
+        if (!bcmolt_buf_write_bool(buf, this->link_deleted))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_AUTO_CFG_ID_LINK_SPEED_MISMATCH)) != 0)
+    {
+        if (!bcmolt_buf_write_bool(buf, this->link_speed_mismatch))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_AUTO_CFG_ID_MPCP_DEREGISTERED)) != 0)
+    {
+        if (!bcmolt_buf_write_bool(buf, this->mpcp_deregistered))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_AUTO_CFG_ID_MPCP_DISCOVERED)) != 0)
+    {
+        if (!bcmolt_buf_write_bool(buf, this->mpcp_discovered))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_AUTO_CFG_ID_MPCP_REG_ACK_TIMEOUT)) != 0)
+    {
+        if (!bcmolt_buf_write_bool(buf, this->mpcp_reg_ack_timeout))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_AUTO_CFG_ID_MPCP_REPORT_TIMEOUT)) != 0)
+    {
+        if (!bcmolt_buf_write_bool(buf, this->mpcp_report_timeout))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_AUTO_CFG_ID_OAM_KEEPALIVE_TIMEOUT)) != 0)
+    {
+        if (!bcmolt_buf_write_bool(buf, this->oam_keepalive_timeout))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_AUTO_CFG_ID_OAM_KEEPALIVE_TIMER_STARTED)) != 0)
+    {
+        if (!bcmolt_buf_write_bool(buf, this->oam_keepalive_timer_started))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_AUTO_CFG_ID_OAM_KEEPALIVE_TIMER_STOPPED)) != 0)
+    {
+        if (!bcmolt_buf_write_bool(buf, this->oam_keepalive_timer_stopped))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_AUTO_CFG_ID_PREPROVISIONED_LINK_CREATED)) != 0)
+    {
+        if (!bcmolt_buf_write_bool(buf, this->preprovisioned_link_created))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_AUTO_CFG_ID_PROTECTION_SWITCH_OCCURRED)) != 0)
+    {
+        if (!bcmolt_buf_write_bool(buf, this->protection_switch_occurred))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_AUTO_CFG_ID_RANGE_VALUE_CHANGED)) != 0)
+    {
+        if (!bcmolt_buf_write_bool(buf, this->range_value_changed))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_AUTO_CFG_ID_RERANGE_FAILURE)) != 0)
+    {
+        if (!bcmolt_buf_write_bool(buf, this->rerange_failure))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_AUTO_CFG_ID_STAT_ALARM_CLEARED)) != 0)
+    {
+        if (!bcmolt_buf_write_bool(buf, this->stat_alarm_cleared))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_AUTO_CFG_ID_STAT_ALARM_RAISED)) != 0)
+    {
+        if (!bcmolt_buf_write_bool(buf, this->stat_alarm_raised))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_AUTO_CFG_ID_STATIC_REGISTRATION_DONE)) != 0)
+    {
+        if (!bcmolt_buf_write_bool(buf, this->static_registration_done))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_epon_link_auto_cfg_data_get_packed_length(const bcmolt_epon_link_auto_cfg_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_AUTO_CFG_ID_DUPLICATE_MPCP_REGISTRATION_REQUEST)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_AUTO_CFG_ID_ENCRYPTION_ENABLED)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_AUTO_CFG_ID_KEY_EXCHANGE_FAILURE)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_AUTO_CFG_ID_KEY_EXCHANGE_STARTED)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_AUTO_CFG_ID_KEY_EXCHANGE_STOPPED)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_AUTO_CFG_ID_LINK_DELETED)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_AUTO_CFG_ID_LINK_SPEED_MISMATCH)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_AUTO_CFG_ID_MPCP_DEREGISTERED)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_AUTO_CFG_ID_MPCP_DISCOVERED)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_AUTO_CFG_ID_MPCP_REG_ACK_TIMEOUT)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_AUTO_CFG_ID_MPCP_REPORT_TIMEOUT)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_AUTO_CFG_ID_OAM_KEEPALIVE_TIMEOUT)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_AUTO_CFG_ID_OAM_KEEPALIVE_TIMER_STARTED)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_AUTO_CFG_ID_OAM_KEEPALIVE_TIMER_STOPPED)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_AUTO_CFG_ID_PREPROVISIONED_LINK_CREATED)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_AUTO_CFG_ID_PROTECTION_SWITCH_OCCURRED)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_AUTO_CFG_ID_RANGE_VALUE_CHANGED)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_AUTO_CFG_ID_RERANGE_FAILURE)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_AUTO_CFG_ID_STAT_ALARM_CLEARED)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_AUTO_CFG_ID_STAT_ALARM_RAISED)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_AUTO_CFG_ID_STATIC_REGISTRATION_DONE)) != 0)
+    {
+        count += 1;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_link_auto_cfg_data_unpack(bcmolt_epon_link_auto_cfg_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_AUTO_CFG_ID_DUPLICATE_MPCP_REGISTRATION_REQUEST)) != 0)
+    {
+        if (!bcmolt_buf_read_bool(buf, &this->duplicate_mpcp_registration_request))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_AUTO_CFG_ID_ENCRYPTION_ENABLED)) != 0)
+    {
+        if (!bcmolt_buf_read_bool(buf, &this->encryption_enabled))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_AUTO_CFG_ID_KEY_EXCHANGE_FAILURE)) != 0)
+    {
+        if (!bcmolt_buf_read_bool(buf, &this->key_exchange_failure))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_AUTO_CFG_ID_KEY_EXCHANGE_STARTED)) != 0)
+    {
+        if (!bcmolt_buf_read_bool(buf, &this->key_exchange_started))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_AUTO_CFG_ID_KEY_EXCHANGE_STOPPED)) != 0)
+    {
+        if (!bcmolt_buf_read_bool(buf, &this->key_exchange_stopped))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_AUTO_CFG_ID_LINK_DELETED)) != 0)
+    {
+        if (!bcmolt_buf_read_bool(buf, &this->link_deleted))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_AUTO_CFG_ID_LINK_SPEED_MISMATCH)) != 0)
+    {
+        if (!bcmolt_buf_read_bool(buf, &this->link_speed_mismatch))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_AUTO_CFG_ID_MPCP_DEREGISTERED)) != 0)
+    {
+        if (!bcmolt_buf_read_bool(buf, &this->mpcp_deregistered))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_AUTO_CFG_ID_MPCP_DISCOVERED)) != 0)
+    {
+        if (!bcmolt_buf_read_bool(buf, &this->mpcp_discovered))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_AUTO_CFG_ID_MPCP_REG_ACK_TIMEOUT)) != 0)
+    {
+        if (!bcmolt_buf_read_bool(buf, &this->mpcp_reg_ack_timeout))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_AUTO_CFG_ID_MPCP_REPORT_TIMEOUT)) != 0)
+    {
+        if (!bcmolt_buf_read_bool(buf, &this->mpcp_report_timeout))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_AUTO_CFG_ID_OAM_KEEPALIVE_TIMEOUT)) != 0)
+    {
+        if (!bcmolt_buf_read_bool(buf, &this->oam_keepalive_timeout))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_AUTO_CFG_ID_OAM_KEEPALIVE_TIMER_STARTED)) != 0)
+    {
+        if (!bcmolt_buf_read_bool(buf, &this->oam_keepalive_timer_started))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_AUTO_CFG_ID_OAM_KEEPALIVE_TIMER_STOPPED)) != 0)
+    {
+        if (!bcmolt_buf_read_bool(buf, &this->oam_keepalive_timer_stopped))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_AUTO_CFG_ID_PREPROVISIONED_LINK_CREATED)) != 0)
+    {
+        if (!bcmolt_buf_read_bool(buf, &this->preprovisioned_link_created))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_AUTO_CFG_ID_PROTECTION_SWITCH_OCCURRED)) != 0)
+    {
+        if (!bcmolt_buf_read_bool(buf, &this->protection_switch_occurred))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_AUTO_CFG_ID_RANGE_VALUE_CHANGED)) != 0)
+    {
+        if (!bcmolt_buf_read_bool(buf, &this->range_value_changed))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_AUTO_CFG_ID_RERANGE_FAILURE)) != 0)
+    {
+        if (!bcmolt_buf_read_bool(buf, &this->rerange_failure))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_AUTO_CFG_ID_STAT_ALARM_CLEARED)) != 0)
+    {
+        if (!bcmolt_buf_read_bool(buf, &this->stat_alarm_cleared))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_AUTO_CFG_ID_STAT_ALARM_RAISED)) != 0)
+    {
+        if (!bcmolt_buf_read_bool(buf, &this->stat_alarm_raised))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_AUTO_CFG_ID_STATIC_REGISTRATION_DONE)) != 0)
+    {
+        if (!bcmolt_buf_read_bool(buf, &this->static_registration_done))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_link_auto_cfg_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_AUTO_CFG_ID_DUPLICATE_MPCP_REGISTRATION_REQUEST)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_AUTO_CFG_ID_ENCRYPTION_ENABLED)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_AUTO_CFG_ID_KEY_EXCHANGE_FAILURE)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_AUTO_CFG_ID_KEY_EXCHANGE_STARTED)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_AUTO_CFG_ID_KEY_EXCHANGE_STOPPED)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_AUTO_CFG_ID_LINK_DELETED)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_AUTO_CFG_ID_LINK_SPEED_MISMATCH)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_AUTO_CFG_ID_MPCP_DEREGISTERED)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_AUTO_CFG_ID_MPCP_DISCOVERED)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_AUTO_CFG_ID_MPCP_REG_ACK_TIMEOUT)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_AUTO_CFG_ID_MPCP_REPORT_TIMEOUT)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_AUTO_CFG_ID_OAM_KEEPALIVE_TIMEOUT)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_AUTO_CFG_ID_OAM_KEEPALIVE_TIMER_STARTED)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_AUTO_CFG_ID_OAM_KEEPALIVE_TIMER_STOPPED)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_AUTO_CFG_ID_PREPROVISIONED_LINK_CREATED)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_AUTO_CFG_ID_PROTECTION_SWITCH_OCCURRED)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_AUTO_CFG_ID_RANGE_VALUE_CHANGED)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_AUTO_CFG_ID_RERANGE_FAILURE)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_AUTO_CFG_ID_STAT_ALARM_CLEARED)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_AUTO_CFG_ID_STAT_ALARM_RAISED)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_AUTO_CFG_ID_STATIC_REGISTRATION_DONE)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_link_auto_cfg_data_bounds_check(const bcmolt_epon_link_auto_cfg_data *this, bcmolt_presence_mask fields_present, bcmolt_epon_link_auto_cfg_id *failed_prop)
+{
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_epon_link_key_exchange_start_data_set_default(bcmolt_epon_link_key_exchange_start_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_KEY_EXCHANGE_START_ID_PERIOD)) != 0)
+    {
+        this->period = 1;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_link_key_exchange_start_data_pack(const bcmolt_epon_link_key_exchange_start_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_KEY_EXCHANGE_START_ID_PERIOD)) != 0)
+    {
+        if (!bcmolt_buf_write_u16(buf, this->period))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_epon_link_key_exchange_start_data_get_packed_length(const bcmolt_epon_link_key_exchange_start_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_KEY_EXCHANGE_START_ID_PERIOD)) != 0)
+    {
+        count += 2;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_link_key_exchange_start_data_unpack(bcmolt_epon_link_key_exchange_start_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_KEY_EXCHANGE_START_ID_PERIOD)) != 0)
+    {
+        if (!bcmolt_buf_read_u16(buf, &this->period))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_link_key_exchange_start_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_KEY_EXCHANGE_START_ID_PERIOD)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 2))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_link_key_exchange_start_data_bounds_check(const bcmolt_epon_link_key_exchange_start_data *this, bcmolt_presence_mask fields_present, bcmolt_epon_link_key_exchange_start_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_KEY_EXCHANGE_START_ID_PERIOD)) != 0)
+    {
+        if (this->period < 1)
+        {
+            *failed_prop = BCMOLT_EPON_LINK_KEY_EXCHANGE_START_ID_PERIOD;
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_epon_link_oam_keepalive_timer_start_data_set_default(bcmolt_epon_link_oam_keepalive_timer_start_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_OAM_KEEPALIVE_TIMER_START_ID_SEND_PERIOD)) != 0)
+    {
+        this->send_period = 1;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_link_oam_keepalive_timer_start_data_pack(const bcmolt_epon_link_oam_keepalive_timer_start_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_OAM_KEEPALIVE_TIMER_START_ID_SEND_PERIOD)) != 0)
+    {
+        if (!bcmolt_buf_write_u16(buf, this->send_period))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_epon_link_oam_keepalive_timer_start_data_get_packed_length(const bcmolt_epon_link_oam_keepalive_timer_start_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_OAM_KEEPALIVE_TIMER_START_ID_SEND_PERIOD)) != 0)
+    {
+        count += 2;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_link_oam_keepalive_timer_start_data_unpack(bcmolt_epon_link_oam_keepalive_timer_start_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_OAM_KEEPALIVE_TIMER_START_ID_SEND_PERIOD)) != 0)
+    {
+        if (!bcmolt_buf_read_u16(buf, &this->send_period))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_link_oam_keepalive_timer_start_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_OAM_KEEPALIVE_TIMER_START_ID_SEND_PERIOD)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 2))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_link_oam_keepalive_timer_start_data_bounds_check(const bcmolt_epon_link_oam_keepalive_timer_start_data *this, bcmolt_presence_mask fields_present, bcmolt_epon_link_oam_keepalive_timer_start_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_OAM_KEEPALIVE_TIMER_START_ID_SEND_PERIOD)) != 0)
+    {
+        if (this->send_period < 1)
+        {
+            *failed_prop = BCMOLT_EPON_LINK_OAM_KEEPALIVE_TIMER_START_ID_SEND_PERIOD;
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_epon_link_static_registration_data_set_default(bcmolt_epon_link_static_registration_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_STATIC_REGISTRATION_ID_LASERON_TIME_TQ)) != 0)
+    {
+        this->laseron_time_tq = (bcmolt_time_quanta) 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_STATIC_REGISTRATION_ID_LASEROFF_TIME_TQ)) != 0)
+    {
+        this->laseroff_time_tq = (bcmolt_time_quanta) 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_STATIC_REGISTRATION_ID_RANGE_VALUE_TQ)) != 0)
+    {
+        this->range_value_tq = (bcmolt_time_quanta) 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_STATIC_REGISTRATION_ID_PENDING_GRANTS)) != 0)
+    {
+        this->pending_grants = 0;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_link_static_registration_data_pack(const bcmolt_epon_link_static_registration_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_STATIC_REGISTRATION_ID_LASERON_TIME_TQ)) != 0)
+    {
+        if (!bcmolt_buf_write_u32(buf, (uint32_t) this->laseron_time_tq))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_STATIC_REGISTRATION_ID_LASEROFF_TIME_TQ)) != 0)
+    {
+        if (!bcmolt_buf_write_u32(buf, (uint32_t) this->laseroff_time_tq))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_STATIC_REGISTRATION_ID_RANGE_VALUE_TQ)) != 0)
+    {
+        if (!bcmolt_buf_write_u32(buf, (uint32_t) this->range_value_tq))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_STATIC_REGISTRATION_ID_PENDING_GRANTS)) != 0)
+    {
+        if (!bcmolt_buf_write_u8(buf, this->pending_grants))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_epon_link_static_registration_data_get_packed_length(const bcmolt_epon_link_static_registration_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_STATIC_REGISTRATION_ID_LASERON_TIME_TQ)) != 0)
+    {
+        count += 4;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_STATIC_REGISTRATION_ID_LASEROFF_TIME_TQ)) != 0)
+    {
+        count += 4;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_STATIC_REGISTRATION_ID_RANGE_VALUE_TQ)) != 0)
+    {
+        count += 4;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_STATIC_REGISTRATION_ID_PENDING_GRANTS)) != 0)
+    {
+        count += 1;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_link_static_registration_data_unpack(bcmolt_epon_link_static_registration_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_STATIC_REGISTRATION_ID_LASERON_TIME_TQ)) != 0)
+    {
+        if (!bcmolt_buf_read_u32(buf, (uint32_t *) &this->laseron_time_tq))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_STATIC_REGISTRATION_ID_LASEROFF_TIME_TQ)) != 0)
+    {
+        if (!bcmolt_buf_read_u32(buf, (uint32_t *) &this->laseroff_time_tq))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_STATIC_REGISTRATION_ID_RANGE_VALUE_TQ)) != 0)
+    {
+        if (!bcmolt_buf_read_u32(buf, (uint32_t *) &this->range_value_tq))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_STATIC_REGISTRATION_ID_PENDING_GRANTS)) != 0)
+    {
+        if (!bcmolt_buf_read_u8(buf, &this->pending_grants))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_link_static_registration_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_STATIC_REGISTRATION_ID_LASERON_TIME_TQ)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 4))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_STATIC_REGISTRATION_ID_LASEROFF_TIME_TQ)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 4))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_STATIC_REGISTRATION_ID_RANGE_VALUE_TQ)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 4))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_STATIC_REGISTRATION_ID_PENDING_GRANTS)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_link_static_registration_data_bounds_check(const bcmolt_epon_link_static_registration_data *this, bcmolt_presence_mask fields_present, bcmolt_epon_link_static_registration_id *failed_prop)
+{
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_epon_link_inject_frame_data_set_default(bcmolt_epon_link_inject_frame_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_INJECT_FRAME_ID_FRAME)) != 0)
+    {
+        this->frame.frame_octets.len = 0;
+        this->frame.frame_octets.val = NULL;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_link_inject_frame_data_pack(const bcmolt_epon_link_inject_frame_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_INJECT_FRAME_ID_FRAME)) != 0)
+    {
+        if (!bcmolt_ethernet_frame_unmasked_pack(&this->frame, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_epon_link_inject_frame_data_get_packed_length(const bcmolt_epon_link_inject_frame_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_INJECT_FRAME_ID_FRAME)) != 0)
+    {
+        count += bcmolt_ethernet_frame_unmasked_get_packed_length(&this->frame);
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_link_inject_frame_data_unpack(bcmolt_epon_link_inject_frame_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_INJECT_FRAME_ID_FRAME)) != 0)
+    {
+        if (!bcmolt_ethernet_frame_unmasked_unpack(&this->frame, buf, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_link_inject_frame_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_INJECT_FRAME_ID_FRAME)) != 0)
+    {
+        if (!bcmolt_ethernet_frame_unmasked_scan(packed, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_link_inject_frame_data_bounds_check(const bcmolt_epon_link_inject_frame_data *this, bcmolt_presence_mask fields_present, bcmolt_epon_link_inject_frame_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_INJECT_FRAME_ID_FRAME)) != 0)
+    {
+        if (!bcmolt_ethernet_frame_unmasked_bounds_check(&this->frame))
+        {
+            *failed_prop = BCMOLT_EPON_LINK_INJECT_FRAME_ID_FRAME;
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_epon_link_frame_captured_data_set_default(bcmolt_epon_link_frame_captured_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_FRAME_CAPTURED_ID_FRAME)) != 0)
+    {
+        this->frame.len = 0;
+        this->frame.val = NULL;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_link_frame_captured_data_pack(const bcmolt_epon_link_frame_captured_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_FRAME_CAPTURED_ID_FRAME)) != 0)
+    {
+        if (!bcmolt_u8_list_u32_pack(&this->frame, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_epon_link_frame_captured_data_get_packed_length(const bcmolt_epon_link_frame_captured_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_FRAME_CAPTURED_ID_FRAME)) != 0)
+    {
+        count += bcmolt_u8_list_u32_get_packed_length(&this->frame);
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_link_frame_captured_data_unpack(bcmolt_epon_link_frame_captured_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_FRAME_CAPTURED_ID_FRAME)) != 0)
+    {
+        if (!bcmolt_u8_list_u32_unpack(&this->frame, buf, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_link_frame_captured_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_FRAME_CAPTURED_ID_FRAME)) != 0)
+    {
+        if (!bcmolt_u8_list_u32_scan(packed, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_link_frame_captured_data_bounds_check(const bcmolt_epon_link_frame_captured_data *this, bcmolt_presence_mask fields_present, bcmolt_epon_link_frame_captured_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_LINK_FRAME_CAPTURED_ID_FRAME)) != 0)
+    {
+        if (!bcmolt_u8_list_u32_bounds_check(&this->frame))
+        {
+            *failed_prop = BCMOLT_EPON_LINK_FRAME_CAPTURED_ID_FRAME;
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_epon_ni_key_set_default(bcmolt_epon_ni_key *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_KEY_ID_EPON_NI)) != 0)
+    {
+        this->epon_ni = (bcmolt_epon_ni) 0;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_ni_key_pack(const bcmolt_epon_ni_key *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_KEY_ID_EPON_NI)) != 0)
+    {
+        if (!bcmolt_buf_write_u16(buf, (uint16_t) this->epon_ni))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_epon_ni_key_get_packed_length(const bcmolt_epon_ni_key *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_KEY_ID_EPON_NI)) != 0)
+    {
+        count += 2;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_ni_key_unpack(bcmolt_epon_ni_key *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_KEY_ID_EPON_NI)) != 0)
+    {
+        if (!bcmolt_buf_read_u16(buf, (uint16_t *) &this->epon_ni))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_ni_key_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_KEY_ID_EPON_NI)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 2))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_ni_key_bounds_check(const bcmolt_epon_ni_key *this, bcmolt_presence_mask fields_present, bcmolt_epon_ni_key_id *failed_prop)
+{
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_epon_ni_cfg_data_set_default(bcmolt_epon_ni_cfg_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_CFG_ID_MAC_ADDRESS)) != 0)
+    {
+        this->mac_address.u8[0] = 0x0000;
+        this->mac_address.u8[1] = 0x000D;
+        this->mac_address.u8[2] = 0x00B6;
+        this->mac_address.u8[3] = 0x0000;
+        this->mac_address.u8[4] = 0x0000;
+        this->mac_address.u8[5] = 0x0000;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_CFG_ID_EPON_NI_EN)) != 0)
+    {
+        this->epon_ni_en = BCMOLT_EPON_NI_EN_STATE_DISABLED;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_CFG_ID_REGISTRATION_BEHAVIOR)) != 0)
+    {
+        this->registration_behavior = BCMOLT_REGISTRATION_BEHAVIOR_AUTOMATIC;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_CFG_ID_MTU_1G)) != 0)
+    {
+        this->mtu_1g = 1536;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_CFG_ID_MTU_10G)) != 0)
+    {
+        this->mtu_10g = 1536;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_CFG_ID_MINIMUM_FIBER_LENGTH)) != 0)
+    {
+        this->minimum_fiber_length = (bcmolt_meters) 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_CFG_ID_MAXIMUM_FIBER_LENGTH)) != 0)
+    {
+        this->maximum_fiber_length = (bcmolt_meters) 20000;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_CFG_ID_GRANT_SPACING_TQ)) != 0)
+    {
+        this->grant_spacing_tq = (bcmolt_time_quanta) 32;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_CFG_ID_EPON_LOGICAL_LINK_OPTIONS)) != 0)
+    {
+        this->epon_logical_link_options.registration_gate_mode.registration_gate_mode = BCMOLT_MPCP_GATE_MODE_TEKNOVUS;
+        this->epon_logical_link_options.registration_gate_mode.u.teknovus.reg_ack_timeout_ms = 100;
+        this->epon_logical_link_options.reporting_mode = BCMOLT_EPON_DBA_REPORTING_MODE_SIEPON_A;
+        this->epon_logical_link_options.max_links = 512;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_CFG_ID_MPCP_DISCOVERY_PERIOD_MS)) != 0)
+    {
+        this->mpcp_discovery_period_ms = 1000;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_CFG_ID_ALARM_STATE)) != 0)
+    {
+        this->alarm_state.no_reports = BCMOLT_STATUS_OFF;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_CFG_ID_ALL_LINKS)) != 0)
+    {
+        this->all_links.len = 0;
+        this->all_links.val = NULL;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_CFG_ID_ENCRYPTION_CFG)) != 0)
+    {
+        this->encryption_cfg.downstream_encryption_mode = BCMOLT_EPON_ENCRYPTION_MODE_NO_ENCRYPTION;
+        this->encryption_cfg.upstream_encryption_mode = BCMOLT_EPON_ENCRYPTION_MODE_NO_ENCRYPTION;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_CFG_ID_PROTECTION_SWITCHING_CFG)) != 0)
+    {
+        this->protection_switching_cfg.protection_type = BCMOLT_EPON_PROTECTION_SWITCHING_TYPE_NO_PROTECTION_SWTICHING;
+        this->protection_switching_cfg.protection_switching_options = (bcmolt_protection_switching_detection_options) 0;
+        this->protection_switching_cfg.rerange_options = BCMOLT_EPON_PROTECTION_SWITCHING_RERANGING_OPTIONS_RERANGE_NONE;
+        this->protection_switching_cfg.rerange_attempts = 0;
+        this->protection_switching_cfg.rerange_interval = 0;
+        this->protection_switching_cfg.sync_gate_duration = 0;
+        this->protection_switching_cfg.gpio_input = BCMOLT_GPIO_PIN_UNCONFIGURED;
+        this->protection_switching_cfg.gpio_input_polarity = BCMOLT_GPIO_POLARITY_ACTIVE_HIGH;
+        this->protection_switching_cfg.gpio_output = BCMOLT_GPIO_PIN_UNCONFIGURED;
+        this->protection_switching_cfg.gpio_output_polarity = BCMOLT_GPIO_POLARITY_ACTIVE_HIGH;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_CFG_ID_CLOCK_TRANSPORT_CFG)) != 0)
+    {
+        this->clock_transport_cfg.epon_clock_transport_mode = BCMOLT_EPON_CLOCK_TRANSPORT_MODE_HOST_DRIVEN;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_CFG_ID_DROPDOWN_WEIGHTS)) != 0)
+    {
+        memset(this->dropdown_weights.arr, 0, sizeof(this->dropdown_weights.arr));
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_CFG_ID_APPROXIMATE_SOLICITED_USAGE)) != 0)
+    {
+        memset(this->approximate_solicited_usage.arr, 0, sizeof(this->approximate_solicited_usage.arr));
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_CFG_ID_APPROXIMATE_TDM_USAGE)) != 0)
+    {
+        this->approximate_tdm_usage = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_CFG_ID_NO_REPORTS_SOAK_TIME)) != 0)
+    {
+        this->no_reports_soak_time = 25;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_CFG_ID_PON_AGGREGATE_SHAPER)) != 0)
+    {
+        this->pon_aggregate_shaper.bandwidth_kbps = 0;
+        this->pon_aggregate_shaper.mbs_kB = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_CFG_ID_ESTIMATED_PON_LATENCY_TQ)) != 0)
+    {
+        memset(this->estimated_pon_latency_tq.arr, 0, sizeof(this->estimated_pon_latency_tq.arr));
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_CFG_ID_ONU_UPGRADE_PARAMS)) != 0)
+    {
+        this->onu_upgrade_params.oam_extension_type = BCMOLT_EPON_OAM_EXTENSION_TYPE_DPOE;
+        this->onu_upgrade_params.u.dpoe.response_timeout_ms = 1000;
+        this->onu_upgrade_params.u.dpoe.block_size = 60;
+        this->onu_upgrade_params.u.dpoe.final_ack_response_timeout = 15;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_CFG_ID_AUTO_ROGUE_DETECT_10G_EN)) != 0)
+    {
+        this->auto_rogue_detect_10g_en = BCMOS_FALSE;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_CFG_ID_AUTO_ROGUE_DETECT_1G_EN)) != 0)
+    {
+        this->auto_rogue_detect_1g_en = BCMOS_FALSE;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_CFG_ID_AUTO_ROGUE_DETECT_10G_THRESHOLD)) != 0)
+    {
+        this->auto_rogue_detect_10g_threshold = 128;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_ni_cfg_data_pack(const bcmolt_epon_ni_cfg_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_CFG_ID_MAC_ADDRESS)) != 0)
+    {
+        if (!bcmolt_buf_write_mac_address(buf, this->mac_address))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_CFG_ID_EPON_NI_EN)) != 0)
+    {
+        if (!bcmolt_epon_ni_en_state_pack(this->epon_ni_en, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_CFG_ID_REGISTRATION_BEHAVIOR)) != 0)
+    {
+        if (!bcmolt_registration_behavior_pack(this->registration_behavior, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_CFG_ID_MTU_1G)) != 0)
+    {
+        if (!bcmolt_buf_write_u16(buf, this->mtu_1g))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_CFG_ID_MTU_10G)) != 0)
+    {
+        if (!bcmolt_buf_write_u16(buf, this->mtu_10g))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_CFG_ID_MINIMUM_FIBER_LENGTH)) != 0)
+    {
+        if (!bcmolt_buf_write_u32(buf, (uint32_t) this->minimum_fiber_length))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_CFG_ID_MAXIMUM_FIBER_LENGTH)) != 0)
+    {
+        if (!bcmolt_buf_write_u32(buf, (uint32_t) this->maximum_fiber_length))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_CFG_ID_GRANT_SPACING_TQ)) != 0)
+    {
+        if (!bcmolt_buf_write_u32(buf, (uint32_t) this->grant_spacing_tq))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_CFG_ID_EPON_LOGICAL_LINK_OPTIONS)) != 0)
+    {
+        if (!bcmolt_epon_logical_link_options_pack(&this->epon_logical_link_options, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_CFG_ID_MPCP_DISCOVERY_PERIOD_MS)) != 0)
+    {
+        if (!bcmolt_buf_write_u32(buf, this->mpcp_discovery_period_ms))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_CFG_ID_ALARM_STATE)) != 0)
+    {
+        if (!bcmolt_epon_ni_alarm_state_pack(&this->alarm_state, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_CFG_ID_ALL_LINKS)) != 0)
+    {
+        if (!bcmolt_macaddress_list_u32_max_2048_pack(&this->all_links, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_CFG_ID_ENCRYPTION_CFG)) != 0)
+    {
+        if (!bcmolt_epon_ni_encryption_cfg_pack(&this->encryption_cfg, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_CFG_ID_PROTECTION_SWITCHING_CFG)) != 0)
+    {
+        if (!bcmolt_epon_protection_switching_configuration_pack(&this->protection_switching_cfg, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_CFG_ID_CLOCK_TRANSPORT_CFG)) != 0)
+    {
+        if (!bcmolt_epon_clock_transport_configuration_pack(&this->clock_transport_cfg, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_CFG_ID_DROPDOWN_WEIGHTS)) != 0)
+    {
+        if (!bcmolt_arr_u16_7_pack(&this->dropdown_weights, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_CFG_ID_APPROXIMATE_SOLICITED_USAGE)) != 0)
+    {
+        if (!bcmolt_arr_bounds_8_pack(&this->approximate_solicited_usage, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_CFG_ID_APPROXIMATE_TDM_USAGE)) != 0)
+    {
+        if (!bcmolt_buf_write_u32(buf, this->approximate_tdm_usage))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_CFG_ID_NO_REPORTS_SOAK_TIME)) != 0)
+    {
+        if (!bcmolt_buf_write_u16(buf, this->no_reports_soak_time))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_CFG_ID_PON_AGGREGATE_SHAPER)) != 0)
+    {
+        if (!bcmolt_pon_aggregate_shaper_pack(&this->pon_aggregate_shaper, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_CFG_ID_ESTIMATED_PON_LATENCY_TQ)) != 0)
+    {
+        if (!bcmolt_arr_bounds_8_pack(&this->estimated_pon_latency_tq, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_CFG_ID_ONU_UPGRADE_PARAMS)) != 0)
+    {
+        if (!bcmolt_epon_onu_upgrade_params_pack(&this->onu_upgrade_params, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_CFG_ID_AUTO_ROGUE_DETECT_10G_EN)) != 0)
+    {
+        if (!bcmolt_buf_write_bool(buf, this->auto_rogue_detect_10g_en))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_CFG_ID_AUTO_ROGUE_DETECT_1G_EN)) != 0)
+    {
+        if (!bcmolt_buf_write_bool(buf, this->auto_rogue_detect_1g_en))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_CFG_ID_AUTO_ROGUE_DETECT_10G_THRESHOLD)) != 0)
+    {
+        if (!bcmolt_buf_write_u8(buf, this->auto_rogue_detect_10g_threshold))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_epon_ni_cfg_data_get_packed_length(const bcmolt_epon_ni_cfg_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_CFG_ID_MAC_ADDRESS)) != 0)
+    {
+        count += 6;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_CFG_ID_EPON_NI_EN)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_CFG_ID_REGISTRATION_BEHAVIOR)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_CFG_ID_MTU_1G)) != 0)
+    {
+        count += 2;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_CFG_ID_MTU_10G)) != 0)
+    {
+        count += 2;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_CFG_ID_MINIMUM_FIBER_LENGTH)) != 0)
+    {
+        count += 4;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_CFG_ID_MAXIMUM_FIBER_LENGTH)) != 0)
+    {
+        count += 4;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_CFG_ID_GRANT_SPACING_TQ)) != 0)
+    {
+        count += 4;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_CFG_ID_EPON_LOGICAL_LINK_OPTIONS)) != 0)
+    {
+        count += bcmolt_epon_logical_link_options_get_packed_length(&this->epon_logical_link_options);
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_CFG_ID_MPCP_DISCOVERY_PERIOD_MS)) != 0)
+    {
+        count += 4;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_CFG_ID_ALARM_STATE)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_CFG_ID_ALL_LINKS)) != 0)
+    {
+        count += bcmolt_macaddress_list_u32_max_2048_get_packed_length(&this->all_links);
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_CFG_ID_ENCRYPTION_CFG)) != 0)
+    {
+        count += 4;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_CFG_ID_PROTECTION_SWITCHING_CFG)) != 0)
+    {
+        count += 12;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_CFG_ID_CLOCK_TRANSPORT_CFG)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_CFG_ID_DROPDOWN_WEIGHTS)) != 0)
+    {
+        count += 14;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_CFG_ID_APPROXIMATE_SOLICITED_USAGE)) != 0)
+    {
+        count += 64;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_CFG_ID_APPROXIMATE_TDM_USAGE)) != 0)
+    {
+        count += 4;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_CFG_ID_NO_REPORTS_SOAK_TIME)) != 0)
+    {
+        count += 2;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_CFG_ID_PON_AGGREGATE_SHAPER)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_CFG_ID_ESTIMATED_PON_LATENCY_TQ)) != 0)
+    {
+        count += 64;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_CFG_ID_ONU_UPGRADE_PARAMS)) != 0)
+    {
+        count += bcmolt_epon_onu_upgrade_params_get_packed_length(&this->onu_upgrade_params);
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_CFG_ID_AUTO_ROGUE_DETECT_10G_EN)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_CFG_ID_AUTO_ROGUE_DETECT_1G_EN)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_CFG_ID_AUTO_ROGUE_DETECT_10G_THRESHOLD)) != 0)
+    {
+        count += 1;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_ni_cfg_data_unpack(bcmolt_epon_ni_cfg_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_CFG_ID_MAC_ADDRESS)) != 0)
+    {
+        if (!bcmolt_buf_read_mac_address(buf, &this->mac_address))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_CFG_ID_EPON_NI_EN)) != 0)
+    {
+        if (!bcmolt_epon_ni_en_state_unpack(&this->epon_ni_en, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_CFG_ID_REGISTRATION_BEHAVIOR)) != 0)
+    {
+        if (!bcmolt_registration_behavior_unpack(&this->registration_behavior, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_CFG_ID_MTU_1G)) != 0)
+    {
+        if (!bcmolt_buf_read_u16(buf, &this->mtu_1g))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_CFG_ID_MTU_10G)) != 0)
+    {
+        if (!bcmolt_buf_read_u16(buf, &this->mtu_10g))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_CFG_ID_MINIMUM_FIBER_LENGTH)) != 0)
+    {
+        if (!bcmolt_buf_read_u32(buf, (uint32_t *) &this->minimum_fiber_length))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_CFG_ID_MAXIMUM_FIBER_LENGTH)) != 0)
+    {
+        if (!bcmolt_buf_read_u32(buf, (uint32_t *) &this->maximum_fiber_length))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_CFG_ID_GRANT_SPACING_TQ)) != 0)
+    {
+        if (!bcmolt_buf_read_u32(buf, (uint32_t *) &this->grant_spacing_tq))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_CFG_ID_EPON_LOGICAL_LINK_OPTIONS)) != 0)
+    {
+        if (!bcmolt_epon_logical_link_options_unpack(&this->epon_logical_link_options, buf, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_CFG_ID_MPCP_DISCOVERY_PERIOD_MS)) != 0)
+    {
+        if (!bcmolt_buf_read_u32(buf, &this->mpcp_discovery_period_ms))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_CFG_ID_ALARM_STATE)) != 0)
+    {
+        if (!bcmolt_epon_ni_alarm_state_unpack(&this->alarm_state, buf, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_CFG_ID_ALL_LINKS)) != 0)
+    {
+        if (!bcmolt_macaddress_list_u32_max_2048_unpack(&this->all_links, buf, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_CFG_ID_ENCRYPTION_CFG)) != 0)
+    {
+        if (!bcmolt_epon_ni_encryption_cfg_unpack(&this->encryption_cfg, buf, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_CFG_ID_PROTECTION_SWITCHING_CFG)) != 0)
+    {
+        if (!bcmolt_epon_protection_switching_configuration_unpack(&this->protection_switching_cfg, buf, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_CFG_ID_CLOCK_TRANSPORT_CFG)) != 0)
+    {
+        if (!bcmolt_epon_clock_transport_configuration_unpack(&this->clock_transport_cfg, buf, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_CFG_ID_DROPDOWN_WEIGHTS)) != 0)
+    {
+        if (!bcmolt_arr_u16_7_unpack(&this->dropdown_weights, buf, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_CFG_ID_APPROXIMATE_SOLICITED_USAGE)) != 0)
+    {
+        if (!bcmolt_arr_bounds_8_unpack(&this->approximate_solicited_usage, buf, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_CFG_ID_APPROXIMATE_TDM_USAGE)) != 0)
+    {
+        if (!bcmolt_buf_read_u32(buf, &this->approximate_tdm_usage))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_CFG_ID_NO_REPORTS_SOAK_TIME)) != 0)
+    {
+        if (!bcmolt_buf_read_u16(buf, &this->no_reports_soak_time))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_CFG_ID_PON_AGGREGATE_SHAPER)) != 0)
+    {
+        if (!bcmolt_pon_aggregate_shaper_unpack(&this->pon_aggregate_shaper, buf, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_CFG_ID_ESTIMATED_PON_LATENCY_TQ)) != 0)
+    {
+        if (!bcmolt_arr_bounds_8_unpack(&this->estimated_pon_latency_tq, buf, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_CFG_ID_ONU_UPGRADE_PARAMS)) != 0)
+    {
+        if (!bcmolt_epon_onu_upgrade_params_unpack(&this->onu_upgrade_params, buf, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_CFG_ID_AUTO_ROGUE_DETECT_10G_EN)) != 0)
+    {
+        if (!bcmolt_buf_read_bool(buf, &this->auto_rogue_detect_10g_en))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_CFG_ID_AUTO_ROGUE_DETECT_1G_EN)) != 0)
+    {
+        if (!bcmolt_buf_read_bool(buf, &this->auto_rogue_detect_1g_en))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_CFG_ID_AUTO_ROGUE_DETECT_10G_THRESHOLD)) != 0)
+    {
+        if (!bcmolt_buf_read_u8(buf, &this->auto_rogue_detect_10g_threshold))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_ni_cfg_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_CFG_ID_MAC_ADDRESS)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 6))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_CFG_ID_EPON_NI_EN)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_CFG_ID_REGISTRATION_BEHAVIOR)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_CFG_ID_MTU_1G)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 2))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_CFG_ID_MTU_10G)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 2))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_CFG_ID_MINIMUM_FIBER_LENGTH)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 4))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_CFG_ID_MAXIMUM_FIBER_LENGTH)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 4))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_CFG_ID_GRANT_SPACING_TQ)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 4))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_CFG_ID_EPON_LOGICAL_LINK_OPTIONS)) != 0)
+    {
+        if (!bcmolt_epon_logical_link_options_scan(packed, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_CFG_ID_MPCP_DISCOVERY_PERIOD_MS)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 4))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_CFG_ID_ALARM_STATE)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_CFG_ID_ALL_LINKS)) != 0)
+    {
+        if (!bcmolt_macaddress_list_u32_max_2048_scan(packed, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_CFG_ID_ENCRYPTION_CFG)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 4))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_CFG_ID_PROTECTION_SWITCHING_CFG)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 12))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_CFG_ID_CLOCK_TRANSPORT_CFG)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_CFG_ID_DROPDOWN_WEIGHTS)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 14))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_CFG_ID_APPROXIMATE_SOLICITED_USAGE)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 64))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_CFG_ID_APPROXIMATE_TDM_USAGE)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 4))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_CFG_ID_NO_REPORTS_SOAK_TIME)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 2))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_CFG_ID_PON_AGGREGATE_SHAPER)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_CFG_ID_ESTIMATED_PON_LATENCY_TQ)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 64))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_CFG_ID_ONU_UPGRADE_PARAMS)) != 0)
+    {
+        if (!bcmolt_epon_onu_upgrade_params_scan(packed, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_CFG_ID_AUTO_ROGUE_DETECT_10G_EN)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_CFG_ID_AUTO_ROGUE_DETECT_1G_EN)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_CFG_ID_AUTO_ROGUE_DETECT_10G_THRESHOLD)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_ni_cfg_data_bounds_check(const bcmolt_epon_ni_cfg_data *this, bcmolt_presence_mask fields_present, bcmolt_epon_ni_cfg_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_CFG_ID_EPON_NI_EN)) != 0)
+    {
+        switch (this->epon_ni_en)
+        {
+            case BCMOLT_EPON_NI_EN_STATE_DISABLED:
+                break;
+            case BCMOLT_EPON_NI_EN_STATE_ENABLED:
+                break;
+            case BCMOLT_EPON_NI_EN_STATE_PROTECTED_WORKING:
+                break;
+            case BCMOLT_EPON_NI_EN_STATE_PROTECTED_STANDBY:
+                break;
+            case BCMOLT_EPON_NI_EN_STATE_PROCESSING:
+                break;
+            default:
+                *failed_prop = BCMOLT_EPON_NI_CFG_ID_EPON_NI_EN;
+                return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_CFG_ID_REGISTRATION_BEHAVIOR)) != 0)
+    {
+        switch (this->registration_behavior)
+        {
+            case BCMOLT_REGISTRATION_BEHAVIOR_AUTOMATIC:
+                break;
+            case BCMOLT_REGISTRATION_BEHAVIOR_NOTIFY_UNKNOWN:
+                break;
+            default:
+                *failed_prop = BCMOLT_EPON_NI_CFG_ID_REGISTRATION_BEHAVIOR;
+                return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_CFG_ID_MTU_1G)) != 0)
+    {
+        if (this->mtu_1g < 64)
+        {
+            *failed_prop = BCMOLT_EPON_NI_CFG_ID_MTU_1G;
+            return BCMOS_FALSE;
+        }
+
+        if (this->mtu_1g > 2000)
+        {
+            *failed_prop = BCMOLT_EPON_NI_CFG_ID_MTU_1G;
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_CFG_ID_MTU_10G)) != 0)
+    {
+        if (this->mtu_10g < 64)
+        {
+            *failed_prop = BCMOLT_EPON_NI_CFG_ID_MTU_10G;
+            return BCMOS_FALSE;
+        }
+
+        if (this->mtu_10g > 10000)
+        {
+            *failed_prop = BCMOLT_EPON_NI_CFG_ID_MTU_10G;
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_CFG_ID_GRANT_SPACING_TQ)) != 0)
+    {
+        if (this->grant_spacing_tq > (bcmolt_time_quanta) 65535UL)
+        {
+            *failed_prop = BCMOLT_EPON_NI_CFG_ID_GRANT_SPACING_TQ;
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_CFG_ID_EPON_LOGICAL_LINK_OPTIONS)) != 0)
+    {
+        if (!bcmolt_epon_logical_link_options_bounds_check(&this->epon_logical_link_options))
+        {
+            *failed_prop = BCMOLT_EPON_NI_CFG_ID_EPON_LOGICAL_LINK_OPTIONS;
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_CFG_ID_MPCP_DISCOVERY_PERIOD_MS)) != 0)
+    {
+        if (this->mpcp_discovery_period_ms < 100)
+        {
+            *failed_prop = BCMOLT_EPON_NI_CFG_ID_MPCP_DISCOVERY_PERIOD_MS;
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_CFG_ID_ALARM_STATE)) != 0)
+    {
+        if (!bcmolt_epon_ni_alarm_state_bounds_check(&this->alarm_state))
+        {
+            *failed_prop = BCMOLT_EPON_NI_CFG_ID_ALARM_STATE;
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_CFG_ID_ALL_LINKS)) != 0)
+    {
+        if (this->all_links.len > 2048)
+        {
+            return BCMOS_FALSE;
+        }
+
+        if (!bcmolt_macaddress_list_u32_max_2048_bounds_check(&this->all_links))
+        {
+            *failed_prop = BCMOLT_EPON_NI_CFG_ID_ALL_LINKS;
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_CFG_ID_ENCRYPTION_CFG)) != 0)
+    {
+        if (!bcmolt_epon_ni_encryption_cfg_bounds_check(&this->encryption_cfg))
+        {
+            *failed_prop = BCMOLT_EPON_NI_CFG_ID_ENCRYPTION_CFG;
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_CFG_ID_PROTECTION_SWITCHING_CFG)) != 0)
+    {
+        if (!bcmolt_epon_protection_switching_configuration_bounds_check(&this->protection_switching_cfg))
+        {
+            *failed_prop = BCMOLT_EPON_NI_CFG_ID_PROTECTION_SWITCHING_CFG;
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_CFG_ID_CLOCK_TRANSPORT_CFG)) != 0)
+    {
+        if (!bcmolt_epon_clock_transport_configuration_bounds_check(&this->clock_transport_cfg))
+        {
+            *failed_prop = BCMOLT_EPON_NI_CFG_ID_CLOCK_TRANSPORT_CFG;
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_CFG_ID_DROPDOWN_WEIGHTS)) != 0)
+    {
+        if (!bcmolt_arr_u16_7_bounds_check(&this->dropdown_weights))
+        {
+            *failed_prop = BCMOLT_EPON_NI_CFG_ID_DROPDOWN_WEIGHTS;
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_CFG_ID_APPROXIMATE_SOLICITED_USAGE)) != 0)
+    {
+        if (!bcmolt_arr_bounds_8_bounds_check(&this->approximate_solicited_usage))
+        {
+            *failed_prop = BCMOLT_EPON_NI_CFG_ID_APPROXIMATE_SOLICITED_USAGE;
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_CFG_ID_NO_REPORTS_SOAK_TIME)) != 0)
+    {
+        if (this->no_reports_soak_time > 67)
+        {
+            *failed_prop = BCMOLT_EPON_NI_CFG_ID_NO_REPORTS_SOAK_TIME;
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_CFG_ID_PON_AGGREGATE_SHAPER)) != 0)
+    {
+        if (!bcmolt_pon_aggregate_shaper_bounds_check(&this->pon_aggregate_shaper))
+        {
+            *failed_prop = BCMOLT_EPON_NI_CFG_ID_PON_AGGREGATE_SHAPER;
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_CFG_ID_ESTIMATED_PON_LATENCY_TQ)) != 0)
+    {
+        if (!bcmolt_arr_bounds_8_bounds_check(&this->estimated_pon_latency_tq))
+        {
+            *failed_prop = BCMOLT_EPON_NI_CFG_ID_ESTIMATED_PON_LATENCY_TQ;
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_CFG_ID_ONU_UPGRADE_PARAMS)) != 0)
+    {
+        if (!bcmolt_epon_onu_upgrade_params_bounds_check(&this->onu_upgrade_params))
+        {
+            *failed_prop = BCMOLT_EPON_NI_CFG_ID_ONU_UPGRADE_PARAMS;
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_epon_ni_llid_quarantined_data_set_default(bcmolt_epon_ni_llid_quarantined_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_LLID_QUARANTINED_ID_LLID)) != 0)
+    {
+        this->llid = (bcmolt_epon_llid) 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_LLID_QUARANTINED_ID_LINK_RATE)) != 0)
+    {
+        this->link_rate = BCMOLT_EPON_LINK_RATE_TEN_TEN;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_LLID_QUARANTINED_ID_LINK_MAC)) != 0)
+    {
+        bcmos_mac_address_init(&this->link_mac);
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_LLID_QUARANTINED_ID_RANGE_VALUE_TQ)) != 0)
+    {
+        this->range_value_tq = (bcmolt_time_quanta) 0;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_ni_llid_quarantined_data_pack(const bcmolt_epon_ni_llid_quarantined_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_LLID_QUARANTINED_ID_LLID)) != 0)
+    {
+        if (!bcmolt_buf_write_u16(buf, (uint16_t) this->llid))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_LLID_QUARANTINED_ID_LINK_RATE)) != 0)
+    {
+        if (!bcmolt_epon_link_rate_pack(this->link_rate, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_LLID_QUARANTINED_ID_LINK_MAC)) != 0)
+    {
+        if (!bcmolt_buf_write_mac_address(buf, this->link_mac))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_LLID_QUARANTINED_ID_RANGE_VALUE_TQ)) != 0)
+    {
+        if (!bcmolt_buf_write_u32(buf, (uint32_t) this->range_value_tq))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_epon_ni_llid_quarantined_data_get_packed_length(const bcmolt_epon_ni_llid_quarantined_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_LLID_QUARANTINED_ID_LLID)) != 0)
+    {
+        count += 2;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_LLID_QUARANTINED_ID_LINK_RATE)) != 0)
+    {
+        count += 2;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_LLID_QUARANTINED_ID_LINK_MAC)) != 0)
+    {
+        count += 6;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_LLID_QUARANTINED_ID_RANGE_VALUE_TQ)) != 0)
+    {
+        count += 4;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_ni_llid_quarantined_data_unpack(bcmolt_epon_ni_llid_quarantined_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_LLID_QUARANTINED_ID_LLID)) != 0)
+    {
+        if (!bcmolt_buf_read_u16(buf, (uint16_t *) &this->llid))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_LLID_QUARANTINED_ID_LINK_RATE)) != 0)
+    {
+        if (!bcmolt_epon_link_rate_unpack(&this->link_rate, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_LLID_QUARANTINED_ID_LINK_MAC)) != 0)
+    {
+        if (!bcmolt_buf_read_mac_address(buf, &this->link_mac))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_LLID_QUARANTINED_ID_RANGE_VALUE_TQ)) != 0)
+    {
+        if (!bcmolt_buf_read_u32(buf, (uint32_t *) &this->range_value_tq))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_ni_llid_quarantined_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_LLID_QUARANTINED_ID_LLID)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 2))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_LLID_QUARANTINED_ID_LINK_RATE)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 2))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_LLID_QUARANTINED_ID_LINK_MAC)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 6))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_LLID_QUARANTINED_ID_RANGE_VALUE_TQ)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 4))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_ni_llid_quarantined_data_bounds_check(const bcmolt_epon_ni_llid_quarantined_data *this, bcmolt_presence_mask fields_present, bcmolt_epon_ni_llid_quarantined_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_LLID_QUARANTINED_ID_LINK_RATE)) != 0)
+    {
+        switch (this->link_rate)
+        {
+            case BCMOLT_EPON_LINK_RATE_TEN_TEN:
+                break;
+            case BCMOLT_EPON_LINK_RATE_TEN_ONE:
+                break;
+            case BCMOLT_EPON_LINK_RATE_ONE_ONE:
+                break;
+            default:
+                *failed_prop = BCMOLT_EPON_NI_LLID_QUARANTINED_ID_LINK_RATE;
+                return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_epon_ni_mpcp_timestamp_changed_data_set_default(bcmolt_epon_ni_mpcp_timestamp_changed_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_MPCP_TIMESTAMP_CHANGED_ID_MPCP_TIMESTAMP)) != 0)
+    {
+        this->mpcp_timestamp = 0;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_ni_mpcp_timestamp_changed_data_pack(const bcmolt_epon_ni_mpcp_timestamp_changed_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_MPCP_TIMESTAMP_CHANGED_ID_MPCP_TIMESTAMP)) != 0)
+    {
+        if (!bcmolt_buf_write_u32(buf, this->mpcp_timestamp))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_epon_ni_mpcp_timestamp_changed_data_get_packed_length(const bcmolt_epon_ni_mpcp_timestamp_changed_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_MPCP_TIMESTAMP_CHANGED_ID_MPCP_TIMESTAMP)) != 0)
+    {
+        count += 4;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_ni_mpcp_timestamp_changed_data_unpack(bcmolt_epon_ni_mpcp_timestamp_changed_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_MPCP_TIMESTAMP_CHANGED_ID_MPCP_TIMESTAMP)) != 0)
+    {
+        if (!bcmolt_buf_read_u32(buf, &this->mpcp_timestamp))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_ni_mpcp_timestamp_changed_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_MPCP_TIMESTAMP_CHANGED_ID_MPCP_TIMESTAMP)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 4))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_ni_mpcp_timestamp_changed_data_bounds_check(const bcmolt_epon_ni_mpcp_timestamp_changed_data *this, bcmolt_presence_mask fields_present, bcmolt_epon_ni_mpcp_timestamp_changed_id *failed_prop)
+{
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_epon_ni_no_reports_data_set_default(bcmolt_epon_ni_no_reports_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_NO_REPORTS_ID_ALARM_STATUS)) != 0)
+    {
+        this->alarm_status = BCMOLT_STATUS_OFF;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_ni_no_reports_data_pack(const bcmolt_epon_ni_no_reports_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_NO_REPORTS_ID_ALARM_STATUS)) != 0)
+    {
+        if (!bcmolt_status_pack(this->alarm_status, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_epon_ni_no_reports_data_get_packed_length(const bcmolt_epon_ni_no_reports_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_NO_REPORTS_ID_ALARM_STATUS)) != 0)
+    {
+        count += 1;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_ni_no_reports_data_unpack(bcmolt_epon_ni_no_reports_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_NO_REPORTS_ID_ALARM_STATUS)) != 0)
+    {
+        if (!bcmolt_status_unpack(&this->alarm_status, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_ni_no_reports_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_NO_REPORTS_ID_ALARM_STATUS)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_ni_no_reports_data_bounds_check(const bcmolt_epon_ni_no_reports_data *this, bcmolt_presence_mask fields_present, bcmolt_epon_ni_no_reports_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_NO_REPORTS_ID_ALARM_STATUS)) != 0)
+    {
+        switch (this->alarm_status)
+        {
+            case BCMOLT_STATUS_OFF:
+                break;
+            case BCMOLT_STATUS_ON:
+                break;
+            case BCMOLT_STATUS_NO_CHANGE:
+                break;
+            default:
+                *failed_prop = BCMOLT_EPON_NI_NO_REPORTS_ID_ALARM_STATUS;
+                return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_epon_ni_onu_upgrade_complete_data_set_default(bcmolt_epon_ni_onu_upgrade_complete_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_ONU_UPGRADE_COMPLETE_ID_STATUS)) != 0)
+    {
+        this->status = BCMOS_FALSE;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_ONU_UPGRADE_COMPLETE_ID_LIST_OF_FAILED_ENTITIES)) != 0)
+    {
+        this->list_of_failed_entities.len = 0;
+        this->list_of_failed_entities.val = NULL;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_ni_onu_upgrade_complete_data_pack(const bcmolt_epon_ni_onu_upgrade_complete_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_ONU_UPGRADE_COMPLETE_ID_STATUS)) != 0)
+    {
+        if (!bcmolt_buf_write_bool(buf, this->status))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_ONU_UPGRADE_COMPLETE_ID_LIST_OF_FAILED_ENTITIES)) != 0)
+    {
+        if (!bcmolt_epon_onu_upgrade_status_list_u32_pack(&this->list_of_failed_entities, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_epon_ni_onu_upgrade_complete_data_get_packed_length(const bcmolt_epon_ni_onu_upgrade_complete_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_ONU_UPGRADE_COMPLETE_ID_STATUS)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_ONU_UPGRADE_COMPLETE_ID_LIST_OF_FAILED_ENTITIES)) != 0)
+    {
+        count += bcmolt_epon_onu_upgrade_status_list_u32_get_packed_length(&this->list_of_failed_entities);
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_ni_onu_upgrade_complete_data_unpack(bcmolt_epon_ni_onu_upgrade_complete_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_ONU_UPGRADE_COMPLETE_ID_STATUS)) != 0)
+    {
+        if (!bcmolt_buf_read_bool(buf, &this->status))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_ONU_UPGRADE_COMPLETE_ID_LIST_OF_FAILED_ENTITIES)) != 0)
+    {
+        if (!bcmolt_epon_onu_upgrade_status_list_u32_unpack(&this->list_of_failed_entities, buf, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_ni_onu_upgrade_complete_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_ONU_UPGRADE_COMPLETE_ID_STATUS)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_ONU_UPGRADE_COMPLETE_ID_LIST_OF_FAILED_ENTITIES)) != 0)
+    {
+        if (!bcmolt_epon_onu_upgrade_status_list_u32_scan(packed, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_ni_onu_upgrade_complete_data_bounds_check(const bcmolt_epon_ni_onu_upgrade_complete_data *this, bcmolt_presence_mask fields_present, bcmolt_epon_ni_onu_upgrade_complete_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_ONU_UPGRADE_COMPLETE_ID_LIST_OF_FAILED_ENTITIES)) != 0)
+    {
+        if (!bcmolt_epon_onu_upgrade_status_list_u32_bounds_check(&this->list_of_failed_entities))
+        {
+            *failed_prop = BCMOLT_EPON_NI_ONU_UPGRADE_COMPLETE_ID_LIST_OF_FAILED_ENTITIES;
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_epon_ni_rogue_scan_complete_data_set_default(bcmolt_epon_ni_rogue_scan_complete_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_ROGUE_SCAN_COMPLETE_ID_RETURN_IND_STATUS)) != 0)
+    {
+        this->return_ind_status = BCMOLT_ROGUE_SCAN_STATUS_COMPLETE;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_ni_rogue_scan_complete_data_pack(const bcmolt_epon_ni_rogue_scan_complete_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_ROGUE_SCAN_COMPLETE_ID_RETURN_IND_STATUS)) != 0)
+    {
+        if (!bcmolt_rogue_scan_status_pack(this->return_ind_status, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_epon_ni_rogue_scan_complete_data_get_packed_length(const bcmolt_epon_ni_rogue_scan_complete_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_ROGUE_SCAN_COMPLETE_ID_RETURN_IND_STATUS)) != 0)
+    {
+        count += 1;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_ni_rogue_scan_complete_data_unpack(bcmolt_epon_ni_rogue_scan_complete_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_ROGUE_SCAN_COMPLETE_ID_RETURN_IND_STATUS)) != 0)
+    {
+        if (!bcmolt_rogue_scan_status_unpack(&this->return_ind_status, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_ni_rogue_scan_complete_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_ROGUE_SCAN_COMPLETE_ID_RETURN_IND_STATUS)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_ni_rogue_scan_complete_data_bounds_check(const bcmolt_epon_ni_rogue_scan_complete_data *this, bcmolt_presence_mask fields_present, bcmolt_epon_ni_rogue_scan_complete_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_ROGUE_SCAN_COMPLETE_ID_RETURN_IND_STATUS)) != 0)
+    {
+        switch (this->return_ind_status)
+        {
+            case BCMOLT_ROGUE_SCAN_STATUS_COMPLETE:
+                break;
+            case BCMOLT_ROGUE_SCAN_STATUS_LLID_STATE_IS_BAD:
+                break;
+            case BCMOLT_ROGUE_SCAN_STATUS_LLID_IS_OOR:
+                break;
+            case BCMOLT_ROGUE_SCAN_STATUS_SCAN_ERR_NORES:
+                break;
+            case BCMOLT_ROGUE_SCAN_STATUS_SCAN_ERR_INTERNAL:
+                break;
+            default:
+                *failed_prop = BCMOLT_EPON_NI_ROGUE_SCAN_COMPLETE_ID_RETURN_IND_STATUS;
+                return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_epon_ni_rssi_measurement_completed_data_set_default(bcmolt_epon_ni_rssi_measurement_completed_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_RSSI_MEASUREMENT_COMPLETED_ID_STATUS)) != 0)
+    {
+        this->status = BCMOLT_RESULT_SUCCESS;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_RSSI_MEASUREMENT_COMPLETED_ID_LLID)) != 0)
+    {
+        this->llid = (bcmolt_epon_llid) 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_RSSI_MEASUREMENT_COMPLETED_ID_LINK_MAC)) != 0)
+    {
+        bcmos_mac_address_init(&this->link_mac);
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_ni_rssi_measurement_completed_data_pack(const bcmolt_epon_ni_rssi_measurement_completed_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_RSSI_MEASUREMENT_COMPLETED_ID_STATUS)) != 0)
+    {
+        if (!bcmolt_result_pack(this->status, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_RSSI_MEASUREMENT_COMPLETED_ID_LLID)) != 0)
+    {
+        if (!bcmolt_buf_write_u16(buf, (uint16_t) this->llid))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_RSSI_MEASUREMENT_COMPLETED_ID_LINK_MAC)) != 0)
+    {
+        if (!bcmolt_buf_write_mac_address(buf, this->link_mac))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_epon_ni_rssi_measurement_completed_data_get_packed_length(const bcmolt_epon_ni_rssi_measurement_completed_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_RSSI_MEASUREMENT_COMPLETED_ID_STATUS)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_RSSI_MEASUREMENT_COMPLETED_ID_LLID)) != 0)
+    {
+        count += 2;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_RSSI_MEASUREMENT_COMPLETED_ID_LINK_MAC)) != 0)
+    {
+        count += 6;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_ni_rssi_measurement_completed_data_unpack(bcmolt_epon_ni_rssi_measurement_completed_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_RSSI_MEASUREMENT_COMPLETED_ID_STATUS)) != 0)
+    {
+        if (!bcmolt_result_unpack(&this->status, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_RSSI_MEASUREMENT_COMPLETED_ID_LLID)) != 0)
+    {
+        if (!bcmolt_buf_read_u16(buf, (uint16_t *) &this->llid))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_RSSI_MEASUREMENT_COMPLETED_ID_LINK_MAC)) != 0)
+    {
+        if (!bcmolt_buf_read_mac_address(buf, &this->link_mac))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_ni_rssi_measurement_completed_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_RSSI_MEASUREMENT_COMPLETED_ID_STATUS)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_RSSI_MEASUREMENT_COMPLETED_ID_LLID)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 2))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_RSSI_MEASUREMENT_COMPLETED_ID_LINK_MAC)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 6))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_ni_rssi_measurement_completed_data_bounds_check(const bcmolt_epon_ni_rssi_measurement_completed_data *this, bcmolt_presence_mask fields_present, bcmolt_epon_ni_rssi_measurement_completed_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_RSSI_MEASUREMENT_COMPLETED_ID_STATUS)) != 0)
+    {
+        switch (this->status)
+        {
+            case BCMOLT_RESULT_SUCCESS:
+                break;
+            case BCMOLT_RESULT_FAIL:
+                break;
+            default:
+                *failed_prop = BCMOLT_EPON_NI_RSSI_MEASUREMENT_COMPLETED_ID_STATUS;
+                return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_epon_ni_state_change_completed_data_set_default(bcmolt_epon_ni_state_change_completed_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_STATE_CHANGE_COMPLETED_ID_NEW_STATE)) != 0)
+    {
+        this->new_state = BCMOLT_EPON_NI_EN_STATE_DISABLED;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_ni_state_change_completed_data_pack(const bcmolt_epon_ni_state_change_completed_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_STATE_CHANGE_COMPLETED_ID_NEW_STATE)) != 0)
+    {
+        if (!bcmolt_epon_ni_en_state_pack(this->new_state, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_epon_ni_state_change_completed_data_get_packed_length(const bcmolt_epon_ni_state_change_completed_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_STATE_CHANGE_COMPLETED_ID_NEW_STATE)) != 0)
+    {
+        count += 1;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_ni_state_change_completed_data_unpack(bcmolt_epon_ni_state_change_completed_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_STATE_CHANGE_COMPLETED_ID_NEW_STATE)) != 0)
+    {
+        if (!bcmolt_epon_ni_en_state_unpack(&this->new_state, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_ni_state_change_completed_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_STATE_CHANGE_COMPLETED_ID_NEW_STATE)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_ni_state_change_completed_data_bounds_check(const bcmolt_epon_ni_state_change_completed_data *this, bcmolt_presence_mask fields_present, bcmolt_epon_ni_state_change_completed_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_STATE_CHANGE_COMPLETED_ID_NEW_STATE)) != 0)
+    {
+        switch (this->new_state)
+        {
+            case BCMOLT_EPON_NI_EN_STATE_DISABLED:
+                break;
+            case BCMOLT_EPON_NI_EN_STATE_ENABLED:
+                break;
+            case BCMOLT_EPON_NI_EN_STATE_PROTECTED_WORKING:
+                break;
+            case BCMOLT_EPON_NI_EN_STATE_PROTECTED_STANDBY:
+                break;
+            case BCMOLT_EPON_NI_EN_STATE_PROCESSING:
+                break;
+            default:
+                *failed_prop = BCMOLT_EPON_NI_STATE_CHANGE_COMPLETED_ID_NEW_STATE;
+                return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_epon_ni_auto_cfg_data_set_default(bcmolt_epon_ni_auto_cfg_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_AUTO_CFG_ID_AUTO_ROGUE_SCAN_10G_FAILURE)) != 0)
+    {
+        this->auto_rogue_scan_10g_failure = BCMOS_FALSE;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_AUTO_CFG_ID_AUTO_ROGUE_SCAN_1G_FAILURE)) != 0)
+    {
+        this->auto_rogue_scan_1g_failure = BCMOS_FALSE;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_AUTO_CFG_ID_LLID_QUARANTINED)) != 0)
+    {
+        this->llid_quarantined = BCMOS_FALSE;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_AUTO_CFG_ID_MPCP_TIMESTAMP_CHANGED)) != 0)
+    {
+        this->mpcp_timestamp_changed = BCMOS_FALSE;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_AUTO_CFG_ID_NO_REPORTS)) != 0)
+    {
+        this->no_reports = BCMOS_FALSE;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_AUTO_CFG_ID_ONU_UPGRADE_COMPLETE)) != 0)
+    {
+        this->onu_upgrade_complete = BCMOS_FALSE;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_AUTO_CFG_ID_RERANGE_FAILURE)) != 0)
+    {
+        this->rerange_failure = BCMOS_FALSE;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_AUTO_CFG_ID_ROGUE_SCAN_COMPLETE)) != 0)
+    {
+        this->rogue_scan_complete = BCMOS_FALSE;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_AUTO_CFG_ID_RSSI_MEASUREMENT_COMPLETED)) != 0)
+    {
+        this->rssi_measurement_completed = BCMOS_FALSE;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_AUTO_CFG_ID_STATE_CHANGE_COMPLETED)) != 0)
+    {
+        this->state_change_completed = BCMOS_FALSE;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_ni_auto_cfg_data_pack(const bcmolt_epon_ni_auto_cfg_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_AUTO_CFG_ID_AUTO_ROGUE_SCAN_10G_FAILURE)) != 0)
+    {
+        if (!bcmolt_buf_write_bool(buf, this->auto_rogue_scan_10g_failure))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_AUTO_CFG_ID_AUTO_ROGUE_SCAN_1G_FAILURE)) != 0)
+    {
+        if (!bcmolt_buf_write_bool(buf, this->auto_rogue_scan_1g_failure))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_AUTO_CFG_ID_LLID_QUARANTINED)) != 0)
+    {
+        if (!bcmolt_buf_write_bool(buf, this->llid_quarantined))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_AUTO_CFG_ID_MPCP_TIMESTAMP_CHANGED)) != 0)
+    {
+        if (!bcmolt_buf_write_bool(buf, this->mpcp_timestamp_changed))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_AUTO_CFG_ID_NO_REPORTS)) != 0)
+    {
+        if (!bcmolt_buf_write_bool(buf, this->no_reports))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_AUTO_CFG_ID_ONU_UPGRADE_COMPLETE)) != 0)
+    {
+        if (!bcmolt_buf_write_bool(buf, this->onu_upgrade_complete))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_AUTO_CFG_ID_RERANGE_FAILURE)) != 0)
+    {
+        if (!bcmolt_buf_write_bool(buf, this->rerange_failure))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_AUTO_CFG_ID_ROGUE_SCAN_COMPLETE)) != 0)
+    {
+        if (!bcmolt_buf_write_bool(buf, this->rogue_scan_complete))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_AUTO_CFG_ID_RSSI_MEASUREMENT_COMPLETED)) != 0)
+    {
+        if (!bcmolt_buf_write_bool(buf, this->rssi_measurement_completed))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_AUTO_CFG_ID_STATE_CHANGE_COMPLETED)) != 0)
+    {
+        if (!bcmolt_buf_write_bool(buf, this->state_change_completed))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_epon_ni_auto_cfg_data_get_packed_length(const bcmolt_epon_ni_auto_cfg_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_AUTO_CFG_ID_AUTO_ROGUE_SCAN_10G_FAILURE)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_AUTO_CFG_ID_AUTO_ROGUE_SCAN_1G_FAILURE)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_AUTO_CFG_ID_LLID_QUARANTINED)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_AUTO_CFG_ID_MPCP_TIMESTAMP_CHANGED)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_AUTO_CFG_ID_NO_REPORTS)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_AUTO_CFG_ID_ONU_UPGRADE_COMPLETE)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_AUTO_CFG_ID_RERANGE_FAILURE)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_AUTO_CFG_ID_ROGUE_SCAN_COMPLETE)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_AUTO_CFG_ID_RSSI_MEASUREMENT_COMPLETED)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_AUTO_CFG_ID_STATE_CHANGE_COMPLETED)) != 0)
+    {
+        count += 1;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_ni_auto_cfg_data_unpack(bcmolt_epon_ni_auto_cfg_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_AUTO_CFG_ID_AUTO_ROGUE_SCAN_10G_FAILURE)) != 0)
+    {
+        if (!bcmolt_buf_read_bool(buf, &this->auto_rogue_scan_10g_failure))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_AUTO_CFG_ID_AUTO_ROGUE_SCAN_1G_FAILURE)) != 0)
+    {
+        if (!bcmolt_buf_read_bool(buf, &this->auto_rogue_scan_1g_failure))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_AUTO_CFG_ID_LLID_QUARANTINED)) != 0)
+    {
+        if (!bcmolt_buf_read_bool(buf, &this->llid_quarantined))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_AUTO_CFG_ID_MPCP_TIMESTAMP_CHANGED)) != 0)
+    {
+        if (!bcmolt_buf_read_bool(buf, &this->mpcp_timestamp_changed))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_AUTO_CFG_ID_NO_REPORTS)) != 0)
+    {
+        if (!bcmolt_buf_read_bool(buf, &this->no_reports))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_AUTO_CFG_ID_ONU_UPGRADE_COMPLETE)) != 0)
+    {
+        if (!bcmolt_buf_read_bool(buf, &this->onu_upgrade_complete))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_AUTO_CFG_ID_RERANGE_FAILURE)) != 0)
+    {
+        if (!bcmolt_buf_read_bool(buf, &this->rerange_failure))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_AUTO_CFG_ID_ROGUE_SCAN_COMPLETE)) != 0)
+    {
+        if (!bcmolt_buf_read_bool(buf, &this->rogue_scan_complete))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_AUTO_CFG_ID_RSSI_MEASUREMENT_COMPLETED)) != 0)
+    {
+        if (!bcmolt_buf_read_bool(buf, &this->rssi_measurement_completed))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_AUTO_CFG_ID_STATE_CHANGE_COMPLETED)) != 0)
+    {
+        if (!bcmolt_buf_read_bool(buf, &this->state_change_completed))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_ni_auto_cfg_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_AUTO_CFG_ID_AUTO_ROGUE_SCAN_10G_FAILURE)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_AUTO_CFG_ID_AUTO_ROGUE_SCAN_1G_FAILURE)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_AUTO_CFG_ID_LLID_QUARANTINED)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_AUTO_CFG_ID_MPCP_TIMESTAMP_CHANGED)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_AUTO_CFG_ID_NO_REPORTS)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_AUTO_CFG_ID_ONU_UPGRADE_COMPLETE)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_AUTO_CFG_ID_RERANGE_FAILURE)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_AUTO_CFG_ID_ROGUE_SCAN_COMPLETE)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_AUTO_CFG_ID_RSSI_MEASUREMENT_COMPLETED)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_AUTO_CFG_ID_STATE_CHANGE_COMPLETED)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_ni_auto_cfg_data_bounds_check(const bcmolt_epon_ni_auto_cfg_data *this, bcmolt_presence_mask fields_present, bcmolt_epon_ni_auto_cfg_id *failed_prop)
+{
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_epon_ni_add_link_data_set_default(bcmolt_epon_ni_add_link_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_ADD_LINK_ID_MAC_ADDRESS)) != 0)
+    {
+        bcmos_mac_address_init(&this->mac_address);
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_ADD_LINK_ID_RATE)) != 0)
+    {
+        this->rate = BCMOLT_EPON_LINK_RATE_TEN_TEN;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_ni_add_link_data_pack(const bcmolt_epon_ni_add_link_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_ADD_LINK_ID_MAC_ADDRESS)) != 0)
+    {
+        if (!bcmolt_buf_write_mac_address(buf, this->mac_address))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_ADD_LINK_ID_RATE)) != 0)
+    {
+        if (!bcmolt_epon_link_rate_pack(this->rate, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_epon_ni_add_link_data_get_packed_length(const bcmolt_epon_ni_add_link_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_ADD_LINK_ID_MAC_ADDRESS)) != 0)
+    {
+        count += 6;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_ADD_LINK_ID_RATE)) != 0)
+    {
+        count += 2;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_ni_add_link_data_unpack(bcmolt_epon_ni_add_link_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_ADD_LINK_ID_MAC_ADDRESS)) != 0)
+    {
+        if (!bcmolt_buf_read_mac_address(buf, &this->mac_address))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_ADD_LINK_ID_RATE)) != 0)
+    {
+        if (!bcmolt_epon_link_rate_unpack(&this->rate, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_ni_add_link_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_ADD_LINK_ID_MAC_ADDRESS)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 6))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_ADD_LINK_ID_RATE)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 2))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_ni_add_link_data_bounds_check(const bcmolt_epon_ni_add_link_data *this, bcmolt_presence_mask fields_present, bcmolt_epon_ni_add_link_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_ADD_LINK_ID_RATE)) != 0)
+    {
+        switch (this->rate)
+        {
+            case BCMOLT_EPON_LINK_RATE_TEN_TEN:
+                break;
+            case BCMOLT_EPON_LINK_RATE_TEN_ONE:
+                break;
+            case BCMOLT_EPON_LINK_RATE_ONE_ONE:
+                break;
+            default:
+                *failed_prop = BCMOLT_EPON_NI_ADD_LINK_ID_RATE;
+                return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_epon_ni_add_multicast_link_data_set_default(bcmolt_epon_ni_add_multicast_link_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_ADD_MULTICAST_LINK_ID_MAC_ADDRESS)) != 0)
+    {
+        bcmos_mac_address_init(&this->mac_address);
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_ADD_MULTICAST_LINK_ID_RATE)) != 0)
+    {
+        this->rate = BCMOLT_EPON_LINK_RATE_TEN_TEN;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_ni_add_multicast_link_data_pack(const bcmolt_epon_ni_add_multicast_link_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_ADD_MULTICAST_LINK_ID_MAC_ADDRESS)) != 0)
+    {
+        if (!bcmolt_buf_write_mac_address(buf, this->mac_address))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_ADD_MULTICAST_LINK_ID_RATE)) != 0)
+    {
+        if (!bcmolt_epon_link_rate_pack(this->rate, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_epon_ni_add_multicast_link_data_get_packed_length(const bcmolt_epon_ni_add_multicast_link_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_ADD_MULTICAST_LINK_ID_MAC_ADDRESS)) != 0)
+    {
+        count += 6;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_ADD_MULTICAST_LINK_ID_RATE)) != 0)
+    {
+        count += 2;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_ni_add_multicast_link_data_unpack(bcmolt_epon_ni_add_multicast_link_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_ADD_MULTICAST_LINK_ID_MAC_ADDRESS)) != 0)
+    {
+        if (!bcmolt_buf_read_mac_address(buf, &this->mac_address))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_ADD_MULTICAST_LINK_ID_RATE)) != 0)
+    {
+        if (!bcmolt_epon_link_rate_unpack(&this->rate, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_ni_add_multicast_link_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_ADD_MULTICAST_LINK_ID_MAC_ADDRESS)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 6))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_ADD_MULTICAST_LINK_ID_RATE)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 2))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_ni_add_multicast_link_data_bounds_check(const bcmolt_epon_ni_add_multicast_link_data *this, bcmolt_presence_mask fields_present, bcmolt_epon_ni_add_multicast_link_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_ADD_MULTICAST_LINK_ID_RATE)) != 0)
+    {
+        switch (this->rate)
+        {
+            case BCMOLT_EPON_LINK_RATE_TEN_TEN:
+                break;
+            case BCMOLT_EPON_LINK_RATE_TEN_ONE:
+                break;
+            case BCMOLT_EPON_LINK_RATE_ONE_ONE:
+                break;
+            default:
+                *failed_prop = BCMOLT_EPON_NI_ADD_MULTICAST_LINK_ID_RATE;
+                return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_epon_ni_add_protected_standby_link_data_set_default(bcmolt_epon_ni_add_protected_standby_link_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_ADD_PROTECTED_STANDBY_LINK_ID_MAC_ADDRESS)) != 0)
+    {
+        bcmos_mac_address_init(&this->mac_address);
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_ADD_PROTECTED_STANDBY_LINK_ID_WORKING_LINK_INFO)) != 0)
+    {
+        this->working_link_info.link_status = (bcmolt_epon_link_status) 0;
+        this->working_link_info.rate = BCMOLT_EPON_LINK_RATE_TEN_TEN;
+        this->working_link_info.llid = (bcmolt_epon_llid) 0;
+        this->working_link_info.mpcp_discovery_info = (bcmolt_mpcp_discovery_info) 0;
+        this->working_link_info.onu_laser_on_time_tq = (bcmolt_time_quanta) 0;
+        this->working_link_info.onu_laser_off_time_tq = (bcmolt_time_quanta) 0;
+        this->working_link_info.pending_grants = 0;
+        this->working_link_info.range_value_tq = (bcmolt_time_quanta) 0;
+        this->working_link_info.tunnel_id = (bcmolt_epon_tunnel_id) 0;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_ni_add_protected_standby_link_data_pack(const bcmolt_epon_ni_add_protected_standby_link_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_ADD_PROTECTED_STANDBY_LINK_ID_MAC_ADDRESS)) != 0)
+    {
+        if (!bcmolt_buf_write_mac_address(buf, this->mac_address))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_ADD_PROTECTED_STANDBY_LINK_ID_WORKING_LINK_INFO)) != 0)
+    {
+        if (!bcmolt_epon_link_info_pack(&this->working_link_info, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_epon_ni_add_protected_standby_link_data_get_packed_length(const bcmolt_epon_ni_add_protected_standby_link_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_ADD_PROTECTED_STANDBY_LINK_ID_MAC_ADDRESS)) != 0)
+    {
+        count += 6;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_ADD_PROTECTED_STANDBY_LINK_ID_WORKING_LINK_INFO)) != 0)
+    {
+        count += 24;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_ni_add_protected_standby_link_data_unpack(bcmolt_epon_ni_add_protected_standby_link_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_ADD_PROTECTED_STANDBY_LINK_ID_MAC_ADDRESS)) != 0)
+    {
+        if (!bcmolt_buf_read_mac_address(buf, &this->mac_address))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_ADD_PROTECTED_STANDBY_LINK_ID_WORKING_LINK_INFO)) != 0)
+    {
+        if (!bcmolt_epon_link_info_unpack(&this->working_link_info, buf, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_ni_add_protected_standby_link_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_ADD_PROTECTED_STANDBY_LINK_ID_MAC_ADDRESS)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 6))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_ADD_PROTECTED_STANDBY_LINK_ID_WORKING_LINK_INFO)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 24))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_ni_add_protected_standby_link_data_bounds_check(const bcmolt_epon_ni_add_protected_standby_link_data *this, bcmolt_presence_mask fields_present, bcmolt_epon_ni_add_protected_standby_link_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_ADD_PROTECTED_STANDBY_LINK_ID_WORKING_LINK_INFO)) != 0)
+    {
+        if (!bcmolt_epon_link_info_bounds_check(&this->working_link_info))
+        {
+            *failed_prop = BCMOLT_EPON_NI_ADD_PROTECTED_STANDBY_LINK_ID_WORKING_LINK_INFO;
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_epon_ni_issue_rssi_grant_data_set_default(bcmolt_epon_ni_issue_rssi_grant_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_ISSUE_RSSI_GRANT_ID_GRANTED_LINK)) != 0)
+    {
+        bcmos_mac_address_init(&this->granted_link);
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_ISSUE_RSSI_GRANT_ID_TRIGGER_WIDTH)) != 0)
+    {
+        this->trigger_width = 32;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_ISSUE_RSSI_GRANT_ID_TRIGGER_DELAY)) != 0)
+    {
+        this->trigger_delay = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_ISSUE_RSSI_GRANT_ID_SAMPLE_PERIOD)) != 0)
+    {
+        this->sample_period = 500;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_ni_issue_rssi_grant_data_pack(const bcmolt_epon_ni_issue_rssi_grant_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_ISSUE_RSSI_GRANT_ID_GRANTED_LINK)) != 0)
+    {
+        if (!bcmolt_buf_write_mac_address(buf, this->granted_link))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_ISSUE_RSSI_GRANT_ID_TRIGGER_WIDTH)) != 0)
+    {
+        if (!bcmolt_buf_write_u16(buf, this->trigger_width))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_ISSUE_RSSI_GRANT_ID_TRIGGER_DELAY)) != 0)
+    {
+        if (!bcmolt_buf_write_u16(buf, this->trigger_delay))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_ISSUE_RSSI_GRANT_ID_SAMPLE_PERIOD)) != 0)
+    {
+        if (!bcmolt_buf_write_u16(buf, this->sample_period))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_epon_ni_issue_rssi_grant_data_get_packed_length(const bcmolt_epon_ni_issue_rssi_grant_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_ISSUE_RSSI_GRANT_ID_GRANTED_LINK)) != 0)
+    {
+        count += 6;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_ISSUE_RSSI_GRANT_ID_TRIGGER_WIDTH)) != 0)
+    {
+        count += 2;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_ISSUE_RSSI_GRANT_ID_TRIGGER_DELAY)) != 0)
+    {
+        count += 2;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_ISSUE_RSSI_GRANT_ID_SAMPLE_PERIOD)) != 0)
+    {
+        count += 2;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_ni_issue_rssi_grant_data_unpack(bcmolt_epon_ni_issue_rssi_grant_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_ISSUE_RSSI_GRANT_ID_GRANTED_LINK)) != 0)
+    {
+        if (!bcmolt_buf_read_mac_address(buf, &this->granted_link))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_ISSUE_RSSI_GRANT_ID_TRIGGER_WIDTH)) != 0)
+    {
+        if (!bcmolt_buf_read_u16(buf, &this->trigger_width))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_ISSUE_RSSI_GRANT_ID_TRIGGER_DELAY)) != 0)
+    {
+        if (!bcmolt_buf_read_u16(buf, &this->trigger_delay))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_ISSUE_RSSI_GRANT_ID_SAMPLE_PERIOD)) != 0)
+    {
+        if (!bcmolt_buf_read_u16(buf, &this->sample_period))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_ni_issue_rssi_grant_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_ISSUE_RSSI_GRANT_ID_GRANTED_LINK)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 6))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_ISSUE_RSSI_GRANT_ID_TRIGGER_WIDTH)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 2))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_ISSUE_RSSI_GRANT_ID_TRIGGER_DELAY)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 2))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_ISSUE_RSSI_GRANT_ID_SAMPLE_PERIOD)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 2))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_ni_issue_rssi_grant_data_bounds_check(const bcmolt_epon_ni_issue_rssi_grant_data *this, bcmolt_presence_mask fields_present, bcmolt_epon_ni_issue_rssi_grant_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_ISSUE_RSSI_GRANT_ID_TRIGGER_WIDTH)) != 0)
+    {
+        if (this->trigger_width < 32)
+        {
+            *failed_prop = BCMOLT_EPON_NI_ISSUE_RSSI_GRANT_ID_TRIGGER_WIDTH;
+            return BCMOS_FALSE;
+        }
+
+        if (this->trigger_width > 3000)
+        {
+            *failed_prop = BCMOLT_EPON_NI_ISSUE_RSSI_GRANT_ID_TRIGGER_WIDTH;
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_ISSUE_RSSI_GRANT_ID_TRIGGER_DELAY)) != 0)
+    {
+        if (this->trigger_delay > 1500)
+        {
+            *failed_prop = BCMOLT_EPON_NI_ISSUE_RSSI_GRANT_ID_TRIGGER_DELAY;
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_ISSUE_RSSI_GRANT_ID_SAMPLE_PERIOD)) != 0)
+    {
+        if (this->sample_period < 100)
+        {
+            *failed_prop = BCMOLT_EPON_NI_ISSUE_RSSI_GRANT_ID_SAMPLE_PERIOD;
+            return BCMOS_FALSE;
+        }
+
+        if (this->sample_period > 900)
+        {
+            *failed_prop = BCMOLT_EPON_NI_ISSUE_RSSI_GRANT_ID_SAMPLE_PERIOD;
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_epon_ni_protection_switching_apply_rerange_delta_data_set_default(bcmolt_epon_ni_protection_switching_apply_rerange_delta_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_PROTECTION_SWITCHING_APPLY_RERANGE_DELTA_ID_RERANGE_DELTA)) != 0)
+    {
+        this->rerange_delta = 0;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_ni_protection_switching_apply_rerange_delta_data_pack(const bcmolt_epon_ni_protection_switching_apply_rerange_delta_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_PROTECTION_SWITCHING_APPLY_RERANGE_DELTA_ID_RERANGE_DELTA)) != 0)
+    {
+        if (!bcmolt_buf_write_u32(buf, this->rerange_delta))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_epon_ni_protection_switching_apply_rerange_delta_data_get_packed_length(const bcmolt_epon_ni_protection_switching_apply_rerange_delta_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_PROTECTION_SWITCHING_APPLY_RERANGE_DELTA_ID_RERANGE_DELTA)) != 0)
+    {
+        count += 4;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_ni_protection_switching_apply_rerange_delta_data_unpack(bcmolt_epon_ni_protection_switching_apply_rerange_delta_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_PROTECTION_SWITCHING_APPLY_RERANGE_DELTA_ID_RERANGE_DELTA)) != 0)
+    {
+        if (!bcmolt_buf_read_u32(buf, &this->rerange_delta))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_ni_protection_switching_apply_rerange_delta_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_PROTECTION_SWITCHING_APPLY_RERANGE_DELTA_ID_RERANGE_DELTA)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 4))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_ni_protection_switching_apply_rerange_delta_data_bounds_check(const bcmolt_epon_ni_protection_switching_apply_rerange_delta_data *this, bcmolt_presence_mask fields_present, bcmolt_epon_ni_protection_switching_apply_rerange_delta_id *failed_prop)
+{
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_epon_ni_rogue_llid_scan_data_set_default(bcmolt_epon_ni_rogue_llid_scan_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_ROGUE_LLID_SCAN_ID_MODE)) != 0)
+    {
+        this->mode = BCMOS_FALSE;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_ROGUE_LLID_SCAN_ID_LLID)) != 0)
+    {
+        this->llid = (bcmolt_epon_llid) 0;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_ni_rogue_llid_scan_data_pack(const bcmolt_epon_ni_rogue_llid_scan_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_ROGUE_LLID_SCAN_ID_MODE)) != 0)
+    {
+        if (!bcmolt_buf_write_bool(buf, this->mode))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_ROGUE_LLID_SCAN_ID_LLID)) != 0)
+    {
+        if (!bcmolt_buf_write_u16(buf, (uint16_t) this->llid))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_epon_ni_rogue_llid_scan_data_get_packed_length(const bcmolt_epon_ni_rogue_llid_scan_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_ROGUE_LLID_SCAN_ID_MODE)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_ROGUE_LLID_SCAN_ID_LLID)) != 0)
+    {
+        count += 2;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_ni_rogue_llid_scan_data_unpack(bcmolt_epon_ni_rogue_llid_scan_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_ROGUE_LLID_SCAN_ID_MODE)) != 0)
+    {
+        if (!bcmolt_buf_read_bool(buf, &this->mode))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_ROGUE_LLID_SCAN_ID_LLID)) != 0)
+    {
+        if (!bcmolt_buf_read_u16(buf, (uint16_t *) &this->llid))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_ni_rogue_llid_scan_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_ROGUE_LLID_SCAN_ID_MODE)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_ROGUE_LLID_SCAN_ID_LLID)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 2))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_ni_rogue_llid_scan_data_bounds_check(const bcmolt_epon_ni_rogue_llid_scan_data *this, bcmolt_presence_mask fields_present, bcmolt_epon_ni_rogue_llid_scan_id *failed_prop)
+{
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_epon_ni_set_epon_ni_en_state_data_set_default(bcmolt_epon_ni_set_epon_ni_en_state_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_SET_EPON_NI_EN_STATE_ID_NEW_STATE)) != 0)
+    {
+        this->new_state = BCMOLT_EPON_NI_EN_STATE_DISABLED;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_ni_set_epon_ni_en_state_data_pack(const bcmolt_epon_ni_set_epon_ni_en_state_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_SET_EPON_NI_EN_STATE_ID_NEW_STATE)) != 0)
+    {
+        if (!bcmolt_epon_ni_en_state_pack(this->new_state, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_epon_ni_set_epon_ni_en_state_data_get_packed_length(const bcmolt_epon_ni_set_epon_ni_en_state_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_SET_EPON_NI_EN_STATE_ID_NEW_STATE)) != 0)
+    {
+        count += 1;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_ni_set_epon_ni_en_state_data_unpack(bcmolt_epon_ni_set_epon_ni_en_state_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_SET_EPON_NI_EN_STATE_ID_NEW_STATE)) != 0)
+    {
+        if (!bcmolt_epon_ni_en_state_unpack(&this->new_state, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_ni_set_epon_ni_en_state_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_SET_EPON_NI_EN_STATE_ID_NEW_STATE)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_ni_set_epon_ni_en_state_data_bounds_check(const bcmolt_epon_ni_set_epon_ni_en_state_data *this, bcmolt_presence_mask fields_present, bcmolt_epon_ni_set_epon_ni_en_state_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_SET_EPON_NI_EN_STATE_ID_NEW_STATE)) != 0)
+    {
+        switch (this->new_state)
+        {
+            case BCMOLT_EPON_NI_EN_STATE_DISABLED:
+                break;
+            case BCMOLT_EPON_NI_EN_STATE_ENABLED:
+                break;
+            case BCMOLT_EPON_NI_EN_STATE_PROTECTED_WORKING:
+                break;
+            case BCMOLT_EPON_NI_EN_STATE_PROTECTED_STANDBY:
+                break;
+            case BCMOLT_EPON_NI_EN_STATE_PROCESSING:
+                break;
+            default:
+                *failed_prop = BCMOLT_EPON_NI_SET_EPON_NI_EN_STATE_ID_NEW_STATE;
+                return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_epon_ni_start_onu_upgrade_data_set_default(bcmolt_epon_ni_start_onu_upgrade_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_START_ONU_UPGRADE_ID_LIST_OF_ONU_IDS)) != 0)
+    {
+        this->list_of_onu_ids.len = 0;
+        this->list_of_onu_ids.val = NULL;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_ni_start_onu_upgrade_data_pack(const bcmolt_epon_ni_start_onu_upgrade_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_START_ONU_UPGRADE_ID_LIST_OF_ONU_IDS)) != 0)
+    {
+        if (!bcmolt_macaddress_list_u32_pack(&this->list_of_onu_ids, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_epon_ni_start_onu_upgrade_data_get_packed_length(const bcmolt_epon_ni_start_onu_upgrade_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_START_ONU_UPGRADE_ID_LIST_OF_ONU_IDS)) != 0)
+    {
+        count += bcmolt_macaddress_list_u32_get_packed_length(&this->list_of_onu_ids);
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_ni_start_onu_upgrade_data_unpack(bcmolt_epon_ni_start_onu_upgrade_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_START_ONU_UPGRADE_ID_LIST_OF_ONU_IDS)) != 0)
+    {
+        if (!bcmolt_macaddress_list_u32_unpack(&this->list_of_onu_ids, buf, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_ni_start_onu_upgrade_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_START_ONU_UPGRADE_ID_LIST_OF_ONU_IDS)) != 0)
+    {
+        if (!bcmolt_macaddress_list_u32_scan(packed, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_ni_start_onu_upgrade_data_bounds_check(const bcmolt_epon_ni_start_onu_upgrade_data *this, bcmolt_presence_mask fields_present, bcmolt_epon_ni_start_onu_upgrade_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_NI_START_ONU_UPGRADE_ID_LIST_OF_ONU_IDS)) != 0)
+    {
+        if (!bcmolt_macaddress_list_u32_bounds_check(&this->list_of_onu_ids))
+        {
+            *failed_prop = BCMOLT_EPON_NI_START_ONU_UPGRADE_ID_LIST_OF_ONU_IDS;
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_epon_onu_10g_us_key_set_default(bcmolt_epon_onu_10g_us_key *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_ONU_10G_US_KEY_ID_EPON_NI)) != 0)
+    {
+        this->epon_ni = (bcmolt_epon_ni) 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_ONU_10G_US_KEY_ID_ONU_ID)) != 0)
+    {
+        this->onu_id = (bcmolt_epon_onu_id) 0;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_onu_10g_us_key_pack(const bcmolt_epon_onu_10g_us_key *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_ONU_10G_US_KEY_ID_EPON_NI)) != 0)
+    {
+        if (!bcmolt_buf_write_u16(buf, (uint16_t) this->epon_ni))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_ONU_10G_US_KEY_ID_ONU_ID)) != 0)
+    {
+        if (!bcmolt_buf_write_u8(buf, (uint8_t) this->onu_id))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_epon_onu_10g_us_key_get_packed_length(const bcmolt_epon_onu_10g_us_key *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_EPON_ONU_10G_US_KEY_ID_EPON_NI)) != 0)
+    {
+        count += 2;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_ONU_10G_US_KEY_ID_ONU_ID)) != 0)
+    {
+        count += 1;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_onu_10g_us_key_unpack(bcmolt_epon_onu_10g_us_key *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_ONU_10G_US_KEY_ID_EPON_NI)) != 0)
+    {
+        if (!bcmolt_buf_read_u16(buf, (uint16_t *) &this->epon_ni))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_ONU_10G_US_KEY_ID_ONU_ID)) != 0)
+    {
+        if (!bcmolt_buf_read_u8(buf, (uint8_t *) &this->onu_id))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_onu_10g_us_key_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_ONU_10G_US_KEY_ID_EPON_NI)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 2))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_ONU_10G_US_KEY_ID_ONU_ID)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_onu_10g_us_key_bounds_check(const bcmolt_epon_onu_10g_us_key *this, bcmolt_presence_mask fields_present, bcmolt_epon_onu_10g_us_key_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_ONU_10G_US_KEY_ID_ONU_ID)) != 0)
+    {
+        if (this->onu_id > (bcmolt_epon_onu_id) 127)
+        {
+            *failed_prop = BCMOLT_EPON_ONU_10G_US_KEY_ID_ONU_ID;
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_epon_onu_10g_us_cfg_data_set_default(bcmolt_epon_onu_10g_us_cfg_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_ONU_10G_US_CFG_ID_ALL_LINKS)) != 0)
+    {
+        this->all_links.len = 0;
+        this->all_links.val = NULL;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_onu_10g_us_cfg_data_pack(const bcmolt_epon_onu_10g_us_cfg_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_ONU_10G_US_CFG_ID_ALL_LINKS)) != 0)
+    {
+        if (!bcmolt_macaddress_list_u32_max_2048_pack(&this->all_links, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_epon_onu_10g_us_cfg_data_get_packed_length(const bcmolt_epon_onu_10g_us_cfg_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_EPON_ONU_10G_US_CFG_ID_ALL_LINKS)) != 0)
+    {
+        count += bcmolt_macaddress_list_u32_max_2048_get_packed_length(&this->all_links);
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_onu_10g_us_cfg_data_unpack(bcmolt_epon_onu_10g_us_cfg_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_ONU_10G_US_CFG_ID_ALL_LINKS)) != 0)
+    {
+        if (!bcmolt_macaddress_list_u32_max_2048_unpack(&this->all_links, buf, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_onu_10g_us_cfg_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_ONU_10G_US_CFG_ID_ALL_LINKS)) != 0)
+    {
+        if (!bcmolt_macaddress_list_u32_max_2048_scan(packed, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_onu_10g_us_cfg_data_bounds_check(const bcmolt_epon_onu_10g_us_cfg_data *this, bcmolt_presence_mask fields_present, bcmolt_epon_onu_10g_us_cfg_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_ONU_10G_US_CFG_ID_ALL_LINKS)) != 0)
+    {
+        if (this->all_links.len > 2048)
+        {
+            return BCMOS_FALSE;
+        }
+
+        if (!bcmolt_macaddress_list_u32_max_2048_bounds_check(&this->all_links))
+        {
+            *failed_prop = BCMOLT_EPON_ONU_10G_US_CFG_ID_ALL_LINKS;
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_epon_onu_10g_us_stat_data_set_default(bcmolt_epon_onu_10g_us_stat_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_ONU_10G_US_STAT_ID_FEC_CODE_WORDS_TOTAL)) != 0)
+    {
+        this->fec_code_words_total = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_ONU_10G_US_STAT_ID_FEC_CODE_WORDS_DECODE_FAILS)) != 0)
+    {
+        this->fec_code_words_decode_fails = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_ONU_10G_US_STAT_ID_FEC_ZEROES_CORRECTED)) != 0)
+    {
+        this->fec_zeroes_corrected = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_ONU_10G_US_STAT_ID_FEC_ONES_CORRECTED)) != 0)
+    {
+        this->fec_ones_corrected = 0;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_onu_10g_us_stat_data_pack(const bcmolt_epon_onu_10g_us_stat_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_ONU_10G_US_STAT_ID_FEC_CODE_WORDS_TOTAL)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->fec_code_words_total))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_ONU_10G_US_STAT_ID_FEC_CODE_WORDS_DECODE_FAILS)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->fec_code_words_decode_fails))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_ONU_10G_US_STAT_ID_FEC_ZEROES_CORRECTED)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->fec_zeroes_corrected))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_ONU_10G_US_STAT_ID_FEC_ONES_CORRECTED)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->fec_ones_corrected))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_epon_onu_10g_us_stat_data_get_packed_length(const bcmolt_epon_onu_10g_us_stat_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_EPON_ONU_10G_US_STAT_ID_FEC_CODE_WORDS_TOTAL)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_ONU_10G_US_STAT_ID_FEC_CODE_WORDS_DECODE_FAILS)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_ONU_10G_US_STAT_ID_FEC_ZEROES_CORRECTED)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_ONU_10G_US_STAT_ID_FEC_ONES_CORRECTED)) != 0)
+    {
+        count += 8;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_onu_10g_us_stat_data_unpack(bcmolt_epon_onu_10g_us_stat_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_ONU_10G_US_STAT_ID_FEC_CODE_WORDS_TOTAL)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->fec_code_words_total))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_ONU_10G_US_STAT_ID_FEC_CODE_WORDS_DECODE_FAILS)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->fec_code_words_decode_fails))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_ONU_10G_US_STAT_ID_FEC_ZEROES_CORRECTED)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->fec_zeroes_corrected))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_ONU_10G_US_STAT_ID_FEC_ONES_CORRECTED)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->fec_ones_corrected))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_onu_10g_us_stat_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_ONU_10G_US_STAT_ID_FEC_CODE_WORDS_TOTAL)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_ONU_10G_US_STAT_ID_FEC_CODE_WORDS_DECODE_FAILS)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_ONU_10G_US_STAT_ID_FEC_ZEROES_CORRECTED)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_ONU_10G_US_STAT_ID_FEC_ONES_CORRECTED)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_onu_10g_us_stat_data_bounds_check(const bcmolt_epon_onu_10g_us_stat_data *this, bcmolt_presence_mask fields_present, bcmolt_epon_onu_10g_us_stat_id *failed_prop)
+{
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_epon_onu_10g_us_stat_cfg_data_set_default(bcmolt_epon_onu_10g_us_stat_cfg_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_ONU_10G_US_STAT_CFG_ID_CFG)) != 0)
+    {
+        this->cfg.trigger.type = BCMOLT_STAT_CONDITION_TYPE_NONE;
+        this->cfg.soak.active_soak_time = 0;
+        this->cfg.soak.clear_soak_time = 0;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_onu_10g_us_stat_cfg_data_pack(const bcmolt_epon_onu_10g_us_stat_cfg_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_ONU_10G_US_STAT_CFG_ID_CFG)) != 0)
+    {
+        if (!bcmolt_stat_alarm_config_pack(&this->cfg, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_epon_onu_10g_us_stat_cfg_data_get_packed_length(const bcmolt_epon_onu_10g_us_stat_cfg_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_EPON_ONU_10G_US_STAT_CFG_ID_CFG)) != 0)
+    {
+        count += bcmolt_stat_alarm_config_get_packed_length(&this->cfg);
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_onu_10g_us_stat_cfg_data_unpack(bcmolt_epon_onu_10g_us_stat_cfg_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_ONU_10G_US_STAT_CFG_ID_CFG)) != 0)
+    {
+        if (!bcmolt_stat_alarm_config_unpack(&this->cfg, buf, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_onu_10g_us_stat_cfg_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_ONU_10G_US_STAT_CFG_ID_CFG)) != 0)
+    {
+        if (!bcmolt_stat_alarm_config_scan(packed, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_onu_10g_us_stat_cfg_data_bounds_check(const bcmolt_epon_onu_10g_us_stat_cfg_data *this, bcmolt_presence_mask fields_present, bcmolt_epon_onu_10g_us_stat_cfg_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_ONU_10G_US_STAT_CFG_ID_CFG)) != 0)
+    {
+        if (!bcmolt_stat_alarm_config_bounds_check(&this->cfg))
+        {
+            *failed_prop = BCMOLT_EPON_ONU_10G_US_STAT_CFG_ID_CFG;
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_epon_onu_10g_us_stat_alarm_cleared_data_set_default(bcmolt_epon_onu_10g_us_stat_alarm_cleared_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_ONU_10G_US_STAT_ALARM_CLEARED_ID_STAT)) != 0)
+    {
+        this->stat = BCMOLT_EPON_ONU_10G_US_STAT_ID_FEC_CODE_WORDS_TOTAL;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_onu_10g_us_stat_alarm_cleared_data_pack(const bcmolt_epon_onu_10g_us_stat_alarm_cleared_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_ONU_10G_US_STAT_ALARM_CLEARED_ID_STAT)) != 0)
+    {
+        if (!bcmolt_epon_onu_10g_us_stat_id_pack(this->stat, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_epon_onu_10g_us_stat_alarm_cleared_data_get_packed_length(const bcmolt_epon_onu_10g_us_stat_alarm_cleared_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_EPON_ONU_10G_US_STAT_ALARM_CLEARED_ID_STAT)) != 0)
+    {
+        count += 2;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_onu_10g_us_stat_alarm_cleared_data_unpack(bcmolt_epon_onu_10g_us_stat_alarm_cleared_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_ONU_10G_US_STAT_ALARM_CLEARED_ID_STAT)) != 0)
+    {
+        if (!bcmolt_epon_onu_10g_us_stat_id_unpack(&this->stat, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_onu_10g_us_stat_alarm_cleared_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_ONU_10G_US_STAT_ALARM_CLEARED_ID_STAT)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 2))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_onu_10g_us_stat_alarm_cleared_data_bounds_check(const bcmolt_epon_onu_10g_us_stat_alarm_cleared_data *this, bcmolt_presence_mask fields_present, bcmolt_epon_onu_10g_us_stat_alarm_cleared_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_ONU_10G_US_STAT_ALARM_CLEARED_ID_STAT)) != 0)
+    {
+        switch (this->stat)
+        {
+            case BCMOLT_EPON_ONU_10G_US_STAT_ID_FEC_CODE_WORDS_TOTAL:
+                break;
+            case BCMOLT_EPON_ONU_10G_US_STAT_ID_FEC_CODE_WORDS_DECODE_FAILS:
+                break;
+            case BCMOLT_EPON_ONU_10G_US_STAT_ID_FEC_ZEROES_CORRECTED:
+                break;
+            case BCMOLT_EPON_ONU_10G_US_STAT_ID_FEC_ONES_CORRECTED:
+                break;
+            default:
+                *failed_prop = BCMOLT_EPON_ONU_10G_US_STAT_ALARM_CLEARED_ID_STAT;
+                return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_epon_onu_10g_us_stat_alarm_raised_data_set_default(bcmolt_epon_onu_10g_us_stat_alarm_raised_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_ONU_10G_US_STAT_ALARM_RAISED_ID_STAT)) != 0)
+    {
+        this->stat = BCMOLT_EPON_ONU_10G_US_STAT_ID_FEC_CODE_WORDS_TOTAL;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_onu_10g_us_stat_alarm_raised_data_pack(const bcmolt_epon_onu_10g_us_stat_alarm_raised_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_ONU_10G_US_STAT_ALARM_RAISED_ID_STAT)) != 0)
+    {
+        if (!bcmolt_epon_onu_10g_us_stat_id_pack(this->stat, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_epon_onu_10g_us_stat_alarm_raised_data_get_packed_length(const bcmolt_epon_onu_10g_us_stat_alarm_raised_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_EPON_ONU_10G_US_STAT_ALARM_RAISED_ID_STAT)) != 0)
+    {
+        count += 2;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_onu_10g_us_stat_alarm_raised_data_unpack(bcmolt_epon_onu_10g_us_stat_alarm_raised_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_ONU_10G_US_STAT_ALARM_RAISED_ID_STAT)) != 0)
+    {
+        if (!bcmolt_epon_onu_10g_us_stat_id_unpack(&this->stat, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_onu_10g_us_stat_alarm_raised_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_ONU_10G_US_STAT_ALARM_RAISED_ID_STAT)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 2))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_onu_10g_us_stat_alarm_raised_data_bounds_check(const bcmolt_epon_onu_10g_us_stat_alarm_raised_data *this, bcmolt_presence_mask fields_present, bcmolt_epon_onu_10g_us_stat_alarm_raised_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_ONU_10G_US_STAT_ALARM_RAISED_ID_STAT)) != 0)
+    {
+        switch (this->stat)
+        {
+            case BCMOLT_EPON_ONU_10G_US_STAT_ID_FEC_CODE_WORDS_TOTAL:
+                break;
+            case BCMOLT_EPON_ONU_10G_US_STAT_ID_FEC_CODE_WORDS_DECODE_FAILS:
+                break;
+            case BCMOLT_EPON_ONU_10G_US_STAT_ID_FEC_ZEROES_CORRECTED:
+                break;
+            case BCMOLT_EPON_ONU_10G_US_STAT_ID_FEC_ONES_CORRECTED:
+                break;
+            default:
+                *failed_prop = BCMOLT_EPON_ONU_10G_US_STAT_ALARM_RAISED_ID_STAT;
+                return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_epon_onu_10g_us_auto_cfg_data_set_default(bcmolt_epon_onu_10g_us_auto_cfg_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_ONU_10G_US_AUTO_CFG_ID_STAT_ALARM_CLEARED)) != 0)
+    {
+        this->stat_alarm_cleared = BCMOS_FALSE;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_ONU_10G_US_AUTO_CFG_ID_STAT_ALARM_RAISED)) != 0)
+    {
+        this->stat_alarm_raised = BCMOS_FALSE;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_onu_10g_us_auto_cfg_data_pack(const bcmolt_epon_onu_10g_us_auto_cfg_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_ONU_10G_US_AUTO_CFG_ID_STAT_ALARM_CLEARED)) != 0)
+    {
+        if (!bcmolt_buf_write_bool(buf, this->stat_alarm_cleared))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_ONU_10G_US_AUTO_CFG_ID_STAT_ALARM_RAISED)) != 0)
+    {
+        if (!bcmolt_buf_write_bool(buf, this->stat_alarm_raised))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_epon_onu_10g_us_auto_cfg_data_get_packed_length(const bcmolt_epon_onu_10g_us_auto_cfg_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_EPON_ONU_10G_US_AUTO_CFG_ID_STAT_ALARM_CLEARED)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_ONU_10G_US_AUTO_CFG_ID_STAT_ALARM_RAISED)) != 0)
+    {
+        count += 1;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_onu_10g_us_auto_cfg_data_unpack(bcmolt_epon_onu_10g_us_auto_cfg_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_ONU_10G_US_AUTO_CFG_ID_STAT_ALARM_CLEARED)) != 0)
+    {
+        if (!bcmolt_buf_read_bool(buf, &this->stat_alarm_cleared))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_ONU_10G_US_AUTO_CFG_ID_STAT_ALARM_RAISED)) != 0)
+    {
+        if (!bcmolt_buf_read_bool(buf, &this->stat_alarm_raised))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_onu_10g_us_auto_cfg_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_ONU_10G_US_AUTO_CFG_ID_STAT_ALARM_CLEARED)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_ONU_10G_US_AUTO_CFG_ID_STAT_ALARM_RAISED)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_onu_10g_us_auto_cfg_data_bounds_check(const bcmolt_epon_onu_10g_us_auto_cfg_data *this, bcmolt_presence_mask fields_present, bcmolt_epon_onu_10g_us_auto_cfg_id *failed_prop)
+{
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_epon_onu_1g_us_key_set_default(bcmolt_epon_onu_1g_us_key *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_ONU_1G_US_KEY_ID_EPON_NI)) != 0)
+    {
+        this->epon_ni = (bcmolt_epon_ni) 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_ONU_1G_US_KEY_ID_ONU_ID)) != 0)
+    {
+        this->onu_id = (bcmolt_epon_onu_id) 0;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_onu_1g_us_key_pack(const bcmolt_epon_onu_1g_us_key *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_ONU_1G_US_KEY_ID_EPON_NI)) != 0)
+    {
+        if (!bcmolt_buf_write_u16(buf, (uint16_t) this->epon_ni))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_ONU_1G_US_KEY_ID_ONU_ID)) != 0)
+    {
+        if (!bcmolt_buf_write_u8(buf, (uint8_t) this->onu_id))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_epon_onu_1g_us_key_get_packed_length(const bcmolt_epon_onu_1g_us_key *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_EPON_ONU_1G_US_KEY_ID_EPON_NI)) != 0)
+    {
+        count += 2;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_ONU_1G_US_KEY_ID_ONU_ID)) != 0)
+    {
+        count += 1;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_onu_1g_us_key_unpack(bcmolt_epon_onu_1g_us_key *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_ONU_1G_US_KEY_ID_EPON_NI)) != 0)
+    {
+        if (!bcmolt_buf_read_u16(buf, (uint16_t *) &this->epon_ni))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_ONU_1G_US_KEY_ID_ONU_ID)) != 0)
+    {
+        if (!bcmolt_buf_read_u8(buf, (uint8_t *) &this->onu_id))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_onu_1g_us_key_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_ONU_1G_US_KEY_ID_EPON_NI)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 2))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_ONU_1G_US_KEY_ID_ONU_ID)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_onu_1g_us_key_bounds_check(const bcmolt_epon_onu_1g_us_key *this, bcmolt_presence_mask fields_present, bcmolt_epon_onu_1g_us_key_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_ONU_1G_US_KEY_ID_ONU_ID)) != 0)
+    {
+        if (this->onu_id > (bcmolt_epon_onu_id) 127)
+        {
+            *failed_prop = BCMOLT_EPON_ONU_1G_US_KEY_ID_ONU_ID;
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_epon_onu_1g_us_cfg_data_set_default(bcmolt_epon_onu_1g_us_cfg_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_ONU_1G_US_CFG_ID_ALL_LINKS)) != 0)
+    {
+        this->all_links.len = 0;
+        this->all_links.val = NULL;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_onu_1g_us_cfg_data_pack(const bcmolt_epon_onu_1g_us_cfg_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_ONU_1G_US_CFG_ID_ALL_LINKS)) != 0)
+    {
+        if (!bcmolt_macaddress_list_u32_pack(&this->all_links, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_epon_onu_1g_us_cfg_data_get_packed_length(const bcmolt_epon_onu_1g_us_cfg_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_EPON_ONU_1G_US_CFG_ID_ALL_LINKS)) != 0)
+    {
+        count += bcmolt_macaddress_list_u32_get_packed_length(&this->all_links);
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_onu_1g_us_cfg_data_unpack(bcmolt_epon_onu_1g_us_cfg_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_ONU_1G_US_CFG_ID_ALL_LINKS)) != 0)
+    {
+        if (!bcmolt_macaddress_list_u32_unpack(&this->all_links, buf, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_onu_1g_us_cfg_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_ONU_1G_US_CFG_ID_ALL_LINKS)) != 0)
+    {
+        if (!bcmolt_macaddress_list_u32_scan(packed, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_onu_1g_us_cfg_data_bounds_check(const bcmolt_epon_onu_1g_us_cfg_data *this, bcmolt_presence_mask fields_present, bcmolt_epon_onu_1g_us_cfg_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_ONU_1G_US_CFG_ID_ALL_LINKS)) != 0)
+    {
+        if (!bcmolt_macaddress_list_u32_bounds_check(&this->all_links))
+        {
+            *failed_prop = BCMOLT_EPON_ONU_1G_US_CFG_ID_ALL_LINKS;
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_epon_onu_1g_us_stat_data_set_default(bcmolt_epon_onu_1g_us_stat_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_ONU_1G_US_STAT_ID_GOOD_FRAMES)) != 0)
+    {
+        this->good_frames = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_ONU_1G_US_STAT_ID_GOOD_BYTES)) != 0)
+    {
+        this->good_bytes = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_ONU_1G_US_STAT_ID_OVERSZ_FRAMES)) != 0)
+    {
+        this->oversz_frames = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_ONU_1G_US_STAT_ID_NON_FEC_GOOD_FRAMES)) != 0)
+    {
+        this->non_fec_good_frames = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_ONU_1G_US_STAT_ID_NON_FEC_GOOD_BYTES)) != 0)
+    {
+        this->non_fec_good_bytes = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_ONU_1G_US_STAT_ID_FEC_GOOD_FRAMES)) != 0)
+    {
+        this->fec_good_frames = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_ONU_1G_US_STAT_ID_FEC_GOOD_BYTES)) != 0)
+    {
+        this->fec_good_bytes = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_ONU_1G_US_STAT_ID_FEC_FRAMES_EXC_ERRS)) != 0)
+    {
+        this->fec_frames_exc_errs = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_ONU_1G_US_STAT_ID_FEC_BLKS_NO_ERRS)) != 0)
+    {
+        this->fec_blks_no_errs = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_ONU_1G_US_STAT_ID_FEC_BLKS_CORR_ERRS)) != 0)
+    {
+        this->fec_blks_corr_errs = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_ONU_1G_US_STAT_ID_FEC_BLKS_UNCORR_ERRS)) != 0)
+    {
+        this->fec_blks_uncorr_errs = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_ONU_1G_US_STAT_ID_FEC_CORR_BYTES)) != 0)
+    {
+        this->fec_corr_bytes = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_ONU_1G_US_STAT_ID_FEC_CORR_ZEROES)) != 0)
+    {
+        this->fec_corr_zeroes = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_ONU_1G_US_STAT_ID_FEC_CORR_ONES)) != 0)
+    {
+        this->fec_corr_ones = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_ONU_1G_US_STAT_ID_UNDERSZ_FRAMES)) != 0)
+    {
+        this->undersz_frames = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_ONU_1G_US_STAT_ID_ERRORSZ_FRAMES)) != 0)
+    {
+        this->errorsz_frames = 0;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_onu_1g_us_stat_data_pack(const bcmolt_epon_onu_1g_us_stat_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_ONU_1G_US_STAT_ID_GOOD_FRAMES)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->good_frames))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_ONU_1G_US_STAT_ID_GOOD_BYTES)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->good_bytes))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_ONU_1G_US_STAT_ID_OVERSZ_FRAMES)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->oversz_frames))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_ONU_1G_US_STAT_ID_NON_FEC_GOOD_FRAMES)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->non_fec_good_frames))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_ONU_1G_US_STAT_ID_NON_FEC_GOOD_BYTES)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->non_fec_good_bytes))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_ONU_1G_US_STAT_ID_FEC_GOOD_FRAMES)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->fec_good_frames))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_ONU_1G_US_STAT_ID_FEC_GOOD_BYTES)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->fec_good_bytes))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_ONU_1G_US_STAT_ID_FEC_FRAMES_EXC_ERRS)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->fec_frames_exc_errs))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_ONU_1G_US_STAT_ID_FEC_BLKS_NO_ERRS)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->fec_blks_no_errs))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_ONU_1G_US_STAT_ID_FEC_BLKS_CORR_ERRS)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->fec_blks_corr_errs))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_ONU_1G_US_STAT_ID_FEC_BLKS_UNCORR_ERRS)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->fec_blks_uncorr_errs))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_ONU_1G_US_STAT_ID_FEC_CORR_BYTES)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->fec_corr_bytes))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_ONU_1G_US_STAT_ID_FEC_CORR_ZEROES)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->fec_corr_zeroes))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_ONU_1G_US_STAT_ID_FEC_CORR_ONES)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->fec_corr_ones))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_ONU_1G_US_STAT_ID_UNDERSZ_FRAMES)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->undersz_frames))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_ONU_1G_US_STAT_ID_ERRORSZ_FRAMES)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->errorsz_frames))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_epon_onu_1g_us_stat_data_get_packed_length(const bcmolt_epon_onu_1g_us_stat_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_EPON_ONU_1G_US_STAT_ID_GOOD_FRAMES)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_ONU_1G_US_STAT_ID_GOOD_BYTES)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_ONU_1G_US_STAT_ID_OVERSZ_FRAMES)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_ONU_1G_US_STAT_ID_NON_FEC_GOOD_FRAMES)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_ONU_1G_US_STAT_ID_NON_FEC_GOOD_BYTES)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_ONU_1G_US_STAT_ID_FEC_GOOD_FRAMES)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_ONU_1G_US_STAT_ID_FEC_GOOD_BYTES)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_ONU_1G_US_STAT_ID_FEC_FRAMES_EXC_ERRS)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_ONU_1G_US_STAT_ID_FEC_BLKS_NO_ERRS)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_ONU_1G_US_STAT_ID_FEC_BLKS_CORR_ERRS)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_ONU_1G_US_STAT_ID_FEC_BLKS_UNCORR_ERRS)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_ONU_1G_US_STAT_ID_FEC_CORR_BYTES)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_ONU_1G_US_STAT_ID_FEC_CORR_ZEROES)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_ONU_1G_US_STAT_ID_FEC_CORR_ONES)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_ONU_1G_US_STAT_ID_UNDERSZ_FRAMES)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_ONU_1G_US_STAT_ID_ERRORSZ_FRAMES)) != 0)
+    {
+        count += 8;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_onu_1g_us_stat_data_unpack(bcmolt_epon_onu_1g_us_stat_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_ONU_1G_US_STAT_ID_GOOD_FRAMES)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->good_frames))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_ONU_1G_US_STAT_ID_GOOD_BYTES)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->good_bytes))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_ONU_1G_US_STAT_ID_OVERSZ_FRAMES)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->oversz_frames))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_ONU_1G_US_STAT_ID_NON_FEC_GOOD_FRAMES)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->non_fec_good_frames))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_ONU_1G_US_STAT_ID_NON_FEC_GOOD_BYTES)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->non_fec_good_bytes))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_ONU_1G_US_STAT_ID_FEC_GOOD_FRAMES)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->fec_good_frames))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_ONU_1G_US_STAT_ID_FEC_GOOD_BYTES)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->fec_good_bytes))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_ONU_1G_US_STAT_ID_FEC_FRAMES_EXC_ERRS)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->fec_frames_exc_errs))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_ONU_1G_US_STAT_ID_FEC_BLKS_NO_ERRS)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->fec_blks_no_errs))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_ONU_1G_US_STAT_ID_FEC_BLKS_CORR_ERRS)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->fec_blks_corr_errs))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_ONU_1G_US_STAT_ID_FEC_BLKS_UNCORR_ERRS)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->fec_blks_uncorr_errs))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_ONU_1G_US_STAT_ID_FEC_CORR_BYTES)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->fec_corr_bytes))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_ONU_1G_US_STAT_ID_FEC_CORR_ZEROES)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->fec_corr_zeroes))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_ONU_1G_US_STAT_ID_FEC_CORR_ONES)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->fec_corr_ones))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_ONU_1G_US_STAT_ID_UNDERSZ_FRAMES)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->undersz_frames))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_ONU_1G_US_STAT_ID_ERRORSZ_FRAMES)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->errorsz_frames))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_onu_1g_us_stat_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_ONU_1G_US_STAT_ID_GOOD_FRAMES)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_ONU_1G_US_STAT_ID_GOOD_BYTES)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_ONU_1G_US_STAT_ID_OVERSZ_FRAMES)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_ONU_1G_US_STAT_ID_NON_FEC_GOOD_FRAMES)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_ONU_1G_US_STAT_ID_NON_FEC_GOOD_BYTES)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_ONU_1G_US_STAT_ID_FEC_GOOD_FRAMES)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_ONU_1G_US_STAT_ID_FEC_GOOD_BYTES)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_ONU_1G_US_STAT_ID_FEC_FRAMES_EXC_ERRS)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_ONU_1G_US_STAT_ID_FEC_BLKS_NO_ERRS)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_ONU_1G_US_STAT_ID_FEC_BLKS_CORR_ERRS)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_ONU_1G_US_STAT_ID_FEC_BLKS_UNCORR_ERRS)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_ONU_1G_US_STAT_ID_FEC_CORR_BYTES)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_ONU_1G_US_STAT_ID_FEC_CORR_ZEROES)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_ONU_1G_US_STAT_ID_FEC_CORR_ONES)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_ONU_1G_US_STAT_ID_UNDERSZ_FRAMES)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_ONU_1G_US_STAT_ID_ERRORSZ_FRAMES)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_onu_1g_us_stat_data_bounds_check(const bcmolt_epon_onu_1g_us_stat_data *this, bcmolt_presence_mask fields_present, bcmolt_epon_onu_1g_us_stat_id *failed_prop)
+{
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_epon_onu_1g_us_stat_cfg_data_set_default(bcmolt_epon_onu_1g_us_stat_cfg_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_ONU_1G_US_STAT_CFG_ID_CFG)) != 0)
+    {
+        this->cfg.trigger.type = BCMOLT_STAT_CONDITION_TYPE_NONE;
+        this->cfg.soak.active_soak_time = 0;
+        this->cfg.soak.clear_soak_time = 0;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_onu_1g_us_stat_cfg_data_pack(const bcmolt_epon_onu_1g_us_stat_cfg_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_ONU_1G_US_STAT_CFG_ID_CFG)) != 0)
+    {
+        if (!bcmolt_stat_alarm_config_pack(&this->cfg, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_epon_onu_1g_us_stat_cfg_data_get_packed_length(const bcmolt_epon_onu_1g_us_stat_cfg_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_EPON_ONU_1G_US_STAT_CFG_ID_CFG)) != 0)
+    {
+        count += bcmolt_stat_alarm_config_get_packed_length(&this->cfg);
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_onu_1g_us_stat_cfg_data_unpack(bcmolt_epon_onu_1g_us_stat_cfg_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_ONU_1G_US_STAT_CFG_ID_CFG)) != 0)
+    {
+        if (!bcmolt_stat_alarm_config_unpack(&this->cfg, buf, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_onu_1g_us_stat_cfg_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_ONU_1G_US_STAT_CFG_ID_CFG)) != 0)
+    {
+        if (!bcmolt_stat_alarm_config_scan(packed, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_onu_1g_us_stat_cfg_data_bounds_check(const bcmolt_epon_onu_1g_us_stat_cfg_data *this, bcmolt_presence_mask fields_present, bcmolt_epon_onu_1g_us_stat_cfg_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_ONU_1G_US_STAT_CFG_ID_CFG)) != 0)
+    {
+        if (!bcmolt_stat_alarm_config_bounds_check(&this->cfg))
+        {
+            *failed_prop = BCMOLT_EPON_ONU_1G_US_STAT_CFG_ID_CFG;
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_epon_onu_1g_us_stat_alarm_cleared_data_set_default(bcmolt_epon_onu_1g_us_stat_alarm_cleared_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_ONU_1G_US_STAT_ALARM_CLEARED_ID_STAT)) != 0)
+    {
+        this->stat = BCMOLT_EPON_ONU_1G_US_STAT_ID_GOOD_FRAMES;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_onu_1g_us_stat_alarm_cleared_data_pack(const bcmolt_epon_onu_1g_us_stat_alarm_cleared_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_ONU_1G_US_STAT_ALARM_CLEARED_ID_STAT)) != 0)
+    {
+        if (!bcmolt_epon_onu_1g_us_stat_id_pack(this->stat, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_epon_onu_1g_us_stat_alarm_cleared_data_get_packed_length(const bcmolt_epon_onu_1g_us_stat_alarm_cleared_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_EPON_ONU_1G_US_STAT_ALARM_CLEARED_ID_STAT)) != 0)
+    {
+        count += 2;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_onu_1g_us_stat_alarm_cleared_data_unpack(bcmolt_epon_onu_1g_us_stat_alarm_cleared_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_ONU_1G_US_STAT_ALARM_CLEARED_ID_STAT)) != 0)
+    {
+        if (!bcmolt_epon_onu_1g_us_stat_id_unpack(&this->stat, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_onu_1g_us_stat_alarm_cleared_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_ONU_1G_US_STAT_ALARM_CLEARED_ID_STAT)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 2))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_onu_1g_us_stat_alarm_cleared_data_bounds_check(const bcmolt_epon_onu_1g_us_stat_alarm_cleared_data *this, bcmolt_presence_mask fields_present, bcmolt_epon_onu_1g_us_stat_alarm_cleared_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_ONU_1G_US_STAT_ALARM_CLEARED_ID_STAT)) != 0)
+    {
+        switch (this->stat)
+        {
+            case BCMOLT_EPON_ONU_1G_US_STAT_ID_GOOD_FRAMES:
+                break;
+            case BCMOLT_EPON_ONU_1G_US_STAT_ID_GOOD_BYTES:
+                break;
+            case BCMOLT_EPON_ONU_1G_US_STAT_ID_OVERSZ_FRAMES:
+                break;
+            case BCMOLT_EPON_ONU_1G_US_STAT_ID_NON_FEC_GOOD_FRAMES:
+                break;
+            case BCMOLT_EPON_ONU_1G_US_STAT_ID_NON_FEC_GOOD_BYTES:
+                break;
+            case BCMOLT_EPON_ONU_1G_US_STAT_ID_FEC_GOOD_FRAMES:
+                break;
+            case BCMOLT_EPON_ONU_1G_US_STAT_ID_FEC_GOOD_BYTES:
+                break;
+            case BCMOLT_EPON_ONU_1G_US_STAT_ID_FEC_FRAMES_EXC_ERRS:
+                break;
+            case BCMOLT_EPON_ONU_1G_US_STAT_ID_FEC_BLKS_NO_ERRS:
+                break;
+            case BCMOLT_EPON_ONU_1G_US_STAT_ID_FEC_BLKS_CORR_ERRS:
+                break;
+            case BCMOLT_EPON_ONU_1G_US_STAT_ID_FEC_BLKS_UNCORR_ERRS:
+                break;
+            case BCMOLT_EPON_ONU_1G_US_STAT_ID_FEC_CORR_BYTES:
+                break;
+            case BCMOLT_EPON_ONU_1G_US_STAT_ID_FEC_CORR_ZEROES:
+                break;
+            case BCMOLT_EPON_ONU_1G_US_STAT_ID_FEC_CORR_ONES:
+                break;
+            case BCMOLT_EPON_ONU_1G_US_STAT_ID_UNDERSZ_FRAMES:
+                break;
+            case BCMOLT_EPON_ONU_1G_US_STAT_ID_ERRORSZ_FRAMES:
+                break;
+            default:
+                *failed_prop = BCMOLT_EPON_ONU_1G_US_STAT_ALARM_CLEARED_ID_STAT;
+                return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_epon_onu_1g_us_stat_alarm_raised_data_set_default(bcmolt_epon_onu_1g_us_stat_alarm_raised_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_ONU_1G_US_STAT_ALARM_RAISED_ID_STAT)) != 0)
+    {
+        this->stat = BCMOLT_EPON_ONU_1G_US_STAT_ID_GOOD_FRAMES;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_onu_1g_us_stat_alarm_raised_data_pack(const bcmolt_epon_onu_1g_us_stat_alarm_raised_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_ONU_1G_US_STAT_ALARM_RAISED_ID_STAT)) != 0)
+    {
+        if (!bcmolt_epon_onu_1g_us_stat_id_pack(this->stat, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_epon_onu_1g_us_stat_alarm_raised_data_get_packed_length(const bcmolt_epon_onu_1g_us_stat_alarm_raised_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_EPON_ONU_1G_US_STAT_ALARM_RAISED_ID_STAT)) != 0)
+    {
+        count += 2;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_onu_1g_us_stat_alarm_raised_data_unpack(bcmolt_epon_onu_1g_us_stat_alarm_raised_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_ONU_1G_US_STAT_ALARM_RAISED_ID_STAT)) != 0)
+    {
+        if (!bcmolt_epon_onu_1g_us_stat_id_unpack(&this->stat, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_onu_1g_us_stat_alarm_raised_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_ONU_1G_US_STAT_ALARM_RAISED_ID_STAT)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 2))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_onu_1g_us_stat_alarm_raised_data_bounds_check(const bcmolt_epon_onu_1g_us_stat_alarm_raised_data *this, bcmolt_presence_mask fields_present, bcmolt_epon_onu_1g_us_stat_alarm_raised_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_ONU_1G_US_STAT_ALARM_RAISED_ID_STAT)) != 0)
+    {
+        switch (this->stat)
+        {
+            case BCMOLT_EPON_ONU_1G_US_STAT_ID_GOOD_FRAMES:
+                break;
+            case BCMOLT_EPON_ONU_1G_US_STAT_ID_GOOD_BYTES:
+                break;
+            case BCMOLT_EPON_ONU_1G_US_STAT_ID_OVERSZ_FRAMES:
+                break;
+            case BCMOLT_EPON_ONU_1G_US_STAT_ID_NON_FEC_GOOD_FRAMES:
+                break;
+            case BCMOLT_EPON_ONU_1G_US_STAT_ID_NON_FEC_GOOD_BYTES:
+                break;
+            case BCMOLT_EPON_ONU_1G_US_STAT_ID_FEC_GOOD_FRAMES:
+                break;
+            case BCMOLT_EPON_ONU_1G_US_STAT_ID_FEC_GOOD_BYTES:
+                break;
+            case BCMOLT_EPON_ONU_1G_US_STAT_ID_FEC_FRAMES_EXC_ERRS:
+                break;
+            case BCMOLT_EPON_ONU_1G_US_STAT_ID_FEC_BLKS_NO_ERRS:
+                break;
+            case BCMOLT_EPON_ONU_1G_US_STAT_ID_FEC_BLKS_CORR_ERRS:
+                break;
+            case BCMOLT_EPON_ONU_1G_US_STAT_ID_FEC_BLKS_UNCORR_ERRS:
+                break;
+            case BCMOLT_EPON_ONU_1G_US_STAT_ID_FEC_CORR_BYTES:
+                break;
+            case BCMOLT_EPON_ONU_1G_US_STAT_ID_FEC_CORR_ZEROES:
+                break;
+            case BCMOLT_EPON_ONU_1G_US_STAT_ID_FEC_CORR_ONES:
+                break;
+            case BCMOLT_EPON_ONU_1G_US_STAT_ID_UNDERSZ_FRAMES:
+                break;
+            case BCMOLT_EPON_ONU_1G_US_STAT_ID_ERRORSZ_FRAMES:
+                break;
+            default:
+                *failed_prop = BCMOLT_EPON_ONU_1G_US_STAT_ALARM_RAISED_ID_STAT;
+                return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_epon_onu_1g_us_auto_cfg_data_set_default(bcmolt_epon_onu_1g_us_auto_cfg_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_ONU_1G_US_AUTO_CFG_ID_STAT_ALARM_CLEARED)) != 0)
+    {
+        this->stat_alarm_cleared = BCMOS_FALSE;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_ONU_1G_US_AUTO_CFG_ID_STAT_ALARM_RAISED)) != 0)
+    {
+        this->stat_alarm_raised = BCMOS_FALSE;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_onu_1g_us_auto_cfg_data_pack(const bcmolt_epon_onu_1g_us_auto_cfg_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_ONU_1G_US_AUTO_CFG_ID_STAT_ALARM_CLEARED)) != 0)
+    {
+        if (!bcmolt_buf_write_bool(buf, this->stat_alarm_cleared))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_ONU_1G_US_AUTO_CFG_ID_STAT_ALARM_RAISED)) != 0)
+    {
+        if (!bcmolt_buf_write_bool(buf, this->stat_alarm_raised))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_epon_onu_1g_us_auto_cfg_data_get_packed_length(const bcmolt_epon_onu_1g_us_auto_cfg_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_EPON_ONU_1G_US_AUTO_CFG_ID_STAT_ALARM_CLEARED)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_ONU_1G_US_AUTO_CFG_ID_STAT_ALARM_RAISED)) != 0)
+    {
+        count += 1;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_onu_1g_us_auto_cfg_data_unpack(bcmolt_epon_onu_1g_us_auto_cfg_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_ONU_1G_US_AUTO_CFG_ID_STAT_ALARM_CLEARED)) != 0)
+    {
+        if (!bcmolt_buf_read_bool(buf, &this->stat_alarm_cleared))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_ONU_1G_US_AUTO_CFG_ID_STAT_ALARM_RAISED)) != 0)
+    {
+        if (!bcmolt_buf_read_bool(buf, &this->stat_alarm_raised))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_onu_1g_us_auto_cfg_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_ONU_1G_US_AUTO_CFG_ID_STAT_ALARM_CLEARED)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_ONU_1G_US_AUTO_CFG_ID_STAT_ALARM_RAISED)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_onu_1g_us_auto_cfg_data_bounds_check(const bcmolt_epon_onu_1g_us_auto_cfg_data *this, bcmolt_presence_mask fields_present, bcmolt_epon_onu_1g_us_auto_cfg_id *failed_prop)
+{
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_epon_path_10g_ds_key_set_default(bcmolt_epon_path_10g_ds_key *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_DS_KEY_ID_EPON_NI)) != 0)
+    {
+        this->epon_ni = (bcmolt_epon_ni) 0;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_path_10g_ds_key_pack(const bcmolt_epon_path_10g_ds_key *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_DS_KEY_ID_EPON_NI)) != 0)
+    {
+        if (!bcmolt_buf_write_u16(buf, (uint16_t) this->epon_ni))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_epon_path_10g_ds_key_get_packed_length(const bcmolt_epon_path_10g_ds_key *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_DS_KEY_ID_EPON_NI)) != 0)
+    {
+        count += 2;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_path_10g_ds_key_unpack(bcmolt_epon_path_10g_ds_key *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_DS_KEY_ID_EPON_NI)) != 0)
+    {
+        if (!bcmolt_buf_read_u16(buf, (uint16_t *) &this->epon_ni))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_path_10g_ds_key_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_DS_KEY_ID_EPON_NI)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 2))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_path_10g_ds_key_bounds_check(const bcmolt_epon_path_10g_ds_key *this, bcmolt_presence_mask fields_present, bcmolt_epon_path_10g_ds_key_id *failed_prop)
+{
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_epon_path_10g_ds_cfg_data_set_default(bcmolt_epon_path_10g_ds_cfg_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_DS_CFG_ID_FEC_STATE)) != 0)
+    {
+        this->fec_state = BCMOLT_EPON_FEC_EN_STATE_ENABLED;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_DS_CFG_ID_PRBS_GENERATOR)) != 0)
+    {
+        this->prbs_generator.polynom = BCMOLT_PRBS_POLYNOMIAL_PRBS_7;
+        this->prbs_generator.error_insert = BCMOS_FALSE;
+        this->prbs_generator.invert = BCMOS_FALSE;
+        this->prbs_generator.control = BCMOLT_CONTROL_STATE_DISABLE;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_path_10g_ds_cfg_data_pack(const bcmolt_epon_path_10g_ds_cfg_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_DS_CFG_ID_FEC_STATE)) != 0)
+    {
+        if (!bcmolt_epon_fec_en_state_pack(this->fec_state, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_DS_CFG_ID_PRBS_GENERATOR)) != 0)
+    {
+        if (!bcmolt_prbs_generator_config_pack(&this->prbs_generator, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_epon_path_10g_ds_cfg_data_get_packed_length(const bcmolt_epon_path_10g_ds_cfg_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_DS_CFG_ID_FEC_STATE)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_DS_CFG_ID_PRBS_GENERATOR)) != 0)
+    {
+        count += 4;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_path_10g_ds_cfg_data_unpack(bcmolt_epon_path_10g_ds_cfg_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_DS_CFG_ID_FEC_STATE)) != 0)
+    {
+        if (!bcmolt_epon_fec_en_state_unpack(&this->fec_state, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_DS_CFG_ID_PRBS_GENERATOR)) != 0)
+    {
+        if (!bcmolt_prbs_generator_config_unpack(&this->prbs_generator, buf, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_path_10g_ds_cfg_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_DS_CFG_ID_FEC_STATE)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_DS_CFG_ID_PRBS_GENERATOR)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 4))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_path_10g_ds_cfg_data_bounds_check(const bcmolt_epon_path_10g_ds_cfg_data *this, bcmolt_presence_mask fields_present, bcmolt_epon_path_10g_ds_cfg_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_DS_CFG_ID_FEC_STATE)) != 0)
+    {
+        switch (this->fec_state)
+        {
+            case BCMOLT_EPON_FEC_EN_STATE_DISABLED:
+                break;
+            case BCMOLT_EPON_FEC_EN_STATE_ENABLED:
+                break;
+            default:
+                *failed_prop = BCMOLT_EPON_PATH_10G_DS_CFG_ID_FEC_STATE;
+                return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_DS_CFG_ID_PRBS_GENERATOR)) != 0)
+    {
+        if (!bcmolt_prbs_generator_config_bounds_check(&this->prbs_generator))
+        {
+            *failed_prop = BCMOLT_EPON_PATH_10G_DS_CFG_ID_PRBS_GENERATOR;
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_epon_path_10g_ds_stat_data_set_default(bcmolt_epon_path_10g_ds_stat_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_DS_STAT_ID_BYTES)) != 0)
+    {
+        this->bytes = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_DS_STAT_ID_FRAMES)) != 0)
+    {
+        this->frames = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_DS_STAT_ID_FRAMES_64)) != 0)
+    {
+        this->frames_64 = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_DS_STAT_ID_FRAMES_65_127)) != 0)
+    {
+        this->frames_65_127 = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_DS_STAT_ID_FRAMES_128_255)) != 0)
+    {
+        this->frames_128_255 = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_DS_STAT_ID_FRAMES_256_511)) != 0)
+    {
+        this->frames_256_511 = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_DS_STAT_ID_FRAMES_512_1023)) != 0)
+    {
+        this->frames_512_1023 = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_DS_STAT_ID_FRAMES_1024_1518)) != 0)
+    {
+        this->frames_1024_1518 = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_DS_STAT_ID_FRAMES_1519_2047)) != 0)
+    {
+        this->frames_1519_2047 = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_DS_STAT_ID_FRAMES_2048_4095)) != 0)
+    {
+        this->frames_2048_4095 = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_DS_STAT_ID_FRAMES_4096_9216)) != 0)
+    {
+        this->frames_4096_9216 = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_DS_STAT_ID_FRAMES_9217_16383)) != 0)
+    {
+        this->frames_9217_16383 = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_DS_STAT_ID_BROADCAST_FRAMES)) != 0)
+    {
+        this->broadcast_frames = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_DS_STAT_ID_DATA_BYTES)) != 0)
+    {
+        this->data_bytes = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_DS_STAT_ID_MULTICAST_FRAMES)) != 0)
+    {
+        this->multicast_frames = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_DS_STAT_ID_UNICAST_FRAMES)) != 0)
+    {
+        this->unicast_frames = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_DS_STAT_ID_OAM_BYTES)) != 0)
+    {
+        this->oam_bytes = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_DS_STAT_ID_OAM_FRAMES)) != 0)
+    {
+        this->oam_frames = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_DS_STAT_ID_GATE_FRAMES)) != 0)
+    {
+        this->gate_frames = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_DS_STAT_ID_MPCP_FRAMES)) != 0)
+    {
+        this->mpcp_frames = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_DS_STAT_ID_ABORT_FRAMES)) != 0)
+    {
+        this->abort_frames = 0;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_path_10g_ds_stat_data_pack(const bcmolt_epon_path_10g_ds_stat_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_DS_STAT_ID_BYTES)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->bytes))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_DS_STAT_ID_FRAMES)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->frames))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_DS_STAT_ID_FRAMES_64)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->frames_64))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_DS_STAT_ID_FRAMES_65_127)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->frames_65_127))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_DS_STAT_ID_FRAMES_128_255)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->frames_128_255))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_DS_STAT_ID_FRAMES_256_511)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->frames_256_511))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_DS_STAT_ID_FRAMES_512_1023)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->frames_512_1023))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_DS_STAT_ID_FRAMES_1024_1518)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->frames_1024_1518))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_DS_STAT_ID_FRAMES_1519_2047)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->frames_1519_2047))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_DS_STAT_ID_FRAMES_2048_4095)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->frames_2048_4095))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_DS_STAT_ID_FRAMES_4096_9216)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->frames_4096_9216))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_DS_STAT_ID_FRAMES_9217_16383)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->frames_9217_16383))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_DS_STAT_ID_BROADCAST_FRAMES)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->broadcast_frames))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_DS_STAT_ID_DATA_BYTES)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->data_bytes))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_DS_STAT_ID_MULTICAST_FRAMES)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->multicast_frames))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_DS_STAT_ID_UNICAST_FRAMES)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->unicast_frames))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_DS_STAT_ID_OAM_BYTES)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->oam_bytes))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_DS_STAT_ID_OAM_FRAMES)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->oam_frames))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_DS_STAT_ID_GATE_FRAMES)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->gate_frames))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_DS_STAT_ID_MPCP_FRAMES)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->mpcp_frames))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_DS_STAT_ID_ABORT_FRAMES)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->abort_frames))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_epon_path_10g_ds_stat_data_get_packed_length(const bcmolt_epon_path_10g_ds_stat_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_DS_STAT_ID_BYTES)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_DS_STAT_ID_FRAMES)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_DS_STAT_ID_FRAMES_64)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_DS_STAT_ID_FRAMES_65_127)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_DS_STAT_ID_FRAMES_128_255)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_DS_STAT_ID_FRAMES_256_511)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_DS_STAT_ID_FRAMES_512_1023)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_DS_STAT_ID_FRAMES_1024_1518)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_DS_STAT_ID_FRAMES_1519_2047)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_DS_STAT_ID_FRAMES_2048_4095)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_DS_STAT_ID_FRAMES_4096_9216)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_DS_STAT_ID_FRAMES_9217_16383)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_DS_STAT_ID_BROADCAST_FRAMES)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_DS_STAT_ID_DATA_BYTES)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_DS_STAT_ID_MULTICAST_FRAMES)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_DS_STAT_ID_UNICAST_FRAMES)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_DS_STAT_ID_OAM_BYTES)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_DS_STAT_ID_OAM_FRAMES)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_DS_STAT_ID_GATE_FRAMES)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_DS_STAT_ID_MPCP_FRAMES)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_DS_STAT_ID_ABORT_FRAMES)) != 0)
+    {
+        count += 8;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_path_10g_ds_stat_data_unpack(bcmolt_epon_path_10g_ds_stat_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_DS_STAT_ID_BYTES)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->bytes))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_DS_STAT_ID_FRAMES)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->frames))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_DS_STAT_ID_FRAMES_64)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->frames_64))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_DS_STAT_ID_FRAMES_65_127)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->frames_65_127))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_DS_STAT_ID_FRAMES_128_255)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->frames_128_255))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_DS_STAT_ID_FRAMES_256_511)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->frames_256_511))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_DS_STAT_ID_FRAMES_512_1023)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->frames_512_1023))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_DS_STAT_ID_FRAMES_1024_1518)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->frames_1024_1518))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_DS_STAT_ID_FRAMES_1519_2047)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->frames_1519_2047))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_DS_STAT_ID_FRAMES_2048_4095)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->frames_2048_4095))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_DS_STAT_ID_FRAMES_4096_9216)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->frames_4096_9216))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_DS_STAT_ID_FRAMES_9217_16383)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->frames_9217_16383))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_DS_STAT_ID_BROADCAST_FRAMES)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->broadcast_frames))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_DS_STAT_ID_DATA_BYTES)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->data_bytes))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_DS_STAT_ID_MULTICAST_FRAMES)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->multicast_frames))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_DS_STAT_ID_UNICAST_FRAMES)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->unicast_frames))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_DS_STAT_ID_OAM_BYTES)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->oam_bytes))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_DS_STAT_ID_OAM_FRAMES)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->oam_frames))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_DS_STAT_ID_GATE_FRAMES)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->gate_frames))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_DS_STAT_ID_MPCP_FRAMES)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->mpcp_frames))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_DS_STAT_ID_ABORT_FRAMES)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->abort_frames))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_path_10g_ds_stat_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_DS_STAT_ID_BYTES)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_DS_STAT_ID_FRAMES)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_DS_STAT_ID_FRAMES_64)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_DS_STAT_ID_FRAMES_65_127)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_DS_STAT_ID_FRAMES_128_255)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_DS_STAT_ID_FRAMES_256_511)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_DS_STAT_ID_FRAMES_512_1023)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_DS_STAT_ID_FRAMES_1024_1518)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_DS_STAT_ID_FRAMES_1519_2047)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_DS_STAT_ID_FRAMES_2048_4095)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_DS_STAT_ID_FRAMES_4096_9216)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_DS_STAT_ID_FRAMES_9217_16383)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_DS_STAT_ID_BROADCAST_FRAMES)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_DS_STAT_ID_DATA_BYTES)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_DS_STAT_ID_MULTICAST_FRAMES)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_DS_STAT_ID_UNICAST_FRAMES)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_DS_STAT_ID_OAM_BYTES)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_DS_STAT_ID_OAM_FRAMES)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_DS_STAT_ID_GATE_FRAMES)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_DS_STAT_ID_MPCP_FRAMES)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_DS_STAT_ID_ABORT_FRAMES)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_path_10g_ds_stat_data_bounds_check(const bcmolt_epon_path_10g_ds_stat_data *this, bcmolt_presence_mask fields_present, bcmolt_epon_path_10g_ds_stat_id *failed_prop)
+{
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_epon_path_10g_ds_stat_cfg_data_set_default(bcmolt_epon_path_10g_ds_stat_cfg_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_DS_STAT_CFG_ID_CFG)) != 0)
+    {
+        this->cfg.trigger.type = BCMOLT_STAT_CONDITION_TYPE_NONE;
+        this->cfg.soak.active_soak_time = 0;
+        this->cfg.soak.clear_soak_time = 0;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_path_10g_ds_stat_cfg_data_pack(const bcmolt_epon_path_10g_ds_stat_cfg_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_DS_STAT_CFG_ID_CFG)) != 0)
+    {
+        if (!bcmolt_stat_alarm_config_pack(&this->cfg, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_epon_path_10g_ds_stat_cfg_data_get_packed_length(const bcmolt_epon_path_10g_ds_stat_cfg_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_DS_STAT_CFG_ID_CFG)) != 0)
+    {
+        count += bcmolt_stat_alarm_config_get_packed_length(&this->cfg);
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_path_10g_ds_stat_cfg_data_unpack(bcmolt_epon_path_10g_ds_stat_cfg_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_DS_STAT_CFG_ID_CFG)) != 0)
+    {
+        if (!bcmolt_stat_alarm_config_unpack(&this->cfg, buf, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_path_10g_ds_stat_cfg_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_DS_STAT_CFG_ID_CFG)) != 0)
+    {
+        if (!bcmolt_stat_alarm_config_scan(packed, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_path_10g_ds_stat_cfg_data_bounds_check(const bcmolt_epon_path_10g_ds_stat_cfg_data *this, bcmolt_presence_mask fields_present, bcmolt_epon_path_10g_ds_stat_cfg_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_DS_STAT_CFG_ID_CFG)) != 0)
+    {
+        if (!bcmolt_stat_alarm_config_bounds_check(&this->cfg))
+        {
+            *failed_prop = BCMOLT_EPON_PATH_10G_DS_STAT_CFG_ID_CFG;
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_epon_path_10g_ds_stat_alarm_cleared_data_set_default(bcmolt_epon_path_10g_ds_stat_alarm_cleared_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_DS_STAT_ALARM_CLEARED_ID_STAT)) != 0)
+    {
+        this->stat = BCMOLT_EPON_PATH_10G_DS_STAT_ID_BYTES;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_path_10g_ds_stat_alarm_cleared_data_pack(const bcmolt_epon_path_10g_ds_stat_alarm_cleared_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_DS_STAT_ALARM_CLEARED_ID_STAT)) != 0)
+    {
+        if (!bcmolt_epon_path_10g_ds_stat_id_pack(this->stat, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_epon_path_10g_ds_stat_alarm_cleared_data_get_packed_length(const bcmolt_epon_path_10g_ds_stat_alarm_cleared_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_DS_STAT_ALARM_CLEARED_ID_STAT)) != 0)
+    {
+        count += 2;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_path_10g_ds_stat_alarm_cleared_data_unpack(bcmolt_epon_path_10g_ds_stat_alarm_cleared_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_DS_STAT_ALARM_CLEARED_ID_STAT)) != 0)
+    {
+        if (!bcmolt_epon_path_10g_ds_stat_id_unpack(&this->stat, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_path_10g_ds_stat_alarm_cleared_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_DS_STAT_ALARM_CLEARED_ID_STAT)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 2))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_path_10g_ds_stat_alarm_cleared_data_bounds_check(const bcmolt_epon_path_10g_ds_stat_alarm_cleared_data *this, bcmolt_presence_mask fields_present, bcmolt_epon_path_10g_ds_stat_alarm_cleared_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_DS_STAT_ALARM_CLEARED_ID_STAT)) != 0)
+    {
+        switch (this->stat)
+        {
+            case BCMOLT_EPON_PATH_10G_DS_STAT_ID_BYTES:
+                break;
+            case BCMOLT_EPON_PATH_10G_DS_STAT_ID_FRAMES:
+                break;
+            case BCMOLT_EPON_PATH_10G_DS_STAT_ID_FRAMES_64:
+                break;
+            case BCMOLT_EPON_PATH_10G_DS_STAT_ID_FRAMES_65_127:
+                break;
+            case BCMOLT_EPON_PATH_10G_DS_STAT_ID_FRAMES_128_255:
+                break;
+            case BCMOLT_EPON_PATH_10G_DS_STAT_ID_FRAMES_256_511:
+                break;
+            case BCMOLT_EPON_PATH_10G_DS_STAT_ID_FRAMES_512_1023:
+                break;
+            case BCMOLT_EPON_PATH_10G_DS_STAT_ID_FRAMES_1024_1518:
+                break;
+            case BCMOLT_EPON_PATH_10G_DS_STAT_ID_FRAMES_1519_2047:
+                break;
+            case BCMOLT_EPON_PATH_10G_DS_STAT_ID_FRAMES_2048_4095:
+                break;
+            case BCMOLT_EPON_PATH_10G_DS_STAT_ID_FRAMES_4096_9216:
+                break;
+            case BCMOLT_EPON_PATH_10G_DS_STAT_ID_FRAMES_9217_16383:
+                break;
+            case BCMOLT_EPON_PATH_10G_DS_STAT_ID_BROADCAST_FRAMES:
+                break;
+            case BCMOLT_EPON_PATH_10G_DS_STAT_ID_DATA_BYTES:
+                break;
+            case BCMOLT_EPON_PATH_10G_DS_STAT_ID_MULTICAST_FRAMES:
+                break;
+            case BCMOLT_EPON_PATH_10G_DS_STAT_ID_UNICAST_FRAMES:
+                break;
+            case BCMOLT_EPON_PATH_10G_DS_STAT_ID_OAM_BYTES:
+                break;
+            case BCMOLT_EPON_PATH_10G_DS_STAT_ID_OAM_FRAMES:
+                break;
+            case BCMOLT_EPON_PATH_10G_DS_STAT_ID_GATE_FRAMES:
+                break;
+            case BCMOLT_EPON_PATH_10G_DS_STAT_ID_MPCP_FRAMES:
+                break;
+            case BCMOLT_EPON_PATH_10G_DS_STAT_ID_ABORT_FRAMES:
+                break;
+            default:
+                *failed_prop = BCMOLT_EPON_PATH_10G_DS_STAT_ALARM_CLEARED_ID_STAT;
+                return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_epon_path_10g_ds_stat_alarm_raised_data_set_default(bcmolt_epon_path_10g_ds_stat_alarm_raised_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_DS_STAT_ALARM_RAISED_ID_STAT)) != 0)
+    {
+        this->stat = BCMOLT_EPON_PATH_10G_DS_STAT_ID_BYTES;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_path_10g_ds_stat_alarm_raised_data_pack(const bcmolt_epon_path_10g_ds_stat_alarm_raised_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_DS_STAT_ALARM_RAISED_ID_STAT)) != 0)
+    {
+        if (!bcmolt_epon_path_10g_ds_stat_id_pack(this->stat, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_epon_path_10g_ds_stat_alarm_raised_data_get_packed_length(const bcmolt_epon_path_10g_ds_stat_alarm_raised_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_DS_STAT_ALARM_RAISED_ID_STAT)) != 0)
+    {
+        count += 2;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_path_10g_ds_stat_alarm_raised_data_unpack(bcmolt_epon_path_10g_ds_stat_alarm_raised_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_DS_STAT_ALARM_RAISED_ID_STAT)) != 0)
+    {
+        if (!bcmolt_epon_path_10g_ds_stat_id_unpack(&this->stat, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_path_10g_ds_stat_alarm_raised_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_DS_STAT_ALARM_RAISED_ID_STAT)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 2))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_path_10g_ds_stat_alarm_raised_data_bounds_check(const bcmolt_epon_path_10g_ds_stat_alarm_raised_data *this, bcmolt_presence_mask fields_present, bcmolt_epon_path_10g_ds_stat_alarm_raised_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_DS_STAT_ALARM_RAISED_ID_STAT)) != 0)
+    {
+        switch (this->stat)
+        {
+            case BCMOLT_EPON_PATH_10G_DS_STAT_ID_BYTES:
+                break;
+            case BCMOLT_EPON_PATH_10G_DS_STAT_ID_FRAMES:
+                break;
+            case BCMOLT_EPON_PATH_10G_DS_STAT_ID_FRAMES_64:
+                break;
+            case BCMOLT_EPON_PATH_10G_DS_STAT_ID_FRAMES_65_127:
+                break;
+            case BCMOLT_EPON_PATH_10G_DS_STAT_ID_FRAMES_128_255:
+                break;
+            case BCMOLT_EPON_PATH_10G_DS_STAT_ID_FRAMES_256_511:
+                break;
+            case BCMOLT_EPON_PATH_10G_DS_STAT_ID_FRAMES_512_1023:
+                break;
+            case BCMOLT_EPON_PATH_10G_DS_STAT_ID_FRAMES_1024_1518:
+                break;
+            case BCMOLT_EPON_PATH_10G_DS_STAT_ID_FRAMES_1519_2047:
+                break;
+            case BCMOLT_EPON_PATH_10G_DS_STAT_ID_FRAMES_2048_4095:
+                break;
+            case BCMOLT_EPON_PATH_10G_DS_STAT_ID_FRAMES_4096_9216:
+                break;
+            case BCMOLT_EPON_PATH_10G_DS_STAT_ID_FRAMES_9217_16383:
+                break;
+            case BCMOLT_EPON_PATH_10G_DS_STAT_ID_BROADCAST_FRAMES:
+                break;
+            case BCMOLT_EPON_PATH_10G_DS_STAT_ID_DATA_BYTES:
+                break;
+            case BCMOLT_EPON_PATH_10G_DS_STAT_ID_MULTICAST_FRAMES:
+                break;
+            case BCMOLT_EPON_PATH_10G_DS_STAT_ID_UNICAST_FRAMES:
+                break;
+            case BCMOLT_EPON_PATH_10G_DS_STAT_ID_OAM_BYTES:
+                break;
+            case BCMOLT_EPON_PATH_10G_DS_STAT_ID_OAM_FRAMES:
+                break;
+            case BCMOLT_EPON_PATH_10G_DS_STAT_ID_GATE_FRAMES:
+                break;
+            case BCMOLT_EPON_PATH_10G_DS_STAT_ID_MPCP_FRAMES:
+                break;
+            case BCMOLT_EPON_PATH_10G_DS_STAT_ID_ABORT_FRAMES:
+                break;
+            default:
+                *failed_prop = BCMOLT_EPON_PATH_10G_DS_STAT_ALARM_RAISED_ID_STAT;
+                return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_epon_path_10g_ds_auto_cfg_data_set_default(bcmolt_epon_path_10g_ds_auto_cfg_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_DS_AUTO_CFG_ID_STAT_ALARM_CLEARED)) != 0)
+    {
+        this->stat_alarm_cleared = BCMOS_FALSE;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_DS_AUTO_CFG_ID_STAT_ALARM_RAISED)) != 0)
+    {
+        this->stat_alarm_raised = BCMOS_FALSE;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_path_10g_ds_auto_cfg_data_pack(const bcmolt_epon_path_10g_ds_auto_cfg_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_DS_AUTO_CFG_ID_STAT_ALARM_CLEARED)) != 0)
+    {
+        if (!bcmolt_buf_write_bool(buf, this->stat_alarm_cleared))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_DS_AUTO_CFG_ID_STAT_ALARM_RAISED)) != 0)
+    {
+        if (!bcmolt_buf_write_bool(buf, this->stat_alarm_raised))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_epon_path_10g_ds_auto_cfg_data_get_packed_length(const bcmolt_epon_path_10g_ds_auto_cfg_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_DS_AUTO_CFG_ID_STAT_ALARM_CLEARED)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_DS_AUTO_CFG_ID_STAT_ALARM_RAISED)) != 0)
+    {
+        count += 1;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_path_10g_ds_auto_cfg_data_unpack(bcmolt_epon_path_10g_ds_auto_cfg_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_DS_AUTO_CFG_ID_STAT_ALARM_CLEARED)) != 0)
+    {
+        if (!bcmolt_buf_read_bool(buf, &this->stat_alarm_cleared))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_DS_AUTO_CFG_ID_STAT_ALARM_RAISED)) != 0)
+    {
+        if (!bcmolt_buf_read_bool(buf, &this->stat_alarm_raised))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_path_10g_ds_auto_cfg_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_DS_AUTO_CFG_ID_STAT_ALARM_CLEARED)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_DS_AUTO_CFG_ID_STAT_ALARM_RAISED)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_path_10g_ds_auto_cfg_data_bounds_check(const bcmolt_epon_path_10g_ds_auto_cfg_data *this, bcmolt_presence_mask fields_present, bcmolt_epon_path_10g_ds_auto_cfg_id *failed_prop)
+{
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_epon_path_10g_us_key_set_default(bcmolt_epon_path_10g_us_key *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_US_KEY_ID_EPON_NI)) != 0)
+    {
+        this->epon_ni = (bcmolt_epon_ni) 0;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_path_10g_us_key_pack(const bcmolt_epon_path_10g_us_key *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_US_KEY_ID_EPON_NI)) != 0)
+    {
+        if (!bcmolt_buf_write_u16(buf, (uint16_t) this->epon_ni))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_epon_path_10g_us_key_get_packed_length(const bcmolt_epon_path_10g_us_key *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_US_KEY_ID_EPON_NI)) != 0)
+    {
+        count += 2;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_path_10g_us_key_unpack(bcmolt_epon_path_10g_us_key *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_US_KEY_ID_EPON_NI)) != 0)
+    {
+        if (!bcmolt_buf_read_u16(buf, (uint16_t *) &this->epon_ni))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_path_10g_us_key_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_US_KEY_ID_EPON_NI)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 2))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_path_10g_us_key_bounds_check(const bcmolt_epon_path_10g_us_key *this, bcmolt_presence_mask fields_present, bcmolt_epon_path_10g_us_key_id *failed_prop)
+{
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_epon_path_10g_us_cfg_data_set_default(bcmolt_epon_path_10g_us_cfg_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_US_CFG_ID_FEC_STATE)) != 0)
+    {
+        this->fec_state = BCMOLT_EPON_FEC_EN_STATE_ENABLED;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_US_CFG_ID_SYNC_TIME_TQ)) != 0)
+    {
+        this->sync_time_tq = (bcmolt_time_quanta) 32;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_US_CFG_ID_PRBS_CHECKER)) != 0)
+    {
+        this->prbs_checker.polynom = BCMOLT_PRBS_POLYNOMIAL_PRBS_7;
+        this->prbs_checker.mode = BCMOLT_PRBS_CHECKER_MODE_SELF_SYNC;
+        this->prbs_checker.data_invert = BCMOS_FALSE;
+        this->prbs_checker.control = BCMOLT_CONTROL_STATE_DISABLE;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_US_CFG_ID_PRBS_STATUS)) != 0)
+    {
+        this->prbs_status.lock_state = BCMOLT_PRBS_LOCK_STATE_UNLOCKED;
+        this->prbs_status.error_counts = 0;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_path_10g_us_cfg_data_pack(const bcmolt_epon_path_10g_us_cfg_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_US_CFG_ID_FEC_STATE)) != 0)
+    {
+        if (!bcmolt_epon_fec_en_state_pack(this->fec_state, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_US_CFG_ID_SYNC_TIME_TQ)) != 0)
+    {
+        if (!bcmolt_buf_write_u32(buf, (uint32_t) this->sync_time_tq))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_US_CFG_ID_PRBS_CHECKER)) != 0)
+    {
+        if (!bcmolt_prbs_checker_config_pack(&this->prbs_checker, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_US_CFG_ID_PRBS_STATUS)) != 0)
+    {
+        if (!bcmolt_prbs_status_pack(&this->prbs_status, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_epon_path_10g_us_cfg_data_get_packed_length(const bcmolt_epon_path_10g_us_cfg_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_US_CFG_ID_FEC_STATE)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_US_CFG_ID_SYNC_TIME_TQ)) != 0)
+    {
+        count += 4;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_US_CFG_ID_PRBS_CHECKER)) != 0)
+    {
+        count += 4;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_US_CFG_ID_PRBS_STATUS)) != 0)
+    {
+        count += 5;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_path_10g_us_cfg_data_unpack(bcmolt_epon_path_10g_us_cfg_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_US_CFG_ID_FEC_STATE)) != 0)
+    {
+        if (!bcmolt_epon_fec_en_state_unpack(&this->fec_state, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_US_CFG_ID_SYNC_TIME_TQ)) != 0)
+    {
+        if (!bcmolt_buf_read_u32(buf, (uint32_t *) &this->sync_time_tq))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_US_CFG_ID_PRBS_CHECKER)) != 0)
+    {
+        if (!bcmolt_prbs_checker_config_unpack(&this->prbs_checker, buf, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_US_CFG_ID_PRBS_STATUS)) != 0)
+    {
+        if (!bcmolt_prbs_status_unpack(&this->prbs_status, buf, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_path_10g_us_cfg_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_US_CFG_ID_FEC_STATE)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_US_CFG_ID_SYNC_TIME_TQ)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 4))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_US_CFG_ID_PRBS_CHECKER)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 4))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_US_CFG_ID_PRBS_STATUS)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 5))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_path_10g_us_cfg_data_bounds_check(const bcmolt_epon_path_10g_us_cfg_data *this, bcmolt_presence_mask fields_present, bcmolt_epon_path_10g_us_cfg_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_US_CFG_ID_FEC_STATE)) != 0)
+    {
+        switch (this->fec_state)
+        {
+            case BCMOLT_EPON_FEC_EN_STATE_DISABLED:
+                break;
+            case BCMOLT_EPON_FEC_EN_STATE_ENABLED:
+                break;
+            default:
+                *failed_prop = BCMOLT_EPON_PATH_10G_US_CFG_ID_FEC_STATE;
+                return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_US_CFG_ID_SYNC_TIME_TQ)) != 0)
+    {
+        if (this->sync_time_tq > (bcmolt_time_quanta) 65535UL)
+        {
+            *failed_prop = BCMOLT_EPON_PATH_10G_US_CFG_ID_SYNC_TIME_TQ;
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_US_CFG_ID_PRBS_CHECKER)) != 0)
+    {
+        if (!bcmolt_prbs_checker_config_bounds_check(&this->prbs_checker))
+        {
+            *failed_prop = BCMOLT_EPON_PATH_10G_US_CFG_ID_PRBS_CHECKER;
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_US_CFG_ID_PRBS_STATUS)) != 0)
+    {
+        if (!bcmolt_prbs_status_bounds_check(&this->prbs_status))
+        {
+            *failed_prop = BCMOLT_EPON_PATH_10G_US_CFG_ID_PRBS_STATUS;
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_epon_path_10g_us_stat_data_set_default(bcmolt_epon_path_10g_us_stat_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_US_STAT_ID_BYTES)) != 0)
+    {
+        this->bytes = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_US_STAT_ID_FRAMES)) != 0)
+    {
+        this->frames = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_US_STAT_ID_FRAMES_64)) != 0)
+    {
+        this->frames_64 = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_US_STAT_ID_FRAMES_65_127)) != 0)
+    {
+        this->frames_65_127 = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_US_STAT_ID_FRAMES_128_255)) != 0)
+    {
+        this->frames_128_255 = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_US_STAT_ID_FRAMES_256_511)) != 0)
+    {
+        this->frames_256_511 = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_US_STAT_ID_FRAMES_512_1023)) != 0)
+    {
+        this->frames_512_1023 = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_US_STAT_ID_FRAMES_1024_1518)) != 0)
+    {
+        this->frames_1024_1518 = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_US_STAT_ID_FRAMES_1519_2047)) != 0)
+    {
+        this->frames_1519_2047 = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_US_STAT_ID_FRAMES_2048_4095)) != 0)
+    {
+        this->frames_2048_4095 = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_US_STAT_ID_FRAMES_4096_9216)) != 0)
+    {
+        this->frames_4096_9216 = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_US_STAT_ID_FRAMES_9217_16383)) != 0)
+    {
+        this->frames_9217_16383 = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_US_STAT_ID_BROADCAST_FRAMES)) != 0)
+    {
+        this->broadcast_frames = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_US_STAT_ID_DATA_BYTES)) != 0)
+    {
+        this->data_bytes = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_US_STAT_ID_MULTICAST_FRAMES)) != 0)
+    {
+        this->multicast_frames = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_US_STAT_ID_UNICAST_FRAMES)) != 0)
+    {
+        this->unicast_frames = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_US_STAT_ID_MPCP_FRAMES)) != 0)
+    {
+        this->mpcp_frames = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_US_STAT_ID_OAM_BYTES)) != 0)
+    {
+        this->oam_bytes = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_US_STAT_ID_OAM_FRAMES)) != 0)
+    {
+        this->oam_frames = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_US_STAT_ID_REPORT_FRAMES)) != 0)
+    {
+        this->report_frames = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_US_STAT_ID_ABORT_FRAMES)) != 0)
+    {
+        this->abort_frames = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_US_STAT_ID_FCS_ERROR)) != 0)
+    {
+        this->fcs_error = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_US_STAT_ID_CRC_8_ERROR)) != 0)
+    {
+        this->crc_8_error = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_US_STAT_ID_OUT_OF_SLOT)) != 0)
+    {
+        this->out_of_slot = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_US_STAT_ID_OVERSIZE_ERROR)) != 0)
+    {
+        this->oversize_error = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_US_STAT_ID_RUNT_ERROR)) != 0)
+    {
+        this->runt_error = 0;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_path_10g_us_stat_data_pack(const bcmolt_epon_path_10g_us_stat_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_US_STAT_ID_BYTES)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->bytes))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_US_STAT_ID_FRAMES)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->frames))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_US_STAT_ID_FRAMES_64)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->frames_64))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_US_STAT_ID_FRAMES_65_127)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->frames_65_127))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_US_STAT_ID_FRAMES_128_255)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->frames_128_255))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_US_STAT_ID_FRAMES_256_511)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->frames_256_511))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_US_STAT_ID_FRAMES_512_1023)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->frames_512_1023))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_US_STAT_ID_FRAMES_1024_1518)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->frames_1024_1518))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_US_STAT_ID_FRAMES_1519_2047)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->frames_1519_2047))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_US_STAT_ID_FRAMES_2048_4095)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->frames_2048_4095))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_US_STAT_ID_FRAMES_4096_9216)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->frames_4096_9216))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_US_STAT_ID_FRAMES_9217_16383)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->frames_9217_16383))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_US_STAT_ID_BROADCAST_FRAMES)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->broadcast_frames))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_US_STAT_ID_DATA_BYTES)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->data_bytes))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_US_STAT_ID_MULTICAST_FRAMES)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->multicast_frames))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_US_STAT_ID_UNICAST_FRAMES)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->unicast_frames))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_US_STAT_ID_MPCP_FRAMES)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->mpcp_frames))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_US_STAT_ID_OAM_BYTES)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->oam_bytes))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_US_STAT_ID_OAM_FRAMES)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->oam_frames))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_US_STAT_ID_REPORT_FRAMES)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->report_frames))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_US_STAT_ID_ABORT_FRAMES)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->abort_frames))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_US_STAT_ID_FCS_ERROR)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->fcs_error))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_US_STAT_ID_CRC_8_ERROR)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->crc_8_error))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_US_STAT_ID_OUT_OF_SLOT)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->out_of_slot))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_US_STAT_ID_OVERSIZE_ERROR)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->oversize_error))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_US_STAT_ID_RUNT_ERROR)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->runt_error))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_epon_path_10g_us_stat_data_get_packed_length(const bcmolt_epon_path_10g_us_stat_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_US_STAT_ID_BYTES)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_US_STAT_ID_FRAMES)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_US_STAT_ID_FRAMES_64)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_US_STAT_ID_FRAMES_65_127)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_US_STAT_ID_FRAMES_128_255)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_US_STAT_ID_FRAMES_256_511)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_US_STAT_ID_FRAMES_512_1023)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_US_STAT_ID_FRAMES_1024_1518)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_US_STAT_ID_FRAMES_1519_2047)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_US_STAT_ID_FRAMES_2048_4095)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_US_STAT_ID_FRAMES_4096_9216)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_US_STAT_ID_FRAMES_9217_16383)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_US_STAT_ID_BROADCAST_FRAMES)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_US_STAT_ID_DATA_BYTES)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_US_STAT_ID_MULTICAST_FRAMES)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_US_STAT_ID_UNICAST_FRAMES)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_US_STAT_ID_MPCP_FRAMES)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_US_STAT_ID_OAM_BYTES)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_US_STAT_ID_OAM_FRAMES)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_US_STAT_ID_REPORT_FRAMES)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_US_STAT_ID_ABORT_FRAMES)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_US_STAT_ID_FCS_ERROR)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_US_STAT_ID_CRC_8_ERROR)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_US_STAT_ID_OUT_OF_SLOT)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_US_STAT_ID_OVERSIZE_ERROR)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_US_STAT_ID_RUNT_ERROR)) != 0)
+    {
+        count += 8;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_path_10g_us_stat_data_unpack(bcmolt_epon_path_10g_us_stat_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_US_STAT_ID_BYTES)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->bytes))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_US_STAT_ID_FRAMES)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->frames))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_US_STAT_ID_FRAMES_64)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->frames_64))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_US_STAT_ID_FRAMES_65_127)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->frames_65_127))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_US_STAT_ID_FRAMES_128_255)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->frames_128_255))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_US_STAT_ID_FRAMES_256_511)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->frames_256_511))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_US_STAT_ID_FRAMES_512_1023)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->frames_512_1023))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_US_STAT_ID_FRAMES_1024_1518)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->frames_1024_1518))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_US_STAT_ID_FRAMES_1519_2047)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->frames_1519_2047))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_US_STAT_ID_FRAMES_2048_4095)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->frames_2048_4095))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_US_STAT_ID_FRAMES_4096_9216)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->frames_4096_9216))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_US_STAT_ID_FRAMES_9217_16383)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->frames_9217_16383))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_US_STAT_ID_BROADCAST_FRAMES)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->broadcast_frames))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_US_STAT_ID_DATA_BYTES)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->data_bytes))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_US_STAT_ID_MULTICAST_FRAMES)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->multicast_frames))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_US_STAT_ID_UNICAST_FRAMES)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->unicast_frames))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_US_STAT_ID_MPCP_FRAMES)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->mpcp_frames))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_US_STAT_ID_OAM_BYTES)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->oam_bytes))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_US_STAT_ID_OAM_FRAMES)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->oam_frames))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_US_STAT_ID_REPORT_FRAMES)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->report_frames))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_US_STAT_ID_ABORT_FRAMES)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->abort_frames))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_US_STAT_ID_FCS_ERROR)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->fcs_error))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_US_STAT_ID_CRC_8_ERROR)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->crc_8_error))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_US_STAT_ID_OUT_OF_SLOT)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->out_of_slot))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_US_STAT_ID_OVERSIZE_ERROR)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->oversize_error))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_US_STAT_ID_RUNT_ERROR)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->runt_error))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_path_10g_us_stat_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_US_STAT_ID_BYTES)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_US_STAT_ID_FRAMES)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_US_STAT_ID_FRAMES_64)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_US_STAT_ID_FRAMES_65_127)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_US_STAT_ID_FRAMES_128_255)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_US_STAT_ID_FRAMES_256_511)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_US_STAT_ID_FRAMES_512_1023)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_US_STAT_ID_FRAMES_1024_1518)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_US_STAT_ID_FRAMES_1519_2047)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_US_STAT_ID_FRAMES_2048_4095)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_US_STAT_ID_FRAMES_4096_9216)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_US_STAT_ID_FRAMES_9217_16383)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_US_STAT_ID_BROADCAST_FRAMES)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_US_STAT_ID_DATA_BYTES)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_US_STAT_ID_MULTICAST_FRAMES)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_US_STAT_ID_UNICAST_FRAMES)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_US_STAT_ID_MPCP_FRAMES)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_US_STAT_ID_OAM_BYTES)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_US_STAT_ID_OAM_FRAMES)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_US_STAT_ID_REPORT_FRAMES)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_US_STAT_ID_ABORT_FRAMES)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_US_STAT_ID_FCS_ERROR)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_US_STAT_ID_CRC_8_ERROR)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_US_STAT_ID_OUT_OF_SLOT)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_US_STAT_ID_OVERSIZE_ERROR)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_US_STAT_ID_RUNT_ERROR)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_path_10g_us_stat_data_bounds_check(const bcmolt_epon_path_10g_us_stat_data *this, bcmolt_presence_mask fields_present, bcmolt_epon_path_10g_us_stat_id *failed_prop)
+{
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_epon_path_10g_us_stat_cfg_data_set_default(bcmolt_epon_path_10g_us_stat_cfg_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_US_STAT_CFG_ID_CFG)) != 0)
+    {
+        this->cfg.trigger.type = BCMOLT_STAT_CONDITION_TYPE_NONE;
+        this->cfg.soak.active_soak_time = 0;
+        this->cfg.soak.clear_soak_time = 0;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_path_10g_us_stat_cfg_data_pack(const bcmolt_epon_path_10g_us_stat_cfg_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_US_STAT_CFG_ID_CFG)) != 0)
+    {
+        if (!bcmolt_stat_alarm_config_pack(&this->cfg, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_epon_path_10g_us_stat_cfg_data_get_packed_length(const bcmolt_epon_path_10g_us_stat_cfg_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_US_STAT_CFG_ID_CFG)) != 0)
+    {
+        count += bcmolt_stat_alarm_config_get_packed_length(&this->cfg);
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_path_10g_us_stat_cfg_data_unpack(bcmolt_epon_path_10g_us_stat_cfg_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_US_STAT_CFG_ID_CFG)) != 0)
+    {
+        if (!bcmolt_stat_alarm_config_unpack(&this->cfg, buf, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_path_10g_us_stat_cfg_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_US_STAT_CFG_ID_CFG)) != 0)
+    {
+        if (!bcmolt_stat_alarm_config_scan(packed, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_path_10g_us_stat_cfg_data_bounds_check(const bcmolt_epon_path_10g_us_stat_cfg_data *this, bcmolt_presence_mask fields_present, bcmolt_epon_path_10g_us_stat_cfg_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_US_STAT_CFG_ID_CFG)) != 0)
+    {
+        if (!bcmolt_stat_alarm_config_bounds_check(&this->cfg))
+        {
+            *failed_prop = BCMOLT_EPON_PATH_10G_US_STAT_CFG_ID_CFG;
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_epon_path_10g_us_stat_alarm_cleared_data_set_default(bcmolt_epon_path_10g_us_stat_alarm_cleared_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_US_STAT_ALARM_CLEARED_ID_STAT)) != 0)
+    {
+        this->stat = BCMOLT_EPON_PATH_10G_US_STAT_ID_BYTES;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_path_10g_us_stat_alarm_cleared_data_pack(const bcmolt_epon_path_10g_us_stat_alarm_cleared_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_US_STAT_ALARM_CLEARED_ID_STAT)) != 0)
+    {
+        if (!bcmolt_epon_path_10g_us_stat_id_pack(this->stat, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_epon_path_10g_us_stat_alarm_cleared_data_get_packed_length(const bcmolt_epon_path_10g_us_stat_alarm_cleared_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_US_STAT_ALARM_CLEARED_ID_STAT)) != 0)
+    {
+        count += 2;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_path_10g_us_stat_alarm_cleared_data_unpack(bcmolt_epon_path_10g_us_stat_alarm_cleared_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_US_STAT_ALARM_CLEARED_ID_STAT)) != 0)
+    {
+        if (!bcmolt_epon_path_10g_us_stat_id_unpack(&this->stat, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_path_10g_us_stat_alarm_cleared_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_US_STAT_ALARM_CLEARED_ID_STAT)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 2))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_path_10g_us_stat_alarm_cleared_data_bounds_check(const bcmolt_epon_path_10g_us_stat_alarm_cleared_data *this, bcmolt_presence_mask fields_present, bcmolt_epon_path_10g_us_stat_alarm_cleared_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_US_STAT_ALARM_CLEARED_ID_STAT)) != 0)
+    {
+        switch (this->stat)
+        {
+            case BCMOLT_EPON_PATH_10G_US_STAT_ID_BYTES:
+                break;
+            case BCMOLT_EPON_PATH_10G_US_STAT_ID_FRAMES:
+                break;
+            case BCMOLT_EPON_PATH_10G_US_STAT_ID_FRAMES_64:
+                break;
+            case BCMOLT_EPON_PATH_10G_US_STAT_ID_FRAMES_65_127:
+                break;
+            case BCMOLT_EPON_PATH_10G_US_STAT_ID_FRAMES_128_255:
+                break;
+            case BCMOLT_EPON_PATH_10G_US_STAT_ID_FRAMES_256_511:
+                break;
+            case BCMOLT_EPON_PATH_10G_US_STAT_ID_FRAMES_512_1023:
+                break;
+            case BCMOLT_EPON_PATH_10G_US_STAT_ID_FRAMES_1024_1518:
+                break;
+            case BCMOLT_EPON_PATH_10G_US_STAT_ID_FRAMES_1519_2047:
+                break;
+            case BCMOLT_EPON_PATH_10G_US_STAT_ID_FRAMES_2048_4095:
+                break;
+            case BCMOLT_EPON_PATH_10G_US_STAT_ID_FRAMES_4096_9216:
+                break;
+            case BCMOLT_EPON_PATH_10G_US_STAT_ID_FRAMES_9217_16383:
+                break;
+            case BCMOLT_EPON_PATH_10G_US_STAT_ID_BROADCAST_FRAMES:
+                break;
+            case BCMOLT_EPON_PATH_10G_US_STAT_ID_DATA_BYTES:
+                break;
+            case BCMOLT_EPON_PATH_10G_US_STAT_ID_MULTICAST_FRAMES:
+                break;
+            case BCMOLT_EPON_PATH_10G_US_STAT_ID_UNICAST_FRAMES:
+                break;
+            case BCMOLT_EPON_PATH_10G_US_STAT_ID_MPCP_FRAMES:
+                break;
+            case BCMOLT_EPON_PATH_10G_US_STAT_ID_OAM_BYTES:
+                break;
+            case BCMOLT_EPON_PATH_10G_US_STAT_ID_OAM_FRAMES:
+                break;
+            case BCMOLT_EPON_PATH_10G_US_STAT_ID_REPORT_FRAMES:
+                break;
+            case BCMOLT_EPON_PATH_10G_US_STAT_ID_ABORT_FRAMES:
+                break;
+            case BCMOLT_EPON_PATH_10G_US_STAT_ID_FCS_ERROR:
+                break;
+            case BCMOLT_EPON_PATH_10G_US_STAT_ID_CRC_8_ERROR:
+                break;
+            case BCMOLT_EPON_PATH_10G_US_STAT_ID_OUT_OF_SLOT:
+                break;
+            case BCMOLT_EPON_PATH_10G_US_STAT_ID_OVERSIZE_ERROR:
+                break;
+            case BCMOLT_EPON_PATH_10G_US_STAT_ID_RUNT_ERROR:
+                break;
+            default:
+                *failed_prop = BCMOLT_EPON_PATH_10G_US_STAT_ALARM_CLEARED_ID_STAT;
+                return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_epon_path_10g_us_stat_alarm_raised_data_set_default(bcmolt_epon_path_10g_us_stat_alarm_raised_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_US_STAT_ALARM_RAISED_ID_STAT)) != 0)
+    {
+        this->stat = BCMOLT_EPON_PATH_10G_US_STAT_ID_BYTES;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_path_10g_us_stat_alarm_raised_data_pack(const bcmolt_epon_path_10g_us_stat_alarm_raised_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_US_STAT_ALARM_RAISED_ID_STAT)) != 0)
+    {
+        if (!bcmolt_epon_path_10g_us_stat_id_pack(this->stat, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_epon_path_10g_us_stat_alarm_raised_data_get_packed_length(const bcmolt_epon_path_10g_us_stat_alarm_raised_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_US_STAT_ALARM_RAISED_ID_STAT)) != 0)
+    {
+        count += 2;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_path_10g_us_stat_alarm_raised_data_unpack(bcmolt_epon_path_10g_us_stat_alarm_raised_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_US_STAT_ALARM_RAISED_ID_STAT)) != 0)
+    {
+        if (!bcmolt_epon_path_10g_us_stat_id_unpack(&this->stat, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_path_10g_us_stat_alarm_raised_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_US_STAT_ALARM_RAISED_ID_STAT)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 2))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_path_10g_us_stat_alarm_raised_data_bounds_check(const bcmolt_epon_path_10g_us_stat_alarm_raised_data *this, bcmolt_presence_mask fields_present, bcmolt_epon_path_10g_us_stat_alarm_raised_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_US_STAT_ALARM_RAISED_ID_STAT)) != 0)
+    {
+        switch (this->stat)
+        {
+            case BCMOLT_EPON_PATH_10G_US_STAT_ID_BYTES:
+                break;
+            case BCMOLT_EPON_PATH_10G_US_STAT_ID_FRAMES:
+                break;
+            case BCMOLT_EPON_PATH_10G_US_STAT_ID_FRAMES_64:
+                break;
+            case BCMOLT_EPON_PATH_10G_US_STAT_ID_FRAMES_65_127:
+                break;
+            case BCMOLT_EPON_PATH_10G_US_STAT_ID_FRAMES_128_255:
+                break;
+            case BCMOLT_EPON_PATH_10G_US_STAT_ID_FRAMES_256_511:
+                break;
+            case BCMOLT_EPON_PATH_10G_US_STAT_ID_FRAMES_512_1023:
+                break;
+            case BCMOLT_EPON_PATH_10G_US_STAT_ID_FRAMES_1024_1518:
+                break;
+            case BCMOLT_EPON_PATH_10G_US_STAT_ID_FRAMES_1519_2047:
+                break;
+            case BCMOLT_EPON_PATH_10G_US_STAT_ID_FRAMES_2048_4095:
+                break;
+            case BCMOLT_EPON_PATH_10G_US_STAT_ID_FRAMES_4096_9216:
+                break;
+            case BCMOLT_EPON_PATH_10G_US_STAT_ID_FRAMES_9217_16383:
+                break;
+            case BCMOLT_EPON_PATH_10G_US_STAT_ID_BROADCAST_FRAMES:
+                break;
+            case BCMOLT_EPON_PATH_10G_US_STAT_ID_DATA_BYTES:
+                break;
+            case BCMOLT_EPON_PATH_10G_US_STAT_ID_MULTICAST_FRAMES:
+                break;
+            case BCMOLT_EPON_PATH_10G_US_STAT_ID_UNICAST_FRAMES:
+                break;
+            case BCMOLT_EPON_PATH_10G_US_STAT_ID_MPCP_FRAMES:
+                break;
+            case BCMOLT_EPON_PATH_10G_US_STAT_ID_OAM_BYTES:
+                break;
+            case BCMOLT_EPON_PATH_10G_US_STAT_ID_OAM_FRAMES:
+                break;
+            case BCMOLT_EPON_PATH_10G_US_STAT_ID_REPORT_FRAMES:
+                break;
+            case BCMOLT_EPON_PATH_10G_US_STAT_ID_ABORT_FRAMES:
+                break;
+            case BCMOLT_EPON_PATH_10G_US_STAT_ID_FCS_ERROR:
+                break;
+            case BCMOLT_EPON_PATH_10G_US_STAT_ID_CRC_8_ERROR:
+                break;
+            case BCMOLT_EPON_PATH_10G_US_STAT_ID_OUT_OF_SLOT:
+                break;
+            case BCMOLT_EPON_PATH_10G_US_STAT_ID_OVERSIZE_ERROR:
+                break;
+            case BCMOLT_EPON_PATH_10G_US_STAT_ID_RUNT_ERROR:
+                break;
+            default:
+                *failed_prop = BCMOLT_EPON_PATH_10G_US_STAT_ALARM_RAISED_ID_STAT;
+                return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_epon_path_10g_us_auto_cfg_data_set_default(bcmolt_epon_path_10g_us_auto_cfg_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_US_AUTO_CFG_ID_STAT_ALARM_CLEARED)) != 0)
+    {
+        this->stat_alarm_cleared = BCMOS_FALSE;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_US_AUTO_CFG_ID_STAT_ALARM_RAISED)) != 0)
+    {
+        this->stat_alarm_raised = BCMOS_FALSE;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_path_10g_us_auto_cfg_data_pack(const bcmolt_epon_path_10g_us_auto_cfg_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_US_AUTO_CFG_ID_STAT_ALARM_CLEARED)) != 0)
+    {
+        if (!bcmolt_buf_write_bool(buf, this->stat_alarm_cleared))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_US_AUTO_CFG_ID_STAT_ALARM_RAISED)) != 0)
+    {
+        if (!bcmolt_buf_write_bool(buf, this->stat_alarm_raised))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_epon_path_10g_us_auto_cfg_data_get_packed_length(const bcmolt_epon_path_10g_us_auto_cfg_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_US_AUTO_CFG_ID_STAT_ALARM_CLEARED)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_US_AUTO_CFG_ID_STAT_ALARM_RAISED)) != 0)
+    {
+        count += 1;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_path_10g_us_auto_cfg_data_unpack(bcmolt_epon_path_10g_us_auto_cfg_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_US_AUTO_CFG_ID_STAT_ALARM_CLEARED)) != 0)
+    {
+        if (!bcmolt_buf_read_bool(buf, &this->stat_alarm_cleared))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_US_AUTO_CFG_ID_STAT_ALARM_RAISED)) != 0)
+    {
+        if (!bcmolt_buf_read_bool(buf, &this->stat_alarm_raised))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_path_10g_us_auto_cfg_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_US_AUTO_CFG_ID_STAT_ALARM_CLEARED)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_10G_US_AUTO_CFG_ID_STAT_ALARM_RAISED)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_path_10g_us_auto_cfg_data_bounds_check(const bcmolt_epon_path_10g_us_auto_cfg_data *this, bcmolt_presence_mask fields_present, bcmolt_epon_path_10g_us_auto_cfg_id *failed_prop)
+{
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_epon_path_1g_ds_key_set_default(bcmolt_epon_path_1g_ds_key *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_DS_KEY_ID_EPON_NI)) != 0)
+    {
+        this->epon_ni = (bcmolt_epon_ni) 0;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_path_1g_ds_key_pack(const bcmolt_epon_path_1g_ds_key *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_DS_KEY_ID_EPON_NI)) != 0)
+    {
+        if (!bcmolt_buf_write_u16(buf, (uint16_t) this->epon_ni))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_epon_path_1g_ds_key_get_packed_length(const bcmolt_epon_path_1g_ds_key *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_DS_KEY_ID_EPON_NI)) != 0)
+    {
+        count += 2;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_path_1g_ds_key_unpack(bcmolt_epon_path_1g_ds_key *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_DS_KEY_ID_EPON_NI)) != 0)
+    {
+        if (!bcmolt_buf_read_u16(buf, (uint16_t *) &this->epon_ni))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_path_1g_ds_key_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_DS_KEY_ID_EPON_NI)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 2))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_path_1g_ds_key_bounds_check(const bcmolt_epon_path_1g_ds_key *this, bcmolt_presence_mask fields_present, bcmolt_epon_path_1g_ds_key_id *failed_prop)
+{
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_epon_path_1g_ds_cfg_data_set_default(bcmolt_epon_path_1g_ds_cfg_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_DS_CFG_ID_DEFAULT_FEC_STATE)) != 0)
+    {
+        this->default_fec_state = BCMOLT_EPON_FEC_EN_STATE_DISABLED;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_DS_CFG_ID_RAMAN_MODE)) != 0)
+    {
+        this->raman_mode = BCMOLT_RAMAN_MITIGATION_MODE_DISABLED;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_DS_CFG_ID_TURBO_2G_MODE)) != 0)
+    {
+        this->turbo_2g_mode = BCMOLT_EPON_1G_TURBO_MODE_DISABLED;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_DS_CFG_ID_PRBS_GENERATOR)) != 0)
+    {
+        this->prbs_generator.polynom = BCMOLT_PRBS_POLYNOMIAL_PRBS_7;
+        this->prbs_generator.error_insert = BCMOS_FALSE;
+        this->prbs_generator.invert = BCMOS_FALSE;
+        this->prbs_generator.control = BCMOLT_CONTROL_STATE_DISABLE;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_path_1g_ds_cfg_data_pack(const bcmolt_epon_path_1g_ds_cfg_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_DS_CFG_ID_DEFAULT_FEC_STATE)) != 0)
+    {
+        if (!bcmolt_epon_fec_en_state_pack(this->default_fec_state, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_DS_CFG_ID_RAMAN_MODE)) != 0)
+    {
+        if (!bcmolt_raman_mitigation_mode_pack(this->raman_mode, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_DS_CFG_ID_TURBO_2G_MODE)) != 0)
+    {
+        if (!bcmolt_epon_1g_turbo_mode_pack(this->turbo_2g_mode, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_DS_CFG_ID_PRBS_GENERATOR)) != 0)
+    {
+        if (!bcmolt_prbs_generator_config_pack(&this->prbs_generator, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_epon_path_1g_ds_cfg_data_get_packed_length(const bcmolt_epon_path_1g_ds_cfg_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_DS_CFG_ID_DEFAULT_FEC_STATE)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_DS_CFG_ID_RAMAN_MODE)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_DS_CFG_ID_TURBO_2G_MODE)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_DS_CFG_ID_PRBS_GENERATOR)) != 0)
+    {
+        count += 4;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_path_1g_ds_cfg_data_unpack(bcmolt_epon_path_1g_ds_cfg_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_DS_CFG_ID_DEFAULT_FEC_STATE)) != 0)
+    {
+        if (!bcmolt_epon_fec_en_state_unpack(&this->default_fec_state, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_DS_CFG_ID_RAMAN_MODE)) != 0)
+    {
+        if (!bcmolt_raman_mitigation_mode_unpack(&this->raman_mode, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_DS_CFG_ID_TURBO_2G_MODE)) != 0)
+    {
+        if (!bcmolt_epon_1g_turbo_mode_unpack(&this->turbo_2g_mode, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_DS_CFG_ID_PRBS_GENERATOR)) != 0)
+    {
+        if (!bcmolt_prbs_generator_config_unpack(&this->prbs_generator, buf, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_path_1g_ds_cfg_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_DS_CFG_ID_DEFAULT_FEC_STATE)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_DS_CFG_ID_RAMAN_MODE)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_DS_CFG_ID_TURBO_2G_MODE)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_DS_CFG_ID_PRBS_GENERATOR)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 4))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_path_1g_ds_cfg_data_bounds_check(const bcmolt_epon_path_1g_ds_cfg_data *this, bcmolt_presence_mask fields_present, bcmolt_epon_path_1g_ds_cfg_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_DS_CFG_ID_DEFAULT_FEC_STATE)) != 0)
+    {
+        switch (this->default_fec_state)
+        {
+            case BCMOLT_EPON_FEC_EN_STATE_DISABLED:
+                break;
+            case BCMOLT_EPON_FEC_EN_STATE_ENABLED:
+                break;
+            default:
+                *failed_prop = BCMOLT_EPON_PATH_1G_DS_CFG_ID_DEFAULT_FEC_STATE;
+                return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_DS_CFG_ID_RAMAN_MODE)) != 0)
+    {
+        switch (this->raman_mode)
+        {
+            case BCMOLT_RAMAN_MITIGATION_MODE_DISABLED:
+                break;
+            case BCMOLT_RAMAN_MITIGATION_MODE_RANDOM:
+                break;
+            case BCMOLT_RAMAN_MITIGATION_MODE_FIXED:
+                break;
+            default:
+                *failed_prop = BCMOLT_EPON_PATH_1G_DS_CFG_ID_RAMAN_MODE;
+                return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_DS_CFG_ID_TURBO_2G_MODE)) != 0)
+    {
+        switch (this->turbo_2g_mode)
+        {
+            case BCMOLT_EPON_1G_TURBO_MODE_DISABLED:
+                break;
+            case BCMOLT_EPON_1G_TURBO_MODE_ENABLED:
+                break;
+            default:
+                *failed_prop = BCMOLT_EPON_PATH_1G_DS_CFG_ID_TURBO_2G_MODE;
+                return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_DS_CFG_ID_PRBS_GENERATOR)) != 0)
+    {
+        if (!bcmolt_prbs_generator_config_bounds_check(&this->prbs_generator))
+        {
+            *failed_prop = BCMOLT_EPON_PATH_1G_DS_CFG_ID_PRBS_GENERATOR;
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_epon_path_1g_ds_stat_data_set_default(bcmolt_epon_path_1g_ds_stat_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_DS_STAT_ID_BYTES)) != 0)
+    {
+        this->bytes = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_DS_STAT_ID_FRAMES)) != 0)
+    {
+        this->frames = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_DS_STAT_ID_FRAMES_64)) != 0)
+    {
+        this->frames_64 = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_DS_STAT_ID_FRAMES_65_127)) != 0)
+    {
+        this->frames_65_127 = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_DS_STAT_ID_FRAMES_128_255)) != 0)
+    {
+        this->frames_128_255 = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_DS_STAT_ID_FRAMES_256_511)) != 0)
+    {
+        this->frames_256_511 = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_DS_STAT_ID_FRAMES_512_1023)) != 0)
+    {
+        this->frames_512_1023 = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_DS_STAT_ID_FRAMES_1024_1518)) != 0)
+    {
+        this->frames_1024_1518 = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_DS_STAT_ID_FRAMES_1519_2047)) != 0)
+    {
+        this->frames_1519_2047 = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_DS_STAT_ID_FRAMES_2048_4095)) != 0)
+    {
+        this->frames_2048_4095 = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_DS_STAT_ID_FRAMES_4096_9216)) != 0)
+    {
+        this->frames_4096_9216 = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_DS_STAT_ID_FRAMES_9217_16383)) != 0)
+    {
+        this->frames_9217_16383 = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_DS_STAT_ID_BROADCAST_FRAMES)) != 0)
+    {
+        this->broadcast_frames = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_DS_STAT_ID_DATA_BYTES)) != 0)
+    {
+        this->data_bytes = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_DS_STAT_ID_MULTICAST_FRAMES)) != 0)
+    {
+        this->multicast_frames = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_DS_STAT_ID_UNICAST_FRAMES)) != 0)
+    {
+        this->unicast_frames = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_DS_STAT_ID_OAM_BYTES)) != 0)
+    {
+        this->oam_bytes = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_DS_STAT_ID_OAM_FRAMES)) != 0)
+    {
+        this->oam_frames = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_DS_STAT_ID_GATE_FRAMES)) != 0)
+    {
+        this->gate_frames = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_DS_STAT_ID_MPCP_FRAMES)) != 0)
+    {
+        this->mpcp_frames = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_DS_STAT_ID_ABORT_FRAMES)) != 0)
+    {
+        this->abort_frames = 0;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_path_1g_ds_stat_data_pack(const bcmolt_epon_path_1g_ds_stat_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_DS_STAT_ID_BYTES)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->bytes))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_DS_STAT_ID_FRAMES)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->frames))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_DS_STAT_ID_FRAMES_64)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->frames_64))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_DS_STAT_ID_FRAMES_65_127)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->frames_65_127))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_DS_STAT_ID_FRAMES_128_255)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->frames_128_255))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_DS_STAT_ID_FRAMES_256_511)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->frames_256_511))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_DS_STAT_ID_FRAMES_512_1023)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->frames_512_1023))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_DS_STAT_ID_FRAMES_1024_1518)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->frames_1024_1518))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_DS_STAT_ID_FRAMES_1519_2047)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->frames_1519_2047))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_DS_STAT_ID_FRAMES_2048_4095)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->frames_2048_4095))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_DS_STAT_ID_FRAMES_4096_9216)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->frames_4096_9216))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_DS_STAT_ID_FRAMES_9217_16383)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->frames_9217_16383))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_DS_STAT_ID_BROADCAST_FRAMES)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->broadcast_frames))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_DS_STAT_ID_DATA_BYTES)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->data_bytes))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_DS_STAT_ID_MULTICAST_FRAMES)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->multicast_frames))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_DS_STAT_ID_UNICAST_FRAMES)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->unicast_frames))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_DS_STAT_ID_OAM_BYTES)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->oam_bytes))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_DS_STAT_ID_OAM_FRAMES)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->oam_frames))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_DS_STAT_ID_GATE_FRAMES)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->gate_frames))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_DS_STAT_ID_MPCP_FRAMES)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->mpcp_frames))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_DS_STAT_ID_ABORT_FRAMES)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->abort_frames))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_epon_path_1g_ds_stat_data_get_packed_length(const bcmolt_epon_path_1g_ds_stat_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_DS_STAT_ID_BYTES)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_DS_STAT_ID_FRAMES)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_DS_STAT_ID_FRAMES_64)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_DS_STAT_ID_FRAMES_65_127)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_DS_STAT_ID_FRAMES_128_255)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_DS_STAT_ID_FRAMES_256_511)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_DS_STAT_ID_FRAMES_512_1023)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_DS_STAT_ID_FRAMES_1024_1518)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_DS_STAT_ID_FRAMES_1519_2047)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_DS_STAT_ID_FRAMES_2048_4095)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_DS_STAT_ID_FRAMES_4096_9216)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_DS_STAT_ID_FRAMES_9217_16383)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_DS_STAT_ID_BROADCAST_FRAMES)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_DS_STAT_ID_DATA_BYTES)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_DS_STAT_ID_MULTICAST_FRAMES)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_DS_STAT_ID_UNICAST_FRAMES)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_DS_STAT_ID_OAM_BYTES)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_DS_STAT_ID_OAM_FRAMES)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_DS_STAT_ID_GATE_FRAMES)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_DS_STAT_ID_MPCP_FRAMES)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_DS_STAT_ID_ABORT_FRAMES)) != 0)
+    {
+        count += 8;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_path_1g_ds_stat_data_unpack(bcmolt_epon_path_1g_ds_stat_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_DS_STAT_ID_BYTES)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->bytes))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_DS_STAT_ID_FRAMES)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->frames))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_DS_STAT_ID_FRAMES_64)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->frames_64))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_DS_STAT_ID_FRAMES_65_127)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->frames_65_127))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_DS_STAT_ID_FRAMES_128_255)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->frames_128_255))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_DS_STAT_ID_FRAMES_256_511)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->frames_256_511))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_DS_STAT_ID_FRAMES_512_1023)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->frames_512_1023))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_DS_STAT_ID_FRAMES_1024_1518)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->frames_1024_1518))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_DS_STAT_ID_FRAMES_1519_2047)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->frames_1519_2047))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_DS_STAT_ID_FRAMES_2048_4095)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->frames_2048_4095))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_DS_STAT_ID_FRAMES_4096_9216)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->frames_4096_9216))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_DS_STAT_ID_FRAMES_9217_16383)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->frames_9217_16383))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_DS_STAT_ID_BROADCAST_FRAMES)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->broadcast_frames))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_DS_STAT_ID_DATA_BYTES)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->data_bytes))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_DS_STAT_ID_MULTICAST_FRAMES)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->multicast_frames))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_DS_STAT_ID_UNICAST_FRAMES)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->unicast_frames))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_DS_STAT_ID_OAM_BYTES)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->oam_bytes))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_DS_STAT_ID_OAM_FRAMES)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->oam_frames))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_DS_STAT_ID_GATE_FRAMES)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->gate_frames))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_DS_STAT_ID_MPCP_FRAMES)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->mpcp_frames))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_DS_STAT_ID_ABORT_FRAMES)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->abort_frames))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_path_1g_ds_stat_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_DS_STAT_ID_BYTES)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_DS_STAT_ID_FRAMES)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_DS_STAT_ID_FRAMES_64)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_DS_STAT_ID_FRAMES_65_127)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_DS_STAT_ID_FRAMES_128_255)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_DS_STAT_ID_FRAMES_256_511)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_DS_STAT_ID_FRAMES_512_1023)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_DS_STAT_ID_FRAMES_1024_1518)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_DS_STAT_ID_FRAMES_1519_2047)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_DS_STAT_ID_FRAMES_2048_4095)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_DS_STAT_ID_FRAMES_4096_9216)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_DS_STAT_ID_FRAMES_9217_16383)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_DS_STAT_ID_BROADCAST_FRAMES)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_DS_STAT_ID_DATA_BYTES)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_DS_STAT_ID_MULTICAST_FRAMES)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_DS_STAT_ID_UNICAST_FRAMES)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_DS_STAT_ID_OAM_BYTES)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_DS_STAT_ID_OAM_FRAMES)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_DS_STAT_ID_GATE_FRAMES)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_DS_STAT_ID_MPCP_FRAMES)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_DS_STAT_ID_ABORT_FRAMES)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_path_1g_ds_stat_data_bounds_check(const bcmolt_epon_path_1g_ds_stat_data *this, bcmolt_presence_mask fields_present, bcmolt_epon_path_1g_ds_stat_id *failed_prop)
+{
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_epon_path_1g_ds_stat_cfg_data_set_default(bcmolt_epon_path_1g_ds_stat_cfg_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_DS_STAT_CFG_ID_CFG)) != 0)
+    {
+        this->cfg.trigger.type = BCMOLT_STAT_CONDITION_TYPE_NONE;
+        this->cfg.soak.active_soak_time = 0;
+        this->cfg.soak.clear_soak_time = 0;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_path_1g_ds_stat_cfg_data_pack(const bcmolt_epon_path_1g_ds_stat_cfg_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_DS_STAT_CFG_ID_CFG)) != 0)
+    {
+        if (!bcmolt_stat_alarm_config_pack(&this->cfg, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_epon_path_1g_ds_stat_cfg_data_get_packed_length(const bcmolt_epon_path_1g_ds_stat_cfg_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_DS_STAT_CFG_ID_CFG)) != 0)
+    {
+        count += bcmolt_stat_alarm_config_get_packed_length(&this->cfg);
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_path_1g_ds_stat_cfg_data_unpack(bcmolt_epon_path_1g_ds_stat_cfg_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_DS_STAT_CFG_ID_CFG)) != 0)
+    {
+        if (!bcmolt_stat_alarm_config_unpack(&this->cfg, buf, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_path_1g_ds_stat_cfg_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_DS_STAT_CFG_ID_CFG)) != 0)
+    {
+        if (!bcmolt_stat_alarm_config_scan(packed, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_path_1g_ds_stat_cfg_data_bounds_check(const bcmolt_epon_path_1g_ds_stat_cfg_data *this, bcmolt_presence_mask fields_present, bcmolt_epon_path_1g_ds_stat_cfg_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_DS_STAT_CFG_ID_CFG)) != 0)
+    {
+        if (!bcmolt_stat_alarm_config_bounds_check(&this->cfg))
+        {
+            *failed_prop = BCMOLT_EPON_PATH_1G_DS_STAT_CFG_ID_CFG;
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_epon_path_1g_ds_stat_alarm_cleared_data_set_default(bcmolt_epon_path_1g_ds_stat_alarm_cleared_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_DS_STAT_ALARM_CLEARED_ID_STAT)) != 0)
+    {
+        this->stat = BCMOLT_EPON_PATH_1G_DS_STAT_ID_BYTES;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_path_1g_ds_stat_alarm_cleared_data_pack(const bcmolt_epon_path_1g_ds_stat_alarm_cleared_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_DS_STAT_ALARM_CLEARED_ID_STAT)) != 0)
+    {
+        if (!bcmolt_epon_path_1g_ds_stat_id_pack(this->stat, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_epon_path_1g_ds_stat_alarm_cleared_data_get_packed_length(const bcmolt_epon_path_1g_ds_stat_alarm_cleared_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_DS_STAT_ALARM_CLEARED_ID_STAT)) != 0)
+    {
+        count += 2;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_path_1g_ds_stat_alarm_cleared_data_unpack(bcmolt_epon_path_1g_ds_stat_alarm_cleared_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_DS_STAT_ALARM_CLEARED_ID_STAT)) != 0)
+    {
+        if (!bcmolt_epon_path_1g_ds_stat_id_unpack(&this->stat, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_path_1g_ds_stat_alarm_cleared_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_DS_STAT_ALARM_CLEARED_ID_STAT)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 2))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_path_1g_ds_stat_alarm_cleared_data_bounds_check(const bcmolt_epon_path_1g_ds_stat_alarm_cleared_data *this, bcmolt_presence_mask fields_present, bcmolt_epon_path_1g_ds_stat_alarm_cleared_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_DS_STAT_ALARM_CLEARED_ID_STAT)) != 0)
+    {
+        switch (this->stat)
+        {
+            case BCMOLT_EPON_PATH_1G_DS_STAT_ID_BYTES:
+                break;
+            case BCMOLT_EPON_PATH_1G_DS_STAT_ID_FRAMES:
+                break;
+            case BCMOLT_EPON_PATH_1G_DS_STAT_ID_FRAMES_64:
+                break;
+            case BCMOLT_EPON_PATH_1G_DS_STAT_ID_FRAMES_65_127:
+                break;
+            case BCMOLT_EPON_PATH_1G_DS_STAT_ID_FRAMES_128_255:
+                break;
+            case BCMOLT_EPON_PATH_1G_DS_STAT_ID_FRAMES_256_511:
+                break;
+            case BCMOLT_EPON_PATH_1G_DS_STAT_ID_FRAMES_512_1023:
+                break;
+            case BCMOLT_EPON_PATH_1G_DS_STAT_ID_FRAMES_1024_1518:
+                break;
+            case BCMOLT_EPON_PATH_1G_DS_STAT_ID_FRAMES_1519_2047:
+                break;
+            case BCMOLT_EPON_PATH_1G_DS_STAT_ID_FRAMES_2048_4095:
+                break;
+            case BCMOLT_EPON_PATH_1G_DS_STAT_ID_FRAMES_4096_9216:
+                break;
+            case BCMOLT_EPON_PATH_1G_DS_STAT_ID_FRAMES_9217_16383:
+                break;
+            case BCMOLT_EPON_PATH_1G_DS_STAT_ID_BROADCAST_FRAMES:
+                break;
+            case BCMOLT_EPON_PATH_1G_DS_STAT_ID_DATA_BYTES:
+                break;
+            case BCMOLT_EPON_PATH_1G_DS_STAT_ID_MULTICAST_FRAMES:
+                break;
+            case BCMOLT_EPON_PATH_1G_DS_STAT_ID_UNICAST_FRAMES:
+                break;
+            case BCMOLT_EPON_PATH_1G_DS_STAT_ID_OAM_BYTES:
+                break;
+            case BCMOLT_EPON_PATH_1G_DS_STAT_ID_OAM_FRAMES:
+                break;
+            case BCMOLT_EPON_PATH_1G_DS_STAT_ID_GATE_FRAMES:
+                break;
+            case BCMOLT_EPON_PATH_1G_DS_STAT_ID_MPCP_FRAMES:
+                break;
+            case BCMOLT_EPON_PATH_1G_DS_STAT_ID_ABORT_FRAMES:
+                break;
+            default:
+                *failed_prop = BCMOLT_EPON_PATH_1G_DS_STAT_ALARM_CLEARED_ID_STAT;
+                return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_epon_path_1g_ds_stat_alarm_raised_data_set_default(bcmolt_epon_path_1g_ds_stat_alarm_raised_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_DS_STAT_ALARM_RAISED_ID_STAT)) != 0)
+    {
+        this->stat = BCMOLT_EPON_PATH_1G_DS_STAT_ID_BYTES;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_path_1g_ds_stat_alarm_raised_data_pack(const bcmolt_epon_path_1g_ds_stat_alarm_raised_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_DS_STAT_ALARM_RAISED_ID_STAT)) != 0)
+    {
+        if (!bcmolt_epon_path_1g_ds_stat_id_pack(this->stat, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_epon_path_1g_ds_stat_alarm_raised_data_get_packed_length(const bcmolt_epon_path_1g_ds_stat_alarm_raised_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_DS_STAT_ALARM_RAISED_ID_STAT)) != 0)
+    {
+        count += 2;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_path_1g_ds_stat_alarm_raised_data_unpack(bcmolt_epon_path_1g_ds_stat_alarm_raised_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_DS_STAT_ALARM_RAISED_ID_STAT)) != 0)
+    {
+        if (!bcmolt_epon_path_1g_ds_stat_id_unpack(&this->stat, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_path_1g_ds_stat_alarm_raised_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_DS_STAT_ALARM_RAISED_ID_STAT)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 2))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_path_1g_ds_stat_alarm_raised_data_bounds_check(const bcmolt_epon_path_1g_ds_stat_alarm_raised_data *this, bcmolt_presence_mask fields_present, bcmolt_epon_path_1g_ds_stat_alarm_raised_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_DS_STAT_ALARM_RAISED_ID_STAT)) != 0)
+    {
+        switch (this->stat)
+        {
+            case BCMOLT_EPON_PATH_1G_DS_STAT_ID_BYTES:
+                break;
+            case BCMOLT_EPON_PATH_1G_DS_STAT_ID_FRAMES:
+                break;
+            case BCMOLT_EPON_PATH_1G_DS_STAT_ID_FRAMES_64:
+                break;
+            case BCMOLT_EPON_PATH_1G_DS_STAT_ID_FRAMES_65_127:
+                break;
+            case BCMOLT_EPON_PATH_1G_DS_STAT_ID_FRAMES_128_255:
+                break;
+            case BCMOLT_EPON_PATH_1G_DS_STAT_ID_FRAMES_256_511:
+                break;
+            case BCMOLT_EPON_PATH_1G_DS_STAT_ID_FRAMES_512_1023:
+                break;
+            case BCMOLT_EPON_PATH_1G_DS_STAT_ID_FRAMES_1024_1518:
+                break;
+            case BCMOLT_EPON_PATH_1G_DS_STAT_ID_FRAMES_1519_2047:
+                break;
+            case BCMOLT_EPON_PATH_1G_DS_STAT_ID_FRAMES_2048_4095:
+                break;
+            case BCMOLT_EPON_PATH_1G_DS_STAT_ID_FRAMES_4096_9216:
+                break;
+            case BCMOLT_EPON_PATH_1G_DS_STAT_ID_FRAMES_9217_16383:
+                break;
+            case BCMOLT_EPON_PATH_1G_DS_STAT_ID_BROADCAST_FRAMES:
+                break;
+            case BCMOLT_EPON_PATH_1G_DS_STAT_ID_DATA_BYTES:
+                break;
+            case BCMOLT_EPON_PATH_1G_DS_STAT_ID_MULTICAST_FRAMES:
+                break;
+            case BCMOLT_EPON_PATH_1G_DS_STAT_ID_UNICAST_FRAMES:
+                break;
+            case BCMOLT_EPON_PATH_1G_DS_STAT_ID_OAM_BYTES:
+                break;
+            case BCMOLT_EPON_PATH_1G_DS_STAT_ID_OAM_FRAMES:
+                break;
+            case BCMOLT_EPON_PATH_1G_DS_STAT_ID_GATE_FRAMES:
+                break;
+            case BCMOLT_EPON_PATH_1G_DS_STAT_ID_MPCP_FRAMES:
+                break;
+            case BCMOLT_EPON_PATH_1G_DS_STAT_ID_ABORT_FRAMES:
+                break;
+            default:
+                *failed_prop = BCMOLT_EPON_PATH_1G_DS_STAT_ALARM_RAISED_ID_STAT;
+                return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_epon_path_1g_ds_auto_cfg_data_set_default(bcmolt_epon_path_1g_ds_auto_cfg_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_DS_AUTO_CFG_ID_STAT_ALARM_CLEARED)) != 0)
+    {
+        this->stat_alarm_cleared = BCMOS_FALSE;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_DS_AUTO_CFG_ID_STAT_ALARM_RAISED)) != 0)
+    {
+        this->stat_alarm_raised = BCMOS_FALSE;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_path_1g_ds_auto_cfg_data_pack(const bcmolt_epon_path_1g_ds_auto_cfg_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_DS_AUTO_CFG_ID_STAT_ALARM_CLEARED)) != 0)
+    {
+        if (!bcmolt_buf_write_bool(buf, this->stat_alarm_cleared))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_DS_AUTO_CFG_ID_STAT_ALARM_RAISED)) != 0)
+    {
+        if (!bcmolt_buf_write_bool(buf, this->stat_alarm_raised))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_epon_path_1g_ds_auto_cfg_data_get_packed_length(const bcmolt_epon_path_1g_ds_auto_cfg_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_DS_AUTO_CFG_ID_STAT_ALARM_CLEARED)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_DS_AUTO_CFG_ID_STAT_ALARM_RAISED)) != 0)
+    {
+        count += 1;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_path_1g_ds_auto_cfg_data_unpack(bcmolt_epon_path_1g_ds_auto_cfg_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_DS_AUTO_CFG_ID_STAT_ALARM_CLEARED)) != 0)
+    {
+        if (!bcmolt_buf_read_bool(buf, &this->stat_alarm_cleared))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_DS_AUTO_CFG_ID_STAT_ALARM_RAISED)) != 0)
+    {
+        if (!bcmolt_buf_read_bool(buf, &this->stat_alarm_raised))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_path_1g_ds_auto_cfg_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_DS_AUTO_CFG_ID_STAT_ALARM_CLEARED)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_DS_AUTO_CFG_ID_STAT_ALARM_RAISED)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_path_1g_ds_auto_cfg_data_bounds_check(const bcmolt_epon_path_1g_ds_auto_cfg_data *this, bcmolt_presence_mask fields_present, bcmolt_epon_path_1g_ds_auto_cfg_id *failed_prop)
+{
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_epon_path_1g_us_key_set_default(bcmolt_epon_path_1g_us_key *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_US_KEY_ID_EPON_NI)) != 0)
+    {
+        this->epon_ni = (bcmolt_epon_ni) 0;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_path_1g_us_key_pack(const bcmolt_epon_path_1g_us_key *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_US_KEY_ID_EPON_NI)) != 0)
+    {
+        if (!bcmolt_buf_write_u16(buf, (uint16_t) this->epon_ni))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_epon_path_1g_us_key_get_packed_length(const bcmolt_epon_path_1g_us_key *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_US_KEY_ID_EPON_NI)) != 0)
+    {
+        count += 2;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_path_1g_us_key_unpack(bcmolt_epon_path_1g_us_key *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_US_KEY_ID_EPON_NI)) != 0)
+    {
+        if (!bcmolt_buf_read_u16(buf, (uint16_t *) &this->epon_ni))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_path_1g_us_key_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_US_KEY_ID_EPON_NI)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 2))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_path_1g_us_key_bounds_check(const bcmolt_epon_path_1g_us_key *this, bcmolt_presence_mask fields_present, bcmolt_epon_path_1g_us_key_id *failed_prop)
+{
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_epon_path_1g_us_cfg_data_set_default(bcmolt_epon_path_1g_us_cfg_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_US_CFG_ID_DEFAULT_FEC_STATE)) != 0)
+    {
+        this->default_fec_state = BCMOLT_EPON_FEC_EN_STATE_DISABLED;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_US_CFG_ID_SYNC_TIME_TQ)) != 0)
+    {
+        this->sync_time_tq = (bcmolt_time_quanta) 32;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_US_CFG_ID_PRBS_CHECKER)) != 0)
+    {
+        this->prbs_checker.polynom = BCMOLT_PRBS_POLYNOMIAL_PRBS_7;
+        this->prbs_checker.mode = BCMOLT_PRBS_CHECKER_MODE_SELF_SYNC;
+        this->prbs_checker.data_invert = BCMOS_FALSE;
+        this->prbs_checker.control = BCMOLT_CONTROL_STATE_DISABLE;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_US_CFG_ID_PRBS_STATUS)) != 0)
+    {
+        this->prbs_status.lock_state = BCMOLT_PRBS_LOCK_STATE_UNLOCKED;
+        this->prbs_status.error_counts = 0;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_path_1g_us_cfg_data_pack(const bcmolt_epon_path_1g_us_cfg_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_US_CFG_ID_DEFAULT_FEC_STATE)) != 0)
+    {
+        if (!bcmolt_epon_fec_en_state_pack(this->default_fec_state, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_US_CFG_ID_SYNC_TIME_TQ)) != 0)
+    {
+        if (!bcmolt_buf_write_u32(buf, (uint32_t) this->sync_time_tq))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_US_CFG_ID_PRBS_CHECKER)) != 0)
+    {
+        if (!bcmolt_prbs_checker_config_pack(&this->prbs_checker, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_US_CFG_ID_PRBS_STATUS)) != 0)
+    {
+        if (!bcmolt_prbs_status_pack(&this->prbs_status, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_epon_path_1g_us_cfg_data_get_packed_length(const bcmolt_epon_path_1g_us_cfg_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_US_CFG_ID_DEFAULT_FEC_STATE)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_US_CFG_ID_SYNC_TIME_TQ)) != 0)
+    {
+        count += 4;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_US_CFG_ID_PRBS_CHECKER)) != 0)
+    {
+        count += 4;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_US_CFG_ID_PRBS_STATUS)) != 0)
+    {
+        count += 5;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_path_1g_us_cfg_data_unpack(bcmolt_epon_path_1g_us_cfg_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_US_CFG_ID_DEFAULT_FEC_STATE)) != 0)
+    {
+        if (!bcmolt_epon_fec_en_state_unpack(&this->default_fec_state, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_US_CFG_ID_SYNC_TIME_TQ)) != 0)
+    {
+        if (!bcmolt_buf_read_u32(buf, (uint32_t *) &this->sync_time_tq))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_US_CFG_ID_PRBS_CHECKER)) != 0)
+    {
+        if (!bcmolt_prbs_checker_config_unpack(&this->prbs_checker, buf, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_US_CFG_ID_PRBS_STATUS)) != 0)
+    {
+        if (!bcmolt_prbs_status_unpack(&this->prbs_status, buf, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_path_1g_us_cfg_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_US_CFG_ID_DEFAULT_FEC_STATE)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_US_CFG_ID_SYNC_TIME_TQ)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 4))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_US_CFG_ID_PRBS_CHECKER)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 4))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_US_CFG_ID_PRBS_STATUS)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 5))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_path_1g_us_cfg_data_bounds_check(const bcmolt_epon_path_1g_us_cfg_data *this, bcmolt_presence_mask fields_present, bcmolt_epon_path_1g_us_cfg_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_US_CFG_ID_DEFAULT_FEC_STATE)) != 0)
+    {
+        switch (this->default_fec_state)
+        {
+            case BCMOLT_EPON_FEC_EN_STATE_DISABLED:
+                break;
+            case BCMOLT_EPON_FEC_EN_STATE_ENABLED:
+                break;
+            default:
+                *failed_prop = BCMOLT_EPON_PATH_1G_US_CFG_ID_DEFAULT_FEC_STATE;
+                return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_US_CFG_ID_SYNC_TIME_TQ)) != 0)
+    {
+        if (this->sync_time_tq > (bcmolt_time_quanta) 65535UL)
+        {
+            *failed_prop = BCMOLT_EPON_PATH_1G_US_CFG_ID_SYNC_TIME_TQ;
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_US_CFG_ID_PRBS_CHECKER)) != 0)
+    {
+        if (!bcmolt_prbs_checker_config_bounds_check(&this->prbs_checker))
+        {
+            *failed_prop = BCMOLT_EPON_PATH_1G_US_CFG_ID_PRBS_CHECKER;
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_US_CFG_ID_PRBS_STATUS)) != 0)
+    {
+        if (!bcmolt_prbs_status_bounds_check(&this->prbs_status))
+        {
+            *failed_prop = BCMOLT_EPON_PATH_1G_US_CFG_ID_PRBS_STATUS;
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_epon_path_1g_us_stat_data_set_default(bcmolt_epon_path_1g_us_stat_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_US_STAT_ID_BYTES)) != 0)
+    {
+        this->bytes = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_US_STAT_ID_FRAMES)) != 0)
+    {
+        this->frames = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_US_STAT_ID_FRAMES_64)) != 0)
+    {
+        this->frames_64 = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_US_STAT_ID_FRAMES_65_127)) != 0)
+    {
+        this->frames_65_127 = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_US_STAT_ID_FRAMES_128_255)) != 0)
+    {
+        this->frames_128_255 = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_US_STAT_ID_FRAMES_256_511)) != 0)
+    {
+        this->frames_256_511 = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_US_STAT_ID_FRAMES_512_1023)) != 0)
+    {
+        this->frames_512_1023 = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_US_STAT_ID_FRAMES_1024_1518)) != 0)
+    {
+        this->frames_1024_1518 = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_US_STAT_ID_FRAMES_1519_2047)) != 0)
+    {
+        this->frames_1519_2047 = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_US_STAT_ID_FRAMES_2048_4095)) != 0)
+    {
+        this->frames_2048_4095 = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_US_STAT_ID_FRAMES_4096_9216)) != 0)
+    {
+        this->frames_4096_9216 = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_US_STAT_ID_FRAMES_9217_16383)) != 0)
+    {
+        this->frames_9217_16383 = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_US_STAT_ID_BROADCAST_FRAMES)) != 0)
+    {
+        this->broadcast_frames = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_US_STAT_ID_DATA_BYTES)) != 0)
+    {
+        this->data_bytes = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_US_STAT_ID_MULTICAST_FRAMES)) != 0)
+    {
+        this->multicast_frames = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_US_STAT_ID_UNICAST_FRAMES)) != 0)
+    {
+        this->unicast_frames = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_US_STAT_ID_MPCP_FRAMES)) != 0)
+    {
+        this->mpcp_frames = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_US_STAT_ID_OAM_BYTES)) != 0)
+    {
+        this->oam_bytes = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_US_STAT_ID_OAM_FRAMES)) != 0)
+    {
+        this->oam_frames = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_US_STAT_ID_REPORT_FRAMES)) != 0)
+    {
+        this->report_frames = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_US_STAT_ID_ABORT_FRAMES)) != 0)
+    {
+        this->abort_frames = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_US_STAT_ID_FCS_ERROR)) != 0)
+    {
+        this->fcs_error = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_US_STAT_ID_CRC_8_ERROR)) != 0)
+    {
+        this->crc_8_error = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_US_STAT_ID_OUT_OF_SLOT)) != 0)
+    {
+        this->out_of_slot = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_US_STAT_ID_OVERSIZE_ERROR)) != 0)
+    {
+        this->oversize_error = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_US_STAT_ID_RUNT_ERROR)) != 0)
+    {
+        this->runt_error = 0;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_path_1g_us_stat_data_pack(const bcmolt_epon_path_1g_us_stat_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_US_STAT_ID_BYTES)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->bytes))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_US_STAT_ID_FRAMES)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->frames))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_US_STAT_ID_FRAMES_64)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->frames_64))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_US_STAT_ID_FRAMES_65_127)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->frames_65_127))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_US_STAT_ID_FRAMES_128_255)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->frames_128_255))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_US_STAT_ID_FRAMES_256_511)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->frames_256_511))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_US_STAT_ID_FRAMES_512_1023)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->frames_512_1023))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_US_STAT_ID_FRAMES_1024_1518)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->frames_1024_1518))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_US_STAT_ID_FRAMES_1519_2047)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->frames_1519_2047))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_US_STAT_ID_FRAMES_2048_4095)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->frames_2048_4095))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_US_STAT_ID_FRAMES_4096_9216)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->frames_4096_9216))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_US_STAT_ID_FRAMES_9217_16383)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->frames_9217_16383))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_US_STAT_ID_BROADCAST_FRAMES)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->broadcast_frames))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_US_STAT_ID_DATA_BYTES)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->data_bytes))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_US_STAT_ID_MULTICAST_FRAMES)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->multicast_frames))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_US_STAT_ID_UNICAST_FRAMES)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->unicast_frames))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_US_STAT_ID_MPCP_FRAMES)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->mpcp_frames))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_US_STAT_ID_OAM_BYTES)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->oam_bytes))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_US_STAT_ID_OAM_FRAMES)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->oam_frames))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_US_STAT_ID_REPORT_FRAMES)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->report_frames))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_US_STAT_ID_ABORT_FRAMES)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->abort_frames))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_US_STAT_ID_FCS_ERROR)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->fcs_error))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_US_STAT_ID_CRC_8_ERROR)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->crc_8_error))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_US_STAT_ID_OUT_OF_SLOT)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->out_of_slot))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_US_STAT_ID_OVERSIZE_ERROR)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->oversize_error))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_US_STAT_ID_RUNT_ERROR)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->runt_error))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_epon_path_1g_us_stat_data_get_packed_length(const bcmolt_epon_path_1g_us_stat_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_US_STAT_ID_BYTES)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_US_STAT_ID_FRAMES)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_US_STAT_ID_FRAMES_64)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_US_STAT_ID_FRAMES_65_127)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_US_STAT_ID_FRAMES_128_255)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_US_STAT_ID_FRAMES_256_511)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_US_STAT_ID_FRAMES_512_1023)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_US_STAT_ID_FRAMES_1024_1518)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_US_STAT_ID_FRAMES_1519_2047)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_US_STAT_ID_FRAMES_2048_4095)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_US_STAT_ID_FRAMES_4096_9216)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_US_STAT_ID_FRAMES_9217_16383)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_US_STAT_ID_BROADCAST_FRAMES)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_US_STAT_ID_DATA_BYTES)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_US_STAT_ID_MULTICAST_FRAMES)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_US_STAT_ID_UNICAST_FRAMES)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_US_STAT_ID_MPCP_FRAMES)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_US_STAT_ID_OAM_BYTES)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_US_STAT_ID_OAM_FRAMES)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_US_STAT_ID_REPORT_FRAMES)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_US_STAT_ID_ABORT_FRAMES)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_US_STAT_ID_FCS_ERROR)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_US_STAT_ID_CRC_8_ERROR)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_US_STAT_ID_OUT_OF_SLOT)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_US_STAT_ID_OVERSIZE_ERROR)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_US_STAT_ID_RUNT_ERROR)) != 0)
+    {
+        count += 8;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_path_1g_us_stat_data_unpack(bcmolt_epon_path_1g_us_stat_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_US_STAT_ID_BYTES)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->bytes))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_US_STAT_ID_FRAMES)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->frames))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_US_STAT_ID_FRAMES_64)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->frames_64))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_US_STAT_ID_FRAMES_65_127)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->frames_65_127))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_US_STAT_ID_FRAMES_128_255)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->frames_128_255))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_US_STAT_ID_FRAMES_256_511)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->frames_256_511))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_US_STAT_ID_FRAMES_512_1023)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->frames_512_1023))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_US_STAT_ID_FRAMES_1024_1518)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->frames_1024_1518))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_US_STAT_ID_FRAMES_1519_2047)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->frames_1519_2047))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_US_STAT_ID_FRAMES_2048_4095)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->frames_2048_4095))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_US_STAT_ID_FRAMES_4096_9216)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->frames_4096_9216))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_US_STAT_ID_FRAMES_9217_16383)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->frames_9217_16383))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_US_STAT_ID_BROADCAST_FRAMES)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->broadcast_frames))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_US_STAT_ID_DATA_BYTES)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->data_bytes))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_US_STAT_ID_MULTICAST_FRAMES)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->multicast_frames))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_US_STAT_ID_UNICAST_FRAMES)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->unicast_frames))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_US_STAT_ID_MPCP_FRAMES)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->mpcp_frames))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_US_STAT_ID_OAM_BYTES)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->oam_bytes))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_US_STAT_ID_OAM_FRAMES)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->oam_frames))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_US_STAT_ID_REPORT_FRAMES)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->report_frames))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_US_STAT_ID_ABORT_FRAMES)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->abort_frames))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_US_STAT_ID_FCS_ERROR)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->fcs_error))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_US_STAT_ID_CRC_8_ERROR)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->crc_8_error))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_US_STAT_ID_OUT_OF_SLOT)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->out_of_slot))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_US_STAT_ID_OVERSIZE_ERROR)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->oversize_error))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_US_STAT_ID_RUNT_ERROR)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->runt_error))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_path_1g_us_stat_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_US_STAT_ID_BYTES)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_US_STAT_ID_FRAMES)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_US_STAT_ID_FRAMES_64)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_US_STAT_ID_FRAMES_65_127)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_US_STAT_ID_FRAMES_128_255)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_US_STAT_ID_FRAMES_256_511)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_US_STAT_ID_FRAMES_512_1023)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_US_STAT_ID_FRAMES_1024_1518)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_US_STAT_ID_FRAMES_1519_2047)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_US_STAT_ID_FRAMES_2048_4095)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_US_STAT_ID_FRAMES_4096_9216)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_US_STAT_ID_FRAMES_9217_16383)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_US_STAT_ID_BROADCAST_FRAMES)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_US_STAT_ID_DATA_BYTES)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_US_STAT_ID_MULTICAST_FRAMES)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_US_STAT_ID_UNICAST_FRAMES)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_US_STAT_ID_MPCP_FRAMES)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_US_STAT_ID_OAM_BYTES)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_US_STAT_ID_OAM_FRAMES)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_US_STAT_ID_REPORT_FRAMES)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_US_STAT_ID_ABORT_FRAMES)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_US_STAT_ID_FCS_ERROR)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_US_STAT_ID_CRC_8_ERROR)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_US_STAT_ID_OUT_OF_SLOT)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_US_STAT_ID_OVERSIZE_ERROR)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_US_STAT_ID_RUNT_ERROR)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_path_1g_us_stat_data_bounds_check(const bcmolt_epon_path_1g_us_stat_data *this, bcmolt_presence_mask fields_present, bcmolt_epon_path_1g_us_stat_id *failed_prop)
+{
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_epon_path_1g_us_stat_cfg_data_set_default(bcmolt_epon_path_1g_us_stat_cfg_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_US_STAT_CFG_ID_CFG)) != 0)
+    {
+        this->cfg.trigger.type = BCMOLT_STAT_CONDITION_TYPE_NONE;
+        this->cfg.soak.active_soak_time = 0;
+        this->cfg.soak.clear_soak_time = 0;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_path_1g_us_stat_cfg_data_pack(const bcmolt_epon_path_1g_us_stat_cfg_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_US_STAT_CFG_ID_CFG)) != 0)
+    {
+        if (!bcmolt_stat_alarm_config_pack(&this->cfg, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_epon_path_1g_us_stat_cfg_data_get_packed_length(const bcmolt_epon_path_1g_us_stat_cfg_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_US_STAT_CFG_ID_CFG)) != 0)
+    {
+        count += bcmolt_stat_alarm_config_get_packed_length(&this->cfg);
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_path_1g_us_stat_cfg_data_unpack(bcmolt_epon_path_1g_us_stat_cfg_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_US_STAT_CFG_ID_CFG)) != 0)
+    {
+        if (!bcmolt_stat_alarm_config_unpack(&this->cfg, buf, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_path_1g_us_stat_cfg_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_US_STAT_CFG_ID_CFG)) != 0)
+    {
+        if (!bcmolt_stat_alarm_config_scan(packed, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_path_1g_us_stat_cfg_data_bounds_check(const bcmolt_epon_path_1g_us_stat_cfg_data *this, bcmolt_presence_mask fields_present, bcmolt_epon_path_1g_us_stat_cfg_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_US_STAT_CFG_ID_CFG)) != 0)
+    {
+        if (!bcmolt_stat_alarm_config_bounds_check(&this->cfg))
+        {
+            *failed_prop = BCMOLT_EPON_PATH_1G_US_STAT_CFG_ID_CFG;
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_epon_path_1g_us_stat_alarm_cleared_data_set_default(bcmolt_epon_path_1g_us_stat_alarm_cleared_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_US_STAT_ALARM_CLEARED_ID_STAT)) != 0)
+    {
+        this->stat = BCMOLT_EPON_PATH_1G_US_STAT_ID_BYTES;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_path_1g_us_stat_alarm_cleared_data_pack(const bcmolt_epon_path_1g_us_stat_alarm_cleared_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_US_STAT_ALARM_CLEARED_ID_STAT)) != 0)
+    {
+        if (!bcmolt_epon_path_1g_us_stat_id_pack(this->stat, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_epon_path_1g_us_stat_alarm_cleared_data_get_packed_length(const bcmolt_epon_path_1g_us_stat_alarm_cleared_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_US_STAT_ALARM_CLEARED_ID_STAT)) != 0)
+    {
+        count += 2;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_path_1g_us_stat_alarm_cleared_data_unpack(bcmolt_epon_path_1g_us_stat_alarm_cleared_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_US_STAT_ALARM_CLEARED_ID_STAT)) != 0)
+    {
+        if (!bcmolt_epon_path_1g_us_stat_id_unpack(&this->stat, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_path_1g_us_stat_alarm_cleared_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_US_STAT_ALARM_CLEARED_ID_STAT)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 2))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_path_1g_us_stat_alarm_cleared_data_bounds_check(const bcmolt_epon_path_1g_us_stat_alarm_cleared_data *this, bcmolt_presence_mask fields_present, bcmolt_epon_path_1g_us_stat_alarm_cleared_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_US_STAT_ALARM_CLEARED_ID_STAT)) != 0)
+    {
+        switch (this->stat)
+        {
+            case BCMOLT_EPON_PATH_1G_US_STAT_ID_BYTES:
+                break;
+            case BCMOLT_EPON_PATH_1G_US_STAT_ID_FRAMES:
+                break;
+            case BCMOLT_EPON_PATH_1G_US_STAT_ID_FRAMES_64:
+                break;
+            case BCMOLT_EPON_PATH_1G_US_STAT_ID_FRAMES_65_127:
+                break;
+            case BCMOLT_EPON_PATH_1G_US_STAT_ID_FRAMES_128_255:
+                break;
+            case BCMOLT_EPON_PATH_1G_US_STAT_ID_FRAMES_256_511:
+                break;
+            case BCMOLT_EPON_PATH_1G_US_STAT_ID_FRAMES_512_1023:
+                break;
+            case BCMOLT_EPON_PATH_1G_US_STAT_ID_FRAMES_1024_1518:
+                break;
+            case BCMOLT_EPON_PATH_1G_US_STAT_ID_FRAMES_1519_2047:
+                break;
+            case BCMOLT_EPON_PATH_1G_US_STAT_ID_FRAMES_2048_4095:
+                break;
+            case BCMOLT_EPON_PATH_1G_US_STAT_ID_FRAMES_4096_9216:
+                break;
+            case BCMOLT_EPON_PATH_1G_US_STAT_ID_FRAMES_9217_16383:
+                break;
+            case BCMOLT_EPON_PATH_1G_US_STAT_ID_BROADCAST_FRAMES:
+                break;
+            case BCMOLT_EPON_PATH_1G_US_STAT_ID_DATA_BYTES:
+                break;
+            case BCMOLT_EPON_PATH_1G_US_STAT_ID_MULTICAST_FRAMES:
+                break;
+            case BCMOLT_EPON_PATH_1G_US_STAT_ID_UNICAST_FRAMES:
+                break;
+            case BCMOLT_EPON_PATH_1G_US_STAT_ID_MPCP_FRAMES:
+                break;
+            case BCMOLT_EPON_PATH_1G_US_STAT_ID_OAM_BYTES:
+                break;
+            case BCMOLT_EPON_PATH_1G_US_STAT_ID_OAM_FRAMES:
+                break;
+            case BCMOLT_EPON_PATH_1G_US_STAT_ID_REPORT_FRAMES:
+                break;
+            case BCMOLT_EPON_PATH_1G_US_STAT_ID_ABORT_FRAMES:
+                break;
+            case BCMOLT_EPON_PATH_1G_US_STAT_ID_FCS_ERROR:
+                break;
+            case BCMOLT_EPON_PATH_1G_US_STAT_ID_CRC_8_ERROR:
+                break;
+            case BCMOLT_EPON_PATH_1G_US_STAT_ID_OUT_OF_SLOT:
+                break;
+            case BCMOLT_EPON_PATH_1G_US_STAT_ID_OVERSIZE_ERROR:
+                break;
+            case BCMOLT_EPON_PATH_1G_US_STAT_ID_RUNT_ERROR:
+                break;
+            default:
+                *failed_prop = BCMOLT_EPON_PATH_1G_US_STAT_ALARM_CLEARED_ID_STAT;
+                return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_epon_path_1g_us_stat_alarm_raised_data_set_default(bcmolt_epon_path_1g_us_stat_alarm_raised_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_US_STAT_ALARM_RAISED_ID_STAT)) != 0)
+    {
+        this->stat = BCMOLT_EPON_PATH_1G_US_STAT_ID_BYTES;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_path_1g_us_stat_alarm_raised_data_pack(const bcmolt_epon_path_1g_us_stat_alarm_raised_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_US_STAT_ALARM_RAISED_ID_STAT)) != 0)
+    {
+        if (!bcmolt_epon_path_1g_us_stat_id_pack(this->stat, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_epon_path_1g_us_stat_alarm_raised_data_get_packed_length(const bcmolt_epon_path_1g_us_stat_alarm_raised_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_US_STAT_ALARM_RAISED_ID_STAT)) != 0)
+    {
+        count += 2;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_path_1g_us_stat_alarm_raised_data_unpack(bcmolt_epon_path_1g_us_stat_alarm_raised_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_US_STAT_ALARM_RAISED_ID_STAT)) != 0)
+    {
+        if (!bcmolt_epon_path_1g_us_stat_id_unpack(&this->stat, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_path_1g_us_stat_alarm_raised_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_US_STAT_ALARM_RAISED_ID_STAT)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 2))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_path_1g_us_stat_alarm_raised_data_bounds_check(const bcmolt_epon_path_1g_us_stat_alarm_raised_data *this, bcmolt_presence_mask fields_present, bcmolt_epon_path_1g_us_stat_alarm_raised_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_US_STAT_ALARM_RAISED_ID_STAT)) != 0)
+    {
+        switch (this->stat)
+        {
+            case BCMOLT_EPON_PATH_1G_US_STAT_ID_BYTES:
+                break;
+            case BCMOLT_EPON_PATH_1G_US_STAT_ID_FRAMES:
+                break;
+            case BCMOLT_EPON_PATH_1G_US_STAT_ID_FRAMES_64:
+                break;
+            case BCMOLT_EPON_PATH_1G_US_STAT_ID_FRAMES_65_127:
+                break;
+            case BCMOLT_EPON_PATH_1G_US_STAT_ID_FRAMES_128_255:
+                break;
+            case BCMOLT_EPON_PATH_1G_US_STAT_ID_FRAMES_256_511:
+                break;
+            case BCMOLT_EPON_PATH_1G_US_STAT_ID_FRAMES_512_1023:
+                break;
+            case BCMOLT_EPON_PATH_1G_US_STAT_ID_FRAMES_1024_1518:
+                break;
+            case BCMOLT_EPON_PATH_1G_US_STAT_ID_FRAMES_1519_2047:
+                break;
+            case BCMOLT_EPON_PATH_1G_US_STAT_ID_FRAMES_2048_4095:
+                break;
+            case BCMOLT_EPON_PATH_1G_US_STAT_ID_FRAMES_4096_9216:
+                break;
+            case BCMOLT_EPON_PATH_1G_US_STAT_ID_FRAMES_9217_16383:
+                break;
+            case BCMOLT_EPON_PATH_1G_US_STAT_ID_BROADCAST_FRAMES:
+                break;
+            case BCMOLT_EPON_PATH_1G_US_STAT_ID_DATA_BYTES:
+                break;
+            case BCMOLT_EPON_PATH_1G_US_STAT_ID_MULTICAST_FRAMES:
+                break;
+            case BCMOLT_EPON_PATH_1G_US_STAT_ID_UNICAST_FRAMES:
+                break;
+            case BCMOLT_EPON_PATH_1G_US_STAT_ID_MPCP_FRAMES:
+                break;
+            case BCMOLT_EPON_PATH_1G_US_STAT_ID_OAM_BYTES:
+                break;
+            case BCMOLT_EPON_PATH_1G_US_STAT_ID_OAM_FRAMES:
+                break;
+            case BCMOLT_EPON_PATH_1G_US_STAT_ID_REPORT_FRAMES:
+                break;
+            case BCMOLT_EPON_PATH_1G_US_STAT_ID_ABORT_FRAMES:
+                break;
+            case BCMOLT_EPON_PATH_1G_US_STAT_ID_FCS_ERROR:
+                break;
+            case BCMOLT_EPON_PATH_1G_US_STAT_ID_CRC_8_ERROR:
+                break;
+            case BCMOLT_EPON_PATH_1G_US_STAT_ID_OUT_OF_SLOT:
+                break;
+            case BCMOLT_EPON_PATH_1G_US_STAT_ID_OVERSIZE_ERROR:
+                break;
+            case BCMOLT_EPON_PATH_1G_US_STAT_ID_RUNT_ERROR:
+                break;
+            default:
+                *failed_prop = BCMOLT_EPON_PATH_1G_US_STAT_ALARM_RAISED_ID_STAT;
+                return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_epon_path_1g_us_auto_cfg_data_set_default(bcmolt_epon_path_1g_us_auto_cfg_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_US_AUTO_CFG_ID_STAT_ALARM_CLEARED)) != 0)
+    {
+        this->stat_alarm_cleared = BCMOS_FALSE;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_US_AUTO_CFG_ID_STAT_ALARM_RAISED)) != 0)
+    {
+        this->stat_alarm_raised = BCMOS_FALSE;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_path_1g_us_auto_cfg_data_pack(const bcmolt_epon_path_1g_us_auto_cfg_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_US_AUTO_CFG_ID_STAT_ALARM_CLEARED)) != 0)
+    {
+        if (!bcmolt_buf_write_bool(buf, this->stat_alarm_cleared))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_US_AUTO_CFG_ID_STAT_ALARM_RAISED)) != 0)
+    {
+        if (!bcmolt_buf_write_bool(buf, this->stat_alarm_raised))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_epon_path_1g_us_auto_cfg_data_get_packed_length(const bcmolt_epon_path_1g_us_auto_cfg_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_US_AUTO_CFG_ID_STAT_ALARM_CLEARED)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_US_AUTO_CFG_ID_STAT_ALARM_RAISED)) != 0)
+    {
+        count += 1;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_path_1g_us_auto_cfg_data_unpack(bcmolt_epon_path_1g_us_auto_cfg_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_US_AUTO_CFG_ID_STAT_ALARM_CLEARED)) != 0)
+    {
+        if (!bcmolt_buf_read_bool(buf, &this->stat_alarm_cleared))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_US_AUTO_CFG_ID_STAT_ALARM_RAISED)) != 0)
+    {
+        if (!bcmolt_buf_read_bool(buf, &this->stat_alarm_raised))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_path_1g_us_auto_cfg_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_US_AUTO_CFG_ID_STAT_ALARM_CLEARED)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_PATH_1G_US_AUTO_CFG_ID_STAT_ALARM_RAISED)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_path_1g_us_auto_cfg_data_bounds_check(const bcmolt_epon_path_1g_us_auto_cfg_data *this, bcmolt_presence_mask fields_present, bcmolt_epon_path_1g_us_auto_cfg_id *failed_prop)
+{
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_epon_rp_key_set_default(bcmolt_epon_rp_key *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_RP_KEY_ID_EPON_NI)) != 0)
+    {
+        this->epon_ni = (bcmolt_epon_ni) 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_RP_KEY_ID_LINK_RATE)) != 0)
+    {
+        this->link_rate = BCMOLT_EPON_LINK_RATE_TEN_TEN;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_rp_key_pack(const bcmolt_epon_rp_key *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_RP_KEY_ID_EPON_NI)) != 0)
+    {
+        if (!bcmolt_buf_write_u16(buf, (uint16_t) this->epon_ni))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_RP_KEY_ID_LINK_RATE)) != 0)
+    {
+        if (!bcmolt_epon_link_rate_pack(this->link_rate, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_epon_rp_key_get_packed_length(const bcmolt_epon_rp_key *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_EPON_RP_KEY_ID_EPON_NI)) != 0)
+    {
+        count += 2;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_RP_KEY_ID_LINK_RATE)) != 0)
+    {
+        count += 2;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_rp_key_unpack(bcmolt_epon_rp_key *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_RP_KEY_ID_EPON_NI)) != 0)
+    {
+        if (!bcmolt_buf_read_u16(buf, (uint16_t *) &this->epon_ni))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_RP_KEY_ID_LINK_RATE)) != 0)
+    {
+        if (!bcmolt_epon_link_rate_unpack(&this->link_rate, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_rp_key_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_RP_KEY_ID_EPON_NI)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 2))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_RP_KEY_ID_LINK_RATE)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 2))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_rp_key_bounds_check(const bcmolt_epon_rp_key *this, bcmolt_presence_mask fields_present, bcmolt_epon_rp_key_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_RP_KEY_ID_LINK_RATE)) != 0)
+    {
+        switch (this->link_rate)
+        {
+            case BCMOLT_EPON_LINK_RATE_TEN_TEN:
+                break;
+            case BCMOLT_EPON_LINK_RATE_TEN_ONE:
+                break;
+            case BCMOLT_EPON_LINK_RATE_ONE_ONE:
+                break;
+            default:
+                *failed_prop = BCMOLT_EPON_RP_KEY_ID_LINK_RATE;
+                return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_epon_rp_cfg_data_set_default(bcmolt_epon_rp_cfg_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_RP_CFG_ID_BASE_LLID)) != 0)
+    {
+        this->base_llid = (bcmolt_epon_llid) 15360;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_RP_CFG_ID_MPCP_DISC_EN)) != 0)
+    {
+        this->mpcp_disc_en = BCMOS_TRUE;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_RP_CFG_ID_MPCP_DISC_GNT_LEN_TQ)) != 0)
+    {
+        this->mpcp_disc_gnt_len_tq = (bcmolt_time_quanta) 8160;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_RP_CFG_ID_MPCP_REPORT_TIMEOUT)) != 0)
+    {
+        this->mpcp_report_timeout = 50;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_RP_CFG_ID_MAX_MPCP_REG_PER_DISC_WINDOW)) != 0)
+    {
+        this->max_mpcp_reg_per_disc_window = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_RP_CFG_ID_MAX_LINKS)) != 0)
+    {
+        this->max_links = 256;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_RP_CFG_ID_DEFAULT_UPSTREAM_BANDWIDTH)) != 0)
+    {
+        this->default_upstream_bandwidth.polling_interval_us = BCMOLT_POLLING_INTERVAL_AUTOMATIC;
+        this->default_upstream_bandwidth.grant_threshold_tq = (bcmolt_time_quanta) 0;
+        this->default_upstream_bandwidth.min_schedulershaper.bandwidth_Kbps = (bcmolt_bandwidth_Kbps) 0;
+        this->default_upstream_bandwidth.min_schedulershaper.max_burst_size_tq = (bcmolt_time_quanta) 0;
+        this->default_upstream_bandwidth.min_schedulershaper.priority = 0;
+        this->default_upstream_bandwidth.min_schedulershaper.weight_tq = (bcmolt_time_quanta) 0;
+        this->default_upstream_bandwidth.max_schedulershaper.bandwidth_Kbps = (bcmolt_bandwidth_Kbps) 0;
+        this->default_upstream_bandwidth.max_schedulershaper.max_burst_size_tq = (bcmolt_time_quanta) 0;
+        this->default_upstream_bandwidth.max_schedulershaper.priority = 0;
+        this->default_upstream_bandwidth.max_schedulershaper.weight_tq = (bcmolt_time_quanta) 0;
+        this->default_upstream_bandwidth.tdm_grant_size_tq = (bcmolt_time_quanta) 0;
+        this->default_upstream_bandwidth.tdm_grant_interval_us = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_RP_CFG_ID_RATE_OF_REFRACTION)) != 0)
+    {
+        this->rate_of_refraction = 0;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_rp_cfg_data_pack(const bcmolt_epon_rp_cfg_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_RP_CFG_ID_BASE_LLID)) != 0)
+    {
+        if (!bcmolt_buf_write_u16(buf, (uint16_t) this->base_llid))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_RP_CFG_ID_MPCP_DISC_EN)) != 0)
+    {
+        if (!bcmolt_buf_write_bool(buf, this->mpcp_disc_en))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_RP_CFG_ID_MPCP_DISC_GNT_LEN_TQ)) != 0)
+    {
+        if (!bcmolt_buf_write_u32(buf, (uint32_t) this->mpcp_disc_gnt_len_tq))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_RP_CFG_ID_MPCP_REPORT_TIMEOUT)) != 0)
+    {
+        if (!bcmolt_buf_write_u16(buf, this->mpcp_report_timeout))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_RP_CFG_ID_MAX_MPCP_REG_PER_DISC_WINDOW)) != 0)
+    {
+        if (!bcmolt_buf_write_u16(buf, this->max_mpcp_reg_per_disc_window))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_RP_CFG_ID_MAX_LINKS)) != 0)
+    {
+        if (!bcmolt_buf_write_u16(buf, this->max_links))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_RP_CFG_ID_DEFAULT_UPSTREAM_BANDWIDTH)) != 0)
+    {
+        if (!bcmolt_upstream_bandwidth_distribution_pack(&this->default_upstream_bandwidth, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_RP_CFG_ID_RATE_OF_REFRACTION)) != 0)
+    {
+        if (!bcmolt_buf_write_double(buf, this->rate_of_refraction))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_epon_rp_cfg_data_get_packed_length(const bcmolt_epon_rp_cfg_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_EPON_RP_CFG_ID_BASE_LLID)) != 0)
+    {
+        count += 2;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_RP_CFG_ID_MPCP_DISC_EN)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_RP_CFG_ID_MPCP_DISC_GNT_LEN_TQ)) != 0)
+    {
+        count += 4;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_RP_CFG_ID_MPCP_REPORT_TIMEOUT)) != 0)
+    {
+        count += 2;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_RP_CFG_ID_MAX_MPCP_REG_PER_DISC_WINDOW)) != 0)
+    {
+        count += 2;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_RP_CFG_ID_MAX_LINKS)) != 0)
+    {
+        count += 2;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_RP_CFG_ID_DEFAULT_UPSTREAM_BANDWIDTH)) != 0)
+    {
+        count += 42;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_RP_CFG_ID_RATE_OF_REFRACTION)) != 0)
+    {
+        count += 8;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_rp_cfg_data_unpack(bcmolt_epon_rp_cfg_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_RP_CFG_ID_BASE_LLID)) != 0)
+    {
+        if (!bcmolt_buf_read_u16(buf, (uint16_t *) &this->base_llid))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_RP_CFG_ID_MPCP_DISC_EN)) != 0)
+    {
+        if (!bcmolt_buf_read_bool(buf, &this->mpcp_disc_en))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_RP_CFG_ID_MPCP_DISC_GNT_LEN_TQ)) != 0)
+    {
+        if (!bcmolt_buf_read_u32(buf, (uint32_t *) &this->mpcp_disc_gnt_len_tq))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_RP_CFG_ID_MPCP_REPORT_TIMEOUT)) != 0)
+    {
+        if (!bcmolt_buf_read_u16(buf, &this->mpcp_report_timeout))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_RP_CFG_ID_MAX_MPCP_REG_PER_DISC_WINDOW)) != 0)
+    {
+        if (!bcmolt_buf_read_u16(buf, &this->max_mpcp_reg_per_disc_window))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_RP_CFG_ID_MAX_LINKS)) != 0)
+    {
+        if (!bcmolt_buf_read_u16(buf, &this->max_links))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_RP_CFG_ID_DEFAULT_UPSTREAM_BANDWIDTH)) != 0)
+    {
+        if (!bcmolt_upstream_bandwidth_distribution_unpack(&this->default_upstream_bandwidth, buf, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_RP_CFG_ID_RATE_OF_REFRACTION)) != 0)
+    {
+        if (!bcmolt_buf_read_double(buf, &this->rate_of_refraction))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_rp_cfg_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_RP_CFG_ID_BASE_LLID)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 2))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_RP_CFG_ID_MPCP_DISC_EN)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_RP_CFG_ID_MPCP_DISC_GNT_LEN_TQ)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 4))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_RP_CFG_ID_MPCP_REPORT_TIMEOUT)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 2))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_RP_CFG_ID_MAX_MPCP_REG_PER_DISC_WINDOW)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 2))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_RP_CFG_ID_MAX_LINKS)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 2))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_RP_CFG_ID_DEFAULT_UPSTREAM_BANDWIDTH)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 42))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_RP_CFG_ID_RATE_OF_REFRACTION)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_epon_rp_cfg_data_bounds_check(const bcmolt_epon_rp_cfg_data *this, bcmolt_presence_mask fields_present, bcmolt_epon_rp_cfg_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_EPON_RP_CFG_ID_BASE_LLID)) != 0)
+    {
+        if (this->base_llid > (bcmolt_epon_llid) 32511)
+        {
+            *failed_prop = BCMOLT_EPON_RP_CFG_ID_BASE_LLID;
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_RP_CFG_ID_MPCP_DISC_GNT_LEN_TQ)) != 0)
+    {
+        if (this->mpcp_disc_gnt_len_tq < (bcmolt_time_quanta) 5)
+        {
+            *failed_prop = BCMOLT_EPON_RP_CFG_ID_MPCP_DISC_GNT_LEN_TQ;
+            return BCMOS_FALSE;
+        }
+
+        if (this->mpcp_disc_gnt_len_tq > (bcmolt_time_quanta) 65535UL)
+        {
+            *failed_prop = BCMOLT_EPON_RP_CFG_ID_MPCP_DISC_GNT_LEN_TQ;
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_RP_CFG_ID_MAX_LINKS)) != 0)
+    {
+        if (this->max_links > 2046)
+        {
+            *failed_prop = BCMOLT_EPON_RP_CFG_ID_MAX_LINKS;
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_EPON_RP_CFG_ID_DEFAULT_UPSTREAM_BANDWIDTH)) != 0)
+    {
+        if (!bcmolt_upstream_bandwidth_distribution_bounds_check(&this->default_upstream_bandwidth))
+        {
+            *failed_prop = BCMOLT_EPON_RP_CFG_ID_DEFAULT_UPSTREAM_BANDWIDTH;
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_gpio_key_set_default(bcmolt_gpio_key *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPIO_KEY_ID_RESERVED)) != 0)
+    {
+        this->reserved = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPIO_KEY_ID_GPIO_ID)) != 0)
+    {
+        this->gpio_id = BCMOLT_GPIO_PIN_PIN0;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpio_key_pack(const bcmolt_gpio_key *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPIO_KEY_ID_RESERVED)) != 0)
+    {
+        if (!bcmolt_buf_write_u32(buf, this->reserved))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPIO_KEY_ID_GPIO_ID)) != 0)
+    {
+        if (!bcmolt_gpio_pin_pack(this->gpio_id, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_gpio_key_get_packed_length(const bcmolt_gpio_key *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_GPIO_KEY_ID_RESERVED)) != 0)
+    {
+        count += 4;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPIO_KEY_ID_GPIO_ID)) != 0)
+    {
+        count += 1;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpio_key_unpack(bcmolt_gpio_key *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPIO_KEY_ID_RESERVED)) != 0)
+    {
+        if (!bcmolt_buf_read_u32(buf, &this->reserved))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPIO_KEY_ID_GPIO_ID)) != 0)
+    {
+        if (!bcmolt_gpio_pin_unpack(&this->gpio_id, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpio_key_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPIO_KEY_ID_RESERVED)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 4))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPIO_KEY_ID_GPIO_ID)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpio_key_bounds_check(const bcmolt_gpio_key *this, bcmolt_presence_mask fields_present, bcmolt_gpio_key_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPIO_KEY_ID_GPIO_ID)) != 0)
+    {
+        switch (this->gpio_id)
+        {
+            case BCMOLT_GPIO_PIN_PIN0:
+                break;
+            case BCMOLT_GPIO_PIN_PIN1:
+                break;
+            case BCMOLT_GPIO_PIN_PIN2:
+                break;
+            case BCMOLT_GPIO_PIN_PIN3:
+                break;
+            case BCMOLT_GPIO_PIN_PIN4:
+                break;
+            case BCMOLT_GPIO_PIN_PIN5:
+                break;
+            case BCMOLT_GPIO_PIN_PIN6:
+                break;
+            case BCMOLT_GPIO_PIN_PIN7:
+                break;
+            case BCMOLT_GPIO_PIN_PIN8:
+                break;
+            case BCMOLT_GPIO_PIN_PIN9:
+                break;
+            case BCMOLT_GPIO_PIN_PIN10:
+                break;
+            case BCMOLT_GPIO_PIN_PIN11:
+                break;
+            case BCMOLT_GPIO_PIN_PIN12:
+                break;
+            case BCMOLT_GPIO_PIN_PIN13:
+                break;
+            case BCMOLT_GPIO_PIN_PIN14:
+                break;
+            case BCMOLT_GPIO_PIN_PIN15:
+                break;
+            case BCMOLT_GPIO_PIN_PIN16:
+                break;
+            case BCMOLT_GPIO_PIN_PIN17:
+                break;
+            case BCMOLT_GPIO_PIN_PIN18:
+                break;
+            case BCMOLT_GPIO_PIN_PIN19:
+                break;
+            case BCMOLT_GPIO_PIN_PIN20:
+                break;
+            case BCMOLT_GPIO_PIN_PIN21:
+                break;
+            case BCMOLT_GPIO_PIN_PIN22:
+                break;
+            case BCMOLT_GPIO_PIN_PIN23:
+                break;
+            case BCMOLT_GPIO_PIN_PIN24:
+                break;
+            case BCMOLT_GPIO_PIN_PIN25:
+                break;
+            case BCMOLT_GPIO_PIN_PIN26:
+                break;
+            case BCMOLT_GPIO_PIN_PIN27:
+                break;
+            case BCMOLT_GPIO_PIN_PIN28:
+                break;
+            case BCMOLT_GPIO_PIN_PIN29:
+                break;
+            case BCMOLT_GPIO_PIN_PIN30:
+                break;
+            case BCMOLT_GPIO_PIN_PIN31:
+                break;
+            case BCMOLT_GPIO_PIN_PIN32:
+                break;
+            case BCMOLT_GPIO_PIN_PIN33:
+                break;
+            case BCMOLT_GPIO_PIN_PIN34:
+                break;
+            case BCMOLT_GPIO_PIN_PIN35:
+                break;
+            case BCMOLT_GPIO_PIN_PIN36:
+                break;
+            case BCMOLT_GPIO_PIN_PIN37:
+                break;
+            case BCMOLT_GPIO_PIN_PIN38:
+                break;
+            case BCMOLT_GPIO_PIN_PIN39:
+                break;
+            case BCMOLT_GPIO_PIN_PIN40:
+                break;
+            case BCMOLT_GPIO_PIN_PIN41:
+                break;
+            case BCMOLT_GPIO_PIN_PIN42:
+                break;
+            case BCMOLT_GPIO_PIN_PIN43:
+                break;
+            case BCMOLT_GPIO_PIN_PIN44:
+                break;
+            case BCMOLT_GPIO_PIN_PIN45:
+                break;
+            case BCMOLT_GPIO_PIN_PIN46:
+                break;
+            case BCMOLT_GPIO_PIN_PIN47:
+                break;
+            case BCMOLT_GPIO_PIN_PIN48:
+                break;
+            case BCMOLT_GPIO_PIN_PIN49:
+                break;
+            case BCMOLT_GPIO_PIN_PIN50:
+                break;
+            case BCMOLT_GPIO_PIN_PIN51:
+                break;
+            case BCMOLT_GPIO_PIN_PIN52:
+                break;
+            case BCMOLT_GPIO_PIN_PIN53:
+                break;
+            case BCMOLT_GPIO_PIN_PIN54:
+                break;
+            case BCMOLT_GPIO_PIN_PIN55:
+                break;
+            case BCMOLT_GPIO_PIN_PIN56:
+                break;
+            case BCMOLT_GPIO_PIN_PIN57:
+                break;
+            case BCMOLT_GPIO_PIN_PIN58:
+                break;
+            case BCMOLT_GPIO_PIN_PIN59:
+                break;
+            case BCMOLT_GPIO_PIN_PIN60:
+                break;
+            case BCMOLT_GPIO_PIN_PIN61:
+                break;
+            case BCMOLT_GPIO_PIN_PIN62:
+                break;
+            case BCMOLT_GPIO_PIN_PIN63:
+                break;
+            case BCMOLT_GPIO_PIN_PIN64:
+                break;
+            case BCMOLT_GPIO_PIN_PIN65:
+                break;
+            case BCMOLT_GPIO_PIN_PIN66:
+                break;
+            case BCMOLT_GPIO_PIN_PIN67:
+                break;
+            case BCMOLT_GPIO_PIN_PIN68:
+                break;
+            case BCMOLT_GPIO_PIN_PIN69:
+                break;
+            case BCMOLT_GPIO_PIN_PIN70:
+                break;
+            case BCMOLT_GPIO_PIN_PIN71:
+                break;
+            case BCMOLT_GPIO_PIN_PIN72:
+                break;
+            case BCMOLT_GPIO_PIN_PIN73:
+                break;
+            case BCMOLT_GPIO_PIN_PIN74:
+                break;
+            case BCMOLT_GPIO_PIN_PIN75:
+                break;
+            case BCMOLT_GPIO_PIN_PIN76:
+                break;
+            case BCMOLT_GPIO_PIN_PIN77:
+                break;
+            case BCMOLT_GPIO_PIN_PIN78:
+                break;
+            case BCMOLT_GPIO_PIN_PIN79:
+                break;
+            case BCMOLT_GPIO_PIN_PIN80:
+                break;
+            case BCMOLT_GPIO_PIN_PIN81:
+                break;
+            case BCMOLT_GPIO_PIN_PIN82:
+                break;
+            case BCMOLT_GPIO_PIN_PIN83:
+                break;
+            case BCMOLT_GPIO_PIN_PIN84:
+                break;
+            case BCMOLT_GPIO_PIN_PIN85:
+                break;
+            case BCMOLT_GPIO_PIN_PIN86:
+                break;
+            case BCMOLT_GPIO_PIN_PIN87:
+                break;
+            case BCMOLT_GPIO_PIN_PIN88:
+                break;
+            case BCMOLT_GPIO_PIN_PIN89:
+                break;
+            case BCMOLT_GPIO_PIN_PIN90:
+                break;
+            case BCMOLT_GPIO_PIN_PIN91:
+                break;
+            case BCMOLT_GPIO_PIN_PIN92:
+                break;
+            case BCMOLT_GPIO_PIN_PIN93:
+                break;
+            case BCMOLT_GPIO_PIN_PIN94:
+                break;
+            case BCMOLT_GPIO_PIN_PIN95:
+                break;
+            case BCMOLT_GPIO_PIN_PIN96:
+                break;
+            case BCMOLT_GPIO_PIN_PIN97:
+                break;
+            case BCMOLT_GPIO_PIN_PIN98:
+                break;
+            case BCMOLT_GPIO_PIN_PIN99:
+                break;
+            case BCMOLT_GPIO_PIN_PIN100:
+                break;
+            case BCMOLT_GPIO_PIN_PIN101:
+                break;
+            case BCMOLT_GPIO_PIN_PIN102:
+                break;
+            case BCMOLT_GPIO_PIN_PIN103:
+                break;
+            case BCMOLT_GPIO_PIN_PIN104:
+                break;
+            case BCMOLT_GPIO_PIN_PIN105:
+                break;
+            case BCMOLT_GPIO_PIN_PIN106:
+                break;
+            case BCMOLT_GPIO_PIN_UNCONFIGURED:
+                break;
+            default:
+                *failed_prop = BCMOLT_GPIO_KEY_ID_GPIO_ID;
+                return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_gpio_cfg_data_set_default(bcmolt_gpio_cfg_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPIO_CFG_ID_DIRECTION)) != 0)
+    {
+        this->direction = BCMOLT_GPIO_PIN_DIR_INPUT;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPIO_CFG_ID_VALUE)) != 0)
+    {
+        this->value = BCMOLT_GPIO_VALUE_CLEAR;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpio_cfg_data_pack(const bcmolt_gpio_cfg_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPIO_CFG_ID_DIRECTION)) != 0)
+    {
+        if (!bcmolt_gpio_pin_dir_pack(this->direction, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPIO_CFG_ID_VALUE)) != 0)
+    {
+        if (!bcmolt_gpio_value_pack(this->value, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_gpio_cfg_data_get_packed_length(const bcmolt_gpio_cfg_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_GPIO_CFG_ID_DIRECTION)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPIO_CFG_ID_VALUE)) != 0)
+    {
+        count += 1;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpio_cfg_data_unpack(bcmolt_gpio_cfg_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPIO_CFG_ID_DIRECTION)) != 0)
+    {
+        if (!bcmolt_gpio_pin_dir_unpack(&this->direction, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPIO_CFG_ID_VALUE)) != 0)
+    {
+        if (!bcmolt_gpio_value_unpack(&this->value, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpio_cfg_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPIO_CFG_ID_DIRECTION)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPIO_CFG_ID_VALUE)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpio_cfg_data_bounds_check(const bcmolt_gpio_cfg_data *this, bcmolt_presence_mask fields_present, bcmolt_gpio_cfg_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPIO_CFG_ID_DIRECTION)) != 0)
+    {
+        switch (this->direction)
+        {
+            case BCMOLT_GPIO_PIN_DIR_INPUT:
+                break;
+            case BCMOLT_GPIO_PIN_DIR_OUTPUT:
+                break;
+            default:
+                *failed_prop = BCMOLT_GPIO_CFG_ID_DIRECTION;
+                return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPIO_CFG_ID_VALUE)) != 0)
+    {
+        switch (this->value)
+        {
+            case BCMOLT_GPIO_VALUE_CLEAR:
+                break;
+            case BCMOLT_GPIO_VALUE_SET:
+                break;
+            default:
+                *failed_prop = BCMOLT_GPIO_CFG_ID_VALUE;
+                return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_gpon_alloc_key_set_default(bcmolt_gpon_alloc_key *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_ALLOC_KEY_ID_PON_NI)) != 0)
+    {
+        this->pon_ni = (bcmolt_gpon_ni) 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ALLOC_KEY_ID_ALLOC_ID)) != 0)
+    {
+        this->alloc_id = (bcmolt_gpon_alloc_id) 0;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_alloc_key_pack(const bcmolt_gpon_alloc_key *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_ALLOC_KEY_ID_PON_NI)) != 0)
+    {
+        if (!bcmolt_buf_write_u8(buf, (uint8_t) this->pon_ni))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ALLOC_KEY_ID_ALLOC_ID)) != 0)
+    {
+        if (!bcmolt_buf_write_u16(buf, (uint16_t) this->alloc_id))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_gpon_alloc_key_get_packed_length(const bcmolt_gpon_alloc_key *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_GPON_ALLOC_KEY_ID_PON_NI)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ALLOC_KEY_ID_ALLOC_ID)) != 0)
+    {
+        count += 2;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_alloc_key_unpack(bcmolt_gpon_alloc_key *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_ALLOC_KEY_ID_PON_NI)) != 0)
+    {
+        if (!bcmolt_buf_read_u8(buf, (uint8_t *) &this->pon_ni))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ALLOC_KEY_ID_ALLOC_ID)) != 0)
+    {
+        if (!bcmolt_buf_read_u16(buf, (uint16_t *) &this->alloc_id))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_alloc_key_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_ALLOC_KEY_ID_PON_NI)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ALLOC_KEY_ID_ALLOC_ID)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 2))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_alloc_key_bounds_check(const bcmolt_gpon_alloc_key *this, bcmolt_presence_mask fields_present, bcmolt_gpon_alloc_key_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_ALLOC_KEY_ID_PON_NI)) != 0)
+    {
+        if (this->pon_ni > (bcmolt_gpon_ni) 15)
+        {
+            *failed_prop = BCMOLT_GPON_ALLOC_KEY_ID_PON_NI;
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ALLOC_KEY_ID_ALLOC_ID)) != 0)
+    {
+        if (this->alloc_id > (bcmolt_gpon_alloc_id) 4095)
+        {
+            *failed_prop = BCMOLT_GPON_ALLOC_KEY_ID_ALLOC_ID;
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_gpon_alloc_cfg_data_set_default(bcmolt_gpon_alloc_cfg_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_ALLOC_CFG_ID_STATE)) != 0)
+    {
+        this->state = BCMOLT_ALLOC_STATE_NOT_CONFIGURED;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ALLOC_CFG_ID_SLA)) != 0)
+    {
+        this->sla.cbr_rt_bw = 0;
+        this->sla.cbr_nrt_bw = 0;
+        this->sla.guaranteed_bw = 0;
+        this->sla.maximum_bw = 0;
+        this->sla.additional_bw_eligibility = BCMOLT_ADDITIONAL_BW_ELIGIBILITY_NONE;
+        this->sla.cbr_rt_compensation = BCMOS_FALSE;
+        this->sla.cbr_rt_ap_index = 0;
+        this->sla.cbr_nrt_ap_index = 0;
+        this->sla.alloc_type = BCMOLT_ALLOC_TYPE_NONE;
+        this->sla.weight = 0;
+        this->sla.priority = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ALLOC_CFG_ID_ONU_ID)) != 0)
+    {
+        this->onu_id = (bcmolt_gpon_onu_id) 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ALLOC_CFG_ID_COLLECT_STATS)) != 0)
+    {
+        this->collect_stats = BCMOS_FALSE;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_alloc_cfg_data_pack(const bcmolt_gpon_alloc_cfg_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_ALLOC_CFG_ID_STATE)) != 0)
+    {
+        if (!bcmolt_alloc_state_pack(this->state, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ALLOC_CFG_ID_SLA)) != 0)
+    {
+        if (!bcmolt_pon_alloc_sla_pack(&this->sla, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ALLOC_CFG_ID_ONU_ID)) != 0)
+    {
+        if (!bcmolt_buf_write_u16(buf, (uint16_t) this->onu_id))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ALLOC_CFG_ID_COLLECT_STATS)) != 0)
+    {
+        if (!bcmolt_buf_write_bool(buf, this->collect_stats))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_gpon_alloc_cfg_data_get_packed_length(const bcmolt_gpon_alloc_cfg_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_GPON_ALLOC_CFG_ID_STATE)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ALLOC_CFG_ID_SLA)) != 0)
+    {
+        count += 23;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ALLOC_CFG_ID_ONU_ID)) != 0)
+    {
+        count += 2;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ALLOC_CFG_ID_COLLECT_STATS)) != 0)
+    {
+        count += 1;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_alloc_cfg_data_unpack(bcmolt_gpon_alloc_cfg_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_ALLOC_CFG_ID_STATE)) != 0)
+    {
+        if (!bcmolt_alloc_state_unpack(&this->state, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ALLOC_CFG_ID_SLA)) != 0)
+    {
+        if (!bcmolt_pon_alloc_sla_unpack(&this->sla, buf, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ALLOC_CFG_ID_ONU_ID)) != 0)
+    {
+        if (!bcmolt_buf_read_u16(buf, (uint16_t *) &this->onu_id))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ALLOC_CFG_ID_COLLECT_STATS)) != 0)
+    {
+        if (!bcmolt_buf_read_bool(buf, &this->collect_stats))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_alloc_cfg_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_ALLOC_CFG_ID_STATE)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ALLOC_CFG_ID_SLA)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 23))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ALLOC_CFG_ID_ONU_ID)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 2))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ALLOC_CFG_ID_COLLECT_STATS)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_alloc_cfg_data_bounds_check(const bcmolt_gpon_alloc_cfg_data *this, bcmolt_presence_mask fields_present, bcmolt_gpon_alloc_cfg_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_ALLOC_CFG_ID_STATE)) != 0)
+    {
+        switch (this->state)
+        {
+            case BCMOLT_ALLOC_STATE_NOT_CONFIGURED:
+                break;
+            case BCMOLT_ALLOC_STATE_INACTIVE:
+                break;
+            case BCMOLT_ALLOC_STATE_PROCESSING:
+                break;
+            case BCMOLT_ALLOC_STATE_ACTIVE:
+                break;
+            default:
+                *failed_prop = BCMOLT_GPON_ALLOC_CFG_ID_STATE;
+                return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ALLOC_CFG_ID_SLA)) != 0)
+    {
+        if (!bcmolt_pon_alloc_sla_bounds_check(&this->sla))
+        {
+            *failed_prop = BCMOLT_GPON_ALLOC_CFG_ID_SLA;
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ALLOC_CFG_ID_ONU_ID)) != 0)
+    {
+        if (this->onu_id > (bcmolt_gpon_onu_id) 127)
+        {
+            *failed_prop = BCMOLT_GPON_ALLOC_CFG_ID_ONU_ID;
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_gpon_alloc_stat_data_set_default(bcmolt_gpon_alloc_stat_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_ALLOC_STAT_ID_RX_BYTES)) != 0)
+    {
+        this->rx_bytes = 0;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_alloc_stat_data_pack(const bcmolt_gpon_alloc_stat_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_ALLOC_STAT_ID_RX_BYTES)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->rx_bytes))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_gpon_alloc_stat_data_get_packed_length(const bcmolt_gpon_alloc_stat_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_GPON_ALLOC_STAT_ID_RX_BYTES)) != 0)
+    {
+        count += 8;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_alloc_stat_data_unpack(bcmolt_gpon_alloc_stat_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_ALLOC_STAT_ID_RX_BYTES)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->rx_bytes))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_alloc_stat_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_ALLOC_STAT_ID_RX_BYTES)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_alloc_stat_data_bounds_check(const bcmolt_gpon_alloc_stat_data *this, bcmolt_presence_mask fields_present, bcmolt_gpon_alloc_stat_id *failed_prop)
+{
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_gpon_alloc_stat_cfg_data_set_default(bcmolt_gpon_alloc_stat_cfg_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_ALLOC_STAT_CFG_ID_CFG)) != 0)
+    {
+        this->cfg.trigger.type = BCMOLT_STAT_CONDITION_TYPE_NONE;
+        this->cfg.soak.active_soak_time = 0;
+        this->cfg.soak.clear_soak_time = 0;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_alloc_stat_cfg_data_pack(const bcmolt_gpon_alloc_stat_cfg_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_ALLOC_STAT_CFG_ID_CFG)) != 0)
+    {
+        if (!bcmolt_stat_alarm_config_pack(&this->cfg, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_gpon_alloc_stat_cfg_data_get_packed_length(const bcmolt_gpon_alloc_stat_cfg_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_GPON_ALLOC_STAT_CFG_ID_CFG)) != 0)
+    {
+        count += bcmolt_stat_alarm_config_get_packed_length(&this->cfg);
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_alloc_stat_cfg_data_unpack(bcmolt_gpon_alloc_stat_cfg_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_ALLOC_STAT_CFG_ID_CFG)) != 0)
+    {
+        if (!bcmolt_stat_alarm_config_unpack(&this->cfg, buf, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_alloc_stat_cfg_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_ALLOC_STAT_CFG_ID_CFG)) != 0)
+    {
+        if (!bcmolt_stat_alarm_config_scan(packed, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_alloc_stat_cfg_data_bounds_check(const bcmolt_gpon_alloc_stat_cfg_data *this, bcmolt_presence_mask fields_present, bcmolt_gpon_alloc_stat_cfg_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_ALLOC_STAT_CFG_ID_CFG)) != 0)
+    {
+        if (!bcmolt_stat_alarm_config_bounds_check(&this->cfg))
+        {
+            *failed_prop = BCMOLT_GPON_ALLOC_STAT_CFG_ID_CFG;
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_gpon_alloc_configuration_completed_data_set_default(bcmolt_gpon_alloc_configuration_completed_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_ALLOC_CONFIGURATION_COMPLETED_ID_STATUS)) != 0)
+    {
+        this->status = BCMOLT_RESULT_SUCCESS;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ALLOC_CONFIGURATION_COMPLETED_ID_NEW_STATE)) != 0)
+    {
+        this->new_state = BCMOLT_ALLOC_STATE_NOT_CONFIGURED;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_alloc_configuration_completed_data_pack(const bcmolt_gpon_alloc_configuration_completed_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_ALLOC_CONFIGURATION_COMPLETED_ID_STATUS)) != 0)
+    {
+        if (!bcmolt_result_pack(this->status, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ALLOC_CONFIGURATION_COMPLETED_ID_NEW_STATE)) != 0)
+    {
+        if (!bcmolt_alloc_state_pack(this->new_state, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_gpon_alloc_configuration_completed_data_get_packed_length(const bcmolt_gpon_alloc_configuration_completed_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_GPON_ALLOC_CONFIGURATION_COMPLETED_ID_STATUS)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ALLOC_CONFIGURATION_COMPLETED_ID_NEW_STATE)) != 0)
+    {
+        count += 1;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_alloc_configuration_completed_data_unpack(bcmolt_gpon_alloc_configuration_completed_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_ALLOC_CONFIGURATION_COMPLETED_ID_STATUS)) != 0)
+    {
+        if (!bcmolt_result_unpack(&this->status, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ALLOC_CONFIGURATION_COMPLETED_ID_NEW_STATE)) != 0)
+    {
+        if (!bcmolt_alloc_state_unpack(&this->new_state, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_alloc_configuration_completed_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_ALLOC_CONFIGURATION_COMPLETED_ID_STATUS)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ALLOC_CONFIGURATION_COMPLETED_ID_NEW_STATE)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_alloc_configuration_completed_data_bounds_check(const bcmolt_gpon_alloc_configuration_completed_data *this, bcmolt_presence_mask fields_present, bcmolt_gpon_alloc_configuration_completed_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_ALLOC_CONFIGURATION_COMPLETED_ID_STATUS)) != 0)
+    {
+        switch (this->status)
+        {
+            case BCMOLT_RESULT_SUCCESS:
+                break;
+            case BCMOLT_RESULT_FAIL:
+                break;
+            default:
+                *failed_prop = BCMOLT_GPON_ALLOC_CONFIGURATION_COMPLETED_ID_STATUS;
+                return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ALLOC_CONFIGURATION_COMPLETED_ID_NEW_STATE)) != 0)
+    {
+        switch (this->new_state)
+        {
+            case BCMOLT_ALLOC_STATE_NOT_CONFIGURED:
+                break;
+            case BCMOLT_ALLOC_STATE_INACTIVE:
+                break;
+            case BCMOLT_ALLOC_STATE_PROCESSING:
+                break;
+            case BCMOLT_ALLOC_STATE_ACTIVE:
+                break;
+            default:
+                *failed_prop = BCMOLT_GPON_ALLOC_CONFIGURATION_COMPLETED_ID_NEW_STATE;
+                return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_gpon_alloc_get_alloc_stats_completed_data_set_default(bcmolt_gpon_alloc_get_alloc_stats_completed_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_ALLOC_GET_ALLOC_STATS_COMPLETED_ID_STATUS)) != 0)
+    {
+        this->status = BCMOLT_RESULT_SUCCESS;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ALLOC_GET_ALLOC_STATS_COMPLETED_ID_AVERAGE_NSR_USED)) != 0)
+    {
+        this->average_nsr_used = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ALLOC_GET_ALLOC_STATS_COMPLETED_ID_AVERAGE_NSR_ALLOCATED)) != 0)
+    {
+        this->average_nsr_allocated = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ALLOC_GET_ALLOC_STATS_COMPLETED_ID_AVERAGE_SR_REPORT)) != 0)
+    {
+        this->average_sr_report = 0;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_alloc_get_alloc_stats_completed_data_pack(const bcmolt_gpon_alloc_get_alloc_stats_completed_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_ALLOC_GET_ALLOC_STATS_COMPLETED_ID_STATUS)) != 0)
+    {
+        if (!bcmolt_result_pack(this->status, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ALLOC_GET_ALLOC_STATS_COMPLETED_ID_AVERAGE_NSR_USED)) != 0)
+    {
+        if (!bcmolt_buf_write_u32(buf, this->average_nsr_used))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ALLOC_GET_ALLOC_STATS_COMPLETED_ID_AVERAGE_NSR_ALLOCATED)) != 0)
+    {
+        if (!bcmolt_buf_write_u32(buf, this->average_nsr_allocated))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ALLOC_GET_ALLOC_STATS_COMPLETED_ID_AVERAGE_SR_REPORT)) != 0)
+    {
+        if (!bcmolt_buf_write_u32(buf, this->average_sr_report))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_gpon_alloc_get_alloc_stats_completed_data_get_packed_length(const bcmolt_gpon_alloc_get_alloc_stats_completed_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_GPON_ALLOC_GET_ALLOC_STATS_COMPLETED_ID_STATUS)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ALLOC_GET_ALLOC_STATS_COMPLETED_ID_AVERAGE_NSR_USED)) != 0)
+    {
+        count += 4;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ALLOC_GET_ALLOC_STATS_COMPLETED_ID_AVERAGE_NSR_ALLOCATED)) != 0)
+    {
+        count += 4;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ALLOC_GET_ALLOC_STATS_COMPLETED_ID_AVERAGE_SR_REPORT)) != 0)
+    {
+        count += 4;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_alloc_get_alloc_stats_completed_data_unpack(bcmolt_gpon_alloc_get_alloc_stats_completed_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_ALLOC_GET_ALLOC_STATS_COMPLETED_ID_STATUS)) != 0)
+    {
+        if (!bcmolt_result_unpack(&this->status, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ALLOC_GET_ALLOC_STATS_COMPLETED_ID_AVERAGE_NSR_USED)) != 0)
+    {
+        if (!bcmolt_buf_read_u32(buf, &this->average_nsr_used))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ALLOC_GET_ALLOC_STATS_COMPLETED_ID_AVERAGE_NSR_ALLOCATED)) != 0)
+    {
+        if (!bcmolt_buf_read_u32(buf, &this->average_nsr_allocated))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ALLOC_GET_ALLOC_STATS_COMPLETED_ID_AVERAGE_SR_REPORT)) != 0)
+    {
+        if (!bcmolt_buf_read_u32(buf, &this->average_sr_report))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_alloc_get_alloc_stats_completed_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_ALLOC_GET_ALLOC_STATS_COMPLETED_ID_STATUS)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ALLOC_GET_ALLOC_STATS_COMPLETED_ID_AVERAGE_NSR_USED)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 4))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ALLOC_GET_ALLOC_STATS_COMPLETED_ID_AVERAGE_NSR_ALLOCATED)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 4))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ALLOC_GET_ALLOC_STATS_COMPLETED_ID_AVERAGE_SR_REPORT)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 4))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_alloc_get_alloc_stats_completed_data_bounds_check(const bcmolt_gpon_alloc_get_alloc_stats_completed_data *this, bcmolt_presence_mask fields_present, bcmolt_gpon_alloc_get_alloc_stats_completed_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_ALLOC_GET_ALLOC_STATS_COMPLETED_ID_STATUS)) != 0)
+    {
+        switch (this->status)
+        {
+            case BCMOLT_RESULT_SUCCESS:
+                break;
+            case BCMOLT_RESULT_FAIL:
+                break;
+            default:
+                *failed_prop = BCMOLT_GPON_ALLOC_GET_ALLOC_STATS_COMPLETED_ID_STATUS;
+                return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_gpon_alloc_stat_alarm_cleared_data_set_default(bcmolt_gpon_alloc_stat_alarm_cleared_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_ALLOC_STAT_ALARM_CLEARED_ID_STAT)) != 0)
+    {
+        this->stat = BCMOLT_GPON_ALLOC_STAT_ID_RX_BYTES;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_alloc_stat_alarm_cleared_data_pack(const bcmolt_gpon_alloc_stat_alarm_cleared_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_ALLOC_STAT_ALARM_CLEARED_ID_STAT)) != 0)
+    {
+        if (!bcmolt_gpon_alloc_stat_id_pack(this->stat, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_gpon_alloc_stat_alarm_cleared_data_get_packed_length(const bcmolt_gpon_alloc_stat_alarm_cleared_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_GPON_ALLOC_STAT_ALARM_CLEARED_ID_STAT)) != 0)
+    {
+        count += 2;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_alloc_stat_alarm_cleared_data_unpack(bcmolt_gpon_alloc_stat_alarm_cleared_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_ALLOC_STAT_ALARM_CLEARED_ID_STAT)) != 0)
+    {
+        if (!bcmolt_gpon_alloc_stat_id_unpack(&this->stat, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_alloc_stat_alarm_cleared_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_ALLOC_STAT_ALARM_CLEARED_ID_STAT)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 2))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_alloc_stat_alarm_cleared_data_bounds_check(const bcmolt_gpon_alloc_stat_alarm_cleared_data *this, bcmolt_presence_mask fields_present, bcmolt_gpon_alloc_stat_alarm_cleared_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_ALLOC_STAT_ALARM_CLEARED_ID_STAT)) != 0)
+    {
+        switch (this->stat)
+        {
+            case BCMOLT_GPON_ALLOC_STAT_ID_RX_BYTES:
+                break;
+            default:
+                *failed_prop = BCMOLT_GPON_ALLOC_STAT_ALARM_CLEARED_ID_STAT;
+                return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_gpon_alloc_stat_alarm_raised_data_set_default(bcmolt_gpon_alloc_stat_alarm_raised_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_ALLOC_STAT_ALARM_RAISED_ID_STAT)) != 0)
+    {
+        this->stat = BCMOLT_GPON_ALLOC_STAT_ID_RX_BYTES;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_alloc_stat_alarm_raised_data_pack(const bcmolt_gpon_alloc_stat_alarm_raised_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_ALLOC_STAT_ALARM_RAISED_ID_STAT)) != 0)
+    {
+        if (!bcmolt_gpon_alloc_stat_id_pack(this->stat, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_gpon_alloc_stat_alarm_raised_data_get_packed_length(const bcmolt_gpon_alloc_stat_alarm_raised_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_GPON_ALLOC_STAT_ALARM_RAISED_ID_STAT)) != 0)
+    {
+        count += 2;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_alloc_stat_alarm_raised_data_unpack(bcmolt_gpon_alloc_stat_alarm_raised_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_ALLOC_STAT_ALARM_RAISED_ID_STAT)) != 0)
+    {
+        if (!bcmolt_gpon_alloc_stat_id_unpack(&this->stat, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_alloc_stat_alarm_raised_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_ALLOC_STAT_ALARM_RAISED_ID_STAT)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 2))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_alloc_stat_alarm_raised_data_bounds_check(const bcmolt_gpon_alloc_stat_alarm_raised_data *this, bcmolt_presence_mask fields_present, bcmolt_gpon_alloc_stat_alarm_raised_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_ALLOC_STAT_ALARM_RAISED_ID_STAT)) != 0)
+    {
+        switch (this->stat)
+        {
+            case BCMOLT_GPON_ALLOC_STAT_ID_RX_BYTES:
+                break;
+            default:
+                *failed_prop = BCMOLT_GPON_ALLOC_STAT_ALARM_RAISED_ID_STAT;
+                return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_gpon_alloc_auto_cfg_data_set_default(bcmolt_gpon_alloc_auto_cfg_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_ALLOC_AUTO_CFG_ID_CONFIGURATION_COMPLETED)) != 0)
+    {
+        this->configuration_completed = BCMOS_FALSE;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ALLOC_AUTO_CFG_ID_GET_ALLOC_STATS_COMPLETED)) != 0)
+    {
+        this->get_alloc_stats_completed = BCMOS_FALSE;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ALLOC_AUTO_CFG_ID_STAT_ALARM_CLEARED)) != 0)
+    {
+        this->stat_alarm_cleared = BCMOS_FALSE;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ALLOC_AUTO_CFG_ID_STAT_ALARM_RAISED)) != 0)
+    {
+        this->stat_alarm_raised = BCMOS_FALSE;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_alloc_auto_cfg_data_pack(const bcmolt_gpon_alloc_auto_cfg_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_ALLOC_AUTO_CFG_ID_CONFIGURATION_COMPLETED)) != 0)
+    {
+        if (!bcmolt_buf_write_bool(buf, this->configuration_completed))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ALLOC_AUTO_CFG_ID_GET_ALLOC_STATS_COMPLETED)) != 0)
+    {
+        if (!bcmolt_buf_write_bool(buf, this->get_alloc_stats_completed))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ALLOC_AUTO_CFG_ID_STAT_ALARM_CLEARED)) != 0)
+    {
+        if (!bcmolt_buf_write_bool(buf, this->stat_alarm_cleared))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ALLOC_AUTO_CFG_ID_STAT_ALARM_RAISED)) != 0)
+    {
+        if (!bcmolt_buf_write_bool(buf, this->stat_alarm_raised))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_gpon_alloc_auto_cfg_data_get_packed_length(const bcmolt_gpon_alloc_auto_cfg_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_GPON_ALLOC_AUTO_CFG_ID_CONFIGURATION_COMPLETED)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ALLOC_AUTO_CFG_ID_GET_ALLOC_STATS_COMPLETED)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ALLOC_AUTO_CFG_ID_STAT_ALARM_CLEARED)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ALLOC_AUTO_CFG_ID_STAT_ALARM_RAISED)) != 0)
+    {
+        count += 1;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_alloc_auto_cfg_data_unpack(bcmolt_gpon_alloc_auto_cfg_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_ALLOC_AUTO_CFG_ID_CONFIGURATION_COMPLETED)) != 0)
+    {
+        if (!bcmolt_buf_read_bool(buf, &this->configuration_completed))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ALLOC_AUTO_CFG_ID_GET_ALLOC_STATS_COMPLETED)) != 0)
+    {
+        if (!bcmolt_buf_read_bool(buf, &this->get_alloc_stats_completed))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ALLOC_AUTO_CFG_ID_STAT_ALARM_CLEARED)) != 0)
+    {
+        if (!bcmolt_buf_read_bool(buf, &this->stat_alarm_cleared))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ALLOC_AUTO_CFG_ID_STAT_ALARM_RAISED)) != 0)
+    {
+        if (!bcmolt_buf_read_bool(buf, &this->stat_alarm_raised))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_alloc_auto_cfg_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_ALLOC_AUTO_CFG_ID_CONFIGURATION_COMPLETED)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ALLOC_AUTO_CFG_ID_GET_ALLOC_STATS_COMPLETED)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ALLOC_AUTO_CFG_ID_STAT_ALARM_CLEARED)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ALLOC_AUTO_CFG_ID_STAT_ALARM_RAISED)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_alloc_auto_cfg_data_bounds_check(const bcmolt_gpon_alloc_auto_cfg_data *this, bcmolt_presence_mask fields_present, bcmolt_gpon_alloc_auto_cfg_id *failed_prop)
+{
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_gpon_alloc_get_stats_data_set_default(bcmolt_gpon_alloc_get_stats_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_ALLOC_GET_STATS_ID_NUM_OF_CYCLES)) != 0)
+    {
+        this->num_of_cycles = 1;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_alloc_get_stats_data_pack(const bcmolt_gpon_alloc_get_stats_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_ALLOC_GET_STATS_ID_NUM_OF_CYCLES)) != 0)
+    {
+        if (!bcmolt_buf_write_u32(buf, this->num_of_cycles))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_gpon_alloc_get_stats_data_get_packed_length(const bcmolt_gpon_alloc_get_stats_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_GPON_ALLOC_GET_STATS_ID_NUM_OF_CYCLES)) != 0)
+    {
+        count += 4;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_alloc_get_stats_data_unpack(bcmolt_gpon_alloc_get_stats_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_ALLOC_GET_STATS_ID_NUM_OF_CYCLES)) != 0)
+    {
+        if (!bcmolt_buf_read_u32(buf, &this->num_of_cycles))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_alloc_get_stats_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_ALLOC_GET_STATS_ID_NUM_OF_CYCLES)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 4))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_alloc_get_stats_data_bounds_check(const bcmolt_gpon_alloc_get_stats_data *this, bcmolt_presence_mask fields_present, bcmolt_gpon_alloc_get_stats_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_ALLOC_GET_STATS_ID_NUM_OF_CYCLES)) != 0)
+    {
+        if (this->num_of_cycles < 1)
+        {
+            *failed_prop = BCMOLT_GPON_ALLOC_GET_STATS_ID_NUM_OF_CYCLES;
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_gpon_alloc_set_state_data_set_default(bcmolt_gpon_alloc_set_state_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_ALLOC_SET_STATE_ID_STATE)) != 0)
+    {
+        this->state = BCMOLT_ALLOC_OPERATION_ACTIVATE;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_alloc_set_state_data_pack(const bcmolt_gpon_alloc_set_state_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_ALLOC_SET_STATE_ID_STATE)) != 0)
+    {
+        if (!bcmolt_alloc_operation_pack(this->state, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_gpon_alloc_set_state_data_get_packed_length(const bcmolt_gpon_alloc_set_state_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_GPON_ALLOC_SET_STATE_ID_STATE)) != 0)
+    {
+        count += 1;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_alloc_set_state_data_unpack(bcmolt_gpon_alloc_set_state_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_ALLOC_SET_STATE_ID_STATE)) != 0)
+    {
+        if (!bcmolt_alloc_operation_unpack(&this->state, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_alloc_set_state_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_ALLOC_SET_STATE_ID_STATE)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_alloc_set_state_data_bounds_check(const bcmolt_gpon_alloc_set_state_data *this, bcmolt_presence_mask fields_present, bcmolt_gpon_alloc_set_state_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_ALLOC_SET_STATE_ID_STATE)) != 0)
+    {
+        switch (this->state)
+        {
+            case BCMOLT_ALLOC_OPERATION_ACTIVATE:
+                break;
+            case BCMOLT_ALLOC_OPERATION_DEACTIVATE:
+                break;
+            default:
+                *failed_prop = BCMOLT_GPON_ALLOC_SET_STATE_ID_STATE;
+                return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_gpon_gem_port_key_set_default(bcmolt_gpon_gem_port_key *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_GEM_PORT_KEY_ID_PON_NI)) != 0)
+    {
+        this->pon_ni = (bcmolt_gpon_ni) 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_GEM_PORT_KEY_ID_GEM_PORT_ID)) != 0)
+    {
+        this->gem_port_id = (bcmolt_gpon_gem_id) 0;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_gem_port_key_pack(const bcmolt_gpon_gem_port_key *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_GEM_PORT_KEY_ID_PON_NI)) != 0)
+    {
+        if (!bcmolt_buf_write_u8(buf, (uint8_t) this->pon_ni))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_GEM_PORT_KEY_ID_GEM_PORT_ID)) != 0)
+    {
+        if (!bcmolt_buf_write_u16(buf, (uint16_t) this->gem_port_id))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_gpon_gem_port_key_get_packed_length(const bcmolt_gpon_gem_port_key *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_GPON_GEM_PORT_KEY_ID_PON_NI)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_GEM_PORT_KEY_ID_GEM_PORT_ID)) != 0)
+    {
+        count += 2;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_gem_port_key_unpack(bcmolt_gpon_gem_port_key *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_GEM_PORT_KEY_ID_PON_NI)) != 0)
+    {
+        if (!bcmolt_buf_read_u8(buf, (uint8_t *) &this->pon_ni))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_GEM_PORT_KEY_ID_GEM_PORT_ID)) != 0)
+    {
+        if (!bcmolt_buf_read_u16(buf, (uint16_t *) &this->gem_port_id))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_gem_port_key_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_GEM_PORT_KEY_ID_PON_NI)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_GEM_PORT_KEY_ID_GEM_PORT_ID)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 2))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_gem_port_key_bounds_check(const bcmolt_gpon_gem_port_key *this, bcmolt_presence_mask fields_present, bcmolt_gpon_gem_port_key_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_GEM_PORT_KEY_ID_PON_NI)) != 0)
+    {
+        if (this->pon_ni > (bcmolt_gpon_ni) 15)
+        {
+            *failed_prop = BCMOLT_GPON_GEM_PORT_KEY_ID_PON_NI;
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_GEM_PORT_KEY_ID_GEM_PORT_ID)) != 0)
+    {
+        if (this->gem_port_id > (bcmolt_gpon_gem_id) 4095)
+        {
+            *failed_prop = BCMOLT_GPON_GEM_PORT_KEY_ID_GEM_PORT_ID;
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_gpon_gem_port_cfg_data_set_default(bcmolt_gpon_gem_port_cfg_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_GEM_PORT_CFG_ID_CONFIGURATION)) != 0)
+    {
+        this->configuration.direction = BCMOLT_GEM_PORT_DIRECTION_DOWNSTREAM;
+        this->configuration.type = BCMOLT_GEM_PORT_TYPE_UNICAST;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_GEM_PORT_CFG_ID_ONU_ID)) != 0)
+    {
+        this->onu_id = (bcmolt_gpon_onu_id) 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_GEM_PORT_CFG_ID_GEM_PORT_STATE)) != 0)
+    {
+        this->gem_port_state = BCMOLT_GPON_GEM_PORT_STATE_NOT_CONFIGURED;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_GEM_PORT_CFG_ID_DOWNSTREAM_ENCRYPTION_MODE)) != 0)
+    {
+        this->downstream_encryption_mode = BCMOLT_CONTROL_STATE_DISABLE;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_GEM_PORT_CFG_ID_UPSTREAM_DESTINATION_QUEUE)) != 0)
+    {
+        this->upstream_destination_queue = BCMOLT_US_GEM_PORT_DESTINATION_DATA;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_GEM_PORT_CFG_ID_CONTROL)) != 0)
+    {
+        this->control = BCMOLT_CONTROL_STATE_DISABLE;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_GEM_PORT_CFG_ID_DEBUG_FLOW_CONFIG)) != 0)
+    {
+        this->debug_flow_config.untagged_flow = BCMOLT_CONTROL_STATE_DISABLE;
+        this->debug_flow_config.untagged_vid = (bcmolt_vlan_id) 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_GEM_PORT_CFG_ID_MAC_TABLE_ENTRY_LIMIT)) != 0)
+    {
+        this->mac_table_entry_limit = 0;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_gem_port_cfg_data_pack(const bcmolt_gpon_gem_port_cfg_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_GEM_PORT_CFG_ID_CONFIGURATION)) != 0)
+    {
+        if (!bcmolt_gem_port_configuration_pack(&this->configuration, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_GEM_PORT_CFG_ID_ONU_ID)) != 0)
+    {
+        if (!bcmolt_buf_write_u16(buf, (uint16_t) this->onu_id))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_GEM_PORT_CFG_ID_GEM_PORT_STATE)) != 0)
+    {
+        if (!bcmolt_gpon_gem_port_state_pack(this->gem_port_state, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_GEM_PORT_CFG_ID_DOWNSTREAM_ENCRYPTION_MODE)) != 0)
+    {
+        if (!bcmolt_control_state_pack(this->downstream_encryption_mode, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_GEM_PORT_CFG_ID_UPSTREAM_DESTINATION_QUEUE)) != 0)
+    {
+        if (!bcmolt_us_gem_port_destination_pack(this->upstream_destination_queue, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_GEM_PORT_CFG_ID_CONTROL)) != 0)
+    {
+        if (!bcmolt_control_state_pack(this->control, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_GEM_PORT_CFG_ID_DEBUG_FLOW_CONFIG)) != 0)
+    {
+        if (!bcmolt_gpon_debug_flow_config_pack(&this->debug_flow_config, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_GEM_PORT_CFG_ID_MAC_TABLE_ENTRY_LIMIT)) != 0)
+    {
+        if (!bcmolt_buf_write_u16(buf, this->mac_table_entry_limit))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_gpon_gem_port_cfg_data_get_packed_length(const bcmolt_gpon_gem_port_cfg_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_GPON_GEM_PORT_CFG_ID_CONFIGURATION)) != 0)
+    {
+        count += 2;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_GEM_PORT_CFG_ID_ONU_ID)) != 0)
+    {
+        count += 2;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_GEM_PORT_CFG_ID_GEM_PORT_STATE)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_GEM_PORT_CFG_ID_DOWNSTREAM_ENCRYPTION_MODE)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_GEM_PORT_CFG_ID_UPSTREAM_DESTINATION_QUEUE)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_GEM_PORT_CFG_ID_CONTROL)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_GEM_PORT_CFG_ID_DEBUG_FLOW_CONFIG)) != 0)
+    {
+        count += 3;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_GEM_PORT_CFG_ID_MAC_TABLE_ENTRY_LIMIT)) != 0)
+    {
+        count += 2;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_gem_port_cfg_data_unpack(bcmolt_gpon_gem_port_cfg_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_GEM_PORT_CFG_ID_CONFIGURATION)) != 0)
+    {
+        if (!bcmolt_gem_port_configuration_unpack(&this->configuration, buf, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_GEM_PORT_CFG_ID_ONU_ID)) != 0)
+    {
+        if (!bcmolt_buf_read_u16(buf, (uint16_t *) &this->onu_id))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_GEM_PORT_CFG_ID_GEM_PORT_STATE)) != 0)
+    {
+        if (!bcmolt_gpon_gem_port_state_unpack(&this->gem_port_state, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_GEM_PORT_CFG_ID_DOWNSTREAM_ENCRYPTION_MODE)) != 0)
+    {
+        if (!bcmolt_control_state_unpack(&this->downstream_encryption_mode, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_GEM_PORT_CFG_ID_UPSTREAM_DESTINATION_QUEUE)) != 0)
+    {
+        if (!bcmolt_us_gem_port_destination_unpack(&this->upstream_destination_queue, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_GEM_PORT_CFG_ID_CONTROL)) != 0)
+    {
+        if (!bcmolt_control_state_unpack(&this->control, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_GEM_PORT_CFG_ID_DEBUG_FLOW_CONFIG)) != 0)
+    {
+        if (!bcmolt_gpon_debug_flow_config_unpack(&this->debug_flow_config, buf, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_GEM_PORT_CFG_ID_MAC_TABLE_ENTRY_LIMIT)) != 0)
+    {
+        if (!bcmolt_buf_read_u16(buf, &this->mac_table_entry_limit))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_gem_port_cfg_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_GEM_PORT_CFG_ID_CONFIGURATION)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 2))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_GEM_PORT_CFG_ID_ONU_ID)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 2))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_GEM_PORT_CFG_ID_GEM_PORT_STATE)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_GEM_PORT_CFG_ID_DOWNSTREAM_ENCRYPTION_MODE)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_GEM_PORT_CFG_ID_UPSTREAM_DESTINATION_QUEUE)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_GEM_PORT_CFG_ID_CONTROL)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_GEM_PORT_CFG_ID_DEBUG_FLOW_CONFIG)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 3))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_GEM_PORT_CFG_ID_MAC_TABLE_ENTRY_LIMIT)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 2))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_gem_port_cfg_data_bounds_check(const bcmolt_gpon_gem_port_cfg_data *this, bcmolt_presence_mask fields_present, bcmolt_gpon_gem_port_cfg_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_GEM_PORT_CFG_ID_CONFIGURATION)) != 0)
+    {
+        if (!bcmolt_gem_port_configuration_bounds_check(&this->configuration))
+        {
+            *failed_prop = BCMOLT_GPON_GEM_PORT_CFG_ID_CONFIGURATION;
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_GEM_PORT_CFG_ID_ONU_ID)) != 0)
+    {
+        if (this->onu_id > (bcmolt_gpon_onu_id) 127)
+        {
+            *failed_prop = BCMOLT_GPON_GEM_PORT_CFG_ID_ONU_ID;
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_GEM_PORT_CFG_ID_GEM_PORT_STATE)) != 0)
+    {
+        switch (this->gem_port_state)
+        {
+            case BCMOLT_GPON_GEM_PORT_STATE_NOT_CONFIGURED:
+                break;
+            case BCMOLT_GPON_GEM_PORT_STATE_INACTIVE:
+                break;
+            case BCMOLT_GPON_GEM_PORT_STATE_PROCESSING:
+                break;
+            case BCMOLT_GPON_GEM_PORT_STATE_ACTIVE:
+                break;
+            default:
+                *failed_prop = BCMOLT_GPON_GEM_PORT_CFG_ID_GEM_PORT_STATE;
+                return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_GEM_PORT_CFG_ID_DOWNSTREAM_ENCRYPTION_MODE)) != 0)
+    {
+        switch (this->downstream_encryption_mode)
+        {
+            case BCMOLT_CONTROL_STATE_DISABLE:
+                break;
+            case BCMOLT_CONTROL_STATE_ENABLE:
+                break;
+            default:
+                *failed_prop = BCMOLT_GPON_GEM_PORT_CFG_ID_DOWNSTREAM_ENCRYPTION_MODE;
+                return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_GEM_PORT_CFG_ID_UPSTREAM_DESTINATION_QUEUE)) != 0)
+    {
+        switch (this->upstream_destination_queue)
+        {
+            case BCMOLT_US_GEM_PORT_DESTINATION_DATA:
+                break;
+            case BCMOLT_US_GEM_PORT_DESTINATION_CPU:
+                break;
+            case BCMOLT_US_GEM_PORT_DESTINATION_OMCI:
+                break;
+            default:
+                *failed_prop = BCMOLT_GPON_GEM_PORT_CFG_ID_UPSTREAM_DESTINATION_QUEUE;
+                return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_GEM_PORT_CFG_ID_CONTROL)) != 0)
+    {
+        switch (this->control)
+        {
+            case BCMOLT_CONTROL_STATE_DISABLE:
+                break;
+            case BCMOLT_CONTROL_STATE_ENABLE:
+                break;
+            default:
+                *failed_prop = BCMOLT_GPON_GEM_PORT_CFG_ID_CONTROL;
+                return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_GEM_PORT_CFG_ID_DEBUG_FLOW_CONFIG)) != 0)
+    {
+        if (!bcmolt_gpon_debug_flow_config_bounds_check(&this->debug_flow_config))
+        {
+            *failed_prop = BCMOLT_GPON_GEM_PORT_CFG_ID_DEBUG_FLOW_CONFIG;
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_GEM_PORT_CFG_ID_MAC_TABLE_ENTRY_LIMIT)) != 0)
+    {
+        if (this->mac_table_entry_limit > 128)
+        {
+            *failed_prop = BCMOLT_GPON_GEM_PORT_CFG_ID_MAC_TABLE_ENTRY_LIMIT;
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_gpon_gem_port_stat_data_set_default(bcmolt_gpon_gem_port_stat_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_GEM_PORT_STAT_ID_RX_PACKETS)) != 0)
+    {
+        this->rx_packets = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_GEM_PORT_STAT_ID_RX_BYTES)) != 0)
+    {
+        this->rx_bytes = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_GEM_PORT_STAT_ID_TX_PACKETS)) != 0)
+    {
+        this->tx_packets = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_GEM_PORT_STAT_ID_TX_BYTES)) != 0)
+    {
+        this->tx_bytes = 0;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_gem_port_stat_data_pack(const bcmolt_gpon_gem_port_stat_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_GEM_PORT_STAT_ID_RX_PACKETS)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->rx_packets))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_GEM_PORT_STAT_ID_RX_BYTES)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->rx_bytes))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_GEM_PORT_STAT_ID_TX_PACKETS)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->tx_packets))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_GEM_PORT_STAT_ID_TX_BYTES)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->tx_bytes))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_gpon_gem_port_stat_data_get_packed_length(const bcmolt_gpon_gem_port_stat_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_GPON_GEM_PORT_STAT_ID_RX_PACKETS)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_GEM_PORT_STAT_ID_RX_BYTES)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_GEM_PORT_STAT_ID_TX_PACKETS)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_GEM_PORT_STAT_ID_TX_BYTES)) != 0)
+    {
+        count += 8;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_gem_port_stat_data_unpack(bcmolt_gpon_gem_port_stat_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_GEM_PORT_STAT_ID_RX_PACKETS)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->rx_packets))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_GEM_PORT_STAT_ID_RX_BYTES)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->rx_bytes))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_GEM_PORT_STAT_ID_TX_PACKETS)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->tx_packets))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_GEM_PORT_STAT_ID_TX_BYTES)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->tx_bytes))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_gem_port_stat_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_GEM_PORT_STAT_ID_RX_PACKETS)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_GEM_PORT_STAT_ID_RX_BYTES)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_GEM_PORT_STAT_ID_TX_PACKETS)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_GEM_PORT_STAT_ID_TX_BYTES)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_gem_port_stat_data_bounds_check(const bcmolt_gpon_gem_port_stat_data *this, bcmolt_presence_mask fields_present, bcmolt_gpon_gem_port_stat_id *failed_prop)
+{
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_gpon_gem_port_stat_cfg_data_set_default(bcmolt_gpon_gem_port_stat_cfg_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_GEM_PORT_STAT_CFG_ID_CFG)) != 0)
+    {
+        this->cfg.trigger.type = BCMOLT_STAT_CONDITION_TYPE_NONE;
+        this->cfg.soak.active_soak_time = 0;
+        this->cfg.soak.clear_soak_time = 0;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_gem_port_stat_cfg_data_pack(const bcmolt_gpon_gem_port_stat_cfg_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_GEM_PORT_STAT_CFG_ID_CFG)) != 0)
+    {
+        if (!bcmolt_stat_alarm_config_pack(&this->cfg, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_gpon_gem_port_stat_cfg_data_get_packed_length(const bcmolt_gpon_gem_port_stat_cfg_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_GPON_GEM_PORT_STAT_CFG_ID_CFG)) != 0)
+    {
+        count += bcmolt_stat_alarm_config_get_packed_length(&this->cfg);
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_gem_port_stat_cfg_data_unpack(bcmolt_gpon_gem_port_stat_cfg_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_GEM_PORT_STAT_CFG_ID_CFG)) != 0)
+    {
+        if (!bcmolt_stat_alarm_config_unpack(&this->cfg, buf, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_gem_port_stat_cfg_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_GEM_PORT_STAT_CFG_ID_CFG)) != 0)
+    {
+        if (!bcmolt_stat_alarm_config_scan(packed, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_gem_port_stat_cfg_data_bounds_check(const bcmolt_gpon_gem_port_stat_cfg_data *this, bcmolt_presence_mask fields_present, bcmolt_gpon_gem_port_stat_cfg_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_GEM_PORT_STAT_CFG_ID_CFG)) != 0)
+    {
+        if (!bcmolt_stat_alarm_config_bounds_check(&this->cfg))
+        {
+            *failed_prop = BCMOLT_GPON_GEM_PORT_STAT_CFG_ID_CFG;
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_gpon_gem_port_configuration_completed_data_set_default(bcmolt_gpon_gem_port_configuration_completed_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_GEM_PORT_CONFIGURATION_COMPLETED_ID_STATUS)) != 0)
+    {
+        this->status = BCMOLT_RESULT_SUCCESS;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_GEM_PORT_CONFIGURATION_COMPLETED_ID_NEW_STATE)) != 0)
+    {
+        this->new_state = BCMOLT_GPON_GEM_PORT_STATE_NOT_CONFIGURED;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_gem_port_configuration_completed_data_pack(const bcmolt_gpon_gem_port_configuration_completed_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_GEM_PORT_CONFIGURATION_COMPLETED_ID_STATUS)) != 0)
+    {
+        if (!bcmolt_result_pack(this->status, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_GEM_PORT_CONFIGURATION_COMPLETED_ID_NEW_STATE)) != 0)
+    {
+        if (!bcmolt_gpon_gem_port_state_pack(this->new_state, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_gpon_gem_port_configuration_completed_data_get_packed_length(const bcmolt_gpon_gem_port_configuration_completed_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_GPON_GEM_PORT_CONFIGURATION_COMPLETED_ID_STATUS)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_GEM_PORT_CONFIGURATION_COMPLETED_ID_NEW_STATE)) != 0)
+    {
+        count += 1;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_gem_port_configuration_completed_data_unpack(bcmolt_gpon_gem_port_configuration_completed_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_GEM_PORT_CONFIGURATION_COMPLETED_ID_STATUS)) != 0)
+    {
+        if (!bcmolt_result_unpack(&this->status, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_GEM_PORT_CONFIGURATION_COMPLETED_ID_NEW_STATE)) != 0)
+    {
+        if (!bcmolt_gpon_gem_port_state_unpack(&this->new_state, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_gem_port_configuration_completed_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_GEM_PORT_CONFIGURATION_COMPLETED_ID_STATUS)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_GEM_PORT_CONFIGURATION_COMPLETED_ID_NEW_STATE)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_gem_port_configuration_completed_data_bounds_check(const bcmolt_gpon_gem_port_configuration_completed_data *this, bcmolt_presence_mask fields_present, bcmolt_gpon_gem_port_configuration_completed_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_GEM_PORT_CONFIGURATION_COMPLETED_ID_STATUS)) != 0)
+    {
+        switch (this->status)
+        {
+            case BCMOLT_RESULT_SUCCESS:
+                break;
+            case BCMOLT_RESULT_FAIL:
+                break;
+            default:
+                *failed_prop = BCMOLT_GPON_GEM_PORT_CONFIGURATION_COMPLETED_ID_STATUS;
+                return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_GEM_PORT_CONFIGURATION_COMPLETED_ID_NEW_STATE)) != 0)
+    {
+        switch (this->new_state)
+        {
+            case BCMOLT_GPON_GEM_PORT_STATE_NOT_CONFIGURED:
+                break;
+            case BCMOLT_GPON_GEM_PORT_STATE_INACTIVE:
+                break;
+            case BCMOLT_GPON_GEM_PORT_STATE_PROCESSING:
+                break;
+            case BCMOLT_GPON_GEM_PORT_STATE_ACTIVE:
+                break;
+            default:
+                *failed_prop = BCMOLT_GPON_GEM_PORT_CONFIGURATION_COMPLETED_ID_NEW_STATE;
+                return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_gpon_gem_port_stat_alarm_cleared_data_set_default(bcmolt_gpon_gem_port_stat_alarm_cleared_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_GEM_PORT_STAT_ALARM_CLEARED_ID_STAT)) != 0)
+    {
+        this->stat = BCMOLT_GPON_GEM_PORT_STAT_ID_RX_PACKETS;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_gem_port_stat_alarm_cleared_data_pack(const bcmolt_gpon_gem_port_stat_alarm_cleared_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_GEM_PORT_STAT_ALARM_CLEARED_ID_STAT)) != 0)
+    {
+        if (!bcmolt_gpon_gem_port_stat_id_pack(this->stat, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_gpon_gem_port_stat_alarm_cleared_data_get_packed_length(const bcmolt_gpon_gem_port_stat_alarm_cleared_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_GPON_GEM_PORT_STAT_ALARM_CLEARED_ID_STAT)) != 0)
+    {
+        count += 2;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_gem_port_stat_alarm_cleared_data_unpack(bcmolt_gpon_gem_port_stat_alarm_cleared_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_GEM_PORT_STAT_ALARM_CLEARED_ID_STAT)) != 0)
+    {
+        if (!bcmolt_gpon_gem_port_stat_id_unpack(&this->stat, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_gem_port_stat_alarm_cleared_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_GEM_PORT_STAT_ALARM_CLEARED_ID_STAT)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 2))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_gem_port_stat_alarm_cleared_data_bounds_check(const bcmolt_gpon_gem_port_stat_alarm_cleared_data *this, bcmolt_presence_mask fields_present, bcmolt_gpon_gem_port_stat_alarm_cleared_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_GEM_PORT_STAT_ALARM_CLEARED_ID_STAT)) != 0)
+    {
+        switch (this->stat)
+        {
+            case BCMOLT_GPON_GEM_PORT_STAT_ID_RX_PACKETS:
+                break;
+            case BCMOLT_GPON_GEM_PORT_STAT_ID_RX_BYTES:
+                break;
+            case BCMOLT_GPON_GEM_PORT_STAT_ID_TX_PACKETS:
+                break;
+            case BCMOLT_GPON_GEM_PORT_STAT_ID_TX_BYTES:
+                break;
+            default:
+                *failed_prop = BCMOLT_GPON_GEM_PORT_STAT_ALARM_CLEARED_ID_STAT;
+                return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_gpon_gem_port_stat_alarm_raised_data_set_default(bcmolt_gpon_gem_port_stat_alarm_raised_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_GEM_PORT_STAT_ALARM_RAISED_ID_STAT)) != 0)
+    {
+        this->stat = BCMOLT_GPON_GEM_PORT_STAT_ID_RX_PACKETS;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_gem_port_stat_alarm_raised_data_pack(const bcmolt_gpon_gem_port_stat_alarm_raised_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_GEM_PORT_STAT_ALARM_RAISED_ID_STAT)) != 0)
+    {
+        if (!bcmolt_gpon_gem_port_stat_id_pack(this->stat, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_gpon_gem_port_stat_alarm_raised_data_get_packed_length(const bcmolt_gpon_gem_port_stat_alarm_raised_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_GPON_GEM_PORT_STAT_ALARM_RAISED_ID_STAT)) != 0)
+    {
+        count += 2;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_gem_port_stat_alarm_raised_data_unpack(bcmolt_gpon_gem_port_stat_alarm_raised_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_GEM_PORT_STAT_ALARM_RAISED_ID_STAT)) != 0)
+    {
+        if (!bcmolt_gpon_gem_port_stat_id_unpack(&this->stat, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_gem_port_stat_alarm_raised_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_GEM_PORT_STAT_ALARM_RAISED_ID_STAT)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 2))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_gem_port_stat_alarm_raised_data_bounds_check(const bcmolt_gpon_gem_port_stat_alarm_raised_data *this, bcmolt_presence_mask fields_present, bcmolt_gpon_gem_port_stat_alarm_raised_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_GEM_PORT_STAT_ALARM_RAISED_ID_STAT)) != 0)
+    {
+        switch (this->stat)
+        {
+            case BCMOLT_GPON_GEM_PORT_STAT_ID_RX_PACKETS:
+                break;
+            case BCMOLT_GPON_GEM_PORT_STAT_ID_RX_BYTES:
+                break;
+            case BCMOLT_GPON_GEM_PORT_STAT_ID_TX_PACKETS:
+                break;
+            case BCMOLT_GPON_GEM_PORT_STAT_ID_TX_BYTES:
+                break;
+            default:
+                *failed_prop = BCMOLT_GPON_GEM_PORT_STAT_ALARM_RAISED_ID_STAT;
+                return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_gpon_gem_port_auto_cfg_data_set_default(bcmolt_gpon_gem_port_auto_cfg_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_GEM_PORT_AUTO_CFG_ID_CONFIGURATION_COMPLETED)) != 0)
+    {
+        this->configuration_completed = BCMOS_FALSE;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_GEM_PORT_AUTO_CFG_ID_STAT_ALARM_CLEARED)) != 0)
+    {
+        this->stat_alarm_cleared = BCMOS_FALSE;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_GEM_PORT_AUTO_CFG_ID_STAT_ALARM_RAISED)) != 0)
+    {
+        this->stat_alarm_raised = BCMOS_FALSE;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_gem_port_auto_cfg_data_pack(const bcmolt_gpon_gem_port_auto_cfg_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_GEM_PORT_AUTO_CFG_ID_CONFIGURATION_COMPLETED)) != 0)
+    {
+        if (!bcmolt_buf_write_bool(buf, this->configuration_completed))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_GEM_PORT_AUTO_CFG_ID_STAT_ALARM_CLEARED)) != 0)
+    {
+        if (!bcmolt_buf_write_bool(buf, this->stat_alarm_cleared))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_GEM_PORT_AUTO_CFG_ID_STAT_ALARM_RAISED)) != 0)
+    {
+        if (!bcmolt_buf_write_bool(buf, this->stat_alarm_raised))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_gpon_gem_port_auto_cfg_data_get_packed_length(const bcmolt_gpon_gem_port_auto_cfg_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_GPON_GEM_PORT_AUTO_CFG_ID_CONFIGURATION_COMPLETED)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_GEM_PORT_AUTO_CFG_ID_STAT_ALARM_CLEARED)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_GEM_PORT_AUTO_CFG_ID_STAT_ALARM_RAISED)) != 0)
+    {
+        count += 1;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_gem_port_auto_cfg_data_unpack(bcmolt_gpon_gem_port_auto_cfg_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_GEM_PORT_AUTO_CFG_ID_CONFIGURATION_COMPLETED)) != 0)
+    {
+        if (!bcmolt_buf_read_bool(buf, &this->configuration_completed))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_GEM_PORT_AUTO_CFG_ID_STAT_ALARM_CLEARED)) != 0)
+    {
+        if (!bcmolt_buf_read_bool(buf, &this->stat_alarm_cleared))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_GEM_PORT_AUTO_CFG_ID_STAT_ALARM_RAISED)) != 0)
+    {
+        if (!bcmolt_buf_read_bool(buf, &this->stat_alarm_raised))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_gem_port_auto_cfg_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_GEM_PORT_AUTO_CFG_ID_CONFIGURATION_COMPLETED)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_GEM_PORT_AUTO_CFG_ID_STAT_ALARM_CLEARED)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_GEM_PORT_AUTO_CFG_ID_STAT_ALARM_RAISED)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_gem_port_auto_cfg_data_bounds_check(const bcmolt_gpon_gem_port_auto_cfg_data *this, bcmolt_presence_mask fields_present, bcmolt_gpon_gem_port_auto_cfg_id *failed_prop)
+{
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_gpon_gem_port_set_state_data_set_default(bcmolt_gpon_gem_port_set_state_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_GEM_PORT_SET_STATE_ID_STATE)) != 0)
+    {
+        this->state = BCMOLT_GEM_PORT_OPERATION_ACTIVATE;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_gem_port_set_state_data_pack(const bcmolt_gpon_gem_port_set_state_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_GEM_PORT_SET_STATE_ID_STATE)) != 0)
+    {
+        if (!bcmolt_gem_port_operation_pack(this->state, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_gpon_gem_port_set_state_data_get_packed_length(const bcmolt_gpon_gem_port_set_state_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_GPON_GEM_PORT_SET_STATE_ID_STATE)) != 0)
+    {
+        count += 1;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_gem_port_set_state_data_unpack(bcmolt_gpon_gem_port_set_state_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_GEM_PORT_SET_STATE_ID_STATE)) != 0)
+    {
+        if (!bcmolt_gem_port_operation_unpack(&this->state, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_gem_port_set_state_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_GEM_PORT_SET_STATE_ID_STATE)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_gem_port_set_state_data_bounds_check(const bcmolt_gpon_gem_port_set_state_data *this, bcmolt_presence_mask fields_present, bcmolt_gpon_gem_port_set_state_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_GEM_PORT_SET_STATE_ID_STATE)) != 0)
+    {
+        switch (this->state)
+        {
+            case BCMOLT_GEM_PORT_OPERATION_ACTIVATE:
+                break;
+            case BCMOLT_GEM_PORT_OPERATION_DEACTIVATE:
+                break;
+            default:
+                *failed_prop = BCMOLT_GPON_GEM_PORT_SET_STATE_ID_STATE;
+                return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_gpon_iwf_key_set_default(bcmolt_gpon_iwf_key *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_KEY_ID_PON_NI)) != 0)
+    {
+        this->pon_ni = (bcmolt_gpon_ni) 0;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_iwf_key_pack(const bcmolt_gpon_iwf_key *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_KEY_ID_PON_NI)) != 0)
+    {
+        if (!bcmolt_buf_write_u8(buf, (uint8_t) this->pon_ni))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_gpon_iwf_key_get_packed_length(const bcmolt_gpon_iwf_key *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_KEY_ID_PON_NI)) != 0)
+    {
+        count += 1;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_iwf_key_unpack(bcmolt_gpon_iwf_key *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_KEY_ID_PON_NI)) != 0)
+    {
+        if (!bcmolt_buf_read_u8(buf, (uint8_t *) &this->pon_ni))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_iwf_key_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_KEY_ID_PON_NI)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_iwf_key_bounds_check(const bcmolt_gpon_iwf_key *this, bcmolt_presence_mask fields_present, bcmolt_gpon_iwf_key_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_KEY_ID_PON_NI)) != 0)
+    {
+        if (this->pon_ni > (bcmolt_gpon_ni) 15)
+        {
+            *failed_prop = BCMOLT_GPON_IWF_KEY_ID_PON_NI;
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_gpon_iwf_cfg_data_set_default(bcmolt_gpon_iwf_cfg_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_CFG_ID_IWF_MODE)) != 0)
+    {
+        this->iwf_mode = BCMOLT_IWF_MODE_DIRECT_MAPPING_MODE;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_CFG_ID_US_TPID_PER_FLOW)) != 0)
+    {
+        this->us_tpid_per_flow.arr[0] = 33024U;
+        this->us_tpid_per_flow.arr[1] = 33024U;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_CFG_ID_US_OTAG_DIRECT_TPID)) != 0)
+    {
+        this->us_otag_direct_tpid = 33024U;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_CFG_ID_US_OTAG_DIRECT_PBIT)) != 0)
+    {
+        this->us_otag_direct_pbit = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_CFG_ID_DS_TPID)) != 0)
+    {
+        this->ds_tpid.arr[0] = 33024U;
+        this->ds_tpid.arr[1] = 34984U;
+        this->ds_tpid.arr[2] = 37120U;
+        this->ds_tpid.arr[3] = 37376U;
+        this->ds_tpid.arr[4] = 33024U;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_CFG_ID_MAC_TABLE_CONFIGURATION)) != 0)
+    {
+        this->mac_table_configuration.miss_fallback = BCMOLT_MAC_TABLE_MISS_FALLBACK_DROP;
+        this->mac_table_configuration.default_flow_id = (bcmolt_flow_id) 0;
+        this->mac_table_configuration.aging_time = 30;
+        this->mac_table_configuration.learning_mode = BCMOLT_MAC_TABLE_LEARNING_MODE_NORMAL;
+        this->mac_table_configuration.automatic_mac_learning = BCMOLT_CONTROL_STATE_DISABLE;
+        this->mac_table_configuration.automatic_mac_aging = BCMOLT_CONTROL_STATE_DISABLE;
+        this->mac_table_configuration.automatic_mac_move = BCMOLT_CONTROL_STATE_DISABLE;
+        this->mac_table_configuration.automatic_static_mode = BCMOS_FALSE;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_CFG_ID_DEBUG_FLOW_CONFIGURATION)) != 0)
+    {
+        this->debug_flow_configuration.learn_untagged_flow_vids = BCMOS_FALSE;
+        this->debug_flow_configuration.untagged_flow_shaping_ms_per_sec = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_CFG_ID_MAC_TABLE_COUNT)) != 0)
+    {
+        this->mac_table_count = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_CFG_ID_FORBIDDEN_VLAN_FLOW_GEM_RANGE_START)) != 0)
+    {
+        this->forbidden_vlan_flow_gem_range_start = 128;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_iwf_cfg_data_pack(const bcmolt_gpon_iwf_cfg_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_CFG_ID_IWF_MODE)) != 0)
+    {
+        if (!bcmolt_iwf_mode_pack(this->iwf_mode, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_CFG_ID_US_TPID_PER_FLOW)) != 0)
+    {
+        if (!bcmolt_arr_u16_2_hex_pack(&this->us_tpid_per_flow, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_CFG_ID_US_OTAG_DIRECT_TPID)) != 0)
+    {
+        if (!bcmolt_buf_write_u16(buf, this->us_otag_direct_tpid))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_CFG_ID_US_OTAG_DIRECT_PBIT)) != 0)
+    {
+        if (!bcmolt_buf_write_u8(buf, this->us_otag_direct_pbit))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_CFG_ID_DS_TPID)) != 0)
+    {
+        if (!bcmolt_arr_u16_5_hex_pack(&this->ds_tpid, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_CFG_ID_MAC_TABLE_CONFIGURATION)) != 0)
+    {
+        if (!bcmolt_mac_table_configuration_pack(&this->mac_table_configuration, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_CFG_ID_DEBUG_FLOW_CONFIGURATION)) != 0)
+    {
+        if (!bcmolt_gpon_iwf_debug_flow_config_pack(&this->debug_flow_configuration, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_CFG_ID_MAC_TABLE_COUNT)) != 0)
+    {
+        if (!bcmolt_buf_write_u16(buf, this->mac_table_count))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_CFG_ID_FORBIDDEN_VLAN_FLOW_GEM_RANGE_START)) != 0)
+    {
+        if (!bcmolt_buf_write_u16(buf, this->forbidden_vlan_flow_gem_range_start))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_gpon_iwf_cfg_data_get_packed_length(const bcmolt_gpon_iwf_cfg_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_CFG_ID_IWF_MODE)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_CFG_ID_US_TPID_PER_FLOW)) != 0)
+    {
+        count += 4;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_CFG_ID_US_OTAG_DIRECT_TPID)) != 0)
+    {
+        count += 2;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_CFG_ID_US_OTAG_DIRECT_PBIT)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_CFG_ID_DS_TPID)) != 0)
+    {
+        count += 10;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_CFG_ID_MAC_TABLE_CONFIGURATION)) != 0)
+    {
+        count += 12;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_CFG_ID_DEBUG_FLOW_CONFIGURATION)) != 0)
+    {
+        count += 3;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_CFG_ID_MAC_TABLE_COUNT)) != 0)
+    {
+        count += 2;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_CFG_ID_FORBIDDEN_VLAN_FLOW_GEM_RANGE_START)) != 0)
+    {
+        count += 2;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_iwf_cfg_data_unpack(bcmolt_gpon_iwf_cfg_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_CFG_ID_IWF_MODE)) != 0)
+    {
+        if (!bcmolt_iwf_mode_unpack(&this->iwf_mode, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_CFG_ID_US_TPID_PER_FLOW)) != 0)
+    {
+        if (!bcmolt_arr_u16_2_hex_unpack(&this->us_tpid_per_flow, buf, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_CFG_ID_US_OTAG_DIRECT_TPID)) != 0)
+    {
+        if (!bcmolt_buf_read_u16(buf, &this->us_otag_direct_tpid))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_CFG_ID_US_OTAG_DIRECT_PBIT)) != 0)
+    {
+        if (!bcmolt_buf_read_u8(buf, &this->us_otag_direct_pbit))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_CFG_ID_DS_TPID)) != 0)
+    {
+        if (!bcmolt_arr_u16_5_hex_unpack(&this->ds_tpid, buf, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_CFG_ID_MAC_TABLE_CONFIGURATION)) != 0)
+    {
+        if (!bcmolt_mac_table_configuration_unpack(&this->mac_table_configuration, buf, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_CFG_ID_DEBUG_FLOW_CONFIGURATION)) != 0)
+    {
+        if (!bcmolt_gpon_iwf_debug_flow_config_unpack(&this->debug_flow_configuration, buf, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_CFG_ID_MAC_TABLE_COUNT)) != 0)
+    {
+        if (!bcmolt_buf_read_u16(buf, &this->mac_table_count))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_CFG_ID_FORBIDDEN_VLAN_FLOW_GEM_RANGE_START)) != 0)
+    {
+        if (!bcmolt_buf_read_u16(buf, &this->forbidden_vlan_flow_gem_range_start))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_iwf_cfg_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_CFG_ID_IWF_MODE)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_CFG_ID_US_TPID_PER_FLOW)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 4))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_CFG_ID_US_OTAG_DIRECT_TPID)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 2))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_CFG_ID_US_OTAG_DIRECT_PBIT)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_CFG_ID_DS_TPID)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 10))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_CFG_ID_MAC_TABLE_CONFIGURATION)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 12))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_CFG_ID_DEBUG_FLOW_CONFIGURATION)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 3))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_CFG_ID_MAC_TABLE_COUNT)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 2))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_CFG_ID_FORBIDDEN_VLAN_FLOW_GEM_RANGE_START)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 2))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_iwf_cfg_data_bounds_check(const bcmolt_gpon_iwf_cfg_data *this, bcmolt_presence_mask fields_present, bcmolt_gpon_iwf_cfg_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_CFG_ID_IWF_MODE)) != 0)
+    {
+        switch (this->iwf_mode)
+        {
+            case BCMOLT_IWF_MODE_DIRECT_MAPPING_MODE:
+                break;
+            case BCMOLT_IWF_MODE_PER_FLOW_MODE:
+                break;
+            default:
+                *failed_prop = BCMOLT_GPON_IWF_CFG_ID_IWF_MODE;
+                return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_CFG_ID_US_TPID_PER_FLOW)) != 0)
+    {
+        if (!bcmolt_arr_u16_2_hex_bounds_check(&this->us_tpid_per_flow))
+        {
+            *failed_prop = BCMOLT_GPON_IWF_CFG_ID_US_TPID_PER_FLOW;
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_CFG_ID_US_OTAG_DIRECT_PBIT)) != 0)
+    {
+        if (this->us_otag_direct_pbit > 7)
+        {
+            *failed_prop = BCMOLT_GPON_IWF_CFG_ID_US_OTAG_DIRECT_PBIT;
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_CFG_ID_DS_TPID)) != 0)
+    {
+        if (!bcmolt_arr_u16_5_hex_bounds_check(&this->ds_tpid))
+        {
+            *failed_prop = BCMOLT_GPON_IWF_CFG_ID_DS_TPID;
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_CFG_ID_MAC_TABLE_CONFIGURATION)) != 0)
+    {
+        if (!bcmolt_mac_table_configuration_bounds_check(&this->mac_table_configuration))
+        {
+            *failed_prop = BCMOLT_GPON_IWF_CFG_ID_MAC_TABLE_CONFIGURATION;
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_CFG_ID_DEBUG_FLOW_CONFIGURATION)) != 0)
+    {
+        if (!bcmolt_gpon_iwf_debug_flow_config_bounds_check(&this->debug_flow_configuration))
+        {
+            *failed_prop = BCMOLT_GPON_IWF_CFG_ID_DEBUG_FLOW_CONFIGURATION;
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_gpon_iwf_stat_data_set_default(bcmolt_gpon_iwf_stat_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_STAT_ID_DS_HIT_EVENT)) != 0)
+    {
+        this->ds_hit_event = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_STAT_ID_DS_MISS_EVENT)) != 0)
+    {
+        this->ds_miss_event = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_STAT_ID_DS_DROP_DUE_TO_MISS_EVENT)) != 0)
+    {
+        this->ds_drop_due_to_miss_event = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_STAT_ID_DS_DROP_DUE_TO_HIT_EVENT)) != 0)
+    {
+        this->ds_drop_due_to_hit_event = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_STAT_ID_DS_DROP_TO_DISABLED_GEM)) != 0)
+    {
+        this->ds_drop_to_disabled_gem = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_STAT_ID_NEW_MAC_DISCOVERED)) != 0)
+    {
+        this->new_mac_discovered = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_STAT_ID_MOVE_EVENT)) != 0)
+    {
+        this->move_event = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_STAT_ID_NEW_MAC_DROP_DUE_TO_FIFO_FULL)) != 0)
+    {
+        this->new_mac_drop_due_to_fifo_full = 0;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_iwf_stat_data_pack(const bcmolt_gpon_iwf_stat_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_STAT_ID_DS_HIT_EVENT)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->ds_hit_event))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_STAT_ID_DS_MISS_EVENT)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->ds_miss_event))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_STAT_ID_DS_DROP_DUE_TO_MISS_EVENT)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->ds_drop_due_to_miss_event))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_STAT_ID_DS_DROP_DUE_TO_HIT_EVENT)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->ds_drop_due_to_hit_event))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_STAT_ID_DS_DROP_TO_DISABLED_GEM)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->ds_drop_to_disabled_gem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_STAT_ID_NEW_MAC_DISCOVERED)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->new_mac_discovered))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_STAT_ID_MOVE_EVENT)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->move_event))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_STAT_ID_NEW_MAC_DROP_DUE_TO_FIFO_FULL)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->new_mac_drop_due_to_fifo_full))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_gpon_iwf_stat_data_get_packed_length(const bcmolt_gpon_iwf_stat_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_STAT_ID_DS_HIT_EVENT)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_STAT_ID_DS_MISS_EVENT)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_STAT_ID_DS_DROP_DUE_TO_MISS_EVENT)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_STAT_ID_DS_DROP_DUE_TO_HIT_EVENT)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_STAT_ID_DS_DROP_TO_DISABLED_GEM)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_STAT_ID_NEW_MAC_DISCOVERED)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_STAT_ID_MOVE_EVENT)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_STAT_ID_NEW_MAC_DROP_DUE_TO_FIFO_FULL)) != 0)
+    {
+        count += 8;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_iwf_stat_data_unpack(bcmolt_gpon_iwf_stat_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_STAT_ID_DS_HIT_EVENT)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->ds_hit_event))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_STAT_ID_DS_MISS_EVENT)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->ds_miss_event))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_STAT_ID_DS_DROP_DUE_TO_MISS_EVENT)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->ds_drop_due_to_miss_event))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_STAT_ID_DS_DROP_DUE_TO_HIT_EVENT)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->ds_drop_due_to_hit_event))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_STAT_ID_DS_DROP_TO_DISABLED_GEM)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->ds_drop_to_disabled_gem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_STAT_ID_NEW_MAC_DISCOVERED)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->new_mac_discovered))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_STAT_ID_MOVE_EVENT)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->move_event))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_STAT_ID_NEW_MAC_DROP_DUE_TO_FIFO_FULL)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->new_mac_drop_due_to_fifo_full))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_iwf_stat_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_STAT_ID_DS_HIT_EVENT)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_STAT_ID_DS_MISS_EVENT)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_STAT_ID_DS_DROP_DUE_TO_MISS_EVENT)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_STAT_ID_DS_DROP_DUE_TO_HIT_EVENT)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_STAT_ID_DS_DROP_TO_DISABLED_GEM)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_STAT_ID_NEW_MAC_DISCOVERED)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_STAT_ID_MOVE_EVENT)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_STAT_ID_NEW_MAC_DROP_DUE_TO_FIFO_FULL)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_iwf_stat_data_bounds_check(const bcmolt_gpon_iwf_stat_data *this, bcmolt_presence_mask fields_present, bcmolt_gpon_iwf_stat_id *failed_prop)
+{
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_gpon_iwf_stat_cfg_data_set_default(bcmolt_gpon_iwf_stat_cfg_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_STAT_CFG_ID_CFG)) != 0)
+    {
+        this->cfg.trigger.type = BCMOLT_STAT_CONDITION_TYPE_NONE;
+        this->cfg.soak.active_soak_time = 0;
+        this->cfg.soak.clear_soak_time = 0;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_iwf_stat_cfg_data_pack(const bcmolt_gpon_iwf_stat_cfg_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_STAT_CFG_ID_CFG)) != 0)
+    {
+        if (!bcmolt_stat_alarm_config_pack(&this->cfg, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_gpon_iwf_stat_cfg_data_get_packed_length(const bcmolt_gpon_iwf_stat_cfg_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_STAT_CFG_ID_CFG)) != 0)
+    {
+        count += bcmolt_stat_alarm_config_get_packed_length(&this->cfg);
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_iwf_stat_cfg_data_unpack(bcmolt_gpon_iwf_stat_cfg_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_STAT_CFG_ID_CFG)) != 0)
+    {
+        if (!bcmolt_stat_alarm_config_unpack(&this->cfg, buf, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_iwf_stat_cfg_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_STAT_CFG_ID_CFG)) != 0)
+    {
+        if (!bcmolt_stat_alarm_config_scan(packed, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_iwf_stat_cfg_data_bounds_check(const bcmolt_gpon_iwf_stat_cfg_data *this, bcmolt_presence_mask fields_present, bcmolt_gpon_iwf_stat_cfg_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_STAT_CFG_ID_CFG)) != 0)
+    {
+        if (!bcmolt_stat_alarm_config_bounds_check(&this->cfg))
+        {
+            *failed_prop = BCMOLT_GPON_IWF_STAT_CFG_ID_CFG;
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_gpon_iwf_scan_mac_table_completed_data_set_default(bcmolt_gpon_iwf_scan_mac_table_completed_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_SCAN_MAC_TABLE_COMPLETED_ID_MAC_ADDRESS)) != 0)
+    {
+        bcmos_mac_address_init(&this->mac_address);
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_SCAN_MAC_TABLE_COMPLETED_ID_ENTRIES)) != 0)
+    {
+        this->entries.len = 0;
+        this->entries.val = NULL;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_iwf_scan_mac_table_completed_data_pack(const bcmolt_gpon_iwf_scan_mac_table_completed_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_SCAN_MAC_TABLE_COMPLETED_ID_MAC_ADDRESS)) != 0)
+    {
+        if (!bcmolt_buf_write_mac_address(buf, this->mac_address))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_SCAN_MAC_TABLE_COMPLETED_ID_ENTRIES)) != 0)
+    {
+        if (!bcmolt_gpon_mac_table_scan_result_list_u16_pack(&this->entries, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_gpon_iwf_scan_mac_table_completed_data_get_packed_length(const bcmolt_gpon_iwf_scan_mac_table_completed_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_SCAN_MAC_TABLE_COMPLETED_ID_MAC_ADDRESS)) != 0)
+    {
+        count += 6;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_SCAN_MAC_TABLE_COMPLETED_ID_ENTRIES)) != 0)
+    {
+        count += bcmolt_gpon_mac_table_scan_result_list_u16_get_packed_length(&this->entries);
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_iwf_scan_mac_table_completed_data_unpack(bcmolt_gpon_iwf_scan_mac_table_completed_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_SCAN_MAC_TABLE_COMPLETED_ID_MAC_ADDRESS)) != 0)
+    {
+        if (!bcmolt_buf_read_mac_address(buf, &this->mac_address))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_SCAN_MAC_TABLE_COMPLETED_ID_ENTRIES)) != 0)
+    {
+        if (!bcmolt_gpon_mac_table_scan_result_list_u16_unpack(&this->entries, buf, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_iwf_scan_mac_table_completed_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_SCAN_MAC_TABLE_COMPLETED_ID_MAC_ADDRESS)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 6))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_SCAN_MAC_TABLE_COMPLETED_ID_ENTRIES)) != 0)
+    {
+        if (!bcmolt_gpon_mac_table_scan_result_list_u16_scan(packed, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_iwf_scan_mac_table_completed_data_bounds_check(const bcmolt_gpon_iwf_scan_mac_table_completed_data *this, bcmolt_presence_mask fields_present, bcmolt_gpon_iwf_scan_mac_table_completed_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_SCAN_MAC_TABLE_COMPLETED_ID_ENTRIES)) != 0)
+    {
+        if (!bcmolt_gpon_mac_table_scan_result_list_u16_bounds_check(&this->entries))
+        {
+            *failed_prop = BCMOLT_GPON_IWF_SCAN_MAC_TABLE_COMPLETED_ID_ENTRIES;
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_gpon_iwf_stat_alarm_cleared_data_set_default(bcmolt_gpon_iwf_stat_alarm_cleared_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_STAT_ALARM_CLEARED_ID_STAT)) != 0)
+    {
+        this->stat = BCMOLT_GPON_IWF_STAT_ID_DS_HIT_EVENT;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_iwf_stat_alarm_cleared_data_pack(const bcmolt_gpon_iwf_stat_alarm_cleared_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_STAT_ALARM_CLEARED_ID_STAT)) != 0)
+    {
+        if (!bcmolt_gpon_iwf_stat_id_pack(this->stat, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_gpon_iwf_stat_alarm_cleared_data_get_packed_length(const bcmolt_gpon_iwf_stat_alarm_cleared_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_STAT_ALARM_CLEARED_ID_STAT)) != 0)
+    {
+        count += 2;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_iwf_stat_alarm_cleared_data_unpack(bcmolt_gpon_iwf_stat_alarm_cleared_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_STAT_ALARM_CLEARED_ID_STAT)) != 0)
+    {
+        if (!bcmolt_gpon_iwf_stat_id_unpack(&this->stat, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_iwf_stat_alarm_cleared_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_STAT_ALARM_CLEARED_ID_STAT)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 2))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_iwf_stat_alarm_cleared_data_bounds_check(const bcmolt_gpon_iwf_stat_alarm_cleared_data *this, bcmolt_presence_mask fields_present, bcmolt_gpon_iwf_stat_alarm_cleared_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_STAT_ALARM_CLEARED_ID_STAT)) != 0)
+    {
+        switch (this->stat)
+        {
+            case BCMOLT_GPON_IWF_STAT_ID_DS_HIT_EVENT:
+                break;
+            case BCMOLT_GPON_IWF_STAT_ID_DS_MISS_EVENT:
+                break;
+            case BCMOLT_GPON_IWF_STAT_ID_DS_DROP_DUE_TO_MISS_EVENT:
+                break;
+            case BCMOLT_GPON_IWF_STAT_ID_DS_DROP_DUE_TO_HIT_EVENT:
+                break;
+            case BCMOLT_GPON_IWF_STAT_ID_DS_DROP_TO_DISABLED_GEM:
+                break;
+            case BCMOLT_GPON_IWF_STAT_ID_NEW_MAC_DISCOVERED:
+                break;
+            case BCMOLT_GPON_IWF_STAT_ID_MOVE_EVENT:
+                break;
+            case BCMOLT_GPON_IWF_STAT_ID_NEW_MAC_DROP_DUE_TO_FIFO_FULL:
+                break;
+            default:
+                *failed_prop = BCMOLT_GPON_IWF_STAT_ALARM_CLEARED_ID_STAT;
+                return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_gpon_iwf_stat_alarm_raised_data_set_default(bcmolt_gpon_iwf_stat_alarm_raised_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_STAT_ALARM_RAISED_ID_STAT)) != 0)
+    {
+        this->stat = BCMOLT_GPON_IWF_STAT_ID_DS_HIT_EVENT;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_iwf_stat_alarm_raised_data_pack(const bcmolt_gpon_iwf_stat_alarm_raised_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_STAT_ALARM_RAISED_ID_STAT)) != 0)
+    {
+        if (!bcmolt_gpon_iwf_stat_id_pack(this->stat, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_gpon_iwf_stat_alarm_raised_data_get_packed_length(const bcmolt_gpon_iwf_stat_alarm_raised_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_STAT_ALARM_RAISED_ID_STAT)) != 0)
+    {
+        count += 2;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_iwf_stat_alarm_raised_data_unpack(bcmolt_gpon_iwf_stat_alarm_raised_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_STAT_ALARM_RAISED_ID_STAT)) != 0)
+    {
+        if (!bcmolt_gpon_iwf_stat_id_unpack(&this->stat, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_iwf_stat_alarm_raised_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_STAT_ALARM_RAISED_ID_STAT)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 2))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_iwf_stat_alarm_raised_data_bounds_check(const bcmolt_gpon_iwf_stat_alarm_raised_data *this, bcmolt_presence_mask fields_present, bcmolt_gpon_iwf_stat_alarm_raised_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_STAT_ALARM_RAISED_ID_STAT)) != 0)
+    {
+        switch (this->stat)
+        {
+            case BCMOLT_GPON_IWF_STAT_ID_DS_HIT_EVENT:
+                break;
+            case BCMOLT_GPON_IWF_STAT_ID_DS_MISS_EVENT:
+                break;
+            case BCMOLT_GPON_IWF_STAT_ID_DS_DROP_DUE_TO_MISS_EVENT:
+                break;
+            case BCMOLT_GPON_IWF_STAT_ID_DS_DROP_DUE_TO_HIT_EVENT:
+                break;
+            case BCMOLT_GPON_IWF_STAT_ID_DS_DROP_TO_DISABLED_GEM:
+                break;
+            case BCMOLT_GPON_IWF_STAT_ID_NEW_MAC_DISCOVERED:
+                break;
+            case BCMOLT_GPON_IWF_STAT_ID_MOVE_EVENT:
+                break;
+            case BCMOLT_GPON_IWF_STAT_ID_NEW_MAC_DROP_DUE_TO_FIFO_FULL:
+                break;
+            default:
+                *failed_prop = BCMOLT_GPON_IWF_STAT_ALARM_RAISED_ID_STAT;
+                return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_gpon_iwf_auto_cfg_data_set_default(bcmolt_gpon_iwf_auto_cfg_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_AUTO_CFG_ID_FLUSH_MAC_TABLE_COMPLETED)) != 0)
+    {
+        this->flush_mac_table_completed = BCMOS_FALSE;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_AUTO_CFG_ID_SCAN_MAC_TABLE_COMPLETED)) != 0)
+    {
+        this->scan_mac_table_completed = BCMOS_FALSE;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_AUTO_CFG_ID_STAT_ALARM_CLEARED)) != 0)
+    {
+        this->stat_alarm_cleared = BCMOS_FALSE;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_AUTO_CFG_ID_STAT_ALARM_RAISED)) != 0)
+    {
+        this->stat_alarm_raised = BCMOS_FALSE;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_iwf_auto_cfg_data_pack(const bcmolt_gpon_iwf_auto_cfg_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_AUTO_CFG_ID_FLUSH_MAC_TABLE_COMPLETED)) != 0)
+    {
+        if (!bcmolt_buf_write_bool(buf, this->flush_mac_table_completed))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_AUTO_CFG_ID_SCAN_MAC_TABLE_COMPLETED)) != 0)
+    {
+        if (!bcmolt_buf_write_bool(buf, this->scan_mac_table_completed))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_AUTO_CFG_ID_STAT_ALARM_CLEARED)) != 0)
+    {
+        if (!bcmolt_buf_write_bool(buf, this->stat_alarm_cleared))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_AUTO_CFG_ID_STAT_ALARM_RAISED)) != 0)
+    {
+        if (!bcmolt_buf_write_bool(buf, this->stat_alarm_raised))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_gpon_iwf_auto_cfg_data_get_packed_length(const bcmolt_gpon_iwf_auto_cfg_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_AUTO_CFG_ID_FLUSH_MAC_TABLE_COMPLETED)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_AUTO_CFG_ID_SCAN_MAC_TABLE_COMPLETED)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_AUTO_CFG_ID_STAT_ALARM_CLEARED)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_AUTO_CFG_ID_STAT_ALARM_RAISED)) != 0)
+    {
+        count += 1;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_iwf_auto_cfg_data_unpack(bcmolt_gpon_iwf_auto_cfg_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_AUTO_CFG_ID_FLUSH_MAC_TABLE_COMPLETED)) != 0)
+    {
+        if (!bcmolt_buf_read_bool(buf, &this->flush_mac_table_completed))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_AUTO_CFG_ID_SCAN_MAC_TABLE_COMPLETED)) != 0)
+    {
+        if (!bcmolt_buf_read_bool(buf, &this->scan_mac_table_completed))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_AUTO_CFG_ID_STAT_ALARM_CLEARED)) != 0)
+    {
+        if (!bcmolt_buf_read_bool(buf, &this->stat_alarm_cleared))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_AUTO_CFG_ID_STAT_ALARM_RAISED)) != 0)
+    {
+        if (!bcmolt_buf_read_bool(buf, &this->stat_alarm_raised))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_iwf_auto_cfg_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_AUTO_CFG_ID_FLUSH_MAC_TABLE_COMPLETED)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_AUTO_CFG_ID_SCAN_MAC_TABLE_COMPLETED)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_AUTO_CFG_ID_STAT_ALARM_CLEARED)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_AUTO_CFG_ID_STAT_ALARM_RAISED)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_iwf_auto_cfg_data_bounds_check(const bcmolt_gpon_iwf_auto_cfg_data *this, bcmolt_presence_mask fields_present, bcmolt_gpon_iwf_auto_cfg_id *failed_prop)
+{
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_gpon_iwf_flush_mac_table_data_set_default(bcmolt_gpon_iwf_flush_mac_table_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_FLUSH_MAC_TABLE_ID_CONTROL)) != 0)
+    {
+        this->control = BCMOLT_FLUSH_MAC_TABLE_OPTION_ALL;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_FLUSH_MAC_TABLE_ID_VID)) != 0)
+    {
+        this->vid = (bcmolt_vlan_id) 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_FLUSH_MAC_TABLE_ID_FLOW_ID)) != 0)
+    {
+        this->flow_id = (bcmolt_flow_id) 0;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_iwf_flush_mac_table_data_pack(const bcmolt_gpon_iwf_flush_mac_table_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_FLUSH_MAC_TABLE_ID_CONTROL)) != 0)
+    {
+        if (!bcmolt_flush_mac_table_option_pack(this->control, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_FLUSH_MAC_TABLE_ID_VID)) != 0)
+    {
+        if (!bcmolt_buf_write_u16(buf, (uint16_t) this->vid))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_FLUSH_MAC_TABLE_ID_FLOW_ID)) != 0)
+    {
+        if (!bcmolt_buf_write_u16(buf, (uint16_t) this->flow_id))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_gpon_iwf_flush_mac_table_data_get_packed_length(const bcmolt_gpon_iwf_flush_mac_table_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_FLUSH_MAC_TABLE_ID_CONTROL)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_FLUSH_MAC_TABLE_ID_VID)) != 0)
+    {
+        count += 2;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_FLUSH_MAC_TABLE_ID_FLOW_ID)) != 0)
+    {
+        count += 2;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_iwf_flush_mac_table_data_unpack(bcmolt_gpon_iwf_flush_mac_table_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_FLUSH_MAC_TABLE_ID_CONTROL)) != 0)
+    {
+        if (!bcmolt_flush_mac_table_option_unpack(&this->control, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_FLUSH_MAC_TABLE_ID_VID)) != 0)
+    {
+        if (!bcmolt_buf_read_u16(buf, (uint16_t *) &this->vid))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_FLUSH_MAC_TABLE_ID_FLOW_ID)) != 0)
+    {
+        if (!bcmolt_buf_read_u16(buf, (uint16_t *) &this->flow_id))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_iwf_flush_mac_table_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_FLUSH_MAC_TABLE_ID_CONTROL)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_FLUSH_MAC_TABLE_ID_VID)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 2))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_FLUSH_MAC_TABLE_ID_FLOW_ID)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 2))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_iwf_flush_mac_table_data_bounds_check(const bcmolt_gpon_iwf_flush_mac_table_data *this, bcmolt_presence_mask fields_present, bcmolt_gpon_iwf_flush_mac_table_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_FLUSH_MAC_TABLE_ID_CONTROL)) != 0)
+    {
+        switch (this->control)
+        {
+            case BCMOLT_FLUSH_MAC_TABLE_OPTION_ALL:
+                break;
+            case BCMOLT_FLUSH_MAC_TABLE_OPTION_PER_VID:
+                break;
+            case BCMOLT_FLUSH_MAC_TABLE_OPTION_PER_FLOW:
+                break;
+            case BCMOLT_FLUSH_MAC_TABLE_OPTION_VID_PLUS_FLOW:
+                break;
+            default:
+                *failed_prop = BCMOLT_GPON_IWF_FLUSH_MAC_TABLE_ID_CONTROL;
+                return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_FLUSH_MAC_TABLE_ID_VID)) != 0)
+    {
+        if (this->vid > (bcmolt_vlan_id) 4095)
+        {
+            *failed_prop = BCMOLT_GPON_IWF_FLUSH_MAC_TABLE_ID_VID;
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_FLUSH_MAC_TABLE_ID_FLOW_ID)) != 0)
+    {
+        if (this->flow_id > (bcmolt_flow_id) 4095)
+        {
+            *failed_prop = BCMOLT_GPON_IWF_FLUSH_MAC_TABLE_ID_FLOW_ID;
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_gpon_iwf_scan_mac_table_data_set_default(bcmolt_gpon_iwf_scan_mac_table_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_SCAN_MAC_TABLE_ID_MAC_ADDRESS)) != 0)
+    {
+        bcmos_mac_address_init(&this->mac_address);
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_iwf_scan_mac_table_data_pack(const bcmolt_gpon_iwf_scan_mac_table_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_SCAN_MAC_TABLE_ID_MAC_ADDRESS)) != 0)
+    {
+        if (!bcmolt_buf_write_mac_address(buf, this->mac_address))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_gpon_iwf_scan_mac_table_data_get_packed_length(const bcmolt_gpon_iwf_scan_mac_table_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_SCAN_MAC_TABLE_ID_MAC_ADDRESS)) != 0)
+    {
+        count += 6;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_iwf_scan_mac_table_data_unpack(bcmolt_gpon_iwf_scan_mac_table_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_SCAN_MAC_TABLE_ID_MAC_ADDRESS)) != 0)
+    {
+        if (!bcmolt_buf_read_mac_address(buf, &this->mac_address))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_iwf_scan_mac_table_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_SCAN_MAC_TABLE_ID_MAC_ADDRESS)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 6))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_iwf_scan_mac_table_data_bounds_check(const bcmolt_gpon_iwf_scan_mac_table_data *this, bcmolt_presence_mask fields_present, bcmolt_gpon_iwf_scan_mac_table_id *failed_prop)
+{
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_gpon_iwf_ds_egress_flow_key_set_default(bcmolt_gpon_iwf_ds_egress_flow_key *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_DS_EGRESS_FLOW_KEY_ID_PON_NI)) != 0)
+    {
+        this->pon_ni = (bcmolt_gpon_ni) 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_DS_EGRESS_FLOW_KEY_ID_FLOW_ID)) != 0)
+    {
+        this->flow_id = (bcmolt_flow_id) 0;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_iwf_ds_egress_flow_key_pack(const bcmolt_gpon_iwf_ds_egress_flow_key *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_DS_EGRESS_FLOW_KEY_ID_PON_NI)) != 0)
+    {
+        if (!bcmolt_buf_write_u8(buf, (uint8_t) this->pon_ni))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_DS_EGRESS_FLOW_KEY_ID_FLOW_ID)) != 0)
+    {
+        if (!bcmolt_buf_write_u16(buf, (uint16_t) this->flow_id))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_gpon_iwf_ds_egress_flow_key_get_packed_length(const bcmolt_gpon_iwf_ds_egress_flow_key *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_DS_EGRESS_FLOW_KEY_ID_PON_NI)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_DS_EGRESS_FLOW_KEY_ID_FLOW_ID)) != 0)
+    {
+        count += 2;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_iwf_ds_egress_flow_key_unpack(bcmolt_gpon_iwf_ds_egress_flow_key *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_DS_EGRESS_FLOW_KEY_ID_PON_NI)) != 0)
+    {
+        if (!bcmolt_buf_read_u8(buf, (uint8_t *) &this->pon_ni))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_DS_EGRESS_FLOW_KEY_ID_FLOW_ID)) != 0)
+    {
+        if (!bcmolt_buf_read_u16(buf, (uint16_t *) &this->flow_id))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_iwf_ds_egress_flow_key_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_DS_EGRESS_FLOW_KEY_ID_PON_NI)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_DS_EGRESS_FLOW_KEY_ID_FLOW_ID)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 2))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_iwf_ds_egress_flow_key_bounds_check(const bcmolt_gpon_iwf_ds_egress_flow_key *this, bcmolt_presence_mask fields_present, bcmolt_gpon_iwf_ds_egress_flow_key_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_DS_EGRESS_FLOW_KEY_ID_PON_NI)) != 0)
+    {
+        if (this->pon_ni > (bcmolt_gpon_ni) 15)
+        {
+            *failed_prop = BCMOLT_GPON_IWF_DS_EGRESS_FLOW_KEY_ID_PON_NI;
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_DS_EGRESS_FLOW_KEY_ID_FLOW_ID)) != 0)
+    {
+        if (this->flow_id > (bcmolt_flow_id) 4095)
+        {
+            *failed_prop = BCMOLT_GPON_IWF_DS_EGRESS_FLOW_KEY_ID_FLOW_ID;
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_gpon_iwf_ds_egress_flow_cfg_data_set_default(bcmolt_gpon_iwf_ds_egress_flow_cfg_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_DS_EGRESS_FLOW_CFG_ID_GEM_PORT)) != 0)
+    {
+        this->gem_port = (bcmolt_gpon_gem_id) 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_DS_EGRESS_FLOW_CFG_ID_PBIT_CONTROL)) != 0)
+    {
+        this->pbit_control = BCMOS_FALSE;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_iwf_ds_egress_flow_cfg_data_pack(const bcmolt_gpon_iwf_ds_egress_flow_cfg_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_DS_EGRESS_FLOW_CFG_ID_GEM_PORT)) != 0)
+    {
+        if (!bcmolt_buf_write_u16(buf, (uint16_t) this->gem_port))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_DS_EGRESS_FLOW_CFG_ID_PBIT_CONTROL)) != 0)
+    {
+        if (!bcmolt_buf_write_bool(buf, this->pbit_control))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_gpon_iwf_ds_egress_flow_cfg_data_get_packed_length(const bcmolt_gpon_iwf_ds_egress_flow_cfg_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_DS_EGRESS_FLOW_CFG_ID_GEM_PORT)) != 0)
+    {
+        count += 2;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_DS_EGRESS_FLOW_CFG_ID_PBIT_CONTROL)) != 0)
+    {
+        count += 1;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_iwf_ds_egress_flow_cfg_data_unpack(bcmolt_gpon_iwf_ds_egress_flow_cfg_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_DS_EGRESS_FLOW_CFG_ID_GEM_PORT)) != 0)
+    {
+        if (!bcmolt_buf_read_u16(buf, (uint16_t *) &this->gem_port))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_DS_EGRESS_FLOW_CFG_ID_PBIT_CONTROL)) != 0)
+    {
+        if (!bcmolt_buf_read_bool(buf, &this->pbit_control))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_iwf_ds_egress_flow_cfg_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_DS_EGRESS_FLOW_CFG_ID_GEM_PORT)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 2))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_DS_EGRESS_FLOW_CFG_ID_PBIT_CONTROL)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_iwf_ds_egress_flow_cfg_data_bounds_check(const bcmolt_gpon_iwf_ds_egress_flow_cfg_data *this, bcmolt_presence_mask fields_present, bcmolt_gpon_iwf_ds_egress_flow_cfg_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_DS_EGRESS_FLOW_CFG_ID_GEM_PORT)) != 0)
+    {
+        if (this->gem_port > (bcmolt_gpon_gem_id) 4095)
+        {
+            *failed_prop = BCMOLT_GPON_IWF_DS_EGRESS_FLOW_CFG_ID_GEM_PORT;
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_gpon_iwf_ds_ingress_flow_key_set_default(bcmolt_gpon_iwf_ds_ingress_flow_key *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_DS_INGRESS_FLOW_KEY_ID_PON_NI)) != 0)
+    {
+        this->pon_ni = (bcmolt_gpon_ni) 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_DS_INGRESS_FLOW_KEY_ID_VLAN_ID)) != 0)
+    {
+        this->vlan_id = (bcmolt_vlan_id) 0;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_iwf_ds_ingress_flow_key_pack(const bcmolt_gpon_iwf_ds_ingress_flow_key *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_DS_INGRESS_FLOW_KEY_ID_PON_NI)) != 0)
+    {
+        if (!bcmolt_buf_write_u8(buf, (uint8_t) this->pon_ni))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_DS_INGRESS_FLOW_KEY_ID_VLAN_ID)) != 0)
+    {
+        if (!bcmolt_buf_write_u16(buf, (uint16_t) this->vlan_id))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_gpon_iwf_ds_ingress_flow_key_get_packed_length(const bcmolt_gpon_iwf_ds_ingress_flow_key *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_DS_INGRESS_FLOW_KEY_ID_PON_NI)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_DS_INGRESS_FLOW_KEY_ID_VLAN_ID)) != 0)
+    {
+        count += 2;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_iwf_ds_ingress_flow_key_unpack(bcmolt_gpon_iwf_ds_ingress_flow_key *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_DS_INGRESS_FLOW_KEY_ID_PON_NI)) != 0)
+    {
+        if (!bcmolt_buf_read_u8(buf, (uint8_t *) &this->pon_ni))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_DS_INGRESS_FLOW_KEY_ID_VLAN_ID)) != 0)
+    {
+        if (!bcmolt_buf_read_u16(buf, (uint16_t *) &this->vlan_id))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_iwf_ds_ingress_flow_key_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_DS_INGRESS_FLOW_KEY_ID_PON_NI)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_DS_INGRESS_FLOW_KEY_ID_VLAN_ID)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 2))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_iwf_ds_ingress_flow_key_bounds_check(const bcmolt_gpon_iwf_ds_ingress_flow_key *this, bcmolt_presence_mask fields_present, bcmolt_gpon_iwf_ds_ingress_flow_key_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_DS_INGRESS_FLOW_KEY_ID_PON_NI)) != 0)
+    {
+        if (this->pon_ni > (bcmolt_gpon_ni) 15)
+        {
+            *failed_prop = BCMOLT_GPON_IWF_DS_INGRESS_FLOW_KEY_ID_PON_NI;
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_DS_INGRESS_FLOW_KEY_ID_VLAN_ID)) != 0)
+    {
+        if (this->vlan_id > (bcmolt_vlan_id) 4095)
+        {
+            *failed_prop = BCMOLT_GPON_IWF_DS_INGRESS_FLOW_KEY_ID_VLAN_ID;
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_gpon_iwf_ds_ingress_flow_cfg_data_set_default(bcmolt_gpon_iwf_ds_ingress_flow_cfg_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_DS_INGRESS_FLOW_CFG_ID_MAPPING_METHOD)) != 0)
+    {
+        this->mapping_method = BCMOLT_VLAN_TO_FLOW_MAPPING_METHOD_VID;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_DS_INGRESS_FLOW_CFG_ID_MAPPING_TAG)) != 0)
+    {
+        this->mapping_tag = BCMOLT_MAPPING_TAG_METHOD_OUTER_VID;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_DS_INGRESS_FLOW_CFG_ID_VLAN_ACTION)) != 0)
+    {
+        this->vlan_action = BCMOLT_DS_VLAN_ACTION_REMOVE;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_iwf_ds_ingress_flow_cfg_data_pack(const bcmolt_gpon_iwf_ds_ingress_flow_cfg_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_DS_INGRESS_FLOW_CFG_ID_MAPPING_METHOD)) != 0)
+    {
+        if (!bcmolt_vlan_to_flow_mapping_method_pack(this->mapping_method, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_DS_INGRESS_FLOW_CFG_ID_MAPPING_TAG)) != 0)
+    {
+        if (!bcmolt_mapping_tag_method_pack(this->mapping_tag, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_DS_INGRESS_FLOW_CFG_ID_VLAN_ACTION)) != 0)
+    {
+        if (!bcmolt_ds_vlan_action_pack(this->vlan_action, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_gpon_iwf_ds_ingress_flow_cfg_data_get_packed_length(const bcmolt_gpon_iwf_ds_ingress_flow_cfg_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_DS_INGRESS_FLOW_CFG_ID_MAPPING_METHOD)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_DS_INGRESS_FLOW_CFG_ID_MAPPING_TAG)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_DS_INGRESS_FLOW_CFG_ID_VLAN_ACTION)) != 0)
+    {
+        count += 1;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_iwf_ds_ingress_flow_cfg_data_unpack(bcmolt_gpon_iwf_ds_ingress_flow_cfg_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_DS_INGRESS_FLOW_CFG_ID_MAPPING_METHOD)) != 0)
+    {
+        if (!bcmolt_vlan_to_flow_mapping_method_unpack(&this->mapping_method, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_DS_INGRESS_FLOW_CFG_ID_MAPPING_TAG)) != 0)
+    {
+        if (!bcmolt_mapping_tag_method_unpack(&this->mapping_tag, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_DS_INGRESS_FLOW_CFG_ID_VLAN_ACTION)) != 0)
+    {
+        if (!bcmolt_ds_vlan_action_unpack(&this->vlan_action, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_iwf_ds_ingress_flow_cfg_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_DS_INGRESS_FLOW_CFG_ID_MAPPING_METHOD)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_DS_INGRESS_FLOW_CFG_ID_MAPPING_TAG)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_DS_INGRESS_FLOW_CFG_ID_VLAN_ACTION)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_iwf_ds_ingress_flow_cfg_data_bounds_check(const bcmolt_gpon_iwf_ds_ingress_flow_cfg_data *this, bcmolt_presence_mask fields_present, bcmolt_gpon_iwf_ds_ingress_flow_cfg_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_DS_INGRESS_FLOW_CFG_ID_MAPPING_METHOD)) != 0)
+    {
+        switch (this->mapping_method)
+        {
+            case BCMOLT_VLAN_TO_FLOW_MAPPING_METHOD_VID:
+                break;
+            case BCMOLT_VLAN_TO_FLOW_MAPPING_METHOD_MACPLUSVID:
+                break;
+            default:
+                *failed_prop = BCMOLT_GPON_IWF_DS_INGRESS_FLOW_CFG_ID_MAPPING_METHOD;
+                return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_DS_INGRESS_FLOW_CFG_ID_MAPPING_TAG)) != 0)
+    {
+        switch (this->mapping_tag)
+        {
+            case BCMOLT_MAPPING_TAG_METHOD_OUTER_VID:
+                break;
+            case BCMOLT_MAPPING_TAG_METHOD_INNER_VID:
+                break;
+            default:
+                *failed_prop = BCMOLT_GPON_IWF_DS_INGRESS_FLOW_CFG_ID_MAPPING_TAG;
+                return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_DS_INGRESS_FLOW_CFG_ID_VLAN_ACTION)) != 0)
+    {
+        switch (this->vlan_action)
+        {
+            case BCMOLT_DS_VLAN_ACTION_REMOVE:
+                break;
+            case BCMOLT_DS_VLAN_ACTION_TRANSPARENT:
+                break;
+            default:
+                *failed_prop = BCMOLT_GPON_IWF_DS_INGRESS_FLOW_CFG_ID_VLAN_ACTION;
+                return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_gpon_iwf_mac_table_key_set_default(bcmolt_gpon_iwf_mac_table_key *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_MAC_TABLE_KEY_ID_PON_NI)) != 0)
+    {
+        this->pon_ni = (bcmolt_gpon_ni) 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_MAC_TABLE_KEY_ID_MAC_ADDRESS)) != 0)
+    {
+        bcmos_mac_address_init(&this->mac_address);
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_MAC_TABLE_KEY_ID_VLAN)) != 0)
+    {
+        this->vlan = (bcmolt_vlan_id) 0;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_iwf_mac_table_key_pack(const bcmolt_gpon_iwf_mac_table_key *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_MAC_TABLE_KEY_ID_PON_NI)) != 0)
+    {
+        if (!bcmolt_buf_write_u8(buf, (uint8_t) this->pon_ni))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_MAC_TABLE_KEY_ID_MAC_ADDRESS)) != 0)
+    {
+        if (!bcmolt_buf_write_mac_address(buf, this->mac_address))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_MAC_TABLE_KEY_ID_VLAN)) != 0)
+    {
+        if (!bcmolt_buf_write_u16(buf, (uint16_t) this->vlan))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_gpon_iwf_mac_table_key_get_packed_length(const bcmolt_gpon_iwf_mac_table_key *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_MAC_TABLE_KEY_ID_PON_NI)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_MAC_TABLE_KEY_ID_MAC_ADDRESS)) != 0)
+    {
+        count += 6;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_MAC_TABLE_KEY_ID_VLAN)) != 0)
+    {
+        count += 2;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_iwf_mac_table_key_unpack(bcmolt_gpon_iwf_mac_table_key *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_MAC_TABLE_KEY_ID_PON_NI)) != 0)
+    {
+        if (!bcmolt_buf_read_u8(buf, (uint8_t *) &this->pon_ni))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_MAC_TABLE_KEY_ID_MAC_ADDRESS)) != 0)
+    {
+        if (!bcmolt_buf_read_mac_address(buf, &this->mac_address))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_MAC_TABLE_KEY_ID_VLAN)) != 0)
+    {
+        if (!bcmolt_buf_read_u16(buf, (uint16_t *) &this->vlan))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_iwf_mac_table_key_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_MAC_TABLE_KEY_ID_PON_NI)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_MAC_TABLE_KEY_ID_MAC_ADDRESS)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 6))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_MAC_TABLE_KEY_ID_VLAN)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 2))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_iwf_mac_table_key_bounds_check(const bcmolt_gpon_iwf_mac_table_key *this, bcmolt_presence_mask fields_present, bcmolt_gpon_iwf_mac_table_key_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_MAC_TABLE_KEY_ID_PON_NI)) != 0)
+    {
+        if (this->pon_ni > (bcmolt_gpon_ni) 15)
+        {
+            *failed_prop = BCMOLT_GPON_IWF_MAC_TABLE_KEY_ID_PON_NI;
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_gpon_iwf_mac_table_cfg_data_set_default(bcmolt_gpon_iwf_mac_table_cfg_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_MAC_TABLE_CFG_ID_FLOW_ID)) != 0)
+    {
+        this->flow_id = (bcmolt_flow_id) 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_MAC_TABLE_CFG_ID_STAT)) != 0)
+    {
+        this->stat = BCMOS_FALSE;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_MAC_TABLE_CFG_ID_GEM_PORT_ID)) != 0)
+    {
+        this->gem_port_id = (bcmolt_gpon_gem_id) 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_MAC_TABLE_CFG_ID_ONU_ID)) != 0)
+    {
+        this->onu_id = (bcmolt_gpon_onu_id) 0;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_iwf_mac_table_cfg_data_pack(const bcmolt_gpon_iwf_mac_table_cfg_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_MAC_TABLE_CFG_ID_FLOW_ID)) != 0)
+    {
+        if (!bcmolt_buf_write_u16(buf, (uint16_t) this->flow_id))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_MAC_TABLE_CFG_ID_STAT)) != 0)
+    {
+        if (!bcmolt_buf_write_bool(buf, this->stat))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_MAC_TABLE_CFG_ID_GEM_PORT_ID)) != 0)
+    {
+        if (!bcmolt_buf_write_u16(buf, (uint16_t) this->gem_port_id))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_MAC_TABLE_CFG_ID_ONU_ID)) != 0)
+    {
+        if (!bcmolt_buf_write_u16(buf, (uint16_t) this->onu_id))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_gpon_iwf_mac_table_cfg_data_get_packed_length(const bcmolt_gpon_iwf_mac_table_cfg_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_MAC_TABLE_CFG_ID_FLOW_ID)) != 0)
+    {
+        count += 2;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_MAC_TABLE_CFG_ID_STAT)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_MAC_TABLE_CFG_ID_GEM_PORT_ID)) != 0)
+    {
+        count += 2;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_MAC_TABLE_CFG_ID_ONU_ID)) != 0)
+    {
+        count += 2;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_iwf_mac_table_cfg_data_unpack(bcmolt_gpon_iwf_mac_table_cfg_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_MAC_TABLE_CFG_ID_FLOW_ID)) != 0)
+    {
+        if (!bcmolt_buf_read_u16(buf, (uint16_t *) &this->flow_id))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_MAC_TABLE_CFG_ID_STAT)) != 0)
+    {
+        if (!bcmolt_buf_read_bool(buf, &this->stat))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_MAC_TABLE_CFG_ID_GEM_PORT_ID)) != 0)
+    {
+        if (!bcmolt_buf_read_u16(buf, (uint16_t *) &this->gem_port_id))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_MAC_TABLE_CFG_ID_ONU_ID)) != 0)
+    {
+        if (!bcmolt_buf_read_u16(buf, (uint16_t *) &this->onu_id))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_iwf_mac_table_cfg_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_MAC_TABLE_CFG_ID_FLOW_ID)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 2))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_MAC_TABLE_CFG_ID_STAT)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_MAC_TABLE_CFG_ID_GEM_PORT_ID)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 2))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_MAC_TABLE_CFG_ID_ONU_ID)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 2))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_iwf_mac_table_cfg_data_bounds_check(const bcmolt_gpon_iwf_mac_table_cfg_data *this, bcmolt_presence_mask fields_present, bcmolt_gpon_iwf_mac_table_cfg_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_MAC_TABLE_CFG_ID_FLOW_ID)) != 0)
+    {
+        if (this->flow_id > (bcmolt_flow_id) 4095)
+        {
+            *failed_prop = BCMOLT_GPON_IWF_MAC_TABLE_CFG_ID_FLOW_ID;
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_MAC_TABLE_CFG_ID_GEM_PORT_ID)) != 0)
+    {
+        if (this->gem_port_id > (bcmolt_gpon_gem_id) 4095)
+        {
+            *failed_prop = BCMOLT_GPON_IWF_MAC_TABLE_CFG_ID_GEM_PORT_ID;
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_MAC_TABLE_CFG_ID_ONU_ID)) != 0)
+    {
+        if (this->onu_id > (bcmolt_gpon_onu_id) 127)
+        {
+            *failed_prop = BCMOLT_GPON_IWF_MAC_TABLE_CFG_ID_ONU_ID;
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_gpon_iwf_mac_table_mac_dropped_data_set_default(bcmolt_gpon_iwf_mac_table_mac_dropped_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_MAC_TABLE_MAC_DROPPED_ID_FLOW_ID)) != 0)
+    {
+        this->flow_id = (bcmolt_flow_id) 0;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_iwf_mac_table_mac_dropped_data_pack(const bcmolt_gpon_iwf_mac_table_mac_dropped_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_MAC_TABLE_MAC_DROPPED_ID_FLOW_ID)) != 0)
+    {
+        if (!bcmolt_buf_write_u16(buf, (uint16_t) this->flow_id))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_gpon_iwf_mac_table_mac_dropped_data_get_packed_length(const bcmolt_gpon_iwf_mac_table_mac_dropped_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_MAC_TABLE_MAC_DROPPED_ID_FLOW_ID)) != 0)
+    {
+        count += 2;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_iwf_mac_table_mac_dropped_data_unpack(bcmolt_gpon_iwf_mac_table_mac_dropped_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_MAC_TABLE_MAC_DROPPED_ID_FLOW_ID)) != 0)
+    {
+        if (!bcmolt_buf_read_u16(buf, (uint16_t *) &this->flow_id))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_iwf_mac_table_mac_dropped_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_MAC_TABLE_MAC_DROPPED_ID_FLOW_ID)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 2))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_iwf_mac_table_mac_dropped_data_bounds_check(const bcmolt_gpon_iwf_mac_table_mac_dropped_data *this, bcmolt_presence_mask fields_present, bcmolt_gpon_iwf_mac_table_mac_dropped_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_MAC_TABLE_MAC_DROPPED_ID_FLOW_ID)) != 0)
+    {
+        if (this->flow_id > (bcmolt_flow_id) 4095)
+        {
+            *failed_prop = BCMOLT_GPON_IWF_MAC_TABLE_MAC_DROPPED_ID_FLOW_ID;
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_gpon_iwf_mac_table_mac_move_data_set_default(bcmolt_gpon_iwf_mac_table_mac_move_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_MAC_TABLE_MAC_MOVE_ID_OLD_FLOW_ID)) != 0)
+    {
+        this->old_flow_id = (bcmolt_flow_id) 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_MAC_TABLE_MAC_MOVE_ID_NEW_FLOW_ID)) != 0)
+    {
+        this->new_flow_id = (bcmolt_flow_id) 0;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_iwf_mac_table_mac_move_data_pack(const bcmolt_gpon_iwf_mac_table_mac_move_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_MAC_TABLE_MAC_MOVE_ID_OLD_FLOW_ID)) != 0)
+    {
+        if (!bcmolt_buf_write_u16(buf, (uint16_t) this->old_flow_id))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_MAC_TABLE_MAC_MOVE_ID_NEW_FLOW_ID)) != 0)
+    {
+        if (!bcmolt_buf_write_u16(buf, (uint16_t) this->new_flow_id))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_gpon_iwf_mac_table_mac_move_data_get_packed_length(const bcmolt_gpon_iwf_mac_table_mac_move_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_MAC_TABLE_MAC_MOVE_ID_OLD_FLOW_ID)) != 0)
+    {
+        count += 2;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_MAC_TABLE_MAC_MOVE_ID_NEW_FLOW_ID)) != 0)
+    {
+        count += 2;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_iwf_mac_table_mac_move_data_unpack(bcmolt_gpon_iwf_mac_table_mac_move_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_MAC_TABLE_MAC_MOVE_ID_OLD_FLOW_ID)) != 0)
+    {
+        if (!bcmolt_buf_read_u16(buf, (uint16_t *) &this->old_flow_id))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_MAC_TABLE_MAC_MOVE_ID_NEW_FLOW_ID)) != 0)
+    {
+        if (!bcmolt_buf_read_u16(buf, (uint16_t *) &this->new_flow_id))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_iwf_mac_table_mac_move_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_MAC_TABLE_MAC_MOVE_ID_OLD_FLOW_ID)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 2))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_MAC_TABLE_MAC_MOVE_ID_NEW_FLOW_ID)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 2))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_iwf_mac_table_mac_move_data_bounds_check(const bcmolt_gpon_iwf_mac_table_mac_move_data *this, bcmolt_presence_mask fields_present, bcmolt_gpon_iwf_mac_table_mac_move_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_MAC_TABLE_MAC_MOVE_ID_OLD_FLOW_ID)) != 0)
+    {
+        if (this->old_flow_id > (bcmolt_flow_id) 4095)
+        {
+            *failed_prop = BCMOLT_GPON_IWF_MAC_TABLE_MAC_MOVE_ID_OLD_FLOW_ID;
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_MAC_TABLE_MAC_MOVE_ID_NEW_FLOW_ID)) != 0)
+    {
+        if (this->new_flow_id > (bcmolt_flow_id) 4095)
+        {
+            *failed_prop = BCMOLT_GPON_IWF_MAC_TABLE_MAC_MOVE_ID_NEW_FLOW_ID;
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_gpon_iwf_mac_table_new_mac_data_set_default(bcmolt_gpon_iwf_mac_table_new_mac_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_MAC_TABLE_NEW_MAC_ID_FLOW_ID)) != 0)
+    {
+        this->flow_id = (bcmolt_flow_id) 0;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_iwf_mac_table_new_mac_data_pack(const bcmolt_gpon_iwf_mac_table_new_mac_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_MAC_TABLE_NEW_MAC_ID_FLOW_ID)) != 0)
+    {
+        if (!bcmolt_buf_write_u16(buf, (uint16_t) this->flow_id))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_gpon_iwf_mac_table_new_mac_data_get_packed_length(const bcmolt_gpon_iwf_mac_table_new_mac_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_MAC_TABLE_NEW_MAC_ID_FLOW_ID)) != 0)
+    {
+        count += 2;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_iwf_mac_table_new_mac_data_unpack(bcmolt_gpon_iwf_mac_table_new_mac_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_MAC_TABLE_NEW_MAC_ID_FLOW_ID)) != 0)
+    {
+        if (!bcmolt_buf_read_u16(buf, (uint16_t *) &this->flow_id))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_iwf_mac_table_new_mac_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_MAC_TABLE_NEW_MAC_ID_FLOW_ID)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 2))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_iwf_mac_table_new_mac_data_bounds_check(const bcmolt_gpon_iwf_mac_table_new_mac_data *this, bcmolt_presence_mask fields_present, bcmolt_gpon_iwf_mac_table_new_mac_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_MAC_TABLE_NEW_MAC_ID_FLOW_ID)) != 0)
+    {
+        if (this->flow_id > (bcmolt_flow_id) 4095)
+        {
+            *failed_prop = BCMOLT_GPON_IWF_MAC_TABLE_NEW_MAC_ID_FLOW_ID;
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_gpon_iwf_mac_table_auto_cfg_data_set_default(bcmolt_gpon_iwf_mac_table_auto_cfg_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_MAC_TABLE_AUTO_CFG_ID_MAC_AGED)) != 0)
+    {
+        this->mac_aged = BCMOS_FALSE;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_MAC_TABLE_AUTO_CFG_ID_MAC_DROPPED)) != 0)
+    {
+        this->mac_dropped = BCMOS_FALSE;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_MAC_TABLE_AUTO_CFG_ID_MAC_MOVE)) != 0)
+    {
+        this->mac_move = BCMOS_FALSE;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_MAC_TABLE_AUTO_CFG_ID_NEW_MAC)) != 0)
+    {
+        this->new_mac = BCMOS_FALSE;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_iwf_mac_table_auto_cfg_data_pack(const bcmolt_gpon_iwf_mac_table_auto_cfg_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_MAC_TABLE_AUTO_CFG_ID_MAC_AGED)) != 0)
+    {
+        if (!bcmolt_buf_write_bool(buf, this->mac_aged))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_MAC_TABLE_AUTO_CFG_ID_MAC_DROPPED)) != 0)
+    {
+        if (!bcmolt_buf_write_bool(buf, this->mac_dropped))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_MAC_TABLE_AUTO_CFG_ID_MAC_MOVE)) != 0)
+    {
+        if (!bcmolt_buf_write_bool(buf, this->mac_move))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_MAC_TABLE_AUTO_CFG_ID_NEW_MAC)) != 0)
+    {
+        if (!bcmolt_buf_write_bool(buf, this->new_mac))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_gpon_iwf_mac_table_auto_cfg_data_get_packed_length(const bcmolt_gpon_iwf_mac_table_auto_cfg_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_MAC_TABLE_AUTO_CFG_ID_MAC_AGED)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_MAC_TABLE_AUTO_CFG_ID_MAC_DROPPED)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_MAC_TABLE_AUTO_CFG_ID_MAC_MOVE)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_MAC_TABLE_AUTO_CFG_ID_NEW_MAC)) != 0)
+    {
+        count += 1;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_iwf_mac_table_auto_cfg_data_unpack(bcmolt_gpon_iwf_mac_table_auto_cfg_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_MAC_TABLE_AUTO_CFG_ID_MAC_AGED)) != 0)
+    {
+        if (!bcmolt_buf_read_bool(buf, &this->mac_aged))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_MAC_TABLE_AUTO_CFG_ID_MAC_DROPPED)) != 0)
+    {
+        if (!bcmolt_buf_read_bool(buf, &this->mac_dropped))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_MAC_TABLE_AUTO_CFG_ID_MAC_MOVE)) != 0)
+    {
+        if (!bcmolt_buf_read_bool(buf, &this->mac_move))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_MAC_TABLE_AUTO_CFG_ID_NEW_MAC)) != 0)
+    {
+        if (!bcmolt_buf_read_bool(buf, &this->new_mac))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_iwf_mac_table_auto_cfg_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_MAC_TABLE_AUTO_CFG_ID_MAC_AGED)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_MAC_TABLE_AUTO_CFG_ID_MAC_DROPPED)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_MAC_TABLE_AUTO_CFG_ID_MAC_MOVE)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_MAC_TABLE_AUTO_CFG_ID_NEW_MAC)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_iwf_mac_table_auto_cfg_data_bounds_check(const bcmolt_gpon_iwf_mac_table_auto_cfg_data *this, bcmolt_presence_mask fields_present, bcmolt_gpon_iwf_mac_table_auto_cfg_id *failed_prop)
+{
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_gpon_iwf_us_flow_key_set_default(bcmolt_gpon_iwf_us_flow_key *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_US_FLOW_KEY_ID_PON_NI)) != 0)
+    {
+        this->pon_ni = (bcmolt_gpon_ni) 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_US_FLOW_KEY_ID_GEM_PORT_ID)) != 0)
+    {
+        this->gem_port_id = (bcmolt_gpon_gem_id) 0;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_iwf_us_flow_key_pack(const bcmolt_gpon_iwf_us_flow_key *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_US_FLOW_KEY_ID_PON_NI)) != 0)
+    {
+        if (!bcmolt_buf_write_u8(buf, (uint8_t) this->pon_ni))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_US_FLOW_KEY_ID_GEM_PORT_ID)) != 0)
+    {
+        if (!bcmolt_buf_write_u16(buf, (uint16_t) this->gem_port_id))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_gpon_iwf_us_flow_key_get_packed_length(const bcmolt_gpon_iwf_us_flow_key *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_US_FLOW_KEY_ID_PON_NI)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_US_FLOW_KEY_ID_GEM_PORT_ID)) != 0)
+    {
+        count += 2;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_iwf_us_flow_key_unpack(bcmolt_gpon_iwf_us_flow_key *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_US_FLOW_KEY_ID_PON_NI)) != 0)
+    {
+        if (!bcmolt_buf_read_u8(buf, (uint8_t *) &this->pon_ni))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_US_FLOW_KEY_ID_GEM_PORT_ID)) != 0)
+    {
+        if (!bcmolt_buf_read_u16(buf, (uint16_t *) &this->gem_port_id))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_iwf_us_flow_key_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_US_FLOW_KEY_ID_PON_NI)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_US_FLOW_KEY_ID_GEM_PORT_ID)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 2))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_iwf_us_flow_key_bounds_check(const bcmolt_gpon_iwf_us_flow_key *this, bcmolt_presence_mask fields_present, bcmolt_gpon_iwf_us_flow_key_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_US_FLOW_KEY_ID_PON_NI)) != 0)
+    {
+        if (this->pon_ni > (bcmolt_gpon_ni) 15)
+        {
+            *failed_prop = BCMOLT_GPON_IWF_US_FLOW_KEY_ID_PON_NI;
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_US_FLOW_KEY_ID_GEM_PORT_ID)) != 0)
+    {
+        if (this->gem_port_id > (bcmolt_gpon_gem_id) 4095)
+        {
+            *failed_prop = BCMOLT_GPON_IWF_US_FLOW_KEY_ID_GEM_PORT_ID;
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_gpon_iwf_us_flow_cfg_data_set_default(bcmolt_gpon_iwf_us_flow_cfg_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_US_FLOW_CFG_ID_FLOW_ID)) != 0)
+    {
+        this->flow_id = (bcmolt_flow_id) 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_US_FLOW_CFG_ID_MAC_LEARNING)) != 0)
+    {
+        this->mac_learning = BCMOS_FALSE;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_US_FLOW_CFG_ID_VLAN_ACTION)) != 0)
+    {
+        this->vlan_action = BCMOLT_US_VLAN_ACTION_ADD;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_US_FLOW_CFG_ID_VLAN_TAG)) != 0)
+    {
+        this->vlan_tag.vlan_id = (bcmolt_vlan_id) 0;
+        this->vlan_tag.pbit = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_US_FLOW_CFG_ID_TPID_INDEX)) != 0)
+    {
+        this->tpid_index = 0;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_iwf_us_flow_cfg_data_pack(const bcmolt_gpon_iwf_us_flow_cfg_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_US_FLOW_CFG_ID_FLOW_ID)) != 0)
+    {
+        if (!bcmolt_buf_write_u16(buf, (uint16_t) this->flow_id))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_US_FLOW_CFG_ID_MAC_LEARNING)) != 0)
+    {
+        if (!bcmolt_buf_write_bool(buf, this->mac_learning))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_US_FLOW_CFG_ID_VLAN_ACTION)) != 0)
+    {
+        if (!bcmolt_us_vlan_action_pack(this->vlan_action, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_US_FLOW_CFG_ID_VLAN_TAG)) != 0)
+    {
+        if (!bcmolt_vlan_tag_pack(&this->vlan_tag, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_US_FLOW_CFG_ID_TPID_INDEX)) != 0)
+    {
+        if (!bcmolt_buf_write_u8(buf, this->tpid_index))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_gpon_iwf_us_flow_cfg_data_get_packed_length(const bcmolt_gpon_iwf_us_flow_cfg_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_US_FLOW_CFG_ID_FLOW_ID)) != 0)
+    {
+        count += 2;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_US_FLOW_CFG_ID_MAC_LEARNING)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_US_FLOW_CFG_ID_VLAN_ACTION)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_US_FLOW_CFG_ID_VLAN_TAG)) != 0)
+    {
+        count += 3;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_US_FLOW_CFG_ID_TPID_INDEX)) != 0)
+    {
+        count += 1;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_iwf_us_flow_cfg_data_unpack(bcmolt_gpon_iwf_us_flow_cfg_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_US_FLOW_CFG_ID_FLOW_ID)) != 0)
+    {
+        if (!bcmolt_buf_read_u16(buf, (uint16_t *) &this->flow_id))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_US_FLOW_CFG_ID_MAC_LEARNING)) != 0)
+    {
+        if (!bcmolt_buf_read_bool(buf, &this->mac_learning))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_US_FLOW_CFG_ID_VLAN_ACTION)) != 0)
+    {
+        if (!bcmolt_us_vlan_action_unpack(&this->vlan_action, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_US_FLOW_CFG_ID_VLAN_TAG)) != 0)
+    {
+        if (!bcmolt_vlan_tag_unpack(&this->vlan_tag, buf, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_US_FLOW_CFG_ID_TPID_INDEX)) != 0)
+    {
+        if (!bcmolt_buf_read_u8(buf, &this->tpid_index))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_iwf_us_flow_cfg_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_US_FLOW_CFG_ID_FLOW_ID)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 2))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_US_FLOW_CFG_ID_MAC_LEARNING)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_US_FLOW_CFG_ID_VLAN_ACTION)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_US_FLOW_CFG_ID_VLAN_TAG)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 3))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_US_FLOW_CFG_ID_TPID_INDEX)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_iwf_us_flow_cfg_data_bounds_check(const bcmolt_gpon_iwf_us_flow_cfg_data *this, bcmolt_presence_mask fields_present, bcmolt_gpon_iwf_us_flow_cfg_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_US_FLOW_CFG_ID_FLOW_ID)) != 0)
+    {
+        if (this->flow_id > (bcmolt_flow_id) 4095)
+        {
+            *failed_prop = BCMOLT_GPON_IWF_US_FLOW_CFG_ID_FLOW_ID;
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_US_FLOW_CFG_ID_VLAN_ACTION)) != 0)
+    {
+        switch (this->vlan_action)
+        {
+            case BCMOLT_US_VLAN_ACTION_ADD:
+                break;
+            case BCMOLT_US_VLAN_ACTION_TRANSPARENT:
+                break;
+            default:
+                *failed_prop = BCMOLT_GPON_IWF_US_FLOW_CFG_ID_VLAN_ACTION;
+                return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_US_FLOW_CFG_ID_VLAN_TAG)) != 0)
+    {
+        if (!bcmolt_vlan_tag_bounds_check(&this->vlan_tag))
+        {
+            *failed_prop = BCMOLT_GPON_IWF_US_FLOW_CFG_ID_VLAN_TAG;
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_IWF_US_FLOW_CFG_ID_TPID_INDEX)) != 0)
+    {
+        if (this->tpid_index > 1)
+        {
+            *failed_prop = BCMOLT_GPON_IWF_US_FLOW_CFG_ID_TPID_INDEX;
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_gpon_ni_key_set_default(bcmolt_gpon_ni_key *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_KEY_ID_PON_NI)) != 0)
+    {
+        this->pon_ni = (bcmolt_gpon_ni) 0;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_ni_key_pack(const bcmolt_gpon_ni_key *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_KEY_ID_PON_NI)) != 0)
+    {
+        if (!bcmolt_buf_write_u8(buf, (uint8_t) this->pon_ni))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_gpon_ni_key_get_packed_length(const bcmolt_gpon_ni_key *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_KEY_ID_PON_NI)) != 0)
+    {
+        count += 1;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_ni_key_unpack(bcmolt_gpon_ni_key *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_KEY_ID_PON_NI)) != 0)
+    {
+        if (!bcmolt_buf_read_u8(buf, (uint8_t *) &this->pon_ni))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_ni_key_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_KEY_ID_PON_NI)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_ni_key_bounds_check(const bcmolt_gpon_ni_key *this, bcmolt_presence_mask fields_present, bcmolt_gpon_ni_key_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_KEY_ID_PON_NI)) != 0)
+    {
+        if (this->pon_ni > (bcmolt_gpon_ni) 15)
+        {
+            *failed_prop = BCMOLT_GPON_NI_KEY_ID_PON_NI;
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_gpon_ni_cfg_data_set_default(bcmolt_gpon_ni_cfg_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_CFG_ID_PON_STATUS)) != 0)
+    {
+        this->pon_status.state = BCMOLT_PON_STATE_INACTIVE;
+        this->pon_status.los_status = BCMOLT_STATUS_OFF;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_CFG_ID_AVAILABLE_BANDWIDTH)) != 0)
+    {
+        this->available_bandwidth.cbr_bw = 0;
+        this->available_bandwidth.total_bw = 0;
+        this->available_bandwidth.next_onu_total_bw = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_CFG_ID_NUMBER_OF_ACTIVE_ONUS)) != 0)
+    {
+        this->number_of_active_onus = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_CFG_ID_NUMBER_OF_ACTIVE_STANDBY_ONUS)) != 0)
+    {
+        this->number_of_active_standby_onus = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_CFG_ID_PRBS_STATUS)) != 0)
+    {
+        this->prbs_status.lock_state = BCMOLT_PRBS_LOCK_STATE_UNLOCKED;
+        this->prbs_status.error_counts = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_CFG_ID_PON_DISTANCE)) != 0)
+    {
+        this->pon_distance.max_log_distance = 20;
+        this->pon_distance.max_diff_reach = 20;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_CFG_ID_RANGING_WINDOW_SIZE)) != 0)
+    {
+        this->ranging_window_size = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_CFG_ID_PREASSIGNED_EQUALIZATION_DELAY)) != 0)
+    {
+        this->preassigned_equalization_delay = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_CFG_ID_EQD_CYCLES_NUMBER)) != 0)
+    {
+        this->eqd_cycles_number = 2;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_CFG_ID_POWER_LEVEL)) != 0)
+    {
+        this->power_level.pls_maximum_allocation_size = 120;
+        this->power_level.mode = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_CFG_ID_DS_FEC_MODE)) != 0)
+    {
+        this->ds_fec_mode = BCMOLT_CONTROL_STATE_ENABLE;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_CFG_ID_DRIFT_CONTROL)) != 0)
+    {
+        this->drift_control.drift_interval = 1000;
+        this->drift_control.drift_limit = 4;
+        this->drift_control.transmission_control_limit = 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_CFG_ID_DS_BER_REPORTING_INTERVAL)) != 0)
+    {
+        this->ds_ber_reporting_interval = (bcmolt_ber_interval) 5000;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_CFG_ID_LOS_ALARM_THRESHOLD)) != 0)
+    {
+        this->los_alarm_threshold = 4;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_CFG_ID_LOS_INITIAL_VALUE)) != 0)
+    {
+        this->los_initial_value = BCMOLT_STATUS_ON;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_CFG_ID_ONU_ALARMS_THRESHOLDS)) != 0)
+    {
+        this->onu_alarms_thresholds.losi = 4;
+        this->onu_alarms_thresholds.lofi = 4;
+        this->onu_alarms_thresholds.loami = 3;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_CFG_ID_BER_MONITOR)) != 0)
+    {
+        this->ber_monitor.us_ber_interval = 5000;
+        this->ber_monitor.sf_threshold = 3;
+        this->ber_monitor.sd_threshold = 5;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_CFG_ID_PLOAM_ACK_TIMEOUT)) != 0)
+    {
+        this->ploam_ack_timeout = 2000;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_CFG_ID_ONU_ACTIVATION)) != 0)
+    {
+        this->onu_activation.key_exchange = BCMOLT_CONTROL_STATE_DISABLE;
+        this->onu_activation.password_authentication = BCMOLT_CONTROL_STATE_ENABLE;
+        this->onu_activation.fail_due_to_password_authentication_failure = BCMOLT_CONTROL_STATE_ENABLE;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_CFG_ID_SN_ACQUISITION)) != 0)
+    {
+        this->sn_acquisition.interval = 1000;
+        this->sn_acquisition.control = BCMOLT_CONTROL_STATE_DISABLE;
+        this->sn_acquisition.onu_post_discovery_mode = BCMOLT_ONU_POST_DISCOVERY_MODE_DISABLE;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_CFG_ID_KEY_EXCHANGE)) != 0)
+    {
+        this->key_exchange.interval = 10000;
+        this->key_exchange.control = BCMOLT_CONTROL_STATE_DISABLE;
+        this->key_exchange.mode = BCMOLT_KEY_EXCHANGE_MODE_NORMAL;
+        this->key_exchange.encrypted_ports_only = BCMOLT_CONTROL_STATE_ENABLE;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_CFG_ID_PROTECTION_SWITCHING)) != 0)
+    {
+        this->protection_switching.timeout = 100;
+        this->protection_switching.gpio_pin = BCMOLT_GPIO_PIN_UNCONFIGURED;
+        this->protection_switching.options = (bcmolt_pon_protection_switching_options) 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_CFG_ID_CBR_RT_ALLOCATION_PROFILE)) != 0)
+    {
+        this->cbr_rt_allocation_profile.ma_7 = 64;
+        this->cbr_rt_allocation_profile.ma_3 = 256;
+        this->cbr_rt_allocation_profile.ma_1 = 512;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_CFG_ID_CBR_NRT_ALLOCATION_PROFILE)) != 0)
+    {
+        this->cbr_nrt_allocation_profile.arr[0] = 4096;
+        this->cbr_nrt_allocation_profile.arr[1] = 8192;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_CFG_ID_DBA)) != 0)
+    {
+        this->dba.sr_reporting_block_size = 48;
+        this->dba.dba_mode = BCMOLT_DBA_MODE_NORMAL;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_CFG_ID_POWER_MANAGEMENT)) != 0)
+    {
+        this->power_management.ilowpower = 1600;
+        this->power_management.iaware = 160;
+        this->power_management.itransinit = 80;
+        this->power_management.itxinit = 40;
+        this->power_management.irxoff = 1600;
+        this->power_management.low_power_clobi = 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_CFG_ID_ROGUE_ONU_DETECTION_PROCESS)) != 0)
+    {
+        this->rogue_onu_detection_process.control = BCMOLT_CONTROL_STATE_DISABLE;
+        this->rogue_onu_detection_process.detection_algorithm.algorithm_type = BCMOLT_ROGUE_DETECTION_ALGORITHM_TYPE_EARLY_ROGUE_DETECTION;
+        this->rogue_onu_detection_process.detection_algorithm.u.early_rogue_detection.measurement_type = BCMOLT_ROGUE_DETECTION_WINDOW_SILENT_WINDOW;
+        this->rogue_onu_detection_process.detection_algorithm.u.early_rogue_detection.interval = 10000;
+        this->rogue_onu_detection_process.detection_algorithm.u.early_rogue_detection.second_ranging_window = BCMOS_FALSE;
+        this->rogue_onu_detection_process.detection_algorithm.u.early_rogue_detection.alloc_type_to_scan = BCMOLT_ALLOC_TYPE_TO_SCAN_ALL;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_CFG_ID_PERIODIC_STANDBY_PON_MONITORING)) != 0)
+    {
+        this->periodic_standby_pon_monitoring.interval = 5000;
+        this->periodic_standby_pon_monitoring.control = BCMOLT_CONTROL_STATE_DISABLE;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_CFG_ID_PRBS_CHECKER)) != 0)
+    {
+        this->prbs_checker.polynom = BCMOLT_PRBS_POLYNOMIAL_PRBS_7;
+        this->prbs_checker.mode = BCMOLT_PRBS_CHECKER_MODE_SELF_SYNC;
+        this->prbs_checker.data_invert = BCMOS_FALSE;
+        this->prbs_checker.control = BCMOLT_CONTROL_STATE_DISABLE;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_CFG_ID_PRBS_GENERATOR)) != 0)
+    {
+        this->prbs_generator.polynom = BCMOLT_PRBS_POLYNOMIAL_PRBS_7;
+        this->prbs_generator.error_insert = BCMOS_FALSE;
+        this->prbs_generator.invert = BCMOS_FALSE;
+        this->prbs_generator.control = BCMOLT_CONTROL_STATE_DISABLE;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_CFG_ID_MIN_DATA_ALLOC_ID)) != 0)
+    {
+        this->min_data_alloc_id = (bcmolt_gpon_alloc_id) 256;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_CFG_ID_AUTOMATIC_ONU_DEACTIVATION)) != 0)
+    {
+        this->automatic_onu_deactivation.los = BCMOS_TRUE;
+        this->automatic_onu_deactivation.onu_alarms = BCMOS_TRUE;
+        this->automatic_onu_deactivation.tiwi = BCMOS_TRUE;
+        this->automatic_onu_deactivation.ack_timeout = BCMOS_TRUE;
+        this->automatic_onu_deactivation.sfi = BCMOS_TRUE;
+        this->automatic_onu_deactivation.loki = BCMOS_TRUE;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_CFG_ID_US_BANDWIDTH_LIMIT)) != 0)
+    {
+        this->us_bandwidth_limit = 155520000UL;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_CFG_ID_ALL_ONUS)) != 0)
+    {
+        this->all_onus.len = 0;
+        this->all_onus.val = NULL;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_CFG_ID_ALL_MCAST_GEM_PORTS)) != 0)
+    {
+        this->all_mcast_gem_ports.len = 0;
+        this->all_mcast_gem_ports.val = NULL;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_CFG_ID_DEBUG)) != 0)
+    {
+        this->debug.number_of_gem_ports_per_onu = 64;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_CFG_ID_ONU_UPGRADE_PARAMS)) != 0)
+    {
+        this->onu_upgrade_params.response_timeout_ms = 1000;
+        this->onu_upgrade_params.max_retry_count = 23;
+        this->onu_upgrade_params.omci_format = BCMOLT_OMCI_DEVICE_ID_EXTENDED;
+        this->onu_upgrade_params.window_size = 32;
+        this->onu_upgrade_params.activate_commit = BCMOS_FALSE;
+        this->onu_upgrade_params.delay_for_commit_ms = 40000UL;
+        this->onu_upgrade_params.max_activation_attempts = 23;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_CFG_ID_PS_C_WAIT_BEFORE_DEACTIVATION_TIMEOUT)) != 0)
+    {
+        this->ps_c_wait_before_deactivation_timeout = 1000;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_CFG_ID_BIP32_INDICATION_CONTROL)) != 0)
+    {
+        this->bip32_indication_control = BCMOLT_CONTROL_STATE_ENABLE;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_ni_cfg_data_pack(const bcmolt_gpon_ni_cfg_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_CFG_ID_PON_STATUS)) != 0)
+    {
+        if (!bcmolt_pon_status_pack(&this->pon_status, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_CFG_ID_AVAILABLE_BANDWIDTH)) != 0)
+    {
+        if (!bcmolt_pon_available_bandwidth_pack(&this->available_bandwidth, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_CFG_ID_NUMBER_OF_ACTIVE_ONUS)) != 0)
+    {
+        if (!bcmolt_buf_write_u16(buf, this->number_of_active_onus))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_CFG_ID_NUMBER_OF_ACTIVE_STANDBY_ONUS)) != 0)
+    {
+        if (!bcmolt_buf_write_u16(buf, this->number_of_active_standby_onus))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_CFG_ID_PRBS_STATUS)) != 0)
+    {
+        if (!bcmolt_prbs_status_pack(&this->prbs_status, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_CFG_ID_PON_DISTANCE)) != 0)
+    {
+        if (!bcmolt_pon_distance_pack(&this->pon_distance, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_CFG_ID_RANGING_WINDOW_SIZE)) != 0)
+    {
+        if (!bcmolt_buf_write_u32(buf, this->ranging_window_size))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_CFG_ID_PREASSIGNED_EQUALIZATION_DELAY)) != 0)
+    {
+        if (!bcmolt_buf_write_u32(buf, this->preassigned_equalization_delay))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_CFG_ID_EQD_CYCLES_NUMBER)) != 0)
+    {
+        if (!bcmolt_buf_write_u32(buf, this->eqd_cycles_number))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_CFG_ID_POWER_LEVEL)) != 0)
+    {
+        if (!bcmolt_pon_power_level_pack(&this->power_level, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_CFG_ID_DS_FEC_MODE)) != 0)
+    {
+        if (!bcmolt_control_state_pack(this->ds_fec_mode, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_CFG_ID_DRIFT_CONTROL)) != 0)
+    {
+        if (!bcmolt_pon_drift_control_pack(&this->drift_control, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_CFG_ID_DS_BER_REPORTING_INTERVAL)) != 0)
+    {
+        if (!bcmolt_buf_write_u32(buf, (uint32_t) this->ds_ber_reporting_interval))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_CFG_ID_LOS_ALARM_THRESHOLD)) != 0)
+    {
+        if (!bcmolt_buf_write_u8(buf, this->los_alarm_threshold))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_CFG_ID_LOS_INITIAL_VALUE)) != 0)
+    {
+        if (!bcmolt_status_pack(this->los_initial_value, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_CFG_ID_ONU_ALARMS_THRESHOLDS)) != 0)
+    {
+        if (!bcmolt_gpon_onu_alarms_thresholds_pack(&this->onu_alarms_thresholds, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_CFG_ID_BER_MONITOR)) != 0)
+    {
+        if (!bcmolt_ber_monitor_params_pack(&this->ber_monitor, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_CFG_ID_PLOAM_ACK_TIMEOUT)) != 0)
+    {
+        if (!bcmolt_buf_write_u16(buf, this->ploam_ack_timeout))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_CFG_ID_ONU_ACTIVATION)) != 0)
+    {
+        if (!bcmolt_gpon_onu_activation_pack(&this->onu_activation, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_CFG_ID_SN_ACQUISITION)) != 0)
+    {
+        if (!bcmolt_gpon_sn_acquisition_pack(&this->sn_acquisition, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_CFG_ID_KEY_EXCHANGE)) != 0)
+    {
+        if (!bcmolt_gpon_key_exchange_pack(&this->key_exchange, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_CFG_ID_PROTECTION_SWITCHING)) != 0)
+    {
+        if (!bcmolt_pon_protection_switching_pack(&this->protection_switching, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_CFG_ID_CBR_RT_ALLOCATION_PROFILE)) != 0)
+    {
+        if (!bcmolt_cbr_rt_allocation_profile_pack(&this->cbr_rt_allocation_profile, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_CFG_ID_CBR_NRT_ALLOCATION_PROFILE)) != 0)
+    {
+        if (!bcmolt_arr_u16_2_pack(&this->cbr_nrt_allocation_profile, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_CFG_ID_DBA)) != 0)
+    {
+        if (!bcmolt_pon_dba_pack(&this->dba, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_CFG_ID_POWER_MANAGEMENT)) != 0)
+    {
+        if (!bcmolt_onu_power_management_configuration_pack(&this->power_management, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_CFG_ID_ROGUE_ONU_DETECTION_PROCESS)) != 0)
+    {
+        if (!bcmolt_rogue_onu_detection_process_pack(&this->rogue_onu_detection_process, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_CFG_ID_PERIODIC_STANDBY_PON_MONITORING)) != 0)
+    {
+        if (!bcmolt_periodic_standby_pon_monitoring_pack(&this->periodic_standby_pon_monitoring, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_CFG_ID_PRBS_CHECKER)) != 0)
+    {
+        if (!bcmolt_prbs_checker_config_pack(&this->prbs_checker, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_CFG_ID_PRBS_GENERATOR)) != 0)
+    {
+        if (!bcmolt_prbs_generator_config_pack(&this->prbs_generator, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_CFG_ID_MIN_DATA_ALLOC_ID)) != 0)
+    {
+        if (!bcmolt_buf_write_u16(buf, (uint16_t) this->min_data_alloc_id))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_CFG_ID_AUTOMATIC_ONU_DEACTIVATION)) != 0)
+    {
+        if (!bcmolt_automatic_onu_deactivation_pack(&this->automatic_onu_deactivation, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_CFG_ID_US_BANDWIDTH_LIMIT)) != 0)
+    {
+        if (!bcmolt_buf_write_u32(buf, this->us_bandwidth_limit))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_CFG_ID_ALL_ONUS)) != 0)
+    {
+        if (!bcmolt_gpon_onu_with_state_list_u16_max_128_pack(&this->all_onus, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_CFG_ID_ALL_MCAST_GEM_PORTS)) != 0)
+    {
+        if (!bcmolt_gpon_gem_port_with_state_list_u16_max_128_pack(&this->all_mcast_gem_ports, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_CFG_ID_DEBUG)) != 0)
+    {
+        if (!bcmolt_gpon_ni_debug_pack(&this->debug, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_CFG_ID_ONU_UPGRADE_PARAMS)) != 0)
+    {
+        if (!bcmolt_gpon_onu_upgrade_params_pack(&this->onu_upgrade_params, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_CFG_ID_PS_C_WAIT_BEFORE_DEACTIVATION_TIMEOUT)) != 0)
+    {
+        if (!bcmolt_buf_write_u16(buf, this->ps_c_wait_before_deactivation_timeout))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_CFG_ID_BIP32_INDICATION_CONTROL)) != 0)
+    {
+        if (!bcmolt_control_state_pack(this->bip32_indication_control, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_gpon_ni_cfg_data_get_packed_length(const bcmolt_gpon_ni_cfg_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_CFG_ID_PON_STATUS)) != 0)
+    {
+        count += 2;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_CFG_ID_AVAILABLE_BANDWIDTH)) != 0)
+    {
+        count += 12;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_CFG_ID_NUMBER_OF_ACTIVE_ONUS)) != 0)
+    {
+        count += 2;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_CFG_ID_NUMBER_OF_ACTIVE_STANDBY_ONUS)) != 0)
+    {
+        count += 2;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_CFG_ID_PRBS_STATUS)) != 0)
+    {
+        count += 5;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_CFG_ID_PON_DISTANCE)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_CFG_ID_RANGING_WINDOW_SIZE)) != 0)
+    {
+        count += 4;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_CFG_ID_PREASSIGNED_EQUALIZATION_DELAY)) != 0)
+    {
+        count += 4;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_CFG_ID_EQD_CYCLES_NUMBER)) != 0)
+    {
+        count += 4;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_CFG_ID_POWER_LEVEL)) != 0)
+    {
+        count += 5;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_CFG_ID_DS_FEC_MODE)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_CFG_ID_DRIFT_CONTROL)) != 0)
+    {
+        count += 6;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_CFG_ID_DS_BER_REPORTING_INTERVAL)) != 0)
+    {
+        count += 4;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_CFG_ID_LOS_ALARM_THRESHOLD)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_CFG_ID_LOS_INITIAL_VALUE)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_CFG_ID_ONU_ALARMS_THRESHOLDS)) != 0)
+    {
+        count += 3;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_CFG_ID_BER_MONITOR)) != 0)
+    {
+        count += 6;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_CFG_ID_PLOAM_ACK_TIMEOUT)) != 0)
+    {
+        count += 2;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_CFG_ID_ONU_ACTIVATION)) != 0)
+    {
+        count += 3;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_CFG_ID_SN_ACQUISITION)) != 0)
+    {
+        count += 6;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_CFG_ID_KEY_EXCHANGE)) != 0)
+    {
+        count += 7;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_CFG_ID_PROTECTION_SWITCHING)) != 0)
+    {
+        count += 7;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_CFG_ID_CBR_RT_ALLOCATION_PROFILE)) != 0)
+    {
+        count += 6;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_CFG_ID_CBR_NRT_ALLOCATION_PROFILE)) != 0)
+    {
+        count += 4;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_CFG_ID_DBA)) != 0)
+    {
+        count += 2;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_CFG_ID_POWER_MANAGEMENT)) != 0)
+    {
+        count += 18;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_CFG_ID_ROGUE_ONU_DETECTION_PROCESS)) != 0)
+    {
+        count += bcmolt_rogue_onu_detection_process_get_packed_length(&this->rogue_onu_detection_process);
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_CFG_ID_PERIODIC_STANDBY_PON_MONITORING)) != 0)
+    {
+        count += 5;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_CFG_ID_PRBS_CHECKER)) != 0)
+    {
+        count += 4;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_CFG_ID_PRBS_GENERATOR)) != 0)
+    {
+        count += 4;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_CFG_ID_MIN_DATA_ALLOC_ID)) != 0)
+    {
+        count += 2;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_CFG_ID_AUTOMATIC_ONU_DEACTIVATION)) != 0)
+    {
+        count += 6;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_CFG_ID_US_BANDWIDTH_LIMIT)) != 0)
+    {
+        count += 4;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_CFG_ID_ALL_ONUS)) != 0)
+    {
+        count += bcmolt_gpon_onu_with_state_list_u16_max_128_get_packed_length(&this->all_onus);
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_CFG_ID_ALL_MCAST_GEM_PORTS)) != 0)
+    {
+        count += bcmolt_gpon_gem_port_with_state_list_u16_max_128_get_packed_length(&this->all_mcast_gem_ports);
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_CFG_ID_DEBUG)) != 0)
+    {
+        count += 2;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_CFG_ID_ONU_UPGRADE_PARAMS)) != 0)
+    {
+        count += 14;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_CFG_ID_PS_C_WAIT_BEFORE_DEACTIVATION_TIMEOUT)) != 0)
+    {
+        count += 2;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_CFG_ID_BIP32_INDICATION_CONTROL)) != 0)
+    {
+        count += 1;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_ni_cfg_data_unpack(bcmolt_gpon_ni_cfg_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_CFG_ID_PON_STATUS)) != 0)
+    {
+        if (!bcmolt_pon_status_unpack(&this->pon_status, buf, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_CFG_ID_AVAILABLE_BANDWIDTH)) != 0)
+    {
+        if (!bcmolt_pon_available_bandwidth_unpack(&this->available_bandwidth, buf, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_CFG_ID_NUMBER_OF_ACTIVE_ONUS)) != 0)
+    {
+        if (!bcmolt_buf_read_u16(buf, &this->number_of_active_onus))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_CFG_ID_NUMBER_OF_ACTIVE_STANDBY_ONUS)) != 0)
+    {
+        if (!bcmolt_buf_read_u16(buf, &this->number_of_active_standby_onus))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_CFG_ID_PRBS_STATUS)) != 0)
+    {
+        if (!bcmolt_prbs_status_unpack(&this->prbs_status, buf, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_CFG_ID_PON_DISTANCE)) != 0)
+    {
+        if (!bcmolt_pon_distance_unpack(&this->pon_distance, buf, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_CFG_ID_RANGING_WINDOW_SIZE)) != 0)
+    {
+        if (!bcmolt_buf_read_u32(buf, &this->ranging_window_size))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_CFG_ID_PREASSIGNED_EQUALIZATION_DELAY)) != 0)
+    {
+        if (!bcmolt_buf_read_u32(buf, &this->preassigned_equalization_delay))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_CFG_ID_EQD_CYCLES_NUMBER)) != 0)
+    {
+        if (!bcmolt_buf_read_u32(buf, &this->eqd_cycles_number))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_CFG_ID_POWER_LEVEL)) != 0)
+    {
+        if (!bcmolt_pon_power_level_unpack(&this->power_level, buf, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_CFG_ID_DS_FEC_MODE)) != 0)
+    {
+        if (!bcmolt_control_state_unpack(&this->ds_fec_mode, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_CFG_ID_DRIFT_CONTROL)) != 0)
+    {
+        if (!bcmolt_pon_drift_control_unpack(&this->drift_control, buf, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_CFG_ID_DS_BER_REPORTING_INTERVAL)) != 0)
+    {
+        if (!bcmolt_buf_read_u32(buf, (uint32_t *) &this->ds_ber_reporting_interval))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_CFG_ID_LOS_ALARM_THRESHOLD)) != 0)
+    {
+        if (!bcmolt_buf_read_u8(buf, &this->los_alarm_threshold))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_CFG_ID_LOS_INITIAL_VALUE)) != 0)
+    {
+        if (!bcmolt_status_unpack(&this->los_initial_value, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_CFG_ID_ONU_ALARMS_THRESHOLDS)) != 0)
+    {
+        if (!bcmolt_gpon_onu_alarms_thresholds_unpack(&this->onu_alarms_thresholds, buf, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_CFG_ID_BER_MONITOR)) != 0)
+    {
+        if (!bcmolt_ber_monitor_params_unpack(&this->ber_monitor, buf, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_CFG_ID_PLOAM_ACK_TIMEOUT)) != 0)
+    {
+        if (!bcmolt_buf_read_u16(buf, &this->ploam_ack_timeout))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_CFG_ID_ONU_ACTIVATION)) != 0)
+    {
+        if (!bcmolt_gpon_onu_activation_unpack(&this->onu_activation, buf, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_CFG_ID_SN_ACQUISITION)) != 0)
+    {
+        if (!bcmolt_gpon_sn_acquisition_unpack(&this->sn_acquisition, buf, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_CFG_ID_KEY_EXCHANGE)) != 0)
+    {
+        if (!bcmolt_gpon_key_exchange_unpack(&this->key_exchange, buf, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_CFG_ID_PROTECTION_SWITCHING)) != 0)
+    {
+        if (!bcmolt_pon_protection_switching_unpack(&this->protection_switching, buf, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_CFG_ID_CBR_RT_ALLOCATION_PROFILE)) != 0)
+    {
+        if (!bcmolt_cbr_rt_allocation_profile_unpack(&this->cbr_rt_allocation_profile, buf, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_CFG_ID_CBR_NRT_ALLOCATION_PROFILE)) != 0)
+    {
+        if (!bcmolt_arr_u16_2_unpack(&this->cbr_nrt_allocation_profile, buf, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_CFG_ID_DBA)) != 0)
+    {
+        if (!bcmolt_pon_dba_unpack(&this->dba, buf, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_CFG_ID_POWER_MANAGEMENT)) != 0)
+    {
+        if (!bcmolt_onu_power_management_configuration_unpack(&this->power_management, buf, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_CFG_ID_ROGUE_ONU_DETECTION_PROCESS)) != 0)
+    {
+        if (!bcmolt_rogue_onu_detection_process_unpack(&this->rogue_onu_detection_process, buf, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_CFG_ID_PERIODIC_STANDBY_PON_MONITORING)) != 0)
+    {
+        if (!bcmolt_periodic_standby_pon_monitoring_unpack(&this->periodic_standby_pon_monitoring, buf, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_CFG_ID_PRBS_CHECKER)) != 0)
+    {
+        if (!bcmolt_prbs_checker_config_unpack(&this->prbs_checker, buf, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_CFG_ID_PRBS_GENERATOR)) != 0)
+    {
+        if (!bcmolt_prbs_generator_config_unpack(&this->prbs_generator, buf, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_CFG_ID_MIN_DATA_ALLOC_ID)) != 0)
+    {
+        if (!bcmolt_buf_read_u16(buf, (uint16_t *) &this->min_data_alloc_id))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_CFG_ID_AUTOMATIC_ONU_DEACTIVATION)) != 0)
+    {
+        if (!bcmolt_automatic_onu_deactivation_unpack(&this->automatic_onu_deactivation, buf, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_CFG_ID_US_BANDWIDTH_LIMIT)) != 0)
+    {
+        if (!bcmolt_buf_read_u32(buf, &this->us_bandwidth_limit))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_CFG_ID_ALL_ONUS)) != 0)
+    {
+        if (!bcmolt_gpon_onu_with_state_list_u16_max_128_unpack(&this->all_onus, buf, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_CFG_ID_ALL_MCAST_GEM_PORTS)) != 0)
+    {
+        if (!bcmolt_gpon_gem_port_with_state_list_u16_max_128_unpack(&this->all_mcast_gem_ports, buf, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_CFG_ID_DEBUG)) != 0)
+    {
+        if (!bcmolt_gpon_ni_debug_unpack(&this->debug, buf, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_CFG_ID_ONU_UPGRADE_PARAMS)) != 0)
+    {
+        if (!bcmolt_gpon_onu_upgrade_params_unpack(&this->onu_upgrade_params, buf, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_CFG_ID_PS_C_WAIT_BEFORE_DEACTIVATION_TIMEOUT)) != 0)
+    {
+        if (!bcmolt_buf_read_u16(buf, &this->ps_c_wait_before_deactivation_timeout))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_CFG_ID_BIP32_INDICATION_CONTROL)) != 0)
+    {
+        if (!bcmolt_control_state_unpack(&this->bip32_indication_control, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_ni_cfg_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_CFG_ID_PON_STATUS)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 2))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_CFG_ID_AVAILABLE_BANDWIDTH)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 12))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_CFG_ID_NUMBER_OF_ACTIVE_ONUS)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 2))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_CFG_ID_NUMBER_OF_ACTIVE_STANDBY_ONUS)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 2))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_CFG_ID_PRBS_STATUS)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 5))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_CFG_ID_PON_DISTANCE)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_CFG_ID_RANGING_WINDOW_SIZE)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 4))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_CFG_ID_PREASSIGNED_EQUALIZATION_DELAY)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 4))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_CFG_ID_EQD_CYCLES_NUMBER)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 4))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_CFG_ID_POWER_LEVEL)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 5))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_CFG_ID_DS_FEC_MODE)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_CFG_ID_DRIFT_CONTROL)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 6))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_CFG_ID_DS_BER_REPORTING_INTERVAL)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 4))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_CFG_ID_LOS_ALARM_THRESHOLD)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_CFG_ID_LOS_INITIAL_VALUE)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_CFG_ID_ONU_ALARMS_THRESHOLDS)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 3))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_CFG_ID_BER_MONITOR)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 6))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_CFG_ID_PLOAM_ACK_TIMEOUT)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 2))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_CFG_ID_ONU_ACTIVATION)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 3))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_CFG_ID_SN_ACQUISITION)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 6))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_CFG_ID_KEY_EXCHANGE)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 7))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_CFG_ID_PROTECTION_SWITCHING)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 7))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_CFG_ID_CBR_RT_ALLOCATION_PROFILE)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 6))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_CFG_ID_CBR_NRT_ALLOCATION_PROFILE)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 4))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_CFG_ID_DBA)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 2))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_CFG_ID_POWER_MANAGEMENT)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 18))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_CFG_ID_ROGUE_ONU_DETECTION_PROCESS)) != 0)
+    {
+        if (!bcmolt_rogue_onu_detection_process_scan(packed, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_CFG_ID_PERIODIC_STANDBY_PON_MONITORING)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 5))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_CFG_ID_PRBS_CHECKER)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 4))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_CFG_ID_PRBS_GENERATOR)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 4))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_CFG_ID_MIN_DATA_ALLOC_ID)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 2))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_CFG_ID_AUTOMATIC_ONU_DEACTIVATION)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 6))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_CFG_ID_US_BANDWIDTH_LIMIT)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 4))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_CFG_ID_ALL_ONUS)) != 0)
+    {
+        if (!bcmolt_gpon_onu_with_state_list_u16_max_128_scan(packed, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_CFG_ID_ALL_MCAST_GEM_PORTS)) != 0)
+    {
+        if (!bcmolt_gpon_gem_port_with_state_list_u16_max_128_scan(packed, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_CFG_ID_DEBUG)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 2))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_CFG_ID_ONU_UPGRADE_PARAMS)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 14))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_CFG_ID_PS_C_WAIT_BEFORE_DEACTIVATION_TIMEOUT)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 2))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_CFG_ID_BIP32_INDICATION_CONTROL)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_ni_cfg_data_bounds_check(const bcmolt_gpon_ni_cfg_data *this, bcmolt_presence_mask fields_present, bcmolt_gpon_ni_cfg_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_CFG_ID_PON_STATUS)) != 0)
+    {
+        if (!bcmolt_pon_status_bounds_check(&this->pon_status))
+        {
+            *failed_prop = BCMOLT_GPON_NI_CFG_ID_PON_STATUS;
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_CFG_ID_AVAILABLE_BANDWIDTH)) != 0)
+    {
+        if (!bcmolt_pon_available_bandwidth_bounds_check(&this->available_bandwidth))
+        {
+            *failed_prop = BCMOLT_GPON_NI_CFG_ID_AVAILABLE_BANDWIDTH;
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_CFG_ID_PRBS_STATUS)) != 0)
+    {
+        if (!bcmolt_prbs_status_bounds_check(&this->prbs_status))
+        {
+            *failed_prop = BCMOLT_GPON_NI_CFG_ID_PRBS_STATUS;
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_CFG_ID_PON_DISTANCE)) != 0)
+    {
+        if (!bcmolt_pon_distance_bounds_check(&this->pon_distance))
+        {
+            *failed_prop = BCMOLT_GPON_NI_CFG_ID_PON_DISTANCE;
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_CFG_ID_PREASSIGNED_EQUALIZATION_DELAY)) != 0)
+    {
+        if (this->preassigned_equalization_delay > 16776960UL)
+        {
+            *failed_prop = BCMOLT_GPON_NI_CFG_ID_PREASSIGNED_EQUALIZATION_DELAY;
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_CFG_ID_EQD_CYCLES_NUMBER)) != 0)
+    {
+        if (this->eqd_cycles_number > 255)
+        {
+            *failed_prop = BCMOLT_GPON_NI_CFG_ID_EQD_CYCLES_NUMBER;
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_CFG_ID_POWER_LEVEL)) != 0)
+    {
+        if (!bcmolt_pon_power_level_bounds_check(&this->power_level))
+        {
+            *failed_prop = BCMOLT_GPON_NI_CFG_ID_POWER_LEVEL;
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_CFG_ID_DS_FEC_MODE)) != 0)
+    {
+        switch (this->ds_fec_mode)
+        {
+            case BCMOLT_CONTROL_STATE_DISABLE:
+                break;
+            case BCMOLT_CONTROL_STATE_ENABLE:
+                break;
+            default:
+                *failed_prop = BCMOLT_GPON_NI_CFG_ID_DS_FEC_MODE;
+                return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_CFG_ID_DRIFT_CONTROL)) != 0)
+    {
+        if (!bcmolt_pon_drift_control_bounds_check(&this->drift_control))
+        {
+            *failed_prop = BCMOLT_GPON_NI_CFG_ID_DRIFT_CONTROL;
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_CFG_ID_DS_BER_REPORTING_INTERVAL)) != 0)
+    {
+        if (this->ds_ber_reporting_interval > (bcmolt_ber_interval) 536870911UL)
+        {
+            *failed_prop = BCMOLT_GPON_NI_CFG_ID_DS_BER_REPORTING_INTERVAL;
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_CFG_ID_LOS_INITIAL_VALUE)) != 0)
+    {
+        switch (this->los_initial_value)
+        {
+            case BCMOLT_STATUS_OFF:
+                break;
+            case BCMOLT_STATUS_ON:
+                break;
+            case BCMOLT_STATUS_NO_CHANGE:
+                break;
+            default:
+                *failed_prop = BCMOLT_GPON_NI_CFG_ID_LOS_INITIAL_VALUE;
+                return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_CFG_ID_ONU_ALARMS_THRESHOLDS)) != 0)
+    {
+        if (!bcmolt_gpon_onu_alarms_thresholds_bounds_check(&this->onu_alarms_thresholds))
+        {
+            *failed_prop = BCMOLT_GPON_NI_CFG_ID_ONU_ALARMS_THRESHOLDS;
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_CFG_ID_BER_MONITOR)) != 0)
+    {
+        if (!bcmolt_ber_monitor_params_bounds_check(&this->ber_monitor))
+        {
+            *failed_prop = BCMOLT_GPON_NI_CFG_ID_BER_MONITOR;
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_CFG_ID_ONU_ACTIVATION)) != 0)
+    {
+        if (!bcmolt_gpon_onu_activation_bounds_check(&this->onu_activation))
+        {
+            *failed_prop = BCMOLT_GPON_NI_CFG_ID_ONU_ACTIVATION;
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_CFG_ID_SN_ACQUISITION)) != 0)
+    {
+        if (!bcmolt_gpon_sn_acquisition_bounds_check(&this->sn_acquisition))
+        {
+            *failed_prop = BCMOLT_GPON_NI_CFG_ID_SN_ACQUISITION;
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_CFG_ID_KEY_EXCHANGE)) != 0)
+    {
+        if (!bcmolt_gpon_key_exchange_bounds_check(&this->key_exchange))
+        {
+            *failed_prop = BCMOLT_GPON_NI_CFG_ID_KEY_EXCHANGE;
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_CFG_ID_PROTECTION_SWITCHING)) != 0)
+    {
+        if (!bcmolt_pon_protection_switching_bounds_check(&this->protection_switching))
+        {
+            *failed_prop = BCMOLT_GPON_NI_CFG_ID_PROTECTION_SWITCHING;
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_CFG_ID_CBR_RT_ALLOCATION_PROFILE)) != 0)
+    {
+        if (!bcmolt_cbr_rt_allocation_profile_bounds_check(&this->cbr_rt_allocation_profile))
+        {
+            *failed_prop = BCMOLT_GPON_NI_CFG_ID_CBR_RT_ALLOCATION_PROFILE;
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_CFG_ID_CBR_NRT_ALLOCATION_PROFILE)) != 0)
+    {
+        if (!bcmolt_arr_u16_2_bounds_check(&this->cbr_nrt_allocation_profile))
+        {
+            *failed_prop = BCMOLT_GPON_NI_CFG_ID_CBR_NRT_ALLOCATION_PROFILE;
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_CFG_ID_DBA)) != 0)
+    {
+        if (!bcmolt_pon_dba_bounds_check(&this->dba))
+        {
+            *failed_prop = BCMOLT_GPON_NI_CFG_ID_DBA;
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_CFG_ID_POWER_MANAGEMENT)) != 0)
+    {
+        if (!bcmolt_onu_power_management_configuration_bounds_check(&this->power_management))
+        {
+            *failed_prop = BCMOLT_GPON_NI_CFG_ID_POWER_MANAGEMENT;
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_CFG_ID_ROGUE_ONU_DETECTION_PROCESS)) != 0)
+    {
+        if (!bcmolt_rogue_onu_detection_process_bounds_check(&this->rogue_onu_detection_process))
+        {
+            *failed_prop = BCMOLT_GPON_NI_CFG_ID_ROGUE_ONU_DETECTION_PROCESS;
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_CFG_ID_PERIODIC_STANDBY_PON_MONITORING)) != 0)
+    {
+        if (!bcmolt_periodic_standby_pon_monitoring_bounds_check(&this->periodic_standby_pon_monitoring))
+        {
+            *failed_prop = BCMOLT_GPON_NI_CFG_ID_PERIODIC_STANDBY_PON_MONITORING;
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_CFG_ID_PRBS_CHECKER)) != 0)
+    {
+        if (!bcmolt_prbs_checker_config_bounds_check(&this->prbs_checker))
+        {
+            *failed_prop = BCMOLT_GPON_NI_CFG_ID_PRBS_CHECKER;
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_CFG_ID_PRBS_GENERATOR)) != 0)
+    {
+        if (!bcmolt_prbs_generator_config_bounds_check(&this->prbs_generator))
+        {
+            *failed_prop = BCMOLT_GPON_NI_CFG_ID_PRBS_GENERATOR;
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_CFG_ID_MIN_DATA_ALLOC_ID)) != 0)
+    {
+        if (this->min_data_alloc_id < (bcmolt_gpon_alloc_id) 256)
+        {
+            *failed_prop = BCMOLT_GPON_NI_CFG_ID_MIN_DATA_ALLOC_ID;
+            return BCMOS_FALSE;
+        }
+
+        if (this->min_data_alloc_id > (bcmolt_gpon_alloc_id) 3200)
+        {
+            *failed_prop = BCMOLT_GPON_NI_CFG_ID_MIN_DATA_ALLOC_ID;
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_CFG_ID_AUTOMATIC_ONU_DEACTIVATION)) != 0)
+    {
+        if (!bcmolt_automatic_onu_deactivation_bounds_check(&this->automatic_onu_deactivation))
+        {
+            *failed_prop = BCMOLT_GPON_NI_CFG_ID_AUTOMATIC_ONU_DEACTIVATION;
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_CFG_ID_US_BANDWIDTH_LIMIT)) != 0)
+    {
+        if (this->us_bandwidth_limit < 800000UL)
+        {
+            *failed_prop = BCMOLT_GPON_NI_CFG_ID_US_BANDWIDTH_LIMIT;
+            return BCMOS_FALSE;
+        }
+
+        if (this->us_bandwidth_limit > 155520000UL)
+        {
+            *failed_prop = BCMOLT_GPON_NI_CFG_ID_US_BANDWIDTH_LIMIT;
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_CFG_ID_ALL_ONUS)) != 0)
+    {
+        if (this->all_onus.len > 128)
+        {
+            return BCMOS_FALSE;
+        }
+
+        if (!bcmolt_gpon_onu_with_state_list_u16_max_128_bounds_check(&this->all_onus))
+        {
+            *failed_prop = BCMOLT_GPON_NI_CFG_ID_ALL_ONUS;
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_CFG_ID_ALL_MCAST_GEM_PORTS)) != 0)
+    {
+        if (this->all_mcast_gem_ports.len > 128)
+        {
+            return BCMOS_FALSE;
+        }
+
+        if (!bcmolt_gpon_gem_port_with_state_list_u16_max_128_bounds_check(&this->all_mcast_gem_ports))
+        {
+            *failed_prop = BCMOLT_GPON_NI_CFG_ID_ALL_MCAST_GEM_PORTS;
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_CFG_ID_DEBUG)) != 0)
+    {
+        if (!bcmolt_gpon_ni_debug_bounds_check(&this->debug))
+        {
+            *failed_prop = BCMOLT_GPON_NI_CFG_ID_DEBUG;
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_CFG_ID_ONU_UPGRADE_PARAMS)) != 0)
+    {
+        if (!bcmolt_gpon_onu_upgrade_params_bounds_check(&this->onu_upgrade_params))
+        {
+            *failed_prop = BCMOLT_GPON_NI_CFG_ID_ONU_UPGRADE_PARAMS;
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_CFG_ID_BIP32_INDICATION_CONTROL)) != 0)
+    {
+        switch (this->bip32_indication_control)
+        {
+            case BCMOLT_CONTROL_STATE_DISABLE:
+                break;
+            case BCMOLT_CONTROL_STATE_ENABLE:
+                break;
+            default:
+                *failed_prop = BCMOLT_GPON_NI_CFG_ID_BIP32_INDICATION_CONTROL;
+                return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_gpon_ni_stat_data_set_default(bcmolt_gpon_ni_stat_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_STAT_ID_FEC_CODEWORDS)) != 0)
+    {
+        this->fec_codewords = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_STAT_ID_FEC_CODEWORDS_UNCORRECTED)) != 0)
+    {
+        this->fec_codewords_uncorrected = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_STAT_ID_BIP8_BYTES)) != 0)
+    {
+        this->bip8_bytes = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_STAT_ID_BIP8_ERRORS)) != 0)
+    {
+        this->bip8_errors = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_STAT_ID_RX_GEM_PACKETS)) != 0)
+    {
+        this->rx_gem_packets = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_STAT_ID_RX_GEM_DROPPED)) != 0)
+    {
+        this->rx_gem_dropped = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_STAT_ID_RX_GEM_IDLE)) != 0)
+    {
+        this->rx_gem_idle = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_STAT_ID_RX_GEM_CORRECTED)) != 0)
+    {
+        this->rx_gem_corrected = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_STAT_ID_RX_GEM_ILLEGAL)) != 0)
+    {
+        this->rx_gem_illegal = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_STAT_ID_RX_ALLOCATIONS_VALID)) != 0)
+    {
+        this->rx_allocations_valid = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_STAT_ID_RX_ALLOCATIONS_INVALID)) != 0)
+    {
+        this->rx_allocations_invalid = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_STAT_ID_RX_ALLOCATIONS_DISABLED)) != 0)
+    {
+        this->rx_allocations_disabled = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_STAT_ID_RX_PLOAMS)) != 0)
+    {
+        this->rx_ploams = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_STAT_ID_RX_PLOAMS_NON_IDLE)) != 0)
+    {
+        this->rx_ploams_non_idle = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_STAT_ID_RX_PLOAMS_ERROR)) != 0)
+    {
+        this->rx_ploams_error = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_STAT_ID_RX_PLOAMS_DROPPED)) != 0)
+    {
+        this->rx_ploams_dropped = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_STAT_ID_RX_CPU)) != 0)
+    {
+        this->rx_cpu = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_STAT_ID_RX_OMCI)) != 0)
+    {
+        this->rx_omci = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_STAT_ID_RX_OMCI_PACKETS_CRC_ERROR)) != 0)
+    {
+        this->rx_omci_packets_crc_error = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_STAT_ID_RX_DROPPED_TOO_SHORT)) != 0)
+    {
+        this->rx_dropped_too_short = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_STAT_ID_RX_DROPPED_TOO_LONG)) != 0)
+    {
+        this->rx_dropped_too_long = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_STAT_ID_RX_CRC_ERRORS)) != 0)
+    {
+        this->rx_crc_errors = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_STAT_ID_RX_KEY_ERRORS)) != 0)
+    {
+        this->rx_key_errors = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_STAT_ID_RX_FRAGMENTS_ERRORS)) != 0)
+    {
+        this->rx_fragments_errors = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_STAT_ID_RX_PACKETS_DROPPED)) != 0)
+    {
+        this->rx_packets_dropped = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_STAT_ID_TX_GEM)) != 0)
+    {
+        this->tx_gem = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_STAT_ID_TX_PLOAMS)) != 0)
+    {
+        this->tx_ploams = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_STAT_ID_TX_GEM_FRAGMENTS)) != 0)
+    {
+        this->tx_gem_fragments = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_STAT_ID_TX_CPU)) != 0)
+    {
+        this->tx_cpu = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_STAT_ID_TX_OMCI)) != 0)
+    {
+        this->tx_omci = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_STAT_ID_TX_CPU_OMCI_PACKETS_DROPPED)) != 0)
+    {
+        this->tx_cpu_omci_packets_dropped = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_STAT_ID_TX_DROPPED_ILLEGAL_LENGTH)) != 0)
+    {
+        this->tx_dropped_illegal_length = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_STAT_ID_TX_DROPPED_TPID_MISS)) != 0)
+    {
+        this->tx_dropped_tpid_miss = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_STAT_ID_TX_DROPPED_VID_MISS)) != 0)
+    {
+        this->tx_dropped_vid_miss = 0;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_ni_stat_data_pack(const bcmolt_gpon_ni_stat_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_STAT_ID_FEC_CODEWORDS)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->fec_codewords))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_STAT_ID_FEC_CODEWORDS_UNCORRECTED)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->fec_codewords_uncorrected))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_STAT_ID_BIP8_BYTES)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->bip8_bytes))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_STAT_ID_BIP8_ERRORS)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->bip8_errors))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_STAT_ID_RX_GEM_PACKETS)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->rx_gem_packets))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_STAT_ID_RX_GEM_DROPPED)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->rx_gem_dropped))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_STAT_ID_RX_GEM_IDLE)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->rx_gem_idle))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_STAT_ID_RX_GEM_CORRECTED)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->rx_gem_corrected))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_STAT_ID_RX_GEM_ILLEGAL)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->rx_gem_illegal))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_STAT_ID_RX_ALLOCATIONS_VALID)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->rx_allocations_valid))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_STAT_ID_RX_ALLOCATIONS_INVALID)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->rx_allocations_invalid))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_STAT_ID_RX_ALLOCATIONS_DISABLED)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->rx_allocations_disabled))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_STAT_ID_RX_PLOAMS)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->rx_ploams))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_STAT_ID_RX_PLOAMS_NON_IDLE)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->rx_ploams_non_idle))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_STAT_ID_RX_PLOAMS_ERROR)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->rx_ploams_error))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_STAT_ID_RX_PLOAMS_DROPPED)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->rx_ploams_dropped))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_STAT_ID_RX_CPU)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->rx_cpu))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_STAT_ID_RX_OMCI)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->rx_omci))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_STAT_ID_RX_OMCI_PACKETS_CRC_ERROR)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->rx_omci_packets_crc_error))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_STAT_ID_RX_DROPPED_TOO_SHORT)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->rx_dropped_too_short))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_STAT_ID_RX_DROPPED_TOO_LONG)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->rx_dropped_too_long))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_STAT_ID_RX_CRC_ERRORS)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->rx_crc_errors))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_STAT_ID_RX_KEY_ERRORS)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->rx_key_errors))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_STAT_ID_RX_FRAGMENTS_ERRORS)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->rx_fragments_errors))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_STAT_ID_RX_PACKETS_DROPPED)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->rx_packets_dropped))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_STAT_ID_TX_GEM)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->tx_gem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_STAT_ID_TX_PLOAMS)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->tx_ploams))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_STAT_ID_TX_GEM_FRAGMENTS)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->tx_gem_fragments))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_STAT_ID_TX_CPU)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->tx_cpu))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_STAT_ID_TX_OMCI)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->tx_omci))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_STAT_ID_TX_CPU_OMCI_PACKETS_DROPPED)) != 0)
+    {
+        if (!bcmolt_buf_write_u8(buf, this->tx_cpu_omci_packets_dropped))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_STAT_ID_TX_DROPPED_ILLEGAL_LENGTH)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->tx_dropped_illegal_length))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_STAT_ID_TX_DROPPED_TPID_MISS)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->tx_dropped_tpid_miss))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_STAT_ID_TX_DROPPED_VID_MISS)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->tx_dropped_vid_miss))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_gpon_ni_stat_data_get_packed_length(const bcmolt_gpon_ni_stat_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_STAT_ID_FEC_CODEWORDS)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_STAT_ID_FEC_CODEWORDS_UNCORRECTED)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_STAT_ID_BIP8_BYTES)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_STAT_ID_BIP8_ERRORS)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_STAT_ID_RX_GEM_PACKETS)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_STAT_ID_RX_GEM_DROPPED)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_STAT_ID_RX_GEM_IDLE)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_STAT_ID_RX_GEM_CORRECTED)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_STAT_ID_RX_GEM_ILLEGAL)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_STAT_ID_RX_ALLOCATIONS_VALID)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_STAT_ID_RX_ALLOCATIONS_INVALID)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_STAT_ID_RX_ALLOCATIONS_DISABLED)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_STAT_ID_RX_PLOAMS)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_STAT_ID_RX_PLOAMS_NON_IDLE)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_STAT_ID_RX_PLOAMS_ERROR)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_STAT_ID_RX_PLOAMS_DROPPED)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_STAT_ID_RX_CPU)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_STAT_ID_RX_OMCI)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_STAT_ID_RX_OMCI_PACKETS_CRC_ERROR)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_STAT_ID_RX_DROPPED_TOO_SHORT)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_STAT_ID_RX_DROPPED_TOO_LONG)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_STAT_ID_RX_CRC_ERRORS)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_STAT_ID_RX_KEY_ERRORS)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_STAT_ID_RX_FRAGMENTS_ERRORS)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_STAT_ID_RX_PACKETS_DROPPED)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_STAT_ID_TX_GEM)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_STAT_ID_TX_PLOAMS)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_STAT_ID_TX_GEM_FRAGMENTS)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_STAT_ID_TX_CPU)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_STAT_ID_TX_OMCI)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_STAT_ID_TX_CPU_OMCI_PACKETS_DROPPED)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_STAT_ID_TX_DROPPED_ILLEGAL_LENGTH)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_STAT_ID_TX_DROPPED_TPID_MISS)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_STAT_ID_TX_DROPPED_VID_MISS)) != 0)
+    {
+        count += 8;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_ni_stat_data_unpack(bcmolt_gpon_ni_stat_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_STAT_ID_FEC_CODEWORDS)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->fec_codewords))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_STAT_ID_FEC_CODEWORDS_UNCORRECTED)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->fec_codewords_uncorrected))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_STAT_ID_BIP8_BYTES)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->bip8_bytes))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_STAT_ID_BIP8_ERRORS)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->bip8_errors))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_STAT_ID_RX_GEM_PACKETS)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->rx_gem_packets))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_STAT_ID_RX_GEM_DROPPED)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->rx_gem_dropped))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_STAT_ID_RX_GEM_IDLE)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->rx_gem_idle))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_STAT_ID_RX_GEM_CORRECTED)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->rx_gem_corrected))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_STAT_ID_RX_GEM_ILLEGAL)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->rx_gem_illegal))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_STAT_ID_RX_ALLOCATIONS_VALID)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->rx_allocations_valid))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_STAT_ID_RX_ALLOCATIONS_INVALID)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->rx_allocations_invalid))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_STAT_ID_RX_ALLOCATIONS_DISABLED)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->rx_allocations_disabled))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_STAT_ID_RX_PLOAMS)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->rx_ploams))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_STAT_ID_RX_PLOAMS_NON_IDLE)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->rx_ploams_non_idle))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_STAT_ID_RX_PLOAMS_ERROR)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->rx_ploams_error))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_STAT_ID_RX_PLOAMS_DROPPED)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->rx_ploams_dropped))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_STAT_ID_RX_CPU)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->rx_cpu))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_STAT_ID_RX_OMCI)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->rx_omci))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_STAT_ID_RX_OMCI_PACKETS_CRC_ERROR)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->rx_omci_packets_crc_error))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_STAT_ID_RX_DROPPED_TOO_SHORT)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->rx_dropped_too_short))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_STAT_ID_RX_DROPPED_TOO_LONG)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->rx_dropped_too_long))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_STAT_ID_RX_CRC_ERRORS)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->rx_crc_errors))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_STAT_ID_RX_KEY_ERRORS)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->rx_key_errors))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_STAT_ID_RX_FRAGMENTS_ERRORS)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->rx_fragments_errors))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_STAT_ID_RX_PACKETS_DROPPED)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->rx_packets_dropped))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_STAT_ID_TX_GEM)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->tx_gem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_STAT_ID_TX_PLOAMS)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->tx_ploams))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_STAT_ID_TX_GEM_FRAGMENTS)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->tx_gem_fragments))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_STAT_ID_TX_CPU)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->tx_cpu))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_STAT_ID_TX_OMCI)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->tx_omci))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_STAT_ID_TX_CPU_OMCI_PACKETS_DROPPED)) != 0)
+    {
+        if (!bcmolt_buf_read_u8(buf, &this->tx_cpu_omci_packets_dropped))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_STAT_ID_TX_DROPPED_ILLEGAL_LENGTH)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->tx_dropped_illegal_length))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_STAT_ID_TX_DROPPED_TPID_MISS)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->tx_dropped_tpid_miss))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_STAT_ID_TX_DROPPED_VID_MISS)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->tx_dropped_vid_miss))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_ni_stat_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_STAT_ID_FEC_CODEWORDS)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_STAT_ID_FEC_CODEWORDS_UNCORRECTED)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_STAT_ID_BIP8_BYTES)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_STAT_ID_BIP8_ERRORS)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_STAT_ID_RX_GEM_PACKETS)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_STAT_ID_RX_GEM_DROPPED)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_STAT_ID_RX_GEM_IDLE)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_STAT_ID_RX_GEM_CORRECTED)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_STAT_ID_RX_GEM_ILLEGAL)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_STAT_ID_RX_ALLOCATIONS_VALID)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_STAT_ID_RX_ALLOCATIONS_INVALID)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_STAT_ID_RX_ALLOCATIONS_DISABLED)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_STAT_ID_RX_PLOAMS)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_STAT_ID_RX_PLOAMS_NON_IDLE)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_STAT_ID_RX_PLOAMS_ERROR)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_STAT_ID_RX_PLOAMS_DROPPED)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_STAT_ID_RX_CPU)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_STAT_ID_RX_OMCI)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_STAT_ID_RX_OMCI_PACKETS_CRC_ERROR)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_STAT_ID_RX_DROPPED_TOO_SHORT)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_STAT_ID_RX_DROPPED_TOO_LONG)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_STAT_ID_RX_CRC_ERRORS)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_STAT_ID_RX_KEY_ERRORS)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_STAT_ID_RX_FRAGMENTS_ERRORS)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_STAT_ID_RX_PACKETS_DROPPED)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_STAT_ID_TX_GEM)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_STAT_ID_TX_PLOAMS)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_STAT_ID_TX_GEM_FRAGMENTS)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_STAT_ID_TX_CPU)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_STAT_ID_TX_OMCI)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_STAT_ID_TX_CPU_OMCI_PACKETS_DROPPED)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_STAT_ID_TX_DROPPED_ILLEGAL_LENGTH)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_STAT_ID_TX_DROPPED_TPID_MISS)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_STAT_ID_TX_DROPPED_VID_MISS)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_ni_stat_data_bounds_check(const bcmolt_gpon_ni_stat_data *this, bcmolt_presence_mask fields_present, bcmolt_gpon_ni_stat_id *failed_prop)
+{
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_gpon_ni_stat_cfg_data_set_default(bcmolt_gpon_ni_stat_cfg_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_STAT_CFG_ID_CFG)) != 0)
+    {
+        this->cfg.trigger.type = BCMOLT_STAT_CONDITION_TYPE_NONE;
+        this->cfg.soak.active_soak_time = 0;
+        this->cfg.soak.clear_soak_time = 0;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_ni_stat_cfg_data_pack(const bcmolt_gpon_ni_stat_cfg_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_STAT_CFG_ID_CFG)) != 0)
+    {
+        if (!bcmolt_stat_alarm_config_pack(&this->cfg, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_gpon_ni_stat_cfg_data_get_packed_length(const bcmolt_gpon_ni_stat_cfg_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_STAT_CFG_ID_CFG)) != 0)
+    {
+        count += bcmolt_stat_alarm_config_get_packed_length(&this->cfg);
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_ni_stat_cfg_data_unpack(bcmolt_gpon_ni_stat_cfg_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_STAT_CFG_ID_CFG)) != 0)
+    {
+        if (!bcmolt_stat_alarm_config_unpack(&this->cfg, buf, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_ni_stat_cfg_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_STAT_CFG_ID_CFG)) != 0)
+    {
+        if (!bcmolt_stat_alarm_config_scan(packed, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_ni_stat_cfg_data_bounds_check(const bcmolt_gpon_ni_stat_cfg_data *this, bcmolt_presence_mask fields_present, bcmolt_gpon_ni_stat_cfg_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_STAT_CFG_ID_CFG)) != 0)
+    {
+        if (!bcmolt_stat_alarm_config_bounds_check(&this->cfg))
+        {
+            *failed_prop = BCMOLT_GPON_NI_STAT_CFG_ID_CFG;
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_gpon_ni_cpu_packets_failure_data_set_default(bcmolt_gpon_ni_cpu_packets_failure_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_CPU_PACKETS_FAILURE_ID_ERROR)) != 0)
+    {
+        this->error = BCMOLT_PACKET_INJECTION_ERROR_GEM_PORT_NOT_ACTIVE;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_CPU_PACKETS_FAILURE_ID_GEM_PORT_ID)) != 0)
+    {
+        this->gem_port_id = (bcmolt_gpon_gem_id) 0;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_ni_cpu_packets_failure_data_pack(const bcmolt_gpon_ni_cpu_packets_failure_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_CPU_PACKETS_FAILURE_ID_ERROR)) != 0)
+    {
+        if (!bcmolt_packet_injection_error_pack(this->error, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_CPU_PACKETS_FAILURE_ID_GEM_PORT_ID)) != 0)
+    {
+        if (!bcmolt_buf_write_u16(buf, (uint16_t) this->gem_port_id))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_gpon_ni_cpu_packets_failure_data_get_packed_length(const bcmolt_gpon_ni_cpu_packets_failure_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_CPU_PACKETS_FAILURE_ID_ERROR)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_CPU_PACKETS_FAILURE_ID_GEM_PORT_ID)) != 0)
+    {
+        count += 2;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_ni_cpu_packets_failure_data_unpack(bcmolt_gpon_ni_cpu_packets_failure_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_CPU_PACKETS_FAILURE_ID_ERROR)) != 0)
+    {
+        if (!bcmolt_packet_injection_error_unpack(&this->error, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_CPU_PACKETS_FAILURE_ID_GEM_PORT_ID)) != 0)
+    {
+        if (!bcmolt_buf_read_u16(buf, (uint16_t *) &this->gem_port_id))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_ni_cpu_packets_failure_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_CPU_PACKETS_FAILURE_ID_ERROR)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_CPU_PACKETS_FAILURE_ID_GEM_PORT_ID)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 2))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_ni_cpu_packets_failure_data_bounds_check(const bcmolt_gpon_ni_cpu_packets_failure_data *this, bcmolt_presence_mask fields_present, bcmolt_gpon_ni_cpu_packets_failure_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_CPU_PACKETS_FAILURE_ID_ERROR)) != 0)
+    {
+        switch (this->error)
+        {
+            case BCMOLT_PACKET_INJECTION_ERROR_GEM_PORT_NOT_ACTIVE:
+                break;
+            default:
+                *failed_prop = BCMOLT_GPON_NI_CPU_PACKETS_FAILURE_ID_ERROR;
+                return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_CPU_PACKETS_FAILURE_ID_GEM_PORT_ID)) != 0)
+    {
+        if (this->gem_port_id > (bcmolt_gpon_gem_id) 4095)
+        {
+            *failed_prop = BCMOLT_GPON_NI_CPU_PACKETS_FAILURE_ID_GEM_PORT_ID;
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_gpon_ni_los_data_set_default(bcmolt_gpon_ni_los_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_LOS_ID_STATUS)) != 0)
+    {
+        this->status = BCMOLT_STATUS_OFF;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_ni_los_data_pack(const bcmolt_gpon_ni_los_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_LOS_ID_STATUS)) != 0)
+    {
+        if (!bcmolt_status_pack(this->status, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_gpon_ni_los_data_get_packed_length(const bcmolt_gpon_ni_los_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_LOS_ID_STATUS)) != 0)
+    {
+        count += 1;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_ni_los_data_unpack(bcmolt_gpon_ni_los_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_LOS_ID_STATUS)) != 0)
+    {
+        if (!bcmolt_status_unpack(&this->status, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_ni_los_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_LOS_ID_STATUS)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_ni_los_data_bounds_check(const bcmolt_gpon_ni_los_data *this, bcmolt_presence_mask fields_present, bcmolt_gpon_ni_los_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_LOS_ID_STATUS)) != 0)
+    {
+        switch (this->status)
+        {
+            case BCMOLT_STATUS_OFF:
+                break;
+            case BCMOLT_STATUS_ON:
+                break;
+            case BCMOLT_STATUS_NO_CHANGE:
+                break;
+            default:
+                *failed_prop = BCMOLT_GPON_NI_LOS_ID_STATUS;
+                return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_gpon_ni_onu_discovered_data_set_default(bcmolt_gpon_ni_onu_discovered_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_ONU_DISCOVERED_ID_SERIAL_NUMBER)) != 0)
+    {
+        memset(this->serial_number.vendor_id, 0, sizeof(this->serial_number.vendor_id));
+        memset(this->serial_number.vendor_specific, 0, sizeof(this->serial_number.vendor_specific));
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_ONU_DISCOVERED_ID_RANGING_TIME)) != 0)
+    {
+        this->ranging_time = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_ONU_DISCOVERED_ID_ONU_ID)) != 0)
+    {
+        this->onu_id = (bcmolt_gpon_onu_id) 0;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_ni_onu_discovered_data_pack(const bcmolt_gpon_ni_onu_discovered_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_ONU_DISCOVERED_ID_SERIAL_NUMBER)) != 0)
+    {
+        if (!bcmolt_serial_number_pack(&this->serial_number, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_ONU_DISCOVERED_ID_RANGING_TIME)) != 0)
+    {
+        if (!bcmolt_buf_write_u32(buf, this->ranging_time))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_ONU_DISCOVERED_ID_ONU_ID)) != 0)
+    {
+        if (!bcmolt_buf_write_u16(buf, (uint16_t) this->onu_id))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_gpon_ni_onu_discovered_data_get_packed_length(const bcmolt_gpon_ni_onu_discovered_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_ONU_DISCOVERED_ID_SERIAL_NUMBER)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_ONU_DISCOVERED_ID_RANGING_TIME)) != 0)
+    {
+        count += 4;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_ONU_DISCOVERED_ID_ONU_ID)) != 0)
+    {
+        count += 2;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_ni_onu_discovered_data_unpack(bcmolt_gpon_ni_onu_discovered_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_ONU_DISCOVERED_ID_SERIAL_NUMBER)) != 0)
+    {
+        if (!bcmolt_serial_number_unpack(&this->serial_number, buf, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_ONU_DISCOVERED_ID_RANGING_TIME)) != 0)
+    {
+        if (!bcmolt_buf_read_u32(buf, &this->ranging_time))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_ONU_DISCOVERED_ID_ONU_ID)) != 0)
+    {
+        if (!bcmolt_buf_read_u16(buf, (uint16_t *) &this->onu_id))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_ni_onu_discovered_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_ONU_DISCOVERED_ID_SERIAL_NUMBER)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_ONU_DISCOVERED_ID_RANGING_TIME)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 4))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_ONU_DISCOVERED_ID_ONU_ID)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 2))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_ni_onu_discovered_data_bounds_check(const bcmolt_gpon_ni_onu_discovered_data *this, bcmolt_presence_mask fields_present, bcmolt_gpon_ni_onu_discovered_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_ONU_DISCOVERED_ID_SERIAL_NUMBER)) != 0)
+    {
+        if (!bcmolt_serial_number_bounds_check(&this->serial_number))
+        {
+            *failed_prop = BCMOLT_GPON_NI_ONU_DISCOVERED_ID_SERIAL_NUMBER;
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_ONU_DISCOVERED_ID_ONU_ID)) != 0)
+    {
+        if (this->onu_id > (bcmolt_gpon_onu_id) 127)
+        {
+            *failed_prop = BCMOLT_GPON_NI_ONU_DISCOVERED_ID_ONU_ID;
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_gpon_ni_onu_upgrade_complete_data_set_default(bcmolt_gpon_ni_onu_upgrade_complete_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_ONU_UPGRADE_COMPLETE_ID_STATUS)) != 0)
+    {
+        this->status = BCMOS_FALSE;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_ONU_UPGRADE_COMPLETE_ID_LIST_OF_FAILED_ENTITIES)) != 0)
+    {
+        this->list_of_failed_entities.len = 0;
+        this->list_of_failed_entities.val = NULL;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_ni_onu_upgrade_complete_data_pack(const bcmolt_gpon_ni_onu_upgrade_complete_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_ONU_UPGRADE_COMPLETE_ID_STATUS)) != 0)
+    {
+        if (!bcmolt_buf_write_bool(buf, this->status))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_ONU_UPGRADE_COMPLETE_ID_LIST_OF_FAILED_ENTITIES)) != 0)
+    {
+        if (!bcmolt_gpon_onu_upgrade_status_list_u32_pack(&this->list_of_failed_entities, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_gpon_ni_onu_upgrade_complete_data_get_packed_length(const bcmolt_gpon_ni_onu_upgrade_complete_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_ONU_UPGRADE_COMPLETE_ID_STATUS)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_ONU_UPGRADE_COMPLETE_ID_LIST_OF_FAILED_ENTITIES)) != 0)
+    {
+        count += bcmolt_gpon_onu_upgrade_status_list_u32_get_packed_length(&this->list_of_failed_entities);
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_ni_onu_upgrade_complete_data_unpack(bcmolt_gpon_ni_onu_upgrade_complete_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_ONU_UPGRADE_COMPLETE_ID_STATUS)) != 0)
+    {
+        if (!bcmolt_buf_read_bool(buf, &this->status))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_ONU_UPGRADE_COMPLETE_ID_LIST_OF_FAILED_ENTITIES)) != 0)
+    {
+        if (!bcmolt_gpon_onu_upgrade_status_list_u32_unpack(&this->list_of_failed_entities, buf, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_ni_onu_upgrade_complete_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_ONU_UPGRADE_COMPLETE_ID_STATUS)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_ONU_UPGRADE_COMPLETE_ID_LIST_OF_FAILED_ENTITIES)) != 0)
+    {
+        if (!bcmolt_gpon_onu_upgrade_status_list_u32_scan(packed, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_ni_onu_upgrade_complete_data_bounds_check(const bcmolt_gpon_ni_onu_upgrade_complete_data *this, bcmolt_presence_mask fields_present, bcmolt_gpon_ni_onu_upgrade_complete_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_ONU_UPGRADE_COMPLETE_ID_LIST_OF_FAILED_ENTITIES)) != 0)
+    {
+        if (!bcmolt_gpon_onu_upgrade_status_list_u32_bounds_check(&this->list_of_failed_entities))
+        {
+            *failed_prop = BCMOLT_GPON_NI_ONU_UPGRADE_COMPLETE_ID_LIST_OF_FAILED_ENTITIES;
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_gpon_ni_protection_switching_onus_ranged_data_set_default(bcmolt_gpon_ni_protection_switching_onus_ranged_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_PROTECTION_SWITCHING_ONUS_RANGED_ID_ONUS)) != 0)
+    {
+        this->onus.len = 0;
+        this->onus.val = NULL;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_ni_protection_switching_onus_ranged_data_pack(const bcmolt_gpon_ni_protection_switching_onus_ranged_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_PROTECTION_SWITCHING_ONUS_RANGED_ID_ONUS)) != 0)
+    {
+        if (!bcmolt_gpon_onu_eqd_list_u32_pack(&this->onus, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_gpon_ni_protection_switching_onus_ranged_data_get_packed_length(const bcmolt_gpon_ni_protection_switching_onus_ranged_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_PROTECTION_SWITCHING_ONUS_RANGED_ID_ONUS)) != 0)
+    {
+        count += bcmolt_gpon_onu_eqd_list_u32_get_packed_length(&this->onus);
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_ni_protection_switching_onus_ranged_data_unpack(bcmolt_gpon_ni_protection_switching_onus_ranged_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_PROTECTION_SWITCHING_ONUS_RANGED_ID_ONUS)) != 0)
+    {
+        if (!bcmolt_gpon_onu_eqd_list_u32_unpack(&this->onus, buf, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_ni_protection_switching_onus_ranged_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_PROTECTION_SWITCHING_ONUS_RANGED_ID_ONUS)) != 0)
+    {
+        if (!bcmolt_gpon_onu_eqd_list_u32_scan(packed, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_ni_protection_switching_onus_ranged_data_bounds_check(const bcmolt_gpon_ni_protection_switching_onus_ranged_data *this, bcmolt_presence_mask fields_present, bcmolt_gpon_ni_protection_switching_onus_ranged_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_PROTECTION_SWITCHING_ONUS_RANGED_ID_ONUS)) != 0)
+    {
+        if (!bcmolt_gpon_onu_eqd_list_u32_bounds_check(&this->onus))
+        {
+            *failed_prop = BCMOLT_GPON_NI_PROTECTION_SWITCHING_ONUS_RANGED_ID_ONUS;
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_gpon_ni_protection_switching_switchover_completed_data_set_default(bcmolt_gpon_ni_protection_switching_switchover_completed_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_PROTECTION_SWITCHING_SWITCHOVER_COMPLETED_ID_RESULT)) != 0)
+    {
+        this->result = BCMOLT_RESULT_SUCCESS;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_ni_protection_switching_switchover_completed_data_pack(const bcmolt_gpon_ni_protection_switching_switchover_completed_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_PROTECTION_SWITCHING_SWITCHOVER_COMPLETED_ID_RESULT)) != 0)
+    {
+        if (!bcmolt_result_pack(this->result, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_gpon_ni_protection_switching_switchover_completed_data_get_packed_length(const bcmolt_gpon_ni_protection_switching_switchover_completed_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_PROTECTION_SWITCHING_SWITCHOVER_COMPLETED_ID_RESULT)) != 0)
+    {
+        count += 1;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_ni_protection_switching_switchover_completed_data_unpack(bcmolt_gpon_ni_protection_switching_switchover_completed_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_PROTECTION_SWITCHING_SWITCHOVER_COMPLETED_ID_RESULT)) != 0)
+    {
+        if (!bcmolt_result_unpack(&this->result, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_ni_protection_switching_switchover_completed_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_PROTECTION_SWITCHING_SWITCHOVER_COMPLETED_ID_RESULT)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_ni_protection_switching_switchover_completed_data_bounds_check(const bcmolt_gpon_ni_protection_switching_switchover_completed_data *this, bcmolt_presence_mask fields_present, bcmolt_gpon_ni_protection_switching_switchover_completed_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_PROTECTION_SWITCHING_SWITCHOVER_COMPLETED_ID_RESULT)) != 0)
+    {
+        switch (this->result)
+        {
+            case BCMOLT_RESULT_SUCCESS:
+                break;
+            case BCMOLT_RESULT_FAIL:
+                break;
+            default:
+                *failed_prop = BCMOLT_GPON_NI_PROTECTION_SWITCHING_SWITCHOVER_COMPLETED_ID_RESULT;
+                return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_gpon_ni_protection_switching_traffic_resume_data_set_default(bcmolt_gpon_ni_protection_switching_traffic_resume_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_PROTECTION_SWITCHING_TRAFFIC_RESUME_ID_RESULT)) != 0)
+    {
+        this->result = BCMOLT_TRAFFIC_RESUME_RESULT_SUCCESS;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_ni_protection_switching_traffic_resume_data_pack(const bcmolt_gpon_ni_protection_switching_traffic_resume_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_PROTECTION_SWITCHING_TRAFFIC_RESUME_ID_RESULT)) != 0)
+    {
+        if (!bcmolt_traffic_resume_result_pack(this->result, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_gpon_ni_protection_switching_traffic_resume_data_get_packed_length(const bcmolt_gpon_ni_protection_switching_traffic_resume_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_PROTECTION_SWITCHING_TRAFFIC_RESUME_ID_RESULT)) != 0)
+    {
+        count += 1;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_ni_protection_switching_traffic_resume_data_unpack(bcmolt_gpon_ni_protection_switching_traffic_resume_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_PROTECTION_SWITCHING_TRAFFIC_RESUME_ID_RESULT)) != 0)
+    {
+        if (!bcmolt_traffic_resume_result_unpack(&this->result, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_ni_protection_switching_traffic_resume_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_PROTECTION_SWITCHING_TRAFFIC_RESUME_ID_RESULT)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_ni_protection_switching_traffic_resume_data_bounds_check(const bcmolt_gpon_ni_protection_switching_traffic_resume_data *this, bcmolt_presence_mask fields_present, bcmolt_gpon_ni_protection_switching_traffic_resume_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_PROTECTION_SWITCHING_TRAFFIC_RESUME_ID_RESULT)) != 0)
+    {
+        switch (this->result)
+        {
+            case BCMOLT_TRAFFIC_RESUME_RESULT_SUCCESS:
+                break;
+            case BCMOLT_TRAFFIC_RESUME_RESULT_FAILURE:
+                break;
+            case BCMOLT_TRAFFIC_RESUME_RESULT_SUSPECTED_LOS:
+                break;
+            default:
+                *failed_prop = BCMOLT_GPON_NI_PROTECTION_SWITCHING_TRAFFIC_RESUME_ID_RESULT;
+                return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_gpon_ni_rogue_detection_completed_data_set_default(bcmolt_gpon_ni_rogue_detection_completed_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_ROGUE_DETECTION_COMPLETED_ID_WINDOW_TYPE)) != 0)
+    {
+        this->window_type = BCMOLT_ROGUE_DETECTION_WINDOW_SILENT_WINDOW;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_ROGUE_DETECTION_COMPLETED_ID_MEASUREMENT_STATUS)) != 0)
+    {
+        this->measurement_status = BCMOLT_ROGUE_MEASUREMENT_RESULT_RSSI_COMPLETE;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_ROGUE_DETECTION_COMPLETED_ID_ALLOC_ID)) != 0)
+    {
+        this->alloc_id = (bcmolt_gpon_alloc_id) 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_ROGUE_DETECTION_COMPLETED_ID_ONU_ID)) != 0)
+    {
+        this->onu_id = (bcmolt_gpon_onu_id) 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_ROGUE_DETECTION_COMPLETED_ID_IS_DELINEATION)) != 0)
+    {
+        this->is_delineation = BCMOS_FALSE;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_ROGUE_DETECTION_COMPLETED_ID_IS_ED)) != 0)
+    {
+        this->is_ed = BCMOS_FALSE;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_ROGUE_DETECTION_COMPLETED_ID_RX_DATA)) != 0)
+    {
+        this->rx_data.len = 0;
+        this->rx_data.val = NULL;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_ROGUE_DETECTION_COMPLETED_ID_PLOAM_RECEIVED_ONU_ID)) != 0)
+    {
+        this->ploam_received_onu_id = (bcmolt_gpon_onu_id) 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_ROGUE_DETECTION_COMPLETED_ID_PLOAM_RECEIVED_CRC_ERROR)) != 0)
+    {
+        this->ploam_received_crc_error = BCMOS_FALSE;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_ni_rogue_detection_completed_data_pack(const bcmolt_gpon_ni_rogue_detection_completed_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_ROGUE_DETECTION_COMPLETED_ID_WINDOW_TYPE)) != 0)
+    {
+        if (!bcmolt_rogue_detection_window_pack(this->window_type, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_ROGUE_DETECTION_COMPLETED_ID_MEASUREMENT_STATUS)) != 0)
+    {
+        if (!bcmolt_rogue_measurement_result_pack(this->measurement_status, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_ROGUE_DETECTION_COMPLETED_ID_ALLOC_ID)) != 0)
+    {
+        if (!bcmolt_buf_write_u16(buf, (uint16_t) this->alloc_id))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_ROGUE_DETECTION_COMPLETED_ID_ONU_ID)) != 0)
+    {
+        if (!bcmolt_buf_write_u16(buf, (uint16_t) this->onu_id))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_ROGUE_DETECTION_COMPLETED_ID_IS_DELINEATION)) != 0)
+    {
+        if (!bcmolt_buf_write_bool(buf, this->is_delineation))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_ROGUE_DETECTION_COMPLETED_ID_IS_ED)) != 0)
+    {
+        if (!bcmolt_buf_write_bool(buf, this->is_ed))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_ROGUE_DETECTION_COMPLETED_ID_RX_DATA)) != 0)
+    {
+        if (!bcmolt_u8_list_u32_pack(&this->rx_data, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_ROGUE_DETECTION_COMPLETED_ID_PLOAM_RECEIVED_ONU_ID)) != 0)
+    {
+        if (!bcmolt_buf_write_u16(buf, (uint16_t) this->ploam_received_onu_id))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_ROGUE_DETECTION_COMPLETED_ID_PLOAM_RECEIVED_CRC_ERROR)) != 0)
+    {
+        if (!bcmolt_buf_write_bool(buf, this->ploam_received_crc_error))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_gpon_ni_rogue_detection_completed_data_get_packed_length(const bcmolt_gpon_ni_rogue_detection_completed_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_ROGUE_DETECTION_COMPLETED_ID_WINDOW_TYPE)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_ROGUE_DETECTION_COMPLETED_ID_MEASUREMENT_STATUS)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_ROGUE_DETECTION_COMPLETED_ID_ALLOC_ID)) != 0)
+    {
+        count += 2;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_ROGUE_DETECTION_COMPLETED_ID_ONU_ID)) != 0)
+    {
+        count += 2;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_ROGUE_DETECTION_COMPLETED_ID_IS_DELINEATION)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_ROGUE_DETECTION_COMPLETED_ID_IS_ED)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_ROGUE_DETECTION_COMPLETED_ID_RX_DATA)) != 0)
+    {
+        count += bcmolt_u8_list_u32_get_packed_length(&this->rx_data);
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_ROGUE_DETECTION_COMPLETED_ID_PLOAM_RECEIVED_ONU_ID)) != 0)
+    {
+        count += 2;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_ROGUE_DETECTION_COMPLETED_ID_PLOAM_RECEIVED_CRC_ERROR)) != 0)
+    {
+        count += 1;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_ni_rogue_detection_completed_data_unpack(bcmolt_gpon_ni_rogue_detection_completed_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_ROGUE_DETECTION_COMPLETED_ID_WINDOW_TYPE)) != 0)
+    {
+        if (!bcmolt_rogue_detection_window_unpack(&this->window_type, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_ROGUE_DETECTION_COMPLETED_ID_MEASUREMENT_STATUS)) != 0)
+    {
+        if (!bcmolt_rogue_measurement_result_unpack(&this->measurement_status, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_ROGUE_DETECTION_COMPLETED_ID_ALLOC_ID)) != 0)
+    {
+        if (!bcmolt_buf_read_u16(buf, (uint16_t *) &this->alloc_id))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_ROGUE_DETECTION_COMPLETED_ID_ONU_ID)) != 0)
+    {
+        if (!bcmolt_buf_read_u16(buf, (uint16_t *) &this->onu_id))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_ROGUE_DETECTION_COMPLETED_ID_IS_DELINEATION)) != 0)
+    {
+        if (!bcmolt_buf_read_bool(buf, &this->is_delineation))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_ROGUE_DETECTION_COMPLETED_ID_IS_ED)) != 0)
+    {
+        if (!bcmolt_buf_read_bool(buf, &this->is_ed))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_ROGUE_DETECTION_COMPLETED_ID_RX_DATA)) != 0)
+    {
+        if (!bcmolt_u8_list_u32_unpack(&this->rx_data, buf, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_ROGUE_DETECTION_COMPLETED_ID_PLOAM_RECEIVED_ONU_ID)) != 0)
+    {
+        if (!bcmolt_buf_read_u16(buf, (uint16_t *) &this->ploam_received_onu_id))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_ROGUE_DETECTION_COMPLETED_ID_PLOAM_RECEIVED_CRC_ERROR)) != 0)
+    {
+        if (!bcmolt_buf_read_bool(buf, &this->ploam_received_crc_error))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_ni_rogue_detection_completed_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_ROGUE_DETECTION_COMPLETED_ID_WINDOW_TYPE)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_ROGUE_DETECTION_COMPLETED_ID_MEASUREMENT_STATUS)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_ROGUE_DETECTION_COMPLETED_ID_ALLOC_ID)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 2))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_ROGUE_DETECTION_COMPLETED_ID_ONU_ID)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 2))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_ROGUE_DETECTION_COMPLETED_ID_IS_DELINEATION)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_ROGUE_DETECTION_COMPLETED_ID_IS_ED)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_ROGUE_DETECTION_COMPLETED_ID_RX_DATA)) != 0)
+    {
+        if (!bcmolt_u8_list_u32_scan(packed, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_ROGUE_DETECTION_COMPLETED_ID_PLOAM_RECEIVED_ONU_ID)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 2))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_ROGUE_DETECTION_COMPLETED_ID_PLOAM_RECEIVED_CRC_ERROR)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_ni_rogue_detection_completed_data_bounds_check(const bcmolt_gpon_ni_rogue_detection_completed_data *this, bcmolt_presence_mask fields_present, bcmolt_gpon_ni_rogue_detection_completed_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_ROGUE_DETECTION_COMPLETED_ID_WINDOW_TYPE)) != 0)
+    {
+        switch (this->window_type)
+        {
+            case BCMOLT_ROGUE_DETECTION_WINDOW_SILENT_WINDOW:
+                break;
+            case BCMOLT_ROGUE_DETECTION_WINDOW_CUT_OFF_WINDOW:
+                break;
+            default:
+                *failed_prop = BCMOLT_GPON_NI_ROGUE_DETECTION_COMPLETED_ID_WINDOW_TYPE;
+                return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_ROGUE_DETECTION_COMPLETED_ID_MEASUREMENT_STATUS)) != 0)
+    {
+        switch (this->measurement_status)
+        {
+            case BCMOLT_ROGUE_MEASUREMENT_RESULT_RSSI_COMPLETE:
+                break;
+            case BCMOLT_ROGUE_MEASUREMENT_RESULT_NOT_PERFORMED:
+                break;
+            case BCMOLT_ROGUE_MEASUREMENT_RESULT_ROGUE_CYCLE_STOP:
+                break;
+            case BCMOLT_ROGUE_MEASUREMENT_RESULT_RSSI_ERROR:
+                break;
+            case BCMOLT_ROGUE_MEASUREMENT_RESULT_RSSI_NOT_COMPLETE:
+                break;
+            default:
+                *failed_prop = BCMOLT_GPON_NI_ROGUE_DETECTION_COMPLETED_ID_MEASUREMENT_STATUS;
+                return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_ROGUE_DETECTION_COMPLETED_ID_ALLOC_ID)) != 0)
+    {
+        if (this->alloc_id > (bcmolt_gpon_alloc_id) 4095)
+        {
+            *failed_prop = BCMOLT_GPON_NI_ROGUE_DETECTION_COMPLETED_ID_ALLOC_ID;
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_ROGUE_DETECTION_COMPLETED_ID_ONU_ID)) != 0)
+    {
+        if (this->onu_id > (bcmolt_gpon_onu_id) 127)
+        {
+            *failed_prop = BCMOLT_GPON_NI_ROGUE_DETECTION_COMPLETED_ID_ONU_ID;
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_ROGUE_DETECTION_COMPLETED_ID_RX_DATA)) != 0)
+    {
+        if (!bcmolt_u8_list_u32_bounds_check(&this->rx_data))
+        {
+            *failed_prop = BCMOLT_GPON_NI_ROGUE_DETECTION_COMPLETED_ID_RX_DATA;
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_ROGUE_DETECTION_COMPLETED_ID_PLOAM_RECEIVED_ONU_ID)) != 0)
+    {
+        if (this->ploam_received_onu_id > (bcmolt_gpon_onu_id) 127)
+        {
+            *failed_prop = BCMOLT_GPON_NI_ROGUE_DETECTION_COMPLETED_ID_PLOAM_RECEIVED_ONU_ID;
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_gpon_ni_standby_pon_monitoring_cycle_completed_data_set_default(bcmolt_gpon_ni_standby_pon_monitoring_cycle_completed_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_STANDBY_PON_MONITORING_CYCLE_COMPLETED_ID_NUMBER_OF_DETECTED_DELIMITER)) != 0)
+    {
+        this->number_of_detected_delimiter = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_STANDBY_PON_MONITORING_CYCLE_COMPLETED_ID_ENERGY_DETECT_SIGNAL)) != 0)
+    {
+        this->energy_detect_signal = BCMOLT_STATUS_OFF;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_ni_standby_pon_monitoring_cycle_completed_data_pack(const bcmolt_gpon_ni_standby_pon_monitoring_cycle_completed_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_STANDBY_PON_MONITORING_CYCLE_COMPLETED_ID_NUMBER_OF_DETECTED_DELIMITER)) != 0)
+    {
+        if (!bcmolt_buf_write_u32(buf, this->number_of_detected_delimiter))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_STANDBY_PON_MONITORING_CYCLE_COMPLETED_ID_ENERGY_DETECT_SIGNAL)) != 0)
+    {
+        if (!bcmolt_status_pack(this->energy_detect_signal, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_gpon_ni_standby_pon_monitoring_cycle_completed_data_get_packed_length(const bcmolt_gpon_ni_standby_pon_monitoring_cycle_completed_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_STANDBY_PON_MONITORING_CYCLE_COMPLETED_ID_NUMBER_OF_DETECTED_DELIMITER)) != 0)
+    {
+        count += 4;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_STANDBY_PON_MONITORING_CYCLE_COMPLETED_ID_ENERGY_DETECT_SIGNAL)) != 0)
+    {
+        count += 1;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_ni_standby_pon_monitoring_cycle_completed_data_unpack(bcmolt_gpon_ni_standby_pon_monitoring_cycle_completed_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_STANDBY_PON_MONITORING_CYCLE_COMPLETED_ID_NUMBER_OF_DETECTED_DELIMITER)) != 0)
+    {
+        if (!bcmolt_buf_read_u32(buf, &this->number_of_detected_delimiter))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_STANDBY_PON_MONITORING_CYCLE_COMPLETED_ID_ENERGY_DETECT_SIGNAL)) != 0)
+    {
+        if (!bcmolt_status_unpack(&this->energy_detect_signal, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_ni_standby_pon_monitoring_cycle_completed_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_STANDBY_PON_MONITORING_CYCLE_COMPLETED_ID_NUMBER_OF_DETECTED_DELIMITER)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 4))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_STANDBY_PON_MONITORING_CYCLE_COMPLETED_ID_ENERGY_DETECT_SIGNAL)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_ni_standby_pon_monitoring_cycle_completed_data_bounds_check(const bcmolt_gpon_ni_standby_pon_monitoring_cycle_completed_data *this, bcmolt_presence_mask fields_present, bcmolt_gpon_ni_standby_pon_monitoring_cycle_completed_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_STANDBY_PON_MONITORING_CYCLE_COMPLETED_ID_ENERGY_DETECT_SIGNAL)) != 0)
+    {
+        switch (this->energy_detect_signal)
+        {
+            case BCMOLT_STATUS_OFF:
+                break;
+            case BCMOLT_STATUS_ON:
+                break;
+            case BCMOLT_STATUS_NO_CHANGE:
+                break;
+            default:
+                *failed_prop = BCMOLT_GPON_NI_STANDBY_PON_MONITORING_CYCLE_COMPLETED_ID_ENERGY_DETECT_SIGNAL;
+                return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_gpon_ni_stat_alarm_cleared_data_set_default(bcmolt_gpon_ni_stat_alarm_cleared_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_STAT_ALARM_CLEARED_ID_STAT)) != 0)
+    {
+        this->stat = BCMOLT_GPON_NI_STAT_ID_FEC_CODEWORDS;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_ni_stat_alarm_cleared_data_pack(const bcmolt_gpon_ni_stat_alarm_cleared_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_STAT_ALARM_CLEARED_ID_STAT)) != 0)
+    {
+        if (!bcmolt_gpon_ni_stat_id_pack(this->stat, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_gpon_ni_stat_alarm_cleared_data_get_packed_length(const bcmolt_gpon_ni_stat_alarm_cleared_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_STAT_ALARM_CLEARED_ID_STAT)) != 0)
+    {
+        count += 2;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_ni_stat_alarm_cleared_data_unpack(bcmolt_gpon_ni_stat_alarm_cleared_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_STAT_ALARM_CLEARED_ID_STAT)) != 0)
+    {
+        if (!bcmolt_gpon_ni_stat_id_unpack(&this->stat, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_ni_stat_alarm_cleared_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_STAT_ALARM_CLEARED_ID_STAT)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 2))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_ni_stat_alarm_cleared_data_bounds_check(const bcmolt_gpon_ni_stat_alarm_cleared_data *this, bcmolt_presence_mask fields_present, bcmolt_gpon_ni_stat_alarm_cleared_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_STAT_ALARM_CLEARED_ID_STAT)) != 0)
+    {
+        switch (this->stat)
+        {
+            case BCMOLT_GPON_NI_STAT_ID_FEC_CODEWORDS:
+                break;
+            case BCMOLT_GPON_NI_STAT_ID_FEC_CODEWORDS_UNCORRECTED:
+                break;
+            case BCMOLT_GPON_NI_STAT_ID_BIP8_BYTES:
+                break;
+            case BCMOLT_GPON_NI_STAT_ID_BIP8_ERRORS:
+                break;
+            case BCMOLT_GPON_NI_STAT_ID_RX_GEM_PACKETS:
+                break;
+            case BCMOLT_GPON_NI_STAT_ID_RX_GEM_DROPPED:
+                break;
+            case BCMOLT_GPON_NI_STAT_ID_RX_GEM_IDLE:
+                break;
+            case BCMOLT_GPON_NI_STAT_ID_RX_GEM_CORRECTED:
+                break;
+            case BCMOLT_GPON_NI_STAT_ID_RX_GEM_ILLEGAL:
+                break;
+            case BCMOLT_GPON_NI_STAT_ID_RX_ALLOCATIONS_VALID:
+                break;
+            case BCMOLT_GPON_NI_STAT_ID_RX_ALLOCATIONS_INVALID:
+                break;
+            case BCMOLT_GPON_NI_STAT_ID_RX_ALLOCATIONS_DISABLED:
+                break;
+            case BCMOLT_GPON_NI_STAT_ID_RX_PLOAMS:
+                break;
+            case BCMOLT_GPON_NI_STAT_ID_RX_PLOAMS_NON_IDLE:
+                break;
+            case BCMOLT_GPON_NI_STAT_ID_RX_PLOAMS_ERROR:
+                break;
+            case BCMOLT_GPON_NI_STAT_ID_RX_PLOAMS_DROPPED:
+                break;
+            case BCMOLT_GPON_NI_STAT_ID_RX_CPU:
+                break;
+            case BCMOLT_GPON_NI_STAT_ID_RX_OMCI:
+                break;
+            case BCMOLT_GPON_NI_STAT_ID_RX_OMCI_PACKETS_CRC_ERROR:
+                break;
+            case BCMOLT_GPON_NI_STAT_ID_RX_DROPPED_TOO_SHORT:
+                break;
+            case BCMOLT_GPON_NI_STAT_ID_RX_DROPPED_TOO_LONG:
+                break;
+            case BCMOLT_GPON_NI_STAT_ID_RX_CRC_ERRORS:
+                break;
+            case BCMOLT_GPON_NI_STAT_ID_RX_KEY_ERRORS:
+                break;
+            case BCMOLT_GPON_NI_STAT_ID_RX_FRAGMENTS_ERRORS:
+                break;
+            case BCMOLT_GPON_NI_STAT_ID_RX_PACKETS_DROPPED:
+                break;
+            case BCMOLT_GPON_NI_STAT_ID_TX_GEM:
+                break;
+            case BCMOLT_GPON_NI_STAT_ID_TX_PLOAMS:
+                break;
+            case BCMOLT_GPON_NI_STAT_ID_TX_GEM_FRAGMENTS:
+                break;
+            case BCMOLT_GPON_NI_STAT_ID_TX_CPU:
+                break;
+            case BCMOLT_GPON_NI_STAT_ID_TX_OMCI:
+                break;
+            case BCMOLT_GPON_NI_STAT_ID_TX_CPU_OMCI_PACKETS_DROPPED:
+                break;
+            case BCMOLT_GPON_NI_STAT_ID_TX_DROPPED_ILLEGAL_LENGTH:
+                break;
+            case BCMOLT_GPON_NI_STAT_ID_TX_DROPPED_TPID_MISS:
+                break;
+            case BCMOLT_GPON_NI_STAT_ID_TX_DROPPED_VID_MISS:
+                break;
+            default:
+                *failed_prop = BCMOLT_GPON_NI_STAT_ALARM_CLEARED_ID_STAT;
+                return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_gpon_ni_stat_alarm_raised_data_set_default(bcmolt_gpon_ni_stat_alarm_raised_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_STAT_ALARM_RAISED_ID_STAT)) != 0)
+    {
+        this->stat = BCMOLT_GPON_NI_STAT_ID_FEC_CODEWORDS;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_ni_stat_alarm_raised_data_pack(const bcmolt_gpon_ni_stat_alarm_raised_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_STAT_ALARM_RAISED_ID_STAT)) != 0)
+    {
+        if (!bcmolt_gpon_ni_stat_id_pack(this->stat, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_gpon_ni_stat_alarm_raised_data_get_packed_length(const bcmolt_gpon_ni_stat_alarm_raised_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_STAT_ALARM_RAISED_ID_STAT)) != 0)
+    {
+        count += 2;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_ni_stat_alarm_raised_data_unpack(bcmolt_gpon_ni_stat_alarm_raised_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_STAT_ALARM_RAISED_ID_STAT)) != 0)
+    {
+        if (!bcmolt_gpon_ni_stat_id_unpack(&this->stat, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_ni_stat_alarm_raised_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_STAT_ALARM_RAISED_ID_STAT)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 2))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_ni_stat_alarm_raised_data_bounds_check(const bcmolt_gpon_ni_stat_alarm_raised_data *this, bcmolt_presence_mask fields_present, bcmolt_gpon_ni_stat_alarm_raised_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_STAT_ALARM_RAISED_ID_STAT)) != 0)
+    {
+        switch (this->stat)
+        {
+            case BCMOLT_GPON_NI_STAT_ID_FEC_CODEWORDS:
+                break;
+            case BCMOLT_GPON_NI_STAT_ID_FEC_CODEWORDS_UNCORRECTED:
+                break;
+            case BCMOLT_GPON_NI_STAT_ID_BIP8_BYTES:
+                break;
+            case BCMOLT_GPON_NI_STAT_ID_BIP8_ERRORS:
+                break;
+            case BCMOLT_GPON_NI_STAT_ID_RX_GEM_PACKETS:
+                break;
+            case BCMOLT_GPON_NI_STAT_ID_RX_GEM_DROPPED:
+                break;
+            case BCMOLT_GPON_NI_STAT_ID_RX_GEM_IDLE:
+                break;
+            case BCMOLT_GPON_NI_STAT_ID_RX_GEM_CORRECTED:
+                break;
+            case BCMOLT_GPON_NI_STAT_ID_RX_GEM_ILLEGAL:
+                break;
+            case BCMOLT_GPON_NI_STAT_ID_RX_ALLOCATIONS_VALID:
+                break;
+            case BCMOLT_GPON_NI_STAT_ID_RX_ALLOCATIONS_INVALID:
+                break;
+            case BCMOLT_GPON_NI_STAT_ID_RX_ALLOCATIONS_DISABLED:
+                break;
+            case BCMOLT_GPON_NI_STAT_ID_RX_PLOAMS:
+                break;
+            case BCMOLT_GPON_NI_STAT_ID_RX_PLOAMS_NON_IDLE:
+                break;
+            case BCMOLT_GPON_NI_STAT_ID_RX_PLOAMS_ERROR:
+                break;
+            case BCMOLT_GPON_NI_STAT_ID_RX_PLOAMS_DROPPED:
+                break;
+            case BCMOLT_GPON_NI_STAT_ID_RX_CPU:
+                break;
+            case BCMOLT_GPON_NI_STAT_ID_RX_OMCI:
+                break;
+            case BCMOLT_GPON_NI_STAT_ID_RX_OMCI_PACKETS_CRC_ERROR:
+                break;
+            case BCMOLT_GPON_NI_STAT_ID_RX_DROPPED_TOO_SHORT:
+                break;
+            case BCMOLT_GPON_NI_STAT_ID_RX_DROPPED_TOO_LONG:
+                break;
+            case BCMOLT_GPON_NI_STAT_ID_RX_CRC_ERRORS:
+                break;
+            case BCMOLT_GPON_NI_STAT_ID_RX_KEY_ERRORS:
+                break;
+            case BCMOLT_GPON_NI_STAT_ID_RX_FRAGMENTS_ERRORS:
+                break;
+            case BCMOLT_GPON_NI_STAT_ID_RX_PACKETS_DROPPED:
+                break;
+            case BCMOLT_GPON_NI_STAT_ID_TX_GEM:
+                break;
+            case BCMOLT_GPON_NI_STAT_ID_TX_PLOAMS:
+                break;
+            case BCMOLT_GPON_NI_STAT_ID_TX_GEM_FRAGMENTS:
+                break;
+            case BCMOLT_GPON_NI_STAT_ID_TX_CPU:
+                break;
+            case BCMOLT_GPON_NI_STAT_ID_TX_OMCI:
+                break;
+            case BCMOLT_GPON_NI_STAT_ID_TX_CPU_OMCI_PACKETS_DROPPED:
+                break;
+            case BCMOLT_GPON_NI_STAT_ID_TX_DROPPED_ILLEGAL_LENGTH:
+                break;
+            case BCMOLT_GPON_NI_STAT_ID_TX_DROPPED_TPID_MISS:
+                break;
+            case BCMOLT_GPON_NI_STAT_ID_TX_DROPPED_VID_MISS:
+                break;
+            default:
+                *failed_prop = BCMOLT_GPON_NI_STAT_ALARM_RAISED_ID_STAT;
+                return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_gpon_ni_state_change_completed_data_set_default(bcmolt_gpon_ni_state_change_completed_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_STATE_CHANGE_COMPLETED_ID_RESULT)) != 0)
+    {
+        this->result = BCMOLT_RESULT_SUCCESS;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_STATE_CHANGE_COMPLETED_ID_PREVIOUS_STATE)) != 0)
+    {
+        this->previous_state = BCMOLT_PON_STATE_INACTIVE;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_STATE_CHANGE_COMPLETED_ID_NEW_STATE)) != 0)
+    {
+        this->new_state = BCMOLT_PON_STATE_INACTIVE;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_ni_state_change_completed_data_pack(const bcmolt_gpon_ni_state_change_completed_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_STATE_CHANGE_COMPLETED_ID_RESULT)) != 0)
+    {
+        if (!bcmolt_result_pack(this->result, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_STATE_CHANGE_COMPLETED_ID_PREVIOUS_STATE)) != 0)
+    {
+        if (!bcmolt_pon_state_pack(this->previous_state, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_STATE_CHANGE_COMPLETED_ID_NEW_STATE)) != 0)
+    {
+        if (!bcmolt_pon_state_pack(this->new_state, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_gpon_ni_state_change_completed_data_get_packed_length(const bcmolt_gpon_ni_state_change_completed_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_STATE_CHANGE_COMPLETED_ID_RESULT)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_STATE_CHANGE_COMPLETED_ID_PREVIOUS_STATE)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_STATE_CHANGE_COMPLETED_ID_NEW_STATE)) != 0)
+    {
+        count += 1;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_ni_state_change_completed_data_unpack(bcmolt_gpon_ni_state_change_completed_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_STATE_CHANGE_COMPLETED_ID_RESULT)) != 0)
+    {
+        if (!bcmolt_result_unpack(&this->result, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_STATE_CHANGE_COMPLETED_ID_PREVIOUS_STATE)) != 0)
+    {
+        if (!bcmolt_pon_state_unpack(&this->previous_state, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_STATE_CHANGE_COMPLETED_ID_NEW_STATE)) != 0)
+    {
+        if (!bcmolt_pon_state_unpack(&this->new_state, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_ni_state_change_completed_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_STATE_CHANGE_COMPLETED_ID_RESULT)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_STATE_CHANGE_COMPLETED_ID_PREVIOUS_STATE)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_STATE_CHANGE_COMPLETED_ID_NEW_STATE)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_ni_state_change_completed_data_bounds_check(const bcmolt_gpon_ni_state_change_completed_data *this, bcmolt_presence_mask fields_present, bcmolt_gpon_ni_state_change_completed_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_STATE_CHANGE_COMPLETED_ID_RESULT)) != 0)
+    {
+        switch (this->result)
+        {
+            case BCMOLT_RESULT_SUCCESS:
+                break;
+            case BCMOLT_RESULT_FAIL:
+                break;
+            default:
+                *failed_prop = BCMOLT_GPON_NI_STATE_CHANGE_COMPLETED_ID_RESULT;
+                return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_STATE_CHANGE_COMPLETED_ID_PREVIOUS_STATE)) != 0)
+    {
+        switch (this->previous_state)
+        {
+            case BCMOLT_PON_STATE_INACTIVE:
+                break;
+            case BCMOLT_PON_STATE_PROCESSING:
+                break;
+            case BCMOLT_PON_STATE_ACTIVE_WORKING:
+                break;
+            case BCMOLT_PON_STATE_ACTIVE_STANDBY:
+                break;
+            default:
+                *failed_prop = BCMOLT_GPON_NI_STATE_CHANGE_COMPLETED_ID_PREVIOUS_STATE;
+                return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_STATE_CHANGE_COMPLETED_ID_NEW_STATE)) != 0)
+    {
+        switch (this->new_state)
+        {
+            case BCMOLT_PON_STATE_INACTIVE:
+                break;
+            case BCMOLT_PON_STATE_PROCESSING:
+                break;
+            case BCMOLT_PON_STATE_ACTIVE_WORKING:
+                break;
+            case BCMOLT_PON_STATE_ACTIVE_STANDBY:
+                break;
+            default:
+                *failed_prop = BCMOLT_GPON_NI_STATE_CHANGE_COMPLETED_ID_NEW_STATE;
+                return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_gpon_ni_tod_request_completed_data_set_default(bcmolt_gpon_ni_tod_request_completed_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_TOD_REQUEST_COMPLETED_ID_TOD_STRING)) != 0)
+    {
+        memset(this->tod_string.str, 0, 64);
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_TOD_REQUEST_COMPLETED_ID_SFC)) != 0)
+    {
+        this->sfc = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_TOD_REQUEST_COMPLETED_ID_RTC_OFFSET_SEC)) != 0)
+    {
+        this->rtc_offset_sec = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_TOD_REQUEST_COMPLETED_ID_RTC_OFFSET_NSEC)) != 0)
+    {
+        this->rtc_offset_nsec = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_TOD_REQUEST_COMPLETED_ID_STATUS)) != 0)
+    {
+        this->status = BCMOLT_RESULT_SUCCESS;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_ni_tod_request_completed_data_pack(const bcmolt_gpon_ni_tod_request_completed_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_TOD_REQUEST_COMPLETED_ID_TOD_STRING)) != 0)
+    {
+        if (!bcmolt_str_64_pack(&this->tod_string, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_TOD_REQUEST_COMPLETED_ID_SFC)) != 0)
+    {
+        if (!bcmolt_buf_write_u32(buf, this->sfc))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_TOD_REQUEST_COMPLETED_ID_RTC_OFFSET_SEC)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->rtc_offset_sec))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_TOD_REQUEST_COMPLETED_ID_RTC_OFFSET_NSEC)) != 0)
+    {
+        if (!bcmolt_buf_write_u32(buf, this->rtc_offset_nsec))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_TOD_REQUEST_COMPLETED_ID_STATUS)) != 0)
+    {
+        if (!bcmolt_result_pack(this->status, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_gpon_ni_tod_request_completed_data_get_packed_length(const bcmolt_gpon_ni_tod_request_completed_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_TOD_REQUEST_COMPLETED_ID_TOD_STRING)) != 0)
+    {
+        count += 64;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_TOD_REQUEST_COMPLETED_ID_SFC)) != 0)
+    {
+        count += 4;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_TOD_REQUEST_COMPLETED_ID_RTC_OFFSET_SEC)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_TOD_REQUEST_COMPLETED_ID_RTC_OFFSET_NSEC)) != 0)
+    {
+        count += 4;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_TOD_REQUEST_COMPLETED_ID_STATUS)) != 0)
+    {
+        count += 1;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_ni_tod_request_completed_data_unpack(bcmolt_gpon_ni_tod_request_completed_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_TOD_REQUEST_COMPLETED_ID_TOD_STRING)) != 0)
+    {
+        if (!bcmolt_str_64_unpack(&this->tod_string, buf, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_TOD_REQUEST_COMPLETED_ID_SFC)) != 0)
+    {
+        if (!bcmolt_buf_read_u32(buf, &this->sfc))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_TOD_REQUEST_COMPLETED_ID_RTC_OFFSET_SEC)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->rtc_offset_sec))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_TOD_REQUEST_COMPLETED_ID_RTC_OFFSET_NSEC)) != 0)
+    {
+        if (!bcmolt_buf_read_u32(buf, &this->rtc_offset_nsec))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_TOD_REQUEST_COMPLETED_ID_STATUS)) != 0)
+    {
+        if (!bcmolt_result_unpack(&this->status, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_ni_tod_request_completed_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_TOD_REQUEST_COMPLETED_ID_TOD_STRING)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 64))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_TOD_REQUEST_COMPLETED_ID_SFC)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 4))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_TOD_REQUEST_COMPLETED_ID_RTC_OFFSET_SEC)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_TOD_REQUEST_COMPLETED_ID_RTC_OFFSET_NSEC)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 4))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_TOD_REQUEST_COMPLETED_ID_STATUS)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_ni_tod_request_completed_data_bounds_check(const bcmolt_gpon_ni_tod_request_completed_data *this, bcmolt_presence_mask fields_present, bcmolt_gpon_ni_tod_request_completed_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_TOD_REQUEST_COMPLETED_ID_TOD_STRING)) != 0)
+    {
+        if (!bcmolt_str_64_bounds_check(&this->tod_string))
+        {
+            *failed_prop = BCMOLT_GPON_NI_TOD_REQUEST_COMPLETED_ID_TOD_STRING;
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_TOD_REQUEST_COMPLETED_ID_STATUS)) != 0)
+    {
+        switch (this->status)
+        {
+            case BCMOLT_RESULT_SUCCESS:
+                break;
+            case BCMOLT_RESULT_FAIL:
+                break;
+            default:
+                *failed_prop = BCMOLT_GPON_NI_TOD_REQUEST_COMPLETED_ID_STATUS;
+                return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_gpon_ni_auto_cfg_data_set_default(bcmolt_gpon_ni_auto_cfg_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_AUTO_CFG_ID_ACTIVATE_ALL_ONUS_COMPLETED)) != 0)
+    {
+        this->activate_all_onus_completed = BCMOS_FALSE;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_AUTO_CFG_ID_CPU_PACKETS_FAILURE)) != 0)
+    {
+        this->cpu_packets_failure = BCMOS_FALSE;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_AUTO_CFG_ID_DEACTIVATE_ALL_ONUS_COMPLETED)) != 0)
+    {
+        this->deactivate_all_onus_completed = BCMOS_FALSE;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_AUTO_CFG_ID_DISABLE_ALL_ONUS_COMPLETED)) != 0)
+    {
+        this->disable_all_onus_completed = BCMOS_FALSE;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_AUTO_CFG_ID_ENABLE_ALL_ONUS_COMPLETED)) != 0)
+    {
+        this->enable_all_onus_completed = BCMOS_FALSE;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_AUTO_CFG_ID_LOS)) != 0)
+    {
+        this->los = BCMOS_FALSE;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_AUTO_CFG_ID_ONU_DISCOVERED)) != 0)
+    {
+        this->onu_discovered = BCMOS_FALSE;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_AUTO_CFG_ID_ONU_UPGRADE_COMPLETE)) != 0)
+    {
+        this->onu_upgrade_complete = BCMOS_FALSE;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_AUTO_CFG_ID_PROTECTION_SWITCHING_ONUS_RANGED)) != 0)
+    {
+        this->protection_switching_onus_ranged = BCMOS_FALSE;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_AUTO_CFG_ID_PROTECTION_SWITCHING_SWITCHOVER_COMPLETED)) != 0)
+    {
+        this->protection_switching_switchover_completed = BCMOS_FALSE;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_AUTO_CFG_ID_PROTECTION_SWITCHING_TRAFFIC_RESUME)) != 0)
+    {
+        this->protection_switching_traffic_resume = BCMOS_FALSE;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_AUTO_CFG_ID_ROGUE_DETECTION_COMPLETED)) != 0)
+    {
+        this->rogue_detection_completed = BCMOS_FALSE;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_AUTO_CFG_ID_ROGUE_ONU_SPECIAL_MAP_CYCLE_START)) != 0)
+    {
+        this->rogue_onu_special_map_cycle_start = BCMOS_FALSE;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_AUTO_CFG_ID_SERIAL_NUMBER_ACQUISITION_CYCLE_START)) != 0)
+    {
+        this->serial_number_acquisition_cycle_start = BCMOS_FALSE;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_AUTO_CFG_ID_STANDBY_PON_MONITORING_CYCLE_COMPLETED)) != 0)
+    {
+        this->standby_pon_monitoring_cycle_completed = BCMOS_FALSE;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_AUTO_CFG_ID_STAT_ALARM_CLEARED)) != 0)
+    {
+        this->stat_alarm_cleared = BCMOS_FALSE;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_AUTO_CFG_ID_STAT_ALARM_RAISED)) != 0)
+    {
+        this->stat_alarm_raised = BCMOS_FALSE;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_AUTO_CFG_ID_STATE_CHANGE_COMPLETED)) != 0)
+    {
+        this->state_change_completed = BCMOS_FALSE;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_AUTO_CFG_ID_TOD_REQUEST_COMPLETED)) != 0)
+    {
+        this->tod_request_completed = BCMOS_FALSE;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_ni_auto_cfg_data_pack(const bcmolt_gpon_ni_auto_cfg_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_AUTO_CFG_ID_ACTIVATE_ALL_ONUS_COMPLETED)) != 0)
+    {
+        if (!bcmolt_buf_write_bool(buf, this->activate_all_onus_completed))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_AUTO_CFG_ID_CPU_PACKETS_FAILURE)) != 0)
+    {
+        if (!bcmolt_buf_write_bool(buf, this->cpu_packets_failure))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_AUTO_CFG_ID_DEACTIVATE_ALL_ONUS_COMPLETED)) != 0)
+    {
+        if (!bcmolt_buf_write_bool(buf, this->deactivate_all_onus_completed))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_AUTO_CFG_ID_DISABLE_ALL_ONUS_COMPLETED)) != 0)
+    {
+        if (!bcmolt_buf_write_bool(buf, this->disable_all_onus_completed))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_AUTO_CFG_ID_ENABLE_ALL_ONUS_COMPLETED)) != 0)
+    {
+        if (!bcmolt_buf_write_bool(buf, this->enable_all_onus_completed))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_AUTO_CFG_ID_LOS)) != 0)
+    {
+        if (!bcmolt_buf_write_bool(buf, this->los))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_AUTO_CFG_ID_ONU_DISCOVERED)) != 0)
+    {
+        if (!bcmolt_buf_write_bool(buf, this->onu_discovered))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_AUTO_CFG_ID_ONU_UPGRADE_COMPLETE)) != 0)
+    {
+        if (!bcmolt_buf_write_bool(buf, this->onu_upgrade_complete))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_AUTO_CFG_ID_PROTECTION_SWITCHING_ONUS_RANGED)) != 0)
+    {
+        if (!bcmolt_buf_write_bool(buf, this->protection_switching_onus_ranged))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_AUTO_CFG_ID_PROTECTION_SWITCHING_SWITCHOVER_COMPLETED)) != 0)
+    {
+        if (!bcmolt_buf_write_bool(buf, this->protection_switching_switchover_completed))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_AUTO_CFG_ID_PROTECTION_SWITCHING_TRAFFIC_RESUME)) != 0)
+    {
+        if (!bcmolt_buf_write_bool(buf, this->protection_switching_traffic_resume))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_AUTO_CFG_ID_ROGUE_DETECTION_COMPLETED)) != 0)
+    {
+        if (!bcmolt_buf_write_bool(buf, this->rogue_detection_completed))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_AUTO_CFG_ID_ROGUE_ONU_SPECIAL_MAP_CYCLE_START)) != 0)
+    {
+        if (!bcmolt_buf_write_bool(buf, this->rogue_onu_special_map_cycle_start))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_AUTO_CFG_ID_SERIAL_NUMBER_ACQUISITION_CYCLE_START)) != 0)
+    {
+        if (!bcmolt_buf_write_bool(buf, this->serial_number_acquisition_cycle_start))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_AUTO_CFG_ID_STANDBY_PON_MONITORING_CYCLE_COMPLETED)) != 0)
+    {
+        if (!bcmolt_buf_write_bool(buf, this->standby_pon_monitoring_cycle_completed))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_AUTO_CFG_ID_STAT_ALARM_CLEARED)) != 0)
+    {
+        if (!bcmolt_buf_write_bool(buf, this->stat_alarm_cleared))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_AUTO_CFG_ID_STAT_ALARM_RAISED)) != 0)
+    {
+        if (!bcmolt_buf_write_bool(buf, this->stat_alarm_raised))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_AUTO_CFG_ID_STATE_CHANGE_COMPLETED)) != 0)
+    {
+        if (!bcmolt_buf_write_bool(buf, this->state_change_completed))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_AUTO_CFG_ID_TOD_REQUEST_COMPLETED)) != 0)
+    {
+        if (!bcmolt_buf_write_bool(buf, this->tod_request_completed))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_gpon_ni_auto_cfg_data_get_packed_length(const bcmolt_gpon_ni_auto_cfg_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_AUTO_CFG_ID_ACTIVATE_ALL_ONUS_COMPLETED)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_AUTO_CFG_ID_CPU_PACKETS_FAILURE)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_AUTO_CFG_ID_DEACTIVATE_ALL_ONUS_COMPLETED)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_AUTO_CFG_ID_DISABLE_ALL_ONUS_COMPLETED)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_AUTO_CFG_ID_ENABLE_ALL_ONUS_COMPLETED)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_AUTO_CFG_ID_LOS)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_AUTO_CFG_ID_ONU_DISCOVERED)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_AUTO_CFG_ID_ONU_UPGRADE_COMPLETE)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_AUTO_CFG_ID_PROTECTION_SWITCHING_ONUS_RANGED)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_AUTO_CFG_ID_PROTECTION_SWITCHING_SWITCHOVER_COMPLETED)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_AUTO_CFG_ID_PROTECTION_SWITCHING_TRAFFIC_RESUME)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_AUTO_CFG_ID_ROGUE_DETECTION_COMPLETED)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_AUTO_CFG_ID_ROGUE_ONU_SPECIAL_MAP_CYCLE_START)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_AUTO_CFG_ID_SERIAL_NUMBER_ACQUISITION_CYCLE_START)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_AUTO_CFG_ID_STANDBY_PON_MONITORING_CYCLE_COMPLETED)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_AUTO_CFG_ID_STAT_ALARM_CLEARED)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_AUTO_CFG_ID_STAT_ALARM_RAISED)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_AUTO_CFG_ID_STATE_CHANGE_COMPLETED)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_AUTO_CFG_ID_TOD_REQUEST_COMPLETED)) != 0)
+    {
+        count += 1;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_ni_auto_cfg_data_unpack(bcmolt_gpon_ni_auto_cfg_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_AUTO_CFG_ID_ACTIVATE_ALL_ONUS_COMPLETED)) != 0)
+    {
+        if (!bcmolt_buf_read_bool(buf, &this->activate_all_onus_completed))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_AUTO_CFG_ID_CPU_PACKETS_FAILURE)) != 0)
+    {
+        if (!bcmolt_buf_read_bool(buf, &this->cpu_packets_failure))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_AUTO_CFG_ID_DEACTIVATE_ALL_ONUS_COMPLETED)) != 0)
+    {
+        if (!bcmolt_buf_read_bool(buf, &this->deactivate_all_onus_completed))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_AUTO_CFG_ID_DISABLE_ALL_ONUS_COMPLETED)) != 0)
+    {
+        if (!bcmolt_buf_read_bool(buf, &this->disable_all_onus_completed))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_AUTO_CFG_ID_ENABLE_ALL_ONUS_COMPLETED)) != 0)
+    {
+        if (!bcmolt_buf_read_bool(buf, &this->enable_all_onus_completed))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_AUTO_CFG_ID_LOS)) != 0)
+    {
+        if (!bcmolt_buf_read_bool(buf, &this->los))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_AUTO_CFG_ID_ONU_DISCOVERED)) != 0)
+    {
+        if (!bcmolt_buf_read_bool(buf, &this->onu_discovered))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_AUTO_CFG_ID_ONU_UPGRADE_COMPLETE)) != 0)
+    {
+        if (!bcmolt_buf_read_bool(buf, &this->onu_upgrade_complete))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_AUTO_CFG_ID_PROTECTION_SWITCHING_ONUS_RANGED)) != 0)
+    {
+        if (!bcmolt_buf_read_bool(buf, &this->protection_switching_onus_ranged))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_AUTO_CFG_ID_PROTECTION_SWITCHING_SWITCHOVER_COMPLETED)) != 0)
+    {
+        if (!bcmolt_buf_read_bool(buf, &this->protection_switching_switchover_completed))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_AUTO_CFG_ID_PROTECTION_SWITCHING_TRAFFIC_RESUME)) != 0)
+    {
+        if (!bcmolt_buf_read_bool(buf, &this->protection_switching_traffic_resume))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_AUTO_CFG_ID_ROGUE_DETECTION_COMPLETED)) != 0)
+    {
+        if (!bcmolt_buf_read_bool(buf, &this->rogue_detection_completed))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_AUTO_CFG_ID_ROGUE_ONU_SPECIAL_MAP_CYCLE_START)) != 0)
+    {
+        if (!bcmolt_buf_read_bool(buf, &this->rogue_onu_special_map_cycle_start))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_AUTO_CFG_ID_SERIAL_NUMBER_ACQUISITION_CYCLE_START)) != 0)
+    {
+        if (!bcmolt_buf_read_bool(buf, &this->serial_number_acquisition_cycle_start))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_AUTO_CFG_ID_STANDBY_PON_MONITORING_CYCLE_COMPLETED)) != 0)
+    {
+        if (!bcmolt_buf_read_bool(buf, &this->standby_pon_monitoring_cycle_completed))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_AUTO_CFG_ID_STAT_ALARM_CLEARED)) != 0)
+    {
+        if (!bcmolt_buf_read_bool(buf, &this->stat_alarm_cleared))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_AUTO_CFG_ID_STAT_ALARM_RAISED)) != 0)
+    {
+        if (!bcmolt_buf_read_bool(buf, &this->stat_alarm_raised))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_AUTO_CFG_ID_STATE_CHANGE_COMPLETED)) != 0)
+    {
+        if (!bcmolt_buf_read_bool(buf, &this->state_change_completed))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_AUTO_CFG_ID_TOD_REQUEST_COMPLETED)) != 0)
+    {
+        if (!bcmolt_buf_read_bool(buf, &this->tod_request_completed))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_ni_auto_cfg_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_AUTO_CFG_ID_ACTIVATE_ALL_ONUS_COMPLETED)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_AUTO_CFG_ID_CPU_PACKETS_FAILURE)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_AUTO_CFG_ID_DEACTIVATE_ALL_ONUS_COMPLETED)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_AUTO_CFG_ID_DISABLE_ALL_ONUS_COMPLETED)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_AUTO_CFG_ID_ENABLE_ALL_ONUS_COMPLETED)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_AUTO_CFG_ID_LOS)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_AUTO_CFG_ID_ONU_DISCOVERED)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_AUTO_CFG_ID_ONU_UPGRADE_COMPLETE)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_AUTO_CFG_ID_PROTECTION_SWITCHING_ONUS_RANGED)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_AUTO_CFG_ID_PROTECTION_SWITCHING_SWITCHOVER_COMPLETED)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_AUTO_CFG_ID_PROTECTION_SWITCHING_TRAFFIC_RESUME)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_AUTO_CFG_ID_ROGUE_DETECTION_COMPLETED)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_AUTO_CFG_ID_ROGUE_ONU_SPECIAL_MAP_CYCLE_START)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_AUTO_CFG_ID_SERIAL_NUMBER_ACQUISITION_CYCLE_START)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_AUTO_CFG_ID_STANDBY_PON_MONITORING_CYCLE_COMPLETED)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_AUTO_CFG_ID_STAT_ALARM_CLEARED)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_AUTO_CFG_ID_STAT_ALARM_RAISED)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_AUTO_CFG_ID_STATE_CHANGE_COMPLETED)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_AUTO_CFG_ID_TOD_REQUEST_COMPLETED)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_ni_auto_cfg_data_bounds_check(const bcmolt_gpon_ni_auto_cfg_data *this, bcmolt_presence_mask fields_present, bcmolt_gpon_ni_auto_cfg_id *failed_prop)
+{
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_gpon_ni_disable_serial_number_data_set_default(bcmolt_gpon_ni_disable_serial_number_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_DISABLE_SERIAL_NUMBER_ID_CONTROL)) != 0)
+    {
+        this->control = BCMOLT_DISABLE_SERIAL_NUMBER_CONTROL_UNICAST_DISABLE;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_DISABLE_SERIAL_NUMBER_ID_SERIAL_NUMBER)) != 0)
+    {
+        memset(this->serial_number.vendor_id, 0, sizeof(this->serial_number.vendor_id));
+        memset(this->serial_number.vendor_specific, 0, sizeof(this->serial_number.vendor_specific));
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_ni_disable_serial_number_data_pack(const bcmolt_gpon_ni_disable_serial_number_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_DISABLE_SERIAL_NUMBER_ID_CONTROL)) != 0)
+    {
+        if (!bcmolt_disable_serial_number_control_pack(this->control, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_DISABLE_SERIAL_NUMBER_ID_SERIAL_NUMBER)) != 0)
+    {
+        if (!bcmolt_serial_number_pack(&this->serial_number, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_gpon_ni_disable_serial_number_data_get_packed_length(const bcmolt_gpon_ni_disable_serial_number_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_DISABLE_SERIAL_NUMBER_ID_CONTROL)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_DISABLE_SERIAL_NUMBER_ID_SERIAL_NUMBER)) != 0)
+    {
+        count += 8;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_ni_disable_serial_number_data_unpack(bcmolt_gpon_ni_disable_serial_number_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_DISABLE_SERIAL_NUMBER_ID_CONTROL)) != 0)
+    {
+        if (!bcmolt_disable_serial_number_control_unpack(&this->control, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_DISABLE_SERIAL_NUMBER_ID_SERIAL_NUMBER)) != 0)
+    {
+        if (!bcmolt_serial_number_unpack(&this->serial_number, buf, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_ni_disable_serial_number_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_DISABLE_SERIAL_NUMBER_ID_CONTROL)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_DISABLE_SERIAL_NUMBER_ID_SERIAL_NUMBER)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_ni_disable_serial_number_data_bounds_check(const bcmolt_gpon_ni_disable_serial_number_data *this, bcmolt_presence_mask fields_present, bcmolt_gpon_ni_disable_serial_number_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_DISABLE_SERIAL_NUMBER_ID_CONTROL)) != 0)
+    {
+        switch (this->control)
+        {
+            case BCMOLT_DISABLE_SERIAL_NUMBER_CONTROL_UNICAST_DISABLE:
+                break;
+            case BCMOLT_DISABLE_SERIAL_NUMBER_CONTROL_UNICAST_ENABLE:
+                break;
+            case BCMOLT_DISABLE_SERIAL_NUMBER_CONTROL_BROADCAST_ENABLE:
+                break;
+            case BCMOLT_DISABLE_SERIAL_NUMBER_CONTROL_BROADCAST_DISABLE:
+                break;
+            case BCMOLT_DISABLE_SERIAL_NUMBER_CONTROL_DISABLE_DISCOVERY:
+                break;
+            default:
+                *failed_prop = BCMOLT_GPON_NI_DISABLE_SERIAL_NUMBER_ID_CONTROL;
+                return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_DISABLE_SERIAL_NUMBER_ID_SERIAL_NUMBER)) != 0)
+    {
+        if (!bcmolt_serial_number_bounds_check(&this->serial_number))
+        {
+            *failed_prop = BCMOLT_GPON_NI_DISABLE_SERIAL_NUMBER_ID_SERIAL_NUMBER;
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_gpon_ni_protection_switching_type_c_set_multiple_onu_state_data_set_default(bcmolt_gpon_ni_protection_switching_type_c_set_multiple_onu_state_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_PROTECTION_SWITCHING_TYPE_C_SET_MULTIPLE_ONU_STATE_ID_ONU_STATE)) != 0)
+    {
+        this->onu_state = BCMOLT_SWITCH_OVER_TYPE_C_ONU_STATE_ACTIVE;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_PROTECTION_SWITCHING_TYPE_C_SET_MULTIPLE_ONU_STATE_ID_ONU_LIST)) != 0)
+    {
+        this->onu_list.len = 0;
+        this->onu_list.val = NULL;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_ni_protection_switching_type_c_set_multiple_onu_state_data_pack(const bcmolt_gpon_ni_protection_switching_type_c_set_multiple_onu_state_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_PROTECTION_SWITCHING_TYPE_C_SET_MULTIPLE_ONU_STATE_ID_ONU_STATE)) != 0)
+    {
+        if (!bcmolt_switch_over_type_c_onu_state_pack(this->onu_state, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_PROTECTION_SWITCHING_TYPE_C_SET_MULTIPLE_ONU_STATE_ID_ONU_LIST)) != 0)
+    {
+        if (!bcmolt_gpon_onu_id_list_u32_max_256_pack(&this->onu_list, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_gpon_ni_protection_switching_type_c_set_multiple_onu_state_data_get_packed_length(const bcmolt_gpon_ni_protection_switching_type_c_set_multiple_onu_state_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_PROTECTION_SWITCHING_TYPE_C_SET_MULTIPLE_ONU_STATE_ID_ONU_STATE)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_PROTECTION_SWITCHING_TYPE_C_SET_MULTIPLE_ONU_STATE_ID_ONU_LIST)) != 0)
+    {
+        count += bcmolt_gpon_onu_id_list_u32_max_256_get_packed_length(&this->onu_list);
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_ni_protection_switching_type_c_set_multiple_onu_state_data_unpack(bcmolt_gpon_ni_protection_switching_type_c_set_multiple_onu_state_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_PROTECTION_SWITCHING_TYPE_C_SET_MULTIPLE_ONU_STATE_ID_ONU_STATE)) != 0)
+    {
+        if (!bcmolt_switch_over_type_c_onu_state_unpack(&this->onu_state, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_PROTECTION_SWITCHING_TYPE_C_SET_MULTIPLE_ONU_STATE_ID_ONU_LIST)) != 0)
+    {
+        if (!bcmolt_gpon_onu_id_list_u32_max_256_unpack(&this->onu_list, buf, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_ni_protection_switching_type_c_set_multiple_onu_state_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_PROTECTION_SWITCHING_TYPE_C_SET_MULTIPLE_ONU_STATE_ID_ONU_STATE)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_PROTECTION_SWITCHING_TYPE_C_SET_MULTIPLE_ONU_STATE_ID_ONU_LIST)) != 0)
+    {
+        if (!bcmolt_gpon_onu_id_list_u32_max_256_scan(packed, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_ni_protection_switching_type_c_set_multiple_onu_state_data_bounds_check(const bcmolt_gpon_ni_protection_switching_type_c_set_multiple_onu_state_data *this, bcmolt_presence_mask fields_present, bcmolt_gpon_ni_protection_switching_type_c_set_multiple_onu_state_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_PROTECTION_SWITCHING_TYPE_C_SET_MULTIPLE_ONU_STATE_ID_ONU_STATE)) != 0)
+    {
+        switch (this->onu_state)
+        {
+            case BCMOLT_SWITCH_OVER_TYPE_C_ONU_STATE_ACTIVE:
+                break;
+            case BCMOLT_SWITCH_OVER_TYPE_C_ONU_STATE_ACTIVE_STANDBY:
+                break;
+            default:
+                *failed_prop = BCMOLT_GPON_NI_PROTECTION_SWITCHING_TYPE_C_SET_MULTIPLE_ONU_STATE_ID_ONU_STATE;
+                return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_PROTECTION_SWITCHING_TYPE_C_SET_MULTIPLE_ONU_STATE_ID_ONU_LIST)) != 0)
+    {
+        if (this->onu_list.len > 256)
+        {
+            return BCMOS_FALSE;
+        }
+
+        if (!bcmolt_gpon_onu_id_list_u32_max_256_bounds_check(&this->onu_list))
+        {
+            *failed_prop = BCMOLT_GPON_NI_PROTECTION_SWITCHING_TYPE_C_SET_MULTIPLE_ONU_STATE_ID_ONU_LIST;
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_gpon_ni_rogue_detection_window_data_set_default(bcmolt_gpon_ni_rogue_detection_window_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_ROGUE_DETECTION_WINDOW_ID_WINDOW_TYPE)) != 0)
+    {
+        this->window_type = BCMOLT_ROGUE_DETECTION_WINDOW_SILENT_WINDOW;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_ROGUE_DETECTION_WINDOW_ID_ALLOC_ID)) != 0)
+    {
+        this->alloc_id = (bcmolt_gpon_alloc_id) 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_ROGUE_DETECTION_WINDOW_ID_ONU_ID)) != 0)
+    {
+        this->onu_id = (bcmolt_gpon_onu_id) 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_ROGUE_DETECTION_WINDOW_ID_SECOND_RANGING_WINDOW)) != 0)
+    {
+        this->second_ranging_window = BCMOS_FALSE;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_ni_rogue_detection_window_data_pack(const bcmolt_gpon_ni_rogue_detection_window_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_ROGUE_DETECTION_WINDOW_ID_WINDOW_TYPE)) != 0)
+    {
+        if (!bcmolt_rogue_detection_window_pack(this->window_type, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_ROGUE_DETECTION_WINDOW_ID_ALLOC_ID)) != 0)
+    {
+        if (!bcmolt_buf_write_u16(buf, (uint16_t) this->alloc_id))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_ROGUE_DETECTION_WINDOW_ID_ONU_ID)) != 0)
+    {
+        if (!bcmolt_buf_write_u16(buf, (uint16_t) this->onu_id))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_ROGUE_DETECTION_WINDOW_ID_SECOND_RANGING_WINDOW)) != 0)
+    {
+        if (!bcmolt_buf_write_bool(buf, this->second_ranging_window))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_gpon_ni_rogue_detection_window_data_get_packed_length(const bcmolt_gpon_ni_rogue_detection_window_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_ROGUE_DETECTION_WINDOW_ID_WINDOW_TYPE)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_ROGUE_DETECTION_WINDOW_ID_ALLOC_ID)) != 0)
+    {
+        count += 2;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_ROGUE_DETECTION_WINDOW_ID_ONU_ID)) != 0)
+    {
+        count += 2;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_ROGUE_DETECTION_WINDOW_ID_SECOND_RANGING_WINDOW)) != 0)
+    {
+        count += 1;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_ni_rogue_detection_window_data_unpack(bcmolt_gpon_ni_rogue_detection_window_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_ROGUE_DETECTION_WINDOW_ID_WINDOW_TYPE)) != 0)
+    {
+        if (!bcmolt_rogue_detection_window_unpack(&this->window_type, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_ROGUE_DETECTION_WINDOW_ID_ALLOC_ID)) != 0)
+    {
+        if (!bcmolt_buf_read_u16(buf, (uint16_t *) &this->alloc_id))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_ROGUE_DETECTION_WINDOW_ID_ONU_ID)) != 0)
+    {
+        if (!bcmolt_buf_read_u16(buf, (uint16_t *) &this->onu_id))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_ROGUE_DETECTION_WINDOW_ID_SECOND_RANGING_WINDOW)) != 0)
+    {
+        if (!bcmolt_buf_read_bool(buf, &this->second_ranging_window))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_ni_rogue_detection_window_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_ROGUE_DETECTION_WINDOW_ID_WINDOW_TYPE)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_ROGUE_DETECTION_WINDOW_ID_ALLOC_ID)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 2))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_ROGUE_DETECTION_WINDOW_ID_ONU_ID)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 2))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_ROGUE_DETECTION_WINDOW_ID_SECOND_RANGING_WINDOW)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_ni_rogue_detection_window_data_bounds_check(const bcmolt_gpon_ni_rogue_detection_window_data *this, bcmolt_presence_mask fields_present, bcmolt_gpon_ni_rogue_detection_window_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_ROGUE_DETECTION_WINDOW_ID_WINDOW_TYPE)) != 0)
+    {
+        switch (this->window_type)
+        {
+            case BCMOLT_ROGUE_DETECTION_WINDOW_SILENT_WINDOW:
+                break;
+            case BCMOLT_ROGUE_DETECTION_WINDOW_CUT_OFF_WINDOW:
+                break;
+            default:
+                *failed_prop = BCMOLT_GPON_NI_ROGUE_DETECTION_WINDOW_ID_WINDOW_TYPE;
+                return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_ROGUE_DETECTION_WINDOW_ID_ALLOC_ID)) != 0)
+    {
+        if (this->alloc_id > (bcmolt_gpon_alloc_id) 4095)
+        {
+            *failed_prop = BCMOLT_GPON_NI_ROGUE_DETECTION_WINDOW_ID_ALLOC_ID;
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_ROGUE_DETECTION_WINDOW_ID_ONU_ID)) != 0)
+    {
+        if (this->onu_id > (bcmolt_gpon_onu_id) 127)
+        {
+            *failed_prop = BCMOLT_GPON_NI_ROGUE_DETECTION_WINDOW_ID_ONU_ID;
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_gpon_ni_set_onu_state_data_set_default(bcmolt_gpon_ni_set_onu_state_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_SET_ONU_STATE_ID_ONU_STATE)) != 0)
+    {
+        this->onu_state = BCMOLT_ONU_OPERATION_INACTIVE;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_ni_set_onu_state_data_pack(const bcmolt_gpon_ni_set_onu_state_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_SET_ONU_STATE_ID_ONU_STATE)) != 0)
+    {
+        if (!bcmolt_onu_operation_pack(this->onu_state, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_gpon_ni_set_onu_state_data_get_packed_length(const bcmolt_gpon_ni_set_onu_state_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_SET_ONU_STATE_ID_ONU_STATE)) != 0)
+    {
+        count += 1;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_ni_set_onu_state_data_unpack(bcmolt_gpon_ni_set_onu_state_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_SET_ONU_STATE_ID_ONU_STATE)) != 0)
+    {
+        if (!bcmolt_onu_operation_unpack(&this->onu_state, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_ni_set_onu_state_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_SET_ONU_STATE_ID_ONU_STATE)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_ni_set_onu_state_data_bounds_check(const bcmolt_gpon_ni_set_onu_state_data *this, bcmolt_presence_mask fields_present, bcmolt_gpon_ni_set_onu_state_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_SET_ONU_STATE_ID_ONU_STATE)) != 0)
+    {
+        switch (this->onu_state)
+        {
+            case BCMOLT_ONU_OPERATION_INACTIVE:
+                break;
+            case BCMOLT_ONU_OPERATION_ACTIVE:
+                break;
+            case BCMOLT_ONU_OPERATION_DISABLE:
+                break;
+            case BCMOLT_ONU_OPERATION_ENABLE:
+                break;
+            case BCMOLT_ONU_OPERATION_ACTIVE_STANDBY:
+                break;
+            case BCMOLT_ONU_OPERATION_AWAKE_FREE:
+                break;
+            default:
+                *failed_prop = BCMOLT_GPON_NI_SET_ONU_STATE_ID_ONU_STATE;
+                return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_gpon_ni_set_pon_state_data_set_default(bcmolt_gpon_ni_set_pon_state_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_SET_PON_STATE_ID_PON_STATE)) != 0)
+    {
+        this->pon_state = BCMOLT_PON_OPERATION_INACTIVE;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_ni_set_pon_state_data_pack(const bcmolt_gpon_ni_set_pon_state_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_SET_PON_STATE_ID_PON_STATE)) != 0)
+    {
+        if (!bcmolt_pon_operation_pack(this->pon_state, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_gpon_ni_set_pon_state_data_get_packed_length(const bcmolt_gpon_ni_set_pon_state_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_SET_PON_STATE_ID_PON_STATE)) != 0)
+    {
+        count += 1;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_ni_set_pon_state_data_unpack(bcmolt_gpon_ni_set_pon_state_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_SET_PON_STATE_ID_PON_STATE)) != 0)
+    {
+        if (!bcmolt_pon_operation_unpack(&this->pon_state, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_ni_set_pon_state_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_SET_PON_STATE_ID_PON_STATE)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_ni_set_pon_state_data_bounds_check(const bcmolt_gpon_ni_set_pon_state_data *this, bcmolt_presence_mask fields_present, bcmolt_gpon_ni_set_pon_state_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_SET_PON_STATE_ID_PON_STATE)) != 0)
+    {
+        switch (this->pon_state)
+        {
+            case BCMOLT_PON_OPERATION_INACTIVE:
+                break;
+            case BCMOLT_PON_OPERATION_ACTIVE_WORKING:
+                break;
+            case BCMOLT_PON_OPERATION_ACTIVE_STANDBY:
+                break;
+            default:
+                *failed_prop = BCMOLT_GPON_NI_SET_PON_STATE_ID_PON_STATE;
+                return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_gpon_ni_start_onu_upgrade_data_set_default(bcmolt_gpon_ni_start_onu_upgrade_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_START_ONU_UPGRADE_ID_LIST_OF_ONU_IDS)) != 0)
+    {
+        this->list_of_onu_ids.len = 0;
+        this->list_of_onu_ids.val = NULL;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_ni_start_onu_upgrade_data_pack(const bcmolt_gpon_ni_start_onu_upgrade_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_START_ONU_UPGRADE_ID_LIST_OF_ONU_IDS)) != 0)
+    {
+        if (!bcmolt_pon_onu_id_list_u32_pack(&this->list_of_onu_ids, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_gpon_ni_start_onu_upgrade_data_get_packed_length(const bcmolt_gpon_ni_start_onu_upgrade_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_START_ONU_UPGRADE_ID_LIST_OF_ONU_IDS)) != 0)
+    {
+        count += bcmolt_pon_onu_id_list_u32_get_packed_length(&this->list_of_onu_ids);
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_ni_start_onu_upgrade_data_unpack(bcmolt_gpon_ni_start_onu_upgrade_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_START_ONU_UPGRADE_ID_LIST_OF_ONU_IDS)) != 0)
+    {
+        if (!bcmolt_pon_onu_id_list_u32_unpack(&this->list_of_onu_ids, buf, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_ni_start_onu_upgrade_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_START_ONU_UPGRADE_ID_LIST_OF_ONU_IDS)) != 0)
+    {
+        if (!bcmolt_pon_onu_id_list_u32_scan(packed, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_ni_start_onu_upgrade_data_bounds_check(const bcmolt_gpon_ni_start_onu_upgrade_data *this, bcmolt_presence_mask fields_present, bcmolt_gpon_ni_start_onu_upgrade_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_START_ONU_UPGRADE_ID_LIST_OF_ONU_IDS)) != 0)
+    {
+        if (!bcmolt_pon_onu_id_list_u32_bounds_check(&this->list_of_onu_ids))
+        {
+            *failed_prop = BCMOLT_GPON_NI_START_ONU_UPGRADE_ID_LIST_OF_ONU_IDS;
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_gpon_ni_broadcast_ploam_packet_data_set_default(bcmolt_gpon_ni_broadcast_ploam_packet_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_BROADCAST_PLOAM_PACKET_ID_PLOAM)) != 0)
+    {
+        memset(this->ploam.arr, 0, sizeof(this->ploam.arr));
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_ni_broadcast_ploam_packet_data_pack(const bcmolt_gpon_ni_broadcast_ploam_packet_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_BROADCAST_PLOAM_PACKET_ID_PLOAM)) != 0)
+    {
+        if (!bcmolt_arr_u8_12_pack(&this->ploam, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_gpon_ni_broadcast_ploam_packet_data_get_packed_length(const bcmolt_gpon_ni_broadcast_ploam_packet_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_BROADCAST_PLOAM_PACKET_ID_PLOAM)) != 0)
+    {
+        count += 12;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_ni_broadcast_ploam_packet_data_unpack(bcmolt_gpon_ni_broadcast_ploam_packet_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_BROADCAST_PLOAM_PACKET_ID_PLOAM)) != 0)
+    {
+        if (!bcmolt_arr_u8_12_unpack(&this->ploam, buf, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_ni_broadcast_ploam_packet_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_BROADCAST_PLOAM_PACKET_ID_PLOAM)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 12))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_ni_broadcast_ploam_packet_data_bounds_check(const bcmolt_gpon_ni_broadcast_ploam_packet_data *this, bcmolt_presence_mask fields_present, bcmolt_gpon_ni_broadcast_ploam_packet_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_BROADCAST_PLOAM_PACKET_ID_PLOAM)) != 0)
+    {
+        if (!bcmolt_arr_u8_12_bounds_check(&this->ploam))
+        {
+            *failed_prop = BCMOLT_GPON_NI_BROADCAST_PLOAM_PACKET_ID_PLOAM;
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_gpon_ni_cpu_packets_data_set_default(bcmolt_gpon_ni_cpu_packets_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_CPU_PACKETS_ID_PACKET_TYPE)) != 0)
+    {
+        this->packet_type = BCMOLT_PACKET_TYPE_CPU;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_CPU_PACKETS_ID_CALC_CRC)) != 0)
+    {
+        this->calc_crc = BCMOS_FALSE;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_CPU_PACKETS_ID_GEM_PORT_LIST)) != 0)
+    {
+        this->gem_port_list.len = 0;
+        this->gem_port_list.val = NULL;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_CPU_PACKETS_ID_BUFFER)) != 0)
+    {
+        this->buffer.len = 0;
+        this->buffer.val = NULL;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_ni_cpu_packets_data_pack(const bcmolt_gpon_ni_cpu_packets_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_CPU_PACKETS_ID_PACKET_TYPE)) != 0)
+    {
+        if (!bcmolt_packet_type_pack(this->packet_type, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_CPU_PACKETS_ID_CALC_CRC)) != 0)
+    {
+        if (!bcmolt_buf_write_bool(buf, this->calc_crc))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_CPU_PACKETS_ID_GEM_PORT_LIST)) != 0)
+    {
+        if (!bcmolt_gpon_gem_id_list_u8_max_16_pack(&this->gem_port_list, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_CPU_PACKETS_ID_BUFFER)) != 0)
+    {
+        if (!bcmolt_u8_list_u32_max_2048_pack(&this->buffer, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_gpon_ni_cpu_packets_data_get_packed_length(const bcmolt_gpon_ni_cpu_packets_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_CPU_PACKETS_ID_PACKET_TYPE)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_CPU_PACKETS_ID_CALC_CRC)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_CPU_PACKETS_ID_GEM_PORT_LIST)) != 0)
+    {
+        count += bcmolt_gpon_gem_id_list_u8_max_16_get_packed_length(&this->gem_port_list);
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_CPU_PACKETS_ID_BUFFER)) != 0)
+    {
+        count += bcmolt_u8_list_u32_max_2048_get_packed_length(&this->buffer);
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_ni_cpu_packets_data_unpack(bcmolt_gpon_ni_cpu_packets_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_CPU_PACKETS_ID_PACKET_TYPE)) != 0)
+    {
+        if (!bcmolt_packet_type_unpack(&this->packet_type, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_CPU_PACKETS_ID_CALC_CRC)) != 0)
+    {
+        if (!bcmolt_buf_read_bool(buf, &this->calc_crc))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_CPU_PACKETS_ID_GEM_PORT_LIST)) != 0)
+    {
+        if (!bcmolt_gpon_gem_id_list_u8_max_16_unpack(&this->gem_port_list, buf, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_CPU_PACKETS_ID_BUFFER)) != 0)
+    {
+        if (!bcmolt_u8_list_u32_max_2048_unpack(&this->buffer, buf, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_ni_cpu_packets_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_CPU_PACKETS_ID_PACKET_TYPE)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_CPU_PACKETS_ID_CALC_CRC)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_CPU_PACKETS_ID_GEM_PORT_LIST)) != 0)
+    {
+        if (!bcmolt_gpon_gem_id_list_u8_max_16_scan(packed, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_CPU_PACKETS_ID_BUFFER)) != 0)
+    {
+        if (!bcmolt_u8_list_u32_max_2048_scan(packed, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_ni_cpu_packets_data_bounds_check(const bcmolt_gpon_ni_cpu_packets_data *this, bcmolt_presence_mask fields_present, bcmolt_gpon_ni_cpu_packets_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_CPU_PACKETS_ID_PACKET_TYPE)) != 0)
+    {
+        switch (this->packet_type)
+        {
+            case BCMOLT_PACKET_TYPE_CPU:
+                break;
+            case BCMOLT_PACKET_TYPE_OMCI:
+                break;
+            default:
+                *failed_prop = BCMOLT_GPON_NI_CPU_PACKETS_ID_PACKET_TYPE;
+                return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_CPU_PACKETS_ID_GEM_PORT_LIST)) != 0)
+    {
+        if (this->gem_port_list.len > 16)
+        {
+            return BCMOS_FALSE;
+        }
+
+        if (!bcmolt_gpon_gem_id_list_u8_max_16_bounds_check(&this->gem_port_list))
+        {
+            *failed_prop = BCMOLT_GPON_NI_CPU_PACKETS_ID_GEM_PORT_LIST;
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_NI_CPU_PACKETS_ID_BUFFER)) != 0)
+    {
+        if (this->buffer.len > 2048)
+        {
+            return BCMOS_FALSE;
+        }
+
+        if (!bcmolt_u8_list_u32_max_2048_bounds_check(&this->buffer))
+        {
+            *failed_prop = BCMOLT_GPON_NI_CPU_PACKETS_ID_BUFFER;
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_gpon_onu_key_set_default(bcmolt_gpon_onu_key *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_KEY_ID_PON_NI)) != 0)
+    {
+        this->pon_ni = (bcmolt_gpon_ni) 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_KEY_ID_ONU_ID)) != 0)
+    {
+        this->onu_id = (bcmolt_gpon_onu_id) 0;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_key_pack(const bcmolt_gpon_onu_key *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_KEY_ID_PON_NI)) != 0)
+    {
+        if (!bcmolt_buf_write_u8(buf, (uint8_t) this->pon_ni))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_KEY_ID_ONU_ID)) != 0)
+    {
+        if (!bcmolt_buf_write_u16(buf, (uint16_t) this->onu_id))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_gpon_onu_key_get_packed_length(const bcmolt_gpon_onu_key *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_KEY_ID_PON_NI)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_KEY_ID_ONU_ID)) != 0)
+    {
+        count += 2;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_key_unpack(bcmolt_gpon_onu_key *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_KEY_ID_PON_NI)) != 0)
+    {
+        if (!bcmolt_buf_read_u8(buf, (uint8_t *) &this->pon_ni))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_KEY_ID_ONU_ID)) != 0)
+    {
+        if (!bcmolt_buf_read_u16(buf, (uint16_t *) &this->onu_id))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_key_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_KEY_ID_PON_NI)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_KEY_ID_ONU_ID)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 2))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_key_bounds_check(const bcmolt_gpon_onu_key *this, bcmolt_presence_mask fields_present, bcmolt_gpon_onu_key_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_KEY_ID_PON_NI)) != 0)
+    {
+        if (this->pon_ni > (bcmolt_gpon_ni) 15)
+        {
+            *failed_prop = BCMOLT_GPON_ONU_KEY_ID_PON_NI;
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_KEY_ID_ONU_ID)) != 0)
+    {
+        if (this->onu_id > (bcmolt_gpon_onu_id) 127)
+        {
+            *failed_prop = BCMOLT_GPON_ONU_KEY_ID_ONU_ID;
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_gpon_onu_cfg_data_set_default(bcmolt_gpon_onu_cfg_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_CFG_ID_ONU_STATE)) != 0)
+    {
+        this->onu_state = BCMOLT_ONU_STATE_NOT_CONFIGURED;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_CFG_ID_SERIAL_NUMBER)) != 0)
+    {
+        memset(this->serial_number.vendor_id, 0, sizeof(this->serial_number.vendor_id));
+        memset(this->serial_number.vendor_specific, 0, sizeof(this->serial_number.vendor_specific));
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_CFG_ID_PASSWORD)) != 0)
+    {
+        memset(this->password.arr, 0, sizeof(this->password.arr));
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_CFG_ID_AUTO_PASSWORD_LEARNING)) != 0)
+    {
+        this->auto_password_learning = BCMOS_FALSE;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_CFG_ID_US_FEC)) != 0)
+    {
+        this->us_fec = BCMOS_FALSE;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_CFG_ID_OMCI_PORT_ID)) != 0)
+    {
+        this->omci_port_id = (bcmolt_gpon_gem_id) 65535U;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_CFG_ID_DS_BER_REPORTING_INTERVAL)) != 0)
+    {
+        this->ds_ber_reporting_interval = (bcmolt_ber_interval) 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_CFG_ID_AES_ENCRYPTION_KEY)) != 0)
+    {
+        memset(this->aes_encryption_key.bytes, 0, sizeof(this->aes_encryption_key.bytes));
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_CFG_ID_ALARM_STATE)) != 0)
+    {
+        this->alarm_state.losi = BCMOLT_STATUS_OFF;
+        this->alarm_state.lofi = BCMOLT_STATUS_OFF;
+        this->alarm_state.loami = BCMOLT_STATUS_OFF;
+        this->alarm_state.dgi = BCMOLT_STATUS_OFF;
+        this->alarm_state.tiwi = BCMOLT_STATUS_OFF;
+        this->alarm_state.dowi = BCMOLT_STATUS_OFF;
+        this->alarm_state.sufi = BCMOLT_STATUS_OFF;
+        this->alarm_state.sfi = BCMOLT_STATUS_OFF;
+        this->alarm_state.sdi = BCMOLT_STATUS_OFF;
+        this->alarm_state.dfi = BCMOLT_STATUS_OFF;
+        this->alarm_state.loai = BCMOLT_STATUS_OFF;
+        this->alarm_state.loki = BCMOLT_STATUS_OFF;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_CFG_ID_RANGING_TIME)) != 0)
+    {
+        this->ranging_time = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_CFG_ID_DISABLED_AFTER_DISCOVERY)) != 0)
+    {
+        this->disabled_after_discovery = BCMOLT_STATUS_OFF;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_CFG_ID_DEACTIVATION_REASON)) != 0)
+    {
+        this->deactivation_reason = BCMOLT_DEACTIVATION_REASON_NONE;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_CFG_ID_ALL_GEM_PORTS)) != 0)
+    {
+        this->all_gem_ports.len = 0;
+        this->all_gem_ports.val = NULL;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_CFG_ID_ALL_ALLOCS)) != 0)
+    {
+        this->all_allocs.len = 0;
+        this->all_allocs.val = NULL;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_CFG_ID_ONU_PS_TYPE_C)) != 0)
+    {
+        this->onu_ps_type_c = BCMOS_FALSE;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_CFG_ID_EXTENDED_GUARD_TIME)) != 0)
+    {
+        this->extended_guard_time.additional_preburst_guard_time = 0;
+        this->extended_guard_time.additional_postburst_guard_time = 0;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_cfg_data_pack(const bcmolt_gpon_onu_cfg_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_CFG_ID_ONU_STATE)) != 0)
+    {
+        if (!bcmolt_onu_state_pack(this->onu_state, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_CFG_ID_SERIAL_NUMBER)) != 0)
+    {
+        if (!bcmolt_serial_number_pack(&this->serial_number, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_CFG_ID_PASSWORD)) != 0)
+    {
+        if (!bcmolt_arr_u8_10_pack(&this->password, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_CFG_ID_AUTO_PASSWORD_LEARNING)) != 0)
+    {
+        if (!bcmolt_buf_write_bool(buf, this->auto_password_learning))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_CFG_ID_US_FEC)) != 0)
+    {
+        if (!bcmolt_buf_write_bool(buf, this->us_fec))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_CFG_ID_OMCI_PORT_ID)) != 0)
+    {
+        if (!bcmolt_buf_write_u16(buf, (uint16_t) this->omci_port_id))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_CFG_ID_DS_BER_REPORTING_INTERVAL)) != 0)
+    {
+        if (!bcmolt_buf_write_u32(buf, (uint32_t) this->ds_ber_reporting_interval))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_CFG_ID_AES_ENCRYPTION_KEY)) != 0)
+    {
+        if (!bcmolt_aes_key_pack(&this->aes_encryption_key, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_CFG_ID_ALARM_STATE)) != 0)
+    {
+        if (!bcmolt_gpon_onu_alarm_state_pack(&this->alarm_state, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_CFG_ID_RANGING_TIME)) != 0)
+    {
+        if (!bcmolt_buf_write_u32(buf, this->ranging_time))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_CFG_ID_DISABLED_AFTER_DISCOVERY)) != 0)
+    {
+        if (!bcmolt_status_pack(this->disabled_after_discovery, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_CFG_ID_DEACTIVATION_REASON)) != 0)
+    {
+        if (!bcmolt_deactivation_reason_pack(this->deactivation_reason, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_CFG_ID_ALL_GEM_PORTS)) != 0)
+    {
+        if (!bcmolt_gpon_gem_port_with_state_list_u16_max_256_pack(&this->all_gem_ports, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_CFG_ID_ALL_ALLOCS)) != 0)
+    {
+        if (!bcmolt_gpon_alloc_with_state_list_u16_max_32_pack(&this->all_allocs, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_CFG_ID_ONU_PS_TYPE_C)) != 0)
+    {
+        if (!bcmolt_buf_write_bool(buf, this->onu_ps_type_c))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_CFG_ID_EXTENDED_GUARD_TIME)) != 0)
+    {
+        if (!bcmolt_extended_guard_time_pack(&this->extended_guard_time, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_gpon_onu_cfg_data_get_packed_length(const bcmolt_gpon_onu_cfg_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_CFG_ID_ONU_STATE)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_CFG_ID_SERIAL_NUMBER)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_CFG_ID_PASSWORD)) != 0)
+    {
+        count += 10;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_CFG_ID_AUTO_PASSWORD_LEARNING)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_CFG_ID_US_FEC)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_CFG_ID_OMCI_PORT_ID)) != 0)
+    {
+        count += 2;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_CFG_ID_DS_BER_REPORTING_INTERVAL)) != 0)
+    {
+        count += 4;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_CFG_ID_AES_ENCRYPTION_KEY)) != 0)
+    {
+        count += 16;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_CFG_ID_ALARM_STATE)) != 0)
+    {
+        count += 12;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_CFG_ID_RANGING_TIME)) != 0)
+    {
+        count += 4;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_CFG_ID_DISABLED_AFTER_DISCOVERY)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_CFG_ID_DEACTIVATION_REASON)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_CFG_ID_ALL_GEM_PORTS)) != 0)
+    {
+        count += bcmolt_gpon_gem_port_with_state_list_u16_max_256_get_packed_length(&this->all_gem_ports);
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_CFG_ID_ALL_ALLOCS)) != 0)
+    {
+        count += bcmolt_gpon_alloc_with_state_list_u16_max_32_get_packed_length(&this->all_allocs);
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_CFG_ID_ONU_PS_TYPE_C)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_CFG_ID_EXTENDED_GUARD_TIME)) != 0)
+    {
+        count += 8;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_cfg_data_unpack(bcmolt_gpon_onu_cfg_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_CFG_ID_ONU_STATE)) != 0)
+    {
+        if (!bcmolt_onu_state_unpack(&this->onu_state, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_CFG_ID_SERIAL_NUMBER)) != 0)
+    {
+        if (!bcmolt_serial_number_unpack(&this->serial_number, buf, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_CFG_ID_PASSWORD)) != 0)
+    {
+        if (!bcmolt_arr_u8_10_unpack(&this->password, buf, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_CFG_ID_AUTO_PASSWORD_LEARNING)) != 0)
+    {
+        if (!bcmolt_buf_read_bool(buf, &this->auto_password_learning))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_CFG_ID_US_FEC)) != 0)
+    {
+        if (!bcmolt_buf_read_bool(buf, &this->us_fec))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_CFG_ID_OMCI_PORT_ID)) != 0)
+    {
+        if (!bcmolt_buf_read_u16(buf, (uint16_t *) &this->omci_port_id))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_CFG_ID_DS_BER_REPORTING_INTERVAL)) != 0)
+    {
+        if (!bcmolt_buf_read_u32(buf, (uint32_t *) &this->ds_ber_reporting_interval))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_CFG_ID_AES_ENCRYPTION_KEY)) != 0)
+    {
+        if (!bcmolt_aes_key_unpack(&this->aes_encryption_key, buf, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_CFG_ID_ALARM_STATE)) != 0)
+    {
+        if (!bcmolt_gpon_onu_alarm_state_unpack(&this->alarm_state, buf, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_CFG_ID_RANGING_TIME)) != 0)
+    {
+        if (!bcmolt_buf_read_u32(buf, &this->ranging_time))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_CFG_ID_DISABLED_AFTER_DISCOVERY)) != 0)
+    {
+        if (!bcmolt_status_unpack(&this->disabled_after_discovery, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_CFG_ID_DEACTIVATION_REASON)) != 0)
+    {
+        if (!bcmolt_deactivation_reason_unpack(&this->deactivation_reason, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_CFG_ID_ALL_GEM_PORTS)) != 0)
+    {
+        if (!bcmolt_gpon_gem_port_with_state_list_u16_max_256_unpack(&this->all_gem_ports, buf, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_CFG_ID_ALL_ALLOCS)) != 0)
+    {
+        if (!bcmolt_gpon_alloc_with_state_list_u16_max_32_unpack(&this->all_allocs, buf, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_CFG_ID_ONU_PS_TYPE_C)) != 0)
+    {
+        if (!bcmolt_buf_read_bool(buf, &this->onu_ps_type_c))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_CFG_ID_EXTENDED_GUARD_TIME)) != 0)
+    {
+        if (!bcmolt_extended_guard_time_unpack(&this->extended_guard_time, buf, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_cfg_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_CFG_ID_ONU_STATE)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_CFG_ID_SERIAL_NUMBER)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_CFG_ID_PASSWORD)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 10))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_CFG_ID_AUTO_PASSWORD_LEARNING)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_CFG_ID_US_FEC)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_CFG_ID_OMCI_PORT_ID)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 2))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_CFG_ID_DS_BER_REPORTING_INTERVAL)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 4))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_CFG_ID_AES_ENCRYPTION_KEY)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 16))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_CFG_ID_ALARM_STATE)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 12))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_CFG_ID_RANGING_TIME)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 4))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_CFG_ID_DISABLED_AFTER_DISCOVERY)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_CFG_ID_DEACTIVATION_REASON)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_CFG_ID_ALL_GEM_PORTS)) != 0)
+    {
+        if (!bcmolt_gpon_gem_port_with_state_list_u16_max_256_scan(packed, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_CFG_ID_ALL_ALLOCS)) != 0)
+    {
+        if (!bcmolt_gpon_alloc_with_state_list_u16_max_32_scan(packed, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_CFG_ID_ONU_PS_TYPE_C)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_CFG_ID_EXTENDED_GUARD_TIME)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_cfg_data_bounds_check(const bcmolt_gpon_onu_cfg_data *this, bcmolt_presence_mask fields_present, bcmolt_gpon_onu_cfg_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_CFG_ID_ONU_STATE)) != 0)
+    {
+        switch (this->onu_state)
+        {
+            case BCMOLT_ONU_STATE_NOT_CONFIGURED:
+                break;
+            case BCMOLT_ONU_STATE_INACTIVE:
+                break;
+            case BCMOLT_ONU_STATE_ACTIVE:
+                break;
+            case BCMOLT_ONU_STATE_ACTIVE_STANDBY:
+                break;
+            case BCMOLT_ONU_STATE_DISABLED:
+                break;
+            case BCMOLT_ONU_STATE_AWAKE_FREE:
+                break;
+            case BCMOLT_ONU_STATE_PROCESSING:
+                break;
+            case BCMOLT_ONU_STATE_LOW_POWER_DOZE:
+                break;
+            case BCMOLT_ONU_STATE_LOW_POWER_SLEEP:
+                break;
+            case BCMOLT_ONU_STATE_LOW_POWER_WATCH:
+                break;
+            case BCMOLT_ONU_STATE_UNAWARE:
+                break;
+            default:
+                *failed_prop = BCMOLT_GPON_ONU_CFG_ID_ONU_STATE;
+                return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_CFG_ID_SERIAL_NUMBER)) != 0)
+    {
+        if (!bcmolt_serial_number_bounds_check(&this->serial_number))
+        {
+            *failed_prop = BCMOLT_GPON_ONU_CFG_ID_SERIAL_NUMBER;
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_CFG_ID_PASSWORD)) != 0)
+    {
+        if (!bcmolt_arr_u8_10_bounds_check(&this->password))
+        {
+            *failed_prop = BCMOLT_GPON_ONU_CFG_ID_PASSWORD;
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_CFG_ID_OMCI_PORT_ID)) != 0)
+    {
+        if (this->omci_port_id > (bcmolt_gpon_gem_id) 4095)
+        {
+            *failed_prop = BCMOLT_GPON_ONU_CFG_ID_OMCI_PORT_ID;
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_CFG_ID_DS_BER_REPORTING_INTERVAL)) != 0)
+    {
+        if (this->ds_ber_reporting_interval > (bcmolt_ber_interval) 536870911UL)
+        {
+            *failed_prop = BCMOLT_GPON_ONU_CFG_ID_DS_BER_REPORTING_INTERVAL;
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_CFG_ID_AES_ENCRYPTION_KEY)) != 0)
+    {
+        if (!bcmolt_aes_key_bounds_check(&this->aes_encryption_key))
+        {
+            *failed_prop = BCMOLT_GPON_ONU_CFG_ID_AES_ENCRYPTION_KEY;
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_CFG_ID_ALARM_STATE)) != 0)
+    {
+        if (!bcmolt_gpon_onu_alarm_state_bounds_check(&this->alarm_state))
+        {
+            *failed_prop = BCMOLT_GPON_ONU_CFG_ID_ALARM_STATE;
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_CFG_ID_DISABLED_AFTER_DISCOVERY)) != 0)
+    {
+        switch (this->disabled_after_discovery)
+        {
+            case BCMOLT_STATUS_OFF:
+                break;
+            case BCMOLT_STATUS_ON:
+                break;
+            case BCMOLT_STATUS_NO_CHANGE:
+                break;
+            default:
+                *failed_prop = BCMOLT_GPON_ONU_CFG_ID_DISABLED_AFTER_DISCOVERY;
+                return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_CFG_ID_DEACTIVATION_REASON)) != 0)
+    {
+        switch (this->deactivation_reason)
+        {
+            case BCMOLT_DEACTIVATION_REASON_NONE:
+                break;
+            case BCMOLT_DEACTIVATION_REASON_DEACTIVATION:
+                break;
+            case BCMOLT_DEACTIVATION_REASON_ACK_TIMEOUT:
+                break;
+            case BCMOLT_DEACTIVATION_REASON_SFI:
+                break;
+            case BCMOLT_DEACTIVATION_REASON_TIWI:
+                break;
+            case BCMOLT_DEACTIVATION_REASON_PASSWORD_AUTHENTICATION:
+                break;
+            case BCMOLT_DEACTIVATION_REASON_ONU_ALARM:
+                break;
+            case BCMOLT_DEACTIVATION_REASON_LOS:
+                break;
+            case BCMOLT_DEACTIVATION_REASON_LOKI:
+                break;
+            case BCMOLT_DEACTIVATION_REASON_RERANGE_FAILURE:
+                break;
+            default:
+                *failed_prop = BCMOLT_GPON_ONU_CFG_ID_DEACTIVATION_REASON;
+                return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_CFG_ID_ALL_GEM_PORTS)) != 0)
+    {
+        if (this->all_gem_ports.len > 256)
+        {
+            return BCMOS_FALSE;
+        }
+
+        if (!bcmolt_gpon_gem_port_with_state_list_u16_max_256_bounds_check(&this->all_gem_ports))
+        {
+            *failed_prop = BCMOLT_GPON_ONU_CFG_ID_ALL_GEM_PORTS;
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_CFG_ID_ALL_ALLOCS)) != 0)
+    {
+        if (this->all_allocs.len > 32)
+        {
+            return BCMOS_FALSE;
+        }
+
+        if (!bcmolt_gpon_alloc_with_state_list_u16_max_32_bounds_check(&this->all_allocs))
+        {
+            *failed_prop = BCMOLT_GPON_ONU_CFG_ID_ALL_ALLOCS;
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_CFG_ID_EXTENDED_GUARD_TIME)) != 0)
+    {
+        if (!bcmolt_extended_guard_time_bounds_check(&this->extended_guard_time))
+        {
+            *failed_prop = BCMOLT_GPON_ONU_CFG_ID_EXTENDED_GUARD_TIME;
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_gpon_onu_stat_data_set_default(bcmolt_gpon_onu_stat_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_STAT_ID_FEC_CODEWORDS)) != 0)
+    {
+        this->fec_codewords = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_STAT_ID_FEC_BYTES_CORRECTED)) != 0)
+    {
+        this->fec_bytes_corrected = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_STAT_ID_FEC_CODEWORDS_CORRECTED)) != 0)
+    {
+        this->fec_codewords_corrected = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_STAT_ID_FEC_CODEWORDS_UNCORRECTED)) != 0)
+    {
+        this->fec_codewords_uncorrected = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_STAT_ID_BIP8_BYTES)) != 0)
+    {
+        this->bip8_bytes = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_STAT_ID_BIP8_ERRORS)) != 0)
+    {
+        this->bip8_errors = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_STAT_ID_RX_PLOAMS_CRC_ERROR)) != 0)
+    {
+        this->rx_ploams_crc_error = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_STAT_ID_RX_PLOAMS_NON_IDLE)) != 0)
+    {
+        this->rx_ploams_non_idle = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_STAT_ID_POSITIVE_DRIFT)) != 0)
+    {
+        this->positive_drift = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_STAT_ID_NEGATIVE_DRIFT)) != 0)
+    {
+        this->negative_drift = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_STAT_ID_RX_OMCI)) != 0)
+    {
+        this->rx_omci = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_STAT_ID_RX_OMCI_PACKETS_CRC_ERROR)) != 0)
+    {
+        this->rx_omci_packets_crc_error = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_STAT_ID_BER_REPORTED)) != 0)
+    {
+        this->ber_reported = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_STAT_ID_UNRECEIVED_BURST)) != 0)
+    {
+        this->unreceived_burst = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_STAT_ID_LCDG_ERRORS)) != 0)
+    {
+        this->lcdg_errors = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_STAT_ID_RDI_ERRORS)) != 0)
+    {
+        this->rdi_errors = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_STAT_ID_RX_BYTES)) != 0)
+    {
+        this->rx_bytes = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_STAT_ID_RX_PACKETS)) != 0)
+    {
+        this->rx_packets = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_STAT_ID_TX_BYTES)) != 0)
+    {
+        this->tx_bytes = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_STAT_ID_TX_PACKETS)) != 0)
+    {
+        this->tx_packets = 0;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_stat_data_pack(const bcmolt_gpon_onu_stat_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_STAT_ID_FEC_CODEWORDS)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->fec_codewords))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_STAT_ID_FEC_BYTES_CORRECTED)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->fec_bytes_corrected))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_STAT_ID_FEC_CODEWORDS_CORRECTED)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->fec_codewords_corrected))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_STAT_ID_FEC_CODEWORDS_UNCORRECTED)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->fec_codewords_uncorrected))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_STAT_ID_BIP8_BYTES)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->bip8_bytes))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_STAT_ID_BIP8_ERRORS)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->bip8_errors))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_STAT_ID_RX_PLOAMS_CRC_ERROR)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->rx_ploams_crc_error))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_STAT_ID_RX_PLOAMS_NON_IDLE)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->rx_ploams_non_idle))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_STAT_ID_POSITIVE_DRIFT)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->positive_drift))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_STAT_ID_NEGATIVE_DRIFT)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->negative_drift))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_STAT_ID_RX_OMCI)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->rx_omci))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_STAT_ID_RX_OMCI_PACKETS_CRC_ERROR)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->rx_omci_packets_crc_error))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_STAT_ID_BER_REPORTED)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->ber_reported))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_STAT_ID_UNRECEIVED_BURST)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->unreceived_burst))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_STAT_ID_LCDG_ERRORS)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->lcdg_errors))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_STAT_ID_RDI_ERRORS)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->rdi_errors))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_STAT_ID_RX_BYTES)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->rx_bytes))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_STAT_ID_RX_PACKETS)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->rx_packets))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_STAT_ID_TX_BYTES)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->tx_bytes))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_STAT_ID_TX_PACKETS)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->tx_packets))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_gpon_onu_stat_data_get_packed_length(const bcmolt_gpon_onu_stat_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_STAT_ID_FEC_CODEWORDS)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_STAT_ID_FEC_BYTES_CORRECTED)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_STAT_ID_FEC_CODEWORDS_CORRECTED)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_STAT_ID_FEC_CODEWORDS_UNCORRECTED)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_STAT_ID_BIP8_BYTES)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_STAT_ID_BIP8_ERRORS)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_STAT_ID_RX_PLOAMS_CRC_ERROR)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_STAT_ID_RX_PLOAMS_NON_IDLE)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_STAT_ID_POSITIVE_DRIFT)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_STAT_ID_NEGATIVE_DRIFT)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_STAT_ID_RX_OMCI)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_STAT_ID_RX_OMCI_PACKETS_CRC_ERROR)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_STAT_ID_BER_REPORTED)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_STAT_ID_UNRECEIVED_BURST)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_STAT_ID_LCDG_ERRORS)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_STAT_ID_RDI_ERRORS)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_STAT_ID_RX_BYTES)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_STAT_ID_RX_PACKETS)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_STAT_ID_TX_BYTES)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_STAT_ID_TX_PACKETS)) != 0)
+    {
+        count += 8;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_stat_data_unpack(bcmolt_gpon_onu_stat_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_STAT_ID_FEC_CODEWORDS)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->fec_codewords))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_STAT_ID_FEC_BYTES_CORRECTED)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->fec_bytes_corrected))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_STAT_ID_FEC_CODEWORDS_CORRECTED)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->fec_codewords_corrected))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_STAT_ID_FEC_CODEWORDS_UNCORRECTED)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->fec_codewords_uncorrected))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_STAT_ID_BIP8_BYTES)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->bip8_bytes))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_STAT_ID_BIP8_ERRORS)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->bip8_errors))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_STAT_ID_RX_PLOAMS_CRC_ERROR)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->rx_ploams_crc_error))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_STAT_ID_RX_PLOAMS_NON_IDLE)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->rx_ploams_non_idle))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_STAT_ID_POSITIVE_DRIFT)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->positive_drift))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_STAT_ID_NEGATIVE_DRIFT)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->negative_drift))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_STAT_ID_RX_OMCI)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->rx_omci))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_STAT_ID_RX_OMCI_PACKETS_CRC_ERROR)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->rx_omci_packets_crc_error))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_STAT_ID_BER_REPORTED)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->ber_reported))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_STAT_ID_UNRECEIVED_BURST)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->unreceived_burst))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_STAT_ID_LCDG_ERRORS)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->lcdg_errors))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_STAT_ID_RDI_ERRORS)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->rdi_errors))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_STAT_ID_RX_BYTES)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->rx_bytes))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_STAT_ID_RX_PACKETS)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->rx_packets))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_STAT_ID_TX_BYTES)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->tx_bytes))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_STAT_ID_TX_PACKETS)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->tx_packets))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_stat_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_STAT_ID_FEC_CODEWORDS)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_STAT_ID_FEC_BYTES_CORRECTED)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_STAT_ID_FEC_CODEWORDS_CORRECTED)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_STAT_ID_FEC_CODEWORDS_UNCORRECTED)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_STAT_ID_BIP8_BYTES)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_STAT_ID_BIP8_ERRORS)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_STAT_ID_RX_PLOAMS_CRC_ERROR)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_STAT_ID_RX_PLOAMS_NON_IDLE)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_STAT_ID_POSITIVE_DRIFT)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_STAT_ID_NEGATIVE_DRIFT)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_STAT_ID_RX_OMCI)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_STAT_ID_RX_OMCI_PACKETS_CRC_ERROR)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_STAT_ID_BER_REPORTED)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_STAT_ID_UNRECEIVED_BURST)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_STAT_ID_LCDG_ERRORS)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_STAT_ID_RDI_ERRORS)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_STAT_ID_RX_BYTES)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_STAT_ID_RX_PACKETS)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_STAT_ID_TX_BYTES)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_STAT_ID_TX_PACKETS)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_stat_data_bounds_check(const bcmolt_gpon_onu_stat_data *this, bcmolt_presence_mask fields_present, bcmolt_gpon_onu_stat_id *failed_prop)
+{
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_gpon_onu_stat_cfg_data_set_default(bcmolt_gpon_onu_stat_cfg_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_STAT_CFG_ID_CFG)) != 0)
+    {
+        this->cfg.trigger.type = BCMOLT_STAT_CONDITION_TYPE_NONE;
+        this->cfg.soak.active_soak_time = 0;
+        this->cfg.soak.clear_soak_time = 0;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_stat_cfg_data_pack(const bcmolt_gpon_onu_stat_cfg_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_STAT_CFG_ID_CFG)) != 0)
+    {
+        if (!bcmolt_stat_alarm_config_pack(&this->cfg, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_gpon_onu_stat_cfg_data_get_packed_length(const bcmolt_gpon_onu_stat_cfg_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_STAT_CFG_ID_CFG)) != 0)
+    {
+        count += bcmolt_stat_alarm_config_get_packed_length(&this->cfg);
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_stat_cfg_data_unpack(bcmolt_gpon_onu_stat_cfg_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_STAT_CFG_ID_CFG)) != 0)
+    {
+        if (!bcmolt_stat_alarm_config_unpack(&this->cfg, buf, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_stat_cfg_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_STAT_CFG_ID_CFG)) != 0)
+    {
+        if (!bcmolt_stat_alarm_config_scan(packed, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_stat_cfg_data_bounds_check(const bcmolt_gpon_onu_stat_cfg_data *this, bcmolt_presence_mask fields_present, bcmolt_gpon_onu_stat_cfg_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_STAT_CFG_ID_CFG)) != 0)
+    {
+        if (!bcmolt_stat_alarm_config_bounds_check(&this->cfg))
+        {
+            *failed_prop = BCMOLT_GPON_ONU_STAT_CFG_ID_CFG;
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_gpon_onu_ber_interval_configuration_completed_data_set_default(bcmolt_gpon_onu_ber_interval_configuration_completed_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_BER_INTERVAL_CONFIGURATION_COMPLETED_ID_BER_INTERVAL)) != 0)
+    {
+        this->ber_interval = (bcmolt_ber_interval) 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_BER_INTERVAL_CONFIGURATION_COMPLETED_ID_RESULT)) != 0)
+    {
+        this->result = BCMOLT_RESULT_SUCCESS;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_ber_interval_configuration_completed_data_pack(const bcmolt_gpon_onu_ber_interval_configuration_completed_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_BER_INTERVAL_CONFIGURATION_COMPLETED_ID_BER_INTERVAL)) != 0)
+    {
+        if (!bcmolt_buf_write_u32(buf, (uint32_t) this->ber_interval))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_BER_INTERVAL_CONFIGURATION_COMPLETED_ID_RESULT)) != 0)
+    {
+        if (!bcmolt_result_pack(this->result, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_gpon_onu_ber_interval_configuration_completed_data_get_packed_length(const bcmolt_gpon_onu_ber_interval_configuration_completed_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_BER_INTERVAL_CONFIGURATION_COMPLETED_ID_BER_INTERVAL)) != 0)
+    {
+        count += 4;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_BER_INTERVAL_CONFIGURATION_COMPLETED_ID_RESULT)) != 0)
+    {
+        count += 1;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_ber_interval_configuration_completed_data_unpack(bcmolt_gpon_onu_ber_interval_configuration_completed_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_BER_INTERVAL_CONFIGURATION_COMPLETED_ID_BER_INTERVAL)) != 0)
+    {
+        if (!bcmolt_buf_read_u32(buf, (uint32_t *) &this->ber_interval))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_BER_INTERVAL_CONFIGURATION_COMPLETED_ID_RESULT)) != 0)
+    {
+        if (!bcmolt_result_unpack(&this->result, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_ber_interval_configuration_completed_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_BER_INTERVAL_CONFIGURATION_COMPLETED_ID_BER_INTERVAL)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 4))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_BER_INTERVAL_CONFIGURATION_COMPLETED_ID_RESULT)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_ber_interval_configuration_completed_data_bounds_check(const bcmolt_gpon_onu_ber_interval_configuration_completed_data *this, bcmolt_presence_mask fields_present, bcmolt_gpon_onu_ber_interval_configuration_completed_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_BER_INTERVAL_CONFIGURATION_COMPLETED_ID_RESULT)) != 0)
+    {
+        switch (this->result)
+        {
+            case BCMOLT_RESULT_SUCCESS:
+                break;
+            case BCMOLT_RESULT_FAIL:
+                break;
+            default:
+                *failed_prop = BCMOLT_GPON_ONU_BER_INTERVAL_CONFIGURATION_COMPLETED_ID_RESULT;
+                return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_gpon_onu_dfi_data_set_default(bcmolt_gpon_onu_dfi_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_DFI_ID_ALARM_STATUS)) != 0)
+    {
+        this->alarm_status = BCMOLT_STATUS_OFF;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_dfi_data_pack(const bcmolt_gpon_onu_dfi_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_DFI_ID_ALARM_STATUS)) != 0)
+    {
+        if (!bcmolt_status_pack(this->alarm_status, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_gpon_onu_dfi_data_get_packed_length(const bcmolt_gpon_onu_dfi_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_DFI_ID_ALARM_STATUS)) != 0)
+    {
+        count += 1;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_dfi_data_unpack(bcmolt_gpon_onu_dfi_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_DFI_ID_ALARM_STATUS)) != 0)
+    {
+        if (!bcmolt_status_unpack(&this->alarm_status, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_dfi_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_DFI_ID_ALARM_STATUS)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_dfi_data_bounds_check(const bcmolt_gpon_onu_dfi_data *this, bcmolt_presence_mask fields_present, bcmolt_gpon_onu_dfi_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_DFI_ID_ALARM_STATUS)) != 0)
+    {
+        switch (this->alarm_status)
+        {
+            case BCMOLT_STATUS_OFF:
+                break;
+            case BCMOLT_STATUS_ON:
+                break;
+            case BCMOLT_STATUS_NO_CHANGE:
+                break;
+            default:
+                *failed_prop = BCMOLT_GPON_ONU_DFI_ID_ALARM_STATUS;
+                return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_gpon_onu_dgi_data_set_default(bcmolt_gpon_onu_dgi_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_DGI_ID_ALARM_STATUS)) != 0)
+    {
+        this->alarm_status = BCMOLT_STATUS_OFF;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_dgi_data_pack(const bcmolt_gpon_onu_dgi_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_DGI_ID_ALARM_STATUS)) != 0)
+    {
+        if (!bcmolt_status_pack(this->alarm_status, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_gpon_onu_dgi_data_get_packed_length(const bcmolt_gpon_onu_dgi_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_DGI_ID_ALARM_STATUS)) != 0)
+    {
+        count += 1;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_dgi_data_unpack(bcmolt_gpon_onu_dgi_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_DGI_ID_ALARM_STATUS)) != 0)
+    {
+        if (!bcmolt_status_unpack(&this->alarm_status, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_dgi_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_DGI_ID_ALARM_STATUS)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_dgi_data_bounds_check(const bcmolt_gpon_onu_dgi_data *this, bcmolt_presence_mask fields_present, bcmolt_gpon_onu_dgi_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_DGI_ID_ALARM_STATUS)) != 0)
+    {
+        switch (this->alarm_status)
+        {
+            case BCMOLT_STATUS_OFF:
+                break;
+            case BCMOLT_STATUS_ON:
+                break;
+            case BCMOLT_STATUS_NO_CHANGE:
+                break;
+            default:
+                *failed_prop = BCMOLT_GPON_ONU_DGI_ID_ALARM_STATUS;
+                return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_gpon_onu_dowi_data_set_default(bcmolt_gpon_onu_dowi_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_DOWI_ID_ALARM_STATUS)) != 0)
+    {
+        this->alarm_status = BCMOLT_STATUS_OFF;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_DOWI_ID_DRIFT_VALUE)) != 0)
+    {
+        this->drift_value = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_DOWI_ID_NEW_EQD)) != 0)
+    {
+        this->new_eqd = 0;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_dowi_data_pack(const bcmolt_gpon_onu_dowi_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_DOWI_ID_ALARM_STATUS)) != 0)
+    {
+        if (!bcmolt_status_pack(this->alarm_status, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_DOWI_ID_DRIFT_VALUE)) != 0)
+    {
+        if (!bcmolt_buf_write_s32(buf, this->drift_value))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_DOWI_ID_NEW_EQD)) != 0)
+    {
+        if (!bcmolt_buf_write_u32(buf, this->new_eqd))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_gpon_onu_dowi_data_get_packed_length(const bcmolt_gpon_onu_dowi_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_DOWI_ID_ALARM_STATUS)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_DOWI_ID_DRIFT_VALUE)) != 0)
+    {
+        count += 4;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_DOWI_ID_NEW_EQD)) != 0)
+    {
+        count += 4;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_dowi_data_unpack(bcmolt_gpon_onu_dowi_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_DOWI_ID_ALARM_STATUS)) != 0)
+    {
+        if (!bcmolt_status_unpack(&this->alarm_status, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_DOWI_ID_DRIFT_VALUE)) != 0)
+    {
+        if (!bcmolt_buf_read_s32(buf, &this->drift_value))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_DOWI_ID_NEW_EQD)) != 0)
+    {
+        if (!bcmolt_buf_read_u32(buf, &this->new_eqd))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_dowi_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_DOWI_ID_ALARM_STATUS)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_DOWI_ID_DRIFT_VALUE)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 4))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_DOWI_ID_NEW_EQD)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 4))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_dowi_data_bounds_check(const bcmolt_gpon_onu_dowi_data *this, bcmolt_presence_mask fields_present, bcmolt_gpon_onu_dowi_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_DOWI_ID_ALARM_STATUS)) != 0)
+    {
+        switch (this->alarm_status)
+        {
+            case BCMOLT_STATUS_OFF:
+                break;
+            case BCMOLT_STATUS_ON:
+                break;
+            case BCMOLT_STATUS_NO_CHANGE:
+                break;
+            default:
+                *failed_prop = BCMOLT_GPON_ONU_DOWI_ID_ALARM_STATUS;
+                return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_gpon_onu_err_data_set_default(bcmolt_gpon_onu_err_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_ERR_ID_BIP8_ERRORS)) != 0)
+    {
+        this->bip8_errors = 0;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_err_data_pack(const bcmolt_gpon_onu_err_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_ERR_ID_BIP8_ERRORS)) != 0)
+    {
+        if (!bcmolt_buf_write_u8(buf, this->bip8_errors))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_gpon_onu_err_data_get_packed_length(const bcmolt_gpon_onu_err_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_ERR_ID_BIP8_ERRORS)) != 0)
+    {
+        count += 1;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_err_data_unpack(bcmolt_gpon_onu_err_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_ERR_ID_BIP8_ERRORS)) != 0)
+    {
+        if (!bcmolt_buf_read_u8(buf, &this->bip8_errors))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_err_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_ERR_ID_BIP8_ERRORS)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_err_data_bounds_check(const bcmolt_gpon_onu_err_data *this, bcmolt_presence_mask fields_present, bcmolt_gpon_onu_err_id *failed_prop)
+{
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_gpon_onu_invalid_dbru_report_data_set_default(bcmolt_gpon_onu_invalid_dbru_report_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_INVALID_DBRU_REPORT_ID_ALLOC_ID)) != 0)
+    {
+        this->alloc_id = (bcmolt_gpon_alloc_id) 0;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_invalid_dbru_report_data_pack(const bcmolt_gpon_onu_invalid_dbru_report_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_INVALID_DBRU_REPORT_ID_ALLOC_ID)) != 0)
+    {
+        if (!bcmolt_buf_write_u16(buf, (uint16_t) this->alloc_id))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_gpon_onu_invalid_dbru_report_data_get_packed_length(const bcmolt_gpon_onu_invalid_dbru_report_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_INVALID_DBRU_REPORT_ID_ALLOC_ID)) != 0)
+    {
+        count += 2;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_invalid_dbru_report_data_unpack(bcmolt_gpon_onu_invalid_dbru_report_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_INVALID_DBRU_REPORT_ID_ALLOC_ID)) != 0)
+    {
+        if (!bcmolt_buf_read_u16(buf, (uint16_t *) &this->alloc_id))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_invalid_dbru_report_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_INVALID_DBRU_REPORT_ID_ALLOC_ID)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 2))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_invalid_dbru_report_data_bounds_check(const bcmolt_gpon_onu_invalid_dbru_report_data *this, bcmolt_presence_mask fields_present, bcmolt_gpon_onu_invalid_dbru_report_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_INVALID_DBRU_REPORT_ID_ALLOC_ID)) != 0)
+    {
+        if (this->alloc_id > (bcmolt_gpon_alloc_id) 4095)
+        {
+            *failed_prop = BCMOLT_GPON_ONU_INVALID_DBRU_REPORT_ID_ALLOC_ID;
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_gpon_onu_key_exchange_completed_data_set_default(bcmolt_gpon_onu_key_exchange_completed_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_KEY_EXCHANGE_COMPLETED_ID_NEW_KEY)) != 0)
+    {
+        memset(this->new_key.bytes, 0, sizeof(this->new_key.bytes));
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_key_exchange_completed_data_pack(const bcmolt_gpon_onu_key_exchange_completed_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_KEY_EXCHANGE_COMPLETED_ID_NEW_KEY)) != 0)
+    {
+        if (!bcmolt_aes_key_pack(&this->new_key, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_gpon_onu_key_exchange_completed_data_get_packed_length(const bcmolt_gpon_onu_key_exchange_completed_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_KEY_EXCHANGE_COMPLETED_ID_NEW_KEY)) != 0)
+    {
+        count += 16;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_key_exchange_completed_data_unpack(bcmolt_gpon_onu_key_exchange_completed_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_KEY_EXCHANGE_COMPLETED_ID_NEW_KEY)) != 0)
+    {
+        if (!bcmolt_aes_key_unpack(&this->new_key, buf, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_key_exchange_completed_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_KEY_EXCHANGE_COMPLETED_ID_NEW_KEY)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 16))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_key_exchange_completed_data_bounds_check(const bcmolt_gpon_onu_key_exchange_completed_data *this, bcmolt_presence_mask fields_present, bcmolt_gpon_onu_key_exchange_completed_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_KEY_EXCHANGE_COMPLETED_ID_NEW_KEY)) != 0)
+    {
+        if (!bcmolt_aes_key_bounds_check(&this->new_key))
+        {
+            *failed_prop = BCMOLT_GPON_ONU_KEY_EXCHANGE_COMPLETED_ID_NEW_KEY;
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_gpon_onu_key_exchange_decrypt_required_data_set_default(bcmolt_gpon_onu_key_exchange_decrypt_required_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_KEY_EXCHANGE_DECRYPT_REQUIRED_ID_NEW_KEY)) != 0)
+    {
+        memset(this->new_key.bytes, 0, sizeof(this->new_key.bytes));
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_key_exchange_decrypt_required_data_pack(const bcmolt_gpon_onu_key_exchange_decrypt_required_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_KEY_EXCHANGE_DECRYPT_REQUIRED_ID_NEW_KEY)) != 0)
+    {
+        if (!bcmolt_aes_key_pack(&this->new_key, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_gpon_onu_key_exchange_decrypt_required_data_get_packed_length(const bcmolt_gpon_onu_key_exchange_decrypt_required_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_KEY_EXCHANGE_DECRYPT_REQUIRED_ID_NEW_KEY)) != 0)
+    {
+        count += 16;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_key_exchange_decrypt_required_data_unpack(bcmolt_gpon_onu_key_exchange_decrypt_required_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_KEY_EXCHANGE_DECRYPT_REQUIRED_ID_NEW_KEY)) != 0)
+    {
+        if (!bcmolt_aes_key_unpack(&this->new_key, buf, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_key_exchange_decrypt_required_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_KEY_EXCHANGE_DECRYPT_REQUIRED_ID_NEW_KEY)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 16))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_key_exchange_decrypt_required_data_bounds_check(const bcmolt_gpon_onu_key_exchange_decrypt_required_data *this, bcmolt_presence_mask fields_present, bcmolt_gpon_onu_key_exchange_decrypt_required_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_KEY_EXCHANGE_DECRYPT_REQUIRED_ID_NEW_KEY)) != 0)
+    {
+        if (!bcmolt_aes_key_bounds_check(&this->new_key))
+        {
+            *failed_prop = BCMOLT_GPON_ONU_KEY_EXCHANGE_DECRYPT_REQUIRED_ID_NEW_KEY;
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_gpon_onu_key_exchange_key_mismatch_data_set_default(bcmolt_gpon_onu_key_exchange_key_mismatch_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_KEY_EXCHANGE_KEY_MISMATCH_ID_EXPECTED_KEY)) != 0)
+    {
+        memset(this->expected_key.bytes, 0, sizeof(this->expected_key.bytes));
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_KEY_EXCHANGE_KEY_MISMATCH_ID_RECEIVED_KEY)) != 0)
+    {
+        memset(this->received_key.bytes, 0, sizeof(this->received_key.bytes));
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_key_exchange_key_mismatch_data_pack(const bcmolt_gpon_onu_key_exchange_key_mismatch_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_KEY_EXCHANGE_KEY_MISMATCH_ID_EXPECTED_KEY)) != 0)
+    {
+        if (!bcmolt_aes_key_pack(&this->expected_key, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_KEY_EXCHANGE_KEY_MISMATCH_ID_RECEIVED_KEY)) != 0)
+    {
+        if (!bcmolt_aes_key_pack(&this->received_key, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_gpon_onu_key_exchange_key_mismatch_data_get_packed_length(const bcmolt_gpon_onu_key_exchange_key_mismatch_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_KEY_EXCHANGE_KEY_MISMATCH_ID_EXPECTED_KEY)) != 0)
+    {
+        count += 16;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_KEY_EXCHANGE_KEY_MISMATCH_ID_RECEIVED_KEY)) != 0)
+    {
+        count += 16;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_key_exchange_key_mismatch_data_unpack(bcmolt_gpon_onu_key_exchange_key_mismatch_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_KEY_EXCHANGE_KEY_MISMATCH_ID_EXPECTED_KEY)) != 0)
+    {
+        if (!bcmolt_aes_key_unpack(&this->expected_key, buf, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_KEY_EXCHANGE_KEY_MISMATCH_ID_RECEIVED_KEY)) != 0)
+    {
+        if (!bcmolt_aes_key_unpack(&this->received_key, buf, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_key_exchange_key_mismatch_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_KEY_EXCHANGE_KEY_MISMATCH_ID_EXPECTED_KEY)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 16))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_KEY_EXCHANGE_KEY_MISMATCH_ID_RECEIVED_KEY)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 16))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_key_exchange_key_mismatch_data_bounds_check(const bcmolt_gpon_onu_key_exchange_key_mismatch_data *this, bcmolt_presence_mask fields_present, bcmolt_gpon_onu_key_exchange_key_mismatch_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_KEY_EXCHANGE_KEY_MISMATCH_ID_EXPECTED_KEY)) != 0)
+    {
+        if (!bcmolt_aes_key_bounds_check(&this->expected_key))
+        {
+            *failed_prop = BCMOLT_GPON_ONU_KEY_EXCHANGE_KEY_MISMATCH_ID_EXPECTED_KEY;
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_KEY_EXCHANGE_KEY_MISMATCH_ID_RECEIVED_KEY)) != 0)
+    {
+        if (!bcmolt_aes_key_bounds_check(&this->received_key))
+        {
+            *failed_prop = BCMOLT_GPON_ONU_KEY_EXCHANGE_KEY_MISMATCH_ID_RECEIVED_KEY;
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_gpon_onu_key_exchange_unconsecutive_index_data_set_default(bcmolt_gpon_onu_key_exchange_unconsecutive_index_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_KEY_EXCHANGE_UNCONSECUTIVE_INDEX_ID_EXPECTED_INDEX)) != 0)
+    {
+        this->expected_index = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_KEY_EXCHANGE_UNCONSECUTIVE_INDEX_ID_ACTUAL_INDEX)) != 0)
+    {
+        this->actual_index = 0;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_key_exchange_unconsecutive_index_data_pack(const bcmolt_gpon_onu_key_exchange_unconsecutive_index_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_KEY_EXCHANGE_UNCONSECUTIVE_INDEX_ID_EXPECTED_INDEX)) != 0)
+    {
+        if (!bcmolt_buf_write_u32(buf, this->expected_index))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_KEY_EXCHANGE_UNCONSECUTIVE_INDEX_ID_ACTUAL_INDEX)) != 0)
+    {
+        if (!bcmolt_buf_write_u32(buf, this->actual_index))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_gpon_onu_key_exchange_unconsecutive_index_data_get_packed_length(const bcmolt_gpon_onu_key_exchange_unconsecutive_index_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_KEY_EXCHANGE_UNCONSECUTIVE_INDEX_ID_EXPECTED_INDEX)) != 0)
+    {
+        count += 4;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_KEY_EXCHANGE_UNCONSECUTIVE_INDEX_ID_ACTUAL_INDEX)) != 0)
+    {
+        count += 4;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_key_exchange_unconsecutive_index_data_unpack(bcmolt_gpon_onu_key_exchange_unconsecutive_index_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_KEY_EXCHANGE_UNCONSECUTIVE_INDEX_ID_EXPECTED_INDEX)) != 0)
+    {
+        if (!bcmolt_buf_read_u32(buf, &this->expected_index))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_KEY_EXCHANGE_UNCONSECUTIVE_INDEX_ID_ACTUAL_INDEX)) != 0)
+    {
+        if (!bcmolt_buf_read_u32(buf, &this->actual_index))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_key_exchange_unconsecutive_index_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_KEY_EXCHANGE_UNCONSECUTIVE_INDEX_ID_EXPECTED_INDEX)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 4))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_KEY_EXCHANGE_UNCONSECUTIVE_INDEX_ID_ACTUAL_INDEX)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 4))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_key_exchange_unconsecutive_index_data_bounds_check(const bcmolt_gpon_onu_key_exchange_unconsecutive_index_data *this, bcmolt_presence_mask fields_present, bcmolt_gpon_onu_key_exchange_unconsecutive_index_id *failed_prop)
+{
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_gpon_onu_loai_data_set_default(bcmolt_gpon_onu_loai_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_LOAI_ID_ALARM_STATUS)) != 0)
+    {
+        this->alarm_status = BCMOLT_STATUS_OFF;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_loai_data_pack(const bcmolt_gpon_onu_loai_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_LOAI_ID_ALARM_STATUS)) != 0)
+    {
+        if (!bcmolt_status_pack(this->alarm_status, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_gpon_onu_loai_data_get_packed_length(const bcmolt_gpon_onu_loai_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_LOAI_ID_ALARM_STATUS)) != 0)
+    {
+        count += 1;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_loai_data_unpack(bcmolt_gpon_onu_loai_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_LOAI_ID_ALARM_STATUS)) != 0)
+    {
+        if (!bcmolt_status_unpack(&this->alarm_status, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_loai_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_LOAI_ID_ALARM_STATUS)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_loai_data_bounds_check(const bcmolt_gpon_onu_loai_data *this, bcmolt_presence_mask fields_present, bcmolt_gpon_onu_loai_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_LOAI_ID_ALARM_STATUS)) != 0)
+    {
+        switch (this->alarm_status)
+        {
+            case BCMOLT_STATUS_OFF:
+                break;
+            case BCMOLT_STATUS_ON:
+                break;
+            case BCMOLT_STATUS_NO_CHANGE:
+                break;
+            default:
+                *failed_prop = BCMOLT_GPON_ONU_LOAI_ID_ALARM_STATUS;
+                return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_gpon_onu_loki_data_set_default(bcmolt_gpon_onu_loki_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_LOKI_ID_ALARM_STATUS)) != 0)
+    {
+        this->alarm_status = BCMOLT_STATUS_OFF;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_loki_data_pack(const bcmolt_gpon_onu_loki_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_LOKI_ID_ALARM_STATUS)) != 0)
+    {
+        if (!bcmolt_status_pack(this->alarm_status, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_gpon_onu_loki_data_get_packed_length(const bcmolt_gpon_onu_loki_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_LOKI_ID_ALARM_STATUS)) != 0)
+    {
+        count += 1;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_loki_data_unpack(bcmolt_gpon_onu_loki_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_LOKI_ID_ALARM_STATUS)) != 0)
+    {
+        if (!bcmolt_status_unpack(&this->alarm_status, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_loki_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_LOKI_ID_ALARM_STATUS)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_loki_data_bounds_check(const bcmolt_gpon_onu_loki_data *this, bcmolt_presence_mask fields_present, bcmolt_gpon_onu_loki_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_LOKI_ID_ALARM_STATUS)) != 0)
+    {
+        switch (this->alarm_status)
+        {
+            case BCMOLT_STATUS_OFF:
+                break;
+            case BCMOLT_STATUS_ON:
+                break;
+            case BCMOLT_STATUS_NO_CHANGE:
+                break;
+            default:
+                *failed_prop = BCMOLT_GPON_ONU_LOKI_ID_ALARM_STATUS;
+                return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_gpon_onu_memi_data_set_default(bcmolt_gpon_onu_memi_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_MEMI_ID_PLOAM_BUFFER)) != 0)
+    {
+        memset(this->ploam_buffer.arr, 0, sizeof(this->ploam_buffer.arr));
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_memi_data_pack(const bcmolt_gpon_onu_memi_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_MEMI_ID_PLOAM_BUFFER)) != 0)
+    {
+        if (!bcmolt_arr_u8_13_pack(&this->ploam_buffer, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_gpon_onu_memi_data_get_packed_length(const bcmolt_gpon_onu_memi_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_MEMI_ID_PLOAM_BUFFER)) != 0)
+    {
+        count += 13;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_memi_data_unpack(bcmolt_gpon_onu_memi_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_MEMI_ID_PLOAM_BUFFER)) != 0)
+    {
+        if (!bcmolt_arr_u8_13_unpack(&this->ploam_buffer, buf, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_memi_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_MEMI_ID_PLOAM_BUFFER)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 13))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_memi_data_bounds_check(const bcmolt_gpon_onu_memi_data *this, bcmolt_presence_mask fields_present, bcmolt_gpon_onu_memi_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_MEMI_ID_PLOAM_BUFFER)) != 0)
+    {
+        if (!bcmolt_arr_u8_13_bounds_check(&this->ploam_buffer))
+        {
+            *failed_prop = BCMOLT_GPON_ONU_MEMI_ID_PLOAM_BUFFER;
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_gpon_onu_omci_port_id_configuration_completed_data_set_default(bcmolt_gpon_onu_omci_port_id_configuration_completed_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_OMCI_PORT_ID_CONFIGURATION_COMPLETED_ID_GEM_PORT)) != 0)
+    {
+        this->gem_port = (bcmolt_gpon_gem_id) 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_OMCI_PORT_ID_CONFIGURATION_COMPLETED_ID_STATUS)) != 0)
+    {
+        this->status = BCMOLT_RESULT_SUCCESS;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_OMCI_PORT_ID_CONFIGURATION_COMPLETED_ID_OPERATION)) != 0)
+    {
+        this->operation = BCMOLT_OMCI_PORT_ID_OPERATION_CONFIGURE;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_omci_port_id_configuration_completed_data_pack(const bcmolt_gpon_onu_omci_port_id_configuration_completed_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_OMCI_PORT_ID_CONFIGURATION_COMPLETED_ID_GEM_PORT)) != 0)
+    {
+        if (!bcmolt_buf_write_u16(buf, (uint16_t) this->gem_port))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_OMCI_PORT_ID_CONFIGURATION_COMPLETED_ID_STATUS)) != 0)
+    {
+        if (!bcmolt_result_pack(this->status, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_OMCI_PORT_ID_CONFIGURATION_COMPLETED_ID_OPERATION)) != 0)
+    {
+        if (!bcmolt_omci_port_id_operation_pack(this->operation, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_gpon_onu_omci_port_id_configuration_completed_data_get_packed_length(const bcmolt_gpon_onu_omci_port_id_configuration_completed_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_OMCI_PORT_ID_CONFIGURATION_COMPLETED_ID_GEM_PORT)) != 0)
+    {
+        count += 2;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_OMCI_PORT_ID_CONFIGURATION_COMPLETED_ID_STATUS)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_OMCI_PORT_ID_CONFIGURATION_COMPLETED_ID_OPERATION)) != 0)
+    {
+        count += 1;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_omci_port_id_configuration_completed_data_unpack(bcmolt_gpon_onu_omci_port_id_configuration_completed_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_OMCI_PORT_ID_CONFIGURATION_COMPLETED_ID_GEM_PORT)) != 0)
+    {
+        if (!bcmolt_buf_read_u16(buf, (uint16_t *) &this->gem_port))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_OMCI_PORT_ID_CONFIGURATION_COMPLETED_ID_STATUS)) != 0)
+    {
+        if (!bcmolt_result_unpack(&this->status, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_OMCI_PORT_ID_CONFIGURATION_COMPLETED_ID_OPERATION)) != 0)
+    {
+        if (!bcmolt_omci_port_id_operation_unpack(&this->operation, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_omci_port_id_configuration_completed_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_OMCI_PORT_ID_CONFIGURATION_COMPLETED_ID_GEM_PORT)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 2))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_OMCI_PORT_ID_CONFIGURATION_COMPLETED_ID_STATUS)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_OMCI_PORT_ID_CONFIGURATION_COMPLETED_ID_OPERATION)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_omci_port_id_configuration_completed_data_bounds_check(const bcmolt_gpon_onu_omci_port_id_configuration_completed_data *this, bcmolt_presence_mask fields_present, bcmolt_gpon_onu_omci_port_id_configuration_completed_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_OMCI_PORT_ID_CONFIGURATION_COMPLETED_ID_GEM_PORT)) != 0)
+    {
+        if (this->gem_port > (bcmolt_gpon_gem_id) 4095)
+        {
+            *failed_prop = BCMOLT_GPON_ONU_OMCI_PORT_ID_CONFIGURATION_COMPLETED_ID_GEM_PORT;
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_OMCI_PORT_ID_CONFIGURATION_COMPLETED_ID_STATUS)) != 0)
+    {
+        switch (this->status)
+        {
+            case BCMOLT_RESULT_SUCCESS:
+                break;
+            case BCMOLT_RESULT_FAIL:
+                break;
+            default:
+                *failed_prop = BCMOLT_GPON_ONU_OMCI_PORT_ID_CONFIGURATION_COMPLETED_ID_STATUS;
+                return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_OMCI_PORT_ID_CONFIGURATION_COMPLETED_ID_OPERATION)) != 0)
+    {
+        switch (this->operation)
+        {
+            case BCMOLT_OMCI_PORT_ID_OPERATION_CONFIGURE:
+                break;
+            case BCMOLT_OMCI_PORT_ID_OPERATION_REMOVE:
+                break;
+            default:
+                *failed_prop = BCMOLT_GPON_ONU_OMCI_PORT_ID_CONFIGURATION_COMPLETED_ID_OPERATION;
+                return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_gpon_onu_onu_activation_completed_data_set_default(bcmolt_gpon_onu_onu_activation_completed_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_ONU_ACTIVATION_COMPLETED_ID_STATUS)) != 0)
+    {
+        this->status = BCMOLT_RESULT_SUCCESS;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_ONU_ACTIVATION_COMPLETED_ID_FAIL_REASON)) != 0)
+    {
+        this->fail_reason = BCMOLT_ACTIVATION_FAIL_REASON_NONE;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_onu_activation_completed_data_pack(const bcmolt_gpon_onu_onu_activation_completed_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_ONU_ACTIVATION_COMPLETED_ID_STATUS)) != 0)
+    {
+        if (!bcmolt_result_pack(this->status, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_ONU_ACTIVATION_COMPLETED_ID_FAIL_REASON)) != 0)
+    {
+        if (!bcmolt_activation_fail_reason_pack(this->fail_reason, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_gpon_onu_onu_activation_completed_data_get_packed_length(const bcmolt_gpon_onu_onu_activation_completed_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_ONU_ACTIVATION_COMPLETED_ID_STATUS)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_ONU_ACTIVATION_COMPLETED_ID_FAIL_REASON)) != 0)
+    {
+        count += 1;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_onu_activation_completed_data_unpack(bcmolt_gpon_onu_onu_activation_completed_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_ONU_ACTIVATION_COMPLETED_ID_STATUS)) != 0)
+    {
+        if (!bcmolt_result_unpack(&this->status, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_ONU_ACTIVATION_COMPLETED_ID_FAIL_REASON)) != 0)
+    {
+        if (!bcmolt_activation_fail_reason_unpack(&this->fail_reason, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_onu_activation_completed_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_ONU_ACTIVATION_COMPLETED_ID_STATUS)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_ONU_ACTIVATION_COMPLETED_ID_FAIL_REASON)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_onu_activation_completed_data_bounds_check(const bcmolt_gpon_onu_onu_activation_completed_data *this, bcmolt_presence_mask fields_present, bcmolt_gpon_onu_onu_activation_completed_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_ONU_ACTIVATION_COMPLETED_ID_STATUS)) != 0)
+    {
+        switch (this->status)
+        {
+            case BCMOLT_RESULT_SUCCESS:
+                break;
+            case BCMOLT_RESULT_FAIL:
+                break;
+            default:
+                *failed_prop = BCMOLT_GPON_ONU_ONU_ACTIVATION_COMPLETED_ID_STATUS;
+                return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_ONU_ACTIVATION_COMPLETED_ID_FAIL_REASON)) != 0)
+    {
+        switch (this->fail_reason)
+        {
+            case BCMOLT_ACTIVATION_FAIL_REASON_NONE:
+                break;
+            case BCMOLT_ACTIVATION_FAIL_REASON_RANGING:
+                break;
+            case BCMOLT_ACTIVATION_FAIL_REASON_PASSWORD_AUTHENTICATION:
+                break;
+            case BCMOLT_ACTIVATION_FAIL_REASON_LOS:
+                break;
+            case BCMOLT_ACTIVATION_FAIL_REASON_ONU_ALARM:
+                break;
+            default:
+                *failed_prop = BCMOLT_GPON_ONU_ONU_ACTIVATION_COMPLETED_ID_FAIL_REASON;
+                return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_gpon_onu_onu_activation_standby_completed_data_set_default(bcmolt_gpon_onu_onu_activation_standby_completed_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_ONU_ACTIVATION_STANDBY_COMPLETED_ID_RESULT)) != 0)
+    {
+        this->result = BCMOLT_RESULT_SUCCESS;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_onu_activation_standby_completed_data_pack(const bcmolt_gpon_onu_onu_activation_standby_completed_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_ONU_ACTIVATION_STANDBY_COMPLETED_ID_RESULT)) != 0)
+    {
+        if (!bcmolt_result_pack(this->result, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_gpon_onu_onu_activation_standby_completed_data_get_packed_length(const bcmolt_gpon_onu_onu_activation_standby_completed_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_ONU_ACTIVATION_STANDBY_COMPLETED_ID_RESULT)) != 0)
+    {
+        count += 1;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_onu_activation_standby_completed_data_unpack(bcmolt_gpon_onu_onu_activation_standby_completed_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_ONU_ACTIVATION_STANDBY_COMPLETED_ID_RESULT)) != 0)
+    {
+        if (!bcmolt_result_unpack(&this->result, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_onu_activation_standby_completed_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_ONU_ACTIVATION_STANDBY_COMPLETED_ID_RESULT)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_onu_activation_standby_completed_data_bounds_check(const bcmolt_gpon_onu_onu_activation_standby_completed_data *this, bcmolt_presence_mask fields_present, bcmolt_gpon_onu_onu_activation_standby_completed_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_ONU_ACTIVATION_STANDBY_COMPLETED_ID_RESULT)) != 0)
+    {
+        switch (this->result)
+        {
+            case BCMOLT_RESULT_SUCCESS:
+                break;
+            case BCMOLT_RESULT_FAIL:
+                break;
+            default:
+                *failed_prop = BCMOLT_GPON_ONU_ONU_ACTIVATION_STANDBY_COMPLETED_ID_RESULT;
+                return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_gpon_onu_onu_alarm_data_set_default(bcmolt_gpon_onu_onu_alarm_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_ONU_ALARM_ID_ONU_ALARM)) != 0)
+    {
+        this->onu_alarm.losi = BCMOLT_STATUS_OFF;
+        this->onu_alarm.lofi = BCMOLT_STATUS_OFF;
+        this->onu_alarm.loami = BCMOLT_STATUS_OFF;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_onu_alarm_data_pack(const bcmolt_gpon_onu_onu_alarm_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_ONU_ALARM_ID_ONU_ALARM)) != 0)
+    {
+        if (!bcmolt_gpon_onu_alarms_pack(&this->onu_alarm, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_gpon_onu_onu_alarm_data_get_packed_length(const bcmolt_gpon_onu_onu_alarm_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_ONU_ALARM_ID_ONU_ALARM)) != 0)
+    {
+        count += 3;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_onu_alarm_data_unpack(bcmolt_gpon_onu_onu_alarm_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_ONU_ALARM_ID_ONU_ALARM)) != 0)
+    {
+        if (!bcmolt_gpon_onu_alarms_unpack(&this->onu_alarm, buf, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_onu_alarm_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_ONU_ALARM_ID_ONU_ALARM)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 3))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_onu_alarm_data_bounds_check(const bcmolt_gpon_onu_onu_alarm_data *this, bcmolt_presence_mask fields_present, bcmolt_gpon_onu_onu_alarm_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_ONU_ALARM_ID_ONU_ALARM)) != 0)
+    {
+        if (!bcmolt_gpon_onu_alarms_bounds_check(&this->onu_alarm))
+        {
+            *failed_prop = BCMOLT_GPON_ONU_ONU_ALARM_ID_ONU_ALARM;
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_gpon_onu_onu_deactivation_completed_data_set_default(bcmolt_gpon_onu_onu_deactivation_completed_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_ONU_DEACTIVATION_COMPLETED_ID_STATUS)) != 0)
+    {
+        this->status = BCMOLT_RESULT_SUCCESS;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_onu_deactivation_completed_data_pack(const bcmolt_gpon_onu_onu_deactivation_completed_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_ONU_DEACTIVATION_COMPLETED_ID_STATUS)) != 0)
+    {
+        if (!bcmolt_result_pack(this->status, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_gpon_onu_onu_deactivation_completed_data_get_packed_length(const bcmolt_gpon_onu_onu_deactivation_completed_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_ONU_DEACTIVATION_COMPLETED_ID_STATUS)) != 0)
+    {
+        count += 1;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_onu_deactivation_completed_data_unpack(bcmolt_gpon_onu_onu_deactivation_completed_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_ONU_DEACTIVATION_COMPLETED_ID_STATUS)) != 0)
+    {
+        if (!bcmolt_result_unpack(&this->status, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_onu_deactivation_completed_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_ONU_DEACTIVATION_COMPLETED_ID_STATUS)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_onu_deactivation_completed_data_bounds_check(const bcmolt_gpon_onu_onu_deactivation_completed_data *this, bcmolt_presence_mask fields_present, bcmolt_gpon_onu_onu_deactivation_completed_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_ONU_DEACTIVATION_COMPLETED_ID_STATUS)) != 0)
+    {
+        switch (this->status)
+        {
+            case BCMOLT_RESULT_SUCCESS:
+                break;
+            case BCMOLT_RESULT_FAIL:
+                break;
+            default:
+                *failed_prop = BCMOLT_GPON_ONU_ONU_DEACTIVATION_COMPLETED_ID_STATUS;
+                return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_gpon_onu_onu_disable_completed_data_set_default(bcmolt_gpon_onu_onu_disable_completed_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_ONU_DISABLE_COMPLETED_ID_SERIAL_NUMBER)) != 0)
+    {
+        memset(this->serial_number.vendor_id, 0, sizeof(this->serial_number.vendor_id));
+        memset(this->serial_number.vendor_specific, 0, sizeof(this->serial_number.vendor_specific));
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_onu_disable_completed_data_pack(const bcmolt_gpon_onu_onu_disable_completed_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_ONU_DISABLE_COMPLETED_ID_SERIAL_NUMBER)) != 0)
+    {
+        if (!bcmolt_serial_number_pack(&this->serial_number, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_gpon_onu_onu_disable_completed_data_get_packed_length(const bcmolt_gpon_onu_onu_disable_completed_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_ONU_DISABLE_COMPLETED_ID_SERIAL_NUMBER)) != 0)
+    {
+        count += 8;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_onu_disable_completed_data_unpack(bcmolt_gpon_onu_onu_disable_completed_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_ONU_DISABLE_COMPLETED_ID_SERIAL_NUMBER)) != 0)
+    {
+        if (!bcmolt_serial_number_unpack(&this->serial_number, buf, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_onu_disable_completed_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_ONU_DISABLE_COMPLETED_ID_SERIAL_NUMBER)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_onu_disable_completed_data_bounds_check(const bcmolt_gpon_onu_onu_disable_completed_data *this, bcmolt_presence_mask fields_present, bcmolt_gpon_onu_onu_disable_completed_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_ONU_DISABLE_COMPLETED_ID_SERIAL_NUMBER)) != 0)
+    {
+        if (!bcmolt_serial_number_bounds_check(&this->serial_number))
+        {
+            *failed_prop = BCMOLT_GPON_ONU_ONU_DISABLE_COMPLETED_ID_SERIAL_NUMBER;
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_gpon_onu_onu_enable_completed_data_set_default(bcmolt_gpon_onu_onu_enable_completed_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_ONU_ENABLE_COMPLETED_ID_SERIAL_NUMBER)) != 0)
+    {
+        memset(this->serial_number.vendor_id, 0, sizeof(this->serial_number.vendor_id));
+        memset(this->serial_number.vendor_specific, 0, sizeof(this->serial_number.vendor_specific));
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_onu_enable_completed_data_pack(const bcmolt_gpon_onu_onu_enable_completed_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_ONU_ENABLE_COMPLETED_ID_SERIAL_NUMBER)) != 0)
+    {
+        if (!bcmolt_serial_number_pack(&this->serial_number, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_gpon_onu_onu_enable_completed_data_get_packed_length(const bcmolt_gpon_onu_onu_enable_completed_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_ONU_ENABLE_COMPLETED_ID_SERIAL_NUMBER)) != 0)
+    {
+        count += 8;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_onu_enable_completed_data_unpack(bcmolt_gpon_onu_onu_enable_completed_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_ONU_ENABLE_COMPLETED_ID_SERIAL_NUMBER)) != 0)
+    {
+        if (!bcmolt_serial_number_unpack(&this->serial_number, buf, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_onu_enable_completed_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_ONU_ENABLE_COMPLETED_ID_SERIAL_NUMBER)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_onu_enable_completed_data_bounds_check(const bcmolt_gpon_onu_onu_enable_completed_data *this, bcmolt_presence_mask fields_present, bcmolt_gpon_onu_onu_enable_completed_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_ONU_ENABLE_COMPLETED_ID_SERIAL_NUMBER)) != 0)
+    {
+        if (!bcmolt_serial_number_bounds_check(&this->serial_number))
+        {
+            *failed_prop = BCMOLT_GPON_ONU_ONU_ENABLE_COMPLETED_ID_SERIAL_NUMBER;
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_gpon_onu_password_authentication_completed_data_set_default(bcmolt_gpon_onu_password_authentication_completed_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_PASSWORD_AUTHENTICATION_COMPLETED_ID_STATUS)) != 0)
+    {
+        this->status = BCMOLT_RESULT_SUCCESS;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_PASSWORD_AUTHENTICATION_COMPLETED_ID_FAIL_REASON)) != 0)
+    {
+        this->fail_reason = BCMOLT_PASSWORD_AUTHENTICATION_FAIL_REASON_NONE;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_PASSWORD_AUTHENTICATION_COMPLETED_ID_PASSWORD)) != 0)
+    {
+        memset(this->password.arr, 0, sizeof(this->password.arr));
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_password_authentication_completed_data_pack(const bcmolt_gpon_onu_password_authentication_completed_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_PASSWORD_AUTHENTICATION_COMPLETED_ID_STATUS)) != 0)
+    {
+        if (!bcmolt_result_pack(this->status, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_PASSWORD_AUTHENTICATION_COMPLETED_ID_FAIL_REASON)) != 0)
+    {
+        if (!bcmolt_password_authentication_fail_reason_pack(this->fail_reason, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_PASSWORD_AUTHENTICATION_COMPLETED_ID_PASSWORD)) != 0)
+    {
+        if (!bcmolt_arr_u8_10_pack(&this->password, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_gpon_onu_password_authentication_completed_data_get_packed_length(const bcmolt_gpon_onu_password_authentication_completed_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_PASSWORD_AUTHENTICATION_COMPLETED_ID_STATUS)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_PASSWORD_AUTHENTICATION_COMPLETED_ID_FAIL_REASON)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_PASSWORD_AUTHENTICATION_COMPLETED_ID_PASSWORD)) != 0)
+    {
+        count += 10;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_password_authentication_completed_data_unpack(bcmolt_gpon_onu_password_authentication_completed_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_PASSWORD_AUTHENTICATION_COMPLETED_ID_STATUS)) != 0)
+    {
+        if (!bcmolt_result_unpack(&this->status, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_PASSWORD_AUTHENTICATION_COMPLETED_ID_FAIL_REASON)) != 0)
+    {
+        if (!bcmolt_password_authentication_fail_reason_unpack(&this->fail_reason, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_PASSWORD_AUTHENTICATION_COMPLETED_ID_PASSWORD)) != 0)
+    {
+        if (!bcmolt_arr_u8_10_unpack(&this->password, buf, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_password_authentication_completed_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_PASSWORD_AUTHENTICATION_COMPLETED_ID_STATUS)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_PASSWORD_AUTHENTICATION_COMPLETED_ID_FAIL_REASON)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_PASSWORD_AUTHENTICATION_COMPLETED_ID_PASSWORD)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 10))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_password_authentication_completed_data_bounds_check(const bcmolt_gpon_onu_password_authentication_completed_data *this, bcmolt_presence_mask fields_present, bcmolt_gpon_onu_password_authentication_completed_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_PASSWORD_AUTHENTICATION_COMPLETED_ID_STATUS)) != 0)
+    {
+        switch (this->status)
+        {
+            case BCMOLT_RESULT_SUCCESS:
+                break;
+            case BCMOLT_RESULT_FAIL:
+                break;
+            default:
+                *failed_prop = BCMOLT_GPON_ONU_PASSWORD_AUTHENTICATION_COMPLETED_ID_STATUS;
+                return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_PASSWORD_AUTHENTICATION_COMPLETED_ID_FAIL_REASON)) != 0)
+    {
+        switch (this->fail_reason)
+        {
+            case BCMOLT_PASSWORD_AUTHENTICATION_FAIL_REASON_NONE:
+                break;
+            case BCMOLT_PASSWORD_AUTHENTICATION_FAIL_REASON_PASSWORD_INCONSISTENCY:
+                break;
+            case BCMOLT_PASSWORD_AUTHENTICATION_FAIL_REASON_PASSWORD_MISMATCH:
+                break;
+            case BCMOLT_PASSWORD_AUTHENTICATION_FAIL_REASON_PASSWORD_AUTHENTICATION_TIMEOUT:
+                break;
+            case BCMOLT_PASSWORD_AUTHENTICATION_FAIL_REASON_ONU_ALARM:
+                break;
+            case BCMOLT_PASSWORD_AUTHENTICATION_FAIL_REASON_LOS_EVENT:
+                break;
+            case BCMOLT_PASSWORD_AUTHENTICATION_FAIL_REASON_DISABLE_EVENT:
+                break;
+            default:
+                *failed_prop = BCMOLT_GPON_ONU_PASSWORD_AUTHENTICATION_COMPLETED_ID_FAIL_REASON;
+                return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_PASSWORD_AUTHENTICATION_COMPLETED_ID_PASSWORD)) != 0)
+    {
+        if (!bcmolt_arr_u8_10_bounds_check(&this->password))
+        {
+            *failed_prop = BCMOLT_GPON_ONU_PASSWORD_AUTHENTICATION_COMPLETED_ID_PASSWORD;
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_gpon_onu_pee_data_set_default(bcmolt_gpon_onu_pee_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_PEE_ID_ALARM_STATUS)) != 0)
+    {
+        this->alarm_status = BCMOLT_STATUS_OFF;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_pee_data_pack(const bcmolt_gpon_onu_pee_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_PEE_ID_ALARM_STATUS)) != 0)
+    {
+        if (!bcmolt_status_pack(this->alarm_status, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_gpon_onu_pee_data_get_packed_length(const bcmolt_gpon_onu_pee_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_PEE_ID_ALARM_STATUS)) != 0)
+    {
+        count += 1;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_pee_data_unpack(bcmolt_gpon_onu_pee_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_PEE_ID_ALARM_STATUS)) != 0)
+    {
+        if (!bcmolt_status_unpack(&this->alarm_status, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_pee_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_PEE_ID_ALARM_STATUS)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_pee_data_bounds_check(const bcmolt_gpon_onu_pee_data *this, bcmolt_presence_mask fields_present, bcmolt_gpon_onu_pee_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_PEE_ID_ALARM_STATUS)) != 0)
+    {
+        switch (this->alarm_status)
+        {
+            case BCMOLT_STATUS_OFF:
+                break;
+            case BCMOLT_STATUS_ON:
+                break;
+            case BCMOLT_STATUS_NO_CHANGE:
+                break;
+            default:
+                *failed_prop = BCMOLT_GPON_ONU_PEE_ID_ALARM_STATUS;
+                return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_gpon_onu_possible_drift_data_set_default(bcmolt_gpon_onu_possible_drift_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_POSSIBLE_DRIFT_ID_ALARM_STATUS)) != 0)
+    {
+        this->alarm_status = BCMOLT_STATUS_OFF;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_POSSIBLE_DRIFT_ID_ESTIMATED_DRIFT)) != 0)
+    {
+        this->estimated_drift = 0;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_possible_drift_data_pack(const bcmolt_gpon_onu_possible_drift_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_POSSIBLE_DRIFT_ID_ALARM_STATUS)) != 0)
+    {
+        if (!bcmolt_status_pack(this->alarm_status, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_POSSIBLE_DRIFT_ID_ESTIMATED_DRIFT)) != 0)
+    {
+        if (!bcmolt_buf_write_s32(buf, this->estimated_drift))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_gpon_onu_possible_drift_data_get_packed_length(const bcmolt_gpon_onu_possible_drift_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_POSSIBLE_DRIFT_ID_ALARM_STATUS)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_POSSIBLE_DRIFT_ID_ESTIMATED_DRIFT)) != 0)
+    {
+        count += 4;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_possible_drift_data_unpack(bcmolt_gpon_onu_possible_drift_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_POSSIBLE_DRIFT_ID_ALARM_STATUS)) != 0)
+    {
+        if (!bcmolt_status_unpack(&this->alarm_status, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_POSSIBLE_DRIFT_ID_ESTIMATED_DRIFT)) != 0)
+    {
+        if (!bcmolt_buf_read_s32(buf, &this->estimated_drift))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_possible_drift_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_POSSIBLE_DRIFT_ID_ALARM_STATUS)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_POSSIBLE_DRIFT_ID_ESTIMATED_DRIFT)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 4))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_possible_drift_data_bounds_check(const bcmolt_gpon_onu_possible_drift_data *this, bcmolt_presence_mask fields_present, bcmolt_gpon_onu_possible_drift_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_POSSIBLE_DRIFT_ID_ALARM_STATUS)) != 0)
+    {
+        switch (this->alarm_status)
+        {
+            case BCMOLT_STATUS_OFF:
+                break;
+            case BCMOLT_STATUS_ON:
+                break;
+            case BCMOLT_STATUS_NO_CHANGE:
+                break;
+            default:
+                *failed_prop = BCMOLT_GPON_ONU_POSSIBLE_DRIFT_ID_ALARM_STATUS;
+                return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_gpon_onu_power_management_state_change_data_set_default(bcmolt_gpon_onu_power_management_state_change_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_POWER_MANAGEMENT_STATE_CHANGE_ID_OLD_STATE)) != 0)
+    {
+        this->old_state = BCMOLT_ONU_STATE_NOT_CONFIGURED;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_POWER_MANAGEMENT_STATE_CHANGE_ID_NEW_STATE)) != 0)
+    {
+        this->new_state = BCMOLT_ONU_STATE_NOT_CONFIGURED;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_POWER_MANAGEMENT_STATE_CHANGE_ID_REASON)) != 0)
+    {
+        this->reason = BCMOLT_POWER_MANAGEMENT_TRANSITION_REASON_POWER_MANAGEMENT_ENABLED;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_power_management_state_change_data_pack(const bcmolt_gpon_onu_power_management_state_change_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_POWER_MANAGEMENT_STATE_CHANGE_ID_OLD_STATE)) != 0)
+    {
+        if (!bcmolt_onu_state_pack(this->old_state, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_POWER_MANAGEMENT_STATE_CHANGE_ID_NEW_STATE)) != 0)
+    {
+        if (!bcmolt_onu_state_pack(this->new_state, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_POWER_MANAGEMENT_STATE_CHANGE_ID_REASON)) != 0)
+    {
+        if (!bcmolt_power_management_transition_reason_pack(this->reason, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_gpon_onu_power_management_state_change_data_get_packed_length(const bcmolt_gpon_onu_power_management_state_change_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_POWER_MANAGEMENT_STATE_CHANGE_ID_OLD_STATE)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_POWER_MANAGEMENT_STATE_CHANGE_ID_NEW_STATE)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_POWER_MANAGEMENT_STATE_CHANGE_ID_REASON)) != 0)
+    {
+        count += 1;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_power_management_state_change_data_unpack(bcmolt_gpon_onu_power_management_state_change_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_POWER_MANAGEMENT_STATE_CHANGE_ID_OLD_STATE)) != 0)
+    {
+        if (!bcmolt_onu_state_unpack(&this->old_state, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_POWER_MANAGEMENT_STATE_CHANGE_ID_NEW_STATE)) != 0)
+    {
+        if (!bcmolt_onu_state_unpack(&this->new_state, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_POWER_MANAGEMENT_STATE_CHANGE_ID_REASON)) != 0)
+    {
+        if (!bcmolt_power_management_transition_reason_unpack(&this->reason, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_power_management_state_change_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_POWER_MANAGEMENT_STATE_CHANGE_ID_OLD_STATE)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_POWER_MANAGEMENT_STATE_CHANGE_ID_NEW_STATE)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_POWER_MANAGEMENT_STATE_CHANGE_ID_REASON)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_power_management_state_change_data_bounds_check(const bcmolt_gpon_onu_power_management_state_change_data *this, bcmolt_presence_mask fields_present, bcmolt_gpon_onu_power_management_state_change_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_POWER_MANAGEMENT_STATE_CHANGE_ID_OLD_STATE)) != 0)
+    {
+        switch (this->old_state)
+        {
+            case BCMOLT_ONU_STATE_NOT_CONFIGURED:
+                break;
+            case BCMOLT_ONU_STATE_INACTIVE:
+                break;
+            case BCMOLT_ONU_STATE_ACTIVE:
+                break;
+            case BCMOLT_ONU_STATE_ACTIVE_STANDBY:
+                break;
+            case BCMOLT_ONU_STATE_DISABLED:
+                break;
+            case BCMOLT_ONU_STATE_AWAKE_FREE:
+                break;
+            case BCMOLT_ONU_STATE_PROCESSING:
+                break;
+            case BCMOLT_ONU_STATE_LOW_POWER_DOZE:
+                break;
+            case BCMOLT_ONU_STATE_LOW_POWER_SLEEP:
+                break;
+            case BCMOLT_ONU_STATE_LOW_POWER_WATCH:
+                break;
+            case BCMOLT_ONU_STATE_UNAWARE:
+                break;
+            default:
+                *failed_prop = BCMOLT_GPON_ONU_POWER_MANAGEMENT_STATE_CHANGE_ID_OLD_STATE;
+                return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_POWER_MANAGEMENT_STATE_CHANGE_ID_NEW_STATE)) != 0)
+    {
+        switch (this->new_state)
+        {
+            case BCMOLT_ONU_STATE_NOT_CONFIGURED:
+                break;
+            case BCMOLT_ONU_STATE_INACTIVE:
+                break;
+            case BCMOLT_ONU_STATE_ACTIVE:
+                break;
+            case BCMOLT_ONU_STATE_ACTIVE_STANDBY:
+                break;
+            case BCMOLT_ONU_STATE_DISABLED:
+                break;
+            case BCMOLT_ONU_STATE_AWAKE_FREE:
+                break;
+            case BCMOLT_ONU_STATE_PROCESSING:
+                break;
+            case BCMOLT_ONU_STATE_LOW_POWER_DOZE:
+                break;
+            case BCMOLT_ONU_STATE_LOW_POWER_SLEEP:
+                break;
+            case BCMOLT_ONU_STATE_LOW_POWER_WATCH:
+                break;
+            case BCMOLT_ONU_STATE_UNAWARE:
+                break;
+            default:
+                *failed_prop = BCMOLT_GPON_ONU_POWER_MANAGEMENT_STATE_CHANGE_ID_NEW_STATE;
+                return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_POWER_MANAGEMENT_STATE_CHANGE_ID_REASON)) != 0)
+    {
+        switch (this->reason)
+        {
+            case BCMOLT_POWER_MANAGEMENT_TRANSITION_REASON_POWER_MANAGEMENT_ENABLED:
+                break;
+            case BCMOLT_POWER_MANAGEMENT_TRANSITION_REASON_POWER_MANAGEMENT_DISABLED:
+                break;
+            case BCMOLT_POWER_MANAGEMENT_TRANSITION_REASON_SLEEP_REQUEST_AWAKE:
+                break;
+            case BCMOLT_POWER_MANAGEMENT_TRANSITION_REASON_SLEEP_REQUEST_DOZE:
+                break;
+            case BCMOLT_POWER_MANAGEMENT_TRANSITION_REASON_SLEEP_REQUEST_SLEEP:
+                break;
+            case BCMOLT_POWER_MANAGEMENT_TRANSITION_REASON_SLEEP_REQUEST_WATCH:
+                break;
+            case BCMOLT_POWER_MANAGEMENT_TRANSITION_REASON_TERI_EXPIRED:
+                break;
+            case BCMOLT_POWER_MANAGEMENT_TRANSITION_REASON_TALERTED_EXPIRED:
+                break;
+            case BCMOLT_POWER_MANAGEMENT_TRANSITION_REASON_ALARM:
+                break;
+            default:
+                *failed_prop = BCMOLT_GPON_ONU_POWER_MANAGEMENT_STATE_CHANGE_ID_REASON;
+                return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_gpon_onu_pst_data_set_default(bcmolt_gpon_onu_pst_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_PST_ID_LINK_NUMBER)) != 0)
+    {
+        this->link_number = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_PST_ID_K1)) != 0)
+    {
+        this->k1 = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_PST_ID_K2)) != 0)
+    {
+        this->k2 = 0;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_pst_data_pack(const bcmolt_gpon_onu_pst_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_PST_ID_LINK_NUMBER)) != 0)
+    {
+        if (!bcmolt_buf_write_u32(buf, this->link_number))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_PST_ID_K1)) != 0)
+    {
+        if (!bcmolt_buf_write_u8(buf, this->k1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_PST_ID_K2)) != 0)
+    {
+        if (!bcmolt_buf_write_u8(buf, this->k2))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_gpon_onu_pst_data_get_packed_length(const bcmolt_gpon_onu_pst_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_PST_ID_LINK_NUMBER)) != 0)
+    {
+        count += 4;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_PST_ID_K1)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_PST_ID_K2)) != 0)
+    {
+        count += 1;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_pst_data_unpack(bcmolt_gpon_onu_pst_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_PST_ID_LINK_NUMBER)) != 0)
+    {
+        if (!bcmolt_buf_read_u32(buf, &this->link_number))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_PST_ID_K1)) != 0)
+    {
+        if (!bcmolt_buf_read_u8(buf, &this->k1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_PST_ID_K2)) != 0)
+    {
+        if (!bcmolt_buf_read_u8(buf, &this->k2))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_pst_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_PST_ID_LINK_NUMBER)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 4))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_PST_ID_K1)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_PST_ID_K2)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_pst_data_bounds_check(const bcmolt_gpon_onu_pst_data *this, bcmolt_presence_mask fields_present, bcmolt_gpon_onu_pst_id *failed_prop)
+{
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_gpon_onu_ranging_completed_data_set_default(bcmolt_gpon_onu_ranging_completed_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_RANGING_COMPLETED_ID_STATUS)) != 0)
+    {
+        this->status = BCMOLT_RESULT_SUCCESS;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_RANGING_COMPLETED_ID_FAIL_REASON)) != 0)
+    {
+        this->fail_reason = BCMOLT_RANGING_FAIL_REASON_NONE;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_RANGING_COMPLETED_ID_NUMBER_OF_PLOAMS)) != 0)
+    {
+        this->number_of_ploams = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_RANGING_COMPLETED_ID_EQD)) != 0)
+    {
+        this->eqd = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_RANGING_COMPLETED_ID_POWER_LEVEL)) != 0)
+    {
+        this->power_level = 0;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_ranging_completed_data_pack(const bcmolt_gpon_onu_ranging_completed_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_RANGING_COMPLETED_ID_STATUS)) != 0)
+    {
+        if (!bcmolt_result_pack(this->status, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_RANGING_COMPLETED_ID_FAIL_REASON)) != 0)
+    {
+        if (!bcmolt_ranging_fail_reason_pack(this->fail_reason, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_RANGING_COMPLETED_ID_NUMBER_OF_PLOAMS)) != 0)
+    {
+        if (!bcmolt_buf_write_u8(buf, this->number_of_ploams))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_RANGING_COMPLETED_ID_EQD)) != 0)
+    {
+        if (!bcmolt_buf_write_u32(buf, this->eqd))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_RANGING_COMPLETED_ID_POWER_LEVEL)) != 0)
+    {
+        if (!bcmolt_buf_write_u8(buf, this->power_level))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_gpon_onu_ranging_completed_data_get_packed_length(const bcmolt_gpon_onu_ranging_completed_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_RANGING_COMPLETED_ID_STATUS)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_RANGING_COMPLETED_ID_FAIL_REASON)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_RANGING_COMPLETED_ID_NUMBER_OF_PLOAMS)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_RANGING_COMPLETED_ID_EQD)) != 0)
+    {
+        count += 4;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_RANGING_COMPLETED_ID_POWER_LEVEL)) != 0)
+    {
+        count += 1;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_ranging_completed_data_unpack(bcmolt_gpon_onu_ranging_completed_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_RANGING_COMPLETED_ID_STATUS)) != 0)
+    {
+        if (!bcmolt_result_unpack(&this->status, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_RANGING_COMPLETED_ID_FAIL_REASON)) != 0)
+    {
+        if (!bcmolt_ranging_fail_reason_unpack(&this->fail_reason, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_RANGING_COMPLETED_ID_NUMBER_OF_PLOAMS)) != 0)
+    {
+        if (!bcmolt_buf_read_u8(buf, &this->number_of_ploams))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_RANGING_COMPLETED_ID_EQD)) != 0)
+    {
+        if (!bcmolt_buf_read_u32(buf, &this->eqd))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_RANGING_COMPLETED_ID_POWER_LEVEL)) != 0)
+    {
+        if (!bcmolt_buf_read_u8(buf, &this->power_level))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_ranging_completed_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_RANGING_COMPLETED_ID_STATUS)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_RANGING_COMPLETED_ID_FAIL_REASON)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_RANGING_COMPLETED_ID_NUMBER_OF_PLOAMS)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_RANGING_COMPLETED_ID_EQD)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 4))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_RANGING_COMPLETED_ID_POWER_LEVEL)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_ranging_completed_data_bounds_check(const bcmolt_gpon_onu_ranging_completed_data *this, bcmolt_presence_mask fields_present, bcmolt_gpon_onu_ranging_completed_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_RANGING_COMPLETED_ID_STATUS)) != 0)
+    {
+        switch (this->status)
+        {
+            case BCMOLT_RESULT_SUCCESS:
+                break;
+            case BCMOLT_RESULT_FAIL:
+                break;
+            default:
+                *failed_prop = BCMOLT_GPON_ONU_RANGING_COMPLETED_ID_STATUS;
+                return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_RANGING_COMPLETED_ID_FAIL_REASON)) != 0)
+    {
+        switch (this->fail_reason)
+        {
+            case BCMOLT_RANGING_FAIL_REASON_NONE:
+                break;
+            case BCMOLT_RANGING_FAIL_REASON_RANGING_ACK_TIMEOUT:
+                break;
+            case BCMOLT_RANGING_FAIL_REASON_PLOAM_DATA_MISMATCH:
+                break;
+            case BCMOLT_RANGING_FAIL_REASON_PLOAM_TYPE_MISMATCH:
+                break;
+            case BCMOLT_RANGING_FAIL_REASON_PLOAM_ONU_ID_MISMATCH:
+                break;
+            case BCMOLT_RANGING_FAIL_REASON_DRIFT_EXCEEDED:
+                break;
+            case BCMOLT_RANGING_FAIL_REASON_NO_PLOAM_RECEIVED:
+                break;
+            case BCMOLT_RANGING_FAIL_REASON_LOS:
+                break;
+            case BCMOLT_RANGING_FAIL_REASON_ALARMS:
+                break;
+            default:
+                *failed_prop = BCMOLT_GPON_ONU_RANGING_COMPLETED_ID_FAIL_REASON;
+                return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_gpon_onu_rei_data_set_default(bcmolt_gpon_onu_rei_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_REI_ID_BIP8_ERRORS)) != 0)
+    {
+        this->bip8_errors = 0;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_rei_data_pack(const bcmolt_gpon_onu_rei_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_REI_ID_BIP8_ERRORS)) != 0)
+    {
+        if (!bcmolt_buf_write_u32(buf, this->bip8_errors))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_gpon_onu_rei_data_get_packed_length(const bcmolt_gpon_onu_rei_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_REI_ID_BIP8_ERRORS)) != 0)
+    {
+        count += 4;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_rei_data_unpack(bcmolt_gpon_onu_rei_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_REI_ID_BIP8_ERRORS)) != 0)
+    {
+        if (!bcmolt_buf_read_u32(buf, &this->bip8_errors))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_rei_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_REI_ID_BIP8_ERRORS)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 4))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_rei_data_bounds_check(const bcmolt_gpon_onu_rei_data *this, bcmolt_presence_mask fields_present, bcmolt_gpon_onu_rei_id *failed_prop)
+{
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_gpon_onu_rssi_measurement_completed_data_set_default(bcmolt_gpon_onu_rssi_measurement_completed_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_RSSI_MEASUREMENT_COMPLETED_ID_STATUS)) != 0)
+    {
+        this->status = BCMOLT_RESULT_SUCCESS;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_RSSI_MEASUREMENT_COMPLETED_ID_FAIL_REASON)) != 0)
+    {
+        this->fail_reason = BCMOLT_RSSI_MEASUREMENT_FAIL_REASON_NONE;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_rssi_measurement_completed_data_pack(const bcmolt_gpon_onu_rssi_measurement_completed_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_RSSI_MEASUREMENT_COMPLETED_ID_STATUS)) != 0)
+    {
+        if (!bcmolt_result_pack(this->status, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_RSSI_MEASUREMENT_COMPLETED_ID_FAIL_REASON)) != 0)
+    {
+        if (!bcmolt_rssi_measurement_fail_reason_pack(this->fail_reason, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_gpon_onu_rssi_measurement_completed_data_get_packed_length(const bcmolt_gpon_onu_rssi_measurement_completed_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_RSSI_MEASUREMENT_COMPLETED_ID_STATUS)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_RSSI_MEASUREMENT_COMPLETED_ID_FAIL_REASON)) != 0)
+    {
+        count += 1;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_rssi_measurement_completed_data_unpack(bcmolt_gpon_onu_rssi_measurement_completed_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_RSSI_MEASUREMENT_COMPLETED_ID_STATUS)) != 0)
+    {
+        if (!bcmolt_result_unpack(&this->status, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_RSSI_MEASUREMENT_COMPLETED_ID_FAIL_REASON)) != 0)
+    {
+        if (!bcmolt_rssi_measurement_fail_reason_unpack(&this->fail_reason, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_rssi_measurement_completed_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_RSSI_MEASUREMENT_COMPLETED_ID_STATUS)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_RSSI_MEASUREMENT_COMPLETED_ID_FAIL_REASON)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_rssi_measurement_completed_data_bounds_check(const bcmolt_gpon_onu_rssi_measurement_completed_data *this, bcmolt_presence_mask fields_present, bcmolt_gpon_onu_rssi_measurement_completed_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_RSSI_MEASUREMENT_COMPLETED_ID_STATUS)) != 0)
+    {
+        switch (this->status)
+        {
+            case BCMOLT_RESULT_SUCCESS:
+                break;
+            case BCMOLT_RESULT_FAIL:
+                break;
+            default:
+                *failed_prop = BCMOLT_GPON_ONU_RSSI_MEASUREMENT_COMPLETED_ID_STATUS;
+                return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_RSSI_MEASUREMENT_COMPLETED_ID_FAIL_REASON)) != 0)
+    {
+        switch (this->fail_reason)
+        {
+            case BCMOLT_RSSI_MEASUREMENT_FAIL_REASON_NONE:
+                break;
+            case BCMOLT_RSSI_MEASUREMENT_FAIL_REASON_NO_DELIMITER:
+                break;
+            case BCMOLT_RSSI_MEASUREMENT_FAIL_REASON_NO_ACCESS:
+                break;
+            default:
+                *failed_prop = BCMOLT_GPON_ONU_RSSI_MEASUREMENT_COMPLETED_ID_FAIL_REASON;
+                return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_gpon_onu_sdi_data_set_default(bcmolt_gpon_onu_sdi_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_SDI_ID_ALARM_STATUS)) != 0)
+    {
+        this->alarm_status = BCMOLT_STATUS_OFF;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_SDI_ID_BER)) != 0)
+    {
+        this->ber = 0;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_sdi_data_pack(const bcmolt_gpon_onu_sdi_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_SDI_ID_ALARM_STATUS)) != 0)
+    {
+        if (!bcmolt_status_pack(this->alarm_status, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_SDI_ID_BER)) != 0)
+    {
+        if (!bcmolt_buf_write_u32(buf, this->ber))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_gpon_onu_sdi_data_get_packed_length(const bcmolt_gpon_onu_sdi_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_SDI_ID_ALARM_STATUS)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_SDI_ID_BER)) != 0)
+    {
+        count += 4;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_sdi_data_unpack(bcmolt_gpon_onu_sdi_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_SDI_ID_ALARM_STATUS)) != 0)
+    {
+        if (!bcmolt_status_unpack(&this->alarm_status, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_SDI_ID_BER)) != 0)
+    {
+        if (!bcmolt_buf_read_u32(buf, &this->ber))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_sdi_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_SDI_ID_ALARM_STATUS)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_SDI_ID_BER)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 4))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_sdi_data_bounds_check(const bcmolt_gpon_onu_sdi_data *this, bcmolt_presence_mask fields_present, bcmolt_gpon_onu_sdi_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_SDI_ID_ALARM_STATUS)) != 0)
+    {
+        switch (this->alarm_status)
+        {
+            case BCMOLT_STATUS_OFF:
+                break;
+            case BCMOLT_STATUS_ON:
+                break;
+            case BCMOLT_STATUS_NO_CHANGE:
+                break;
+            default:
+                *failed_prop = BCMOLT_GPON_ONU_SDI_ID_ALARM_STATUS;
+                return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_gpon_onu_sfi_data_set_default(bcmolt_gpon_onu_sfi_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_SFI_ID_ALARM_STATUS)) != 0)
+    {
+        this->alarm_status = BCMOLT_STATUS_OFF;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_SFI_ID_BER)) != 0)
+    {
+        this->ber = 0;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_sfi_data_pack(const bcmolt_gpon_onu_sfi_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_SFI_ID_ALARM_STATUS)) != 0)
+    {
+        if (!bcmolt_status_pack(this->alarm_status, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_SFI_ID_BER)) != 0)
+    {
+        if (!bcmolt_buf_write_u32(buf, this->ber))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_gpon_onu_sfi_data_get_packed_length(const bcmolt_gpon_onu_sfi_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_SFI_ID_ALARM_STATUS)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_SFI_ID_BER)) != 0)
+    {
+        count += 4;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_sfi_data_unpack(bcmolt_gpon_onu_sfi_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_SFI_ID_ALARM_STATUS)) != 0)
+    {
+        if (!bcmolt_status_unpack(&this->alarm_status, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_SFI_ID_BER)) != 0)
+    {
+        if (!bcmolt_buf_read_u32(buf, &this->ber))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_sfi_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_SFI_ID_ALARM_STATUS)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_SFI_ID_BER)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 4))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_sfi_data_bounds_check(const bcmolt_gpon_onu_sfi_data *this, bcmolt_presence_mask fields_present, bcmolt_gpon_onu_sfi_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_SFI_ID_ALARM_STATUS)) != 0)
+    {
+        switch (this->alarm_status)
+        {
+            case BCMOLT_STATUS_OFF:
+                break;
+            case BCMOLT_STATUS_ON:
+                break;
+            case BCMOLT_STATUS_NO_CHANGE:
+                break;
+            default:
+                *failed_prop = BCMOLT_GPON_ONU_SFI_ID_ALARM_STATUS;
+                return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_gpon_onu_stat_alarm_cleared_data_set_default(bcmolt_gpon_onu_stat_alarm_cleared_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_STAT_ALARM_CLEARED_ID_STAT)) != 0)
+    {
+        this->stat = BCMOLT_GPON_ONU_STAT_ID_FEC_CODEWORDS;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_stat_alarm_cleared_data_pack(const bcmolt_gpon_onu_stat_alarm_cleared_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_STAT_ALARM_CLEARED_ID_STAT)) != 0)
+    {
+        if (!bcmolt_gpon_onu_stat_id_pack(this->stat, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_gpon_onu_stat_alarm_cleared_data_get_packed_length(const bcmolt_gpon_onu_stat_alarm_cleared_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_STAT_ALARM_CLEARED_ID_STAT)) != 0)
+    {
+        count += 2;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_stat_alarm_cleared_data_unpack(bcmolt_gpon_onu_stat_alarm_cleared_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_STAT_ALARM_CLEARED_ID_STAT)) != 0)
+    {
+        if (!bcmolt_gpon_onu_stat_id_unpack(&this->stat, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_stat_alarm_cleared_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_STAT_ALARM_CLEARED_ID_STAT)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 2))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_stat_alarm_cleared_data_bounds_check(const bcmolt_gpon_onu_stat_alarm_cleared_data *this, bcmolt_presence_mask fields_present, bcmolt_gpon_onu_stat_alarm_cleared_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_STAT_ALARM_CLEARED_ID_STAT)) != 0)
+    {
+        switch (this->stat)
+        {
+            case BCMOLT_GPON_ONU_STAT_ID_FEC_CODEWORDS:
+                break;
+            case BCMOLT_GPON_ONU_STAT_ID_FEC_BYTES_CORRECTED:
+                break;
+            case BCMOLT_GPON_ONU_STAT_ID_FEC_CODEWORDS_CORRECTED:
+                break;
+            case BCMOLT_GPON_ONU_STAT_ID_FEC_CODEWORDS_UNCORRECTED:
+                break;
+            case BCMOLT_GPON_ONU_STAT_ID_BIP8_BYTES:
+                break;
+            case BCMOLT_GPON_ONU_STAT_ID_BIP8_ERRORS:
+                break;
+            case BCMOLT_GPON_ONU_STAT_ID_RX_PLOAMS_CRC_ERROR:
+                break;
+            case BCMOLT_GPON_ONU_STAT_ID_RX_PLOAMS_NON_IDLE:
+                break;
+            case BCMOLT_GPON_ONU_STAT_ID_POSITIVE_DRIFT:
+                break;
+            case BCMOLT_GPON_ONU_STAT_ID_NEGATIVE_DRIFT:
+                break;
+            case BCMOLT_GPON_ONU_STAT_ID_RX_OMCI:
+                break;
+            case BCMOLT_GPON_ONU_STAT_ID_RX_OMCI_PACKETS_CRC_ERROR:
+                break;
+            case BCMOLT_GPON_ONU_STAT_ID_BER_REPORTED:
+                break;
+            case BCMOLT_GPON_ONU_STAT_ID_UNRECEIVED_BURST:
+                break;
+            case BCMOLT_GPON_ONU_STAT_ID_LCDG_ERRORS:
+                break;
+            case BCMOLT_GPON_ONU_STAT_ID_RDI_ERRORS:
+                break;
+            case BCMOLT_GPON_ONU_STAT_ID_RX_BYTES:
+                break;
+            case BCMOLT_GPON_ONU_STAT_ID_RX_PACKETS:
+                break;
+            case BCMOLT_GPON_ONU_STAT_ID_TX_BYTES:
+                break;
+            case BCMOLT_GPON_ONU_STAT_ID_TX_PACKETS:
+                break;
+            default:
+                *failed_prop = BCMOLT_GPON_ONU_STAT_ALARM_CLEARED_ID_STAT;
+                return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_gpon_onu_stat_alarm_raised_data_set_default(bcmolt_gpon_onu_stat_alarm_raised_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_STAT_ALARM_RAISED_ID_STAT)) != 0)
+    {
+        this->stat = BCMOLT_GPON_ONU_STAT_ID_FEC_CODEWORDS;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_stat_alarm_raised_data_pack(const bcmolt_gpon_onu_stat_alarm_raised_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_STAT_ALARM_RAISED_ID_STAT)) != 0)
+    {
+        if (!bcmolt_gpon_onu_stat_id_pack(this->stat, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_gpon_onu_stat_alarm_raised_data_get_packed_length(const bcmolt_gpon_onu_stat_alarm_raised_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_STAT_ALARM_RAISED_ID_STAT)) != 0)
+    {
+        count += 2;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_stat_alarm_raised_data_unpack(bcmolt_gpon_onu_stat_alarm_raised_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_STAT_ALARM_RAISED_ID_STAT)) != 0)
+    {
+        if (!bcmolt_gpon_onu_stat_id_unpack(&this->stat, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_stat_alarm_raised_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_STAT_ALARM_RAISED_ID_STAT)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 2))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_stat_alarm_raised_data_bounds_check(const bcmolt_gpon_onu_stat_alarm_raised_data *this, bcmolt_presence_mask fields_present, bcmolt_gpon_onu_stat_alarm_raised_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_STAT_ALARM_RAISED_ID_STAT)) != 0)
+    {
+        switch (this->stat)
+        {
+            case BCMOLT_GPON_ONU_STAT_ID_FEC_CODEWORDS:
+                break;
+            case BCMOLT_GPON_ONU_STAT_ID_FEC_BYTES_CORRECTED:
+                break;
+            case BCMOLT_GPON_ONU_STAT_ID_FEC_CODEWORDS_CORRECTED:
+                break;
+            case BCMOLT_GPON_ONU_STAT_ID_FEC_CODEWORDS_UNCORRECTED:
+                break;
+            case BCMOLT_GPON_ONU_STAT_ID_BIP8_BYTES:
+                break;
+            case BCMOLT_GPON_ONU_STAT_ID_BIP8_ERRORS:
+                break;
+            case BCMOLT_GPON_ONU_STAT_ID_RX_PLOAMS_CRC_ERROR:
+                break;
+            case BCMOLT_GPON_ONU_STAT_ID_RX_PLOAMS_NON_IDLE:
+                break;
+            case BCMOLT_GPON_ONU_STAT_ID_POSITIVE_DRIFT:
+                break;
+            case BCMOLT_GPON_ONU_STAT_ID_NEGATIVE_DRIFT:
+                break;
+            case BCMOLT_GPON_ONU_STAT_ID_RX_OMCI:
+                break;
+            case BCMOLT_GPON_ONU_STAT_ID_RX_OMCI_PACKETS_CRC_ERROR:
+                break;
+            case BCMOLT_GPON_ONU_STAT_ID_BER_REPORTED:
+                break;
+            case BCMOLT_GPON_ONU_STAT_ID_UNRECEIVED_BURST:
+                break;
+            case BCMOLT_GPON_ONU_STAT_ID_LCDG_ERRORS:
+                break;
+            case BCMOLT_GPON_ONU_STAT_ID_RDI_ERRORS:
+                break;
+            case BCMOLT_GPON_ONU_STAT_ID_RX_BYTES:
+                break;
+            case BCMOLT_GPON_ONU_STAT_ID_RX_PACKETS:
+                break;
+            case BCMOLT_GPON_ONU_STAT_ID_TX_BYTES:
+                break;
+            case BCMOLT_GPON_ONU_STAT_ID_TX_PACKETS:
+                break;
+            default:
+                *failed_prop = BCMOLT_GPON_ONU_STAT_ALARM_RAISED_ID_STAT;
+                return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_gpon_onu_sufi_data_set_default(bcmolt_gpon_onu_sufi_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_SUFI_ID_ALARM_STATUS)) != 0)
+    {
+        this->alarm_status = BCMOLT_STATUS_OFF;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_sufi_data_pack(const bcmolt_gpon_onu_sufi_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_SUFI_ID_ALARM_STATUS)) != 0)
+    {
+        if (!bcmolt_status_pack(this->alarm_status, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_gpon_onu_sufi_data_get_packed_length(const bcmolt_gpon_onu_sufi_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_SUFI_ID_ALARM_STATUS)) != 0)
+    {
+        count += 1;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_sufi_data_unpack(bcmolt_gpon_onu_sufi_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_SUFI_ID_ALARM_STATUS)) != 0)
+    {
+        if (!bcmolt_status_unpack(&this->alarm_status, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_sufi_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_SUFI_ID_ALARM_STATUS)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_sufi_data_bounds_check(const bcmolt_gpon_onu_sufi_data *this, bcmolt_presence_mask fields_present, bcmolt_gpon_onu_sufi_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_SUFI_ID_ALARM_STATUS)) != 0)
+    {
+        switch (this->alarm_status)
+        {
+            case BCMOLT_STATUS_OFF:
+                break;
+            case BCMOLT_STATUS_ON:
+                break;
+            case BCMOLT_STATUS_NO_CHANGE:
+                break;
+            default:
+                *failed_prop = BCMOLT_GPON_ONU_SUFI_ID_ALARM_STATUS;
+                return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_gpon_onu_tiwi_data_set_default(bcmolt_gpon_onu_tiwi_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_TIWI_ID_ALARM_STATUS)) != 0)
+    {
+        this->alarm_status = BCMOLT_STATUS_OFF;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_TIWI_ID_DRIFT_VALUE)) != 0)
+    {
+        this->drift_value = 0;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_tiwi_data_pack(const bcmolt_gpon_onu_tiwi_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_TIWI_ID_ALARM_STATUS)) != 0)
+    {
+        if (!bcmolt_status_pack(this->alarm_status, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_TIWI_ID_DRIFT_VALUE)) != 0)
+    {
+        if (!bcmolt_buf_write_s32(buf, this->drift_value))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_gpon_onu_tiwi_data_get_packed_length(const bcmolt_gpon_onu_tiwi_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_TIWI_ID_ALARM_STATUS)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_TIWI_ID_DRIFT_VALUE)) != 0)
+    {
+        count += 4;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_tiwi_data_unpack(bcmolt_gpon_onu_tiwi_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_TIWI_ID_ALARM_STATUS)) != 0)
+    {
+        if (!bcmolt_status_unpack(&this->alarm_status, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_TIWI_ID_DRIFT_VALUE)) != 0)
+    {
+        if (!bcmolt_buf_read_s32(buf, &this->drift_value))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_tiwi_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_TIWI_ID_ALARM_STATUS)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_TIWI_ID_DRIFT_VALUE)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 4))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_tiwi_data_bounds_check(const bcmolt_gpon_onu_tiwi_data *this, bcmolt_presence_mask fields_present, bcmolt_gpon_onu_tiwi_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_TIWI_ID_ALARM_STATUS)) != 0)
+    {
+        switch (this->alarm_status)
+        {
+            case BCMOLT_STATUS_OFF:
+                break;
+            case BCMOLT_STATUS_ON:
+                break;
+            case BCMOLT_STATUS_NO_CHANGE:
+                break;
+            default:
+                *failed_prop = BCMOLT_GPON_ONU_TIWI_ID_ALARM_STATUS;
+                return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_gpon_onu_auto_cfg_data_set_default(bcmolt_gpon_onu_auto_cfg_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_AUTO_CFG_ID_BER_INTERVAL_CONFIGURATION_COMPLETED)) != 0)
+    {
+        this->ber_interval_configuration_completed = BCMOS_FALSE;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_AUTO_CFG_ID_DFI)) != 0)
+    {
+        this->dfi = BCMOS_FALSE;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_AUTO_CFG_ID_DGI)) != 0)
+    {
+        this->dgi = BCMOS_FALSE;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_AUTO_CFG_ID_DOWI)) != 0)
+    {
+        this->dowi = BCMOS_FALSE;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_AUTO_CFG_ID_ERR)) != 0)
+    {
+        this->err = BCMOS_FALSE;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_AUTO_CFG_ID_INVALID_DBRU_REPORT)) != 0)
+    {
+        this->invalid_dbru_report = BCMOS_FALSE;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_AUTO_CFG_ID_KEY_EXCHANGE_COMPLETED)) != 0)
+    {
+        this->key_exchange_completed = BCMOS_FALSE;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_AUTO_CFG_ID_KEY_EXCHANGE_CYCLE_SKIPPED)) != 0)
+    {
+        this->key_exchange_cycle_skipped = BCMOS_FALSE;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_AUTO_CFG_ID_KEY_EXCHANGE_DECRYPT_REQUIRED)) != 0)
+    {
+        this->key_exchange_decrypt_required = BCMOS_FALSE;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_AUTO_CFG_ID_KEY_EXCHANGE_KEY_MISMATCH)) != 0)
+    {
+        this->key_exchange_key_mismatch = BCMOS_FALSE;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_AUTO_CFG_ID_KEY_EXCHANGE_KEY_REQUEST_TIMEOUT)) != 0)
+    {
+        this->key_exchange_key_request_timeout = BCMOS_FALSE;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_AUTO_CFG_ID_KEY_EXCHANGE_UNCONSECUTIVE_INDEX)) != 0)
+    {
+        this->key_exchange_unconsecutive_index = BCMOS_FALSE;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_AUTO_CFG_ID_LOAI)) != 0)
+    {
+        this->loai = BCMOS_FALSE;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_AUTO_CFG_ID_LOKI)) != 0)
+    {
+        this->loki = BCMOS_FALSE;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_AUTO_CFG_ID_MEMI)) != 0)
+    {
+        this->memi = BCMOS_FALSE;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_AUTO_CFG_ID_OMCI_PORT_ID_CONFIGURATION_COMPLETED)) != 0)
+    {
+        this->omci_port_id_configuration_completed = BCMOS_FALSE;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_AUTO_CFG_ID_ONU_ACTIVATION_COMPLETED)) != 0)
+    {
+        this->onu_activation_completed = BCMOS_FALSE;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_AUTO_CFG_ID_ONU_ACTIVATION_STANDBY_COMPLETED)) != 0)
+    {
+        this->onu_activation_standby_completed = BCMOS_FALSE;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_AUTO_CFG_ID_ONU_ALARM)) != 0)
+    {
+        this->onu_alarm = BCMOS_FALSE;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_AUTO_CFG_ID_ONU_DEACTIVATION_COMPLETED)) != 0)
+    {
+        this->onu_deactivation_completed = BCMOS_FALSE;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_AUTO_CFG_ID_ONU_DISABLE_COMPLETED)) != 0)
+    {
+        this->onu_disable_completed = BCMOS_FALSE;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_AUTO_CFG_ID_ONU_ENABLE_COMPLETED)) != 0)
+    {
+        this->onu_enable_completed = BCMOS_FALSE;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_AUTO_CFG_ID_OPTICAL_REFLECTION)) != 0)
+    {
+        this->optical_reflection = BCMOS_FALSE;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_AUTO_CFG_ID_PASSWORD_AUTHENTICATION_COMPLETED)) != 0)
+    {
+        this->password_authentication_completed = BCMOS_FALSE;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_AUTO_CFG_ID_PEE)) != 0)
+    {
+        this->pee = BCMOS_FALSE;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_AUTO_CFG_ID_POSSIBLE_DRIFT)) != 0)
+    {
+        this->possible_drift = BCMOS_FALSE;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_AUTO_CFG_ID_POWER_MANAGEMENT_STATE_CHANGE)) != 0)
+    {
+        this->power_management_state_change = BCMOS_FALSE;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_AUTO_CFG_ID_PST)) != 0)
+    {
+        this->pst = BCMOS_FALSE;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_AUTO_CFG_ID_RANGING_COMPLETED)) != 0)
+    {
+        this->ranging_completed = BCMOS_FALSE;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_AUTO_CFG_ID_REI)) != 0)
+    {
+        this->rei = BCMOS_FALSE;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_AUTO_CFG_ID_RSSI_MEASUREMENT_COMPLETED)) != 0)
+    {
+        this->rssi_measurement_completed = BCMOS_FALSE;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_AUTO_CFG_ID_SDI)) != 0)
+    {
+        this->sdi = BCMOS_FALSE;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_AUTO_CFG_ID_SFI)) != 0)
+    {
+        this->sfi = BCMOS_FALSE;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_AUTO_CFG_ID_STAT_ALARM_CLEARED)) != 0)
+    {
+        this->stat_alarm_cleared = BCMOS_FALSE;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_AUTO_CFG_ID_STAT_ALARM_RAISED)) != 0)
+    {
+        this->stat_alarm_raised = BCMOS_FALSE;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_AUTO_CFG_ID_SUFI)) != 0)
+    {
+        this->sufi = BCMOS_FALSE;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_AUTO_CFG_ID_TIWI)) != 0)
+    {
+        this->tiwi = BCMOS_FALSE;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_auto_cfg_data_pack(const bcmolt_gpon_onu_auto_cfg_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_AUTO_CFG_ID_BER_INTERVAL_CONFIGURATION_COMPLETED)) != 0)
+    {
+        if (!bcmolt_buf_write_bool(buf, this->ber_interval_configuration_completed))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_AUTO_CFG_ID_DFI)) != 0)
+    {
+        if (!bcmolt_buf_write_bool(buf, this->dfi))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_AUTO_CFG_ID_DGI)) != 0)
+    {
+        if (!bcmolt_buf_write_bool(buf, this->dgi))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_AUTO_CFG_ID_DOWI)) != 0)
+    {
+        if (!bcmolt_buf_write_bool(buf, this->dowi))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_AUTO_CFG_ID_ERR)) != 0)
+    {
+        if (!bcmolt_buf_write_bool(buf, this->err))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_AUTO_CFG_ID_INVALID_DBRU_REPORT)) != 0)
+    {
+        if (!bcmolt_buf_write_bool(buf, this->invalid_dbru_report))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_AUTO_CFG_ID_KEY_EXCHANGE_COMPLETED)) != 0)
+    {
+        if (!bcmolt_buf_write_bool(buf, this->key_exchange_completed))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_AUTO_CFG_ID_KEY_EXCHANGE_CYCLE_SKIPPED)) != 0)
+    {
+        if (!bcmolt_buf_write_bool(buf, this->key_exchange_cycle_skipped))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_AUTO_CFG_ID_KEY_EXCHANGE_DECRYPT_REQUIRED)) != 0)
+    {
+        if (!bcmolt_buf_write_bool(buf, this->key_exchange_decrypt_required))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_AUTO_CFG_ID_KEY_EXCHANGE_KEY_MISMATCH)) != 0)
+    {
+        if (!bcmolt_buf_write_bool(buf, this->key_exchange_key_mismatch))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_AUTO_CFG_ID_KEY_EXCHANGE_KEY_REQUEST_TIMEOUT)) != 0)
+    {
+        if (!bcmolt_buf_write_bool(buf, this->key_exchange_key_request_timeout))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_AUTO_CFG_ID_KEY_EXCHANGE_UNCONSECUTIVE_INDEX)) != 0)
+    {
+        if (!bcmolt_buf_write_bool(buf, this->key_exchange_unconsecutive_index))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_AUTO_CFG_ID_LOAI)) != 0)
+    {
+        if (!bcmolt_buf_write_bool(buf, this->loai))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_AUTO_CFG_ID_LOKI)) != 0)
+    {
+        if (!bcmolt_buf_write_bool(buf, this->loki))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_AUTO_CFG_ID_MEMI)) != 0)
+    {
+        if (!bcmolt_buf_write_bool(buf, this->memi))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_AUTO_CFG_ID_OMCI_PORT_ID_CONFIGURATION_COMPLETED)) != 0)
+    {
+        if (!bcmolt_buf_write_bool(buf, this->omci_port_id_configuration_completed))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_AUTO_CFG_ID_ONU_ACTIVATION_COMPLETED)) != 0)
+    {
+        if (!bcmolt_buf_write_bool(buf, this->onu_activation_completed))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_AUTO_CFG_ID_ONU_ACTIVATION_STANDBY_COMPLETED)) != 0)
+    {
+        if (!bcmolt_buf_write_bool(buf, this->onu_activation_standby_completed))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_AUTO_CFG_ID_ONU_ALARM)) != 0)
+    {
+        if (!bcmolt_buf_write_bool(buf, this->onu_alarm))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_AUTO_CFG_ID_ONU_DEACTIVATION_COMPLETED)) != 0)
+    {
+        if (!bcmolt_buf_write_bool(buf, this->onu_deactivation_completed))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_AUTO_CFG_ID_ONU_DISABLE_COMPLETED)) != 0)
+    {
+        if (!bcmolt_buf_write_bool(buf, this->onu_disable_completed))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_AUTO_CFG_ID_ONU_ENABLE_COMPLETED)) != 0)
+    {
+        if (!bcmolt_buf_write_bool(buf, this->onu_enable_completed))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_AUTO_CFG_ID_OPTICAL_REFLECTION)) != 0)
+    {
+        if (!bcmolt_buf_write_bool(buf, this->optical_reflection))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_AUTO_CFG_ID_PASSWORD_AUTHENTICATION_COMPLETED)) != 0)
+    {
+        if (!bcmolt_buf_write_bool(buf, this->password_authentication_completed))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_AUTO_CFG_ID_PEE)) != 0)
+    {
+        if (!bcmolt_buf_write_bool(buf, this->pee))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_AUTO_CFG_ID_POSSIBLE_DRIFT)) != 0)
+    {
+        if (!bcmolt_buf_write_bool(buf, this->possible_drift))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_AUTO_CFG_ID_POWER_MANAGEMENT_STATE_CHANGE)) != 0)
+    {
+        if (!bcmolt_buf_write_bool(buf, this->power_management_state_change))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_AUTO_CFG_ID_PST)) != 0)
+    {
+        if (!bcmolt_buf_write_bool(buf, this->pst))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_AUTO_CFG_ID_RANGING_COMPLETED)) != 0)
+    {
+        if (!bcmolt_buf_write_bool(buf, this->ranging_completed))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_AUTO_CFG_ID_REI)) != 0)
+    {
+        if (!bcmolt_buf_write_bool(buf, this->rei))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_AUTO_CFG_ID_RSSI_MEASUREMENT_COMPLETED)) != 0)
+    {
+        if (!bcmolt_buf_write_bool(buf, this->rssi_measurement_completed))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_AUTO_CFG_ID_SDI)) != 0)
+    {
+        if (!bcmolt_buf_write_bool(buf, this->sdi))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_AUTO_CFG_ID_SFI)) != 0)
+    {
+        if (!bcmolt_buf_write_bool(buf, this->sfi))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_AUTO_CFG_ID_STAT_ALARM_CLEARED)) != 0)
+    {
+        if (!bcmolt_buf_write_bool(buf, this->stat_alarm_cleared))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_AUTO_CFG_ID_STAT_ALARM_RAISED)) != 0)
+    {
+        if (!bcmolt_buf_write_bool(buf, this->stat_alarm_raised))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_AUTO_CFG_ID_SUFI)) != 0)
+    {
+        if (!bcmolt_buf_write_bool(buf, this->sufi))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_AUTO_CFG_ID_TIWI)) != 0)
+    {
+        if (!bcmolt_buf_write_bool(buf, this->tiwi))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_gpon_onu_auto_cfg_data_get_packed_length(const bcmolt_gpon_onu_auto_cfg_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_AUTO_CFG_ID_BER_INTERVAL_CONFIGURATION_COMPLETED)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_AUTO_CFG_ID_DFI)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_AUTO_CFG_ID_DGI)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_AUTO_CFG_ID_DOWI)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_AUTO_CFG_ID_ERR)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_AUTO_CFG_ID_INVALID_DBRU_REPORT)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_AUTO_CFG_ID_KEY_EXCHANGE_COMPLETED)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_AUTO_CFG_ID_KEY_EXCHANGE_CYCLE_SKIPPED)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_AUTO_CFG_ID_KEY_EXCHANGE_DECRYPT_REQUIRED)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_AUTO_CFG_ID_KEY_EXCHANGE_KEY_MISMATCH)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_AUTO_CFG_ID_KEY_EXCHANGE_KEY_REQUEST_TIMEOUT)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_AUTO_CFG_ID_KEY_EXCHANGE_UNCONSECUTIVE_INDEX)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_AUTO_CFG_ID_LOAI)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_AUTO_CFG_ID_LOKI)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_AUTO_CFG_ID_MEMI)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_AUTO_CFG_ID_OMCI_PORT_ID_CONFIGURATION_COMPLETED)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_AUTO_CFG_ID_ONU_ACTIVATION_COMPLETED)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_AUTO_CFG_ID_ONU_ACTIVATION_STANDBY_COMPLETED)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_AUTO_CFG_ID_ONU_ALARM)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_AUTO_CFG_ID_ONU_DEACTIVATION_COMPLETED)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_AUTO_CFG_ID_ONU_DISABLE_COMPLETED)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_AUTO_CFG_ID_ONU_ENABLE_COMPLETED)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_AUTO_CFG_ID_OPTICAL_REFLECTION)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_AUTO_CFG_ID_PASSWORD_AUTHENTICATION_COMPLETED)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_AUTO_CFG_ID_PEE)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_AUTO_CFG_ID_POSSIBLE_DRIFT)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_AUTO_CFG_ID_POWER_MANAGEMENT_STATE_CHANGE)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_AUTO_CFG_ID_PST)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_AUTO_CFG_ID_RANGING_COMPLETED)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_AUTO_CFG_ID_REI)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_AUTO_CFG_ID_RSSI_MEASUREMENT_COMPLETED)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_AUTO_CFG_ID_SDI)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_AUTO_CFG_ID_SFI)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_AUTO_CFG_ID_STAT_ALARM_CLEARED)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_AUTO_CFG_ID_STAT_ALARM_RAISED)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_AUTO_CFG_ID_SUFI)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_AUTO_CFG_ID_TIWI)) != 0)
+    {
+        count += 1;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_auto_cfg_data_unpack(bcmolt_gpon_onu_auto_cfg_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_AUTO_CFG_ID_BER_INTERVAL_CONFIGURATION_COMPLETED)) != 0)
+    {
+        if (!bcmolt_buf_read_bool(buf, &this->ber_interval_configuration_completed))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_AUTO_CFG_ID_DFI)) != 0)
+    {
+        if (!bcmolt_buf_read_bool(buf, &this->dfi))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_AUTO_CFG_ID_DGI)) != 0)
+    {
+        if (!bcmolt_buf_read_bool(buf, &this->dgi))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_AUTO_CFG_ID_DOWI)) != 0)
+    {
+        if (!bcmolt_buf_read_bool(buf, &this->dowi))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_AUTO_CFG_ID_ERR)) != 0)
+    {
+        if (!bcmolt_buf_read_bool(buf, &this->err))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_AUTO_CFG_ID_INVALID_DBRU_REPORT)) != 0)
+    {
+        if (!bcmolt_buf_read_bool(buf, &this->invalid_dbru_report))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_AUTO_CFG_ID_KEY_EXCHANGE_COMPLETED)) != 0)
+    {
+        if (!bcmolt_buf_read_bool(buf, &this->key_exchange_completed))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_AUTO_CFG_ID_KEY_EXCHANGE_CYCLE_SKIPPED)) != 0)
+    {
+        if (!bcmolt_buf_read_bool(buf, &this->key_exchange_cycle_skipped))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_AUTO_CFG_ID_KEY_EXCHANGE_DECRYPT_REQUIRED)) != 0)
+    {
+        if (!bcmolt_buf_read_bool(buf, &this->key_exchange_decrypt_required))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_AUTO_CFG_ID_KEY_EXCHANGE_KEY_MISMATCH)) != 0)
+    {
+        if (!bcmolt_buf_read_bool(buf, &this->key_exchange_key_mismatch))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_AUTO_CFG_ID_KEY_EXCHANGE_KEY_REQUEST_TIMEOUT)) != 0)
+    {
+        if (!bcmolt_buf_read_bool(buf, &this->key_exchange_key_request_timeout))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_AUTO_CFG_ID_KEY_EXCHANGE_UNCONSECUTIVE_INDEX)) != 0)
+    {
+        if (!bcmolt_buf_read_bool(buf, &this->key_exchange_unconsecutive_index))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_AUTO_CFG_ID_LOAI)) != 0)
+    {
+        if (!bcmolt_buf_read_bool(buf, &this->loai))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_AUTO_CFG_ID_LOKI)) != 0)
+    {
+        if (!bcmolt_buf_read_bool(buf, &this->loki))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_AUTO_CFG_ID_MEMI)) != 0)
+    {
+        if (!bcmolt_buf_read_bool(buf, &this->memi))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_AUTO_CFG_ID_OMCI_PORT_ID_CONFIGURATION_COMPLETED)) != 0)
+    {
+        if (!bcmolt_buf_read_bool(buf, &this->omci_port_id_configuration_completed))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_AUTO_CFG_ID_ONU_ACTIVATION_COMPLETED)) != 0)
+    {
+        if (!bcmolt_buf_read_bool(buf, &this->onu_activation_completed))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_AUTO_CFG_ID_ONU_ACTIVATION_STANDBY_COMPLETED)) != 0)
+    {
+        if (!bcmolt_buf_read_bool(buf, &this->onu_activation_standby_completed))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_AUTO_CFG_ID_ONU_ALARM)) != 0)
+    {
+        if (!bcmolt_buf_read_bool(buf, &this->onu_alarm))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_AUTO_CFG_ID_ONU_DEACTIVATION_COMPLETED)) != 0)
+    {
+        if (!bcmolt_buf_read_bool(buf, &this->onu_deactivation_completed))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_AUTO_CFG_ID_ONU_DISABLE_COMPLETED)) != 0)
+    {
+        if (!bcmolt_buf_read_bool(buf, &this->onu_disable_completed))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_AUTO_CFG_ID_ONU_ENABLE_COMPLETED)) != 0)
+    {
+        if (!bcmolt_buf_read_bool(buf, &this->onu_enable_completed))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_AUTO_CFG_ID_OPTICAL_REFLECTION)) != 0)
+    {
+        if (!bcmolt_buf_read_bool(buf, &this->optical_reflection))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_AUTO_CFG_ID_PASSWORD_AUTHENTICATION_COMPLETED)) != 0)
+    {
+        if (!bcmolt_buf_read_bool(buf, &this->password_authentication_completed))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_AUTO_CFG_ID_PEE)) != 0)
+    {
+        if (!bcmolt_buf_read_bool(buf, &this->pee))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_AUTO_CFG_ID_POSSIBLE_DRIFT)) != 0)
+    {
+        if (!bcmolt_buf_read_bool(buf, &this->possible_drift))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_AUTO_CFG_ID_POWER_MANAGEMENT_STATE_CHANGE)) != 0)
+    {
+        if (!bcmolt_buf_read_bool(buf, &this->power_management_state_change))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_AUTO_CFG_ID_PST)) != 0)
+    {
+        if (!bcmolt_buf_read_bool(buf, &this->pst))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_AUTO_CFG_ID_RANGING_COMPLETED)) != 0)
+    {
+        if (!bcmolt_buf_read_bool(buf, &this->ranging_completed))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_AUTO_CFG_ID_REI)) != 0)
+    {
+        if (!bcmolt_buf_read_bool(buf, &this->rei))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_AUTO_CFG_ID_RSSI_MEASUREMENT_COMPLETED)) != 0)
+    {
+        if (!bcmolt_buf_read_bool(buf, &this->rssi_measurement_completed))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_AUTO_CFG_ID_SDI)) != 0)
+    {
+        if (!bcmolt_buf_read_bool(buf, &this->sdi))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_AUTO_CFG_ID_SFI)) != 0)
+    {
+        if (!bcmolt_buf_read_bool(buf, &this->sfi))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_AUTO_CFG_ID_STAT_ALARM_CLEARED)) != 0)
+    {
+        if (!bcmolt_buf_read_bool(buf, &this->stat_alarm_cleared))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_AUTO_CFG_ID_STAT_ALARM_RAISED)) != 0)
+    {
+        if (!bcmolt_buf_read_bool(buf, &this->stat_alarm_raised))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_AUTO_CFG_ID_SUFI)) != 0)
+    {
+        if (!bcmolt_buf_read_bool(buf, &this->sufi))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_AUTO_CFG_ID_TIWI)) != 0)
+    {
+        if (!bcmolt_buf_read_bool(buf, &this->tiwi))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_auto_cfg_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_AUTO_CFG_ID_BER_INTERVAL_CONFIGURATION_COMPLETED)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_AUTO_CFG_ID_DFI)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_AUTO_CFG_ID_DGI)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_AUTO_CFG_ID_DOWI)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_AUTO_CFG_ID_ERR)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_AUTO_CFG_ID_INVALID_DBRU_REPORT)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_AUTO_CFG_ID_KEY_EXCHANGE_COMPLETED)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_AUTO_CFG_ID_KEY_EXCHANGE_CYCLE_SKIPPED)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_AUTO_CFG_ID_KEY_EXCHANGE_DECRYPT_REQUIRED)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_AUTO_CFG_ID_KEY_EXCHANGE_KEY_MISMATCH)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_AUTO_CFG_ID_KEY_EXCHANGE_KEY_REQUEST_TIMEOUT)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_AUTO_CFG_ID_KEY_EXCHANGE_UNCONSECUTIVE_INDEX)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_AUTO_CFG_ID_LOAI)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_AUTO_CFG_ID_LOKI)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_AUTO_CFG_ID_MEMI)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_AUTO_CFG_ID_OMCI_PORT_ID_CONFIGURATION_COMPLETED)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_AUTO_CFG_ID_ONU_ACTIVATION_COMPLETED)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_AUTO_CFG_ID_ONU_ACTIVATION_STANDBY_COMPLETED)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_AUTO_CFG_ID_ONU_ALARM)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_AUTO_CFG_ID_ONU_DEACTIVATION_COMPLETED)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_AUTO_CFG_ID_ONU_DISABLE_COMPLETED)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_AUTO_CFG_ID_ONU_ENABLE_COMPLETED)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_AUTO_CFG_ID_OPTICAL_REFLECTION)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_AUTO_CFG_ID_PASSWORD_AUTHENTICATION_COMPLETED)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_AUTO_CFG_ID_PEE)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_AUTO_CFG_ID_POSSIBLE_DRIFT)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_AUTO_CFG_ID_POWER_MANAGEMENT_STATE_CHANGE)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_AUTO_CFG_ID_PST)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_AUTO_CFG_ID_RANGING_COMPLETED)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_AUTO_CFG_ID_REI)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_AUTO_CFG_ID_RSSI_MEASUREMENT_COMPLETED)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_AUTO_CFG_ID_SDI)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_AUTO_CFG_ID_SFI)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_AUTO_CFG_ID_STAT_ALARM_CLEARED)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_AUTO_CFG_ID_STAT_ALARM_RAISED)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_AUTO_CFG_ID_SUFI)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_AUTO_CFG_ID_TIWI)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_auto_cfg_data_bounds_check(const bcmolt_gpon_onu_auto_cfg_data *this, bcmolt_presence_mask fields_present, bcmolt_gpon_onu_auto_cfg_id *failed_prop)
+{
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_gpon_onu_change_power_level_data_set_default(bcmolt_gpon_onu_change_power_level_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_CHANGE_POWER_LEVEL_ID_POWER_LEVEL_ACTION)) != 0)
+    {
+        this->power_level_action = BCMOLT_ONU_POWER_LEVEL_INCREASE;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_change_power_level_data_pack(const bcmolt_gpon_onu_change_power_level_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_CHANGE_POWER_LEVEL_ID_POWER_LEVEL_ACTION)) != 0)
+    {
+        if (!bcmolt_onu_power_level_pack(this->power_level_action, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_gpon_onu_change_power_level_data_get_packed_length(const bcmolt_gpon_onu_change_power_level_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_CHANGE_POWER_LEVEL_ID_POWER_LEVEL_ACTION)) != 0)
+    {
+        count += 1;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_change_power_level_data_unpack(bcmolt_gpon_onu_change_power_level_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_CHANGE_POWER_LEVEL_ID_POWER_LEVEL_ACTION)) != 0)
+    {
+        if (!bcmolt_onu_power_level_unpack(&this->power_level_action, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_change_power_level_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_CHANGE_POWER_LEVEL_ID_POWER_LEVEL_ACTION)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_change_power_level_data_bounds_check(const bcmolt_gpon_onu_change_power_level_data *this, bcmolt_presence_mask fields_present, bcmolt_gpon_onu_change_power_level_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_CHANGE_POWER_LEVEL_ID_POWER_LEVEL_ACTION)) != 0)
+    {
+        switch (this->power_level_action)
+        {
+            case BCMOLT_ONU_POWER_LEVEL_INCREASE:
+                break;
+            case BCMOLT_ONU_POWER_LEVEL_DECREASE:
+                break;
+            default:
+                *failed_prop = BCMOLT_GPON_ONU_CHANGE_POWER_LEVEL_ID_POWER_LEVEL_ACTION;
+                return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_gpon_onu_set_onu_state_data_set_default(bcmolt_gpon_onu_set_onu_state_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_SET_ONU_STATE_ID_ONU_STATE)) != 0)
+    {
+        this->onu_state = BCMOLT_ONU_OPERATION_INACTIVE;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_set_onu_state_data_pack(const bcmolt_gpon_onu_set_onu_state_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_SET_ONU_STATE_ID_ONU_STATE)) != 0)
+    {
+        if (!bcmolt_onu_operation_pack(this->onu_state, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_gpon_onu_set_onu_state_data_get_packed_length(const bcmolt_gpon_onu_set_onu_state_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_SET_ONU_STATE_ID_ONU_STATE)) != 0)
+    {
+        count += 1;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_set_onu_state_data_unpack(bcmolt_gpon_onu_set_onu_state_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_SET_ONU_STATE_ID_ONU_STATE)) != 0)
+    {
+        if (!bcmolt_onu_operation_unpack(&this->onu_state, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_set_onu_state_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_SET_ONU_STATE_ID_ONU_STATE)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_set_onu_state_data_bounds_check(const bcmolt_gpon_onu_set_onu_state_data *this, bcmolt_presence_mask fields_present, bcmolt_gpon_onu_set_onu_state_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_SET_ONU_STATE_ID_ONU_STATE)) != 0)
+    {
+        switch (this->onu_state)
+        {
+            case BCMOLT_ONU_OPERATION_INACTIVE:
+                break;
+            case BCMOLT_ONU_OPERATION_ACTIVE:
+                break;
+            case BCMOLT_ONU_OPERATION_DISABLE:
+                break;
+            case BCMOLT_ONU_OPERATION_ENABLE:
+                break;
+            case BCMOLT_ONU_OPERATION_ACTIVE_STANDBY:
+                break;
+            case BCMOLT_ONU_OPERATION_AWAKE_FREE:
+                break;
+            default:
+                *failed_prop = BCMOLT_GPON_ONU_SET_ONU_STATE_ID_ONU_STATE;
+                return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_gpon_onu_cpu_packets_data_set_default(bcmolt_gpon_onu_cpu_packets_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_CPU_PACKETS_ID_PACKET_TYPE)) != 0)
+    {
+        this->packet_type = BCMOLT_PACKET_TYPE_CPU;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_CPU_PACKETS_ID_CALC_CRC)) != 0)
+    {
+        this->calc_crc = BCMOS_FALSE;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_CPU_PACKETS_ID_NUMBER_OF_PACKETS)) != 0)
+    {
+        this->number_of_packets = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_CPU_PACKETS_ID_PACKET_SIZE)) != 0)
+    {
+        this->packet_size = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_CPU_PACKETS_ID_BUFFER)) != 0)
+    {
+        this->buffer.len = 0;
+        this->buffer.val = NULL;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_cpu_packets_data_pack(const bcmolt_gpon_onu_cpu_packets_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_CPU_PACKETS_ID_PACKET_TYPE)) != 0)
+    {
+        if (!bcmolt_packet_type_pack(this->packet_type, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_CPU_PACKETS_ID_CALC_CRC)) != 0)
+    {
+        if (!bcmolt_buf_write_bool(buf, this->calc_crc))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_CPU_PACKETS_ID_NUMBER_OF_PACKETS)) != 0)
+    {
+        if (!bcmolt_buf_write_u8(buf, this->number_of_packets))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_CPU_PACKETS_ID_PACKET_SIZE)) != 0)
+    {
+        if (!bcmolt_buf_write_u16(buf, this->packet_size))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_CPU_PACKETS_ID_BUFFER)) != 0)
+    {
+        if (!bcmolt_u8_list_u32_max_2048_pack(&this->buffer, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_gpon_onu_cpu_packets_data_get_packed_length(const bcmolt_gpon_onu_cpu_packets_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_CPU_PACKETS_ID_PACKET_TYPE)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_CPU_PACKETS_ID_CALC_CRC)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_CPU_PACKETS_ID_NUMBER_OF_PACKETS)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_CPU_PACKETS_ID_PACKET_SIZE)) != 0)
+    {
+        count += 2;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_CPU_PACKETS_ID_BUFFER)) != 0)
+    {
+        count += bcmolt_u8_list_u32_max_2048_get_packed_length(&this->buffer);
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_cpu_packets_data_unpack(bcmolt_gpon_onu_cpu_packets_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_CPU_PACKETS_ID_PACKET_TYPE)) != 0)
+    {
+        if (!bcmolt_packet_type_unpack(&this->packet_type, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_CPU_PACKETS_ID_CALC_CRC)) != 0)
+    {
+        if (!bcmolt_buf_read_bool(buf, &this->calc_crc))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_CPU_PACKETS_ID_NUMBER_OF_PACKETS)) != 0)
+    {
+        if (!bcmolt_buf_read_u8(buf, &this->number_of_packets))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_CPU_PACKETS_ID_PACKET_SIZE)) != 0)
+    {
+        if (!bcmolt_buf_read_u16(buf, &this->packet_size))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_CPU_PACKETS_ID_BUFFER)) != 0)
+    {
+        if (!bcmolt_u8_list_u32_max_2048_unpack(&this->buffer, buf, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_cpu_packets_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_CPU_PACKETS_ID_PACKET_TYPE)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_CPU_PACKETS_ID_CALC_CRC)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_CPU_PACKETS_ID_NUMBER_OF_PACKETS)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_CPU_PACKETS_ID_PACKET_SIZE)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 2))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_CPU_PACKETS_ID_BUFFER)) != 0)
+    {
+        if (!bcmolt_u8_list_u32_max_2048_scan(packed, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_cpu_packets_data_bounds_check(const bcmolt_gpon_onu_cpu_packets_data *this, bcmolt_presence_mask fields_present, bcmolt_gpon_onu_cpu_packets_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_CPU_PACKETS_ID_PACKET_TYPE)) != 0)
+    {
+        switch (this->packet_type)
+        {
+            case BCMOLT_PACKET_TYPE_CPU:
+                break;
+            case BCMOLT_PACKET_TYPE_OMCI:
+                break;
+            default:
+                *failed_prop = BCMOLT_GPON_ONU_CPU_PACKETS_ID_PACKET_TYPE;
+                return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_CPU_PACKETS_ID_NUMBER_OF_PACKETS)) != 0)
+    {
+        if (this->number_of_packets > 32)
+        {
+            *failed_prop = BCMOLT_GPON_ONU_CPU_PACKETS_ID_NUMBER_OF_PACKETS;
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_CPU_PACKETS_ID_PACKET_SIZE)) != 0)
+    {
+        if (this->packet_size > 2000)
+        {
+            *failed_prop = BCMOLT_GPON_ONU_CPU_PACKETS_ID_PACKET_SIZE;
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_CPU_PACKETS_ID_BUFFER)) != 0)
+    {
+        if (this->buffer.len > 2048)
+        {
+            return BCMOS_FALSE;
+        }
+
+        if (!bcmolt_u8_list_u32_max_2048_bounds_check(&this->buffer))
+        {
+            *failed_prop = BCMOLT_GPON_ONU_CPU_PACKETS_ID_BUFFER;
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_gpon_onu_ploam_packet_data_set_default(bcmolt_gpon_onu_ploam_packet_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_PLOAM_PACKET_ID_PLOAM)) != 0)
+    {
+        memset(this->ploam.arr, 0, sizeof(this->ploam.arr));
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_ploam_packet_data_pack(const bcmolt_gpon_onu_ploam_packet_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_PLOAM_PACKET_ID_PLOAM)) != 0)
+    {
+        if (!bcmolt_arr_u8_12_pack(&this->ploam, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_gpon_onu_ploam_packet_data_get_packed_length(const bcmolt_gpon_onu_ploam_packet_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_PLOAM_PACKET_ID_PLOAM)) != 0)
+    {
+        count += 12;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_ploam_packet_data_unpack(bcmolt_gpon_onu_ploam_packet_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_PLOAM_PACKET_ID_PLOAM)) != 0)
+    {
+        if (!bcmolt_arr_u8_12_unpack(&this->ploam, buf, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_ploam_packet_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_PLOAM_PACKET_ID_PLOAM)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 12))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_ploam_packet_data_bounds_check(const bcmolt_gpon_onu_ploam_packet_data *this, bcmolt_presence_mask fields_present, bcmolt_gpon_onu_ploam_packet_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_PLOAM_PACKET_ID_PLOAM)) != 0)
+    {
+        if (!bcmolt_arr_u8_12_bounds_check(&this->ploam))
+        {
+            *failed_prop = BCMOLT_GPON_ONU_PLOAM_PACKET_ID_PLOAM;
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_gpon_onu_cpu_packet_data_set_default(bcmolt_gpon_onu_cpu_packet_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_CPU_PACKET_ID_PORT_ID)) != 0)
+    {
+        this->port_id = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_CPU_PACKET_ID_CRC_OK)) != 0)
+    {
+        this->crc_ok = BCMOS_FALSE;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_CPU_PACKET_ID_PACKET_SIZE)) != 0)
+    {
+        this->packet_size = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_CPU_PACKET_ID_BUFFER)) != 0)
+    {
+        this->buffer.len = 0;
+        this->buffer.val = NULL;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_cpu_packet_data_pack(const bcmolt_gpon_onu_cpu_packet_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_CPU_PACKET_ID_PORT_ID)) != 0)
+    {
+        if (!bcmolt_buf_write_u16(buf, this->port_id))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_CPU_PACKET_ID_CRC_OK)) != 0)
+    {
+        if (!bcmolt_buf_write_bool(buf, this->crc_ok))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_CPU_PACKET_ID_PACKET_SIZE)) != 0)
+    {
+        if (!bcmolt_buf_write_u32(buf, this->packet_size))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_CPU_PACKET_ID_BUFFER)) != 0)
+    {
+        if (!bcmolt_u8_list_u32_pack(&this->buffer, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_gpon_onu_cpu_packet_data_get_packed_length(const bcmolt_gpon_onu_cpu_packet_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_CPU_PACKET_ID_PORT_ID)) != 0)
+    {
+        count += 2;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_CPU_PACKET_ID_CRC_OK)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_CPU_PACKET_ID_PACKET_SIZE)) != 0)
+    {
+        count += 4;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_CPU_PACKET_ID_BUFFER)) != 0)
+    {
+        count += bcmolt_u8_list_u32_get_packed_length(&this->buffer);
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_cpu_packet_data_unpack(bcmolt_gpon_onu_cpu_packet_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_CPU_PACKET_ID_PORT_ID)) != 0)
+    {
+        if (!bcmolt_buf_read_u16(buf, &this->port_id))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_CPU_PACKET_ID_CRC_OK)) != 0)
+    {
+        if (!bcmolt_buf_read_bool(buf, &this->crc_ok))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_CPU_PACKET_ID_PACKET_SIZE)) != 0)
+    {
+        if (!bcmolt_buf_read_u32(buf, &this->packet_size))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_CPU_PACKET_ID_BUFFER)) != 0)
+    {
+        if (!bcmolt_u8_list_u32_unpack(&this->buffer, buf, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_cpu_packet_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_CPU_PACKET_ID_PORT_ID)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 2))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_CPU_PACKET_ID_CRC_OK)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_CPU_PACKET_ID_PACKET_SIZE)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 4))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_CPU_PACKET_ID_BUFFER)) != 0)
+    {
+        if (!bcmolt_u8_list_u32_scan(packed, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_cpu_packet_data_bounds_check(const bcmolt_gpon_onu_cpu_packet_data *this, bcmolt_presence_mask fields_present, bcmolt_gpon_onu_cpu_packet_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_CPU_PACKET_ID_BUFFER)) != 0)
+    {
+        if (!bcmolt_u8_list_u32_bounds_check(&this->buffer))
+        {
+            *failed_prop = BCMOLT_GPON_ONU_CPU_PACKET_ID_BUFFER;
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_gpon_onu_omci_packet_data_set_default(bcmolt_gpon_onu_omci_packet_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_OMCI_PACKET_ID_PORT_ID)) != 0)
+    {
+        this->port_id = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_OMCI_PACKET_ID_CRC_OK)) != 0)
+    {
+        this->crc_ok = BCMOS_FALSE;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_OMCI_PACKET_ID_PACKET_SIZE)) != 0)
+    {
+        this->packet_size = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_OMCI_PACKET_ID_BUFFER)) != 0)
+    {
+        this->buffer.len = 0;
+        this->buffer.val = NULL;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_omci_packet_data_pack(const bcmolt_gpon_onu_omci_packet_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_OMCI_PACKET_ID_PORT_ID)) != 0)
+    {
+        if (!bcmolt_buf_write_u16(buf, this->port_id))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_OMCI_PACKET_ID_CRC_OK)) != 0)
+    {
+        if (!bcmolt_buf_write_bool(buf, this->crc_ok))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_OMCI_PACKET_ID_PACKET_SIZE)) != 0)
+    {
+        if (!bcmolt_buf_write_u32(buf, this->packet_size))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_OMCI_PACKET_ID_BUFFER)) != 0)
+    {
+        if (!bcmolt_u8_list_u32_pack(&this->buffer, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_gpon_onu_omci_packet_data_get_packed_length(const bcmolt_gpon_onu_omci_packet_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_OMCI_PACKET_ID_PORT_ID)) != 0)
+    {
+        count += 2;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_OMCI_PACKET_ID_CRC_OK)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_OMCI_PACKET_ID_PACKET_SIZE)) != 0)
+    {
+        count += 4;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_OMCI_PACKET_ID_BUFFER)) != 0)
+    {
+        count += bcmolt_u8_list_u32_get_packed_length(&this->buffer);
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_omci_packet_data_unpack(bcmolt_gpon_onu_omci_packet_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_OMCI_PACKET_ID_PORT_ID)) != 0)
+    {
+        if (!bcmolt_buf_read_u16(buf, &this->port_id))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_OMCI_PACKET_ID_CRC_OK)) != 0)
+    {
+        if (!bcmolt_buf_read_bool(buf, &this->crc_ok))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_OMCI_PACKET_ID_PACKET_SIZE)) != 0)
+    {
+        if (!bcmolt_buf_read_u32(buf, &this->packet_size))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_OMCI_PACKET_ID_BUFFER)) != 0)
+    {
+        if (!bcmolt_u8_list_u32_unpack(&this->buffer, buf, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_omci_packet_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_OMCI_PACKET_ID_PORT_ID)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 2))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_OMCI_PACKET_ID_CRC_OK)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_OMCI_PACKET_ID_PACKET_SIZE)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 4))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_OMCI_PACKET_ID_BUFFER)) != 0)
+    {
+        if (!bcmolt_u8_list_u32_scan(packed, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_onu_omci_packet_data_bounds_check(const bcmolt_gpon_onu_omci_packet_data *this, bcmolt_presence_mask fields_present, bcmolt_gpon_onu_omci_packet_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_ONU_OMCI_PACKET_ID_BUFFER)) != 0)
+    {
+        if (!bcmolt_u8_list_u32_bounds_check(&this->buffer))
+        {
+            *failed_prop = BCMOLT_GPON_ONU_OMCI_PACKET_ID_BUFFER;
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_gpon_trx_key_set_default(bcmolt_gpon_trx_key *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_TRX_KEY_ID_PON_NI)) != 0)
+    {
+        this->pon_ni = (bcmolt_gpon_ni) 0;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_trx_key_pack(const bcmolt_gpon_trx_key *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_TRX_KEY_ID_PON_NI)) != 0)
+    {
+        if (!bcmolt_buf_write_u8(buf, (uint8_t) this->pon_ni))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_gpon_trx_key_get_packed_length(const bcmolt_gpon_trx_key *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_GPON_TRX_KEY_ID_PON_NI)) != 0)
+    {
+        count += 1;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_trx_key_unpack(bcmolt_gpon_trx_key *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_TRX_KEY_ID_PON_NI)) != 0)
+    {
+        if (!bcmolt_buf_read_u8(buf, (uint8_t *) &this->pon_ni))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_trx_key_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_TRX_KEY_ID_PON_NI)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_trx_key_bounds_check(const bcmolt_gpon_trx_key *this, bcmolt_presence_mask fields_present, bcmolt_gpon_trx_key_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_TRX_KEY_ID_PON_NI)) != 0)
+    {
+        if (this->pon_ni > (bcmolt_gpon_ni) 15)
+        {
+            *failed_prop = BCMOLT_GPON_TRX_KEY_ID_PON_NI;
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_gpon_trx_cfg_data_set_default(bcmolt_gpon_trx_cfg_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_TRX_CFG_ID_TRANSCEIVER_TYPE)) != 0)
+    {
+        this->transceiver_type = BCMOLT_TRX_TYPE_LTE_3680_M;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_TRX_CFG_ID_LA_CONFIGURATION)) != 0)
+    {
+        this->la_configuration.resync_control.start_pattern = 15;
+        this->la_configuration.resync_control.middle_pattern = 15;
+        this->la_configuration.resync_control.last_pattern = 15;
+        this->la_configuration.resync_control.middle_repetition = 0;
+        this->la_configuration.resync_control.location = 40;
+        this->la_configuration.ranging_resync_control.start_pattern = 15;
+        this->la_configuration.ranging_resync_control.middle_pattern = 15;
+        this->la_configuration.ranging_resync_control.last_pattern = 15;
+        this->la_configuration.ranging_resync_control.middle_repetition = 0;
+        this->la_configuration.ranging_resync_control.location = 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_TRX_CFG_ID_BCDR)) != 0)
+    {
+        this->bcdr.resync_control.start_pattern = 15;
+        this->bcdr.resync_control.middle_pattern = 0;
+        this->bcdr.resync_control.last_pattern = 0;
+        this->bcdr.resync_control.middle_repetition = 0;
+        this->bcdr.resync_control.location = 34;
+        this->bcdr.ranging_resync_control.start_pattern = 15;
+        this->bcdr.ranging_resync_control.middle_pattern = 0;
+        this->bcdr.ranging_resync_control.last_pattern = 0;
+        this->bcdr.ranging_resync_control.middle_repetition = 0;
+        this->bcdr.ranging_resync_control.location = 7;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_TRX_CFG_ID_LA_RANGING_AFTER_NO_ED_RESYNC)) != 0)
+    {
+        this->la_ranging_after_no_ed_resync.start_pattern = 0;
+        this->la_ranging_after_no_ed_resync.middle_pattern = 0;
+        this->la_ranging_after_no_ed_resync.last_pattern = 0;
+        this->la_ranging_after_no_ed_resync.middle_repetition = 0;
+        this->la_ranging_after_no_ed_resync.location = 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_TRX_CFG_ID_BCDR_RANGING_AFTER_NO_ED_RESYNC)) != 0)
+    {
+        this->bcdr_ranging_after_no_ed_resync.start_pattern = 0;
+        this->bcdr_ranging_after_no_ed_resync.middle_pattern = 0;
+        this->bcdr_ranging_after_no_ed_resync.last_pattern = 0;
+        this->bcdr_ranging_after_no_ed_resync.middle_repetition = 0;
+        this->bcdr_ranging_after_no_ed_resync.location = 7;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_TRX_CFG_ID_LA_RANGING_AFTER_ED_RESYNC)) != 0)
+    {
+        this->la_ranging_after_ed_resync.start_pattern = 0;
+        this->la_ranging_after_ed_resync.middle_pattern = 0;
+        this->la_ranging_after_ed_resync.last_pattern = 0;
+        this->la_ranging_after_ed_resync.middle_repetition = 0;
+        this->la_ranging_after_ed_resync.location = 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_TRX_CFG_ID_BCDR_RANGING_AFTER_ED_RESYNC)) != 0)
+    {
+        this->bcdr_ranging_after_ed_resync.start_pattern = 15;
+        this->bcdr_ranging_after_ed_resync.middle_pattern = 0;
+        this->bcdr_ranging_after_ed_resync.last_pattern = 0;
+        this->bcdr_ranging_after_ed_resync.middle_repetition = 0;
+        this->bcdr_ranging_after_ed_resync.location = 7;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_TRX_CFG_ID_LA_RESYNC_POLARITY)) != 0)
+    {
+        this->la_resync_polarity = BCMOLT_POLARITY_LOW;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_TRX_CFG_ID_BCDR_RESYNC_POLARITY)) != 0)
+    {
+        this->bcdr_resync_polarity = BCMOLT_POLARITY_LOW;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_TRX_CFG_ID_BCDR_RANGING_RESYNC_CONDITIONS)) != 0)
+    {
+        this->bcdr_ranging_resync_conditions.after_init = BCMOS_FALSE;
+        this->bcdr_ranging_resync_conditions.after_no_ed = BCMOS_FALSE;
+        this->bcdr_ranging_resync_conditions.after_ed = BCMOS_TRUE;
+        this->bcdr_ranging_resync_conditions.after_no_del = BCMOS_FALSE;
+        this->bcdr_ranging_resync_conditions.after_ranging_access = BCMOS_FALSE;
+        this->bcdr_ranging_resync_conditions.med_val = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_TRX_CFG_ID_LA_RANGING_RESYNC_CONDITIONS)) != 0)
+    {
+        this->la_ranging_resync_conditions.after_init = BCMOS_TRUE;
+        this->la_ranging_resync_conditions.after_no_ed = BCMOS_FALSE;
+        this->la_ranging_resync_conditions.after_ed = BCMOS_FALSE;
+        this->la_ranging_resync_conditions.after_no_del = BCMOS_FALSE;
+        this->la_ranging_resync_conditions.after_ranging_access = BCMOS_TRUE;
+        this->la_ranging_resync_conditions.med_val = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_TRX_CFG_ID_RX_CONFIGURATION)) != 0)
+    {
+        this->rx_configuration.wait_window_size = 0;
+        this->rx_configuration.ranging_access_window_size = 15;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_TRX_CFG_ID_RANGING_CONTROL_STAGES_CONFIGURATION)) != 0)
+    {
+        this->ranging_control_stages_configuration.wait_state_1_window_size = 0;
+        this->ranging_control_stages_configuration.wait_state_2_window_size = 0;
+        this->ranging_control_stages_configuration.wait_after_resync_4 = BCMOS_FALSE;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_TRX_CFG_ID_ENERGY_DETECT)) != 0)
+    {
+        this->energy_detect.ranging_ed_source = BCMOLT_ENERGY_DETECT_SOURCE_TRX;
+        this->energy_detect.delimiter_ed_source = BCMOLT_ENERGY_DETECT_SOURCE_TRX;
+        this->energy_detect.minimum_threshold = 0;
+        this->energy_detect.maximum_threshold = 41;
+        this->energy_detect.ed_pattern = 170;
+        this->energy_detect.ed_pattern_size = 0;
+        this->energy_detect.window_size = 124;
+        this->energy_detect.inversion = BCMOS_FALSE;
+        this->energy_detect.no_ed_threshold = 127;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_TRX_CFG_ID_END_OF_BURST_DATA_PATTERN)) != 0)
+    {
+        this->end_of_burst_data_pattern.start_pattern = 15;
+        this->end_of_burst_data_pattern.middle_pattern = 15;
+        this->end_of_burst_data_pattern.last_pattern = 15;
+        this->end_of_burst_data_pattern.middle_repetition = 0;
+        this->end_of_burst_data_pattern.location = 11;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_TRX_CFG_ID_END_OF_BURST_RANGING_PATTERN)) != 0)
+    {
+        this->end_of_burst_ranging_pattern.start_pattern = 0;
+        this->end_of_burst_ranging_pattern.middle_pattern = 0;
+        this->end_of_burst_ranging_pattern.last_pattern = 0;
+        this->end_of_burst_ranging_pattern.middle_repetition = 0;
+        this->end_of_burst_ranging_pattern.location = 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_TRX_CFG_ID_PREAMBLE)) != 0)
+    {
+        this->preamble.type_1_size = 0;
+        this->preamble.type_2_size = 0;
+        this->preamble.type_3_pre_ranging_size = 50;
+        this->preamble.type_3_post_ranging_size = 15;
+        this->preamble.type_3_pattern = 170;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_TRX_CFG_ID_DELIMITER)) != 0)
+    {
+        this->delimiter.pattern[0] = 171;
+        this->delimiter.pattern[1] = 89;
+        this->delimiter.pattern[2] = 131;
+        this->delimiter.size = 3;
+        this->delimiter.window_size = 124;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_TRX_CFG_ID_GUARD_BITS)) != 0)
+    {
+        this->guard_bits = 64;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_TRX_CFG_ID_SERDES_CONFIGURATION)) != 0)
+    {
+        this->serdes_configuration.ranging_mode = BCMOLT_SERDES_RANGING_MODE_BCDR_RESET_MODE;
+        this->serdes_configuration.multi_ed_mode = BCMOS_FALSE;
+        this->serdes_configuration.burst_enable_start_offset = 0;
+        this->serdes_configuration.burst_enable_end_offset = 0;
+        this->serdes_configuration.ed_invertion = BCMOS_FALSE;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_TRX_CFG_ID_PLO_RANGING)) != 0)
+    {
+        this->plo_ranging = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_TRX_CFG_ID_PLO_DATA)) != 0)
+    {
+        this->plo_data = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_TRX_CFG_ID_RSSI_NORMAL_CONFIG)) != 0)
+    {
+        this->rssi_normal_config.location = 20;
+        this->rssi_normal_config.location_sign = BCMOLT_RSSI_LOCATION_SIGN_BEFORE;
+        this->rssi_normal_config.start_pattern = 15;
+        this->rssi_normal_config.middle_pattern = 15;
+        this->rssi_normal_config.last_pattern = 15;
+        this->rssi_normal_config.middle_repertition = 50;
+        this->rssi_normal_config.minimum_burst = 55;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_TRX_CFG_ID_RANGING_RSSI_RESYNC_CONTROL)) != 0)
+    {
+        this->ranging_rssi_resync_control.after_no_ed = BCMOS_FALSE;
+        this->ranging_rssi_resync_control.after_ed = BCMOS_FALSE;
+        this->ranging_rssi_resync_control.after_reset_3 = BCMOS_FALSE;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_trx_cfg_data_pack(const bcmolt_gpon_trx_cfg_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_TRX_CFG_ID_TRANSCEIVER_TYPE)) != 0)
+    {
+        if (!bcmolt_trx_type_pack(this->transceiver_type, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_TRX_CFG_ID_LA_CONFIGURATION)) != 0)
+    {
+        if (!bcmolt_la_resync_pattern_configuration_pack(&this->la_configuration, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_TRX_CFG_ID_BCDR)) != 0)
+    {
+        if (!bcmolt_bcdr_resync_pattern_configuration_pack(&this->bcdr, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_TRX_CFG_ID_LA_RANGING_AFTER_NO_ED_RESYNC)) != 0)
+    {
+        if (!bcmolt_resync_control_pack(&this->la_ranging_after_no_ed_resync, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_TRX_CFG_ID_BCDR_RANGING_AFTER_NO_ED_RESYNC)) != 0)
+    {
+        if (!bcmolt_resync_control_pack(&this->bcdr_ranging_after_no_ed_resync, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_TRX_CFG_ID_LA_RANGING_AFTER_ED_RESYNC)) != 0)
+    {
+        if (!bcmolt_resync_control_pack(&this->la_ranging_after_ed_resync, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_TRX_CFG_ID_BCDR_RANGING_AFTER_ED_RESYNC)) != 0)
+    {
+        if (!bcmolt_resync_control_pack(&this->bcdr_ranging_after_ed_resync, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_TRX_CFG_ID_LA_RESYNC_POLARITY)) != 0)
+    {
+        if (!bcmolt_polarity_pack(this->la_resync_polarity, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_TRX_CFG_ID_BCDR_RESYNC_POLARITY)) != 0)
+    {
+        if (!bcmolt_polarity_pack(this->bcdr_resync_polarity, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_TRX_CFG_ID_BCDR_RANGING_RESYNC_CONDITIONS)) != 0)
+    {
+        if (!bcmolt_ranging_resync_conditions_pack(&this->bcdr_ranging_resync_conditions, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_TRX_CFG_ID_LA_RANGING_RESYNC_CONDITIONS)) != 0)
+    {
+        if (!bcmolt_ranging_resync_conditions_pack(&this->la_ranging_resync_conditions, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_TRX_CFG_ID_RX_CONFIGURATION)) != 0)
+    {
+        if (!bcmolt_trx_rx_configuration_pack(&this->rx_configuration, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_TRX_CFG_ID_RANGING_CONTROL_STAGES_CONFIGURATION)) != 0)
+    {
+        if (!bcmolt_ranging_control_configuration_pack(&this->ranging_control_stages_configuration, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_TRX_CFG_ID_ENERGY_DETECT)) != 0)
+    {
+        if (!bcmolt_trx_energy_detect_pack(&this->energy_detect, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_TRX_CFG_ID_END_OF_BURST_DATA_PATTERN)) != 0)
+    {
+        if (!bcmolt_resync_control_pack(&this->end_of_burst_data_pattern, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_TRX_CFG_ID_END_OF_BURST_RANGING_PATTERN)) != 0)
+    {
+        if (!bcmolt_resync_control_pack(&this->end_of_burst_ranging_pattern, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_TRX_CFG_ID_PREAMBLE)) != 0)
+    {
+        if (!bcmolt_trx_preamble_pack(&this->preamble, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_TRX_CFG_ID_DELIMITER)) != 0)
+    {
+        if (!bcmolt_trx_delimiter_pack(&this->delimiter, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_TRX_CFG_ID_GUARD_BITS)) != 0)
+    {
+        if (!bcmolt_buf_write_u32(buf, this->guard_bits))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_TRX_CFG_ID_SERDES_CONFIGURATION)) != 0)
+    {
+        if (!bcmolt_serdes_configuration_pack(&this->serdes_configuration, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_TRX_CFG_ID_PLO_RANGING)) != 0)
+    {
+        if (!bcmolt_buf_write_u32(buf, this->plo_ranging))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_TRX_CFG_ID_PLO_DATA)) != 0)
+    {
+        if (!bcmolt_buf_write_u32(buf, this->plo_data))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_TRX_CFG_ID_RSSI_NORMAL_CONFIG)) != 0)
+    {
+        if (!bcmolt_gpon_rssi_general_configuration_pack(&this->rssi_normal_config, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_TRX_CFG_ID_RANGING_RSSI_RESYNC_CONTROL)) != 0)
+    {
+        if (!bcmolt_ranging_rssi_control_pack(&this->ranging_rssi_resync_control, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_gpon_trx_cfg_data_get_packed_length(const bcmolt_gpon_trx_cfg_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_GPON_TRX_CFG_ID_TRANSCEIVER_TYPE)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_TRX_CFG_ID_LA_CONFIGURATION)) != 0)
+    {
+        count += 10;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_TRX_CFG_ID_BCDR)) != 0)
+    {
+        count += 10;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_TRX_CFG_ID_LA_RANGING_AFTER_NO_ED_RESYNC)) != 0)
+    {
+        count += 5;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_TRX_CFG_ID_BCDR_RANGING_AFTER_NO_ED_RESYNC)) != 0)
+    {
+        count += 5;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_TRX_CFG_ID_LA_RANGING_AFTER_ED_RESYNC)) != 0)
+    {
+        count += 5;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_TRX_CFG_ID_BCDR_RANGING_AFTER_ED_RESYNC)) != 0)
+    {
+        count += 5;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_TRX_CFG_ID_LA_RESYNC_POLARITY)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_TRX_CFG_ID_BCDR_RESYNC_POLARITY)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_TRX_CFG_ID_BCDR_RANGING_RESYNC_CONDITIONS)) != 0)
+    {
+        count += 7;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_TRX_CFG_ID_LA_RANGING_RESYNC_CONDITIONS)) != 0)
+    {
+        count += 7;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_TRX_CFG_ID_RX_CONFIGURATION)) != 0)
+    {
+        count += 2;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_TRX_CFG_ID_RANGING_CONTROL_STAGES_CONFIGURATION)) != 0)
+    {
+        count += 3;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_TRX_CFG_ID_ENERGY_DETECT)) != 0)
+    {
+        count += 9;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_TRX_CFG_ID_END_OF_BURST_DATA_PATTERN)) != 0)
+    {
+        count += 5;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_TRX_CFG_ID_END_OF_BURST_RANGING_PATTERN)) != 0)
+    {
+        count += 5;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_TRX_CFG_ID_PREAMBLE)) != 0)
+    {
+        count += 5;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_TRX_CFG_ID_DELIMITER)) != 0)
+    {
+        count += 5;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_TRX_CFG_ID_GUARD_BITS)) != 0)
+    {
+        count += 4;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_TRX_CFG_ID_SERDES_CONFIGURATION)) != 0)
+    {
+        count += 7;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_TRX_CFG_ID_PLO_RANGING)) != 0)
+    {
+        count += 4;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_TRX_CFG_ID_PLO_DATA)) != 0)
+    {
+        count += 4;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_TRX_CFG_ID_RSSI_NORMAL_CONFIG)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_TRX_CFG_ID_RANGING_RSSI_RESYNC_CONTROL)) != 0)
+    {
+        count += 3;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_trx_cfg_data_unpack(bcmolt_gpon_trx_cfg_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_TRX_CFG_ID_TRANSCEIVER_TYPE)) != 0)
+    {
+        if (!bcmolt_trx_type_unpack(&this->transceiver_type, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_TRX_CFG_ID_LA_CONFIGURATION)) != 0)
+    {
+        if (!bcmolt_la_resync_pattern_configuration_unpack(&this->la_configuration, buf, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_TRX_CFG_ID_BCDR)) != 0)
+    {
+        if (!bcmolt_bcdr_resync_pattern_configuration_unpack(&this->bcdr, buf, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_TRX_CFG_ID_LA_RANGING_AFTER_NO_ED_RESYNC)) != 0)
+    {
+        if (!bcmolt_resync_control_unpack(&this->la_ranging_after_no_ed_resync, buf, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_TRX_CFG_ID_BCDR_RANGING_AFTER_NO_ED_RESYNC)) != 0)
+    {
+        if (!bcmolt_resync_control_unpack(&this->bcdr_ranging_after_no_ed_resync, buf, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_TRX_CFG_ID_LA_RANGING_AFTER_ED_RESYNC)) != 0)
+    {
+        if (!bcmolt_resync_control_unpack(&this->la_ranging_after_ed_resync, buf, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_TRX_CFG_ID_BCDR_RANGING_AFTER_ED_RESYNC)) != 0)
+    {
+        if (!bcmolt_resync_control_unpack(&this->bcdr_ranging_after_ed_resync, buf, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_TRX_CFG_ID_LA_RESYNC_POLARITY)) != 0)
+    {
+        if (!bcmolt_polarity_unpack(&this->la_resync_polarity, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_TRX_CFG_ID_BCDR_RESYNC_POLARITY)) != 0)
+    {
+        if (!bcmolt_polarity_unpack(&this->bcdr_resync_polarity, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_TRX_CFG_ID_BCDR_RANGING_RESYNC_CONDITIONS)) != 0)
+    {
+        if (!bcmolt_ranging_resync_conditions_unpack(&this->bcdr_ranging_resync_conditions, buf, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_TRX_CFG_ID_LA_RANGING_RESYNC_CONDITIONS)) != 0)
+    {
+        if (!bcmolt_ranging_resync_conditions_unpack(&this->la_ranging_resync_conditions, buf, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_TRX_CFG_ID_RX_CONFIGURATION)) != 0)
+    {
+        if (!bcmolt_trx_rx_configuration_unpack(&this->rx_configuration, buf, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_TRX_CFG_ID_RANGING_CONTROL_STAGES_CONFIGURATION)) != 0)
+    {
+        if (!bcmolt_ranging_control_configuration_unpack(&this->ranging_control_stages_configuration, buf, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_TRX_CFG_ID_ENERGY_DETECT)) != 0)
+    {
+        if (!bcmolt_trx_energy_detect_unpack(&this->energy_detect, buf, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_TRX_CFG_ID_END_OF_BURST_DATA_PATTERN)) != 0)
+    {
+        if (!bcmolt_resync_control_unpack(&this->end_of_burst_data_pattern, buf, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_TRX_CFG_ID_END_OF_BURST_RANGING_PATTERN)) != 0)
+    {
+        if (!bcmolt_resync_control_unpack(&this->end_of_burst_ranging_pattern, buf, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_TRX_CFG_ID_PREAMBLE)) != 0)
+    {
+        if (!bcmolt_trx_preamble_unpack(&this->preamble, buf, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_TRX_CFG_ID_DELIMITER)) != 0)
+    {
+        if (!bcmolt_trx_delimiter_unpack(&this->delimiter, buf, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_TRX_CFG_ID_GUARD_BITS)) != 0)
+    {
+        if (!bcmolt_buf_read_u32(buf, &this->guard_bits))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_TRX_CFG_ID_SERDES_CONFIGURATION)) != 0)
+    {
+        if (!bcmolt_serdes_configuration_unpack(&this->serdes_configuration, buf, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_TRX_CFG_ID_PLO_RANGING)) != 0)
+    {
+        if (!bcmolt_buf_read_u32(buf, &this->plo_ranging))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_TRX_CFG_ID_PLO_DATA)) != 0)
+    {
+        if (!bcmolt_buf_read_u32(buf, &this->plo_data))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_TRX_CFG_ID_RSSI_NORMAL_CONFIG)) != 0)
+    {
+        if (!bcmolt_gpon_rssi_general_configuration_unpack(&this->rssi_normal_config, buf, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_TRX_CFG_ID_RANGING_RSSI_RESYNC_CONTROL)) != 0)
+    {
+        if (!bcmolt_ranging_rssi_control_unpack(&this->ranging_rssi_resync_control, buf, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_trx_cfg_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_TRX_CFG_ID_TRANSCEIVER_TYPE)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_TRX_CFG_ID_LA_CONFIGURATION)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 10))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_TRX_CFG_ID_BCDR)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 10))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_TRX_CFG_ID_LA_RANGING_AFTER_NO_ED_RESYNC)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 5))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_TRX_CFG_ID_BCDR_RANGING_AFTER_NO_ED_RESYNC)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 5))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_TRX_CFG_ID_LA_RANGING_AFTER_ED_RESYNC)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 5))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_TRX_CFG_ID_BCDR_RANGING_AFTER_ED_RESYNC)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 5))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_TRX_CFG_ID_LA_RESYNC_POLARITY)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_TRX_CFG_ID_BCDR_RESYNC_POLARITY)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_TRX_CFG_ID_BCDR_RANGING_RESYNC_CONDITIONS)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 7))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_TRX_CFG_ID_LA_RANGING_RESYNC_CONDITIONS)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 7))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_TRX_CFG_ID_RX_CONFIGURATION)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 2))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_TRX_CFG_ID_RANGING_CONTROL_STAGES_CONFIGURATION)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 3))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_TRX_CFG_ID_ENERGY_DETECT)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 9))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_TRX_CFG_ID_END_OF_BURST_DATA_PATTERN)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 5))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_TRX_CFG_ID_END_OF_BURST_RANGING_PATTERN)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 5))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_TRX_CFG_ID_PREAMBLE)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 5))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_TRX_CFG_ID_DELIMITER)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 5))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_TRX_CFG_ID_GUARD_BITS)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 4))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_TRX_CFG_ID_SERDES_CONFIGURATION)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 7))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_TRX_CFG_ID_PLO_RANGING)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 4))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_TRX_CFG_ID_PLO_DATA)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 4))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_TRX_CFG_ID_RSSI_NORMAL_CONFIG)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_TRX_CFG_ID_RANGING_RSSI_RESYNC_CONTROL)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 3))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_gpon_trx_cfg_data_bounds_check(const bcmolt_gpon_trx_cfg_data *this, bcmolt_presence_mask fields_present, bcmolt_gpon_trx_cfg_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_GPON_TRX_CFG_ID_TRANSCEIVER_TYPE)) != 0)
+    {
+        switch (this->transceiver_type)
+        {
+            case BCMOLT_TRX_TYPE_SPS_43_48_H_HP_CDE_SD_2013:
+                break;
+            case BCMOLT_TRX_TYPE_SOG_4321_PSGB:
+                break;
+            case BCMOLT_TRX_TYPE_LTE_3680_M:
+                break;
+            case BCMOLT_TRX_TYPE_SOURCE_PHOTONICS:
+                break;
+            case BCMOLT_TRX_TYPE_LTE_3680_P_TYPE_C_PLUS:
+                break;
+            case BCMOLT_TRX_TYPE_ANY:
+                break;
+            case BCMOLT_TRX_TYPE_ANY_RESET_GUARD:
+                break;
+            case BCMOLT_TRX_TYPE_ANY_RESET_PREAMBLE:
+                break;
+            case BCMOLT_TRX_TYPE_WTD_RTXM_167_526_CPLUS:
+                break;
+            case BCMOLT_TRX_TYPE_WTD_RTXM_167_522_BPLUS:
+                break;
+            case BCMOLT_TRX_TYPE_LTE_3680_P_BC:
+                break;
+            case BCMOLT_TRX_TYPE_SOGQ_4321_PSGB_C_PLUS:
+                break;
+            case BCMOLT_TRX_TYPE_WTD_RTXM167_521:
+                break;
+            case BCMOLT_TRX_TYPE_LTE3678:
+                break;
+            case BCMOLT_TRX_TYPE_SOGP_4321_PSGA:
+                break;
+            case BCMOLT_TRX_TYPE_GPON_GENERAL_1:
+                break;
+            case BCMOLT_TRX_TYPE_GPON_GENERAL_2:
+                break;
+            case BCMOLT_TRX_TYPE_GPON_GENERAL_3:
+                break;
+            case BCMOLT_TRX_TYPE_GPON_GENERAL_4:
+                break;
+            case BCMOLT_TRX_TYPE_GPON_GENERAL_5:
+                break;
+            case BCMOLT_TRX_TYPE_GPON_GENERAL_6:
+                break;
+            case BCMOLT_TRX_TYPE_GPON_GENERAL_7:
+                break;
+            case BCMOLT_TRX_TYPE_GPON_GENERAL_8:
+                break;
+            case BCMOLT_TRX_TYPE_GPON_GENERAL_9:
+                break;
+            case BCMOLT_TRX_TYPE_GPON_GENERAL_10:
+                break;
+            case BCMOLT_TRX_TYPE_GPON_GENERAL_11:
+                break;
+            default:
+                *failed_prop = BCMOLT_GPON_TRX_CFG_ID_TRANSCEIVER_TYPE;
+                return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_TRX_CFG_ID_LA_CONFIGURATION)) != 0)
+    {
+        if (!bcmolt_la_resync_pattern_configuration_bounds_check(&this->la_configuration))
+        {
+            *failed_prop = BCMOLT_GPON_TRX_CFG_ID_LA_CONFIGURATION;
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_TRX_CFG_ID_BCDR)) != 0)
+    {
+        if (!bcmolt_bcdr_resync_pattern_configuration_bounds_check(&this->bcdr))
+        {
+            *failed_prop = BCMOLT_GPON_TRX_CFG_ID_BCDR;
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_TRX_CFG_ID_LA_RANGING_AFTER_NO_ED_RESYNC)) != 0)
+    {
+        if (!bcmolt_resync_control_bounds_check(&this->la_ranging_after_no_ed_resync))
+        {
+            *failed_prop = BCMOLT_GPON_TRX_CFG_ID_LA_RANGING_AFTER_NO_ED_RESYNC;
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_TRX_CFG_ID_BCDR_RANGING_AFTER_NO_ED_RESYNC)) != 0)
+    {
+        if (!bcmolt_resync_control_bounds_check(&this->bcdr_ranging_after_no_ed_resync))
+        {
+            *failed_prop = BCMOLT_GPON_TRX_CFG_ID_BCDR_RANGING_AFTER_NO_ED_RESYNC;
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_TRX_CFG_ID_LA_RANGING_AFTER_ED_RESYNC)) != 0)
+    {
+        if (!bcmolt_resync_control_bounds_check(&this->la_ranging_after_ed_resync))
+        {
+            *failed_prop = BCMOLT_GPON_TRX_CFG_ID_LA_RANGING_AFTER_ED_RESYNC;
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_TRX_CFG_ID_BCDR_RANGING_AFTER_ED_RESYNC)) != 0)
+    {
+        if (!bcmolt_resync_control_bounds_check(&this->bcdr_ranging_after_ed_resync))
+        {
+            *failed_prop = BCMOLT_GPON_TRX_CFG_ID_BCDR_RANGING_AFTER_ED_RESYNC;
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_TRX_CFG_ID_LA_RESYNC_POLARITY)) != 0)
+    {
+        switch (this->la_resync_polarity)
+        {
+            case BCMOLT_POLARITY_LOW:
+                break;
+            case BCMOLT_POLARITY_HIGH:
+                break;
+            default:
+                *failed_prop = BCMOLT_GPON_TRX_CFG_ID_LA_RESYNC_POLARITY;
+                return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_TRX_CFG_ID_BCDR_RESYNC_POLARITY)) != 0)
+    {
+        switch (this->bcdr_resync_polarity)
+        {
+            case BCMOLT_POLARITY_LOW:
+                break;
+            case BCMOLT_POLARITY_HIGH:
+                break;
+            default:
+                *failed_prop = BCMOLT_GPON_TRX_CFG_ID_BCDR_RESYNC_POLARITY;
+                return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_TRX_CFG_ID_BCDR_RANGING_RESYNC_CONDITIONS)) != 0)
+    {
+        if (!bcmolt_ranging_resync_conditions_bounds_check(&this->bcdr_ranging_resync_conditions))
+        {
+            *failed_prop = BCMOLT_GPON_TRX_CFG_ID_BCDR_RANGING_RESYNC_CONDITIONS;
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_TRX_CFG_ID_LA_RANGING_RESYNC_CONDITIONS)) != 0)
+    {
+        if (!bcmolt_ranging_resync_conditions_bounds_check(&this->la_ranging_resync_conditions))
+        {
+            *failed_prop = BCMOLT_GPON_TRX_CFG_ID_LA_RANGING_RESYNC_CONDITIONS;
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_TRX_CFG_ID_RX_CONFIGURATION)) != 0)
+    {
+        if (!bcmolt_trx_rx_configuration_bounds_check(&this->rx_configuration))
+        {
+            *failed_prop = BCMOLT_GPON_TRX_CFG_ID_RX_CONFIGURATION;
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_TRX_CFG_ID_RANGING_CONTROL_STAGES_CONFIGURATION)) != 0)
+    {
+        if (!bcmolt_ranging_control_configuration_bounds_check(&this->ranging_control_stages_configuration))
+        {
+            *failed_prop = BCMOLT_GPON_TRX_CFG_ID_RANGING_CONTROL_STAGES_CONFIGURATION;
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_TRX_CFG_ID_ENERGY_DETECT)) != 0)
+    {
+        if (!bcmolt_trx_energy_detect_bounds_check(&this->energy_detect))
+        {
+            *failed_prop = BCMOLT_GPON_TRX_CFG_ID_ENERGY_DETECT;
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_TRX_CFG_ID_END_OF_BURST_DATA_PATTERN)) != 0)
+    {
+        if (!bcmolt_resync_control_bounds_check(&this->end_of_burst_data_pattern))
+        {
+            *failed_prop = BCMOLT_GPON_TRX_CFG_ID_END_OF_BURST_DATA_PATTERN;
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_TRX_CFG_ID_END_OF_BURST_RANGING_PATTERN)) != 0)
+    {
+        if (!bcmolt_resync_control_bounds_check(&this->end_of_burst_ranging_pattern))
+        {
+            *failed_prop = BCMOLT_GPON_TRX_CFG_ID_END_OF_BURST_RANGING_PATTERN;
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_TRX_CFG_ID_PREAMBLE)) != 0)
+    {
+        if (!bcmolt_trx_preamble_bounds_check(&this->preamble))
+        {
+            *failed_prop = BCMOLT_GPON_TRX_CFG_ID_PREAMBLE;
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_TRX_CFG_ID_DELIMITER)) != 0)
+    {
+        if (!bcmolt_trx_delimiter_bounds_check(&this->delimiter))
+        {
+            *failed_prop = BCMOLT_GPON_TRX_CFG_ID_DELIMITER;
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_TRX_CFG_ID_SERDES_CONFIGURATION)) != 0)
+    {
+        if (!bcmolt_serdes_configuration_bounds_check(&this->serdes_configuration))
+        {
+            *failed_prop = BCMOLT_GPON_TRX_CFG_ID_SERDES_CONFIGURATION;
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_TRX_CFG_ID_RSSI_NORMAL_CONFIG)) != 0)
+    {
+        if (!bcmolt_gpon_rssi_general_configuration_bounds_check(&this->rssi_normal_config))
+        {
+            *failed_prop = BCMOLT_GPON_TRX_CFG_ID_RSSI_NORMAL_CONFIG;
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_GPON_TRX_CFG_ID_RANGING_RSSI_RESYNC_CONTROL)) != 0)
+    {
+        if (!bcmolt_ranging_rssi_control_bounds_check(&this->ranging_rssi_resync_control))
+        {
+            *failed_prop = BCMOLT_GPON_TRX_CFG_ID_RANGING_RSSI_RESYNC_CONTROL;
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_log_entry_key_set_default(bcmolt_log_entry_key *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_LOG_ENTRY_KEY_ID_LOG_ID)) != 0)
+    {
+        this->log_id = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_LOG_ENTRY_KEY_ID_RESERVED)) != 0)
+    {
+        this->reserved = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_LOG_ENTRY_KEY_ID_NAME)) != 0)
+    {
+        memset(this->name.str, 0, 100);
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_log_entry_key_pack(const bcmolt_log_entry_key *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_LOG_ENTRY_KEY_ID_LOG_ID)) != 0)
+    {
+        if (!bcmolt_buf_write_u32(buf, this->log_id))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_LOG_ENTRY_KEY_ID_RESERVED)) != 0)
+    {
+        if (!bcmolt_buf_write_u8(buf, this->reserved))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_LOG_ENTRY_KEY_ID_NAME)) != 0)
+    {
+        if (!bcmolt_str_100_pack(&this->name, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_log_entry_key_get_packed_length(const bcmolt_log_entry_key *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_LOG_ENTRY_KEY_ID_LOG_ID)) != 0)
+    {
+        count += 4;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_LOG_ENTRY_KEY_ID_RESERVED)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_LOG_ENTRY_KEY_ID_NAME)) != 0)
+    {
+        count += 100;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_log_entry_key_unpack(bcmolt_log_entry_key *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_LOG_ENTRY_KEY_ID_LOG_ID)) != 0)
+    {
+        if (!bcmolt_buf_read_u32(buf, &this->log_id))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_LOG_ENTRY_KEY_ID_RESERVED)) != 0)
+    {
+        if (!bcmolt_buf_read_u8(buf, &this->reserved))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_LOG_ENTRY_KEY_ID_NAME)) != 0)
+    {
+        if (!bcmolt_str_100_unpack(&this->name, buf, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_log_entry_key_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_LOG_ENTRY_KEY_ID_LOG_ID)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 4))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_LOG_ENTRY_KEY_ID_RESERVED)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_LOG_ENTRY_KEY_ID_NAME)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 100))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_log_entry_key_bounds_check(const bcmolt_log_entry_key *this, bcmolt_presence_mask fields_present, bcmolt_log_entry_key_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_LOG_ENTRY_KEY_ID_NAME)) != 0)
+    {
+        if (!bcmolt_str_100_bounds_check(&this->name))
+        {
+            *failed_prop = BCMOLT_LOG_ENTRY_KEY_ID_NAME;
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_log_entry_cfg_data_set_default(bcmolt_log_entry_cfg_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_LOG_ENTRY_CFG_ID_DEFAULT_LOG_LEVEL)) != 0)
+    {
+        this->default_log_level = BCMOLT_LOG_LEVEL_NO_LOG;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_LOG_ENTRY_CFG_ID_DEFAULT_LOG_TYPE)) != 0)
+    {
+        this->default_log_type = BCMOLT_LOG_TYPE_NONE;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_LOG_ENTRY_CFG_ID_LOG_LEVEL_PRINT)) != 0)
+    {
+        this->log_level_print = BCMOLT_LOG_LEVEL_NO_LOG;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_LOG_ENTRY_CFG_ID_LOG_LEVEL_SAVE)) != 0)
+    {
+        this->log_level_save = BCMOLT_LOG_LEVEL_NO_LOG;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_LOG_ENTRY_CFG_ID_LOG_TYPE)) != 0)
+    {
+        this->log_type = BCMOLT_LOG_TYPE_NONE;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_LOG_ENTRY_CFG_ID_LOG_STYLE)) != 0)
+    {
+        this->log_style = BCMOLT_LOG_STYLE_NORMAL;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_LOG_ENTRY_CFG_ID_LOG_NAME)) != 0)
+    {
+        memset(this->log_name.str, 0, 100);
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_log_entry_cfg_data_pack(const bcmolt_log_entry_cfg_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_LOG_ENTRY_CFG_ID_DEFAULT_LOG_LEVEL)) != 0)
+    {
+        if (!bcmolt_log_level_pack(this->default_log_level, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_LOG_ENTRY_CFG_ID_DEFAULT_LOG_TYPE)) != 0)
+    {
+        if (!bcmolt_log_type_pack(this->default_log_type, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_LOG_ENTRY_CFG_ID_LOG_LEVEL_PRINT)) != 0)
+    {
+        if (!bcmolt_log_level_pack(this->log_level_print, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_LOG_ENTRY_CFG_ID_LOG_LEVEL_SAVE)) != 0)
+    {
+        if (!bcmolt_log_level_pack(this->log_level_save, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_LOG_ENTRY_CFG_ID_LOG_TYPE)) != 0)
+    {
+        if (!bcmolt_log_type_pack(this->log_type, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_LOG_ENTRY_CFG_ID_LOG_STYLE)) != 0)
+    {
+        if (!bcmolt_log_style_pack(this->log_style, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_LOG_ENTRY_CFG_ID_LOG_NAME)) != 0)
+    {
+        if (!bcmolt_str_100_pack(&this->log_name, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_log_entry_cfg_data_get_packed_length(const bcmolt_log_entry_cfg_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_LOG_ENTRY_CFG_ID_DEFAULT_LOG_LEVEL)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_LOG_ENTRY_CFG_ID_DEFAULT_LOG_TYPE)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_LOG_ENTRY_CFG_ID_LOG_LEVEL_PRINT)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_LOG_ENTRY_CFG_ID_LOG_LEVEL_SAVE)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_LOG_ENTRY_CFG_ID_LOG_TYPE)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_LOG_ENTRY_CFG_ID_LOG_STYLE)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_LOG_ENTRY_CFG_ID_LOG_NAME)) != 0)
+    {
+        count += 100;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_log_entry_cfg_data_unpack(bcmolt_log_entry_cfg_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_LOG_ENTRY_CFG_ID_DEFAULT_LOG_LEVEL)) != 0)
+    {
+        if (!bcmolt_log_level_unpack(&this->default_log_level, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_LOG_ENTRY_CFG_ID_DEFAULT_LOG_TYPE)) != 0)
+    {
+        if (!bcmolt_log_type_unpack(&this->default_log_type, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_LOG_ENTRY_CFG_ID_LOG_LEVEL_PRINT)) != 0)
+    {
+        if (!bcmolt_log_level_unpack(&this->log_level_print, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_LOG_ENTRY_CFG_ID_LOG_LEVEL_SAVE)) != 0)
+    {
+        if (!bcmolt_log_level_unpack(&this->log_level_save, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_LOG_ENTRY_CFG_ID_LOG_TYPE)) != 0)
+    {
+        if (!bcmolt_log_type_unpack(&this->log_type, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_LOG_ENTRY_CFG_ID_LOG_STYLE)) != 0)
+    {
+        if (!bcmolt_log_style_unpack(&this->log_style, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_LOG_ENTRY_CFG_ID_LOG_NAME)) != 0)
+    {
+        if (!bcmolt_str_100_unpack(&this->log_name, buf, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_log_entry_cfg_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_LOG_ENTRY_CFG_ID_DEFAULT_LOG_LEVEL)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_LOG_ENTRY_CFG_ID_DEFAULT_LOG_TYPE)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_LOG_ENTRY_CFG_ID_LOG_LEVEL_PRINT)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_LOG_ENTRY_CFG_ID_LOG_LEVEL_SAVE)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_LOG_ENTRY_CFG_ID_LOG_TYPE)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_LOG_ENTRY_CFG_ID_LOG_STYLE)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_LOG_ENTRY_CFG_ID_LOG_NAME)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 100))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_log_entry_cfg_data_bounds_check(const bcmolt_log_entry_cfg_data *this, bcmolt_presence_mask fields_present, bcmolt_log_entry_cfg_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_LOG_ENTRY_CFG_ID_DEFAULT_LOG_LEVEL)) != 0)
+    {
+        switch (this->default_log_level)
+        {
+            case BCMOLT_LOG_LEVEL_NO_LOG:
+                break;
+            case BCMOLT_LOG_LEVEL_FATAL:
+                break;
+            case BCMOLT_LOG_LEVEL_ERROR:
+                break;
+            case BCMOLT_LOG_LEVEL_WARNING:
+                break;
+            case BCMOLT_LOG_LEVEL_INFO:
+                break;
+            case BCMOLT_LOG_LEVEL_DEBUG:
+                break;
+            default:
+                *failed_prop = BCMOLT_LOG_ENTRY_CFG_ID_DEFAULT_LOG_LEVEL;
+                return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_LOG_ENTRY_CFG_ID_DEFAULT_LOG_TYPE)) != 0)
+    {
+        switch (this->default_log_type)
+        {
+            case BCMOLT_LOG_TYPE_NONE:
+                break;
+            case BCMOLT_LOG_TYPE_PRINT:
+                break;
+            case BCMOLT_LOG_TYPE_SAVE:
+                break;
+            case BCMOLT_LOG_TYPE_BOTH:
+                break;
+            default:
+                *failed_prop = BCMOLT_LOG_ENTRY_CFG_ID_DEFAULT_LOG_TYPE;
+                return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_LOG_ENTRY_CFG_ID_LOG_LEVEL_PRINT)) != 0)
+    {
+        switch (this->log_level_print)
+        {
+            case BCMOLT_LOG_LEVEL_NO_LOG:
+                break;
+            case BCMOLT_LOG_LEVEL_FATAL:
+                break;
+            case BCMOLT_LOG_LEVEL_ERROR:
+                break;
+            case BCMOLT_LOG_LEVEL_WARNING:
+                break;
+            case BCMOLT_LOG_LEVEL_INFO:
+                break;
+            case BCMOLT_LOG_LEVEL_DEBUG:
+                break;
+            default:
+                *failed_prop = BCMOLT_LOG_ENTRY_CFG_ID_LOG_LEVEL_PRINT;
+                return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_LOG_ENTRY_CFG_ID_LOG_LEVEL_SAVE)) != 0)
+    {
+        switch (this->log_level_save)
+        {
+            case BCMOLT_LOG_LEVEL_NO_LOG:
+                break;
+            case BCMOLT_LOG_LEVEL_FATAL:
+                break;
+            case BCMOLT_LOG_LEVEL_ERROR:
+                break;
+            case BCMOLT_LOG_LEVEL_WARNING:
+                break;
+            case BCMOLT_LOG_LEVEL_INFO:
+                break;
+            case BCMOLT_LOG_LEVEL_DEBUG:
+                break;
+            default:
+                *failed_prop = BCMOLT_LOG_ENTRY_CFG_ID_LOG_LEVEL_SAVE;
+                return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_LOG_ENTRY_CFG_ID_LOG_TYPE)) != 0)
+    {
+        switch (this->log_type)
+        {
+            case BCMOLT_LOG_TYPE_NONE:
+                break;
+            case BCMOLT_LOG_TYPE_PRINT:
+                break;
+            case BCMOLT_LOG_TYPE_SAVE:
+                break;
+            case BCMOLT_LOG_TYPE_BOTH:
+                break;
+            default:
+                *failed_prop = BCMOLT_LOG_ENTRY_CFG_ID_LOG_TYPE;
+                return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_LOG_ENTRY_CFG_ID_LOG_STYLE)) != 0)
+    {
+        switch (this->log_style)
+        {
+            case BCMOLT_LOG_STYLE_NORMAL:
+                break;
+            case BCMOLT_LOG_STYLE_BOLD:
+                break;
+            case BCMOLT_LOG_STYLE_UNDERLINE:
+                break;
+            case BCMOLT_LOG_STYLE_BLINK:
+                break;
+            case BCMOLT_LOG_STYLE_REVERSE_VIDEO:
+                break;
+            default:
+                *failed_prop = BCMOLT_LOG_ENTRY_CFG_ID_LOG_STYLE;
+                return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_LOG_ENTRY_CFG_ID_LOG_NAME)) != 0)
+    {
+        if (!bcmolt_str_100_bounds_check(&this->log_name))
+        {
+            *failed_prop = BCMOLT_LOG_ENTRY_CFG_ID_LOG_NAME;
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_log_entry_stat_data_set_default(bcmolt_log_entry_stat_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_LOG_ENTRY_STAT_ID_MSG_COUNT)) != 0)
+    {
+        memset(this->msg_count.arr, 0, sizeof(this->msg_count.arr));
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_LOG_ENTRY_STAT_ID_LOST_MSG_COUNT)) != 0)
+    {
+        this->lost_msg_count = 0;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_log_entry_stat_data_pack(const bcmolt_log_entry_stat_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_LOG_ENTRY_STAT_ID_MSG_COUNT)) != 0)
+    {
+        if (!bcmolt_arr_u32_6_pack(&this->msg_count, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_LOG_ENTRY_STAT_ID_LOST_MSG_COUNT)) != 0)
+    {
+        if (!bcmolt_buf_write_u32(buf, this->lost_msg_count))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_log_entry_stat_data_get_packed_length(const bcmolt_log_entry_stat_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_LOG_ENTRY_STAT_ID_MSG_COUNT)) != 0)
+    {
+        count += 24;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_LOG_ENTRY_STAT_ID_LOST_MSG_COUNT)) != 0)
+    {
+        count += 4;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_log_entry_stat_data_unpack(bcmolt_log_entry_stat_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_LOG_ENTRY_STAT_ID_MSG_COUNT)) != 0)
+    {
+        if (!bcmolt_arr_u32_6_unpack(&this->msg_count, buf, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_LOG_ENTRY_STAT_ID_LOST_MSG_COUNT)) != 0)
+    {
+        if (!bcmolt_buf_read_u32(buf, &this->lost_msg_count))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_log_entry_stat_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_LOG_ENTRY_STAT_ID_MSG_COUNT)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 24))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_LOG_ENTRY_STAT_ID_LOST_MSG_COUNT)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 4))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_log_entry_stat_data_bounds_check(const bcmolt_log_entry_stat_data *this, bcmolt_presence_mask fields_present, bcmolt_log_entry_stat_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_LOG_ENTRY_STAT_ID_MSG_COUNT)) != 0)
+    {
+        if (!bcmolt_arr_u32_6_bounds_check(&this->msg_count))
+        {
+            *failed_prop = BCMOLT_LOG_ENTRY_STAT_ID_MSG_COUNT;
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_log_entry_stat_cfg_data_set_default(bcmolt_log_entry_stat_cfg_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_LOG_ENTRY_STAT_CFG_ID_CFG)) != 0)
+    {
+        this->cfg.trigger.type = BCMOLT_STAT_CONDITION_TYPE_NONE;
+        this->cfg.soak.active_soak_time = 0;
+        this->cfg.soak.clear_soak_time = 0;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_log_entry_stat_cfg_data_pack(const bcmolt_log_entry_stat_cfg_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_LOG_ENTRY_STAT_CFG_ID_CFG)) != 0)
+    {
+        if (!bcmolt_stat_alarm_config_pack(&this->cfg, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_log_entry_stat_cfg_data_get_packed_length(const bcmolt_log_entry_stat_cfg_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_LOG_ENTRY_STAT_CFG_ID_CFG)) != 0)
+    {
+        count += bcmolt_stat_alarm_config_get_packed_length(&this->cfg);
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_log_entry_stat_cfg_data_unpack(bcmolt_log_entry_stat_cfg_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_LOG_ENTRY_STAT_CFG_ID_CFG)) != 0)
+    {
+        if (!bcmolt_stat_alarm_config_unpack(&this->cfg, buf, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_log_entry_stat_cfg_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_LOG_ENTRY_STAT_CFG_ID_CFG)) != 0)
+    {
+        if (!bcmolt_stat_alarm_config_scan(packed, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_log_entry_stat_cfg_data_bounds_check(const bcmolt_log_entry_stat_cfg_data *this, bcmolt_presence_mask fields_present, bcmolt_log_entry_stat_cfg_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_LOG_ENTRY_STAT_CFG_ID_CFG)) != 0)
+    {
+        if (!bcmolt_stat_alarm_config_bounds_check(&this->cfg))
+        {
+            *failed_prop = BCMOLT_LOG_ENTRY_STAT_CFG_ID_CFG;
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_log_entry_stat_alarm_cleared_data_set_default(bcmolt_log_entry_stat_alarm_cleared_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_LOG_ENTRY_STAT_ALARM_CLEARED_ID_STAT)) != 0)
+    {
+        this->stat = BCMOLT_LOG_ENTRY_STAT_ID_MSG_COUNT;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_log_entry_stat_alarm_cleared_data_pack(const bcmolt_log_entry_stat_alarm_cleared_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_LOG_ENTRY_STAT_ALARM_CLEARED_ID_STAT)) != 0)
+    {
+        if (!bcmolt_log_entry_stat_id_pack(this->stat, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_log_entry_stat_alarm_cleared_data_get_packed_length(const bcmolt_log_entry_stat_alarm_cleared_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_LOG_ENTRY_STAT_ALARM_CLEARED_ID_STAT)) != 0)
+    {
+        count += 2;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_log_entry_stat_alarm_cleared_data_unpack(bcmolt_log_entry_stat_alarm_cleared_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_LOG_ENTRY_STAT_ALARM_CLEARED_ID_STAT)) != 0)
+    {
+        if (!bcmolt_log_entry_stat_id_unpack(&this->stat, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_log_entry_stat_alarm_cleared_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_LOG_ENTRY_STAT_ALARM_CLEARED_ID_STAT)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 2))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_log_entry_stat_alarm_cleared_data_bounds_check(const bcmolt_log_entry_stat_alarm_cleared_data *this, bcmolt_presence_mask fields_present, bcmolt_log_entry_stat_alarm_cleared_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_LOG_ENTRY_STAT_ALARM_CLEARED_ID_STAT)) != 0)
+    {
+        switch (this->stat)
+        {
+            case BCMOLT_LOG_ENTRY_STAT_ID_MSG_COUNT:
+                break;
+            case BCMOLT_LOG_ENTRY_STAT_ID_LOST_MSG_COUNT:
+                break;
+            default:
+                *failed_prop = BCMOLT_LOG_ENTRY_STAT_ALARM_CLEARED_ID_STAT;
+                return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_log_entry_stat_alarm_raised_data_set_default(bcmolt_log_entry_stat_alarm_raised_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_LOG_ENTRY_STAT_ALARM_RAISED_ID_STAT)) != 0)
+    {
+        this->stat = BCMOLT_LOG_ENTRY_STAT_ID_MSG_COUNT;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_log_entry_stat_alarm_raised_data_pack(const bcmolt_log_entry_stat_alarm_raised_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_LOG_ENTRY_STAT_ALARM_RAISED_ID_STAT)) != 0)
+    {
+        if (!bcmolt_log_entry_stat_id_pack(this->stat, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_log_entry_stat_alarm_raised_data_get_packed_length(const bcmolt_log_entry_stat_alarm_raised_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_LOG_ENTRY_STAT_ALARM_RAISED_ID_STAT)) != 0)
+    {
+        count += 2;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_log_entry_stat_alarm_raised_data_unpack(bcmolt_log_entry_stat_alarm_raised_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_LOG_ENTRY_STAT_ALARM_RAISED_ID_STAT)) != 0)
+    {
+        if (!bcmolt_log_entry_stat_id_unpack(&this->stat, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_log_entry_stat_alarm_raised_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_LOG_ENTRY_STAT_ALARM_RAISED_ID_STAT)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 2))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_log_entry_stat_alarm_raised_data_bounds_check(const bcmolt_log_entry_stat_alarm_raised_data *this, bcmolt_presence_mask fields_present, bcmolt_log_entry_stat_alarm_raised_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_LOG_ENTRY_STAT_ALARM_RAISED_ID_STAT)) != 0)
+    {
+        switch (this->stat)
+        {
+            case BCMOLT_LOG_ENTRY_STAT_ID_MSG_COUNT:
+                break;
+            case BCMOLT_LOG_ENTRY_STAT_ID_LOST_MSG_COUNT:
+                break;
+            default:
+                *failed_prop = BCMOLT_LOG_ENTRY_STAT_ALARM_RAISED_ID_STAT;
+                return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_log_entry_auto_cfg_data_set_default(bcmolt_log_entry_auto_cfg_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_LOG_ENTRY_AUTO_CFG_ID_STAT_ALARM_CLEARED)) != 0)
+    {
+        this->stat_alarm_cleared = BCMOS_FALSE;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_LOG_ENTRY_AUTO_CFG_ID_STAT_ALARM_RAISED)) != 0)
+    {
+        this->stat_alarm_raised = BCMOS_FALSE;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_log_entry_auto_cfg_data_pack(const bcmolt_log_entry_auto_cfg_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_LOG_ENTRY_AUTO_CFG_ID_STAT_ALARM_CLEARED)) != 0)
+    {
+        if (!bcmolt_buf_write_bool(buf, this->stat_alarm_cleared))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_LOG_ENTRY_AUTO_CFG_ID_STAT_ALARM_RAISED)) != 0)
+    {
+        if (!bcmolt_buf_write_bool(buf, this->stat_alarm_raised))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_log_entry_auto_cfg_data_get_packed_length(const bcmolt_log_entry_auto_cfg_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_LOG_ENTRY_AUTO_CFG_ID_STAT_ALARM_CLEARED)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_LOG_ENTRY_AUTO_CFG_ID_STAT_ALARM_RAISED)) != 0)
+    {
+        count += 1;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_log_entry_auto_cfg_data_unpack(bcmolt_log_entry_auto_cfg_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_LOG_ENTRY_AUTO_CFG_ID_STAT_ALARM_CLEARED)) != 0)
+    {
+        if (!bcmolt_buf_read_bool(buf, &this->stat_alarm_cleared))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_LOG_ENTRY_AUTO_CFG_ID_STAT_ALARM_RAISED)) != 0)
+    {
+        if (!bcmolt_buf_read_bool(buf, &this->stat_alarm_raised))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_log_entry_auto_cfg_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_LOG_ENTRY_AUTO_CFG_ID_STAT_ALARM_CLEARED)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_LOG_ENTRY_AUTO_CFG_ID_STAT_ALARM_RAISED)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_log_entry_auto_cfg_data_bounds_check(const bcmolt_log_entry_auto_cfg_data *this, bcmolt_presence_mask fields_present, bcmolt_log_entry_auto_cfg_id *failed_prop)
+{
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_logger_key_set_default(bcmolt_logger_key *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_LOGGER_KEY_ID_RESERVED)) != 0)
+    {
+        this->reserved = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_LOGGER_KEY_ID_FILE_ID)) != 0)
+    {
+        this->file_id = BCMOLT_LOG_FILE_ID_SRAM;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_logger_key_pack(const bcmolt_logger_key *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_LOGGER_KEY_ID_RESERVED)) != 0)
+    {
+        if (!bcmolt_buf_write_u32(buf, this->reserved))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_LOGGER_KEY_ID_FILE_ID)) != 0)
+    {
+        if (!bcmolt_log_file_id_pack(this->file_id, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_logger_key_get_packed_length(const bcmolt_logger_key *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_LOGGER_KEY_ID_RESERVED)) != 0)
+    {
+        count += 4;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_LOGGER_KEY_ID_FILE_ID)) != 0)
+    {
+        count += 1;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_logger_key_unpack(bcmolt_logger_key *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_LOGGER_KEY_ID_RESERVED)) != 0)
+    {
+        if (!bcmolt_buf_read_u32(buf, &this->reserved))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_LOGGER_KEY_ID_FILE_ID)) != 0)
+    {
+        if (!bcmolt_log_file_id_unpack(&this->file_id, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_logger_key_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_LOGGER_KEY_ID_RESERVED)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 4))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_LOGGER_KEY_ID_FILE_ID)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_logger_key_bounds_check(const bcmolt_logger_key *this, bcmolt_presence_mask fields_present, bcmolt_logger_key_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_LOGGER_KEY_ID_FILE_ID)) != 0)
+    {
+        switch (this->file_id)
+        {
+            case BCMOLT_LOG_FILE_ID_SRAM:
+                break;
+            case BCMOLT_LOG_FILE_ID_DDR:
+                break;
+            default:
+                *failed_prop = BCMOLT_LOGGER_KEY_ID_FILE_ID;
+                return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_logger_cfg_data_set_default(bcmolt_logger_cfg_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_LOGGER_CFG_ID_BUFFER)) != 0)
+    {
+        memset(this->buffer.buff, 0, 2048);
+        this->buffer.msg_to_read = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_LOGGER_CFG_ID_WRAP_AROUND)) != 0)
+    {
+        this->wrap_around = BCMOS_TRUE;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_LOGGER_CFG_ID_CLEAR_AFTER_READ)) != 0)
+    {
+        this->clear_after_read = BCMOS_FALSE;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_LOGGER_CFG_ID_ENABLE_LOG)) != 0)
+    {
+        this->enable_log = BCMOS_TRUE;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_LOGGER_CFG_ID_LOG_NAMES)) != 0)
+    {
+        memset(this->log_names.str, 0, 1000);
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_logger_cfg_data_pack(const bcmolt_logger_cfg_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_LOGGER_CFG_ID_BUFFER)) != 0)
+    {
+        if (!bcmolt_log_buffer_pack(&this->buffer, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_LOGGER_CFG_ID_WRAP_AROUND)) != 0)
+    {
+        if (!bcmolt_buf_write_bool(buf, this->wrap_around))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_LOGGER_CFG_ID_CLEAR_AFTER_READ)) != 0)
+    {
+        if (!bcmolt_buf_write_bool(buf, this->clear_after_read))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_LOGGER_CFG_ID_ENABLE_LOG)) != 0)
+    {
+        if (!bcmolt_buf_write_bool(buf, this->enable_log))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_LOGGER_CFG_ID_LOG_NAMES)) != 0)
+    {
+        if (!bcmolt_str_1000_pack(&this->log_names, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_logger_cfg_data_get_packed_length(const bcmolt_logger_cfg_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_LOGGER_CFG_ID_BUFFER)) != 0)
+    {
+        count += 2052;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_LOGGER_CFG_ID_WRAP_AROUND)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_LOGGER_CFG_ID_CLEAR_AFTER_READ)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_LOGGER_CFG_ID_ENABLE_LOG)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_LOGGER_CFG_ID_LOG_NAMES)) != 0)
+    {
+        count += 1000;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_logger_cfg_data_unpack(bcmolt_logger_cfg_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_LOGGER_CFG_ID_BUFFER)) != 0)
+    {
+        if (!bcmolt_log_buffer_unpack(&this->buffer, buf, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_LOGGER_CFG_ID_WRAP_AROUND)) != 0)
+    {
+        if (!bcmolt_buf_read_bool(buf, &this->wrap_around))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_LOGGER_CFG_ID_CLEAR_AFTER_READ)) != 0)
+    {
+        if (!bcmolt_buf_read_bool(buf, &this->clear_after_read))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_LOGGER_CFG_ID_ENABLE_LOG)) != 0)
+    {
+        if (!bcmolt_buf_read_bool(buf, &this->enable_log))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_LOGGER_CFG_ID_LOG_NAMES)) != 0)
+    {
+        if (!bcmolt_str_1000_unpack(&this->log_names, buf, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_logger_cfg_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_LOGGER_CFG_ID_BUFFER)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 2052))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_LOGGER_CFG_ID_WRAP_AROUND)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_LOGGER_CFG_ID_CLEAR_AFTER_READ)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_LOGGER_CFG_ID_ENABLE_LOG)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_LOGGER_CFG_ID_LOG_NAMES)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1000))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_logger_cfg_data_bounds_check(const bcmolt_logger_cfg_data *this, bcmolt_presence_mask fields_present, bcmolt_logger_cfg_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_LOGGER_CFG_ID_BUFFER)) != 0)
+    {
+        if (!bcmolt_log_buffer_bounds_check(&this->buffer))
+        {
+            *failed_prop = BCMOLT_LOGGER_CFG_ID_BUFFER;
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_LOGGER_CFG_ID_LOG_NAMES)) != 0)
+    {
+        if (!bcmolt_str_1000_bounds_check(&this->log_names))
+        {
+            *failed_prop = BCMOLT_LOGGER_CFG_ID_LOG_NAMES;
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_logger_stat_data_set_default(bcmolt_logger_stat_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_LOGGER_STAT_ID_LINES_IN_LOG)) != 0)
+    {
+        this->lines_in_log = 0;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_logger_stat_data_pack(const bcmolt_logger_stat_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_LOGGER_STAT_ID_LINES_IN_LOG)) != 0)
+    {
+        if (!bcmolt_buf_write_u32(buf, this->lines_in_log))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_logger_stat_data_get_packed_length(const bcmolt_logger_stat_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_LOGGER_STAT_ID_LINES_IN_LOG)) != 0)
+    {
+        count += 4;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_logger_stat_data_unpack(bcmolt_logger_stat_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_LOGGER_STAT_ID_LINES_IN_LOG)) != 0)
+    {
+        if (!bcmolt_buf_read_u32(buf, &this->lines_in_log))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_logger_stat_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_LOGGER_STAT_ID_LINES_IN_LOG)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 4))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_logger_stat_data_bounds_check(const bcmolt_logger_stat_data *this, bcmolt_presence_mask fields_present, bcmolt_logger_stat_id *failed_prop)
+{
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_logger_stat_cfg_data_set_default(bcmolt_logger_stat_cfg_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_LOGGER_STAT_CFG_ID_CFG)) != 0)
+    {
+        this->cfg.trigger.type = BCMOLT_STAT_CONDITION_TYPE_NONE;
+        this->cfg.soak.active_soak_time = 0;
+        this->cfg.soak.clear_soak_time = 0;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_logger_stat_cfg_data_pack(const bcmolt_logger_stat_cfg_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_LOGGER_STAT_CFG_ID_CFG)) != 0)
+    {
+        if (!bcmolt_stat_alarm_config_pack(&this->cfg, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_logger_stat_cfg_data_get_packed_length(const bcmolt_logger_stat_cfg_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_LOGGER_STAT_CFG_ID_CFG)) != 0)
+    {
+        count += bcmolt_stat_alarm_config_get_packed_length(&this->cfg);
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_logger_stat_cfg_data_unpack(bcmolt_logger_stat_cfg_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_LOGGER_STAT_CFG_ID_CFG)) != 0)
+    {
+        if (!bcmolt_stat_alarm_config_unpack(&this->cfg, buf, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_logger_stat_cfg_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_LOGGER_STAT_CFG_ID_CFG)) != 0)
+    {
+        if (!bcmolt_stat_alarm_config_scan(packed, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_logger_stat_cfg_data_bounds_check(const bcmolt_logger_stat_cfg_data *this, bcmolt_presence_mask fields_present, bcmolt_logger_stat_cfg_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_LOGGER_STAT_CFG_ID_CFG)) != 0)
+    {
+        if (!bcmolt_stat_alarm_config_bounds_check(&this->cfg))
+        {
+            *failed_prop = BCMOLT_LOGGER_STAT_CFG_ID_CFG;
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_logger_stat_alarm_cleared_data_set_default(bcmolt_logger_stat_alarm_cleared_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_LOGGER_STAT_ALARM_CLEARED_ID_STAT)) != 0)
+    {
+        this->stat = BCMOLT_LOGGER_STAT_ID_LINES_IN_LOG;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_logger_stat_alarm_cleared_data_pack(const bcmolt_logger_stat_alarm_cleared_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_LOGGER_STAT_ALARM_CLEARED_ID_STAT)) != 0)
+    {
+        if (!bcmolt_logger_stat_id_pack(this->stat, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_logger_stat_alarm_cleared_data_get_packed_length(const bcmolt_logger_stat_alarm_cleared_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_LOGGER_STAT_ALARM_CLEARED_ID_STAT)) != 0)
+    {
+        count += 2;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_logger_stat_alarm_cleared_data_unpack(bcmolt_logger_stat_alarm_cleared_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_LOGGER_STAT_ALARM_CLEARED_ID_STAT)) != 0)
+    {
+        if (!bcmolt_logger_stat_id_unpack(&this->stat, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_logger_stat_alarm_cleared_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_LOGGER_STAT_ALARM_CLEARED_ID_STAT)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 2))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_logger_stat_alarm_cleared_data_bounds_check(const bcmolt_logger_stat_alarm_cleared_data *this, bcmolt_presence_mask fields_present, bcmolt_logger_stat_alarm_cleared_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_LOGGER_STAT_ALARM_CLEARED_ID_STAT)) != 0)
+    {
+        switch (this->stat)
+        {
+            case BCMOLT_LOGGER_STAT_ID_LINES_IN_LOG:
+                break;
+            default:
+                *failed_prop = BCMOLT_LOGGER_STAT_ALARM_CLEARED_ID_STAT;
+                return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_logger_stat_alarm_raised_data_set_default(bcmolt_logger_stat_alarm_raised_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_LOGGER_STAT_ALARM_RAISED_ID_STAT)) != 0)
+    {
+        this->stat = BCMOLT_LOGGER_STAT_ID_LINES_IN_LOG;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_logger_stat_alarm_raised_data_pack(const bcmolt_logger_stat_alarm_raised_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_LOGGER_STAT_ALARM_RAISED_ID_STAT)) != 0)
+    {
+        if (!bcmolt_logger_stat_id_pack(this->stat, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_logger_stat_alarm_raised_data_get_packed_length(const bcmolt_logger_stat_alarm_raised_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_LOGGER_STAT_ALARM_RAISED_ID_STAT)) != 0)
+    {
+        count += 2;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_logger_stat_alarm_raised_data_unpack(bcmolt_logger_stat_alarm_raised_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_LOGGER_STAT_ALARM_RAISED_ID_STAT)) != 0)
+    {
+        if (!bcmolt_logger_stat_id_unpack(&this->stat, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_logger_stat_alarm_raised_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_LOGGER_STAT_ALARM_RAISED_ID_STAT)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 2))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_logger_stat_alarm_raised_data_bounds_check(const bcmolt_logger_stat_alarm_raised_data *this, bcmolt_presence_mask fields_present, bcmolt_logger_stat_alarm_raised_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_LOGGER_STAT_ALARM_RAISED_ID_STAT)) != 0)
+    {
+        switch (this->stat)
+        {
+            case BCMOLT_LOGGER_STAT_ID_LINES_IN_LOG:
+                break;
+            default:
+                *failed_prop = BCMOLT_LOGGER_STAT_ALARM_RAISED_ID_STAT;
+                return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_logger_auto_cfg_data_set_default(bcmolt_logger_auto_cfg_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_LOGGER_AUTO_CFG_ID_STAT_ALARM_CLEARED)) != 0)
+    {
+        this->stat_alarm_cleared = BCMOS_FALSE;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_LOGGER_AUTO_CFG_ID_STAT_ALARM_RAISED)) != 0)
+    {
+        this->stat_alarm_raised = BCMOS_FALSE;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_logger_auto_cfg_data_pack(const bcmolt_logger_auto_cfg_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_LOGGER_AUTO_CFG_ID_STAT_ALARM_CLEARED)) != 0)
+    {
+        if (!bcmolt_buf_write_bool(buf, this->stat_alarm_cleared))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_LOGGER_AUTO_CFG_ID_STAT_ALARM_RAISED)) != 0)
+    {
+        if (!bcmolt_buf_write_bool(buf, this->stat_alarm_raised))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_logger_auto_cfg_data_get_packed_length(const bcmolt_logger_auto_cfg_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_LOGGER_AUTO_CFG_ID_STAT_ALARM_CLEARED)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_LOGGER_AUTO_CFG_ID_STAT_ALARM_RAISED)) != 0)
+    {
+        count += 1;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_logger_auto_cfg_data_unpack(bcmolt_logger_auto_cfg_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_LOGGER_AUTO_CFG_ID_STAT_ALARM_CLEARED)) != 0)
+    {
+        if (!bcmolt_buf_read_bool(buf, &this->stat_alarm_cleared))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_LOGGER_AUTO_CFG_ID_STAT_ALARM_RAISED)) != 0)
+    {
+        if (!bcmolt_buf_read_bool(buf, &this->stat_alarm_raised))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_logger_auto_cfg_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_LOGGER_AUTO_CFG_ID_STAT_ALARM_CLEARED)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_LOGGER_AUTO_CFG_ID_STAT_ALARM_RAISED)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_logger_auto_cfg_data_bounds_check(const bcmolt_logger_auto_cfg_data *this, bcmolt_presence_mask fields_present, bcmolt_logger_auto_cfg_id *failed_prop)
+{
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_nni_key_set_default(bcmolt_nni_key *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_NNI_KEY_ID_PON_NI)) != 0)
+    {
+        this->pon_ni = (bcmolt_pon_ni) 0;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_nni_key_pack(const bcmolt_nni_key *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_NNI_KEY_ID_PON_NI)) != 0)
+    {
+        if (!bcmolt_buf_write_u8(buf, (uint8_t) this->pon_ni))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_nni_key_get_packed_length(const bcmolt_nni_key *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_NNI_KEY_ID_PON_NI)) != 0)
+    {
+        count += 1;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_nni_key_unpack(bcmolt_nni_key *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_NNI_KEY_ID_PON_NI)) != 0)
+    {
+        if (!bcmolt_buf_read_u8(buf, (uint8_t *) &this->pon_ni))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_nni_key_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_NNI_KEY_ID_PON_NI)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_nni_key_bounds_check(const bcmolt_nni_key *this, bcmolt_presence_mask fields_present, bcmolt_nni_key_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_NNI_KEY_ID_PON_NI)) != 0)
+    {
+        if (this->pon_ni > (bcmolt_pon_ni) 15)
+        {
+            *failed_prop = BCMOLT_NNI_KEY_ID_PON_NI;
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_nni_cfg_data_set_default(bcmolt_nni_cfg_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_NNI_CFG_ID_REMOTE_LOOPBACK)) != 0)
+    {
+        this->remote_loopback = BCMOLT_CONTROL_STATE_DISABLE;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_CFG_ID_LINE_LOOPBACK)) != 0)
+    {
+        this->line_loopback = BCMOLT_CONTROL_STATE_DISABLE;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_CFG_ID_MAC_ADDRESS)) != 0)
+    {
+        bcmos_mac_address_init(&this->mac_address);
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_CFG_ID_NNI_STATUS)) != 0)
+    {
+        this->nni_status.link_status = BCMOLT_TRIVALENT_FALSE;
+        this->nni_status.signal_detected = BCMOLT_TRIVALENT_FALSE;
+        this->nni_status.pmd_locked = BCMOLT_TRIVALENT_FALSE;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_CFG_ID_NNI_BACKUP_STATUS)) != 0)
+    {
+        this->nni_backup_status.link_status = BCMOLT_TRIVALENT_FALSE;
+        this->nni_backup_status.signal_detected = BCMOLT_TRIVALENT_FALSE;
+        this->nni_backup_status.pmd_locked = BCMOLT_TRIVALENT_FALSE;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_CFG_ID_ACTIVE_NNI)) != 0)
+    {
+        this->active_nni = BCMOLT_NNI_CONNECTION_PRIMARY;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_CFG_ID_NNI_STATUS_POLLING_INTERVAL_MS)) != 0)
+    {
+        this->nni_status_polling_interval_ms = 50;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_CFG_ID_AUTOSWITCH)) != 0)
+    {
+        this->autoswitch = BCMOS_TRUE;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_CFG_ID_FLOW_CONTROL)) != 0)
+    {
+        this->flow_control = BCMOLT_CONTROL_STATE_ENABLE;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_nni_cfg_data_pack(const bcmolt_nni_cfg_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_NNI_CFG_ID_REMOTE_LOOPBACK)) != 0)
+    {
+        if (!bcmolt_control_state_pack(this->remote_loopback, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_CFG_ID_LINE_LOOPBACK)) != 0)
+    {
+        if (!bcmolt_control_state_pack(this->line_loopback, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_CFG_ID_MAC_ADDRESS)) != 0)
+    {
+        if (!bcmolt_buf_write_mac_address(buf, this->mac_address))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_CFG_ID_NNI_STATUS)) != 0)
+    {
+        if (!bcmolt_nni_link_status_pack(&this->nni_status, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_CFG_ID_NNI_BACKUP_STATUS)) != 0)
+    {
+        if (!bcmolt_nni_link_status_pack(&this->nni_backup_status, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_CFG_ID_ACTIVE_NNI)) != 0)
+    {
+        if (!bcmolt_nni_connection_pack(this->active_nni, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_CFG_ID_NNI_STATUS_POLLING_INTERVAL_MS)) != 0)
+    {
+        if (!bcmolt_buf_write_u32(buf, this->nni_status_polling_interval_ms))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_CFG_ID_AUTOSWITCH)) != 0)
+    {
+        if (!bcmolt_buf_write_bool(buf, this->autoswitch))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_CFG_ID_FLOW_CONTROL)) != 0)
+    {
+        if (!bcmolt_control_state_pack(this->flow_control, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_nni_cfg_data_get_packed_length(const bcmolt_nni_cfg_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_NNI_CFG_ID_REMOTE_LOOPBACK)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_CFG_ID_LINE_LOOPBACK)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_CFG_ID_MAC_ADDRESS)) != 0)
+    {
+        count += 6;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_CFG_ID_NNI_STATUS)) != 0)
+    {
+        count += 3;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_CFG_ID_NNI_BACKUP_STATUS)) != 0)
+    {
+        count += 3;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_CFG_ID_ACTIVE_NNI)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_CFG_ID_NNI_STATUS_POLLING_INTERVAL_MS)) != 0)
+    {
+        count += 4;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_CFG_ID_AUTOSWITCH)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_CFG_ID_FLOW_CONTROL)) != 0)
+    {
+        count += 1;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_nni_cfg_data_unpack(bcmolt_nni_cfg_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_NNI_CFG_ID_REMOTE_LOOPBACK)) != 0)
+    {
+        if (!bcmolt_control_state_unpack(&this->remote_loopback, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_CFG_ID_LINE_LOOPBACK)) != 0)
+    {
+        if (!bcmolt_control_state_unpack(&this->line_loopback, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_CFG_ID_MAC_ADDRESS)) != 0)
+    {
+        if (!bcmolt_buf_read_mac_address(buf, &this->mac_address))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_CFG_ID_NNI_STATUS)) != 0)
+    {
+        if (!bcmolt_nni_link_status_unpack(&this->nni_status, buf, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_CFG_ID_NNI_BACKUP_STATUS)) != 0)
+    {
+        if (!bcmolt_nni_link_status_unpack(&this->nni_backup_status, buf, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_CFG_ID_ACTIVE_NNI)) != 0)
+    {
+        if (!bcmolt_nni_connection_unpack(&this->active_nni, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_CFG_ID_NNI_STATUS_POLLING_INTERVAL_MS)) != 0)
+    {
+        if (!bcmolt_buf_read_u32(buf, &this->nni_status_polling_interval_ms))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_CFG_ID_AUTOSWITCH)) != 0)
+    {
+        if (!bcmolt_buf_read_bool(buf, &this->autoswitch))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_CFG_ID_FLOW_CONTROL)) != 0)
+    {
+        if (!bcmolt_control_state_unpack(&this->flow_control, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_nni_cfg_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_NNI_CFG_ID_REMOTE_LOOPBACK)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_CFG_ID_LINE_LOOPBACK)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_CFG_ID_MAC_ADDRESS)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 6))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_CFG_ID_NNI_STATUS)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 3))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_CFG_ID_NNI_BACKUP_STATUS)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 3))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_CFG_ID_ACTIVE_NNI)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_CFG_ID_NNI_STATUS_POLLING_INTERVAL_MS)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 4))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_CFG_ID_AUTOSWITCH)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_CFG_ID_FLOW_CONTROL)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_nni_cfg_data_bounds_check(const bcmolt_nni_cfg_data *this, bcmolt_presence_mask fields_present, bcmolt_nni_cfg_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_NNI_CFG_ID_REMOTE_LOOPBACK)) != 0)
+    {
+        switch (this->remote_loopback)
+        {
+            case BCMOLT_CONTROL_STATE_DISABLE:
+                break;
+            case BCMOLT_CONTROL_STATE_ENABLE:
+                break;
+            default:
+                *failed_prop = BCMOLT_NNI_CFG_ID_REMOTE_LOOPBACK;
+                return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_CFG_ID_LINE_LOOPBACK)) != 0)
+    {
+        switch (this->line_loopback)
+        {
+            case BCMOLT_CONTROL_STATE_DISABLE:
+                break;
+            case BCMOLT_CONTROL_STATE_ENABLE:
+                break;
+            default:
+                *failed_prop = BCMOLT_NNI_CFG_ID_LINE_LOOPBACK;
+                return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_CFG_ID_NNI_STATUS)) != 0)
+    {
+        if (!bcmolt_nni_link_status_bounds_check(&this->nni_status))
+        {
+            *failed_prop = BCMOLT_NNI_CFG_ID_NNI_STATUS;
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_CFG_ID_NNI_BACKUP_STATUS)) != 0)
+    {
+        if (!bcmolt_nni_link_status_bounds_check(&this->nni_backup_status))
+        {
+            *failed_prop = BCMOLT_NNI_CFG_ID_NNI_BACKUP_STATUS;
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_CFG_ID_ACTIVE_NNI)) != 0)
+    {
+        switch (this->active_nni)
+        {
+            case BCMOLT_NNI_CONNECTION_PRIMARY:
+                break;
+            case BCMOLT_NNI_CONNECTION_BACKUP:
+                break;
+            default:
+                *failed_prop = BCMOLT_NNI_CFG_ID_ACTIVE_NNI;
+                return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_CFG_ID_NNI_STATUS_POLLING_INTERVAL_MS)) != 0)
+    {
+        if (this->nni_status_polling_interval_ms > 3600000UL)
+        {
+            *failed_prop = BCMOLT_NNI_CFG_ID_NNI_STATUS_POLLING_INTERVAL_MS;
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_CFG_ID_FLOW_CONTROL)) != 0)
+    {
+        switch (this->flow_control)
+        {
+            case BCMOLT_CONTROL_STATE_DISABLE:
+                break;
+            case BCMOLT_CONTROL_STATE_ENABLE:
+                break;
+            default:
+                *failed_prop = BCMOLT_NNI_CFG_ID_FLOW_CONTROL;
+                return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_nni_stat_data_set_default(bcmolt_nni_stat_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_RX_FRAMES_64)) != 0)
+    {
+        this->rx_frames_64 = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_RX_FRAMES_65_127)) != 0)
+    {
+        this->rx_frames_65_127 = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_RX_FRAMES_128_255)) != 0)
+    {
+        this->rx_frames_128_255 = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_RX_FRAMES_256_511)) != 0)
+    {
+        this->rx_frames_256_511 = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_RX_FRAMES_512_1023)) != 0)
+    {
+        this->rx_frames_512_1023 = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_RX_FRAMES_1024_1518)) != 0)
+    {
+        this->rx_frames_1024_1518 = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_RX_FRAMES_1519_2047)) != 0)
+    {
+        this->rx_frames_1519_2047 = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_RX_FRAMES_2048_4095)) != 0)
+    {
+        this->rx_frames_2048_4095 = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_RX_FRAMES_4096_9216)) != 0)
+    {
+        this->rx_frames_4096_9216 = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_RX_FRAMES_9217_16383)) != 0)
+    {
+        this->rx_frames_9217_16383 = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_RX_FRAMES)) != 0)
+    {
+        this->rx_frames = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_RX_BYTES)) != 0)
+    {
+        this->rx_bytes = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_RX_GOOD_FRAMES)) != 0)
+    {
+        this->rx_good_frames = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_RX_UNICAST_FRAMES)) != 0)
+    {
+        this->rx_unicast_frames = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_RX_MULTICAST_FRAMES)) != 0)
+    {
+        this->rx_multicast_frames = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_RX_BROADCAST_FRAMES)) != 0)
+    {
+        this->rx_broadcast_frames = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_RX_FCS_ERRORS)) != 0)
+    {
+        this->rx_fcs_errors = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_RX_CONTROL_FRAMES)) != 0)
+    {
+        this->rx_control_frames = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_RX_PAUSE_FRAMES)) != 0)
+    {
+        this->rx_pause_frames = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_RX_PFC_FRAMES)) != 0)
+    {
+        this->rx_pfc_frames = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_RX_UNSUPPORTED_OPCODE)) != 0)
+    {
+        this->rx_unsupported_opcode = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_RX_UNSUPPORTED_DA)) != 0)
+    {
+        this->rx_unsupported_da = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_RX_ALIGNMENT_ERRORS)) != 0)
+    {
+        this->rx_alignment_errors = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_RX_LENGTH_OUT_OF_RANGE)) != 0)
+    {
+        this->rx_length_out_of_range = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_RX_CODE_ERRORS)) != 0)
+    {
+        this->rx_code_errors = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_RX_OVERSIZED_FRAMES)) != 0)
+    {
+        this->rx_oversized_frames = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_RX_JABBER_FRAMES)) != 0)
+    {
+        this->rx_jabber_frames = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_RX_MTU_CHECK_ERRORS)) != 0)
+    {
+        this->rx_mtu_check_errors = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_RX_PROMISCUOUS_FRAMES)) != 0)
+    {
+        this->rx_promiscuous_frames = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_RX_VLAN_FRAMES)) != 0)
+    {
+        this->rx_vlan_frames = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_RX_DOUBLE_VLAN_FRAMES)) != 0)
+    {
+        this->rx_double_vlan_frames = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_RX_TRUNCATED_FRAMES)) != 0)
+    {
+        this->rx_truncated_frames = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_RX_UNDERSIZE_FRAMES)) != 0)
+    {
+        this->rx_undersize_frames = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_RX_FRAGMENTED_FRAMES)) != 0)
+    {
+        this->rx_fragmented_frames = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_RX_RUNT_FRAMES)) != 0)
+    {
+        this->rx_runt_frames = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_TX_FRAMES_64)) != 0)
+    {
+        this->tx_frames_64 = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_TX_FRAMES_65_127)) != 0)
+    {
+        this->tx_frames_65_127 = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_TX_FRAMES_128_255)) != 0)
+    {
+        this->tx_frames_128_255 = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_TX_FRAMES_256_511)) != 0)
+    {
+        this->tx_frames_256_511 = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_TX_FRAMES_512_1023)) != 0)
+    {
+        this->tx_frames_512_1023 = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_TX_FRAMES_1024_1518)) != 0)
+    {
+        this->tx_frames_1024_1518 = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_TX_FRAMES_1519_2047)) != 0)
+    {
+        this->tx_frames_1519_2047 = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_TX_FRAMES_2048_4095)) != 0)
+    {
+        this->tx_frames_2048_4095 = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_TX_FRAMES_4096_9216)) != 0)
+    {
+        this->tx_frames_4096_9216 = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_TX_FRAMES_9217_16383)) != 0)
+    {
+        this->tx_frames_9217_16383 = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_TX_FRAMES)) != 0)
+    {
+        this->tx_frames = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_TX_BYTES)) != 0)
+    {
+        this->tx_bytes = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_TX_GOOD_FRAMES)) != 0)
+    {
+        this->tx_good_frames = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_TX_UNICAST_FRAMES)) != 0)
+    {
+        this->tx_unicast_frames = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_TX_MULTICAST_FRAMES)) != 0)
+    {
+        this->tx_multicast_frames = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_TX_BROADCAST_FRAMES)) != 0)
+    {
+        this->tx_broadcast_frames = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_TX_PAUSE_FRAMES)) != 0)
+    {
+        this->tx_pause_frames = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_TX_PFC_FRAMES)) != 0)
+    {
+        this->tx_pfc_frames = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_TX_JABBER_FRAMES)) != 0)
+    {
+        this->tx_jabber_frames = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_TX_FCS_ERRORS)) != 0)
+    {
+        this->tx_fcs_errors = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_TX_CONTROL_FRAMES)) != 0)
+    {
+        this->tx_control_frames = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_TX_OVERSIZE_FRAMES)) != 0)
+    {
+        this->tx_oversize_frames = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_TX_FRAGMENTED_FRAMES)) != 0)
+    {
+        this->tx_fragmented_frames = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_TX_ERROR_FRAMES)) != 0)
+    {
+        this->tx_error_frames = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_TX_VLAN_FRAMES)) != 0)
+    {
+        this->tx_vlan_frames = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_TX_DOUBLE_VLAN_FRAMES)) != 0)
+    {
+        this->tx_double_vlan_frames = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_TX_RUNT_FRAMES)) != 0)
+    {
+        this->tx_runt_frames = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_TX_UNDERRUN_FRAMES)) != 0)
+    {
+        this->tx_underrun_frames = 0;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_nni_stat_data_pack(const bcmolt_nni_stat_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_RX_FRAMES_64)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->rx_frames_64))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_RX_FRAMES_65_127)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->rx_frames_65_127))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_RX_FRAMES_128_255)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->rx_frames_128_255))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_RX_FRAMES_256_511)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->rx_frames_256_511))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_RX_FRAMES_512_1023)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->rx_frames_512_1023))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_RX_FRAMES_1024_1518)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->rx_frames_1024_1518))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_RX_FRAMES_1519_2047)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->rx_frames_1519_2047))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_RX_FRAMES_2048_4095)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->rx_frames_2048_4095))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_RX_FRAMES_4096_9216)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->rx_frames_4096_9216))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_RX_FRAMES_9217_16383)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->rx_frames_9217_16383))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_RX_FRAMES)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->rx_frames))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_RX_BYTES)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->rx_bytes))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_RX_GOOD_FRAMES)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->rx_good_frames))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_RX_UNICAST_FRAMES)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->rx_unicast_frames))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_RX_MULTICAST_FRAMES)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->rx_multicast_frames))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_RX_BROADCAST_FRAMES)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->rx_broadcast_frames))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_RX_FCS_ERRORS)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->rx_fcs_errors))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_RX_CONTROL_FRAMES)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->rx_control_frames))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_RX_PAUSE_FRAMES)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->rx_pause_frames))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_RX_PFC_FRAMES)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->rx_pfc_frames))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_RX_UNSUPPORTED_OPCODE)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->rx_unsupported_opcode))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_RX_UNSUPPORTED_DA)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->rx_unsupported_da))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_RX_ALIGNMENT_ERRORS)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->rx_alignment_errors))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_RX_LENGTH_OUT_OF_RANGE)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->rx_length_out_of_range))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_RX_CODE_ERRORS)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->rx_code_errors))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_RX_OVERSIZED_FRAMES)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->rx_oversized_frames))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_RX_JABBER_FRAMES)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->rx_jabber_frames))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_RX_MTU_CHECK_ERRORS)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->rx_mtu_check_errors))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_RX_PROMISCUOUS_FRAMES)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->rx_promiscuous_frames))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_RX_VLAN_FRAMES)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->rx_vlan_frames))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_RX_DOUBLE_VLAN_FRAMES)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->rx_double_vlan_frames))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_RX_TRUNCATED_FRAMES)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->rx_truncated_frames))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_RX_UNDERSIZE_FRAMES)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->rx_undersize_frames))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_RX_FRAGMENTED_FRAMES)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->rx_fragmented_frames))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_RX_RUNT_FRAMES)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->rx_runt_frames))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_TX_FRAMES_64)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->tx_frames_64))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_TX_FRAMES_65_127)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->tx_frames_65_127))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_TX_FRAMES_128_255)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->tx_frames_128_255))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_TX_FRAMES_256_511)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->tx_frames_256_511))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_TX_FRAMES_512_1023)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->tx_frames_512_1023))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_TX_FRAMES_1024_1518)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->tx_frames_1024_1518))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_TX_FRAMES_1519_2047)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->tx_frames_1519_2047))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_TX_FRAMES_2048_4095)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->tx_frames_2048_4095))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_TX_FRAMES_4096_9216)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->tx_frames_4096_9216))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_TX_FRAMES_9217_16383)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->tx_frames_9217_16383))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_TX_FRAMES)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->tx_frames))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_TX_BYTES)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->tx_bytes))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_TX_GOOD_FRAMES)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->tx_good_frames))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_TX_UNICAST_FRAMES)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->tx_unicast_frames))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_TX_MULTICAST_FRAMES)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->tx_multicast_frames))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_TX_BROADCAST_FRAMES)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->tx_broadcast_frames))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_TX_PAUSE_FRAMES)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->tx_pause_frames))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_TX_PFC_FRAMES)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->tx_pfc_frames))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_TX_JABBER_FRAMES)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->tx_jabber_frames))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_TX_FCS_ERRORS)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->tx_fcs_errors))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_TX_CONTROL_FRAMES)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->tx_control_frames))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_TX_OVERSIZE_FRAMES)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->tx_oversize_frames))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_TX_FRAGMENTED_FRAMES)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->tx_fragmented_frames))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_TX_ERROR_FRAMES)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->tx_error_frames))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_TX_VLAN_FRAMES)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->tx_vlan_frames))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_TX_DOUBLE_VLAN_FRAMES)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->tx_double_vlan_frames))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_TX_RUNT_FRAMES)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->tx_runt_frames))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_TX_UNDERRUN_FRAMES)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->tx_underrun_frames))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_nni_stat_data_get_packed_length(const bcmolt_nni_stat_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_RX_FRAMES_64)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_RX_FRAMES_65_127)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_RX_FRAMES_128_255)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_RX_FRAMES_256_511)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_RX_FRAMES_512_1023)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_RX_FRAMES_1024_1518)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_RX_FRAMES_1519_2047)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_RX_FRAMES_2048_4095)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_RX_FRAMES_4096_9216)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_RX_FRAMES_9217_16383)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_RX_FRAMES)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_RX_BYTES)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_RX_GOOD_FRAMES)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_RX_UNICAST_FRAMES)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_RX_MULTICAST_FRAMES)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_RX_BROADCAST_FRAMES)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_RX_FCS_ERRORS)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_RX_CONTROL_FRAMES)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_RX_PAUSE_FRAMES)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_RX_PFC_FRAMES)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_RX_UNSUPPORTED_OPCODE)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_RX_UNSUPPORTED_DA)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_RX_ALIGNMENT_ERRORS)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_RX_LENGTH_OUT_OF_RANGE)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_RX_CODE_ERRORS)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_RX_OVERSIZED_FRAMES)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_RX_JABBER_FRAMES)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_RX_MTU_CHECK_ERRORS)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_RX_PROMISCUOUS_FRAMES)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_RX_VLAN_FRAMES)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_RX_DOUBLE_VLAN_FRAMES)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_RX_TRUNCATED_FRAMES)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_RX_UNDERSIZE_FRAMES)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_RX_FRAGMENTED_FRAMES)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_RX_RUNT_FRAMES)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_TX_FRAMES_64)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_TX_FRAMES_65_127)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_TX_FRAMES_128_255)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_TX_FRAMES_256_511)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_TX_FRAMES_512_1023)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_TX_FRAMES_1024_1518)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_TX_FRAMES_1519_2047)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_TX_FRAMES_2048_4095)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_TX_FRAMES_4096_9216)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_TX_FRAMES_9217_16383)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_TX_FRAMES)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_TX_BYTES)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_TX_GOOD_FRAMES)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_TX_UNICAST_FRAMES)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_TX_MULTICAST_FRAMES)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_TX_BROADCAST_FRAMES)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_TX_PAUSE_FRAMES)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_TX_PFC_FRAMES)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_TX_JABBER_FRAMES)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_TX_FCS_ERRORS)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_TX_CONTROL_FRAMES)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_TX_OVERSIZE_FRAMES)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_TX_FRAGMENTED_FRAMES)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_TX_ERROR_FRAMES)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_TX_VLAN_FRAMES)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_TX_DOUBLE_VLAN_FRAMES)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_TX_RUNT_FRAMES)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_TX_UNDERRUN_FRAMES)) != 0)
+    {
+        count += 8;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_nni_stat_data_unpack(bcmolt_nni_stat_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_RX_FRAMES_64)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->rx_frames_64))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_RX_FRAMES_65_127)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->rx_frames_65_127))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_RX_FRAMES_128_255)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->rx_frames_128_255))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_RX_FRAMES_256_511)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->rx_frames_256_511))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_RX_FRAMES_512_1023)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->rx_frames_512_1023))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_RX_FRAMES_1024_1518)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->rx_frames_1024_1518))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_RX_FRAMES_1519_2047)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->rx_frames_1519_2047))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_RX_FRAMES_2048_4095)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->rx_frames_2048_4095))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_RX_FRAMES_4096_9216)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->rx_frames_4096_9216))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_RX_FRAMES_9217_16383)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->rx_frames_9217_16383))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_RX_FRAMES)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->rx_frames))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_RX_BYTES)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->rx_bytes))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_RX_GOOD_FRAMES)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->rx_good_frames))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_RX_UNICAST_FRAMES)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->rx_unicast_frames))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_RX_MULTICAST_FRAMES)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->rx_multicast_frames))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_RX_BROADCAST_FRAMES)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->rx_broadcast_frames))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_RX_FCS_ERRORS)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->rx_fcs_errors))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_RX_CONTROL_FRAMES)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->rx_control_frames))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_RX_PAUSE_FRAMES)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->rx_pause_frames))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_RX_PFC_FRAMES)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->rx_pfc_frames))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_RX_UNSUPPORTED_OPCODE)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->rx_unsupported_opcode))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_RX_UNSUPPORTED_DA)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->rx_unsupported_da))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_RX_ALIGNMENT_ERRORS)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->rx_alignment_errors))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_RX_LENGTH_OUT_OF_RANGE)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->rx_length_out_of_range))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_RX_CODE_ERRORS)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->rx_code_errors))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_RX_OVERSIZED_FRAMES)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->rx_oversized_frames))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_RX_JABBER_FRAMES)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->rx_jabber_frames))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_RX_MTU_CHECK_ERRORS)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->rx_mtu_check_errors))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_RX_PROMISCUOUS_FRAMES)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->rx_promiscuous_frames))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_RX_VLAN_FRAMES)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->rx_vlan_frames))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_RX_DOUBLE_VLAN_FRAMES)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->rx_double_vlan_frames))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_RX_TRUNCATED_FRAMES)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->rx_truncated_frames))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_RX_UNDERSIZE_FRAMES)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->rx_undersize_frames))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_RX_FRAGMENTED_FRAMES)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->rx_fragmented_frames))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_RX_RUNT_FRAMES)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->rx_runt_frames))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_TX_FRAMES_64)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->tx_frames_64))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_TX_FRAMES_65_127)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->tx_frames_65_127))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_TX_FRAMES_128_255)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->tx_frames_128_255))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_TX_FRAMES_256_511)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->tx_frames_256_511))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_TX_FRAMES_512_1023)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->tx_frames_512_1023))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_TX_FRAMES_1024_1518)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->tx_frames_1024_1518))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_TX_FRAMES_1519_2047)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->tx_frames_1519_2047))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_TX_FRAMES_2048_4095)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->tx_frames_2048_4095))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_TX_FRAMES_4096_9216)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->tx_frames_4096_9216))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_TX_FRAMES_9217_16383)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->tx_frames_9217_16383))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_TX_FRAMES)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->tx_frames))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_TX_BYTES)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->tx_bytes))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_TX_GOOD_FRAMES)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->tx_good_frames))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_TX_UNICAST_FRAMES)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->tx_unicast_frames))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_TX_MULTICAST_FRAMES)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->tx_multicast_frames))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_TX_BROADCAST_FRAMES)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->tx_broadcast_frames))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_TX_PAUSE_FRAMES)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->tx_pause_frames))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_TX_PFC_FRAMES)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->tx_pfc_frames))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_TX_JABBER_FRAMES)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->tx_jabber_frames))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_TX_FCS_ERRORS)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->tx_fcs_errors))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_TX_CONTROL_FRAMES)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->tx_control_frames))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_TX_OVERSIZE_FRAMES)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->tx_oversize_frames))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_TX_FRAGMENTED_FRAMES)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->tx_fragmented_frames))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_TX_ERROR_FRAMES)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->tx_error_frames))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_TX_VLAN_FRAMES)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->tx_vlan_frames))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_TX_DOUBLE_VLAN_FRAMES)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->tx_double_vlan_frames))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_TX_RUNT_FRAMES)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->tx_runt_frames))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_TX_UNDERRUN_FRAMES)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->tx_underrun_frames))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_nni_stat_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_RX_FRAMES_64)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_RX_FRAMES_65_127)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_RX_FRAMES_128_255)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_RX_FRAMES_256_511)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_RX_FRAMES_512_1023)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_RX_FRAMES_1024_1518)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_RX_FRAMES_1519_2047)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_RX_FRAMES_2048_4095)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_RX_FRAMES_4096_9216)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_RX_FRAMES_9217_16383)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_RX_FRAMES)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_RX_BYTES)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_RX_GOOD_FRAMES)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_RX_UNICAST_FRAMES)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_RX_MULTICAST_FRAMES)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_RX_BROADCAST_FRAMES)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_RX_FCS_ERRORS)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_RX_CONTROL_FRAMES)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_RX_PAUSE_FRAMES)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_RX_PFC_FRAMES)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_RX_UNSUPPORTED_OPCODE)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_RX_UNSUPPORTED_DA)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_RX_ALIGNMENT_ERRORS)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_RX_LENGTH_OUT_OF_RANGE)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_RX_CODE_ERRORS)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_RX_OVERSIZED_FRAMES)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_RX_JABBER_FRAMES)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_RX_MTU_CHECK_ERRORS)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_RX_PROMISCUOUS_FRAMES)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_RX_VLAN_FRAMES)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_RX_DOUBLE_VLAN_FRAMES)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_RX_TRUNCATED_FRAMES)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_RX_UNDERSIZE_FRAMES)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_RX_FRAGMENTED_FRAMES)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_RX_RUNT_FRAMES)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_TX_FRAMES_64)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_TX_FRAMES_65_127)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_TX_FRAMES_128_255)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_TX_FRAMES_256_511)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_TX_FRAMES_512_1023)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_TX_FRAMES_1024_1518)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_TX_FRAMES_1519_2047)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_TX_FRAMES_2048_4095)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_TX_FRAMES_4096_9216)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_TX_FRAMES_9217_16383)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_TX_FRAMES)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_TX_BYTES)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_TX_GOOD_FRAMES)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_TX_UNICAST_FRAMES)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_TX_MULTICAST_FRAMES)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_TX_BROADCAST_FRAMES)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_TX_PAUSE_FRAMES)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_TX_PFC_FRAMES)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_TX_JABBER_FRAMES)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_TX_FCS_ERRORS)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_TX_CONTROL_FRAMES)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_TX_OVERSIZE_FRAMES)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_TX_FRAGMENTED_FRAMES)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_TX_ERROR_FRAMES)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_TX_VLAN_FRAMES)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_TX_DOUBLE_VLAN_FRAMES)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_TX_RUNT_FRAMES)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ID_TX_UNDERRUN_FRAMES)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_nni_stat_data_bounds_check(const bcmolt_nni_stat_data *this, bcmolt_presence_mask fields_present, bcmolt_nni_stat_id *failed_prop)
+{
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_nni_stat_cfg_data_set_default(bcmolt_nni_stat_cfg_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_CFG_ID_CFG)) != 0)
+    {
+        this->cfg.trigger.type = BCMOLT_STAT_CONDITION_TYPE_NONE;
+        this->cfg.soak.active_soak_time = 0;
+        this->cfg.soak.clear_soak_time = 0;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_nni_stat_cfg_data_pack(const bcmolt_nni_stat_cfg_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_CFG_ID_CFG)) != 0)
+    {
+        if (!bcmolt_stat_alarm_config_pack(&this->cfg, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_nni_stat_cfg_data_get_packed_length(const bcmolt_nni_stat_cfg_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_CFG_ID_CFG)) != 0)
+    {
+        count += bcmolt_stat_alarm_config_get_packed_length(&this->cfg);
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_nni_stat_cfg_data_unpack(bcmolt_nni_stat_cfg_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_CFG_ID_CFG)) != 0)
+    {
+        if (!bcmolt_stat_alarm_config_unpack(&this->cfg, buf, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_nni_stat_cfg_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_CFG_ID_CFG)) != 0)
+    {
+        if (!bcmolt_stat_alarm_config_scan(packed, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_nni_stat_cfg_data_bounds_check(const bcmolt_nni_stat_cfg_data *this, bcmolt_presence_mask fields_present, bcmolt_nni_stat_cfg_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_CFG_ID_CFG)) != 0)
+    {
+        if (!bcmolt_stat_alarm_config_bounds_check(&this->cfg))
+        {
+            *failed_prop = BCMOLT_NNI_STAT_CFG_ID_CFG;
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_nni_stat_alarm_cleared_data_set_default(bcmolt_nni_stat_alarm_cleared_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ALARM_CLEARED_ID_STAT)) != 0)
+    {
+        this->stat = BCMOLT_NNI_STAT_ID_RX_FRAMES_64;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_nni_stat_alarm_cleared_data_pack(const bcmolt_nni_stat_alarm_cleared_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ALARM_CLEARED_ID_STAT)) != 0)
+    {
+        if (!bcmolt_nni_stat_id_pack(this->stat, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_nni_stat_alarm_cleared_data_get_packed_length(const bcmolt_nni_stat_alarm_cleared_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ALARM_CLEARED_ID_STAT)) != 0)
+    {
+        count += 2;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_nni_stat_alarm_cleared_data_unpack(bcmolt_nni_stat_alarm_cleared_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ALARM_CLEARED_ID_STAT)) != 0)
+    {
+        if (!bcmolt_nni_stat_id_unpack(&this->stat, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_nni_stat_alarm_cleared_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ALARM_CLEARED_ID_STAT)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 2))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_nni_stat_alarm_cleared_data_bounds_check(const bcmolt_nni_stat_alarm_cleared_data *this, bcmolt_presence_mask fields_present, bcmolt_nni_stat_alarm_cleared_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ALARM_CLEARED_ID_STAT)) != 0)
+    {
+        switch (this->stat)
+        {
+            case BCMOLT_NNI_STAT_ID_RX_FRAMES_64:
+                break;
+            case BCMOLT_NNI_STAT_ID_RX_FRAMES_65_127:
+                break;
+            case BCMOLT_NNI_STAT_ID_RX_FRAMES_128_255:
+                break;
+            case BCMOLT_NNI_STAT_ID_RX_FRAMES_256_511:
+                break;
+            case BCMOLT_NNI_STAT_ID_RX_FRAMES_512_1023:
+                break;
+            case BCMOLT_NNI_STAT_ID_RX_FRAMES_1024_1518:
+                break;
+            case BCMOLT_NNI_STAT_ID_RX_FRAMES_1519_2047:
+                break;
+            case BCMOLT_NNI_STAT_ID_RX_FRAMES_2048_4095:
+                break;
+            case BCMOLT_NNI_STAT_ID_RX_FRAMES_4096_9216:
+                break;
+            case BCMOLT_NNI_STAT_ID_RX_FRAMES_9217_16383:
+                break;
+            case BCMOLT_NNI_STAT_ID_RX_FRAMES:
+                break;
+            case BCMOLT_NNI_STAT_ID_RX_BYTES:
+                break;
+            case BCMOLT_NNI_STAT_ID_RX_GOOD_FRAMES:
+                break;
+            case BCMOLT_NNI_STAT_ID_RX_UNICAST_FRAMES:
+                break;
+            case BCMOLT_NNI_STAT_ID_RX_MULTICAST_FRAMES:
+                break;
+            case BCMOLT_NNI_STAT_ID_RX_BROADCAST_FRAMES:
+                break;
+            case BCMOLT_NNI_STAT_ID_RX_FCS_ERRORS:
+                break;
+            case BCMOLT_NNI_STAT_ID_RX_CONTROL_FRAMES:
+                break;
+            case BCMOLT_NNI_STAT_ID_RX_PAUSE_FRAMES:
+                break;
+            case BCMOLT_NNI_STAT_ID_RX_PFC_FRAMES:
+                break;
+            case BCMOLT_NNI_STAT_ID_RX_UNSUPPORTED_OPCODE:
+                break;
+            case BCMOLT_NNI_STAT_ID_RX_UNSUPPORTED_DA:
+                break;
+            case BCMOLT_NNI_STAT_ID_RX_ALIGNMENT_ERRORS:
+                break;
+            case BCMOLT_NNI_STAT_ID_RX_LENGTH_OUT_OF_RANGE:
+                break;
+            case BCMOLT_NNI_STAT_ID_RX_CODE_ERRORS:
+                break;
+            case BCMOLT_NNI_STAT_ID_RX_OVERSIZED_FRAMES:
+                break;
+            case BCMOLT_NNI_STAT_ID_RX_JABBER_FRAMES:
+                break;
+            case BCMOLT_NNI_STAT_ID_RX_MTU_CHECK_ERRORS:
+                break;
+            case BCMOLT_NNI_STAT_ID_RX_PROMISCUOUS_FRAMES:
+                break;
+            case BCMOLT_NNI_STAT_ID_RX_VLAN_FRAMES:
+                break;
+            case BCMOLT_NNI_STAT_ID_RX_DOUBLE_VLAN_FRAMES:
+                break;
+            case BCMOLT_NNI_STAT_ID_RX_TRUNCATED_FRAMES:
+                break;
+            case BCMOLT_NNI_STAT_ID_RX_UNDERSIZE_FRAMES:
+                break;
+            case BCMOLT_NNI_STAT_ID_RX_FRAGMENTED_FRAMES:
+                break;
+            case BCMOLT_NNI_STAT_ID_RX_RUNT_FRAMES:
+                break;
+            case BCMOLT_NNI_STAT_ID_TX_FRAMES_64:
+                break;
+            case BCMOLT_NNI_STAT_ID_TX_FRAMES_65_127:
+                break;
+            case BCMOLT_NNI_STAT_ID_TX_FRAMES_128_255:
+                break;
+            case BCMOLT_NNI_STAT_ID_TX_FRAMES_256_511:
+                break;
+            case BCMOLT_NNI_STAT_ID_TX_FRAMES_512_1023:
+                break;
+            case BCMOLT_NNI_STAT_ID_TX_FRAMES_1024_1518:
+                break;
+            case BCMOLT_NNI_STAT_ID_TX_FRAMES_1519_2047:
+                break;
+            case BCMOLT_NNI_STAT_ID_TX_FRAMES_2048_4095:
+                break;
+            case BCMOLT_NNI_STAT_ID_TX_FRAMES_4096_9216:
+                break;
+            case BCMOLT_NNI_STAT_ID_TX_FRAMES_9217_16383:
+                break;
+            case BCMOLT_NNI_STAT_ID_TX_FRAMES:
+                break;
+            case BCMOLT_NNI_STAT_ID_TX_BYTES:
+                break;
+            case BCMOLT_NNI_STAT_ID_TX_GOOD_FRAMES:
+                break;
+            case BCMOLT_NNI_STAT_ID_TX_UNICAST_FRAMES:
+                break;
+            case BCMOLT_NNI_STAT_ID_TX_MULTICAST_FRAMES:
+                break;
+            case BCMOLT_NNI_STAT_ID_TX_BROADCAST_FRAMES:
+                break;
+            case BCMOLT_NNI_STAT_ID_TX_PAUSE_FRAMES:
+                break;
+            case BCMOLT_NNI_STAT_ID_TX_PFC_FRAMES:
+                break;
+            case BCMOLT_NNI_STAT_ID_TX_JABBER_FRAMES:
+                break;
+            case BCMOLT_NNI_STAT_ID_TX_FCS_ERRORS:
+                break;
+            case BCMOLT_NNI_STAT_ID_TX_CONTROL_FRAMES:
+                break;
+            case BCMOLT_NNI_STAT_ID_TX_OVERSIZE_FRAMES:
+                break;
+            case BCMOLT_NNI_STAT_ID_TX_FRAGMENTED_FRAMES:
+                break;
+            case BCMOLT_NNI_STAT_ID_TX_ERROR_FRAMES:
+                break;
+            case BCMOLT_NNI_STAT_ID_TX_VLAN_FRAMES:
+                break;
+            case BCMOLT_NNI_STAT_ID_TX_DOUBLE_VLAN_FRAMES:
+                break;
+            case BCMOLT_NNI_STAT_ID_TX_RUNT_FRAMES:
+                break;
+            case BCMOLT_NNI_STAT_ID_TX_UNDERRUN_FRAMES:
+                break;
+            default:
+                *failed_prop = BCMOLT_NNI_STAT_ALARM_CLEARED_ID_STAT;
+                return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_nni_stat_alarm_raised_data_set_default(bcmolt_nni_stat_alarm_raised_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ALARM_RAISED_ID_STAT)) != 0)
+    {
+        this->stat = BCMOLT_NNI_STAT_ID_RX_FRAMES_64;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_nni_stat_alarm_raised_data_pack(const bcmolt_nni_stat_alarm_raised_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ALARM_RAISED_ID_STAT)) != 0)
+    {
+        if (!bcmolt_nni_stat_id_pack(this->stat, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_nni_stat_alarm_raised_data_get_packed_length(const bcmolt_nni_stat_alarm_raised_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ALARM_RAISED_ID_STAT)) != 0)
+    {
+        count += 2;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_nni_stat_alarm_raised_data_unpack(bcmolt_nni_stat_alarm_raised_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ALARM_RAISED_ID_STAT)) != 0)
+    {
+        if (!bcmolt_nni_stat_id_unpack(&this->stat, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_nni_stat_alarm_raised_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ALARM_RAISED_ID_STAT)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 2))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_nni_stat_alarm_raised_data_bounds_check(const bcmolt_nni_stat_alarm_raised_data *this, bcmolt_presence_mask fields_present, bcmolt_nni_stat_alarm_raised_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_NNI_STAT_ALARM_RAISED_ID_STAT)) != 0)
+    {
+        switch (this->stat)
+        {
+            case BCMOLT_NNI_STAT_ID_RX_FRAMES_64:
+                break;
+            case BCMOLT_NNI_STAT_ID_RX_FRAMES_65_127:
+                break;
+            case BCMOLT_NNI_STAT_ID_RX_FRAMES_128_255:
+                break;
+            case BCMOLT_NNI_STAT_ID_RX_FRAMES_256_511:
+                break;
+            case BCMOLT_NNI_STAT_ID_RX_FRAMES_512_1023:
+                break;
+            case BCMOLT_NNI_STAT_ID_RX_FRAMES_1024_1518:
+                break;
+            case BCMOLT_NNI_STAT_ID_RX_FRAMES_1519_2047:
+                break;
+            case BCMOLT_NNI_STAT_ID_RX_FRAMES_2048_4095:
+                break;
+            case BCMOLT_NNI_STAT_ID_RX_FRAMES_4096_9216:
+                break;
+            case BCMOLT_NNI_STAT_ID_RX_FRAMES_9217_16383:
+                break;
+            case BCMOLT_NNI_STAT_ID_RX_FRAMES:
+                break;
+            case BCMOLT_NNI_STAT_ID_RX_BYTES:
+                break;
+            case BCMOLT_NNI_STAT_ID_RX_GOOD_FRAMES:
+                break;
+            case BCMOLT_NNI_STAT_ID_RX_UNICAST_FRAMES:
+                break;
+            case BCMOLT_NNI_STAT_ID_RX_MULTICAST_FRAMES:
+                break;
+            case BCMOLT_NNI_STAT_ID_RX_BROADCAST_FRAMES:
+                break;
+            case BCMOLT_NNI_STAT_ID_RX_FCS_ERRORS:
+                break;
+            case BCMOLT_NNI_STAT_ID_RX_CONTROL_FRAMES:
+                break;
+            case BCMOLT_NNI_STAT_ID_RX_PAUSE_FRAMES:
+                break;
+            case BCMOLT_NNI_STAT_ID_RX_PFC_FRAMES:
+                break;
+            case BCMOLT_NNI_STAT_ID_RX_UNSUPPORTED_OPCODE:
+                break;
+            case BCMOLT_NNI_STAT_ID_RX_UNSUPPORTED_DA:
+                break;
+            case BCMOLT_NNI_STAT_ID_RX_ALIGNMENT_ERRORS:
+                break;
+            case BCMOLT_NNI_STAT_ID_RX_LENGTH_OUT_OF_RANGE:
+                break;
+            case BCMOLT_NNI_STAT_ID_RX_CODE_ERRORS:
+                break;
+            case BCMOLT_NNI_STAT_ID_RX_OVERSIZED_FRAMES:
+                break;
+            case BCMOLT_NNI_STAT_ID_RX_JABBER_FRAMES:
+                break;
+            case BCMOLT_NNI_STAT_ID_RX_MTU_CHECK_ERRORS:
+                break;
+            case BCMOLT_NNI_STAT_ID_RX_PROMISCUOUS_FRAMES:
+                break;
+            case BCMOLT_NNI_STAT_ID_RX_VLAN_FRAMES:
+                break;
+            case BCMOLT_NNI_STAT_ID_RX_DOUBLE_VLAN_FRAMES:
+                break;
+            case BCMOLT_NNI_STAT_ID_RX_TRUNCATED_FRAMES:
+                break;
+            case BCMOLT_NNI_STAT_ID_RX_UNDERSIZE_FRAMES:
+                break;
+            case BCMOLT_NNI_STAT_ID_RX_FRAGMENTED_FRAMES:
+                break;
+            case BCMOLT_NNI_STAT_ID_RX_RUNT_FRAMES:
+                break;
+            case BCMOLT_NNI_STAT_ID_TX_FRAMES_64:
+                break;
+            case BCMOLT_NNI_STAT_ID_TX_FRAMES_65_127:
+                break;
+            case BCMOLT_NNI_STAT_ID_TX_FRAMES_128_255:
+                break;
+            case BCMOLT_NNI_STAT_ID_TX_FRAMES_256_511:
+                break;
+            case BCMOLT_NNI_STAT_ID_TX_FRAMES_512_1023:
+                break;
+            case BCMOLT_NNI_STAT_ID_TX_FRAMES_1024_1518:
+                break;
+            case BCMOLT_NNI_STAT_ID_TX_FRAMES_1519_2047:
+                break;
+            case BCMOLT_NNI_STAT_ID_TX_FRAMES_2048_4095:
+                break;
+            case BCMOLT_NNI_STAT_ID_TX_FRAMES_4096_9216:
+                break;
+            case BCMOLT_NNI_STAT_ID_TX_FRAMES_9217_16383:
+                break;
+            case BCMOLT_NNI_STAT_ID_TX_FRAMES:
+                break;
+            case BCMOLT_NNI_STAT_ID_TX_BYTES:
+                break;
+            case BCMOLT_NNI_STAT_ID_TX_GOOD_FRAMES:
+                break;
+            case BCMOLT_NNI_STAT_ID_TX_UNICAST_FRAMES:
+                break;
+            case BCMOLT_NNI_STAT_ID_TX_MULTICAST_FRAMES:
+                break;
+            case BCMOLT_NNI_STAT_ID_TX_BROADCAST_FRAMES:
+                break;
+            case BCMOLT_NNI_STAT_ID_TX_PAUSE_FRAMES:
+                break;
+            case BCMOLT_NNI_STAT_ID_TX_PFC_FRAMES:
+                break;
+            case BCMOLT_NNI_STAT_ID_TX_JABBER_FRAMES:
+                break;
+            case BCMOLT_NNI_STAT_ID_TX_FCS_ERRORS:
+                break;
+            case BCMOLT_NNI_STAT_ID_TX_CONTROL_FRAMES:
+                break;
+            case BCMOLT_NNI_STAT_ID_TX_OVERSIZE_FRAMES:
+                break;
+            case BCMOLT_NNI_STAT_ID_TX_FRAGMENTED_FRAMES:
+                break;
+            case BCMOLT_NNI_STAT_ID_TX_ERROR_FRAMES:
+                break;
+            case BCMOLT_NNI_STAT_ID_TX_VLAN_FRAMES:
+                break;
+            case BCMOLT_NNI_STAT_ID_TX_DOUBLE_VLAN_FRAMES:
+                break;
+            case BCMOLT_NNI_STAT_ID_TX_RUNT_FRAMES:
+                break;
+            case BCMOLT_NNI_STAT_ID_TX_UNDERRUN_FRAMES:
+                break;
+            default:
+                *failed_prop = BCMOLT_NNI_STAT_ALARM_RAISED_ID_STAT;
+                return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_nni_status_changed_data_set_default(bcmolt_nni_status_changed_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_NNI_STATUS_CHANGED_ID_NEW_STATUS)) != 0)
+    {
+        this->new_status = BCMOLT_STATUS_OFF;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STATUS_CHANGED_ID_LINK)) != 0)
+    {
+        this->link = BCMOLT_NNI_CONNECTION_PRIMARY;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STATUS_CHANGED_ID_PREVIOUS_ACTIVE)) != 0)
+    {
+        this->previous_active = BCMOLT_NNI_CONNECTION_PRIMARY;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STATUS_CHANGED_ID_NEW_ACTIVE)) != 0)
+    {
+        this->new_active = BCMOLT_NNI_CONNECTION_PRIMARY;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_nni_status_changed_data_pack(const bcmolt_nni_status_changed_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_NNI_STATUS_CHANGED_ID_NEW_STATUS)) != 0)
+    {
+        if (!bcmolt_status_pack(this->new_status, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STATUS_CHANGED_ID_LINK)) != 0)
+    {
+        if (!bcmolt_nni_connection_pack(this->link, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STATUS_CHANGED_ID_PREVIOUS_ACTIVE)) != 0)
+    {
+        if (!bcmolt_nni_connection_pack(this->previous_active, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STATUS_CHANGED_ID_NEW_ACTIVE)) != 0)
+    {
+        if (!bcmolt_nni_connection_pack(this->new_active, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_nni_status_changed_data_get_packed_length(const bcmolt_nni_status_changed_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_NNI_STATUS_CHANGED_ID_NEW_STATUS)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STATUS_CHANGED_ID_LINK)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STATUS_CHANGED_ID_PREVIOUS_ACTIVE)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STATUS_CHANGED_ID_NEW_ACTIVE)) != 0)
+    {
+        count += 1;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_nni_status_changed_data_unpack(bcmolt_nni_status_changed_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_NNI_STATUS_CHANGED_ID_NEW_STATUS)) != 0)
+    {
+        if (!bcmolt_status_unpack(&this->new_status, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STATUS_CHANGED_ID_LINK)) != 0)
+    {
+        if (!bcmolt_nni_connection_unpack(&this->link, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STATUS_CHANGED_ID_PREVIOUS_ACTIVE)) != 0)
+    {
+        if (!bcmolt_nni_connection_unpack(&this->previous_active, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STATUS_CHANGED_ID_NEW_ACTIVE)) != 0)
+    {
+        if (!bcmolt_nni_connection_unpack(&this->new_active, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_nni_status_changed_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_NNI_STATUS_CHANGED_ID_NEW_STATUS)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STATUS_CHANGED_ID_LINK)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STATUS_CHANGED_ID_PREVIOUS_ACTIVE)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STATUS_CHANGED_ID_NEW_ACTIVE)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_nni_status_changed_data_bounds_check(const bcmolt_nni_status_changed_data *this, bcmolt_presence_mask fields_present, bcmolt_nni_status_changed_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_NNI_STATUS_CHANGED_ID_NEW_STATUS)) != 0)
+    {
+        switch (this->new_status)
+        {
+            case BCMOLT_STATUS_OFF:
+                break;
+            case BCMOLT_STATUS_ON:
+                break;
+            case BCMOLT_STATUS_NO_CHANGE:
+                break;
+            default:
+                *failed_prop = BCMOLT_NNI_STATUS_CHANGED_ID_NEW_STATUS;
+                return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STATUS_CHANGED_ID_LINK)) != 0)
+    {
+        switch (this->link)
+        {
+            case BCMOLT_NNI_CONNECTION_PRIMARY:
+                break;
+            case BCMOLT_NNI_CONNECTION_BACKUP:
+                break;
+            default:
+                *failed_prop = BCMOLT_NNI_STATUS_CHANGED_ID_LINK;
+                return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STATUS_CHANGED_ID_PREVIOUS_ACTIVE)) != 0)
+    {
+        switch (this->previous_active)
+        {
+            case BCMOLT_NNI_CONNECTION_PRIMARY:
+                break;
+            case BCMOLT_NNI_CONNECTION_BACKUP:
+                break;
+            default:
+                *failed_prop = BCMOLT_NNI_STATUS_CHANGED_ID_PREVIOUS_ACTIVE;
+                return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_STATUS_CHANGED_ID_NEW_ACTIVE)) != 0)
+    {
+        switch (this->new_active)
+        {
+            case BCMOLT_NNI_CONNECTION_PRIMARY:
+                break;
+            case BCMOLT_NNI_CONNECTION_BACKUP:
+                break;
+            default:
+                *failed_prop = BCMOLT_NNI_STATUS_CHANGED_ID_NEW_ACTIVE;
+                return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_nni_auto_cfg_data_set_default(bcmolt_nni_auto_cfg_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_NNI_AUTO_CFG_ID_STAT_ALARM_CLEARED)) != 0)
+    {
+        this->stat_alarm_cleared = BCMOS_FALSE;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_AUTO_CFG_ID_STAT_ALARM_RAISED)) != 0)
+    {
+        this->stat_alarm_raised = BCMOS_FALSE;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_AUTO_CFG_ID_STATUS_CHANGED)) != 0)
+    {
+        this->status_changed = BCMOS_FALSE;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_nni_auto_cfg_data_pack(const bcmolt_nni_auto_cfg_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_NNI_AUTO_CFG_ID_STAT_ALARM_CLEARED)) != 0)
+    {
+        if (!bcmolt_buf_write_bool(buf, this->stat_alarm_cleared))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_AUTO_CFG_ID_STAT_ALARM_RAISED)) != 0)
+    {
+        if (!bcmolt_buf_write_bool(buf, this->stat_alarm_raised))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_AUTO_CFG_ID_STATUS_CHANGED)) != 0)
+    {
+        if (!bcmolt_buf_write_bool(buf, this->status_changed))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_nni_auto_cfg_data_get_packed_length(const bcmolt_nni_auto_cfg_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_NNI_AUTO_CFG_ID_STAT_ALARM_CLEARED)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_AUTO_CFG_ID_STAT_ALARM_RAISED)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_AUTO_CFG_ID_STATUS_CHANGED)) != 0)
+    {
+        count += 1;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_nni_auto_cfg_data_unpack(bcmolt_nni_auto_cfg_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_NNI_AUTO_CFG_ID_STAT_ALARM_CLEARED)) != 0)
+    {
+        if (!bcmolt_buf_read_bool(buf, &this->stat_alarm_cleared))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_AUTO_CFG_ID_STAT_ALARM_RAISED)) != 0)
+    {
+        if (!bcmolt_buf_read_bool(buf, &this->stat_alarm_raised))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_AUTO_CFG_ID_STATUS_CHANGED)) != 0)
+    {
+        if (!bcmolt_buf_read_bool(buf, &this->status_changed))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_nni_auto_cfg_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_NNI_AUTO_CFG_ID_STAT_ALARM_CLEARED)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_AUTO_CFG_ID_STAT_ALARM_RAISED)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_AUTO_CFG_ID_STATUS_CHANGED)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_nni_auto_cfg_data_bounds_check(const bcmolt_nni_auto_cfg_data *this, bcmolt_presence_mask fields_present, bcmolt_nni_auto_cfg_id *failed_prop)
+{
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_nni_serdes_key_set_default(bcmolt_nni_serdes_key *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_NNI_SERDES_KEY_ID_PON_NI)) != 0)
+    {
+        this->pon_ni = (bcmolt_pon_ni) 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_SERDES_KEY_ID_INSTANCE)) != 0)
+    {
+        this->instance = BCMOLT_SERDES_INSTANCE_INSTANCE_0;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_nni_serdes_key_pack(const bcmolt_nni_serdes_key *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_NNI_SERDES_KEY_ID_PON_NI)) != 0)
+    {
+        if (!bcmolt_buf_write_u8(buf, (uint8_t) this->pon_ni))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_SERDES_KEY_ID_INSTANCE)) != 0)
+    {
+        if (!bcmolt_serdes_instance_pack(this->instance, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_nni_serdes_key_get_packed_length(const bcmolt_nni_serdes_key *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_NNI_SERDES_KEY_ID_PON_NI)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_SERDES_KEY_ID_INSTANCE)) != 0)
+    {
+        count += 1;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_nni_serdes_key_unpack(bcmolt_nni_serdes_key *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_NNI_SERDES_KEY_ID_PON_NI)) != 0)
+    {
+        if (!bcmolt_buf_read_u8(buf, (uint8_t *) &this->pon_ni))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_SERDES_KEY_ID_INSTANCE)) != 0)
+    {
+        if (!bcmolt_serdes_instance_unpack(&this->instance, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_nni_serdes_key_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_NNI_SERDES_KEY_ID_PON_NI)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_SERDES_KEY_ID_INSTANCE)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_nni_serdes_key_bounds_check(const bcmolt_nni_serdes_key *this, bcmolt_presence_mask fields_present, bcmolt_nni_serdes_key_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_NNI_SERDES_KEY_ID_PON_NI)) != 0)
+    {
+        if (this->pon_ni > (bcmolt_pon_ni) 15)
+        {
+            *failed_prop = BCMOLT_NNI_SERDES_KEY_ID_PON_NI;
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_SERDES_KEY_ID_INSTANCE)) != 0)
+    {
+        switch (this->instance)
+        {
+            case BCMOLT_SERDES_INSTANCE_INSTANCE_0:
+                break;
+            case BCMOLT_SERDES_INSTANCE_INSTANCE_1:
+                break;
+            default:
+                *failed_prop = BCMOLT_NNI_SERDES_KEY_ID_INSTANCE;
+                return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_nni_serdes_cfg_data_set_default(bcmolt_nni_serdes_cfg_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_NNI_SERDES_CFG_ID_RX_VGA)) != 0)
+    {
+        this->rx_vga = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_SERDES_CFG_ID_RX_PF)) != 0)
+    {
+        this->rx_pf = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_SERDES_CFG_ID_RX_LFPF)) != 0)
+    {
+        this->rx_lfpf = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_SERDES_CFG_ID_RX_DFE1)) != 0)
+    {
+        this->rx_dfe1 = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_SERDES_CFG_ID_RX_DFE2)) != 0)
+    {
+        this->rx_dfe2 = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_SERDES_CFG_ID_RX_DFE3)) != 0)
+    {
+        this->rx_dfe3 = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_SERDES_CFG_ID_RX_DFE4)) != 0)
+    {
+        this->rx_dfe4 = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_SERDES_CFG_ID_RX_DFE5)) != 0)
+    {
+        this->rx_dfe5 = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_SERDES_CFG_ID_TX_PRE)) != 0)
+    {
+        this->tx_pre = 12;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_SERDES_CFG_ID_TX_MAIN)) != 0)
+    {
+        this->tx_main = 102;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_SERDES_CFG_ID_TX_POST1)) != 0)
+    {
+        this->tx_post1 = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_SERDES_CFG_ID_TX_POST2)) != 0)
+    {
+        this->tx_post2 = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_SERDES_CFG_ID_TX_POST3)) != 0)
+    {
+        this->tx_post3 = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_SERDES_CFG_ID_TX_AMP)) != 0)
+    {
+        this->tx_amp = 12;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_nni_serdes_cfg_data_pack(const bcmolt_nni_serdes_cfg_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_NNI_SERDES_CFG_ID_RX_VGA)) != 0)
+    {
+        if (!bcmolt_buf_write_u8(buf, this->rx_vga))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_SERDES_CFG_ID_RX_PF)) != 0)
+    {
+        if (!bcmolt_buf_write_u8(buf, this->rx_pf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_SERDES_CFG_ID_RX_LFPF)) != 0)
+    {
+        if (!bcmolt_buf_write_u8(buf, this->rx_lfpf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_SERDES_CFG_ID_RX_DFE1)) != 0)
+    {
+        if (!bcmolt_buf_write_u8(buf, this->rx_dfe1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_SERDES_CFG_ID_RX_DFE2)) != 0)
+    {
+        if (!bcmolt_buf_write_s8(buf, this->rx_dfe2))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_SERDES_CFG_ID_RX_DFE3)) != 0)
+    {
+        if (!bcmolt_buf_write_s8(buf, this->rx_dfe3))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_SERDES_CFG_ID_RX_DFE4)) != 0)
+    {
+        if (!bcmolt_buf_write_s8(buf, this->rx_dfe4))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_SERDES_CFG_ID_RX_DFE5)) != 0)
+    {
+        if (!bcmolt_buf_write_s8(buf, this->rx_dfe5))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_SERDES_CFG_ID_TX_PRE)) != 0)
+    {
+        if (!bcmolt_buf_write_u8(buf, this->tx_pre))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_SERDES_CFG_ID_TX_MAIN)) != 0)
+    {
+        if (!bcmolt_buf_write_u8(buf, this->tx_main))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_SERDES_CFG_ID_TX_POST1)) != 0)
+    {
+        if (!bcmolt_buf_write_u8(buf, this->tx_post1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_SERDES_CFG_ID_TX_POST2)) != 0)
+    {
+        if (!bcmolt_buf_write_s8(buf, this->tx_post2))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_SERDES_CFG_ID_TX_POST3)) != 0)
+    {
+        if (!bcmolt_buf_write_s8(buf, this->tx_post3))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_SERDES_CFG_ID_TX_AMP)) != 0)
+    {
+        if (!bcmolt_buf_write_u8(buf, this->tx_amp))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_nni_serdes_cfg_data_get_packed_length(const bcmolt_nni_serdes_cfg_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_NNI_SERDES_CFG_ID_RX_VGA)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_SERDES_CFG_ID_RX_PF)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_SERDES_CFG_ID_RX_LFPF)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_SERDES_CFG_ID_RX_DFE1)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_SERDES_CFG_ID_RX_DFE2)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_SERDES_CFG_ID_RX_DFE3)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_SERDES_CFG_ID_RX_DFE4)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_SERDES_CFG_ID_RX_DFE5)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_SERDES_CFG_ID_TX_PRE)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_SERDES_CFG_ID_TX_MAIN)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_SERDES_CFG_ID_TX_POST1)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_SERDES_CFG_ID_TX_POST2)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_SERDES_CFG_ID_TX_POST3)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_SERDES_CFG_ID_TX_AMP)) != 0)
+    {
+        count += 1;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_nni_serdes_cfg_data_unpack(bcmolt_nni_serdes_cfg_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_NNI_SERDES_CFG_ID_RX_VGA)) != 0)
+    {
+        if (!bcmolt_buf_read_u8(buf, &this->rx_vga))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_SERDES_CFG_ID_RX_PF)) != 0)
+    {
+        if (!bcmolt_buf_read_u8(buf, &this->rx_pf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_SERDES_CFG_ID_RX_LFPF)) != 0)
+    {
+        if (!bcmolt_buf_read_u8(buf, &this->rx_lfpf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_SERDES_CFG_ID_RX_DFE1)) != 0)
+    {
+        if (!bcmolt_buf_read_u8(buf, &this->rx_dfe1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_SERDES_CFG_ID_RX_DFE2)) != 0)
+    {
+        if (!bcmolt_buf_read_s8(buf, &this->rx_dfe2))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_SERDES_CFG_ID_RX_DFE3)) != 0)
+    {
+        if (!bcmolt_buf_read_s8(buf, &this->rx_dfe3))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_SERDES_CFG_ID_RX_DFE4)) != 0)
+    {
+        if (!bcmolt_buf_read_s8(buf, &this->rx_dfe4))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_SERDES_CFG_ID_RX_DFE5)) != 0)
+    {
+        if (!bcmolt_buf_read_s8(buf, &this->rx_dfe5))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_SERDES_CFG_ID_TX_PRE)) != 0)
+    {
+        if (!bcmolt_buf_read_u8(buf, &this->tx_pre))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_SERDES_CFG_ID_TX_MAIN)) != 0)
+    {
+        if (!bcmolt_buf_read_u8(buf, &this->tx_main))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_SERDES_CFG_ID_TX_POST1)) != 0)
+    {
+        if (!bcmolt_buf_read_u8(buf, &this->tx_post1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_SERDES_CFG_ID_TX_POST2)) != 0)
+    {
+        if (!bcmolt_buf_read_s8(buf, &this->tx_post2))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_SERDES_CFG_ID_TX_POST3)) != 0)
+    {
+        if (!bcmolt_buf_read_s8(buf, &this->tx_post3))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_SERDES_CFG_ID_TX_AMP)) != 0)
+    {
+        if (!bcmolt_buf_read_u8(buf, &this->tx_amp))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_nni_serdes_cfg_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_NNI_SERDES_CFG_ID_RX_VGA)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_SERDES_CFG_ID_RX_PF)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_SERDES_CFG_ID_RX_LFPF)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_SERDES_CFG_ID_RX_DFE1)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_SERDES_CFG_ID_RX_DFE2)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_SERDES_CFG_ID_RX_DFE3)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_SERDES_CFG_ID_RX_DFE4)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_SERDES_CFG_ID_RX_DFE5)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_SERDES_CFG_ID_TX_PRE)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_SERDES_CFG_ID_TX_MAIN)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_SERDES_CFG_ID_TX_POST1)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_SERDES_CFG_ID_TX_POST2)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_SERDES_CFG_ID_TX_POST3)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_SERDES_CFG_ID_TX_AMP)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_nni_serdes_cfg_data_bounds_check(const bcmolt_nni_serdes_cfg_data *this, bcmolt_presence_mask fields_present, bcmolt_nni_serdes_cfg_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_NNI_SERDES_CFG_ID_RX_VGA)) != 0)
+    {
+        if (this->rx_vga > 45)
+        {
+            *failed_prop = BCMOLT_NNI_SERDES_CFG_ID_RX_VGA;
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_SERDES_CFG_ID_RX_PF)) != 0)
+    {
+        if (this->rx_pf > 15)
+        {
+            *failed_prop = BCMOLT_NNI_SERDES_CFG_ID_RX_PF;
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_SERDES_CFG_ID_RX_LFPF)) != 0)
+    {
+        if (this->rx_lfpf > 7)
+        {
+            *failed_prop = BCMOLT_NNI_SERDES_CFG_ID_RX_LFPF;
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_SERDES_CFG_ID_RX_DFE1)) != 0)
+    {
+        if (this->rx_dfe1 > 63)
+        {
+            *failed_prop = BCMOLT_NNI_SERDES_CFG_ID_RX_DFE1;
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_SERDES_CFG_ID_RX_DFE2)) != 0)
+    {
+        if (this->rx_dfe2 < -31)
+        {
+            *failed_prop = BCMOLT_NNI_SERDES_CFG_ID_RX_DFE2;
+            return BCMOS_FALSE;
+        }
+
+        if (this->rx_dfe2 > 31)
+        {
+            *failed_prop = BCMOLT_NNI_SERDES_CFG_ID_RX_DFE2;
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_SERDES_CFG_ID_RX_DFE3)) != 0)
+    {
+        if (this->rx_dfe3 < -31)
+        {
+            *failed_prop = BCMOLT_NNI_SERDES_CFG_ID_RX_DFE3;
+            return BCMOS_FALSE;
+        }
+
+        if (this->rx_dfe3 > 31)
+        {
+            *failed_prop = BCMOLT_NNI_SERDES_CFG_ID_RX_DFE3;
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_SERDES_CFG_ID_RX_DFE4)) != 0)
+    {
+        if (this->rx_dfe4 < -15)
+        {
+            *failed_prop = BCMOLT_NNI_SERDES_CFG_ID_RX_DFE4;
+            return BCMOS_FALSE;
+        }
+
+        if (this->rx_dfe4 > 15)
+        {
+            *failed_prop = BCMOLT_NNI_SERDES_CFG_ID_RX_DFE4;
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_SERDES_CFG_ID_RX_DFE5)) != 0)
+    {
+        if (this->rx_dfe5 < -15)
+        {
+            *failed_prop = BCMOLT_NNI_SERDES_CFG_ID_RX_DFE5;
+            return BCMOS_FALSE;
+        }
+
+        if (this->rx_dfe5 > 15)
+        {
+            *failed_prop = BCMOLT_NNI_SERDES_CFG_ID_RX_DFE5;
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_SERDES_CFG_ID_TX_PRE)) != 0)
+    {
+        if (this->tx_pre > 31)
+        {
+            *failed_prop = BCMOLT_NNI_SERDES_CFG_ID_TX_PRE;
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_SERDES_CFG_ID_TX_MAIN)) != 0)
+    {
+        if (this->tx_main > 112)
+        {
+            *failed_prop = BCMOLT_NNI_SERDES_CFG_ID_TX_MAIN;
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_SERDES_CFG_ID_TX_POST1)) != 0)
+    {
+        if (this->tx_post1 > 63)
+        {
+            *failed_prop = BCMOLT_NNI_SERDES_CFG_ID_TX_POST1;
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_SERDES_CFG_ID_TX_POST2)) != 0)
+    {
+        if (this->tx_post2 < -15)
+        {
+            *failed_prop = BCMOLT_NNI_SERDES_CFG_ID_TX_POST2;
+            return BCMOS_FALSE;
+        }
+
+        if (this->tx_post2 > 15)
+        {
+            *failed_prop = BCMOLT_NNI_SERDES_CFG_ID_TX_POST2;
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_SERDES_CFG_ID_TX_POST3)) != 0)
+    {
+        if (this->tx_post3 < -7)
+        {
+            *failed_prop = BCMOLT_NNI_SERDES_CFG_ID_TX_POST3;
+            return BCMOS_FALSE;
+        }
+
+        if (this->tx_post3 > 7)
+        {
+            *failed_prop = BCMOLT_NNI_SERDES_CFG_ID_TX_POST3;
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_NNI_SERDES_CFG_ID_TX_AMP)) != 0)
+    {
+        if (this->tx_amp > 15)
+        {
+            *failed_prop = BCMOLT_NNI_SERDES_CFG_ID_TX_AMP;
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_software_error_key_set_default(bcmolt_software_error_key *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_SOFTWARE_ERROR_KEY_ID_RESERVED)) != 0)
+    {
+        this->reserved = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_SOFTWARE_ERROR_KEY_ID_IDX)) != 0)
+    {
+        this->idx = 0;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_software_error_key_pack(const bcmolt_software_error_key *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_SOFTWARE_ERROR_KEY_ID_RESERVED)) != 0)
+    {
+        if (!bcmolt_buf_write_u32(buf, this->reserved))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_SOFTWARE_ERROR_KEY_ID_IDX)) != 0)
+    {
+        if (!bcmolt_buf_write_u32(buf, this->idx))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_software_error_key_get_packed_length(const bcmolt_software_error_key *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_SOFTWARE_ERROR_KEY_ID_RESERVED)) != 0)
+    {
+        count += 4;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_SOFTWARE_ERROR_KEY_ID_IDX)) != 0)
+    {
+        count += 4;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_software_error_key_unpack(bcmolt_software_error_key *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_SOFTWARE_ERROR_KEY_ID_RESERVED)) != 0)
+    {
+        if (!bcmolt_buf_read_u32(buf, &this->reserved))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_SOFTWARE_ERROR_KEY_ID_IDX)) != 0)
+    {
+        if (!bcmolt_buf_read_u32(buf, &this->idx))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_software_error_key_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_SOFTWARE_ERROR_KEY_ID_RESERVED)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 4))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_SOFTWARE_ERROR_KEY_ID_IDX)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 4))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_software_error_key_bounds_check(const bcmolt_software_error_key *this, bcmolt_presence_mask fields_present, bcmolt_software_error_key_id *failed_prop)
+{
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_software_error_cfg_data_set_default(bcmolt_software_error_cfg_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_SOFTWARE_ERROR_CFG_ID_ENTRY)) != 0)
+    {
+        this->entry.first_error_time_us = 0;
+        this->entry.last_error_time_us = 0;
+        this->entry.line_number = 0;
+        this->entry.error_counter = 0;
+        this->entry.instance = 0;
+        memset(this->entry.filename, 0, 64);
+        memset(this->entry.task_name, 0, 64);
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_software_error_cfg_data_pack(const bcmolt_software_error_cfg_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_SOFTWARE_ERROR_CFG_ID_ENTRY)) != 0)
+    {
+        if (!bcmolt_sw_error_pack(&this->entry, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_software_error_cfg_data_get_packed_length(const bcmolt_software_error_cfg_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_SOFTWARE_ERROR_CFG_ID_ENTRY)) != 0)
+    {
+        count += 156;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_software_error_cfg_data_unpack(bcmolt_software_error_cfg_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_SOFTWARE_ERROR_CFG_ID_ENTRY)) != 0)
+    {
+        if (!bcmolt_sw_error_unpack(&this->entry, buf, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_software_error_cfg_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_SOFTWARE_ERROR_CFG_ID_ENTRY)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 156))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_software_error_cfg_data_bounds_check(const bcmolt_software_error_cfg_data *this, bcmolt_presence_mask fields_present, bcmolt_software_error_cfg_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_SOFTWARE_ERROR_CFG_ID_ENTRY)) != 0)
+    {
+        if (!bcmolt_sw_error_bounds_check(&this->entry))
+        {
+            *failed_prop = BCMOLT_SOFTWARE_ERROR_CFG_ID_ENTRY;
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_trx_calibration_key_set_default(bcmolt_trx_calibration_key *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_TRX_CALIBRATION_KEY_ID_RESERVED)) != 0)
+    {
+        this->reserved = 0;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_trx_calibration_key_pack(const bcmolt_trx_calibration_key *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_TRX_CALIBRATION_KEY_ID_RESERVED)) != 0)
+    {
+        if (!bcmolt_buf_write_u32(buf, this->reserved))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_trx_calibration_key_get_packed_length(const bcmolt_trx_calibration_key *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_TRX_CALIBRATION_KEY_ID_RESERVED)) != 0)
+    {
+        count += 4;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_trx_calibration_key_unpack(bcmolt_trx_calibration_key *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_TRX_CALIBRATION_KEY_ID_RESERVED)) != 0)
+    {
+        if (!bcmolt_buf_read_u32(buf, &this->reserved))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_trx_calibration_key_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_TRX_CALIBRATION_KEY_ID_RESERVED)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 4))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_trx_calibration_key_bounds_check(const bcmolt_trx_calibration_key *this, bcmolt_presence_mask fields_present, bcmolt_trx_calibration_key_id *failed_prop)
+{
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_trx_calibration_capture_window_and_statistic_completed_data_set_default(bcmolt_trx_calibration_capture_window_and_statistic_completed_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_TRX_CALIBRATION_CAPTURE_WINDOW_AND_STATISTIC_COMPLETED_ID_DATA_WINDOW)) != 0)
+    {
+        this->data_window.len = 0;
+        this->data_window.val = NULL;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_TRX_CALIBRATION_CAPTURE_WINDOW_AND_STATISTIC_COMPLETED_ID_STROBE_WINDOW)) != 0)
+    {
+        this->strobe_window.len = 0;
+        this->strobe_window.val = NULL;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_TRX_CALIBRATION_CAPTURE_WINDOW_AND_STATISTIC_COMPLETED_ID_EDGE_RISE_MIN_MIN)) != 0)
+    {
+        this->edge_rise_min_min = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_TRX_CALIBRATION_CAPTURE_WINDOW_AND_STATISTIC_COMPLETED_ID_EDGE_RISE_MIN_MAX)) != 0)
+    {
+        this->edge_rise_min_max = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_TRX_CALIBRATION_CAPTURE_WINDOW_AND_STATISTIC_COMPLETED_ID_EDGE_RISE_MAX_MIN)) != 0)
+    {
+        this->edge_rise_max_min = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_TRX_CALIBRATION_CAPTURE_WINDOW_AND_STATISTIC_COMPLETED_ID_EDGE_RISE_MAX_MAX)) != 0)
+    {
+        this->edge_rise_max_max = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_TRX_CALIBRATION_CAPTURE_WINDOW_AND_STATISTIC_COMPLETED_ID_EDGE_FALL_MIN_MIN)) != 0)
+    {
+        this->edge_fall_min_min = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_TRX_CALIBRATION_CAPTURE_WINDOW_AND_STATISTIC_COMPLETED_ID_EDGE_FALL_MIN_MAX)) != 0)
+    {
+        this->edge_fall_min_max = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_TRX_CALIBRATION_CAPTURE_WINDOW_AND_STATISTIC_COMPLETED_ID_EDGE_FALL_MAX_MIN)) != 0)
+    {
+        this->edge_fall_max_min = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_TRX_CALIBRATION_CAPTURE_WINDOW_AND_STATISTIC_COMPLETED_ID_EDGE_FALL_MAX_MAX)) != 0)
+    {
+        this->edge_fall_max_max = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_TRX_CALIBRATION_CAPTURE_WINDOW_AND_STATISTIC_COMPLETED_ID_RESULT)) != 0)
+    {
+        this->result = BCMOLT_RESULT_SUCCESS;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_trx_calibration_capture_window_and_statistic_completed_data_pack(const bcmolt_trx_calibration_capture_window_and_statistic_completed_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_TRX_CALIBRATION_CAPTURE_WINDOW_AND_STATISTIC_COMPLETED_ID_DATA_WINDOW)) != 0)
+    {
+        if (!bcmolt_u32_list_u32_max_500_hex_pack(&this->data_window, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_TRX_CALIBRATION_CAPTURE_WINDOW_AND_STATISTIC_COMPLETED_ID_STROBE_WINDOW)) != 0)
+    {
+        if (!bcmolt_u32_list_u32_max_500_hex_pack(&this->strobe_window, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_TRX_CALIBRATION_CAPTURE_WINDOW_AND_STATISTIC_COMPLETED_ID_EDGE_RISE_MIN_MIN)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->edge_rise_min_min))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_TRX_CALIBRATION_CAPTURE_WINDOW_AND_STATISTIC_COMPLETED_ID_EDGE_RISE_MIN_MAX)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->edge_rise_min_max))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_TRX_CALIBRATION_CAPTURE_WINDOW_AND_STATISTIC_COMPLETED_ID_EDGE_RISE_MAX_MIN)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->edge_rise_max_min))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_TRX_CALIBRATION_CAPTURE_WINDOW_AND_STATISTIC_COMPLETED_ID_EDGE_RISE_MAX_MAX)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->edge_rise_max_max))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_TRX_CALIBRATION_CAPTURE_WINDOW_AND_STATISTIC_COMPLETED_ID_EDGE_FALL_MIN_MIN)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->edge_fall_min_min))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_TRX_CALIBRATION_CAPTURE_WINDOW_AND_STATISTIC_COMPLETED_ID_EDGE_FALL_MIN_MAX)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->edge_fall_min_max))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_TRX_CALIBRATION_CAPTURE_WINDOW_AND_STATISTIC_COMPLETED_ID_EDGE_FALL_MAX_MIN)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->edge_fall_max_min))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_TRX_CALIBRATION_CAPTURE_WINDOW_AND_STATISTIC_COMPLETED_ID_EDGE_FALL_MAX_MAX)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->edge_fall_max_max))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_TRX_CALIBRATION_CAPTURE_WINDOW_AND_STATISTIC_COMPLETED_ID_RESULT)) != 0)
+    {
+        if (!bcmolt_result_pack(this->result, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_trx_calibration_capture_window_and_statistic_completed_data_get_packed_length(const bcmolt_trx_calibration_capture_window_and_statistic_completed_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_TRX_CALIBRATION_CAPTURE_WINDOW_AND_STATISTIC_COMPLETED_ID_DATA_WINDOW)) != 0)
+    {
+        count += bcmolt_u32_list_u32_max_500_hex_get_packed_length(&this->data_window);
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_TRX_CALIBRATION_CAPTURE_WINDOW_AND_STATISTIC_COMPLETED_ID_STROBE_WINDOW)) != 0)
+    {
+        count += bcmolt_u32_list_u32_max_500_hex_get_packed_length(&this->strobe_window);
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_TRX_CALIBRATION_CAPTURE_WINDOW_AND_STATISTIC_COMPLETED_ID_EDGE_RISE_MIN_MIN)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_TRX_CALIBRATION_CAPTURE_WINDOW_AND_STATISTIC_COMPLETED_ID_EDGE_RISE_MIN_MAX)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_TRX_CALIBRATION_CAPTURE_WINDOW_AND_STATISTIC_COMPLETED_ID_EDGE_RISE_MAX_MIN)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_TRX_CALIBRATION_CAPTURE_WINDOW_AND_STATISTIC_COMPLETED_ID_EDGE_RISE_MAX_MAX)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_TRX_CALIBRATION_CAPTURE_WINDOW_AND_STATISTIC_COMPLETED_ID_EDGE_FALL_MIN_MIN)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_TRX_CALIBRATION_CAPTURE_WINDOW_AND_STATISTIC_COMPLETED_ID_EDGE_FALL_MIN_MAX)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_TRX_CALIBRATION_CAPTURE_WINDOW_AND_STATISTIC_COMPLETED_ID_EDGE_FALL_MAX_MIN)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_TRX_CALIBRATION_CAPTURE_WINDOW_AND_STATISTIC_COMPLETED_ID_EDGE_FALL_MAX_MAX)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_TRX_CALIBRATION_CAPTURE_WINDOW_AND_STATISTIC_COMPLETED_ID_RESULT)) != 0)
+    {
+        count += 1;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_trx_calibration_capture_window_and_statistic_completed_data_unpack(bcmolt_trx_calibration_capture_window_and_statistic_completed_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_TRX_CALIBRATION_CAPTURE_WINDOW_AND_STATISTIC_COMPLETED_ID_DATA_WINDOW)) != 0)
+    {
+        if (!bcmolt_u32_list_u32_max_500_hex_unpack(&this->data_window, buf, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_TRX_CALIBRATION_CAPTURE_WINDOW_AND_STATISTIC_COMPLETED_ID_STROBE_WINDOW)) != 0)
+    {
+        if (!bcmolt_u32_list_u32_max_500_hex_unpack(&this->strobe_window, buf, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_TRX_CALIBRATION_CAPTURE_WINDOW_AND_STATISTIC_COMPLETED_ID_EDGE_RISE_MIN_MIN)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->edge_rise_min_min))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_TRX_CALIBRATION_CAPTURE_WINDOW_AND_STATISTIC_COMPLETED_ID_EDGE_RISE_MIN_MAX)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->edge_rise_min_max))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_TRX_CALIBRATION_CAPTURE_WINDOW_AND_STATISTIC_COMPLETED_ID_EDGE_RISE_MAX_MIN)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->edge_rise_max_min))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_TRX_CALIBRATION_CAPTURE_WINDOW_AND_STATISTIC_COMPLETED_ID_EDGE_RISE_MAX_MAX)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->edge_rise_max_max))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_TRX_CALIBRATION_CAPTURE_WINDOW_AND_STATISTIC_COMPLETED_ID_EDGE_FALL_MIN_MIN)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->edge_fall_min_min))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_TRX_CALIBRATION_CAPTURE_WINDOW_AND_STATISTIC_COMPLETED_ID_EDGE_FALL_MIN_MAX)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->edge_fall_min_max))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_TRX_CALIBRATION_CAPTURE_WINDOW_AND_STATISTIC_COMPLETED_ID_EDGE_FALL_MAX_MIN)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->edge_fall_max_min))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_TRX_CALIBRATION_CAPTURE_WINDOW_AND_STATISTIC_COMPLETED_ID_EDGE_FALL_MAX_MAX)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->edge_fall_max_max))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_TRX_CALIBRATION_CAPTURE_WINDOW_AND_STATISTIC_COMPLETED_ID_RESULT)) != 0)
+    {
+        if (!bcmolt_result_unpack(&this->result, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_trx_calibration_capture_window_and_statistic_completed_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_TRX_CALIBRATION_CAPTURE_WINDOW_AND_STATISTIC_COMPLETED_ID_DATA_WINDOW)) != 0)
+    {
+        if (!bcmolt_u32_list_u32_max_500_hex_scan(packed, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_TRX_CALIBRATION_CAPTURE_WINDOW_AND_STATISTIC_COMPLETED_ID_STROBE_WINDOW)) != 0)
+    {
+        if (!bcmolt_u32_list_u32_max_500_hex_scan(packed, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_TRX_CALIBRATION_CAPTURE_WINDOW_AND_STATISTIC_COMPLETED_ID_EDGE_RISE_MIN_MIN)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_TRX_CALIBRATION_CAPTURE_WINDOW_AND_STATISTIC_COMPLETED_ID_EDGE_RISE_MIN_MAX)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_TRX_CALIBRATION_CAPTURE_WINDOW_AND_STATISTIC_COMPLETED_ID_EDGE_RISE_MAX_MIN)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_TRX_CALIBRATION_CAPTURE_WINDOW_AND_STATISTIC_COMPLETED_ID_EDGE_RISE_MAX_MAX)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_TRX_CALIBRATION_CAPTURE_WINDOW_AND_STATISTIC_COMPLETED_ID_EDGE_FALL_MIN_MIN)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_TRX_CALIBRATION_CAPTURE_WINDOW_AND_STATISTIC_COMPLETED_ID_EDGE_FALL_MIN_MAX)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_TRX_CALIBRATION_CAPTURE_WINDOW_AND_STATISTIC_COMPLETED_ID_EDGE_FALL_MAX_MIN)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_TRX_CALIBRATION_CAPTURE_WINDOW_AND_STATISTIC_COMPLETED_ID_EDGE_FALL_MAX_MAX)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_TRX_CALIBRATION_CAPTURE_WINDOW_AND_STATISTIC_COMPLETED_ID_RESULT)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_trx_calibration_capture_window_and_statistic_completed_data_bounds_check(const bcmolt_trx_calibration_capture_window_and_statistic_completed_data *this, bcmolt_presence_mask fields_present, bcmolt_trx_calibration_capture_window_and_statistic_completed_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_TRX_CALIBRATION_CAPTURE_WINDOW_AND_STATISTIC_COMPLETED_ID_DATA_WINDOW)) != 0)
+    {
+        if (this->data_window.len < 2)
+        {
+            return BCMOS_FALSE;
+        }
+
+        if (this->data_window.len > 500)
+        {
+            return BCMOS_FALSE;
+        }
+
+        if (!bcmolt_u32_list_u32_max_500_hex_bounds_check(&this->data_window))
+        {
+            *failed_prop = BCMOLT_TRX_CALIBRATION_CAPTURE_WINDOW_AND_STATISTIC_COMPLETED_ID_DATA_WINDOW;
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_TRX_CALIBRATION_CAPTURE_WINDOW_AND_STATISTIC_COMPLETED_ID_STROBE_WINDOW)) != 0)
+    {
+        if (this->strobe_window.len < 2)
+        {
+            return BCMOS_FALSE;
+        }
+
+        if (this->strobe_window.len > 500)
+        {
+            return BCMOS_FALSE;
+        }
+
+        if (!bcmolt_u32_list_u32_max_500_hex_bounds_check(&this->strobe_window))
+        {
+            *failed_prop = BCMOLT_TRX_CALIBRATION_CAPTURE_WINDOW_AND_STATISTIC_COMPLETED_ID_STROBE_WINDOW;
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_TRX_CALIBRATION_CAPTURE_WINDOW_AND_STATISTIC_COMPLETED_ID_RESULT)) != 0)
+    {
+        switch (this->result)
+        {
+            case BCMOLT_RESULT_SUCCESS:
+                break;
+            case BCMOLT_RESULT_FAIL:
+                break;
+            default:
+                *failed_prop = BCMOLT_TRX_CALIBRATION_CAPTURE_WINDOW_AND_STATISTIC_COMPLETED_ID_RESULT;
+                return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_trx_calibration_auto_cfg_data_set_default(bcmolt_trx_calibration_auto_cfg_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_TRX_CALIBRATION_AUTO_CFG_ID_CAPTURE_WINDOW_AND_STATISTIC_COMPLETED)) != 0)
+    {
+        this->capture_window_and_statistic_completed = BCMOS_FALSE;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_trx_calibration_auto_cfg_data_pack(const bcmolt_trx_calibration_auto_cfg_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_TRX_CALIBRATION_AUTO_CFG_ID_CAPTURE_WINDOW_AND_STATISTIC_COMPLETED)) != 0)
+    {
+        if (!bcmolt_buf_write_bool(buf, this->capture_window_and_statistic_completed))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_trx_calibration_auto_cfg_data_get_packed_length(const bcmolt_trx_calibration_auto_cfg_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_TRX_CALIBRATION_AUTO_CFG_ID_CAPTURE_WINDOW_AND_STATISTIC_COMPLETED)) != 0)
+    {
+        count += 1;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_trx_calibration_auto_cfg_data_unpack(bcmolt_trx_calibration_auto_cfg_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_TRX_CALIBRATION_AUTO_CFG_ID_CAPTURE_WINDOW_AND_STATISTIC_COMPLETED)) != 0)
+    {
+        if (!bcmolt_buf_read_bool(buf, &this->capture_window_and_statistic_completed))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_trx_calibration_auto_cfg_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_TRX_CALIBRATION_AUTO_CFG_ID_CAPTURE_WINDOW_AND_STATISTIC_COMPLETED)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_trx_calibration_auto_cfg_data_bounds_check(const bcmolt_trx_calibration_auto_cfg_data *this, bcmolt_presence_mask fields_present, bcmolt_trx_calibration_auto_cfg_id *failed_prop)
+{
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_trx_calibration_start_capture_window_data_set_default(bcmolt_trx_calibration_start_capture_window_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_TRX_CALIBRATION_START_CAPTURE_WINDOW_ID_PON_NI)) != 0)
+    {
+        this->pon_ni = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_TRX_CALIBRATION_START_CAPTURE_WINDOW_ID_TRIGGER)) != 0)
+    {
+        this->trigger = BCMOLT_TRX_CALIBRATION_TRIGGER_EPON_STAT;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_TRX_CALIBRATION_START_CAPTURE_WINDOW_ID_STROBE)) != 0)
+    {
+        this->strobe = BCMOLT_CAPTURE_STROBE_SIGNAL_GPON_BCDR_RESET;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_TRX_CALIBRATION_START_CAPTURE_WINDOW_ID_WINDOW_MODE)) != 0)
+    {
+        this->window_mode = BCMOLT_TRX_CALIBRATION_WINDOW_MODE_RANGING;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_TRX_CALIBRATION_START_CAPTURE_WINDOW_ID_ONU_ID)) != 0)
+    {
+        this->onu_id = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_TRX_CALIBRATION_START_CAPTURE_WINDOW_ID_TRIGGER_POSITION)) != 0)
+    {
+        this->trigger_position = BCMOLT_TRX_CALIBRATION_TRIGGER_POSITION_RISING;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_TRX_CALIBRATION_START_CAPTURE_WINDOW_ID_STOP_DUE_TO_CORRUPT_STROBE)) != 0)
+    {
+        this->stop_due_to_corrupt_strobe = BCMOS_FALSE;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_TRX_CALIBRATION_START_CAPTURE_WINDOW_ID_START_OFFSET)) != 0)
+    {
+        this->start_offset = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_TRX_CALIBRATION_START_CAPTURE_WINDOW_ID_END_OFFSET)) != 0)
+    {
+        this->end_offset = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_TRX_CALIBRATION_START_CAPTURE_WINDOW_ID_NUMBER_OF_CYCLES)) != 0)
+    {
+        this->number_of_cycles = 0;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_trx_calibration_start_capture_window_data_pack(const bcmolt_trx_calibration_start_capture_window_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_TRX_CALIBRATION_START_CAPTURE_WINDOW_ID_PON_NI)) != 0)
+    {
+        if (!bcmolt_buf_write_u8(buf, this->pon_ni))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_TRX_CALIBRATION_START_CAPTURE_WINDOW_ID_TRIGGER)) != 0)
+    {
+        if (!bcmolt_trx_calibration_trigger_pack(this->trigger, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_TRX_CALIBRATION_START_CAPTURE_WINDOW_ID_STROBE)) != 0)
+    {
+        if (!bcmolt_capture_strobe_signal_pack(this->strobe, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_TRX_CALIBRATION_START_CAPTURE_WINDOW_ID_WINDOW_MODE)) != 0)
+    {
+        if (!bcmolt_trx_calibration_window_mode_pack(this->window_mode, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_TRX_CALIBRATION_START_CAPTURE_WINDOW_ID_ONU_ID)) != 0)
+    {
+        if (!bcmolt_buf_write_u16(buf, this->onu_id))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_TRX_CALIBRATION_START_CAPTURE_WINDOW_ID_TRIGGER_POSITION)) != 0)
+    {
+        if (!bcmolt_trx_calibration_trigger_position_pack(this->trigger_position, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_TRX_CALIBRATION_START_CAPTURE_WINDOW_ID_STOP_DUE_TO_CORRUPT_STROBE)) != 0)
+    {
+        if (!bcmolt_buf_write_bool(buf, this->stop_due_to_corrupt_strobe))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_TRX_CALIBRATION_START_CAPTURE_WINDOW_ID_START_OFFSET)) != 0)
+    {
+        if (!bcmolt_buf_write_u16(buf, this->start_offset))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_TRX_CALIBRATION_START_CAPTURE_WINDOW_ID_END_OFFSET)) != 0)
+    {
+        if (!bcmolt_buf_write_u16(buf, this->end_offset))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_TRX_CALIBRATION_START_CAPTURE_WINDOW_ID_NUMBER_OF_CYCLES)) != 0)
+    {
+        if (!bcmolt_buf_write_u8(buf, this->number_of_cycles))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_trx_calibration_start_capture_window_data_get_packed_length(const bcmolt_trx_calibration_start_capture_window_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_TRX_CALIBRATION_START_CAPTURE_WINDOW_ID_PON_NI)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_TRX_CALIBRATION_START_CAPTURE_WINDOW_ID_TRIGGER)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_TRX_CALIBRATION_START_CAPTURE_WINDOW_ID_STROBE)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_TRX_CALIBRATION_START_CAPTURE_WINDOW_ID_WINDOW_MODE)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_TRX_CALIBRATION_START_CAPTURE_WINDOW_ID_ONU_ID)) != 0)
+    {
+        count += 2;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_TRX_CALIBRATION_START_CAPTURE_WINDOW_ID_TRIGGER_POSITION)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_TRX_CALIBRATION_START_CAPTURE_WINDOW_ID_STOP_DUE_TO_CORRUPT_STROBE)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_TRX_CALIBRATION_START_CAPTURE_WINDOW_ID_START_OFFSET)) != 0)
+    {
+        count += 2;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_TRX_CALIBRATION_START_CAPTURE_WINDOW_ID_END_OFFSET)) != 0)
+    {
+        count += 2;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_TRX_CALIBRATION_START_CAPTURE_WINDOW_ID_NUMBER_OF_CYCLES)) != 0)
+    {
+        count += 1;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_trx_calibration_start_capture_window_data_unpack(bcmolt_trx_calibration_start_capture_window_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_TRX_CALIBRATION_START_CAPTURE_WINDOW_ID_PON_NI)) != 0)
+    {
+        if (!bcmolt_buf_read_u8(buf, &this->pon_ni))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_TRX_CALIBRATION_START_CAPTURE_WINDOW_ID_TRIGGER)) != 0)
+    {
+        if (!bcmolt_trx_calibration_trigger_unpack(&this->trigger, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_TRX_CALIBRATION_START_CAPTURE_WINDOW_ID_STROBE)) != 0)
+    {
+        if (!bcmolt_capture_strobe_signal_unpack(&this->strobe, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_TRX_CALIBRATION_START_CAPTURE_WINDOW_ID_WINDOW_MODE)) != 0)
+    {
+        if (!bcmolt_trx_calibration_window_mode_unpack(&this->window_mode, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_TRX_CALIBRATION_START_CAPTURE_WINDOW_ID_ONU_ID)) != 0)
+    {
+        if (!bcmolt_buf_read_u16(buf, &this->onu_id))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_TRX_CALIBRATION_START_CAPTURE_WINDOW_ID_TRIGGER_POSITION)) != 0)
+    {
+        if (!bcmolt_trx_calibration_trigger_position_unpack(&this->trigger_position, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_TRX_CALIBRATION_START_CAPTURE_WINDOW_ID_STOP_DUE_TO_CORRUPT_STROBE)) != 0)
+    {
+        if (!bcmolt_buf_read_bool(buf, &this->stop_due_to_corrupt_strobe))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_TRX_CALIBRATION_START_CAPTURE_WINDOW_ID_START_OFFSET)) != 0)
+    {
+        if (!bcmolt_buf_read_u16(buf, &this->start_offset))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_TRX_CALIBRATION_START_CAPTURE_WINDOW_ID_END_OFFSET)) != 0)
+    {
+        if (!bcmolt_buf_read_u16(buf, &this->end_offset))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_TRX_CALIBRATION_START_CAPTURE_WINDOW_ID_NUMBER_OF_CYCLES)) != 0)
+    {
+        if (!bcmolt_buf_read_u8(buf, &this->number_of_cycles))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_trx_calibration_start_capture_window_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_TRX_CALIBRATION_START_CAPTURE_WINDOW_ID_PON_NI)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_TRX_CALIBRATION_START_CAPTURE_WINDOW_ID_TRIGGER)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_TRX_CALIBRATION_START_CAPTURE_WINDOW_ID_STROBE)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_TRX_CALIBRATION_START_CAPTURE_WINDOW_ID_WINDOW_MODE)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_TRX_CALIBRATION_START_CAPTURE_WINDOW_ID_ONU_ID)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 2))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_TRX_CALIBRATION_START_CAPTURE_WINDOW_ID_TRIGGER_POSITION)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_TRX_CALIBRATION_START_CAPTURE_WINDOW_ID_STOP_DUE_TO_CORRUPT_STROBE)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_TRX_CALIBRATION_START_CAPTURE_WINDOW_ID_START_OFFSET)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 2))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_TRX_CALIBRATION_START_CAPTURE_WINDOW_ID_END_OFFSET)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 2))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_TRX_CALIBRATION_START_CAPTURE_WINDOW_ID_NUMBER_OF_CYCLES)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_trx_calibration_start_capture_window_data_bounds_check(const bcmolt_trx_calibration_start_capture_window_data *this, bcmolt_presence_mask fields_present, bcmolt_trx_calibration_start_capture_window_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_TRX_CALIBRATION_START_CAPTURE_WINDOW_ID_TRIGGER)) != 0)
+    {
+        switch (this->trigger)
+        {
+            case BCMOLT_TRX_CALIBRATION_TRIGGER_EPON_STAT:
+                break;
+            case BCMOLT_TRX_CALIBRATION_TRIGGER_GPON_BCDR_RESET:
+                break;
+            case BCMOLT_TRX_CALIBRATION_TRIGGER_GPON_TRX_RESET:
+                break;
+            case BCMOLT_TRX_CALIBRATION_TRIGGER_GPON_TRX_ED:
+                break;
+            case BCMOLT_TRX_CALIBRATION_TRIGGER_GPON_RSSI:
+                break;
+            case BCMOLT_TRX_CALIBRATION_TRIGGER_GPON_EOB:
+                break;
+            case BCMOLT_TRX_CALIBRATION_TRIGGER_GPON_RANGING:
+                break;
+            case BCMOLT_TRX_CALIBRATION_TRIGGER_SERDES_BURST_EN:
+                break;
+            default:
+                *failed_prop = BCMOLT_TRX_CALIBRATION_START_CAPTURE_WINDOW_ID_TRIGGER;
+                return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_TRX_CALIBRATION_START_CAPTURE_WINDOW_ID_STROBE)) != 0)
+    {
+        switch (this->strobe)
+        {
+            case BCMOLT_CAPTURE_STROBE_SIGNAL_GPON_BCDR_RESET:
+                break;
+            case BCMOLT_CAPTURE_STROBE_SIGNAL_GPON_TRX_ED:
+                break;
+            case BCMOLT_CAPTURE_STROBE_SIGNAL_GPON_RSSI:
+                break;
+            case BCMOLT_CAPTURE_STROBE_SIGNAL_GPON_EOB:
+                break;
+            case BCMOLT_CAPTURE_STROBE_SIGNAL_SERDES_BURST_EN:
+                break;
+            case BCMOLT_CAPTURE_STROBE_SIGNAL_SERDES_RX_LOCK:
+                break;
+            default:
+                *failed_prop = BCMOLT_TRX_CALIBRATION_START_CAPTURE_WINDOW_ID_STROBE;
+                return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_TRX_CALIBRATION_START_CAPTURE_WINDOW_ID_WINDOW_MODE)) != 0)
+    {
+        switch (this->window_mode)
+        {
+            case BCMOLT_TRX_CALIBRATION_WINDOW_MODE_RANGING:
+                break;
+            case BCMOLT_TRX_CALIBRATION_WINDOW_MODE_NON_RANGING:
+                break;
+            case BCMOLT_TRX_CALIBRATION_WINDOW_MODE_BOTH:
+                break;
+            default:
+                *failed_prop = BCMOLT_TRX_CALIBRATION_START_CAPTURE_WINDOW_ID_WINDOW_MODE;
+                return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_TRX_CALIBRATION_START_CAPTURE_WINDOW_ID_TRIGGER_POSITION)) != 0)
+    {
+        switch (this->trigger_position)
+        {
+            case BCMOLT_TRX_CALIBRATION_TRIGGER_POSITION_RISING:
+                break;
+            case BCMOLT_TRX_CALIBRATION_TRIGGER_POSITION_FALLING:
+                break;
+            default:
+                *failed_prop = BCMOLT_TRX_CALIBRATION_START_CAPTURE_WINDOW_ID_TRIGGER_POSITION;
+                return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_trx_calibration_stop_capture_window_data_set_default(bcmolt_trx_calibration_stop_capture_window_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_TRX_CALIBRATION_STOP_CAPTURE_WINDOW_ID_PON_NI)) != 0)
+    {
+        this->pon_ni = 0;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_trx_calibration_stop_capture_window_data_pack(const bcmolt_trx_calibration_stop_capture_window_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_TRX_CALIBRATION_STOP_CAPTURE_WINDOW_ID_PON_NI)) != 0)
+    {
+        if (!bcmolt_buf_write_u8(buf, this->pon_ni))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_trx_calibration_stop_capture_window_data_get_packed_length(const bcmolt_trx_calibration_stop_capture_window_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_TRX_CALIBRATION_STOP_CAPTURE_WINDOW_ID_PON_NI)) != 0)
+    {
+        count += 1;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_trx_calibration_stop_capture_window_data_unpack(bcmolt_trx_calibration_stop_capture_window_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_TRX_CALIBRATION_STOP_CAPTURE_WINDOW_ID_PON_NI)) != 0)
+    {
+        if (!bcmolt_buf_read_u8(buf, &this->pon_ni))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_trx_calibration_stop_capture_window_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_TRX_CALIBRATION_STOP_CAPTURE_WINDOW_ID_PON_NI)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_trx_calibration_stop_capture_window_data_bounds_check(const bcmolt_trx_calibration_stop_capture_window_data *this, bcmolt_presence_mask fields_present, bcmolt_trx_calibration_stop_capture_window_id *failed_prop)
+{
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_xgpon_alloc_key_set_default(bcmolt_xgpon_alloc_key *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ALLOC_KEY_ID_PON_NI)) != 0)
+    {
+        this->pon_ni = (bcmolt_xgpon_ni) 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ALLOC_KEY_ID_ALLOC_ID)) != 0)
+    {
+        this->alloc_id = (bcmolt_xgpon_alloc_id) 0;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_alloc_key_pack(const bcmolt_xgpon_alloc_key *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ALLOC_KEY_ID_PON_NI)) != 0)
+    {
+        if (!bcmolt_buf_write_u8(buf, (uint8_t) this->pon_ni))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ALLOC_KEY_ID_ALLOC_ID)) != 0)
+    {
+        if (!bcmolt_buf_write_u16(buf, (uint16_t) this->alloc_id))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_xgpon_alloc_key_get_packed_length(const bcmolt_xgpon_alloc_key *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ALLOC_KEY_ID_PON_NI)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ALLOC_KEY_ID_ALLOC_ID)) != 0)
+    {
+        count += 2;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_alloc_key_unpack(bcmolt_xgpon_alloc_key *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ALLOC_KEY_ID_PON_NI)) != 0)
+    {
+        if (!bcmolt_buf_read_u8(buf, (uint8_t *) &this->pon_ni))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ALLOC_KEY_ID_ALLOC_ID)) != 0)
+    {
+        if (!bcmolt_buf_read_u16(buf, (uint16_t *) &this->alloc_id))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_alloc_key_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ALLOC_KEY_ID_PON_NI)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ALLOC_KEY_ID_ALLOC_ID)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 2))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_alloc_key_bounds_check(const bcmolt_xgpon_alloc_key *this, bcmolt_presence_mask fields_present, bcmolt_xgpon_alloc_key_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ALLOC_KEY_ID_PON_NI)) != 0)
+    {
+        if (this->pon_ni > (bcmolt_xgpon_ni) 7)
+        {
+            *failed_prop = BCMOLT_XGPON_ALLOC_KEY_ID_PON_NI;
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ALLOC_KEY_ID_ALLOC_ID)) != 0)
+    {
+        if (this->alloc_id > (bcmolt_xgpon_alloc_id) 16383)
+        {
+            *failed_prop = BCMOLT_XGPON_ALLOC_KEY_ID_ALLOC_ID;
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_xgpon_alloc_cfg_data_set_default(bcmolt_xgpon_alloc_cfg_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ALLOC_CFG_ID_STATE)) != 0)
+    {
+        this->state = BCMOLT_ALLOC_STATE_NOT_CONFIGURED;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ALLOC_CFG_ID_SLA)) != 0)
+    {
+        this->sla.cbr_rt_bw = 0;
+        this->sla.cbr_nrt_bw = 0;
+        this->sla.guaranteed_bw = 0;
+        this->sla.maximum_bw = 0;
+        this->sla.additional_bw_eligibility = BCMOLT_ADDITIONAL_BW_ELIGIBILITY_NONE;
+        this->sla.cbr_rt_compensation = BCMOS_FALSE;
+        this->sla.cbr_rt_ap_index = 0;
+        this->sla.cbr_nrt_ap_index = 0;
+        this->sla.alloc_type = BCMOLT_ALLOC_TYPE_NONE;
+        this->sla.weight = 0;
+        this->sla.priority = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ALLOC_CFG_ID_ONU_ID)) != 0)
+    {
+        this->onu_id = (bcmolt_xgpon_onu_id) 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ALLOC_CFG_ID_COLLECT_STATS)) != 0)
+    {
+        this->collect_stats = BCMOS_FALSE;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_alloc_cfg_data_pack(const bcmolt_xgpon_alloc_cfg_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ALLOC_CFG_ID_STATE)) != 0)
+    {
+        if (!bcmolt_alloc_state_pack(this->state, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ALLOC_CFG_ID_SLA)) != 0)
+    {
+        if (!bcmolt_pon_alloc_sla_pack(&this->sla, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ALLOC_CFG_ID_ONU_ID)) != 0)
+    {
+        if (!bcmolt_buf_write_u16(buf, (uint16_t) this->onu_id))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ALLOC_CFG_ID_COLLECT_STATS)) != 0)
+    {
+        if (!bcmolt_buf_write_bool(buf, this->collect_stats))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_xgpon_alloc_cfg_data_get_packed_length(const bcmolt_xgpon_alloc_cfg_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ALLOC_CFG_ID_STATE)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ALLOC_CFG_ID_SLA)) != 0)
+    {
+        count += 23;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ALLOC_CFG_ID_ONU_ID)) != 0)
+    {
+        count += 2;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ALLOC_CFG_ID_COLLECT_STATS)) != 0)
+    {
+        count += 1;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_alloc_cfg_data_unpack(bcmolt_xgpon_alloc_cfg_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ALLOC_CFG_ID_STATE)) != 0)
+    {
+        if (!bcmolt_alloc_state_unpack(&this->state, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ALLOC_CFG_ID_SLA)) != 0)
+    {
+        if (!bcmolt_pon_alloc_sla_unpack(&this->sla, buf, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ALLOC_CFG_ID_ONU_ID)) != 0)
+    {
+        if (!bcmolt_buf_read_u16(buf, (uint16_t *) &this->onu_id))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ALLOC_CFG_ID_COLLECT_STATS)) != 0)
+    {
+        if (!bcmolt_buf_read_bool(buf, &this->collect_stats))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_alloc_cfg_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ALLOC_CFG_ID_STATE)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ALLOC_CFG_ID_SLA)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 23))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ALLOC_CFG_ID_ONU_ID)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 2))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ALLOC_CFG_ID_COLLECT_STATS)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_alloc_cfg_data_bounds_check(const bcmolt_xgpon_alloc_cfg_data *this, bcmolt_presence_mask fields_present, bcmolt_xgpon_alloc_cfg_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ALLOC_CFG_ID_STATE)) != 0)
+    {
+        switch (this->state)
+        {
+            case BCMOLT_ALLOC_STATE_NOT_CONFIGURED:
+                break;
+            case BCMOLT_ALLOC_STATE_INACTIVE:
+                break;
+            case BCMOLT_ALLOC_STATE_PROCESSING:
+                break;
+            case BCMOLT_ALLOC_STATE_ACTIVE:
+                break;
+            default:
+                *failed_prop = BCMOLT_XGPON_ALLOC_CFG_ID_STATE;
+                return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ALLOC_CFG_ID_SLA)) != 0)
+    {
+        if (!bcmolt_pon_alloc_sla_bounds_check(&this->sla))
+        {
+            *failed_prop = BCMOLT_XGPON_ALLOC_CFG_ID_SLA;
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ALLOC_CFG_ID_ONU_ID)) != 0)
+    {
+        if (this->onu_id > (bcmolt_xgpon_onu_id) 511)
+        {
+            *failed_prop = BCMOLT_XGPON_ALLOC_CFG_ID_ONU_ID;
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_xgpon_alloc_stat_data_set_default(bcmolt_xgpon_alloc_stat_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ALLOC_STAT_ID_RX_BYTES)) != 0)
+    {
+        this->rx_bytes = 0;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_alloc_stat_data_pack(const bcmolt_xgpon_alloc_stat_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ALLOC_STAT_ID_RX_BYTES)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->rx_bytes))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_xgpon_alloc_stat_data_get_packed_length(const bcmolt_xgpon_alloc_stat_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ALLOC_STAT_ID_RX_BYTES)) != 0)
+    {
+        count += 8;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_alloc_stat_data_unpack(bcmolt_xgpon_alloc_stat_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ALLOC_STAT_ID_RX_BYTES)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->rx_bytes))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_alloc_stat_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ALLOC_STAT_ID_RX_BYTES)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_alloc_stat_data_bounds_check(const bcmolt_xgpon_alloc_stat_data *this, bcmolt_presence_mask fields_present, bcmolt_xgpon_alloc_stat_id *failed_prop)
+{
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_xgpon_alloc_stat_cfg_data_set_default(bcmolt_xgpon_alloc_stat_cfg_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ALLOC_STAT_CFG_ID_CFG)) != 0)
+    {
+        this->cfg.trigger.type = BCMOLT_STAT_CONDITION_TYPE_NONE;
+        this->cfg.soak.active_soak_time = 0;
+        this->cfg.soak.clear_soak_time = 0;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_alloc_stat_cfg_data_pack(const bcmolt_xgpon_alloc_stat_cfg_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ALLOC_STAT_CFG_ID_CFG)) != 0)
+    {
+        if (!bcmolt_stat_alarm_config_pack(&this->cfg, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_xgpon_alloc_stat_cfg_data_get_packed_length(const bcmolt_xgpon_alloc_stat_cfg_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ALLOC_STAT_CFG_ID_CFG)) != 0)
+    {
+        count += bcmolt_stat_alarm_config_get_packed_length(&this->cfg);
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_alloc_stat_cfg_data_unpack(bcmolt_xgpon_alloc_stat_cfg_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ALLOC_STAT_CFG_ID_CFG)) != 0)
+    {
+        if (!bcmolt_stat_alarm_config_unpack(&this->cfg, buf, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_alloc_stat_cfg_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ALLOC_STAT_CFG_ID_CFG)) != 0)
+    {
+        if (!bcmolt_stat_alarm_config_scan(packed, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_alloc_stat_cfg_data_bounds_check(const bcmolt_xgpon_alloc_stat_cfg_data *this, bcmolt_presence_mask fields_present, bcmolt_xgpon_alloc_stat_cfg_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ALLOC_STAT_CFG_ID_CFG)) != 0)
+    {
+        if (!bcmolt_stat_alarm_config_bounds_check(&this->cfg))
+        {
+            *failed_prop = BCMOLT_XGPON_ALLOC_STAT_CFG_ID_CFG;
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_xgpon_alloc_configuration_completed_data_set_default(bcmolt_xgpon_alloc_configuration_completed_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ALLOC_CONFIGURATION_COMPLETED_ID_STATUS)) != 0)
+    {
+        this->status = BCMOLT_RESULT_SUCCESS;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ALLOC_CONFIGURATION_COMPLETED_ID_NEW_STATE)) != 0)
+    {
+        this->new_state = BCMOLT_ALLOC_STATE_NOT_CONFIGURED;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_alloc_configuration_completed_data_pack(const bcmolt_xgpon_alloc_configuration_completed_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ALLOC_CONFIGURATION_COMPLETED_ID_STATUS)) != 0)
+    {
+        if (!bcmolt_result_pack(this->status, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ALLOC_CONFIGURATION_COMPLETED_ID_NEW_STATE)) != 0)
+    {
+        if (!bcmolt_alloc_state_pack(this->new_state, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_xgpon_alloc_configuration_completed_data_get_packed_length(const bcmolt_xgpon_alloc_configuration_completed_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ALLOC_CONFIGURATION_COMPLETED_ID_STATUS)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ALLOC_CONFIGURATION_COMPLETED_ID_NEW_STATE)) != 0)
+    {
+        count += 1;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_alloc_configuration_completed_data_unpack(bcmolt_xgpon_alloc_configuration_completed_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ALLOC_CONFIGURATION_COMPLETED_ID_STATUS)) != 0)
+    {
+        if (!bcmolt_result_unpack(&this->status, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ALLOC_CONFIGURATION_COMPLETED_ID_NEW_STATE)) != 0)
+    {
+        if (!bcmolt_alloc_state_unpack(&this->new_state, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_alloc_configuration_completed_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ALLOC_CONFIGURATION_COMPLETED_ID_STATUS)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ALLOC_CONFIGURATION_COMPLETED_ID_NEW_STATE)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_alloc_configuration_completed_data_bounds_check(const bcmolt_xgpon_alloc_configuration_completed_data *this, bcmolt_presence_mask fields_present, bcmolt_xgpon_alloc_configuration_completed_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ALLOC_CONFIGURATION_COMPLETED_ID_STATUS)) != 0)
+    {
+        switch (this->status)
+        {
+            case BCMOLT_RESULT_SUCCESS:
+                break;
+            case BCMOLT_RESULT_FAIL:
+                break;
+            default:
+                *failed_prop = BCMOLT_XGPON_ALLOC_CONFIGURATION_COMPLETED_ID_STATUS;
+                return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ALLOC_CONFIGURATION_COMPLETED_ID_NEW_STATE)) != 0)
+    {
+        switch (this->new_state)
+        {
+            case BCMOLT_ALLOC_STATE_NOT_CONFIGURED:
+                break;
+            case BCMOLT_ALLOC_STATE_INACTIVE:
+                break;
+            case BCMOLT_ALLOC_STATE_PROCESSING:
+                break;
+            case BCMOLT_ALLOC_STATE_ACTIVE:
+                break;
+            default:
+                *failed_prop = BCMOLT_XGPON_ALLOC_CONFIGURATION_COMPLETED_ID_NEW_STATE;
+                return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_xgpon_alloc_get_alloc_stats_completed_data_set_default(bcmolt_xgpon_alloc_get_alloc_stats_completed_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ALLOC_GET_ALLOC_STATS_COMPLETED_ID_STATUS)) != 0)
+    {
+        this->status = BCMOLT_RESULT_SUCCESS;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ALLOC_GET_ALLOC_STATS_COMPLETED_ID_AVERAGE_NSR_USED)) != 0)
+    {
+        this->average_nsr_used = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ALLOC_GET_ALLOC_STATS_COMPLETED_ID_AVERAGE_NSR_ALLOCATED)) != 0)
+    {
+        this->average_nsr_allocated = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ALLOC_GET_ALLOC_STATS_COMPLETED_ID_AVERAGE_SR_REPORT)) != 0)
+    {
+        this->average_sr_report = 0;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_alloc_get_alloc_stats_completed_data_pack(const bcmolt_xgpon_alloc_get_alloc_stats_completed_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ALLOC_GET_ALLOC_STATS_COMPLETED_ID_STATUS)) != 0)
+    {
+        if (!bcmolt_result_pack(this->status, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ALLOC_GET_ALLOC_STATS_COMPLETED_ID_AVERAGE_NSR_USED)) != 0)
+    {
+        if (!bcmolt_buf_write_u32(buf, this->average_nsr_used))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ALLOC_GET_ALLOC_STATS_COMPLETED_ID_AVERAGE_NSR_ALLOCATED)) != 0)
+    {
+        if (!bcmolt_buf_write_u32(buf, this->average_nsr_allocated))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ALLOC_GET_ALLOC_STATS_COMPLETED_ID_AVERAGE_SR_REPORT)) != 0)
+    {
+        if (!bcmolt_buf_write_u32(buf, this->average_sr_report))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_xgpon_alloc_get_alloc_stats_completed_data_get_packed_length(const bcmolt_xgpon_alloc_get_alloc_stats_completed_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ALLOC_GET_ALLOC_STATS_COMPLETED_ID_STATUS)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ALLOC_GET_ALLOC_STATS_COMPLETED_ID_AVERAGE_NSR_USED)) != 0)
+    {
+        count += 4;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ALLOC_GET_ALLOC_STATS_COMPLETED_ID_AVERAGE_NSR_ALLOCATED)) != 0)
+    {
+        count += 4;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ALLOC_GET_ALLOC_STATS_COMPLETED_ID_AVERAGE_SR_REPORT)) != 0)
+    {
+        count += 4;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_alloc_get_alloc_stats_completed_data_unpack(bcmolt_xgpon_alloc_get_alloc_stats_completed_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ALLOC_GET_ALLOC_STATS_COMPLETED_ID_STATUS)) != 0)
+    {
+        if (!bcmolt_result_unpack(&this->status, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ALLOC_GET_ALLOC_STATS_COMPLETED_ID_AVERAGE_NSR_USED)) != 0)
+    {
+        if (!bcmolt_buf_read_u32(buf, &this->average_nsr_used))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ALLOC_GET_ALLOC_STATS_COMPLETED_ID_AVERAGE_NSR_ALLOCATED)) != 0)
+    {
+        if (!bcmolt_buf_read_u32(buf, &this->average_nsr_allocated))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ALLOC_GET_ALLOC_STATS_COMPLETED_ID_AVERAGE_SR_REPORT)) != 0)
+    {
+        if (!bcmolt_buf_read_u32(buf, &this->average_sr_report))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_alloc_get_alloc_stats_completed_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ALLOC_GET_ALLOC_STATS_COMPLETED_ID_STATUS)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ALLOC_GET_ALLOC_STATS_COMPLETED_ID_AVERAGE_NSR_USED)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 4))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ALLOC_GET_ALLOC_STATS_COMPLETED_ID_AVERAGE_NSR_ALLOCATED)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 4))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ALLOC_GET_ALLOC_STATS_COMPLETED_ID_AVERAGE_SR_REPORT)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 4))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_alloc_get_alloc_stats_completed_data_bounds_check(const bcmolt_xgpon_alloc_get_alloc_stats_completed_data *this, bcmolt_presence_mask fields_present, bcmolt_xgpon_alloc_get_alloc_stats_completed_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ALLOC_GET_ALLOC_STATS_COMPLETED_ID_STATUS)) != 0)
+    {
+        switch (this->status)
+        {
+            case BCMOLT_RESULT_SUCCESS:
+                break;
+            case BCMOLT_RESULT_FAIL:
+                break;
+            default:
+                *failed_prop = BCMOLT_XGPON_ALLOC_GET_ALLOC_STATS_COMPLETED_ID_STATUS;
+                return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_xgpon_alloc_stat_alarm_cleared_data_set_default(bcmolt_xgpon_alloc_stat_alarm_cleared_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ALLOC_STAT_ALARM_CLEARED_ID_STAT)) != 0)
+    {
+        this->stat = BCMOLT_XGPON_ALLOC_STAT_ID_RX_BYTES;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_alloc_stat_alarm_cleared_data_pack(const bcmolt_xgpon_alloc_stat_alarm_cleared_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ALLOC_STAT_ALARM_CLEARED_ID_STAT)) != 0)
+    {
+        if (!bcmolt_xgpon_alloc_stat_id_pack(this->stat, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_xgpon_alloc_stat_alarm_cleared_data_get_packed_length(const bcmolt_xgpon_alloc_stat_alarm_cleared_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ALLOC_STAT_ALARM_CLEARED_ID_STAT)) != 0)
+    {
+        count += 2;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_alloc_stat_alarm_cleared_data_unpack(bcmolt_xgpon_alloc_stat_alarm_cleared_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ALLOC_STAT_ALARM_CLEARED_ID_STAT)) != 0)
+    {
+        if (!bcmolt_xgpon_alloc_stat_id_unpack(&this->stat, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_alloc_stat_alarm_cleared_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ALLOC_STAT_ALARM_CLEARED_ID_STAT)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 2))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_alloc_stat_alarm_cleared_data_bounds_check(const bcmolt_xgpon_alloc_stat_alarm_cleared_data *this, bcmolt_presence_mask fields_present, bcmolt_xgpon_alloc_stat_alarm_cleared_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ALLOC_STAT_ALARM_CLEARED_ID_STAT)) != 0)
+    {
+        switch (this->stat)
+        {
+            case BCMOLT_XGPON_ALLOC_STAT_ID_RX_BYTES:
+                break;
+            default:
+                *failed_prop = BCMOLT_XGPON_ALLOC_STAT_ALARM_CLEARED_ID_STAT;
+                return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_xgpon_alloc_stat_alarm_raised_data_set_default(bcmolt_xgpon_alloc_stat_alarm_raised_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ALLOC_STAT_ALARM_RAISED_ID_STAT)) != 0)
+    {
+        this->stat = BCMOLT_XGPON_ALLOC_STAT_ID_RX_BYTES;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_alloc_stat_alarm_raised_data_pack(const bcmolt_xgpon_alloc_stat_alarm_raised_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ALLOC_STAT_ALARM_RAISED_ID_STAT)) != 0)
+    {
+        if (!bcmolt_xgpon_alloc_stat_id_pack(this->stat, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_xgpon_alloc_stat_alarm_raised_data_get_packed_length(const bcmolt_xgpon_alloc_stat_alarm_raised_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ALLOC_STAT_ALARM_RAISED_ID_STAT)) != 0)
+    {
+        count += 2;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_alloc_stat_alarm_raised_data_unpack(bcmolt_xgpon_alloc_stat_alarm_raised_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ALLOC_STAT_ALARM_RAISED_ID_STAT)) != 0)
+    {
+        if (!bcmolt_xgpon_alloc_stat_id_unpack(&this->stat, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_alloc_stat_alarm_raised_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ALLOC_STAT_ALARM_RAISED_ID_STAT)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 2))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_alloc_stat_alarm_raised_data_bounds_check(const bcmolt_xgpon_alloc_stat_alarm_raised_data *this, bcmolt_presence_mask fields_present, bcmolt_xgpon_alloc_stat_alarm_raised_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ALLOC_STAT_ALARM_RAISED_ID_STAT)) != 0)
+    {
+        switch (this->stat)
+        {
+            case BCMOLT_XGPON_ALLOC_STAT_ID_RX_BYTES:
+                break;
+            default:
+                *failed_prop = BCMOLT_XGPON_ALLOC_STAT_ALARM_RAISED_ID_STAT;
+                return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_xgpon_alloc_auto_cfg_data_set_default(bcmolt_xgpon_alloc_auto_cfg_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ALLOC_AUTO_CFG_ID_CONFIGURATION_COMPLETED)) != 0)
+    {
+        this->configuration_completed = BCMOS_FALSE;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ALLOC_AUTO_CFG_ID_GET_ALLOC_STATS_COMPLETED)) != 0)
+    {
+        this->get_alloc_stats_completed = BCMOS_FALSE;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ALLOC_AUTO_CFG_ID_STAT_ALARM_CLEARED)) != 0)
+    {
+        this->stat_alarm_cleared = BCMOS_FALSE;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ALLOC_AUTO_CFG_ID_STAT_ALARM_RAISED)) != 0)
+    {
+        this->stat_alarm_raised = BCMOS_FALSE;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_alloc_auto_cfg_data_pack(const bcmolt_xgpon_alloc_auto_cfg_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ALLOC_AUTO_CFG_ID_CONFIGURATION_COMPLETED)) != 0)
+    {
+        if (!bcmolt_buf_write_bool(buf, this->configuration_completed))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ALLOC_AUTO_CFG_ID_GET_ALLOC_STATS_COMPLETED)) != 0)
+    {
+        if (!bcmolt_buf_write_bool(buf, this->get_alloc_stats_completed))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ALLOC_AUTO_CFG_ID_STAT_ALARM_CLEARED)) != 0)
+    {
+        if (!bcmolt_buf_write_bool(buf, this->stat_alarm_cleared))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ALLOC_AUTO_CFG_ID_STAT_ALARM_RAISED)) != 0)
+    {
+        if (!bcmolt_buf_write_bool(buf, this->stat_alarm_raised))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_xgpon_alloc_auto_cfg_data_get_packed_length(const bcmolt_xgpon_alloc_auto_cfg_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ALLOC_AUTO_CFG_ID_CONFIGURATION_COMPLETED)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ALLOC_AUTO_CFG_ID_GET_ALLOC_STATS_COMPLETED)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ALLOC_AUTO_CFG_ID_STAT_ALARM_CLEARED)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ALLOC_AUTO_CFG_ID_STAT_ALARM_RAISED)) != 0)
+    {
+        count += 1;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_alloc_auto_cfg_data_unpack(bcmolt_xgpon_alloc_auto_cfg_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ALLOC_AUTO_CFG_ID_CONFIGURATION_COMPLETED)) != 0)
+    {
+        if (!bcmolt_buf_read_bool(buf, &this->configuration_completed))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ALLOC_AUTO_CFG_ID_GET_ALLOC_STATS_COMPLETED)) != 0)
+    {
+        if (!bcmolt_buf_read_bool(buf, &this->get_alloc_stats_completed))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ALLOC_AUTO_CFG_ID_STAT_ALARM_CLEARED)) != 0)
+    {
+        if (!bcmolt_buf_read_bool(buf, &this->stat_alarm_cleared))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ALLOC_AUTO_CFG_ID_STAT_ALARM_RAISED)) != 0)
+    {
+        if (!bcmolt_buf_read_bool(buf, &this->stat_alarm_raised))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_alloc_auto_cfg_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ALLOC_AUTO_CFG_ID_CONFIGURATION_COMPLETED)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ALLOC_AUTO_CFG_ID_GET_ALLOC_STATS_COMPLETED)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ALLOC_AUTO_CFG_ID_STAT_ALARM_CLEARED)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ALLOC_AUTO_CFG_ID_STAT_ALARM_RAISED)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_alloc_auto_cfg_data_bounds_check(const bcmolt_xgpon_alloc_auto_cfg_data *this, bcmolt_presence_mask fields_present, bcmolt_xgpon_alloc_auto_cfg_id *failed_prop)
+{
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_xgpon_alloc_get_stats_data_set_default(bcmolt_xgpon_alloc_get_stats_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ALLOC_GET_STATS_ID_NUM_OF_CYCLES)) != 0)
+    {
+        this->num_of_cycles = 1;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_alloc_get_stats_data_pack(const bcmolt_xgpon_alloc_get_stats_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ALLOC_GET_STATS_ID_NUM_OF_CYCLES)) != 0)
+    {
+        if (!bcmolt_buf_write_u32(buf, this->num_of_cycles))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_xgpon_alloc_get_stats_data_get_packed_length(const bcmolt_xgpon_alloc_get_stats_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ALLOC_GET_STATS_ID_NUM_OF_CYCLES)) != 0)
+    {
+        count += 4;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_alloc_get_stats_data_unpack(bcmolt_xgpon_alloc_get_stats_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ALLOC_GET_STATS_ID_NUM_OF_CYCLES)) != 0)
+    {
+        if (!bcmolt_buf_read_u32(buf, &this->num_of_cycles))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_alloc_get_stats_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ALLOC_GET_STATS_ID_NUM_OF_CYCLES)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 4))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_alloc_get_stats_data_bounds_check(const bcmolt_xgpon_alloc_get_stats_data *this, bcmolt_presence_mask fields_present, bcmolt_xgpon_alloc_get_stats_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ALLOC_GET_STATS_ID_NUM_OF_CYCLES)) != 0)
+    {
+        if (this->num_of_cycles < 1)
+        {
+            *failed_prop = BCMOLT_XGPON_ALLOC_GET_STATS_ID_NUM_OF_CYCLES;
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_xgpon_alloc_set_state_data_set_default(bcmolt_xgpon_alloc_set_state_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ALLOC_SET_STATE_ID_STATE)) != 0)
+    {
+        this->state = BCMOLT_ALLOC_OPERATION_ACTIVATE;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_alloc_set_state_data_pack(const bcmolt_xgpon_alloc_set_state_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ALLOC_SET_STATE_ID_STATE)) != 0)
+    {
+        if (!bcmolt_alloc_operation_pack(this->state, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_xgpon_alloc_set_state_data_get_packed_length(const bcmolt_xgpon_alloc_set_state_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ALLOC_SET_STATE_ID_STATE)) != 0)
+    {
+        count += 1;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_alloc_set_state_data_unpack(bcmolt_xgpon_alloc_set_state_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ALLOC_SET_STATE_ID_STATE)) != 0)
+    {
+        if (!bcmolt_alloc_operation_unpack(&this->state, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_alloc_set_state_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ALLOC_SET_STATE_ID_STATE)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_alloc_set_state_data_bounds_check(const bcmolt_xgpon_alloc_set_state_data *this, bcmolt_presence_mask fields_present, bcmolt_xgpon_alloc_set_state_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ALLOC_SET_STATE_ID_STATE)) != 0)
+    {
+        switch (this->state)
+        {
+            case BCMOLT_ALLOC_OPERATION_ACTIVATE:
+                break;
+            case BCMOLT_ALLOC_OPERATION_DEACTIVATE:
+                break;
+            default:
+                *failed_prop = BCMOLT_XGPON_ALLOC_SET_STATE_ID_STATE;
+                return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_xgpon_gem_port_key_set_default(bcmolt_xgpon_gem_port_key *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_GEM_PORT_KEY_ID_PON_NI)) != 0)
+    {
+        this->pon_ni = (bcmolt_xgpon_ni) 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_GEM_PORT_KEY_ID_GEM_PORT_ID)) != 0)
+    {
+        this->gem_port_id = (bcmolt_xgpon_gem_id) 0;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_gem_port_key_pack(const bcmolt_xgpon_gem_port_key *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_GEM_PORT_KEY_ID_PON_NI)) != 0)
+    {
+        if (!bcmolt_buf_write_u8(buf, (uint8_t) this->pon_ni))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_GEM_PORT_KEY_ID_GEM_PORT_ID)) != 0)
+    {
+        if (!bcmolt_buf_write_u16(buf, (uint16_t) this->gem_port_id))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_xgpon_gem_port_key_get_packed_length(const bcmolt_xgpon_gem_port_key *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_XGPON_GEM_PORT_KEY_ID_PON_NI)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_GEM_PORT_KEY_ID_GEM_PORT_ID)) != 0)
+    {
+        count += 2;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_gem_port_key_unpack(bcmolt_xgpon_gem_port_key *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_GEM_PORT_KEY_ID_PON_NI)) != 0)
+    {
+        if (!bcmolt_buf_read_u8(buf, (uint8_t *) &this->pon_ni))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_GEM_PORT_KEY_ID_GEM_PORT_ID)) != 0)
+    {
+        if (!bcmolt_buf_read_u16(buf, (uint16_t *) &this->gem_port_id))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_gem_port_key_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_GEM_PORT_KEY_ID_PON_NI)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_GEM_PORT_KEY_ID_GEM_PORT_ID)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 2))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_gem_port_key_bounds_check(const bcmolt_xgpon_gem_port_key *this, bcmolt_presence_mask fields_present, bcmolt_xgpon_gem_port_key_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_GEM_PORT_KEY_ID_PON_NI)) != 0)
+    {
+        if (this->pon_ni > (bcmolt_xgpon_ni) 7)
+        {
+            *failed_prop = BCMOLT_XGPON_GEM_PORT_KEY_ID_PON_NI;
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_GEM_PORT_KEY_ID_GEM_PORT_ID)) != 0)
+    {
+        if (this->gem_port_id > (bcmolt_xgpon_gem_id) 65533U)
+        {
+            *failed_prop = BCMOLT_XGPON_GEM_PORT_KEY_ID_GEM_PORT_ID;
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_xgpon_gem_port_cfg_data_set_default(bcmolt_xgpon_gem_port_cfg_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_GEM_PORT_CFG_ID_CONFIGURATION)) != 0)
+    {
+        this->configuration.direction = BCMOLT_GEM_PORT_DIRECTION_DOWNSTREAM;
+        this->configuration.type = BCMOLT_GEM_PORT_TYPE_UNICAST;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_GEM_PORT_CFG_ID_ONU_ID)) != 0)
+    {
+        this->onu_id = (bcmolt_xgpon_onu_id) 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_GEM_PORT_CFG_ID_GEM_PORT_STATE)) != 0)
+    {
+        this->gem_port_state = BCMOLT_XGPON_GEM_PORT_STATE_NOT_CONFIGURED;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_GEM_PORT_CFG_ID_ENCRYPTION_MODE)) != 0)
+    {
+        this->encryption_mode = BCMOLT_CONTROL_STATE_DISABLE;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_GEM_PORT_CFG_ID_UPSTREAM_DESTINATION_QUEUE)) != 0)
+    {
+        this->upstream_destination_queue = BCMOLT_US_GEM_PORT_DESTINATION_DATA;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_GEM_PORT_CFG_ID_CONTROL)) != 0)
+    {
+        this->control = BCMOLT_CONTROL_STATE_DISABLE;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_gem_port_cfg_data_pack(const bcmolt_xgpon_gem_port_cfg_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_GEM_PORT_CFG_ID_CONFIGURATION)) != 0)
+    {
+        if (!bcmolt_gem_port_configuration_pack(&this->configuration, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_GEM_PORT_CFG_ID_ONU_ID)) != 0)
+    {
+        if (!bcmolt_buf_write_u16(buf, (uint16_t) this->onu_id))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_GEM_PORT_CFG_ID_GEM_PORT_STATE)) != 0)
+    {
+        if (!bcmolt_xgpon_gem_port_state_pack(this->gem_port_state, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_GEM_PORT_CFG_ID_ENCRYPTION_MODE)) != 0)
+    {
+        if (!bcmolt_control_state_pack(this->encryption_mode, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_GEM_PORT_CFG_ID_UPSTREAM_DESTINATION_QUEUE)) != 0)
+    {
+        if (!bcmolt_us_gem_port_destination_pack(this->upstream_destination_queue, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_GEM_PORT_CFG_ID_CONTROL)) != 0)
+    {
+        if (!bcmolt_control_state_pack(this->control, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_xgpon_gem_port_cfg_data_get_packed_length(const bcmolt_xgpon_gem_port_cfg_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_XGPON_GEM_PORT_CFG_ID_CONFIGURATION)) != 0)
+    {
+        count += 2;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_GEM_PORT_CFG_ID_ONU_ID)) != 0)
+    {
+        count += 2;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_GEM_PORT_CFG_ID_GEM_PORT_STATE)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_GEM_PORT_CFG_ID_ENCRYPTION_MODE)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_GEM_PORT_CFG_ID_UPSTREAM_DESTINATION_QUEUE)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_GEM_PORT_CFG_ID_CONTROL)) != 0)
+    {
+        count += 1;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_gem_port_cfg_data_unpack(bcmolt_xgpon_gem_port_cfg_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_GEM_PORT_CFG_ID_CONFIGURATION)) != 0)
+    {
+        if (!bcmolt_gem_port_configuration_unpack(&this->configuration, buf, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_GEM_PORT_CFG_ID_ONU_ID)) != 0)
+    {
+        if (!bcmolt_buf_read_u16(buf, (uint16_t *) &this->onu_id))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_GEM_PORT_CFG_ID_GEM_PORT_STATE)) != 0)
+    {
+        if (!bcmolt_xgpon_gem_port_state_unpack(&this->gem_port_state, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_GEM_PORT_CFG_ID_ENCRYPTION_MODE)) != 0)
+    {
+        if (!bcmolt_control_state_unpack(&this->encryption_mode, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_GEM_PORT_CFG_ID_UPSTREAM_DESTINATION_QUEUE)) != 0)
+    {
+        if (!bcmolt_us_gem_port_destination_unpack(&this->upstream_destination_queue, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_GEM_PORT_CFG_ID_CONTROL)) != 0)
+    {
+        if (!bcmolt_control_state_unpack(&this->control, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_gem_port_cfg_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_GEM_PORT_CFG_ID_CONFIGURATION)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 2))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_GEM_PORT_CFG_ID_ONU_ID)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 2))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_GEM_PORT_CFG_ID_GEM_PORT_STATE)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_GEM_PORT_CFG_ID_ENCRYPTION_MODE)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_GEM_PORT_CFG_ID_UPSTREAM_DESTINATION_QUEUE)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_GEM_PORT_CFG_ID_CONTROL)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_gem_port_cfg_data_bounds_check(const bcmolt_xgpon_gem_port_cfg_data *this, bcmolt_presence_mask fields_present, bcmolt_xgpon_gem_port_cfg_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_GEM_PORT_CFG_ID_CONFIGURATION)) != 0)
+    {
+        if (!bcmolt_gem_port_configuration_bounds_check(&this->configuration))
+        {
+            *failed_prop = BCMOLT_XGPON_GEM_PORT_CFG_ID_CONFIGURATION;
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_GEM_PORT_CFG_ID_ONU_ID)) != 0)
+    {
+        if (this->onu_id > (bcmolt_xgpon_onu_id) 511)
+        {
+            *failed_prop = BCMOLT_XGPON_GEM_PORT_CFG_ID_ONU_ID;
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_GEM_PORT_CFG_ID_GEM_PORT_STATE)) != 0)
+    {
+        switch (this->gem_port_state)
+        {
+            case BCMOLT_XGPON_GEM_PORT_STATE_NOT_CONFIGURED:
+                break;
+            case BCMOLT_XGPON_GEM_PORT_STATE_INACTIVE:
+                break;
+            case BCMOLT_XGPON_GEM_PORT_STATE_ACTIVE:
+                break;
+            default:
+                *failed_prop = BCMOLT_XGPON_GEM_PORT_CFG_ID_GEM_PORT_STATE;
+                return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_GEM_PORT_CFG_ID_ENCRYPTION_MODE)) != 0)
+    {
+        switch (this->encryption_mode)
+        {
+            case BCMOLT_CONTROL_STATE_DISABLE:
+                break;
+            case BCMOLT_CONTROL_STATE_ENABLE:
+                break;
+            default:
+                *failed_prop = BCMOLT_XGPON_GEM_PORT_CFG_ID_ENCRYPTION_MODE;
+                return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_GEM_PORT_CFG_ID_UPSTREAM_DESTINATION_QUEUE)) != 0)
+    {
+        switch (this->upstream_destination_queue)
+        {
+            case BCMOLT_US_GEM_PORT_DESTINATION_DATA:
+                break;
+            case BCMOLT_US_GEM_PORT_DESTINATION_CPU:
+                break;
+            case BCMOLT_US_GEM_PORT_DESTINATION_OMCI:
+                break;
+            default:
+                *failed_prop = BCMOLT_XGPON_GEM_PORT_CFG_ID_UPSTREAM_DESTINATION_QUEUE;
+                return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_GEM_PORT_CFG_ID_CONTROL)) != 0)
+    {
+        switch (this->control)
+        {
+            case BCMOLT_CONTROL_STATE_DISABLE:
+                break;
+            case BCMOLT_CONTROL_STATE_ENABLE:
+                break;
+            default:
+                *failed_prop = BCMOLT_XGPON_GEM_PORT_CFG_ID_CONTROL;
+                return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_xgpon_gem_port_stat_data_set_default(bcmolt_xgpon_gem_port_stat_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_GEM_PORT_STAT_ID_TX_BYTES)) != 0)
+    {
+        this->tx_bytes = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_GEM_PORT_STAT_ID_TX_PACKETS)) != 0)
+    {
+        this->tx_packets = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_GEM_PORT_STAT_ID_RX_PACKETS)) != 0)
+    {
+        this->rx_packets = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_GEM_PORT_STAT_ID_RX_BYTES)) != 0)
+    {
+        this->rx_bytes = 0;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_gem_port_stat_data_pack(const bcmolt_xgpon_gem_port_stat_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_GEM_PORT_STAT_ID_TX_BYTES)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->tx_bytes))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_GEM_PORT_STAT_ID_TX_PACKETS)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->tx_packets))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_GEM_PORT_STAT_ID_RX_PACKETS)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->rx_packets))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_GEM_PORT_STAT_ID_RX_BYTES)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->rx_bytes))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_xgpon_gem_port_stat_data_get_packed_length(const bcmolt_xgpon_gem_port_stat_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_XGPON_GEM_PORT_STAT_ID_TX_BYTES)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_GEM_PORT_STAT_ID_TX_PACKETS)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_GEM_PORT_STAT_ID_RX_PACKETS)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_GEM_PORT_STAT_ID_RX_BYTES)) != 0)
+    {
+        count += 8;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_gem_port_stat_data_unpack(bcmolt_xgpon_gem_port_stat_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_GEM_PORT_STAT_ID_TX_BYTES)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->tx_bytes))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_GEM_PORT_STAT_ID_TX_PACKETS)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->tx_packets))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_GEM_PORT_STAT_ID_RX_PACKETS)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->rx_packets))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_GEM_PORT_STAT_ID_RX_BYTES)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->rx_bytes))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_gem_port_stat_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_GEM_PORT_STAT_ID_TX_BYTES)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_GEM_PORT_STAT_ID_TX_PACKETS)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_GEM_PORT_STAT_ID_RX_PACKETS)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_GEM_PORT_STAT_ID_RX_BYTES)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_gem_port_stat_data_bounds_check(const bcmolt_xgpon_gem_port_stat_data *this, bcmolt_presence_mask fields_present, bcmolt_xgpon_gem_port_stat_id *failed_prop)
+{
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_xgpon_gem_port_stat_cfg_data_set_default(bcmolt_xgpon_gem_port_stat_cfg_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_GEM_PORT_STAT_CFG_ID_CFG)) != 0)
+    {
+        this->cfg.trigger.type = BCMOLT_STAT_CONDITION_TYPE_NONE;
+        this->cfg.soak.active_soak_time = 0;
+        this->cfg.soak.clear_soak_time = 0;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_gem_port_stat_cfg_data_pack(const bcmolt_xgpon_gem_port_stat_cfg_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_GEM_PORT_STAT_CFG_ID_CFG)) != 0)
+    {
+        if (!bcmolt_stat_alarm_config_pack(&this->cfg, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_xgpon_gem_port_stat_cfg_data_get_packed_length(const bcmolt_xgpon_gem_port_stat_cfg_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_XGPON_GEM_PORT_STAT_CFG_ID_CFG)) != 0)
+    {
+        count += bcmolt_stat_alarm_config_get_packed_length(&this->cfg);
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_gem_port_stat_cfg_data_unpack(bcmolt_xgpon_gem_port_stat_cfg_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_GEM_PORT_STAT_CFG_ID_CFG)) != 0)
+    {
+        if (!bcmolt_stat_alarm_config_unpack(&this->cfg, buf, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_gem_port_stat_cfg_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_GEM_PORT_STAT_CFG_ID_CFG)) != 0)
+    {
+        if (!bcmolt_stat_alarm_config_scan(packed, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_gem_port_stat_cfg_data_bounds_check(const bcmolt_xgpon_gem_port_stat_cfg_data *this, bcmolt_presence_mask fields_present, bcmolt_xgpon_gem_port_stat_cfg_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_GEM_PORT_STAT_CFG_ID_CFG)) != 0)
+    {
+        if (!bcmolt_stat_alarm_config_bounds_check(&this->cfg))
+        {
+            *failed_prop = BCMOLT_XGPON_GEM_PORT_STAT_CFG_ID_CFG;
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_xgpon_gem_port_stat_alarm_cleared_data_set_default(bcmolt_xgpon_gem_port_stat_alarm_cleared_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_GEM_PORT_STAT_ALARM_CLEARED_ID_STAT)) != 0)
+    {
+        this->stat = BCMOLT_XGPON_GEM_PORT_STAT_ID_TX_BYTES;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_gem_port_stat_alarm_cleared_data_pack(const bcmolt_xgpon_gem_port_stat_alarm_cleared_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_GEM_PORT_STAT_ALARM_CLEARED_ID_STAT)) != 0)
+    {
+        if (!bcmolt_xgpon_gem_port_stat_id_pack(this->stat, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_xgpon_gem_port_stat_alarm_cleared_data_get_packed_length(const bcmolt_xgpon_gem_port_stat_alarm_cleared_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_XGPON_GEM_PORT_STAT_ALARM_CLEARED_ID_STAT)) != 0)
+    {
+        count += 2;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_gem_port_stat_alarm_cleared_data_unpack(bcmolt_xgpon_gem_port_stat_alarm_cleared_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_GEM_PORT_STAT_ALARM_CLEARED_ID_STAT)) != 0)
+    {
+        if (!bcmolt_xgpon_gem_port_stat_id_unpack(&this->stat, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_gem_port_stat_alarm_cleared_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_GEM_PORT_STAT_ALARM_CLEARED_ID_STAT)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 2))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_gem_port_stat_alarm_cleared_data_bounds_check(const bcmolt_xgpon_gem_port_stat_alarm_cleared_data *this, bcmolt_presence_mask fields_present, bcmolt_xgpon_gem_port_stat_alarm_cleared_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_GEM_PORT_STAT_ALARM_CLEARED_ID_STAT)) != 0)
+    {
+        switch (this->stat)
+        {
+            case BCMOLT_XGPON_GEM_PORT_STAT_ID_TX_BYTES:
+                break;
+            case BCMOLT_XGPON_GEM_PORT_STAT_ID_TX_PACKETS:
+                break;
+            case BCMOLT_XGPON_GEM_PORT_STAT_ID_RX_PACKETS:
+                break;
+            case BCMOLT_XGPON_GEM_PORT_STAT_ID_RX_BYTES:
+                break;
+            default:
+                *failed_prop = BCMOLT_XGPON_GEM_PORT_STAT_ALARM_CLEARED_ID_STAT;
+                return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_xgpon_gem_port_stat_alarm_raised_data_set_default(bcmolt_xgpon_gem_port_stat_alarm_raised_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_GEM_PORT_STAT_ALARM_RAISED_ID_STAT)) != 0)
+    {
+        this->stat = BCMOLT_XGPON_GEM_PORT_STAT_ID_TX_BYTES;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_gem_port_stat_alarm_raised_data_pack(const bcmolt_xgpon_gem_port_stat_alarm_raised_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_GEM_PORT_STAT_ALARM_RAISED_ID_STAT)) != 0)
+    {
+        if (!bcmolt_xgpon_gem_port_stat_id_pack(this->stat, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_xgpon_gem_port_stat_alarm_raised_data_get_packed_length(const bcmolt_xgpon_gem_port_stat_alarm_raised_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_XGPON_GEM_PORT_STAT_ALARM_RAISED_ID_STAT)) != 0)
+    {
+        count += 2;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_gem_port_stat_alarm_raised_data_unpack(bcmolt_xgpon_gem_port_stat_alarm_raised_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_GEM_PORT_STAT_ALARM_RAISED_ID_STAT)) != 0)
+    {
+        if (!bcmolt_xgpon_gem_port_stat_id_unpack(&this->stat, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_gem_port_stat_alarm_raised_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_GEM_PORT_STAT_ALARM_RAISED_ID_STAT)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 2))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_gem_port_stat_alarm_raised_data_bounds_check(const bcmolt_xgpon_gem_port_stat_alarm_raised_data *this, bcmolt_presence_mask fields_present, bcmolt_xgpon_gem_port_stat_alarm_raised_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_GEM_PORT_STAT_ALARM_RAISED_ID_STAT)) != 0)
+    {
+        switch (this->stat)
+        {
+            case BCMOLT_XGPON_GEM_PORT_STAT_ID_TX_BYTES:
+                break;
+            case BCMOLT_XGPON_GEM_PORT_STAT_ID_TX_PACKETS:
+                break;
+            case BCMOLT_XGPON_GEM_PORT_STAT_ID_RX_PACKETS:
+                break;
+            case BCMOLT_XGPON_GEM_PORT_STAT_ID_RX_BYTES:
+                break;
+            default:
+                *failed_prop = BCMOLT_XGPON_GEM_PORT_STAT_ALARM_RAISED_ID_STAT;
+                return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_xgpon_gem_port_auto_cfg_data_set_default(bcmolt_xgpon_gem_port_auto_cfg_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_GEM_PORT_AUTO_CFG_ID_STAT_ALARM_CLEARED)) != 0)
+    {
+        this->stat_alarm_cleared = BCMOS_FALSE;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_GEM_PORT_AUTO_CFG_ID_STAT_ALARM_RAISED)) != 0)
+    {
+        this->stat_alarm_raised = BCMOS_FALSE;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_gem_port_auto_cfg_data_pack(const bcmolt_xgpon_gem_port_auto_cfg_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_GEM_PORT_AUTO_CFG_ID_STAT_ALARM_CLEARED)) != 0)
+    {
+        if (!bcmolt_buf_write_bool(buf, this->stat_alarm_cleared))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_GEM_PORT_AUTO_CFG_ID_STAT_ALARM_RAISED)) != 0)
+    {
+        if (!bcmolt_buf_write_bool(buf, this->stat_alarm_raised))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_xgpon_gem_port_auto_cfg_data_get_packed_length(const bcmolt_xgpon_gem_port_auto_cfg_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_XGPON_GEM_PORT_AUTO_CFG_ID_STAT_ALARM_CLEARED)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_GEM_PORT_AUTO_CFG_ID_STAT_ALARM_RAISED)) != 0)
+    {
+        count += 1;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_gem_port_auto_cfg_data_unpack(bcmolt_xgpon_gem_port_auto_cfg_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_GEM_PORT_AUTO_CFG_ID_STAT_ALARM_CLEARED)) != 0)
+    {
+        if (!bcmolt_buf_read_bool(buf, &this->stat_alarm_cleared))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_GEM_PORT_AUTO_CFG_ID_STAT_ALARM_RAISED)) != 0)
+    {
+        if (!bcmolt_buf_read_bool(buf, &this->stat_alarm_raised))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_gem_port_auto_cfg_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_GEM_PORT_AUTO_CFG_ID_STAT_ALARM_CLEARED)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_GEM_PORT_AUTO_CFG_ID_STAT_ALARM_RAISED)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_gem_port_auto_cfg_data_bounds_check(const bcmolt_xgpon_gem_port_auto_cfg_data *this, bcmolt_presence_mask fields_present, bcmolt_xgpon_gem_port_auto_cfg_id *failed_prop)
+{
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_xgpon_iwf_key_set_default(bcmolt_xgpon_iwf_key *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_IWF_KEY_ID_PON_NI)) != 0)
+    {
+        this->pon_ni = (bcmolt_xgpon_ni) 0;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_iwf_key_pack(const bcmolt_xgpon_iwf_key *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_IWF_KEY_ID_PON_NI)) != 0)
+    {
+        if (!bcmolt_buf_write_u8(buf, (uint8_t) this->pon_ni))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_xgpon_iwf_key_get_packed_length(const bcmolt_xgpon_iwf_key *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_XGPON_IWF_KEY_ID_PON_NI)) != 0)
+    {
+        count += 1;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_iwf_key_unpack(bcmolt_xgpon_iwf_key *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_IWF_KEY_ID_PON_NI)) != 0)
+    {
+        if (!bcmolt_buf_read_u8(buf, (uint8_t *) &this->pon_ni))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_iwf_key_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_IWF_KEY_ID_PON_NI)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_iwf_key_bounds_check(const bcmolt_xgpon_iwf_key *this, bcmolt_presence_mask fields_present, bcmolt_xgpon_iwf_key_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_IWF_KEY_ID_PON_NI)) != 0)
+    {
+        if (this->pon_ni > (bcmolt_xgpon_ni) 7)
+        {
+            *failed_prop = BCMOLT_XGPON_IWF_KEY_ID_PON_NI;
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_xgpon_iwf_cfg_data_set_default(bcmolt_xgpon_iwf_cfg_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_IWF_CFG_ID_US_OTAG_DIRECT_TPID)) != 0)
+    {
+        this->us_otag_direct_tpid = 33024U;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_IWF_CFG_ID_DS_TPID)) != 0)
+    {
+        this->ds_tpid.arr[0] = 33024U;
+        this->ds_tpid.arr[1] = 34984U;
+        this->ds_tpid.arr[2] = 37120U;
+        this->ds_tpid.arr[3] = 37376U;
+        this->ds_tpid.arr[4] = 33024U;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_iwf_cfg_data_pack(const bcmolt_xgpon_iwf_cfg_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_IWF_CFG_ID_US_OTAG_DIRECT_TPID)) != 0)
+    {
+        if (!bcmolt_buf_write_u16(buf, this->us_otag_direct_tpid))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_IWF_CFG_ID_DS_TPID)) != 0)
+    {
+        if (!bcmolt_arr_u16_5_hex_pack(&this->ds_tpid, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_xgpon_iwf_cfg_data_get_packed_length(const bcmolt_xgpon_iwf_cfg_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_XGPON_IWF_CFG_ID_US_OTAG_DIRECT_TPID)) != 0)
+    {
+        count += 2;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_IWF_CFG_ID_DS_TPID)) != 0)
+    {
+        count += 10;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_iwf_cfg_data_unpack(bcmolt_xgpon_iwf_cfg_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_IWF_CFG_ID_US_OTAG_DIRECT_TPID)) != 0)
+    {
+        if (!bcmolt_buf_read_u16(buf, &this->us_otag_direct_tpid))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_IWF_CFG_ID_DS_TPID)) != 0)
+    {
+        if (!bcmolt_arr_u16_5_hex_unpack(&this->ds_tpid, buf, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_iwf_cfg_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_IWF_CFG_ID_US_OTAG_DIRECT_TPID)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 2))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_IWF_CFG_ID_DS_TPID)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 10))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_iwf_cfg_data_bounds_check(const bcmolt_xgpon_iwf_cfg_data *this, bcmolt_presence_mask fields_present, bcmolt_xgpon_iwf_cfg_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_IWF_CFG_ID_DS_TPID)) != 0)
+    {
+        if (!bcmolt_arr_u16_5_hex_bounds_check(&this->ds_tpid))
+        {
+            *failed_prop = BCMOLT_XGPON_IWF_CFG_ID_DS_TPID;
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_xgpon_ni_key_set_default(bcmolt_xgpon_ni_key *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_KEY_ID_PON_NI)) != 0)
+    {
+        this->pon_ni = (bcmolt_xgpon_ni) 0;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_ni_key_pack(const bcmolt_xgpon_ni_key *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_KEY_ID_PON_NI)) != 0)
+    {
+        if (!bcmolt_buf_write_u8(buf, (uint8_t) this->pon_ni))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_xgpon_ni_key_get_packed_length(const bcmolt_xgpon_ni_key *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_KEY_ID_PON_NI)) != 0)
+    {
+        count += 1;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_ni_key_unpack(bcmolt_xgpon_ni_key *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_KEY_ID_PON_NI)) != 0)
+    {
+        if (!bcmolt_buf_read_u8(buf, (uint8_t *) &this->pon_ni))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_ni_key_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_KEY_ID_PON_NI)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_ni_key_bounds_check(const bcmolt_xgpon_ni_key *this, bcmolt_presence_mask fields_present, bcmolt_xgpon_ni_key_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_KEY_ID_PON_NI)) != 0)
+    {
+        if (this->pon_ni > (bcmolt_xgpon_ni) 7)
+        {
+            *failed_prop = BCMOLT_XGPON_NI_KEY_ID_PON_NI;
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_xgpon_ni_cfg_data_set_default(bcmolt_xgpon_ni_cfg_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_CFG_ID_HW_PON_ID)) != 0)
+    {
+        this->hw_pon_id.pon_id_1 = 0;
+        this->hw_pon_id.pon_id_2 = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_CFG_ID_AVAILABLE_BANDWIDTH)) != 0)
+    {
+        this->available_bandwidth.cbr_bw = 0;
+        this->available_bandwidth.total_bw = 0;
+        this->available_bandwidth.next_onu_total_bw = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_CFG_ID_NUMBER_OF_ACTIVE_ONUS)) != 0)
+    {
+        this->number_of_active_onus = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_CFG_ID_PON_STATUS)) != 0)
+    {
+        this->pon_status.state = BCMOLT_PON_STATE_INACTIVE;
+        this->pon_status.los_status = BCMOLT_STATUS_OFF;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_CFG_ID_PON_DISTANCE)) != 0)
+    {
+        this->pon_distance.max_log_distance = 20;
+        this->pon_distance.max_diff_reach = 20;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_CFG_ID_RANGING_WINDOW_SIZE)) != 0)
+    {
+        this->ranging_window_size = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_CFG_ID_EQD_CYCLES_NUMBER)) != 0)
+    {
+        this->eqd_cycles_number = 2;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_CFG_ID_DRIFT_CONTROL)) != 0)
+    {
+        this->drift_control.drift_interval = 1000;
+        this->drift_control.drift_limit = 8;
+        this->drift_control.transmission_control_limit = 16;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_CFG_ID_LOS_ALARM_THRESHOLD)) != 0)
+    {
+        this->los_alarm_threshold = 4;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_CFG_ID_LOS_INITIAL_VALUE)) != 0)
+    {
+        this->los_initial_value = BCMOLT_STATUS_OFF;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_CFG_ID_ONU_ALARMS_THRESHOLDS)) != 0)
+    {
+        this->onu_alarms_thresholds.losi = 4;
+        this->onu_alarms_thresholds.lobi = 4;
+        this->onu_alarms_thresholds.looci = 3;
+        this->onu_alarms_thresholds.lopci = 3;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_CFG_ID_BER_MONITOR)) != 0)
+    {
+        this->ber_monitor.us_ber_interval = 5000;
+        this->ber_monitor.sf_threshold = 3;
+        this->ber_monitor.sd_threshold = 5;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_CFG_ID_ONU_ACTIVATION)) != 0)
+    {
+        this->onu_activation.key_exchange = BCMOLT_CONTROL_STATE_DISABLE;
+        this->onu_activation.fail_due_to_regis_auto_fail = BCMOLT_CONTROL_STATE_ENABLE;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_CFG_ID_SN_ACQUISITION)) != 0)
+    {
+        this->sn_acquisition.interval = 1000;
+        this->sn_acquisition.control = BCMOLT_CONTROL_STATE_DISABLE;
+        this->sn_acquisition.onu_post_discovery_mode = BCMOLT_ONU_POST_DISCOVERY_MODE_NONE;
+        this->sn_acquisition.burst_profile = (bcmolt_burst_profile_index) 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_CFG_ID_KEY_EXCHANGE)) != 0)
+    {
+        this->key_exchange.interval = 10000;
+        this->key_exchange.control = BCMOLT_CONTROL_STATE_DISABLE;
+        this->key_exchange.encrypted_ports_only = BCMOLT_CONTROL_STATE_DISABLE;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_CFG_ID_PROTECTION_SWITCHING)) != 0)
+    {
+        this->protection_switching.timeout = 100;
+        this->protection_switching.gpio_pin = BCMOLT_GPIO_PIN_UNCONFIGURED;
+        this->protection_switching.fast_ranging = BCMOS_FALSE;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_CFG_ID_PROTECTION_SWITCHING_DEBUG)) != 0)
+    {
+        this->protection_switching_debug.data_map_delay_ms = 0;
+        this->protection_switching_debug.rerange_send_ranging_time = BCMOS_FALSE;
+        this->protection_switching_debug.rerange_send_ranging_time_delay = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_CFG_ID_CBR_RT_ALLOCATION_PROFILE)) != 0)
+    {
+        this->cbr_rt_allocation_profile.ma_7 = 64;
+        this->cbr_rt_allocation_profile.ma_3 = 256;
+        this->cbr_rt_allocation_profile.ma_1 = 512;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_CFG_ID_CBR_NRT_ALLOCATION_PROFILE)) != 0)
+    {
+        this->cbr_nrt_allocation_profile.arr[0] = 4096;
+        this->cbr_nrt_allocation_profile.arr[1] = 8192;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_CFG_ID_POWER_MANAGEMENT)) != 0)
+    {
+        this->power_management.ilowpower = 1600;
+        this->power_management.iaware = 160;
+        this->power_management.itransinit = 80;
+        this->power_management.itxinit = 40;
+        this->power_management.irxoff = 1600;
+        this->power_management.low_power_clobi = 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_CFG_ID_ROGUE_ONU_DETECTION_PROCESS)) != 0)
+    {
+        this->rogue_onu_detection_process.control = BCMOLT_CONTROL_STATE_DISABLE;
+        this->rogue_onu_detection_process.detection_algorithm.algorithm_type = BCMOLT_ROGUE_DETECTION_ALGORITHM_TYPE_EARLY_ROGUE_DETECTION;
+        this->rogue_onu_detection_process.detection_algorithm.u.early_rogue_detection.measurement_type = BCMOLT_ROGUE_DETECTION_WINDOW_SILENT_WINDOW;
+        this->rogue_onu_detection_process.detection_algorithm.u.early_rogue_detection.interval = 10000;
+        this->rogue_onu_detection_process.detection_algorithm.u.early_rogue_detection.second_ranging_window = BCMOS_FALSE;
+        this->rogue_onu_detection_process.detection_algorithm.u.early_rogue_detection.alloc_type_to_scan = BCMOLT_ALLOC_TYPE_TO_SCAN_ALL;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_CFG_ID_PERIODIC_STANDBY_PON_MONITORING)) != 0)
+    {
+        this->periodic_standby_pon_monitoring.interval = 5000;
+        this->periodic_standby_pon_monitoring.control = BCMOLT_CONTROL_STATE_DISABLE;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_CFG_ID_DBA_MODE)) != 0)
+    {
+        this->dba_mode = BCMOLT_DBA_MODE_NORMAL;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_CFG_ID_PLOAM_HANDLING)) != 0)
+    {
+        this->ploam_handling.ack_timeout = 2000;
+        this->ploam_handling.retrans_ranging_time = 0;
+        this->ploam_handling.retrans_assign_alloc_id = 0;
+        this->ploam_handling.retrans_key_control = 0;
+        this->ploam_handling.retrans_request_registration = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_CFG_ID_MIN_DATA_ALLOC_ID)) != 0)
+    {
+        this->min_data_alloc_id = (bcmolt_xgpon_alloc_id) 1024;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_CFG_ID_MIN_DATA_GEM_PORT_ID)) != 0)
+    {
+        this->min_data_gem_port_id = (bcmolt_xgpon_gem_id) 1024;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_CFG_ID_MULTICAST_KEY)) != 0)
+    {
+        memset(this->multicast_key.key.bytes, 0, sizeof(this->multicast_key.key.bytes));
+        this->multicast_key.key_control = BCMOS_FALSE;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_CFG_ID_PRBS_CHECKER)) != 0)
+    {
+        this->prbs_checker.polynom = BCMOLT_PRBS_POLYNOMIAL_PRBS_7;
+        this->prbs_checker.mode = BCMOLT_PRBS_CHECKER_MODE_SELF_SYNC;
+        this->prbs_checker.data_invert = BCMOS_FALSE;
+        this->prbs_checker.control = BCMOLT_CONTROL_STATE_DISABLE;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_CFG_ID_PRBS_GENERATOR)) != 0)
+    {
+        this->prbs_generator.polynom = BCMOLT_PRBS_POLYNOMIAL_PRBS_7;
+        this->prbs_generator.error_insert = BCMOS_FALSE;
+        this->prbs_generator.invert = BCMOS_FALSE;
+        this->prbs_generator.control = BCMOLT_CONTROL_STATE_DISABLE;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_CFG_ID_PRBS_STATUS)) != 0)
+    {
+        this->prbs_status.lock_state = BCMOLT_PRBS_LOCK_STATE_UNLOCKED;
+        this->prbs_status.error_counts = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_CFG_ID_AUTOMATIC_ONU_DEACTIVATION)) != 0)
+    {
+        this->automatic_onu_deactivation.los = BCMOS_FALSE;
+        this->automatic_onu_deactivation.onu_alarms = BCMOS_FALSE;
+        this->automatic_onu_deactivation.tiwi = BCMOS_FALSE;
+        this->automatic_onu_deactivation.ack_timeout = BCMOS_FALSE;
+        this->automatic_onu_deactivation.sfi = BCMOS_FALSE;
+        this->automatic_onu_deactivation.loki = BCMOS_FALSE;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_CFG_ID_US_BANDWIDTH_LIMIT)) != 0)
+    {
+        this->us_bandwidth_limit = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_CFG_ID_ALL_ONUS)) != 0)
+    {
+        this->all_onus.len = 0;
+        this->all_onus.val = NULL;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_CFG_ID_ALL_MCAST_GEM_PORTS)) != 0)
+    {
+        this->all_mcast_gem_ports.len = 0;
+        this->all_mcast_gem_ports.val = NULL;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_CFG_ID_DEBUG)) != 0)
+    {
+        this->debug.increase_available_cbr_bw = BCMOS_FALSE;
+        this->debug.inter_burst_gap_in_bytes = 512;
+        this->debug.number_of_gem_ports_per_onu = 64;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_CFG_ID_ONU_UPGRADE_PARAMS)) != 0)
+    {
+        this->onu_upgrade_params.response_timeout_ms = 1000;
+        this->onu_upgrade_params.max_retry_count = 23;
+        this->onu_upgrade_params.omci_format = BCMOLT_OMCI_DEVICE_ID_EXTENDED;
+        this->onu_upgrade_params.window_size = 32;
+        this->onu_upgrade_params.activate_commit = BCMOS_FALSE;
+        this->onu_upgrade_params.delay_for_commit_ms = 40000UL;
+        this->onu_upgrade_params.max_activation_attempts = 23;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_CFG_ID_DS_FEC_MODE)) != 0)
+    {
+        this->ds_fec_mode = BCMOLT_CONTROL_STATE_ENABLE;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_CFG_ID_DBA_TYPE)) != 0)
+    {
+        this->dba_type = BCMOLT_DBA_TYPE_INTERNAL;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_CFG_ID_ONU_TUNING)) != 0)
+    {
+        this->onu_tuning.tsource = 1000;
+        this->onu_tuning.ttarget = 1000;
+        this->onu_tuning.request_registration_required = BCMOS_TRUE;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_ni_cfg_data_pack(const bcmolt_xgpon_ni_cfg_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_CFG_ID_HW_PON_ID)) != 0)
+    {
+        if (!bcmolt_hw_pon_id_pack(&this->hw_pon_id, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_CFG_ID_AVAILABLE_BANDWIDTH)) != 0)
+    {
+        if (!bcmolt_pon_available_bandwidth_pack(&this->available_bandwidth, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_CFG_ID_NUMBER_OF_ACTIVE_ONUS)) != 0)
+    {
+        if (!bcmolt_buf_write_u16(buf, this->number_of_active_onus))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_CFG_ID_PON_STATUS)) != 0)
+    {
+        if (!bcmolt_pon_status_pack(&this->pon_status, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_CFG_ID_PON_DISTANCE)) != 0)
+    {
+        if (!bcmolt_pon_distance_pack(&this->pon_distance, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_CFG_ID_RANGING_WINDOW_SIZE)) != 0)
+    {
+        if (!bcmolt_buf_write_u32(buf, this->ranging_window_size))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_CFG_ID_EQD_CYCLES_NUMBER)) != 0)
+    {
+        if (!bcmolt_buf_write_u32(buf, this->eqd_cycles_number))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_CFG_ID_DRIFT_CONTROL)) != 0)
+    {
+        if (!bcmolt_pon_drift_control_pack(&this->drift_control, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_CFG_ID_LOS_ALARM_THRESHOLD)) != 0)
+    {
+        if (!bcmolt_buf_write_u8(buf, this->los_alarm_threshold))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_CFG_ID_LOS_INITIAL_VALUE)) != 0)
+    {
+        if (!bcmolt_status_pack(this->los_initial_value, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_CFG_ID_ONU_ALARMS_THRESHOLDS)) != 0)
+    {
+        if (!bcmolt_xgpon_onu_alarms_thresholds_pack(&this->onu_alarms_thresholds, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_CFG_ID_BER_MONITOR)) != 0)
+    {
+        if (!bcmolt_ber_monitor_params_pack(&this->ber_monitor, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_CFG_ID_ONU_ACTIVATION)) != 0)
+    {
+        if (!bcmolt_xgpon_onu_activation_pack(&this->onu_activation, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_CFG_ID_SN_ACQUISITION)) != 0)
+    {
+        if (!bcmolt_xgpon_sn_acquisition_pack(&this->sn_acquisition, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_CFG_ID_KEY_EXCHANGE)) != 0)
+    {
+        if (!bcmolt_xgpon_key_exchange_pack(&this->key_exchange, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_CFG_ID_PROTECTION_SWITCHING)) != 0)
+    {
+        if (!bcmolt_xgpon_protection_switching_pack(&this->protection_switching, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_CFG_ID_PROTECTION_SWITCHING_DEBUG)) != 0)
+    {
+        if (!bcmolt_xgpon_protection_switching_debug_pack(&this->protection_switching_debug, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_CFG_ID_CBR_RT_ALLOCATION_PROFILE)) != 0)
+    {
+        if (!bcmolt_cbr_rt_allocation_profile_pack(&this->cbr_rt_allocation_profile, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_CFG_ID_CBR_NRT_ALLOCATION_PROFILE)) != 0)
+    {
+        if (!bcmolt_arr_u16_2_pack(&this->cbr_nrt_allocation_profile, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_CFG_ID_POWER_MANAGEMENT)) != 0)
+    {
+        if (!bcmolt_onu_power_management_configuration_pack(&this->power_management, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_CFG_ID_ROGUE_ONU_DETECTION_PROCESS)) != 0)
+    {
+        if (!bcmolt_rogue_onu_detection_process_pack(&this->rogue_onu_detection_process, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_CFG_ID_PERIODIC_STANDBY_PON_MONITORING)) != 0)
+    {
+        if (!bcmolt_periodic_standby_pon_monitoring_pack(&this->periodic_standby_pon_monitoring, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_CFG_ID_DBA_MODE)) != 0)
+    {
+        if (!bcmolt_dba_mode_pack(this->dba_mode, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_CFG_ID_PLOAM_HANDLING)) != 0)
+    {
+        if (!bcmolt_xgpon_ploam_handling_pack(&this->ploam_handling, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_CFG_ID_MIN_DATA_ALLOC_ID)) != 0)
+    {
+        if (!bcmolt_buf_write_u16(buf, (uint16_t) this->min_data_alloc_id))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_CFG_ID_MIN_DATA_GEM_PORT_ID)) != 0)
+    {
+        if (!bcmolt_buf_write_u16(buf, (uint16_t) this->min_data_gem_port_id))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_CFG_ID_MULTICAST_KEY)) != 0)
+    {
+        if (!bcmolt_xgpon_multicast_key_pack(&this->multicast_key, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_CFG_ID_PRBS_CHECKER)) != 0)
+    {
+        if (!bcmolt_prbs_checker_config_pack(&this->prbs_checker, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_CFG_ID_PRBS_GENERATOR)) != 0)
+    {
+        if (!bcmolt_prbs_generator_config_pack(&this->prbs_generator, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_CFG_ID_PRBS_STATUS)) != 0)
+    {
+        if (!bcmolt_prbs_status_pack(&this->prbs_status, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_CFG_ID_AUTOMATIC_ONU_DEACTIVATION)) != 0)
+    {
+        if (!bcmolt_automatic_onu_deactivation_pack(&this->automatic_onu_deactivation, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_CFG_ID_US_BANDWIDTH_LIMIT)) != 0)
+    {
+        if (!bcmolt_buf_write_u32(buf, this->us_bandwidth_limit))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_CFG_ID_ALL_ONUS)) != 0)
+    {
+        if (!bcmolt_xgpon_onu_with_state_list_u16_max_510_pack(&this->all_onus, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_CFG_ID_ALL_MCAST_GEM_PORTS)) != 0)
+    {
+        if (!bcmolt_xgpon_gem_port_with_state_list_u16_max_128_pack(&this->all_mcast_gem_ports, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_CFG_ID_DEBUG)) != 0)
+    {
+        if (!bcmolt_xgpon_ni_debug_pack(&this->debug, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_CFG_ID_ONU_UPGRADE_PARAMS)) != 0)
+    {
+        if (!bcmolt_gpon_onu_upgrade_params_pack(&this->onu_upgrade_params, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_CFG_ID_DS_FEC_MODE)) != 0)
+    {
+        if (!bcmolt_control_state_pack(this->ds_fec_mode, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_CFG_ID_DBA_TYPE)) != 0)
+    {
+        if (!bcmolt_dba_type_pack(this->dba_type, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_CFG_ID_ONU_TUNING)) != 0)
+    {
+        if (!bcmolt_onu_tuning_configuration_pack(&this->onu_tuning, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_xgpon_ni_cfg_data_get_packed_length(const bcmolt_xgpon_ni_cfg_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_CFG_ID_HW_PON_ID)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_CFG_ID_AVAILABLE_BANDWIDTH)) != 0)
+    {
+        count += 12;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_CFG_ID_NUMBER_OF_ACTIVE_ONUS)) != 0)
+    {
+        count += 2;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_CFG_ID_PON_STATUS)) != 0)
+    {
+        count += 2;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_CFG_ID_PON_DISTANCE)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_CFG_ID_RANGING_WINDOW_SIZE)) != 0)
+    {
+        count += 4;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_CFG_ID_EQD_CYCLES_NUMBER)) != 0)
+    {
+        count += 4;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_CFG_ID_DRIFT_CONTROL)) != 0)
+    {
+        count += 6;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_CFG_ID_LOS_ALARM_THRESHOLD)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_CFG_ID_LOS_INITIAL_VALUE)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_CFG_ID_ONU_ALARMS_THRESHOLDS)) != 0)
+    {
+        count += 4;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_CFG_ID_BER_MONITOR)) != 0)
+    {
+        count += 6;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_CFG_ID_ONU_ACTIVATION)) != 0)
+    {
+        count += 2;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_CFG_ID_SN_ACQUISITION)) != 0)
+    {
+        count += 7;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_CFG_ID_KEY_EXCHANGE)) != 0)
+    {
+        count += 6;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_CFG_ID_PROTECTION_SWITCHING)) != 0)
+    {
+        count += 4;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_CFG_ID_PROTECTION_SWITCHING_DEBUG)) != 0)
+    {
+        count += 5;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_CFG_ID_CBR_RT_ALLOCATION_PROFILE)) != 0)
+    {
+        count += 6;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_CFG_ID_CBR_NRT_ALLOCATION_PROFILE)) != 0)
+    {
+        count += 4;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_CFG_ID_POWER_MANAGEMENT)) != 0)
+    {
+        count += 18;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_CFG_ID_ROGUE_ONU_DETECTION_PROCESS)) != 0)
+    {
+        count += bcmolt_rogue_onu_detection_process_get_packed_length(&this->rogue_onu_detection_process);
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_CFG_ID_PERIODIC_STANDBY_PON_MONITORING)) != 0)
+    {
+        count += 5;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_CFG_ID_DBA_MODE)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_CFG_ID_PLOAM_HANDLING)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_CFG_ID_MIN_DATA_ALLOC_ID)) != 0)
+    {
+        count += 2;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_CFG_ID_MIN_DATA_GEM_PORT_ID)) != 0)
+    {
+        count += 2;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_CFG_ID_MULTICAST_KEY)) != 0)
+    {
+        count += 17;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_CFG_ID_PRBS_CHECKER)) != 0)
+    {
+        count += 4;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_CFG_ID_PRBS_GENERATOR)) != 0)
+    {
+        count += 4;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_CFG_ID_PRBS_STATUS)) != 0)
+    {
+        count += 5;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_CFG_ID_AUTOMATIC_ONU_DEACTIVATION)) != 0)
+    {
+        count += 6;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_CFG_ID_US_BANDWIDTH_LIMIT)) != 0)
+    {
+        count += 4;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_CFG_ID_ALL_ONUS)) != 0)
+    {
+        count += bcmolt_xgpon_onu_with_state_list_u16_max_510_get_packed_length(&this->all_onus);
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_CFG_ID_ALL_MCAST_GEM_PORTS)) != 0)
+    {
+        count += bcmolt_xgpon_gem_port_with_state_list_u16_max_128_get_packed_length(&this->all_mcast_gem_ports);
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_CFG_ID_DEBUG)) != 0)
+    {
+        count += 5;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_CFG_ID_ONU_UPGRADE_PARAMS)) != 0)
+    {
+        count += 14;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_CFG_ID_DS_FEC_MODE)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_CFG_ID_DBA_TYPE)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_CFG_ID_ONU_TUNING)) != 0)
+    {
+        count += 9;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_ni_cfg_data_unpack(bcmolt_xgpon_ni_cfg_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_CFG_ID_HW_PON_ID)) != 0)
+    {
+        if (!bcmolt_hw_pon_id_unpack(&this->hw_pon_id, buf, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_CFG_ID_AVAILABLE_BANDWIDTH)) != 0)
+    {
+        if (!bcmolt_pon_available_bandwidth_unpack(&this->available_bandwidth, buf, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_CFG_ID_NUMBER_OF_ACTIVE_ONUS)) != 0)
+    {
+        if (!bcmolt_buf_read_u16(buf, &this->number_of_active_onus))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_CFG_ID_PON_STATUS)) != 0)
+    {
+        if (!bcmolt_pon_status_unpack(&this->pon_status, buf, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_CFG_ID_PON_DISTANCE)) != 0)
+    {
+        if (!bcmolt_pon_distance_unpack(&this->pon_distance, buf, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_CFG_ID_RANGING_WINDOW_SIZE)) != 0)
+    {
+        if (!bcmolt_buf_read_u32(buf, &this->ranging_window_size))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_CFG_ID_EQD_CYCLES_NUMBER)) != 0)
+    {
+        if (!bcmolt_buf_read_u32(buf, &this->eqd_cycles_number))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_CFG_ID_DRIFT_CONTROL)) != 0)
+    {
+        if (!bcmolt_pon_drift_control_unpack(&this->drift_control, buf, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_CFG_ID_LOS_ALARM_THRESHOLD)) != 0)
+    {
+        if (!bcmolt_buf_read_u8(buf, &this->los_alarm_threshold))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_CFG_ID_LOS_INITIAL_VALUE)) != 0)
+    {
+        if (!bcmolt_status_unpack(&this->los_initial_value, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_CFG_ID_ONU_ALARMS_THRESHOLDS)) != 0)
+    {
+        if (!bcmolt_xgpon_onu_alarms_thresholds_unpack(&this->onu_alarms_thresholds, buf, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_CFG_ID_BER_MONITOR)) != 0)
+    {
+        if (!bcmolt_ber_monitor_params_unpack(&this->ber_monitor, buf, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_CFG_ID_ONU_ACTIVATION)) != 0)
+    {
+        if (!bcmolt_xgpon_onu_activation_unpack(&this->onu_activation, buf, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_CFG_ID_SN_ACQUISITION)) != 0)
+    {
+        if (!bcmolt_xgpon_sn_acquisition_unpack(&this->sn_acquisition, buf, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_CFG_ID_KEY_EXCHANGE)) != 0)
+    {
+        if (!bcmolt_xgpon_key_exchange_unpack(&this->key_exchange, buf, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_CFG_ID_PROTECTION_SWITCHING)) != 0)
+    {
+        if (!bcmolt_xgpon_protection_switching_unpack(&this->protection_switching, buf, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_CFG_ID_PROTECTION_SWITCHING_DEBUG)) != 0)
+    {
+        if (!bcmolt_xgpon_protection_switching_debug_unpack(&this->protection_switching_debug, buf, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_CFG_ID_CBR_RT_ALLOCATION_PROFILE)) != 0)
+    {
+        if (!bcmolt_cbr_rt_allocation_profile_unpack(&this->cbr_rt_allocation_profile, buf, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_CFG_ID_CBR_NRT_ALLOCATION_PROFILE)) != 0)
+    {
+        if (!bcmolt_arr_u16_2_unpack(&this->cbr_nrt_allocation_profile, buf, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_CFG_ID_POWER_MANAGEMENT)) != 0)
+    {
+        if (!bcmolt_onu_power_management_configuration_unpack(&this->power_management, buf, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_CFG_ID_ROGUE_ONU_DETECTION_PROCESS)) != 0)
+    {
+        if (!bcmolt_rogue_onu_detection_process_unpack(&this->rogue_onu_detection_process, buf, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_CFG_ID_PERIODIC_STANDBY_PON_MONITORING)) != 0)
+    {
+        if (!bcmolt_periodic_standby_pon_monitoring_unpack(&this->periodic_standby_pon_monitoring, buf, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_CFG_ID_DBA_MODE)) != 0)
+    {
+        if (!bcmolt_dba_mode_unpack(&this->dba_mode, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_CFG_ID_PLOAM_HANDLING)) != 0)
+    {
+        if (!bcmolt_xgpon_ploam_handling_unpack(&this->ploam_handling, buf, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_CFG_ID_MIN_DATA_ALLOC_ID)) != 0)
+    {
+        if (!bcmolt_buf_read_u16(buf, (uint16_t *) &this->min_data_alloc_id))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_CFG_ID_MIN_DATA_GEM_PORT_ID)) != 0)
+    {
+        if (!bcmolt_buf_read_u16(buf, (uint16_t *) &this->min_data_gem_port_id))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_CFG_ID_MULTICAST_KEY)) != 0)
+    {
+        if (!bcmolt_xgpon_multicast_key_unpack(&this->multicast_key, buf, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_CFG_ID_PRBS_CHECKER)) != 0)
+    {
+        if (!bcmolt_prbs_checker_config_unpack(&this->prbs_checker, buf, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_CFG_ID_PRBS_GENERATOR)) != 0)
+    {
+        if (!bcmolt_prbs_generator_config_unpack(&this->prbs_generator, buf, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_CFG_ID_PRBS_STATUS)) != 0)
+    {
+        if (!bcmolt_prbs_status_unpack(&this->prbs_status, buf, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_CFG_ID_AUTOMATIC_ONU_DEACTIVATION)) != 0)
+    {
+        if (!bcmolt_automatic_onu_deactivation_unpack(&this->automatic_onu_deactivation, buf, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_CFG_ID_US_BANDWIDTH_LIMIT)) != 0)
+    {
+        if (!bcmolt_buf_read_u32(buf, &this->us_bandwidth_limit))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_CFG_ID_ALL_ONUS)) != 0)
+    {
+        if (!bcmolt_xgpon_onu_with_state_list_u16_max_510_unpack(&this->all_onus, buf, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_CFG_ID_ALL_MCAST_GEM_PORTS)) != 0)
+    {
+        if (!bcmolt_xgpon_gem_port_with_state_list_u16_max_128_unpack(&this->all_mcast_gem_ports, buf, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_CFG_ID_DEBUG)) != 0)
+    {
+        if (!bcmolt_xgpon_ni_debug_unpack(&this->debug, buf, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_CFG_ID_ONU_UPGRADE_PARAMS)) != 0)
+    {
+        if (!bcmolt_gpon_onu_upgrade_params_unpack(&this->onu_upgrade_params, buf, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_CFG_ID_DS_FEC_MODE)) != 0)
+    {
+        if (!bcmolt_control_state_unpack(&this->ds_fec_mode, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_CFG_ID_DBA_TYPE)) != 0)
+    {
+        if (!bcmolt_dba_type_unpack(&this->dba_type, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_CFG_ID_ONU_TUNING)) != 0)
+    {
+        if (!bcmolt_onu_tuning_configuration_unpack(&this->onu_tuning, buf, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_ni_cfg_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_CFG_ID_HW_PON_ID)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_CFG_ID_AVAILABLE_BANDWIDTH)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 12))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_CFG_ID_NUMBER_OF_ACTIVE_ONUS)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 2))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_CFG_ID_PON_STATUS)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 2))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_CFG_ID_PON_DISTANCE)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_CFG_ID_RANGING_WINDOW_SIZE)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 4))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_CFG_ID_EQD_CYCLES_NUMBER)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 4))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_CFG_ID_DRIFT_CONTROL)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 6))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_CFG_ID_LOS_ALARM_THRESHOLD)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_CFG_ID_LOS_INITIAL_VALUE)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_CFG_ID_ONU_ALARMS_THRESHOLDS)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 4))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_CFG_ID_BER_MONITOR)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 6))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_CFG_ID_ONU_ACTIVATION)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 2))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_CFG_ID_SN_ACQUISITION)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 7))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_CFG_ID_KEY_EXCHANGE)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 6))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_CFG_ID_PROTECTION_SWITCHING)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 4))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_CFG_ID_PROTECTION_SWITCHING_DEBUG)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 5))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_CFG_ID_CBR_RT_ALLOCATION_PROFILE)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 6))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_CFG_ID_CBR_NRT_ALLOCATION_PROFILE)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 4))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_CFG_ID_POWER_MANAGEMENT)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 18))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_CFG_ID_ROGUE_ONU_DETECTION_PROCESS)) != 0)
+    {
+        if (!bcmolt_rogue_onu_detection_process_scan(packed, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_CFG_ID_PERIODIC_STANDBY_PON_MONITORING)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 5))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_CFG_ID_DBA_MODE)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_CFG_ID_PLOAM_HANDLING)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_CFG_ID_MIN_DATA_ALLOC_ID)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 2))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_CFG_ID_MIN_DATA_GEM_PORT_ID)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 2))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_CFG_ID_MULTICAST_KEY)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 17))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_CFG_ID_PRBS_CHECKER)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 4))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_CFG_ID_PRBS_GENERATOR)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 4))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_CFG_ID_PRBS_STATUS)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 5))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_CFG_ID_AUTOMATIC_ONU_DEACTIVATION)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 6))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_CFG_ID_US_BANDWIDTH_LIMIT)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 4))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_CFG_ID_ALL_ONUS)) != 0)
+    {
+        if (!bcmolt_xgpon_onu_with_state_list_u16_max_510_scan(packed, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_CFG_ID_ALL_MCAST_GEM_PORTS)) != 0)
+    {
+        if (!bcmolt_xgpon_gem_port_with_state_list_u16_max_128_scan(packed, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_CFG_ID_DEBUG)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 5))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_CFG_ID_ONU_UPGRADE_PARAMS)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 14))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_CFG_ID_DS_FEC_MODE)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_CFG_ID_DBA_TYPE)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_CFG_ID_ONU_TUNING)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 9))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_ni_cfg_data_bounds_check(const bcmolt_xgpon_ni_cfg_data *this, bcmolt_presence_mask fields_present, bcmolt_xgpon_ni_cfg_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_CFG_ID_HW_PON_ID)) != 0)
+    {
+        if (!bcmolt_hw_pon_id_bounds_check(&this->hw_pon_id))
+        {
+            *failed_prop = BCMOLT_XGPON_NI_CFG_ID_HW_PON_ID;
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_CFG_ID_AVAILABLE_BANDWIDTH)) != 0)
+    {
+        if (!bcmolt_pon_available_bandwidth_bounds_check(&this->available_bandwidth))
+        {
+            *failed_prop = BCMOLT_XGPON_NI_CFG_ID_AVAILABLE_BANDWIDTH;
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_CFG_ID_PON_STATUS)) != 0)
+    {
+        if (!bcmolt_pon_status_bounds_check(&this->pon_status))
+        {
+            *failed_prop = BCMOLT_XGPON_NI_CFG_ID_PON_STATUS;
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_CFG_ID_PON_DISTANCE)) != 0)
+    {
+        if (!bcmolt_pon_distance_bounds_check(&this->pon_distance))
+        {
+            *failed_prop = BCMOLT_XGPON_NI_CFG_ID_PON_DISTANCE;
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_CFG_ID_EQD_CYCLES_NUMBER)) != 0)
+    {
+        if (this->eqd_cycles_number > 255)
+        {
+            *failed_prop = BCMOLT_XGPON_NI_CFG_ID_EQD_CYCLES_NUMBER;
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_CFG_ID_DRIFT_CONTROL)) != 0)
+    {
+        if (!bcmolt_pon_drift_control_bounds_check(&this->drift_control))
+        {
+            *failed_prop = BCMOLT_XGPON_NI_CFG_ID_DRIFT_CONTROL;
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_CFG_ID_LOS_INITIAL_VALUE)) != 0)
+    {
+        switch (this->los_initial_value)
+        {
+            case BCMOLT_STATUS_OFF:
+                break;
+            case BCMOLT_STATUS_ON:
+                break;
+            case BCMOLT_STATUS_NO_CHANGE:
+                break;
+            default:
+                *failed_prop = BCMOLT_XGPON_NI_CFG_ID_LOS_INITIAL_VALUE;
+                return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_CFG_ID_ONU_ALARMS_THRESHOLDS)) != 0)
+    {
+        if (!bcmolt_xgpon_onu_alarms_thresholds_bounds_check(&this->onu_alarms_thresholds))
+        {
+            *failed_prop = BCMOLT_XGPON_NI_CFG_ID_ONU_ALARMS_THRESHOLDS;
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_CFG_ID_BER_MONITOR)) != 0)
+    {
+        if (!bcmolt_ber_monitor_params_bounds_check(&this->ber_monitor))
+        {
+            *failed_prop = BCMOLT_XGPON_NI_CFG_ID_BER_MONITOR;
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_CFG_ID_ONU_ACTIVATION)) != 0)
+    {
+        if (!bcmolt_xgpon_onu_activation_bounds_check(&this->onu_activation))
+        {
+            *failed_prop = BCMOLT_XGPON_NI_CFG_ID_ONU_ACTIVATION;
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_CFG_ID_SN_ACQUISITION)) != 0)
+    {
+        if (!bcmolt_xgpon_sn_acquisition_bounds_check(&this->sn_acquisition))
+        {
+            *failed_prop = BCMOLT_XGPON_NI_CFG_ID_SN_ACQUISITION;
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_CFG_ID_KEY_EXCHANGE)) != 0)
+    {
+        if (!bcmolt_xgpon_key_exchange_bounds_check(&this->key_exchange))
+        {
+            *failed_prop = BCMOLT_XGPON_NI_CFG_ID_KEY_EXCHANGE;
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_CFG_ID_PROTECTION_SWITCHING)) != 0)
+    {
+        if (!bcmolt_xgpon_protection_switching_bounds_check(&this->protection_switching))
+        {
+            *failed_prop = BCMOLT_XGPON_NI_CFG_ID_PROTECTION_SWITCHING;
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_CFG_ID_PROTECTION_SWITCHING_DEBUG)) != 0)
+    {
+        if (!bcmolt_xgpon_protection_switching_debug_bounds_check(&this->protection_switching_debug))
+        {
+            *failed_prop = BCMOLT_XGPON_NI_CFG_ID_PROTECTION_SWITCHING_DEBUG;
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_CFG_ID_CBR_RT_ALLOCATION_PROFILE)) != 0)
+    {
+        if (!bcmolt_cbr_rt_allocation_profile_bounds_check(&this->cbr_rt_allocation_profile))
+        {
+            *failed_prop = BCMOLT_XGPON_NI_CFG_ID_CBR_RT_ALLOCATION_PROFILE;
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_CFG_ID_CBR_NRT_ALLOCATION_PROFILE)) != 0)
+    {
+        if (!bcmolt_arr_u16_2_bounds_check(&this->cbr_nrt_allocation_profile))
+        {
+            *failed_prop = BCMOLT_XGPON_NI_CFG_ID_CBR_NRT_ALLOCATION_PROFILE;
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_CFG_ID_POWER_MANAGEMENT)) != 0)
+    {
+        if (!bcmolt_onu_power_management_configuration_bounds_check(&this->power_management))
+        {
+            *failed_prop = BCMOLT_XGPON_NI_CFG_ID_POWER_MANAGEMENT;
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_CFG_ID_ROGUE_ONU_DETECTION_PROCESS)) != 0)
+    {
+        if (!bcmolt_rogue_onu_detection_process_bounds_check(&this->rogue_onu_detection_process))
+        {
+            *failed_prop = BCMOLT_XGPON_NI_CFG_ID_ROGUE_ONU_DETECTION_PROCESS;
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_CFG_ID_PERIODIC_STANDBY_PON_MONITORING)) != 0)
+    {
+        if (!bcmolt_periodic_standby_pon_monitoring_bounds_check(&this->periodic_standby_pon_monitoring))
+        {
+            *failed_prop = BCMOLT_XGPON_NI_CFG_ID_PERIODIC_STANDBY_PON_MONITORING;
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_CFG_ID_DBA_MODE)) != 0)
+    {
+        switch (this->dba_mode)
+        {
+            case BCMOLT_DBA_MODE_NORMAL:
+                break;
+            case BCMOLT_DBA_MODE_EXTENDED:
+                break;
+            default:
+                *failed_prop = BCMOLT_XGPON_NI_CFG_ID_DBA_MODE;
+                return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_CFG_ID_PLOAM_HANDLING)) != 0)
+    {
+        if (!bcmolt_xgpon_ploam_handling_bounds_check(&this->ploam_handling))
+        {
+            *failed_prop = BCMOLT_XGPON_NI_CFG_ID_PLOAM_HANDLING;
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_CFG_ID_MIN_DATA_ALLOC_ID)) != 0)
+    {
+        if (this->min_data_alloc_id < (bcmolt_xgpon_alloc_id) 1024)
+        {
+            *failed_prop = BCMOLT_XGPON_NI_CFG_ID_MIN_DATA_ALLOC_ID;
+            return BCMOS_FALSE;
+        }
+
+        if (this->min_data_alloc_id > (bcmolt_xgpon_alloc_id) 14591)
+        {
+            *failed_prop = BCMOLT_XGPON_NI_CFG_ID_MIN_DATA_ALLOC_ID;
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_CFG_ID_MIN_DATA_GEM_PORT_ID)) != 0)
+    {
+        if (this->min_data_gem_port_id < (bcmolt_xgpon_gem_id) 1024)
+        {
+            *failed_prop = BCMOLT_XGPON_NI_CFG_ID_MIN_DATA_GEM_PORT_ID;
+            return BCMOS_FALSE;
+        }
+
+        if (this->min_data_gem_port_id > (bcmolt_xgpon_gem_id) 57598U)
+        {
+            *failed_prop = BCMOLT_XGPON_NI_CFG_ID_MIN_DATA_GEM_PORT_ID;
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_CFG_ID_MULTICAST_KEY)) != 0)
+    {
+        if (!bcmolt_xgpon_multicast_key_bounds_check(&this->multicast_key))
+        {
+            *failed_prop = BCMOLT_XGPON_NI_CFG_ID_MULTICAST_KEY;
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_CFG_ID_PRBS_CHECKER)) != 0)
+    {
+        if (!bcmolt_prbs_checker_config_bounds_check(&this->prbs_checker))
+        {
+            *failed_prop = BCMOLT_XGPON_NI_CFG_ID_PRBS_CHECKER;
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_CFG_ID_PRBS_GENERATOR)) != 0)
+    {
+        if (!bcmolt_prbs_generator_config_bounds_check(&this->prbs_generator))
+        {
+            *failed_prop = BCMOLT_XGPON_NI_CFG_ID_PRBS_GENERATOR;
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_CFG_ID_PRBS_STATUS)) != 0)
+    {
+        if (!bcmolt_prbs_status_bounds_check(&this->prbs_status))
+        {
+            *failed_prop = BCMOLT_XGPON_NI_CFG_ID_PRBS_STATUS;
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_CFG_ID_AUTOMATIC_ONU_DEACTIVATION)) != 0)
+    {
+        if (!bcmolt_automatic_onu_deactivation_bounds_check(&this->automatic_onu_deactivation))
+        {
+            *failed_prop = BCMOLT_XGPON_NI_CFG_ID_AUTOMATIC_ONU_DEACTIVATION;
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_CFG_ID_ALL_ONUS)) != 0)
+    {
+        if (this->all_onus.len > 510)
+        {
+            return BCMOS_FALSE;
+        }
+
+        if (!bcmolt_xgpon_onu_with_state_list_u16_max_510_bounds_check(&this->all_onus))
+        {
+            *failed_prop = BCMOLT_XGPON_NI_CFG_ID_ALL_ONUS;
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_CFG_ID_ALL_MCAST_GEM_PORTS)) != 0)
+    {
+        if (this->all_mcast_gem_ports.len > 128)
+        {
+            return BCMOS_FALSE;
+        }
+
+        if (!bcmolt_xgpon_gem_port_with_state_list_u16_max_128_bounds_check(&this->all_mcast_gem_ports))
+        {
+            *failed_prop = BCMOLT_XGPON_NI_CFG_ID_ALL_MCAST_GEM_PORTS;
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_CFG_ID_DEBUG)) != 0)
+    {
+        if (!bcmolt_xgpon_ni_debug_bounds_check(&this->debug))
+        {
+            *failed_prop = BCMOLT_XGPON_NI_CFG_ID_DEBUG;
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_CFG_ID_ONU_UPGRADE_PARAMS)) != 0)
+    {
+        if (!bcmolt_gpon_onu_upgrade_params_bounds_check(&this->onu_upgrade_params))
+        {
+            *failed_prop = BCMOLT_XGPON_NI_CFG_ID_ONU_UPGRADE_PARAMS;
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_CFG_ID_DS_FEC_MODE)) != 0)
+    {
+        switch (this->ds_fec_mode)
+        {
+            case BCMOLT_CONTROL_STATE_DISABLE:
+                break;
+            case BCMOLT_CONTROL_STATE_ENABLE:
+                break;
+            default:
+                *failed_prop = BCMOLT_XGPON_NI_CFG_ID_DS_FEC_MODE;
+                return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_CFG_ID_DBA_TYPE)) != 0)
+    {
+        switch (this->dba_type)
+        {
+            case BCMOLT_DBA_TYPE_INTERNAL:
+                break;
+            case BCMOLT_DBA_TYPE_PARTIAL_EXTERNAL:
+                break;
+            case BCMOLT_DBA_TYPE_EXTERNAL:
+                break;
+            default:
+                *failed_prop = BCMOLT_XGPON_NI_CFG_ID_DBA_TYPE;
+                return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_CFG_ID_ONU_TUNING)) != 0)
+    {
+        if (!bcmolt_onu_tuning_configuration_bounds_check(&this->onu_tuning))
+        {
+            *failed_prop = BCMOLT_XGPON_NI_CFG_ID_ONU_TUNING;
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_xgpon_ni_stat_data_set_default(bcmolt_xgpon_ni_stat_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_STAT_ID_FEC_CODEWORDS)) != 0)
+    {
+        this->fec_codewords = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_STAT_ID_BIP32_BYTES)) != 0)
+    {
+        this->bip32_bytes = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_STAT_ID_BIP32_ERRORS)) != 0)
+    {
+        this->bip32_errors = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_STAT_ID_RX_XGTC_HEADERS)) != 0)
+    {
+        this->rx_xgtc_headers = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_STAT_ID_RX_XGTC_CORRECTED)) != 0)
+    {
+        this->rx_xgtc_corrected = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_STAT_ID_RX_XGTC_UNCORRECTED)) != 0)
+    {
+        this->rx_xgtc_uncorrected = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_STAT_ID_RX_XGEM)) != 0)
+    {
+        this->rx_xgem = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_STAT_ID_RX_XGEM_DROPPED)) != 0)
+    {
+        this->rx_xgem_dropped = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_STAT_ID_RX_XGEM_IDLE)) != 0)
+    {
+        this->rx_xgem_idle = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_STAT_ID_RX_XGEM_CORRECTED)) != 0)
+    {
+        this->rx_xgem_corrected = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_STAT_ID_RX_CRC_ERROR)) != 0)
+    {
+        this->rx_crc_error = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_STAT_ID_RX_FRAGMENT_ERROR)) != 0)
+    {
+        this->rx_fragment_error = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_STAT_ID_RX_PACKETS_DROPPED)) != 0)
+    {
+        this->rx_packets_dropped = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_STAT_ID_RX_DROPPED_TOO_SHORT)) != 0)
+    {
+        this->rx_dropped_too_short = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_STAT_ID_RX_DROPPED_TOO_LONG)) != 0)
+    {
+        this->rx_dropped_too_long = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_STAT_ID_RX_KEY_ERROR)) != 0)
+    {
+        this->rx_key_error = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_STAT_ID_TX_PLOAMS)) != 0)
+    {
+        this->tx_ploams = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_STAT_ID_RX_PLOAMS_DROPPED)) != 0)
+    {
+        this->rx_ploams_dropped = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_STAT_ID_RX_ALLOCATIONS_VALID)) != 0)
+    {
+        this->rx_allocations_valid = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_STAT_ID_RX_ALLOCATIONS_INVALID)) != 0)
+    {
+        this->rx_allocations_invalid = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_STAT_ID_RX_ALLOCATIONS_DISABLED)) != 0)
+    {
+        this->rx_allocations_disabled = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_STAT_ID_RX_PLOAMS)) != 0)
+    {
+        this->rx_ploams = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_STAT_ID_RX_PLOAMS_NON_IDLE)) != 0)
+    {
+        this->rx_ploams_non_idle = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_STAT_ID_RX_PLOAMS_ERROR)) != 0)
+    {
+        this->rx_ploams_error = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_STAT_ID_RX_CPU)) != 0)
+    {
+        this->rx_cpu = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_STAT_ID_RX_OMCI)) != 0)
+    {
+        this->rx_omci = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_STAT_ID_RX_OMCI_PACKETS_CRC_ERROR)) != 0)
+    {
+        this->rx_omci_packets_crc_error = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_STAT_ID_TX_PACKETS)) != 0)
+    {
+        this->tx_packets = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_STAT_ID_TX_XGEM)) != 0)
+    {
+        this->tx_xgem = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_STAT_ID_TX_CPU)) != 0)
+    {
+        this->tx_cpu = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_STAT_ID_TX_OMCI)) != 0)
+    {
+        this->tx_omci = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_STAT_ID_TX_CPU_OMCI_PACKETS_DROPPED)) != 0)
+    {
+        this->tx_cpu_omci_packets_dropped = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_STAT_ID_TX_DROPPED_ILLEGAL_LENGTH)) != 0)
+    {
+        this->tx_dropped_illegal_length = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_STAT_ID_TX_DROPPED_TPID_MISS)) != 0)
+    {
+        this->tx_dropped_tpid_miss = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_STAT_ID_TX_DROPPED_VID_MISS)) != 0)
+    {
+        this->tx_dropped_vid_miss = 0;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_ni_stat_data_pack(const bcmolt_xgpon_ni_stat_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_STAT_ID_FEC_CODEWORDS)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->fec_codewords))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_STAT_ID_BIP32_BYTES)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->bip32_bytes))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_STAT_ID_BIP32_ERRORS)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->bip32_errors))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_STAT_ID_RX_XGTC_HEADERS)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->rx_xgtc_headers))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_STAT_ID_RX_XGTC_CORRECTED)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->rx_xgtc_corrected))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_STAT_ID_RX_XGTC_UNCORRECTED)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->rx_xgtc_uncorrected))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_STAT_ID_RX_XGEM)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->rx_xgem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_STAT_ID_RX_XGEM_DROPPED)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->rx_xgem_dropped))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_STAT_ID_RX_XGEM_IDLE)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->rx_xgem_idle))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_STAT_ID_RX_XGEM_CORRECTED)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->rx_xgem_corrected))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_STAT_ID_RX_CRC_ERROR)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->rx_crc_error))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_STAT_ID_RX_FRAGMENT_ERROR)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->rx_fragment_error))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_STAT_ID_RX_PACKETS_DROPPED)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->rx_packets_dropped))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_STAT_ID_RX_DROPPED_TOO_SHORT)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->rx_dropped_too_short))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_STAT_ID_RX_DROPPED_TOO_LONG)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->rx_dropped_too_long))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_STAT_ID_RX_KEY_ERROR)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->rx_key_error))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_STAT_ID_TX_PLOAMS)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->tx_ploams))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_STAT_ID_RX_PLOAMS_DROPPED)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->rx_ploams_dropped))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_STAT_ID_RX_ALLOCATIONS_VALID)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->rx_allocations_valid))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_STAT_ID_RX_ALLOCATIONS_INVALID)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->rx_allocations_invalid))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_STAT_ID_RX_ALLOCATIONS_DISABLED)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->rx_allocations_disabled))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_STAT_ID_RX_PLOAMS)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->rx_ploams))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_STAT_ID_RX_PLOAMS_NON_IDLE)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->rx_ploams_non_idle))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_STAT_ID_RX_PLOAMS_ERROR)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->rx_ploams_error))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_STAT_ID_RX_CPU)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->rx_cpu))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_STAT_ID_RX_OMCI)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->rx_omci))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_STAT_ID_RX_OMCI_PACKETS_CRC_ERROR)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->rx_omci_packets_crc_error))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_STAT_ID_TX_PACKETS)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->tx_packets))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_STAT_ID_TX_XGEM)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->tx_xgem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_STAT_ID_TX_CPU)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->tx_cpu))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_STAT_ID_TX_OMCI)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->tx_omci))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_STAT_ID_TX_CPU_OMCI_PACKETS_DROPPED)) != 0)
+    {
+        if (!bcmolt_buf_write_u8(buf, this->tx_cpu_omci_packets_dropped))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_STAT_ID_TX_DROPPED_ILLEGAL_LENGTH)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->tx_dropped_illegal_length))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_STAT_ID_TX_DROPPED_TPID_MISS)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->tx_dropped_tpid_miss))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_STAT_ID_TX_DROPPED_VID_MISS)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->tx_dropped_vid_miss))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_xgpon_ni_stat_data_get_packed_length(const bcmolt_xgpon_ni_stat_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_STAT_ID_FEC_CODEWORDS)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_STAT_ID_BIP32_BYTES)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_STAT_ID_BIP32_ERRORS)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_STAT_ID_RX_XGTC_HEADERS)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_STAT_ID_RX_XGTC_CORRECTED)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_STAT_ID_RX_XGTC_UNCORRECTED)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_STAT_ID_RX_XGEM)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_STAT_ID_RX_XGEM_DROPPED)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_STAT_ID_RX_XGEM_IDLE)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_STAT_ID_RX_XGEM_CORRECTED)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_STAT_ID_RX_CRC_ERROR)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_STAT_ID_RX_FRAGMENT_ERROR)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_STAT_ID_RX_PACKETS_DROPPED)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_STAT_ID_RX_DROPPED_TOO_SHORT)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_STAT_ID_RX_DROPPED_TOO_LONG)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_STAT_ID_RX_KEY_ERROR)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_STAT_ID_TX_PLOAMS)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_STAT_ID_RX_PLOAMS_DROPPED)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_STAT_ID_RX_ALLOCATIONS_VALID)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_STAT_ID_RX_ALLOCATIONS_INVALID)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_STAT_ID_RX_ALLOCATIONS_DISABLED)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_STAT_ID_RX_PLOAMS)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_STAT_ID_RX_PLOAMS_NON_IDLE)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_STAT_ID_RX_PLOAMS_ERROR)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_STAT_ID_RX_CPU)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_STAT_ID_RX_OMCI)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_STAT_ID_RX_OMCI_PACKETS_CRC_ERROR)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_STAT_ID_TX_PACKETS)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_STAT_ID_TX_XGEM)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_STAT_ID_TX_CPU)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_STAT_ID_TX_OMCI)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_STAT_ID_TX_CPU_OMCI_PACKETS_DROPPED)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_STAT_ID_TX_DROPPED_ILLEGAL_LENGTH)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_STAT_ID_TX_DROPPED_TPID_MISS)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_STAT_ID_TX_DROPPED_VID_MISS)) != 0)
+    {
+        count += 8;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_ni_stat_data_unpack(bcmolt_xgpon_ni_stat_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_STAT_ID_FEC_CODEWORDS)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->fec_codewords))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_STAT_ID_BIP32_BYTES)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->bip32_bytes))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_STAT_ID_BIP32_ERRORS)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->bip32_errors))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_STAT_ID_RX_XGTC_HEADERS)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->rx_xgtc_headers))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_STAT_ID_RX_XGTC_CORRECTED)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->rx_xgtc_corrected))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_STAT_ID_RX_XGTC_UNCORRECTED)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->rx_xgtc_uncorrected))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_STAT_ID_RX_XGEM)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->rx_xgem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_STAT_ID_RX_XGEM_DROPPED)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->rx_xgem_dropped))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_STAT_ID_RX_XGEM_IDLE)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->rx_xgem_idle))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_STAT_ID_RX_XGEM_CORRECTED)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->rx_xgem_corrected))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_STAT_ID_RX_CRC_ERROR)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->rx_crc_error))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_STAT_ID_RX_FRAGMENT_ERROR)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->rx_fragment_error))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_STAT_ID_RX_PACKETS_DROPPED)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->rx_packets_dropped))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_STAT_ID_RX_DROPPED_TOO_SHORT)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->rx_dropped_too_short))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_STAT_ID_RX_DROPPED_TOO_LONG)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->rx_dropped_too_long))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_STAT_ID_RX_KEY_ERROR)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->rx_key_error))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_STAT_ID_TX_PLOAMS)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->tx_ploams))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_STAT_ID_RX_PLOAMS_DROPPED)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->rx_ploams_dropped))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_STAT_ID_RX_ALLOCATIONS_VALID)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->rx_allocations_valid))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_STAT_ID_RX_ALLOCATIONS_INVALID)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->rx_allocations_invalid))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_STAT_ID_RX_ALLOCATIONS_DISABLED)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->rx_allocations_disabled))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_STAT_ID_RX_PLOAMS)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->rx_ploams))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_STAT_ID_RX_PLOAMS_NON_IDLE)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->rx_ploams_non_idle))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_STAT_ID_RX_PLOAMS_ERROR)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->rx_ploams_error))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_STAT_ID_RX_CPU)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->rx_cpu))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_STAT_ID_RX_OMCI)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->rx_omci))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_STAT_ID_RX_OMCI_PACKETS_CRC_ERROR)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->rx_omci_packets_crc_error))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_STAT_ID_TX_PACKETS)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->tx_packets))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_STAT_ID_TX_XGEM)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->tx_xgem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_STAT_ID_TX_CPU)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->tx_cpu))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_STAT_ID_TX_OMCI)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->tx_omci))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_STAT_ID_TX_CPU_OMCI_PACKETS_DROPPED)) != 0)
+    {
+        if (!bcmolt_buf_read_u8(buf, &this->tx_cpu_omci_packets_dropped))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_STAT_ID_TX_DROPPED_ILLEGAL_LENGTH)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->tx_dropped_illegal_length))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_STAT_ID_TX_DROPPED_TPID_MISS)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->tx_dropped_tpid_miss))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_STAT_ID_TX_DROPPED_VID_MISS)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->tx_dropped_vid_miss))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_ni_stat_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_STAT_ID_FEC_CODEWORDS)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_STAT_ID_BIP32_BYTES)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_STAT_ID_BIP32_ERRORS)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_STAT_ID_RX_XGTC_HEADERS)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_STAT_ID_RX_XGTC_CORRECTED)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_STAT_ID_RX_XGTC_UNCORRECTED)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_STAT_ID_RX_XGEM)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_STAT_ID_RX_XGEM_DROPPED)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_STAT_ID_RX_XGEM_IDLE)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_STAT_ID_RX_XGEM_CORRECTED)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_STAT_ID_RX_CRC_ERROR)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_STAT_ID_RX_FRAGMENT_ERROR)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_STAT_ID_RX_PACKETS_DROPPED)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_STAT_ID_RX_DROPPED_TOO_SHORT)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_STAT_ID_RX_DROPPED_TOO_LONG)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_STAT_ID_RX_KEY_ERROR)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_STAT_ID_TX_PLOAMS)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_STAT_ID_RX_PLOAMS_DROPPED)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_STAT_ID_RX_ALLOCATIONS_VALID)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_STAT_ID_RX_ALLOCATIONS_INVALID)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_STAT_ID_RX_ALLOCATIONS_DISABLED)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_STAT_ID_RX_PLOAMS)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_STAT_ID_RX_PLOAMS_NON_IDLE)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_STAT_ID_RX_PLOAMS_ERROR)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_STAT_ID_RX_CPU)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_STAT_ID_RX_OMCI)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_STAT_ID_RX_OMCI_PACKETS_CRC_ERROR)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_STAT_ID_TX_PACKETS)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_STAT_ID_TX_XGEM)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_STAT_ID_TX_CPU)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_STAT_ID_TX_OMCI)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_STAT_ID_TX_CPU_OMCI_PACKETS_DROPPED)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_STAT_ID_TX_DROPPED_ILLEGAL_LENGTH)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_STAT_ID_TX_DROPPED_TPID_MISS)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_STAT_ID_TX_DROPPED_VID_MISS)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_ni_stat_data_bounds_check(const bcmolt_xgpon_ni_stat_data *this, bcmolt_presence_mask fields_present, bcmolt_xgpon_ni_stat_id *failed_prop)
+{
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_xgpon_ni_stat_cfg_data_set_default(bcmolt_xgpon_ni_stat_cfg_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_STAT_CFG_ID_CFG)) != 0)
+    {
+        this->cfg.trigger.type = BCMOLT_STAT_CONDITION_TYPE_NONE;
+        this->cfg.soak.active_soak_time = 0;
+        this->cfg.soak.clear_soak_time = 0;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_ni_stat_cfg_data_pack(const bcmolt_xgpon_ni_stat_cfg_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_STAT_CFG_ID_CFG)) != 0)
+    {
+        if (!bcmolt_stat_alarm_config_pack(&this->cfg, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_xgpon_ni_stat_cfg_data_get_packed_length(const bcmolt_xgpon_ni_stat_cfg_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_STAT_CFG_ID_CFG)) != 0)
+    {
+        count += bcmolt_stat_alarm_config_get_packed_length(&this->cfg);
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_ni_stat_cfg_data_unpack(bcmolt_xgpon_ni_stat_cfg_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_STAT_CFG_ID_CFG)) != 0)
+    {
+        if (!bcmolt_stat_alarm_config_unpack(&this->cfg, buf, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_ni_stat_cfg_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_STAT_CFG_ID_CFG)) != 0)
+    {
+        if (!bcmolt_stat_alarm_config_scan(packed, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_ni_stat_cfg_data_bounds_check(const bcmolt_xgpon_ni_stat_cfg_data *this, bcmolt_presence_mask fields_present, bcmolt_xgpon_ni_stat_cfg_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_STAT_CFG_ID_CFG)) != 0)
+    {
+        if (!bcmolt_stat_alarm_config_bounds_check(&this->cfg))
+        {
+            *failed_prop = BCMOLT_XGPON_NI_STAT_CFG_ID_CFG;
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_xgpon_ni_cpu_packets_failure_data_set_default(bcmolt_xgpon_ni_cpu_packets_failure_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_CPU_PACKETS_FAILURE_ID_ERROR)) != 0)
+    {
+        this->error = BCMOLT_PACKET_INJECTION_ERROR_GEM_PORT_NOT_ACTIVE;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_CPU_PACKETS_FAILURE_ID_GEM_PORT_ID)) != 0)
+    {
+        this->gem_port_id = (bcmolt_xgpon_gem_id) 0;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_ni_cpu_packets_failure_data_pack(const bcmolt_xgpon_ni_cpu_packets_failure_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_CPU_PACKETS_FAILURE_ID_ERROR)) != 0)
+    {
+        if (!bcmolt_packet_injection_error_pack(this->error, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_CPU_PACKETS_FAILURE_ID_GEM_PORT_ID)) != 0)
+    {
+        if (!bcmolt_buf_write_u16(buf, (uint16_t) this->gem_port_id))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_xgpon_ni_cpu_packets_failure_data_get_packed_length(const bcmolt_xgpon_ni_cpu_packets_failure_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_CPU_PACKETS_FAILURE_ID_ERROR)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_CPU_PACKETS_FAILURE_ID_GEM_PORT_ID)) != 0)
+    {
+        count += 2;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_ni_cpu_packets_failure_data_unpack(bcmolt_xgpon_ni_cpu_packets_failure_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_CPU_PACKETS_FAILURE_ID_ERROR)) != 0)
+    {
+        if (!bcmolt_packet_injection_error_unpack(&this->error, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_CPU_PACKETS_FAILURE_ID_GEM_PORT_ID)) != 0)
+    {
+        if (!bcmolt_buf_read_u16(buf, (uint16_t *) &this->gem_port_id))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_ni_cpu_packets_failure_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_CPU_PACKETS_FAILURE_ID_ERROR)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_CPU_PACKETS_FAILURE_ID_GEM_PORT_ID)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 2))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_ni_cpu_packets_failure_data_bounds_check(const bcmolt_xgpon_ni_cpu_packets_failure_data *this, bcmolt_presence_mask fields_present, bcmolt_xgpon_ni_cpu_packets_failure_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_CPU_PACKETS_FAILURE_ID_ERROR)) != 0)
+    {
+        switch (this->error)
+        {
+            case BCMOLT_PACKET_INJECTION_ERROR_GEM_PORT_NOT_ACTIVE:
+                break;
+            default:
+                *failed_prop = BCMOLT_XGPON_NI_CPU_PACKETS_FAILURE_ID_ERROR;
+                return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_CPU_PACKETS_FAILURE_ID_GEM_PORT_ID)) != 0)
+    {
+        if (this->gem_port_id > (bcmolt_xgpon_gem_id) 65533U)
+        {
+            *failed_prop = BCMOLT_XGPON_NI_CPU_PACKETS_FAILURE_ID_GEM_PORT_ID;
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_xgpon_ni_los_data_set_default(bcmolt_xgpon_ni_los_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_LOS_ID_STATUS)) != 0)
+    {
+        this->status = BCMOLT_STATUS_OFF;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_ni_los_data_pack(const bcmolt_xgpon_ni_los_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_LOS_ID_STATUS)) != 0)
+    {
+        if (!bcmolt_status_pack(this->status, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_xgpon_ni_los_data_get_packed_length(const bcmolt_xgpon_ni_los_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_LOS_ID_STATUS)) != 0)
+    {
+        count += 1;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_ni_los_data_unpack(bcmolt_xgpon_ni_los_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_LOS_ID_STATUS)) != 0)
+    {
+        if (!bcmolt_status_unpack(&this->status, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_ni_los_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_LOS_ID_STATUS)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_ni_los_data_bounds_check(const bcmolt_xgpon_ni_los_data *this, bcmolt_presence_mask fields_present, bcmolt_xgpon_ni_los_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_LOS_ID_STATUS)) != 0)
+    {
+        switch (this->status)
+        {
+            case BCMOLT_STATUS_OFF:
+                break;
+            case BCMOLT_STATUS_ON:
+                break;
+            case BCMOLT_STATUS_NO_CHANGE:
+                break;
+            default:
+                *failed_prop = BCMOLT_XGPON_NI_LOS_ID_STATUS;
+                return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_xgpon_ni_onu_discovered_data_set_default(bcmolt_xgpon_ni_onu_discovered_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_ONU_DISCOVERED_ID_SERIAL_NUMBER)) != 0)
+    {
+        memset(this->serial_number.vendor_id, 0, sizeof(this->serial_number.vendor_id));
+        memset(this->serial_number.vendor_specific, 0, sizeof(this->serial_number.vendor_specific));
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_ONU_DISCOVERED_ID_RANGING_TIME)) != 0)
+    {
+        this->ranging_time = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_ONU_DISCOVERED_ID_ONU_ID)) != 0)
+    {
+        this->onu_id = (bcmolt_xgpon_onu_id) 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_ONU_DISCOVERED_ID_UPSTREAM_LINE_RATE_CAPABILITIES)) != 0)
+    {
+        this->upstream_line_rate_capabilities = BCMOLT_UPSTREAM_LINE_RATE_CAPABILITIES_RATE_2_P_5_G;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_ONU_DISCOVERED_ID_CURRENT_DOWNSTREAM_PON_ID)) != 0)
+    {
+        this->current_downstream_pon_id = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_ONU_DISCOVERED_ID_CURRENT_UPSTREAM_PON_ID)) != 0)
+    {
+        this->current_upstream_pon_id = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_ONU_DISCOVERED_ID_CALIBRATION_RECORD)) != 0)
+    {
+        memset(this->calibration_record.arr, 0, sizeof(this->calibration_record.arr));
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_ONU_DISCOVERED_ID_TUNING_GRANULARITY)) != 0)
+    {
+        this->tuning_granularity = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_ONU_DISCOVERED_ID_STEP_TUNING_TIME)) != 0)
+    {
+        this->step_tuning_time = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_ONU_DISCOVERED_ID_ATTENUATION)) != 0)
+    {
+        this->attenuation = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_ONU_DISCOVERED_ID_POWER_LEVELLING_CAPABILITIES)) != 0)
+    {
+        this->power_levelling_capabilities = 0;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_ni_onu_discovered_data_pack(const bcmolt_xgpon_ni_onu_discovered_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_ONU_DISCOVERED_ID_SERIAL_NUMBER)) != 0)
+    {
+        if (!bcmolt_serial_number_pack(&this->serial_number, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_ONU_DISCOVERED_ID_RANGING_TIME)) != 0)
+    {
+        if (!bcmolt_buf_write_u32(buf, this->ranging_time))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_ONU_DISCOVERED_ID_ONU_ID)) != 0)
+    {
+        if (!bcmolt_buf_write_u16(buf, (uint16_t) this->onu_id))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_ONU_DISCOVERED_ID_UPSTREAM_LINE_RATE_CAPABILITIES)) != 0)
+    {
+        if (!bcmolt_upstream_line_rate_capabilities_pack(this->upstream_line_rate_capabilities, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_ONU_DISCOVERED_ID_CURRENT_DOWNSTREAM_PON_ID)) != 0)
+    {
+        if (!bcmolt_buf_write_u8(buf, this->current_downstream_pon_id))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_ONU_DISCOVERED_ID_CURRENT_UPSTREAM_PON_ID)) != 0)
+    {
+        if (!bcmolt_buf_write_u8(buf, this->current_upstream_pon_id))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_ONU_DISCOVERED_ID_CALIBRATION_RECORD)) != 0)
+    {
+        if (!bcmolt_arr_calibration_record_8_pack(&this->calibration_record, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_ONU_DISCOVERED_ID_TUNING_GRANULARITY)) != 0)
+    {
+        if (!bcmolt_buf_write_u8(buf, this->tuning_granularity))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_ONU_DISCOVERED_ID_STEP_TUNING_TIME)) != 0)
+    {
+        if (!bcmolt_buf_write_u8(buf, this->step_tuning_time))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_ONU_DISCOVERED_ID_ATTENUATION)) != 0)
+    {
+        if (!bcmolt_buf_write_u8(buf, this->attenuation))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_ONU_DISCOVERED_ID_POWER_LEVELLING_CAPABILITIES)) != 0)
+    {
+        if (!bcmolt_buf_write_u8(buf, this->power_levelling_capabilities))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_xgpon_ni_onu_discovered_data_get_packed_length(const bcmolt_xgpon_ni_onu_discovered_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_ONU_DISCOVERED_ID_SERIAL_NUMBER)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_ONU_DISCOVERED_ID_RANGING_TIME)) != 0)
+    {
+        count += 4;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_ONU_DISCOVERED_ID_ONU_ID)) != 0)
+    {
+        count += 2;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_ONU_DISCOVERED_ID_UPSTREAM_LINE_RATE_CAPABILITIES)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_ONU_DISCOVERED_ID_CURRENT_DOWNSTREAM_PON_ID)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_ONU_DISCOVERED_ID_CURRENT_UPSTREAM_PON_ID)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_ONU_DISCOVERED_ID_CALIBRATION_RECORD)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_ONU_DISCOVERED_ID_TUNING_GRANULARITY)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_ONU_DISCOVERED_ID_STEP_TUNING_TIME)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_ONU_DISCOVERED_ID_ATTENUATION)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_ONU_DISCOVERED_ID_POWER_LEVELLING_CAPABILITIES)) != 0)
+    {
+        count += 1;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_ni_onu_discovered_data_unpack(bcmolt_xgpon_ni_onu_discovered_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_ONU_DISCOVERED_ID_SERIAL_NUMBER)) != 0)
+    {
+        if (!bcmolt_serial_number_unpack(&this->serial_number, buf, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_ONU_DISCOVERED_ID_RANGING_TIME)) != 0)
+    {
+        if (!bcmolt_buf_read_u32(buf, &this->ranging_time))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_ONU_DISCOVERED_ID_ONU_ID)) != 0)
+    {
+        if (!bcmolt_buf_read_u16(buf, (uint16_t *) &this->onu_id))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_ONU_DISCOVERED_ID_UPSTREAM_LINE_RATE_CAPABILITIES)) != 0)
+    {
+        if (!bcmolt_upstream_line_rate_capabilities_unpack(&this->upstream_line_rate_capabilities, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_ONU_DISCOVERED_ID_CURRENT_DOWNSTREAM_PON_ID)) != 0)
+    {
+        if (!bcmolt_buf_read_u8(buf, &this->current_downstream_pon_id))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_ONU_DISCOVERED_ID_CURRENT_UPSTREAM_PON_ID)) != 0)
+    {
+        if (!bcmolt_buf_read_u8(buf, &this->current_upstream_pon_id))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_ONU_DISCOVERED_ID_CALIBRATION_RECORD)) != 0)
+    {
+        if (!bcmolt_arr_calibration_record_8_unpack(&this->calibration_record, buf, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_ONU_DISCOVERED_ID_TUNING_GRANULARITY)) != 0)
+    {
+        if (!bcmolt_buf_read_u8(buf, &this->tuning_granularity))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_ONU_DISCOVERED_ID_STEP_TUNING_TIME)) != 0)
+    {
+        if (!bcmolt_buf_read_u8(buf, &this->step_tuning_time))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_ONU_DISCOVERED_ID_ATTENUATION)) != 0)
+    {
+        if (!bcmolt_buf_read_u8(buf, &this->attenuation))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_ONU_DISCOVERED_ID_POWER_LEVELLING_CAPABILITIES)) != 0)
+    {
+        if (!bcmolt_buf_read_u8(buf, &this->power_levelling_capabilities))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_ni_onu_discovered_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_ONU_DISCOVERED_ID_SERIAL_NUMBER)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_ONU_DISCOVERED_ID_RANGING_TIME)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 4))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_ONU_DISCOVERED_ID_ONU_ID)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 2))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_ONU_DISCOVERED_ID_UPSTREAM_LINE_RATE_CAPABILITIES)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_ONU_DISCOVERED_ID_CURRENT_DOWNSTREAM_PON_ID)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_ONU_DISCOVERED_ID_CURRENT_UPSTREAM_PON_ID)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_ONU_DISCOVERED_ID_CALIBRATION_RECORD)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_ONU_DISCOVERED_ID_TUNING_GRANULARITY)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_ONU_DISCOVERED_ID_STEP_TUNING_TIME)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_ONU_DISCOVERED_ID_ATTENUATION)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_ONU_DISCOVERED_ID_POWER_LEVELLING_CAPABILITIES)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_ni_onu_discovered_data_bounds_check(const bcmolt_xgpon_ni_onu_discovered_data *this, bcmolt_presence_mask fields_present, bcmolt_xgpon_ni_onu_discovered_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_ONU_DISCOVERED_ID_SERIAL_NUMBER)) != 0)
+    {
+        if (!bcmolt_serial_number_bounds_check(&this->serial_number))
+        {
+            *failed_prop = BCMOLT_XGPON_NI_ONU_DISCOVERED_ID_SERIAL_NUMBER;
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_ONU_DISCOVERED_ID_ONU_ID)) != 0)
+    {
+        if (this->onu_id > (bcmolt_xgpon_onu_id) 511)
+        {
+            *failed_prop = BCMOLT_XGPON_NI_ONU_DISCOVERED_ID_ONU_ID;
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_ONU_DISCOVERED_ID_UPSTREAM_LINE_RATE_CAPABILITIES)) != 0)
+    {
+        switch (this->upstream_line_rate_capabilities)
+        {
+            case BCMOLT_UPSTREAM_LINE_RATE_CAPABILITIES_RATE_2_P_5_G:
+                break;
+            case BCMOLT_UPSTREAM_LINE_RATE_CAPABILITIES_RATE_10_G:
+                break;
+            default:
+                *failed_prop = BCMOLT_XGPON_NI_ONU_DISCOVERED_ID_UPSTREAM_LINE_RATE_CAPABILITIES;
+                return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_ONU_DISCOVERED_ID_CALIBRATION_RECORD)) != 0)
+    {
+        if (!bcmolt_arr_calibration_record_8_bounds_check(&this->calibration_record))
+        {
+            *failed_prop = BCMOLT_XGPON_NI_ONU_DISCOVERED_ID_CALIBRATION_RECORD;
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_ONU_DISCOVERED_ID_ATTENUATION)) != 0)
+    {
+        if (this->attenuation > 7)
+        {
+            *failed_prop = BCMOLT_XGPON_NI_ONU_DISCOVERED_ID_ATTENUATION;
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_ONU_DISCOVERED_ID_POWER_LEVELLING_CAPABILITIES)) != 0)
+    {
+        if (this->power_levelling_capabilities > 127)
+        {
+            *failed_prop = BCMOLT_XGPON_NI_ONU_DISCOVERED_ID_POWER_LEVELLING_CAPABILITIES;
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_xgpon_ni_onu_upgrade_complete_data_set_default(bcmolt_xgpon_ni_onu_upgrade_complete_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_ONU_UPGRADE_COMPLETE_ID_STATUS)) != 0)
+    {
+        this->status = BCMOS_FALSE;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_ONU_UPGRADE_COMPLETE_ID_LIST_OF_FAILED_ENTITIES)) != 0)
+    {
+        this->list_of_failed_entities.len = 0;
+        this->list_of_failed_entities.val = NULL;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_ni_onu_upgrade_complete_data_pack(const bcmolt_xgpon_ni_onu_upgrade_complete_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_ONU_UPGRADE_COMPLETE_ID_STATUS)) != 0)
+    {
+        if (!bcmolt_buf_write_bool(buf, this->status))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_ONU_UPGRADE_COMPLETE_ID_LIST_OF_FAILED_ENTITIES)) != 0)
+    {
+        if (!bcmolt_gpon_onu_upgrade_status_list_u32_pack(&this->list_of_failed_entities, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_xgpon_ni_onu_upgrade_complete_data_get_packed_length(const bcmolt_xgpon_ni_onu_upgrade_complete_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_ONU_UPGRADE_COMPLETE_ID_STATUS)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_ONU_UPGRADE_COMPLETE_ID_LIST_OF_FAILED_ENTITIES)) != 0)
+    {
+        count += bcmolt_gpon_onu_upgrade_status_list_u32_get_packed_length(&this->list_of_failed_entities);
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_ni_onu_upgrade_complete_data_unpack(bcmolt_xgpon_ni_onu_upgrade_complete_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_ONU_UPGRADE_COMPLETE_ID_STATUS)) != 0)
+    {
+        if (!bcmolt_buf_read_bool(buf, &this->status))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_ONU_UPGRADE_COMPLETE_ID_LIST_OF_FAILED_ENTITIES)) != 0)
+    {
+        if (!bcmolt_gpon_onu_upgrade_status_list_u32_unpack(&this->list_of_failed_entities, buf, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_ni_onu_upgrade_complete_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_ONU_UPGRADE_COMPLETE_ID_STATUS)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_ONU_UPGRADE_COMPLETE_ID_LIST_OF_FAILED_ENTITIES)) != 0)
+    {
+        if (!bcmolt_gpon_onu_upgrade_status_list_u32_scan(packed, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_ni_onu_upgrade_complete_data_bounds_check(const bcmolt_xgpon_ni_onu_upgrade_complete_data *this, bcmolt_presence_mask fields_present, bcmolt_xgpon_ni_onu_upgrade_complete_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_ONU_UPGRADE_COMPLETE_ID_LIST_OF_FAILED_ENTITIES)) != 0)
+    {
+        if (!bcmolt_gpon_onu_upgrade_status_list_u32_bounds_check(&this->list_of_failed_entities))
+        {
+            *failed_prop = BCMOLT_XGPON_NI_ONU_UPGRADE_COMPLETE_ID_LIST_OF_FAILED_ENTITIES;
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_xgpon_ni_protection_switching_onus_ranged_data_set_default(bcmolt_xgpon_ni_protection_switching_onus_ranged_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_PROTECTION_SWITCHING_ONUS_RANGED_ID_ONUS)) != 0)
+    {
+        this->onus.len = 0;
+        this->onus.val = NULL;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_ni_protection_switching_onus_ranged_data_pack(const bcmolt_xgpon_ni_protection_switching_onus_ranged_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_PROTECTION_SWITCHING_ONUS_RANGED_ID_ONUS)) != 0)
+    {
+        if (!bcmolt_xgpon_onu_eqd_list_u32_pack(&this->onus, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_xgpon_ni_protection_switching_onus_ranged_data_get_packed_length(const bcmolt_xgpon_ni_protection_switching_onus_ranged_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_PROTECTION_SWITCHING_ONUS_RANGED_ID_ONUS)) != 0)
+    {
+        count += bcmolt_xgpon_onu_eqd_list_u32_get_packed_length(&this->onus);
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_ni_protection_switching_onus_ranged_data_unpack(bcmolt_xgpon_ni_protection_switching_onus_ranged_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_PROTECTION_SWITCHING_ONUS_RANGED_ID_ONUS)) != 0)
+    {
+        if (!bcmolt_xgpon_onu_eqd_list_u32_unpack(&this->onus, buf, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_ni_protection_switching_onus_ranged_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_PROTECTION_SWITCHING_ONUS_RANGED_ID_ONUS)) != 0)
+    {
+        if (!bcmolt_xgpon_onu_eqd_list_u32_scan(packed, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_ni_protection_switching_onus_ranged_data_bounds_check(const bcmolt_xgpon_ni_protection_switching_onus_ranged_data *this, bcmolt_presence_mask fields_present, bcmolt_xgpon_ni_protection_switching_onus_ranged_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_PROTECTION_SWITCHING_ONUS_RANGED_ID_ONUS)) != 0)
+    {
+        if (!bcmolt_xgpon_onu_eqd_list_u32_bounds_check(&this->onus))
+        {
+            *failed_prop = BCMOLT_XGPON_NI_PROTECTION_SWITCHING_ONUS_RANGED_ID_ONUS;
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_xgpon_ni_protection_switching_switchover_completed_data_set_default(bcmolt_xgpon_ni_protection_switching_switchover_completed_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_PROTECTION_SWITCHING_SWITCHOVER_COMPLETED_ID_RESULT)) != 0)
+    {
+        this->result = BCMOLT_RESULT_SUCCESS;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_ni_protection_switching_switchover_completed_data_pack(const bcmolt_xgpon_ni_protection_switching_switchover_completed_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_PROTECTION_SWITCHING_SWITCHOVER_COMPLETED_ID_RESULT)) != 0)
+    {
+        if (!bcmolt_result_pack(this->result, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_xgpon_ni_protection_switching_switchover_completed_data_get_packed_length(const bcmolt_xgpon_ni_protection_switching_switchover_completed_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_PROTECTION_SWITCHING_SWITCHOVER_COMPLETED_ID_RESULT)) != 0)
+    {
+        count += 1;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_ni_protection_switching_switchover_completed_data_unpack(bcmolt_xgpon_ni_protection_switching_switchover_completed_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_PROTECTION_SWITCHING_SWITCHOVER_COMPLETED_ID_RESULT)) != 0)
+    {
+        if (!bcmolt_result_unpack(&this->result, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_ni_protection_switching_switchover_completed_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_PROTECTION_SWITCHING_SWITCHOVER_COMPLETED_ID_RESULT)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_ni_protection_switching_switchover_completed_data_bounds_check(const bcmolt_xgpon_ni_protection_switching_switchover_completed_data *this, bcmolt_presence_mask fields_present, bcmolt_xgpon_ni_protection_switching_switchover_completed_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_PROTECTION_SWITCHING_SWITCHOVER_COMPLETED_ID_RESULT)) != 0)
+    {
+        switch (this->result)
+        {
+            case BCMOLT_RESULT_SUCCESS:
+                break;
+            case BCMOLT_RESULT_FAIL:
+                break;
+            default:
+                *failed_prop = BCMOLT_XGPON_NI_PROTECTION_SWITCHING_SWITCHOVER_COMPLETED_ID_RESULT;
+                return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_xgpon_ni_protection_switching_traffic_resume_data_set_default(bcmolt_xgpon_ni_protection_switching_traffic_resume_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_PROTECTION_SWITCHING_TRAFFIC_RESUME_ID_RESULT)) != 0)
+    {
+        this->result = BCMOLT_TRAFFIC_RESUME_RESULT_SUCCESS;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_ni_protection_switching_traffic_resume_data_pack(const bcmolt_xgpon_ni_protection_switching_traffic_resume_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_PROTECTION_SWITCHING_TRAFFIC_RESUME_ID_RESULT)) != 0)
+    {
+        if (!bcmolt_traffic_resume_result_pack(this->result, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_xgpon_ni_protection_switching_traffic_resume_data_get_packed_length(const bcmolt_xgpon_ni_protection_switching_traffic_resume_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_PROTECTION_SWITCHING_TRAFFIC_RESUME_ID_RESULT)) != 0)
+    {
+        count += 1;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_ni_protection_switching_traffic_resume_data_unpack(bcmolt_xgpon_ni_protection_switching_traffic_resume_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_PROTECTION_SWITCHING_TRAFFIC_RESUME_ID_RESULT)) != 0)
+    {
+        if (!bcmolt_traffic_resume_result_unpack(&this->result, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_ni_protection_switching_traffic_resume_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_PROTECTION_SWITCHING_TRAFFIC_RESUME_ID_RESULT)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_ni_protection_switching_traffic_resume_data_bounds_check(const bcmolt_xgpon_ni_protection_switching_traffic_resume_data *this, bcmolt_presence_mask fields_present, bcmolt_xgpon_ni_protection_switching_traffic_resume_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_PROTECTION_SWITCHING_TRAFFIC_RESUME_ID_RESULT)) != 0)
+    {
+        switch (this->result)
+        {
+            case BCMOLT_TRAFFIC_RESUME_RESULT_SUCCESS:
+                break;
+            case BCMOLT_TRAFFIC_RESUME_RESULT_FAILURE:
+                break;
+            case BCMOLT_TRAFFIC_RESUME_RESULT_SUSPECTED_LOS:
+                break;
+            default:
+                *failed_prop = BCMOLT_XGPON_NI_PROTECTION_SWITCHING_TRAFFIC_RESUME_ID_RESULT;
+                return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_xgpon_ni_rogue_detection_completed_data_set_default(bcmolt_xgpon_ni_rogue_detection_completed_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_ROGUE_DETECTION_COMPLETED_ID_WINDOW_TYPE)) != 0)
+    {
+        this->window_type = BCMOLT_ROGUE_DETECTION_WINDOW_SILENT_WINDOW;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_ROGUE_DETECTION_COMPLETED_ID_MEASUREMENT_STATUS)) != 0)
+    {
+        this->measurement_status = BCMOLT_ROGUE_MEASUREMENT_RESULT_RSSI_COMPLETE;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_ROGUE_DETECTION_COMPLETED_ID_ALLOC_ID)) != 0)
+    {
+        this->alloc_id = (bcmolt_xgpon_alloc_id) 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_ROGUE_DETECTION_COMPLETED_ID_ONU_ID)) != 0)
+    {
+        this->onu_id = (bcmolt_xgpon_onu_id) 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_ROGUE_DETECTION_COMPLETED_ID_IS_DELINEATION)) != 0)
+    {
+        this->is_delineation = BCMOS_FALSE;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_ROGUE_DETECTION_COMPLETED_ID_IS_ED)) != 0)
+    {
+        this->is_ed = BCMOS_FALSE;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_ROGUE_DETECTION_COMPLETED_ID_RX_DATA)) != 0)
+    {
+        this->rx_data.len = 0;
+        this->rx_data.val = NULL;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_ROGUE_DETECTION_COMPLETED_ID_PLOAM_RECEIVED_ONU_ID)) != 0)
+    {
+        this->ploam_received_onu_id = (bcmolt_xgpon_onu_id) 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_ROGUE_DETECTION_COMPLETED_ID_PLOAM_RECEIVED_MIC_ERROR)) != 0)
+    {
+        this->ploam_received_mic_error = BCMOS_FALSE;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_ni_rogue_detection_completed_data_pack(const bcmolt_xgpon_ni_rogue_detection_completed_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_ROGUE_DETECTION_COMPLETED_ID_WINDOW_TYPE)) != 0)
+    {
+        if (!bcmolt_rogue_detection_window_pack(this->window_type, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_ROGUE_DETECTION_COMPLETED_ID_MEASUREMENT_STATUS)) != 0)
+    {
+        if (!bcmolt_rogue_measurement_result_pack(this->measurement_status, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_ROGUE_DETECTION_COMPLETED_ID_ALLOC_ID)) != 0)
+    {
+        if (!bcmolt_buf_write_u16(buf, (uint16_t) this->alloc_id))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_ROGUE_DETECTION_COMPLETED_ID_ONU_ID)) != 0)
+    {
+        if (!bcmolt_buf_write_u16(buf, (uint16_t) this->onu_id))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_ROGUE_DETECTION_COMPLETED_ID_IS_DELINEATION)) != 0)
+    {
+        if (!bcmolt_buf_write_bool(buf, this->is_delineation))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_ROGUE_DETECTION_COMPLETED_ID_IS_ED)) != 0)
+    {
+        if (!bcmolt_buf_write_bool(buf, this->is_ed))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_ROGUE_DETECTION_COMPLETED_ID_RX_DATA)) != 0)
+    {
+        if (!bcmolt_u8_list_u32_pack(&this->rx_data, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_ROGUE_DETECTION_COMPLETED_ID_PLOAM_RECEIVED_ONU_ID)) != 0)
+    {
+        if (!bcmolt_buf_write_u16(buf, (uint16_t) this->ploam_received_onu_id))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_ROGUE_DETECTION_COMPLETED_ID_PLOAM_RECEIVED_MIC_ERROR)) != 0)
+    {
+        if (!bcmolt_buf_write_bool(buf, this->ploam_received_mic_error))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_xgpon_ni_rogue_detection_completed_data_get_packed_length(const bcmolt_xgpon_ni_rogue_detection_completed_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_ROGUE_DETECTION_COMPLETED_ID_WINDOW_TYPE)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_ROGUE_DETECTION_COMPLETED_ID_MEASUREMENT_STATUS)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_ROGUE_DETECTION_COMPLETED_ID_ALLOC_ID)) != 0)
+    {
+        count += 2;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_ROGUE_DETECTION_COMPLETED_ID_ONU_ID)) != 0)
+    {
+        count += 2;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_ROGUE_DETECTION_COMPLETED_ID_IS_DELINEATION)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_ROGUE_DETECTION_COMPLETED_ID_IS_ED)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_ROGUE_DETECTION_COMPLETED_ID_RX_DATA)) != 0)
+    {
+        count += bcmolt_u8_list_u32_get_packed_length(&this->rx_data);
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_ROGUE_DETECTION_COMPLETED_ID_PLOAM_RECEIVED_ONU_ID)) != 0)
+    {
+        count += 2;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_ROGUE_DETECTION_COMPLETED_ID_PLOAM_RECEIVED_MIC_ERROR)) != 0)
+    {
+        count += 1;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_ni_rogue_detection_completed_data_unpack(bcmolt_xgpon_ni_rogue_detection_completed_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_ROGUE_DETECTION_COMPLETED_ID_WINDOW_TYPE)) != 0)
+    {
+        if (!bcmolt_rogue_detection_window_unpack(&this->window_type, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_ROGUE_DETECTION_COMPLETED_ID_MEASUREMENT_STATUS)) != 0)
+    {
+        if (!bcmolt_rogue_measurement_result_unpack(&this->measurement_status, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_ROGUE_DETECTION_COMPLETED_ID_ALLOC_ID)) != 0)
+    {
+        if (!bcmolt_buf_read_u16(buf, (uint16_t *) &this->alloc_id))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_ROGUE_DETECTION_COMPLETED_ID_ONU_ID)) != 0)
+    {
+        if (!bcmolt_buf_read_u16(buf, (uint16_t *) &this->onu_id))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_ROGUE_DETECTION_COMPLETED_ID_IS_DELINEATION)) != 0)
+    {
+        if (!bcmolt_buf_read_bool(buf, &this->is_delineation))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_ROGUE_DETECTION_COMPLETED_ID_IS_ED)) != 0)
+    {
+        if (!bcmolt_buf_read_bool(buf, &this->is_ed))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_ROGUE_DETECTION_COMPLETED_ID_RX_DATA)) != 0)
+    {
+        if (!bcmolt_u8_list_u32_unpack(&this->rx_data, buf, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_ROGUE_DETECTION_COMPLETED_ID_PLOAM_RECEIVED_ONU_ID)) != 0)
+    {
+        if (!bcmolt_buf_read_u16(buf, (uint16_t *) &this->ploam_received_onu_id))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_ROGUE_DETECTION_COMPLETED_ID_PLOAM_RECEIVED_MIC_ERROR)) != 0)
+    {
+        if (!bcmolt_buf_read_bool(buf, &this->ploam_received_mic_error))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_ni_rogue_detection_completed_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_ROGUE_DETECTION_COMPLETED_ID_WINDOW_TYPE)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_ROGUE_DETECTION_COMPLETED_ID_MEASUREMENT_STATUS)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_ROGUE_DETECTION_COMPLETED_ID_ALLOC_ID)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 2))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_ROGUE_DETECTION_COMPLETED_ID_ONU_ID)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 2))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_ROGUE_DETECTION_COMPLETED_ID_IS_DELINEATION)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_ROGUE_DETECTION_COMPLETED_ID_IS_ED)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_ROGUE_DETECTION_COMPLETED_ID_RX_DATA)) != 0)
+    {
+        if (!bcmolt_u8_list_u32_scan(packed, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_ROGUE_DETECTION_COMPLETED_ID_PLOAM_RECEIVED_ONU_ID)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 2))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_ROGUE_DETECTION_COMPLETED_ID_PLOAM_RECEIVED_MIC_ERROR)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_ni_rogue_detection_completed_data_bounds_check(const bcmolt_xgpon_ni_rogue_detection_completed_data *this, bcmolt_presence_mask fields_present, bcmolt_xgpon_ni_rogue_detection_completed_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_ROGUE_DETECTION_COMPLETED_ID_WINDOW_TYPE)) != 0)
+    {
+        switch (this->window_type)
+        {
+            case BCMOLT_ROGUE_DETECTION_WINDOW_SILENT_WINDOW:
+                break;
+            case BCMOLT_ROGUE_DETECTION_WINDOW_CUT_OFF_WINDOW:
+                break;
+            default:
+                *failed_prop = BCMOLT_XGPON_NI_ROGUE_DETECTION_COMPLETED_ID_WINDOW_TYPE;
+                return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_ROGUE_DETECTION_COMPLETED_ID_MEASUREMENT_STATUS)) != 0)
+    {
+        switch (this->measurement_status)
+        {
+            case BCMOLT_ROGUE_MEASUREMENT_RESULT_RSSI_COMPLETE:
+                break;
+            case BCMOLT_ROGUE_MEASUREMENT_RESULT_NOT_PERFORMED:
+                break;
+            case BCMOLT_ROGUE_MEASUREMENT_RESULT_ROGUE_CYCLE_STOP:
+                break;
+            case BCMOLT_ROGUE_MEASUREMENT_RESULT_RSSI_ERROR:
+                break;
+            case BCMOLT_ROGUE_MEASUREMENT_RESULT_RSSI_NOT_COMPLETE:
+                break;
+            default:
+                *failed_prop = BCMOLT_XGPON_NI_ROGUE_DETECTION_COMPLETED_ID_MEASUREMENT_STATUS;
+                return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_ROGUE_DETECTION_COMPLETED_ID_ALLOC_ID)) != 0)
+    {
+        if (this->alloc_id > (bcmolt_xgpon_alloc_id) 16383)
+        {
+            *failed_prop = BCMOLT_XGPON_NI_ROGUE_DETECTION_COMPLETED_ID_ALLOC_ID;
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_ROGUE_DETECTION_COMPLETED_ID_ONU_ID)) != 0)
+    {
+        if (this->onu_id > (bcmolt_xgpon_onu_id) 511)
+        {
+            *failed_prop = BCMOLT_XGPON_NI_ROGUE_DETECTION_COMPLETED_ID_ONU_ID;
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_ROGUE_DETECTION_COMPLETED_ID_RX_DATA)) != 0)
+    {
+        if (!bcmolt_u8_list_u32_bounds_check(&this->rx_data))
+        {
+            *failed_prop = BCMOLT_XGPON_NI_ROGUE_DETECTION_COMPLETED_ID_RX_DATA;
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_ROGUE_DETECTION_COMPLETED_ID_PLOAM_RECEIVED_ONU_ID)) != 0)
+    {
+        if (this->ploam_received_onu_id > (bcmolt_xgpon_onu_id) 511)
+        {
+            *failed_prop = BCMOLT_XGPON_NI_ROGUE_DETECTION_COMPLETED_ID_PLOAM_RECEIVED_ONU_ID;
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_xgpon_ni_standby_pon_monitoring_cycle_completed_data_set_default(bcmolt_xgpon_ni_standby_pon_monitoring_cycle_completed_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_STANDBY_PON_MONITORING_CYCLE_COMPLETED_ID_NUMBER_OF_DETECTED_DELIMITER)) != 0)
+    {
+        this->number_of_detected_delimiter = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_STANDBY_PON_MONITORING_CYCLE_COMPLETED_ID_ENERGY_DETECT_SIGNAL)) != 0)
+    {
+        this->energy_detect_signal = BCMOLT_STATUS_OFF;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_ni_standby_pon_monitoring_cycle_completed_data_pack(const bcmolt_xgpon_ni_standby_pon_monitoring_cycle_completed_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_STANDBY_PON_MONITORING_CYCLE_COMPLETED_ID_NUMBER_OF_DETECTED_DELIMITER)) != 0)
+    {
+        if (!bcmolt_buf_write_u32(buf, this->number_of_detected_delimiter))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_STANDBY_PON_MONITORING_CYCLE_COMPLETED_ID_ENERGY_DETECT_SIGNAL)) != 0)
+    {
+        if (!bcmolt_status_pack(this->energy_detect_signal, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_xgpon_ni_standby_pon_monitoring_cycle_completed_data_get_packed_length(const bcmolt_xgpon_ni_standby_pon_monitoring_cycle_completed_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_STANDBY_PON_MONITORING_CYCLE_COMPLETED_ID_NUMBER_OF_DETECTED_DELIMITER)) != 0)
+    {
+        count += 4;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_STANDBY_PON_MONITORING_CYCLE_COMPLETED_ID_ENERGY_DETECT_SIGNAL)) != 0)
+    {
+        count += 1;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_ni_standby_pon_monitoring_cycle_completed_data_unpack(bcmolt_xgpon_ni_standby_pon_monitoring_cycle_completed_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_STANDBY_PON_MONITORING_CYCLE_COMPLETED_ID_NUMBER_OF_DETECTED_DELIMITER)) != 0)
+    {
+        if (!bcmolt_buf_read_u32(buf, &this->number_of_detected_delimiter))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_STANDBY_PON_MONITORING_CYCLE_COMPLETED_ID_ENERGY_DETECT_SIGNAL)) != 0)
+    {
+        if (!bcmolt_status_unpack(&this->energy_detect_signal, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_ni_standby_pon_monitoring_cycle_completed_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_STANDBY_PON_MONITORING_CYCLE_COMPLETED_ID_NUMBER_OF_DETECTED_DELIMITER)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 4))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_STANDBY_PON_MONITORING_CYCLE_COMPLETED_ID_ENERGY_DETECT_SIGNAL)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_ni_standby_pon_monitoring_cycle_completed_data_bounds_check(const bcmolt_xgpon_ni_standby_pon_monitoring_cycle_completed_data *this, bcmolt_presence_mask fields_present, bcmolt_xgpon_ni_standby_pon_monitoring_cycle_completed_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_STANDBY_PON_MONITORING_CYCLE_COMPLETED_ID_ENERGY_DETECT_SIGNAL)) != 0)
+    {
+        switch (this->energy_detect_signal)
+        {
+            case BCMOLT_STATUS_OFF:
+                break;
+            case BCMOLT_STATUS_ON:
+                break;
+            case BCMOLT_STATUS_NO_CHANGE:
+                break;
+            default:
+                *failed_prop = BCMOLT_XGPON_NI_STANDBY_PON_MONITORING_CYCLE_COMPLETED_ID_ENERGY_DETECT_SIGNAL;
+                return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_xgpon_ni_stat_alarm_cleared_data_set_default(bcmolt_xgpon_ni_stat_alarm_cleared_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_STAT_ALARM_CLEARED_ID_STAT)) != 0)
+    {
+        this->stat = BCMOLT_XGPON_NI_STAT_ID_FEC_CODEWORDS;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_ni_stat_alarm_cleared_data_pack(const bcmolt_xgpon_ni_stat_alarm_cleared_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_STAT_ALARM_CLEARED_ID_STAT)) != 0)
+    {
+        if (!bcmolt_xgpon_ni_stat_id_pack(this->stat, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_xgpon_ni_stat_alarm_cleared_data_get_packed_length(const bcmolt_xgpon_ni_stat_alarm_cleared_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_STAT_ALARM_CLEARED_ID_STAT)) != 0)
+    {
+        count += 2;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_ni_stat_alarm_cleared_data_unpack(bcmolt_xgpon_ni_stat_alarm_cleared_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_STAT_ALARM_CLEARED_ID_STAT)) != 0)
+    {
+        if (!bcmolt_xgpon_ni_stat_id_unpack(&this->stat, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_ni_stat_alarm_cleared_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_STAT_ALARM_CLEARED_ID_STAT)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 2))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_ni_stat_alarm_cleared_data_bounds_check(const bcmolt_xgpon_ni_stat_alarm_cleared_data *this, bcmolt_presence_mask fields_present, bcmolt_xgpon_ni_stat_alarm_cleared_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_STAT_ALARM_CLEARED_ID_STAT)) != 0)
+    {
+        switch (this->stat)
+        {
+            case BCMOLT_XGPON_NI_STAT_ID_FEC_CODEWORDS:
+                break;
+            case BCMOLT_XGPON_NI_STAT_ID_BIP32_BYTES:
+                break;
+            case BCMOLT_XGPON_NI_STAT_ID_BIP32_ERRORS:
+                break;
+            case BCMOLT_XGPON_NI_STAT_ID_RX_XGTC_HEADERS:
+                break;
+            case BCMOLT_XGPON_NI_STAT_ID_RX_XGTC_CORRECTED:
+                break;
+            case BCMOLT_XGPON_NI_STAT_ID_RX_XGTC_UNCORRECTED:
+                break;
+            case BCMOLT_XGPON_NI_STAT_ID_RX_XGEM:
+                break;
+            case BCMOLT_XGPON_NI_STAT_ID_RX_XGEM_DROPPED:
+                break;
+            case BCMOLT_XGPON_NI_STAT_ID_RX_XGEM_IDLE:
+                break;
+            case BCMOLT_XGPON_NI_STAT_ID_RX_XGEM_CORRECTED:
+                break;
+            case BCMOLT_XGPON_NI_STAT_ID_RX_CRC_ERROR:
+                break;
+            case BCMOLT_XGPON_NI_STAT_ID_RX_FRAGMENT_ERROR:
+                break;
+            case BCMOLT_XGPON_NI_STAT_ID_RX_PACKETS_DROPPED:
+                break;
+            case BCMOLT_XGPON_NI_STAT_ID_RX_DROPPED_TOO_SHORT:
+                break;
+            case BCMOLT_XGPON_NI_STAT_ID_RX_DROPPED_TOO_LONG:
+                break;
+            case BCMOLT_XGPON_NI_STAT_ID_RX_KEY_ERROR:
+                break;
+            case BCMOLT_XGPON_NI_STAT_ID_TX_PLOAMS:
+                break;
+            case BCMOLT_XGPON_NI_STAT_ID_RX_PLOAMS_DROPPED:
+                break;
+            case BCMOLT_XGPON_NI_STAT_ID_RX_ALLOCATIONS_VALID:
+                break;
+            case BCMOLT_XGPON_NI_STAT_ID_RX_ALLOCATIONS_INVALID:
+                break;
+            case BCMOLT_XGPON_NI_STAT_ID_RX_ALLOCATIONS_DISABLED:
+                break;
+            case BCMOLT_XGPON_NI_STAT_ID_RX_PLOAMS:
+                break;
+            case BCMOLT_XGPON_NI_STAT_ID_RX_PLOAMS_NON_IDLE:
+                break;
+            case BCMOLT_XGPON_NI_STAT_ID_RX_PLOAMS_ERROR:
+                break;
+            case BCMOLT_XGPON_NI_STAT_ID_RX_CPU:
+                break;
+            case BCMOLT_XGPON_NI_STAT_ID_RX_OMCI:
+                break;
+            case BCMOLT_XGPON_NI_STAT_ID_RX_OMCI_PACKETS_CRC_ERROR:
+                break;
+            case BCMOLT_XGPON_NI_STAT_ID_TX_PACKETS:
+                break;
+            case BCMOLT_XGPON_NI_STAT_ID_TX_XGEM:
+                break;
+            case BCMOLT_XGPON_NI_STAT_ID_TX_CPU:
+                break;
+            case BCMOLT_XGPON_NI_STAT_ID_TX_OMCI:
+                break;
+            case BCMOLT_XGPON_NI_STAT_ID_TX_CPU_OMCI_PACKETS_DROPPED:
+                break;
+            case BCMOLT_XGPON_NI_STAT_ID_TX_DROPPED_ILLEGAL_LENGTH:
+                break;
+            case BCMOLT_XGPON_NI_STAT_ID_TX_DROPPED_TPID_MISS:
+                break;
+            case BCMOLT_XGPON_NI_STAT_ID_TX_DROPPED_VID_MISS:
+                break;
+            default:
+                *failed_prop = BCMOLT_XGPON_NI_STAT_ALARM_CLEARED_ID_STAT;
+                return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_xgpon_ni_stat_alarm_raised_data_set_default(bcmolt_xgpon_ni_stat_alarm_raised_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_STAT_ALARM_RAISED_ID_STAT)) != 0)
+    {
+        this->stat = BCMOLT_XGPON_NI_STAT_ID_FEC_CODEWORDS;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_ni_stat_alarm_raised_data_pack(const bcmolt_xgpon_ni_stat_alarm_raised_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_STAT_ALARM_RAISED_ID_STAT)) != 0)
+    {
+        if (!bcmolt_xgpon_ni_stat_id_pack(this->stat, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_xgpon_ni_stat_alarm_raised_data_get_packed_length(const bcmolt_xgpon_ni_stat_alarm_raised_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_STAT_ALARM_RAISED_ID_STAT)) != 0)
+    {
+        count += 2;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_ni_stat_alarm_raised_data_unpack(bcmolt_xgpon_ni_stat_alarm_raised_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_STAT_ALARM_RAISED_ID_STAT)) != 0)
+    {
+        if (!bcmolt_xgpon_ni_stat_id_unpack(&this->stat, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_ni_stat_alarm_raised_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_STAT_ALARM_RAISED_ID_STAT)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 2))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_ni_stat_alarm_raised_data_bounds_check(const bcmolt_xgpon_ni_stat_alarm_raised_data *this, bcmolt_presence_mask fields_present, bcmolt_xgpon_ni_stat_alarm_raised_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_STAT_ALARM_RAISED_ID_STAT)) != 0)
+    {
+        switch (this->stat)
+        {
+            case BCMOLT_XGPON_NI_STAT_ID_FEC_CODEWORDS:
+                break;
+            case BCMOLT_XGPON_NI_STAT_ID_BIP32_BYTES:
+                break;
+            case BCMOLT_XGPON_NI_STAT_ID_BIP32_ERRORS:
+                break;
+            case BCMOLT_XGPON_NI_STAT_ID_RX_XGTC_HEADERS:
+                break;
+            case BCMOLT_XGPON_NI_STAT_ID_RX_XGTC_CORRECTED:
+                break;
+            case BCMOLT_XGPON_NI_STAT_ID_RX_XGTC_UNCORRECTED:
+                break;
+            case BCMOLT_XGPON_NI_STAT_ID_RX_XGEM:
+                break;
+            case BCMOLT_XGPON_NI_STAT_ID_RX_XGEM_DROPPED:
+                break;
+            case BCMOLT_XGPON_NI_STAT_ID_RX_XGEM_IDLE:
+                break;
+            case BCMOLT_XGPON_NI_STAT_ID_RX_XGEM_CORRECTED:
+                break;
+            case BCMOLT_XGPON_NI_STAT_ID_RX_CRC_ERROR:
+                break;
+            case BCMOLT_XGPON_NI_STAT_ID_RX_FRAGMENT_ERROR:
+                break;
+            case BCMOLT_XGPON_NI_STAT_ID_RX_PACKETS_DROPPED:
+                break;
+            case BCMOLT_XGPON_NI_STAT_ID_RX_DROPPED_TOO_SHORT:
+                break;
+            case BCMOLT_XGPON_NI_STAT_ID_RX_DROPPED_TOO_LONG:
+                break;
+            case BCMOLT_XGPON_NI_STAT_ID_RX_KEY_ERROR:
+                break;
+            case BCMOLT_XGPON_NI_STAT_ID_TX_PLOAMS:
+                break;
+            case BCMOLT_XGPON_NI_STAT_ID_RX_PLOAMS_DROPPED:
+                break;
+            case BCMOLT_XGPON_NI_STAT_ID_RX_ALLOCATIONS_VALID:
+                break;
+            case BCMOLT_XGPON_NI_STAT_ID_RX_ALLOCATIONS_INVALID:
+                break;
+            case BCMOLT_XGPON_NI_STAT_ID_RX_ALLOCATIONS_DISABLED:
+                break;
+            case BCMOLT_XGPON_NI_STAT_ID_RX_PLOAMS:
+                break;
+            case BCMOLT_XGPON_NI_STAT_ID_RX_PLOAMS_NON_IDLE:
+                break;
+            case BCMOLT_XGPON_NI_STAT_ID_RX_PLOAMS_ERROR:
+                break;
+            case BCMOLT_XGPON_NI_STAT_ID_RX_CPU:
+                break;
+            case BCMOLT_XGPON_NI_STAT_ID_RX_OMCI:
+                break;
+            case BCMOLT_XGPON_NI_STAT_ID_RX_OMCI_PACKETS_CRC_ERROR:
+                break;
+            case BCMOLT_XGPON_NI_STAT_ID_TX_PACKETS:
+                break;
+            case BCMOLT_XGPON_NI_STAT_ID_TX_XGEM:
+                break;
+            case BCMOLT_XGPON_NI_STAT_ID_TX_CPU:
+                break;
+            case BCMOLT_XGPON_NI_STAT_ID_TX_OMCI:
+                break;
+            case BCMOLT_XGPON_NI_STAT_ID_TX_CPU_OMCI_PACKETS_DROPPED:
+                break;
+            case BCMOLT_XGPON_NI_STAT_ID_TX_DROPPED_ILLEGAL_LENGTH:
+                break;
+            case BCMOLT_XGPON_NI_STAT_ID_TX_DROPPED_TPID_MISS:
+                break;
+            case BCMOLT_XGPON_NI_STAT_ID_TX_DROPPED_VID_MISS:
+                break;
+            default:
+                *failed_prop = BCMOLT_XGPON_NI_STAT_ALARM_RAISED_ID_STAT;
+                return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_xgpon_ni_state_change_completed_data_set_default(bcmolt_xgpon_ni_state_change_completed_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_STATE_CHANGE_COMPLETED_ID_RESULT)) != 0)
+    {
+        this->result = BCMOLT_RESULT_SUCCESS;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_STATE_CHANGE_COMPLETED_ID_PREVIOUS_STATE)) != 0)
+    {
+        this->previous_state = BCMOLT_PON_STATE_INACTIVE;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_STATE_CHANGE_COMPLETED_ID_NEW_STATE)) != 0)
+    {
+        this->new_state = BCMOLT_PON_STATE_INACTIVE;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_ni_state_change_completed_data_pack(const bcmolt_xgpon_ni_state_change_completed_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_STATE_CHANGE_COMPLETED_ID_RESULT)) != 0)
+    {
+        if (!bcmolt_result_pack(this->result, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_STATE_CHANGE_COMPLETED_ID_PREVIOUS_STATE)) != 0)
+    {
+        if (!bcmolt_pon_state_pack(this->previous_state, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_STATE_CHANGE_COMPLETED_ID_NEW_STATE)) != 0)
+    {
+        if (!bcmolt_pon_state_pack(this->new_state, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_xgpon_ni_state_change_completed_data_get_packed_length(const bcmolt_xgpon_ni_state_change_completed_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_STATE_CHANGE_COMPLETED_ID_RESULT)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_STATE_CHANGE_COMPLETED_ID_PREVIOUS_STATE)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_STATE_CHANGE_COMPLETED_ID_NEW_STATE)) != 0)
+    {
+        count += 1;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_ni_state_change_completed_data_unpack(bcmolt_xgpon_ni_state_change_completed_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_STATE_CHANGE_COMPLETED_ID_RESULT)) != 0)
+    {
+        if (!bcmolt_result_unpack(&this->result, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_STATE_CHANGE_COMPLETED_ID_PREVIOUS_STATE)) != 0)
+    {
+        if (!bcmolt_pon_state_unpack(&this->previous_state, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_STATE_CHANGE_COMPLETED_ID_NEW_STATE)) != 0)
+    {
+        if (!bcmolt_pon_state_unpack(&this->new_state, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_ni_state_change_completed_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_STATE_CHANGE_COMPLETED_ID_RESULT)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_STATE_CHANGE_COMPLETED_ID_PREVIOUS_STATE)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_STATE_CHANGE_COMPLETED_ID_NEW_STATE)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_ni_state_change_completed_data_bounds_check(const bcmolt_xgpon_ni_state_change_completed_data *this, bcmolt_presence_mask fields_present, bcmolt_xgpon_ni_state_change_completed_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_STATE_CHANGE_COMPLETED_ID_RESULT)) != 0)
+    {
+        switch (this->result)
+        {
+            case BCMOLT_RESULT_SUCCESS:
+                break;
+            case BCMOLT_RESULT_FAIL:
+                break;
+            default:
+                *failed_prop = BCMOLT_XGPON_NI_STATE_CHANGE_COMPLETED_ID_RESULT;
+                return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_STATE_CHANGE_COMPLETED_ID_PREVIOUS_STATE)) != 0)
+    {
+        switch (this->previous_state)
+        {
+            case BCMOLT_PON_STATE_INACTIVE:
+                break;
+            case BCMOLT_PON_STATE_PROCESSING:
+                break;
+            case BCMOLT_PON_STATE_ACTIVE_WORKING:
+                break;
+            case BCMOLT_PON_STATE_ACTIVE_STANDBY:
+                break;
+            default:
+                *failed_prop = BCMOLT_XGPON_NI_STATE_CHANGE_COMPLETED_ID_PREVIOUS_STATE;
+                return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_STATE_CHANGE_COMPLETED_ID_NEW_STATE)) != 0)
+    {
+        switch (this->new_state)
+        {
+            case BCMOLT_PON_STATE_INACTIVE:
+                break;
+            case BCMOLT_PON_STATE_PROCESSING:
+                break;
+            case BCMOLT_PON_STATE_ACTIVE_WORKING:
+                break;
+            case BCMOLT_PON_STATE_ACTIVE_STANDBY:
+                break;
+            default:
+                *failed_prop = BCMOLT_XGPON_NI_STATE_CHANGE_COMPLETED_ID_NEW_STATE;
+                return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_xgpon_ni_tod_request_completed_data_set_default(bcmolt_xgpon_ni_tod_request_completed_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_TOD_REQUEST_COMPLETED_ID_TOD_STRING)) != 0)
+    {
+        memset(this->tod_string.str, 0, 64);
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_TOD_REQUEST_COMPLETED_ID_SFC)) != 0)
+    {
+        this->sfc = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_TOD_REQUEST_COMPLETED_ID_RTC_OFFSET_SEC)) != 0)
+    {
+        this->rtc_offset_sec = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_TOD_REQUEST_COMPLETED_ID_RTC_OFFSET_NSEC)) != 0)
+    {
+        this->rtc_offset_nsec = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_TOD_REQUEST_COMPLETED_ID_STATUS)) != 0)
+    {
+        this->status = BCMOLT_RESULT_SUCCESS;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_ni_tod_request_completed_data_pack(const bcmolt_xgpon_ni_tod_request_completed_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_TOD_REQUEST_COMPLETED_ID_TOD_STRING)) != 0)
+    {
+        if (!bcmolt_str_64_pack(&this->tod_string, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_TOD_REQUEST_COMPLETED_ID_SFC)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->sfc))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_TOD_REQUEST_COMPLETED_ID_RTC_OFFSET_SEC)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->rtc_offset_sec))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_TOD_REQUEST_COMPLETED_ID_RTC_OFFSET_NSEC)) != 0)
+    {
+        if (!bcmolt_buf_write_u32(buf, this->rtc_offset_nsec))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_TOD_REQUEST_COMPLETED_ID_STATUS)) != 0)
+    {
+        if (!bcmolt_result_pack(this->status, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_xgpon_ni_tod_request_completed_data_get_packed_length(const bcmolt_xgpon_ni_tod_request_completed_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_TOD_REQUEST_COMPLETED_ID_TOD_STRING)) != 0)
+    {
+        count += 64;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_TOD_REQUEST_COMPLETED_ID_SFC)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_TOD_REQUEST_COMPLETED_ID_RTC_OFFSET_SEC)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_TOD_REQUEST_COMPLETED_ID_RTC_OFFSET_NSEC)) != 0)
+    {
+        count += 4;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_TOD_REQUEST_COMPLETED_ID_STATUS)) != 0)
+    {
+        count += 1;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_ni_tod_request_completed_data_unpack(bcmolt_xgpon_ni_tod_request_completed_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_TOD_REQUEST_COMPLETED_ID_TOD_STRING)) != 0)
+    {
+        if (!bcmolt_str_64_unpack(&this->tod_string, buf, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_TOD_REQUEST_COMPLETED_ID_SFC)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->sfc))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_TOD_REQUEST_COMPLETED_ID_RTC_OFFSET_SEC)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->rtc_offset_sec))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_TOD_REQUEST_COMPLETED_ID_RTC_OFFSET_NSEC)) != 0)
+    {
+        if (!bcmolt_buf_read_u32(buf, &this->rtc_offset_nsec))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_TOD_REQUEST_COMPLETED_ID_STATUS)) != 0)
+    {
+        if (!bcmolt_result_unpack(&this->status, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_ni_tod_request_completed_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_TOD_REQUEST_COMPLETED_ID_TOD_STRING)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 64))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_TOD_REQUEST_COMPLETED_ID_SFC)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_TOD_REQUEST_COMPLETED_ID_RTC_OFFSET_SEC)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_TOD_REQUEST_COMPLETED_ID_RTC_OFFSET_NSEC)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 4))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_TOD_REQUEST_COMPLETED_ID_STATUS)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_ni_tod_request_completed_data_bounds_check(const bcmolt_xgpon_ni_tod_request_completed_data *this, bcmolt_presence_mask fields_present, bcmolt_xgpon_ni_tod_request_completed_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_TOD_REQUEST_COMPLETED_ID_TOD_STRING)) != 0)
+    {
+        if (!bcmolt_str_64_bounds_check(&this->tod_string))
+        {
+            *failed_prop = BCMOLT_XGPON_NI_TOD_REQUEST_COMPLETED_ID_TOD_STRING;
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_TOD_REQUEST_COMPLETED_ID_STATUS)) != 0)
+    {
+        switch (this->status)
+        {
+            case BCMOLT_RESULT_SUCCESS:
+                break;
+            case BCMOLT_RESULT_FAIL:
+                break;
+            default:
+                *failed_prop = BCMOLT_XGPON_NI_TOD_REQUEST_COMPLETED_ID_STATUS;
+                return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_xgpon_ni_auto_cfg_data_set_default(bcmolt_xgpon_ni_auto_cfg_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_AUTO_CFG_ID_ACTIVATE_ALL_ONUS_COMPLETED)) != 0)
+    {
+        this->activate_all_onus_completed = BCMOS_FALSE;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_AUTO_CFG_ID_CPU_PACKETS_FAILURE)) != 0)
+    {
+        this->cpu_packets_failure = BCMOS_FALSE;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_AUTO_CFG_ID_DEACTIVATE_ALL_ONUS_COMPLETED)) != 0)
+    {
+        this->deactivate_all_onus_completed = BCMOS_FALSE;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_AUTO_CFG_ID_DISABLE_ALL_ONUS_COMPLETED)) != 0)
+    {
+        this->disable_all_onus_completed = BCMOS_FALSE;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_AUTO_CFG_ID_ENABLE_ALL_ONUS_COMPLETED)) != 0)
+    {
+        this->enable_all_onus_completed = BCMOS_FALSE;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_AUTO_CFG_ID_LOS)) != 0)
+    {
+        this->los = BCMOS_FALSE;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_AUTO_CFG_ID_ONU_DISCOVERED)) != 0)
+    {
+        this->onu_discovered = BCMOS_FALSE;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_AUTO_CFG_ID_ONU_UPGRADE_COMPLETE)) != 0)
+    {
+        this->onu_upgrade_complete = BCMOS_FALSE;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_AUTO_CFG_ID_PROTECTION_SWITCHING_ONUS_RANGED)) != 0)
+    {
+        this->protection_switching_onus_ranged = BCMOS_FALSE;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_AUTO_CFG_ID_PROTECTION_SWITCHING_SWITCHOVER_COMPLETED)) != 0)
+    {
+        this->protection_switching_switchover_completed = BCMOS_FALSE;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_AUTO_CFG_ID_PROTECTION_SWITCHING_TRAFFIC_RESUME)) != 0)
+    {
+        this->protection_switching_traffic_resume = BCMOS_FALSE;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_AUTO_CFG_ID_ROGUE_DETECTION_COMPLETED)) != 0)
+    {
+        this->rogue_detection_completed = BCMOS_FALSE;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_AUTO_CFG_ID_ROGUE_ONU_SPECIAL_MAP_CYCLE_START)) != 0)
+    {
+        this->rogue_onu_special_map_cycle_start = BCMOS_FALSE;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_AUTO_CFG_ID_SERIAL_NUMBER_ACQUISITION_CYCLE_START)) != 0)
+    {
+        this->serial_number_acquisition_cycle_start = BCMOS_FALSE;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_AUTO_CFG_ID_STANDBY_PON_MONITORING_CYCLE_COMPLETED)) != 0)
+    {
+        this->standby_pon_monitoring_cycle_completed = BCMOS_FALSE;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_AUTO_CFG_ID_STAT_ALARM_CLEARED)) != 0)
+    {
+        this->stat_alarm_cleared = BCMOS_FALSE;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_AUTO_CFG_ID_STAT_ALARM_RAISED)) != 0)
+    {
+        this->stat_alarm_raised = BCMOS_FALSE;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_AUTO_CFG_ID_STATE_CHANGE_COMPLETED)) != 0)
+    {
+        this->state_change_completed = BCMOS_FALSE;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_AUTO_CFG_ID_TOD_REQUEST_COMPLETED)) != 0)
+    {
+        this->tod_request_completed = BCMOS_FALSE;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_ni_auto_cfg_data_pack(const bcmolt_xgpon_ni_auto_cfg_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_AUTO_CFG_ID_ACTIVATE_ALL_ONUS_COMPLETED)) != 0)
+    {
+        if (!bcmolt_buf_write_bool(buf, this->activate_all_onus_completed))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_AUTO_CFG_ID_CPU_PACKETS_FAILURE)) != 0)
+    {
+        if (!bcmolt_buf_write_bool(buf, this->cpu_packets_failure))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_AUTO_CFG_ID_DEACTIVATE_ALL_ONUS_COMPLETED)) != 0)
+    {
+        if (!bcmolt_buf_write_bool(buf, this->deactivate_all_onus_completed))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_AUTO_CFG_ID_DISABLE_ALL_ONUS_COMPLETED)) != 0)
+    {
+        if (!bcmolt_buf_write_bool(buf, this->disable_all_onus_completed))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_AUTO_CFG_ID_ENABLE_ALL_ONUS_COMPLETED)) != 0)
+    {
+        if (!bcmolt_buf_write_bool(buf, this->enable_all_onus_completed))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_AUTO_CFG_ID_LOS)) != 0)
+    {
+        if (!bcmolt_buf_write_bool(buf, this->los))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_AUTO_CFG_ID_ONU_DISCOVERED)) != 0)
+    {
+        if (!bcmolt_buf_write_bool(buf, this->onu_discovered))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_AUTO_CFG_ID_ONU_UPGRADE_COMPLETE)) != 0)
+    {
+        if (!bcmolt_buf_write_bool(buf, this->onu_upgrade_complete))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_AUTO_CFG_ID_PROTECTION_SWITCHING_ONUS_RANGED)) != 0)
+    {
+        if (!bcmolt_buf_write_bool(buf, this->protection_switching_onus_ranged))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_AUTO_CFG_ID_PROTECTION_SWITCHING_SWITCHOVER_COMPLETED)) != 0)
+    {
+        if (!bcmolt_buf_write_bool(buf, this->protection_switching_switchover_completed))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_AUTO_CFG_ID_PROTECTION_SWITCHING_TRAFFIC_RESUME)) != 0)
+    {
+        if (!bcmolt_buf_write_bool(buf, this->protection_switching_traffic_resume))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_AUTO_CFG_ID_ROGUE_DETECTION_COMPLETED)) != 0)
+    {
+        if (!bcmolt_buf_write_bool(buf, this->rogue_detection_completed))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_AUTO_CFG_ID_ROGUE_ONU_SPECIAL_MAP_CYCLE_START)) != 0)
+    {
+        if (!bcmolt_buf_write_bool(buf, this->rogue_onu_special_map_cycle_start))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_AUTO_CFG_ID_SERIAL_NUMBER_ACQUISITION_CYCLE_START)) != 0)
+    {
+        if (!bcmolt_buf_write_bool(buf, this->serial_number_acquisition_cycle_start))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_AUTO_CFG_ID_STANDBY_PON_MONITORING_CYCLE_COMPLETED)) != 0)
+    {
+        if (!bcmolt_buf_write_bool(buf, this->standby_pon_monitoring_cycle_completed))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_AUTO_CFG_ID_STAT_ALARM_CLEARED)) != 0)
+    {
+        if (!bcmolt_buf_write_bool(buf, this->stat_alarm_cleared))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_AUTO_CFG_ID_STAT_ALARM_RAISED)) != 0)
+    {
+        if (!bcmolt_buf_write_bool(buf, this->stat_alarm_raised))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_AUTO_CFG_ID_STATE_CHANGE_COMPLETED)) != 0)
+    {
+        if (!bcmolt_buf_write_bool(buf, this->state_change_completed))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_AUTO_CFG_ID_TOD_REQUEST_COMPLETED)) != 0)
+    {
+        if (!bcmolt_buf_write_bool(buf, this->tod_request_completed))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_xgpon_ni_auto_cfg_data_get_packed_length(const bcmolt_xgpon_ni_auto_cfg_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_AUTO_CFG_ID_ACTIVATE_ALL_ONUS_COMPLETED)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_AUTO_CFG_ID_CPU_PACKETS_FAILURE)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_AUTO_CFG_ID_DEACTIVATE_ALL_ONUS_COMPLETED)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_AUTO_CFG_ID_DISABLE_ALL_ONUS_COMPLETED)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_AUTO_CFG_ID_ENABLE_ALL_ONUS_COMPLETED)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_AUTO_CFG_ID_LOS)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_AUTO_CFG_ID_ONU_DISCOVERED)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_AUTO_CFG_ID_ONU_UPGRADE_COMPLETE)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_AUTO_CFG_ID_PROTECTION_SWITCHING_ONUS_RANGED)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_AUTO_CFG_ID_PROTECTION_SWITCHING_SWITCHOVER_COMPLETED)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_AUTO_CFG_ID_PROTECTION_SWITCHING_TRAFFIC_RESUME)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_AUTO_CFG_ID_ROGUE_DETECTION_COMPLETED)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_AUTO_CFG_ID_ROGUE_ONU_SPECIAL_MAP_CYCLE_START)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_AUTO_CFG_ID_SERIAL_NUMBER_ACQUISITION_CYCLE_START)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_AUTO_CFG_ID_STANDBY_PON_MONITORING_CYCLE_COMPLETED)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_AUTO_CFG_ID_STAT_ALARM_CLEARED)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_AUTO_CFG_ID_STAT_ALARM_RAISED)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_AUTO_CFG_ID_STATE_CHANGE_COMPLETED)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_AUTO_CFG_ID_TOD_REQUEST_COMPLETED)) != 0)
+    {
+        count += 1;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_ni_auto_cfg_data_unpack(bcmolt_xgpon_ni_auto_cfg_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_AUTO_CFG_ID_ACTIVATE_ALL_ONUS_COMPLETED)) != 0)
+    {
+        if (!bcmolt_buf_read_bool(buf, &this->activate_all_onus_completed))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_AUTO_CFG_ID_CPU_PACKETS_FAILURE)) != 0)
+    {
+        if (!bcmolt_buf_read_bool(buf, &this->cpu_packets_failure))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_AUTO_CFG_ID_DEACTIVATE_ALL_ONUS_COMPLETED)) != 0)
+    {
+        if (!bcmolt_buf_read_bool(buf, &this->deactivate_all_onus_completed))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_AUTO_CFG_ID_DISABLE_ALL_ONUS_COMPLETED)) != 0)
+    {
+        if (!bcmolt_buf_read_bool(buf, &this->disable_all_onus_completed))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_AUTO_CFG_ID_ENABLE_ALL_ONUS_COMPLETED)) != 0)
+    {
+        if (!bcmolt_buf_read_bool(buf, &this->enable_all_onus_completed))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_AUTO_CFG_ID_LOS)) != 0)
+    {
+        if (!bcmolt_buf_read_bool(buf, &this->los))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_AUTO_CFG_ID_ONU_DISCOVERED)) != 0)
+    {
+        if (!bcmolt_buf_read_bool(buf, &this->onu_discovered))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_AUTO_CFG_ID_ONU_UPGRADE_COMPLETE)) != 0)
+    {
+        if (!bcmolt_buf_read_bool(buf, &this->onu_upgrade_complete))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_AUTO_CFG_ID_PROTECTION_SWITCHING_ONUS_RANGED)) != 0)
+    {
+        if (!bcmolt_buf_read_bool(buf, &this->protection_switching_onus_ranged))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_AUTO_CFG_ID_PROTECTION_SWITCHING_SWITCHOVER_COMPLETED)) != 0)
+    {
+        if (!bcmolt_buf_read_bool(buf, &this->protection_switching_switchover_completed))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_AUTO_CFG_ID_PROTECTION_SWITCHING_TRAFFIC_RESUME)) != 0)
+    {
+        if (!bcmolt_buf_read_bool(buf, &this->protection_switching_traffic_resume))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_AUTO_CFG_ID_ROGUE_DETECTION_COMPLETED)) != 0)
+    {
+        if (!bcmolt_buf_read_bool(buf, &this->rogue_detection_completed))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_AUTO_CFG_ID_ROGUE_ONU_SPECIAL_MAP_CYCLE_START)) != 0)
+    {
+        if (!bcmolt_buf_read_bool(buf, &this->rogue_onu_special_map_cycle_start))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_AUTO_CFG_ID_SERIAL_NUMBER_ACQUISITION_CYCLE_START)) != 0)
+    {
+        if (!bcmolt_buf_read_bool(buf, &this->serial_number_acquisition_cycle_start))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_AUTO_CFG_ID_STANDBY_PON_MONITORING_CYCLE_COMPLETED)) != 0)
+    {
+        if (!bcmolt_buf_read_bool(buf, &this->standby_pon_monitoring_cycle_completed))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_AUTO_CFG_ID_STAT_ALARM_CLEARED)) != 0)
+    {
+        if (!bcmolt_buf_read_bool(buf, &this->stat_alarm_cleared))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_AUTO_CFG_ID_STAT_ALARM_RAISED)) != 0)
+    {
+        if (!bcmolt_buf_read_bool(buf, &this->stat_alarm_raised))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_AUTO_CFG_ID_STATE_CHANGE_COMPLETED)) != 0)
+    {
+        if (!bcmolt_buf_read_bool(buf, &this->state_change_completed))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_AUTO_CFG_ID_TOD_REQUEST_COMPLETED)) != 0)
+    {
+        if (!bcmolt_buf_read_bool(buf, &this->tod_request_completed))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_ni_auto_cfg_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_AUTO_CFG_ID_ACTIVATE_ALL_ONUS_COMPLETED)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_AUTO_CFG_ID_CPU_PACKETS_FAILURE)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_AUTO_CFG_ID_DEACTIVATE_ALL_ONUS_COMPLETED)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_AUTO_CFG_ID_DISABLE_ALL_ONUS_COMPLETED)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_AUTO_CFG_ID_ENABLE_ALL_ONUS_COMPLETED)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_AUTO_CFG_ID_LOS)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_AUTO_CFG_ID_ONU_DISCOVERED)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_AUTO_CFG_ID_ONU_UPGRADE_COMPLETE)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_AUTO_CFG_ID_PROTECTION_SWITCHING_ONUS_RANGED)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_AUTO_CFG_ID_PROTECTION_SWITCHING_SWITCHOVER_COMPLETED)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_AUTO_CFG_ID_PROTECTION_SWITCHING_TRAFFIC_RESUME)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_AUTO_CFG_ID_ROGUE_DETECTION_COMPLETED)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_AUTO_CFG_ID_ROGUE_ONU_SPECIAL_MAP_CYCLE_START)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_AUTO_CFG_ID_SERIAL_NUMBER_ACQUISITION_CYCLE_START)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_AUTO_CFG_ID_STANDBY_PON_MONITORING_CYCLE_COMPLETED)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_AUTO_CFG_ID_STAT_ALARM_CLEARED)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_AUTO_CFG_ID_STAT_ALARM_RAISED)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_AUTO_CFG_ID_STATE_CHANGE_COMPLETED)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_AUTO_CFG_ID_TOD_REQUEST_COMPLETED)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_ni_auto_cfg_data_bounds_check(const bcmolt_xgpon_ni_auto_cfg_data *this, bcmolt_presence_mask fields_present, bcmolt_xgpon_ni_auto_cfg_id *failed_prop)
+{
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_xgpon_ni_adjust_tx_wavelength_data_set_default(bcmolt_xgpon_ni_adjust_tx_wavelength_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_ADJUST_TX_WAVELENGTH_ID_SERIAL_NUMBER)) != 0)
+    {
+        memset(this->serial_number.vendor_id, 0, sizeof(this->serial_number.vendor_id));
+        memset(this->serial_number.vendor_specific, 0, sizeof(this->serial_number.vendor_specific));
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_ADJUST_TX_WAVELENGTH_ID_FREQENCY_ADJUSTMENT_DIRECTION)) != 0)
+    {
+        this->freqency_adjustment_direction = BCMOLT_FREQUENCY_ADJUSTMENT_DIRECTION_LOWER;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_ADJUST_TX_WAVELENGTH_ID_FREQUENCY_ADJUSTMENT_SIZE)) != 0)
+    {
+        this->frequency_adjustment_size = 1;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_ni_adjust_tx_wavelength_data_pack(const bcmolt_xgpon_ni_adjust_tx_wavelength_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_ADJUST_TX_WAVELENGTH_ID_SERIAL_NUMBER)) != 0)
+    {
+        if (!bcmolt_serial_number_pack(&this->serial_number, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_ADJUST_TX_WAVELENGTH_ID_FREQENCY_ADJUSTMENT_DIRECTION)) != 0)
+    {
+        if (!bcmolt_frequency_adjustment_direction_pack(this->freqency_adjustment_direction, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_ADJUST_TX_WAVELENGTH_ID_FREQUENCY_ADJUSTMENT_SIZE)) != 0)
+    {
+        if (!bcmolt_buf_write_u8(buf, this->frequency_adjustment_size))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_xgpon_ni_adjust_tx_wavelength_data_get_packed_length(const bcmolt_xgpon_ni_adjust_tx_wavelength_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_ADJUST_TX_WAVELENGTH_ID_SERIAL_NUMBER)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_ADJUST_TX_WAVELENGTH_ID_FREQENCY_ADJUSTMENT_DIRECTION)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_ADJUST_TX_WAVELENGTH_ID_FREQUENCY_ADJUSTMENT_SIZE)) != 0)
+    {
+        count += 1;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_ni_adjust_tx_wavelength_data_unpack(bcmolt_xgpon_ni_adjust_tx_wavelength_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_ADJUST_TX_WAVELENGTH_ID_SERIAL_NUMBER)) != 0)
+    {
+        if (!bcmolt_serial_number_unpack(&this->serial_number, buf, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_ADJUST_TX_WAVELENGTH_ID_FREQENCY_ADJUSTMENT_DIRECTION)) != 0)
+    {
+        if (!bcmolt_frequency_adjustment_direction_unpack(&this->freqency_adjustment_direction, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_ADJUST_TX_WAVELENGTH_ID_FREQUENCY_ADJUSTMENT_SIZE)) != 0)
+    {
+        if (!bcmolt_buf_read_u8(buf, &this->frequency_adjustment_size))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_ni_adjust_tx_wavelength_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_ADJUST_TX_WAVELENGTH_ID_SERIAL_NUMBER)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_ADJUST_TX_WAVELENGTH_ID_FREQENCY_ADJUSTMENT_DIRECTION)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_ADJUST_TX_WAVELENGTH_ID_FREQUENCY_ADJUSTMENT_SIZE)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_ni_adjust_tx_wavelength_data_bounds_check(const bcmolt_xgpon_ni_adjust_tx_wavelength_data *this, bcmolt_presence_mask fields_present, bcmolt_xgpon_ni_adjust_tx_wavelength_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_ADJUST_TX_WAVELENGTH_ID_SERIAL_NUMBER)) != 0)
+    {
+        if (!bcmolt_serial_number_bounds_check(&this->serial_number))
+        {
+            *failed_prop = BCMOLT_XGPON_NI_ADJUST_TX_WAVELENGTH_ID_SERIAL_NUMBER;
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_ADJUST_TX_WAVELENGTH_ID_FREQENCY_ADJUSTMENT_DIRECTION)) != 0)
+    {
+        switch (this->freqency_adjustment_direction)
+        {
+            case BCMOLT_FREQUENCY_ADJUSTMENT_DIRECTION_LOWER:
+                break;
+            case BCMOLT_FREQUENCY_ADJUSTMENT_DIRECTION_HIGHER:
+                break;
+            default:
+                *failed_prop = BCMOLT_XGPON_NI_ADJUST_TX_WAVELENGTH_ID_FREQENCY_ADJUSTMENT_DIRECTION;
+                return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_ADJUST_TX_WAVELENGTH_ID_FREQUENCY_ADJUSTMENT_SIZE)) != 0)
+    {
+        if (this->frequency_adjustment_size > 10)
+        {
+            *failed_prop = BCMOLT_XGPON_NI_ADJUST_TX_WAVELENGTH_ID_FREQUENCY_ADJUSTMENT_SIZE;
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_xgpon_ni_disable_serial_number_data_set_default(bcmolt_xgpon_ni_disable_serial_number_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_DISABLE_SERIAL_NUMBER_ID_CONTROL)) != 0)
+    {
+        this->control = BCMOLT_DISABLE_SERIAL_NUMBER_CONTROL_UNICAST_DISABLE;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_DISABLE_SERIAL_NUMBER_ID_SERIAL_NUMBER)) != 0)
+    {
+        memset(this->serial_number.vendor_id, 0, sizeof(this->serial_number.vendor_id));
+        memset(this->serial_number.vendor_specific, 0, sizeof(this->serial_number.vendor_specific));
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_ni_disable_serial_number_data_pack(const bcmolt_xgpon_ni_disable_serial_number_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_DISABLE_SERIAL_NUMBER_ID_CONTROL)) != 0)
+    {
+        if (!bcmolt_disable_serial_number_control_pack(this->control, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_DISABLE_SERIAL_NUMBER_ID_SERIAL_NUMBER)) != 0)
+    {
+        if (!bcmolt_serial_number_pack(&this->serial_number, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_xgpon_ni_disable_serial_number_data_get_packed_length(const bcmolt_xgpon_ni_disable_serial_number_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_DISABLE_SERIAL_NUMBER_ID_CONTROL)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_DISABLE_SERIAL_NUMBER_ID_SERIAL_NUMBER)) != 0)
+    {
+        count += 8;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_ni_disable_serial_number_data_unpack(bcmolt_xgpon_ni_disable_serial_number_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_DISABLE_SERIAL_NUMBER_ID_CONTROL)) != 0)
+    {
+        if (!bcmolt_disable_serial_number_control_unpack(&this->control, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_DISABLE_SERIAL_NUMBER_ID_SERIAL_NUMBER)) != 0)
+    {
+        if (!bcmolt_serial_number_unpack(&this->serial_number, buf, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_ni_disable_serial_number_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_DISABLE_SERIAL_NUMBER_ID_CONTROL)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_DISABLE_SERIAL_NUMBER_ID_SERIAL_NUMBER)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_ni_disable_serial_number_data_bounds_check(const bcmolt_xgpon_ni_disable_serial_number_data *this, bcmolt_presence_mask fields_present, bcmolt_xgpon_ni_disable_serial_number_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_DISABLE_SERIAL_NUMBER_ID_CONTROL)) != 0)
+    {
+        switch (this->control)
+        {
+            case BCMOLT_DISABLE_SERIAL_NUMBER_CONTROL_UNICAST_DISABLE:
+                break;
+            case BCMOLT_DISABLE_SERIAL_NUMBER_CONTROL_UNICAST_ENABLE:
+                break;
+            case BCMOLT_DISABLE_SERIAL_NUMBER_CONTROL_BROADCAST_ENABLE:
+                break;
+            case BCMOLT_DISABLE_SERIAL_NUMBER_CONTROL_BROADCAST_DISABLE:
+                break;
+            case BCMOLT_DISABLE_SERIAL_NUMBER_CONTROL_DISABLE_DISCOVERY:
+                break;
+            default:
+                *failed_prop = BCMOLT_XGPON_NI_DISABLE_SERIAL_NUMBER_ID_CONTROL;
+                return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_DISABLE_SERIAL_NUMBER_ID_SERIAL_NUMBER)) != 0)
+    {
+        if (!bcmolt_serial_number_bounds_check(&this->serial_number))
+        {
+            *failed_prop = BCMOLT_XGPON_NI_DISABLE_SERIAL_NUMBER_ID_SERIAL_NUMBER;
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_xgpon_ni_rogue_detection_window_data_set_default(bcmolt_xgpon_ni_rogue_detection_window_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_ROGUE_DETECTION_WINDOW_ID_WINDOW_TYPE)) != 0)
+    {
+        this->window_type = BCMOLT_ROGUE_DETECTION_WINDOW_SILENT_WINDOW;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_ROGUE_DETECTION_WINDOW_ID_ALLOC_ID)) != 0)
+    {
+        this->alloc_id = (bcmolt_xgpon_alloc_id) 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_ROGUE_DETECTION_WINDOW_ID_ONU_ID)) != 0)
+    {
+        this->onu_id = (bcmolt_xgpon_onu_id) 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_ROGUE_DETECTION_WINDOW_ID_SECOND_RANGING_WINDOW)) != 0)
+    {
+        this->second_ranging_window = BCMOS_FALSE;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_ni_rogue_detection_window_data_pack(const bcmolt_xgpon_ni_rogue_detection_window_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_ROGUE_DETECTION_WINDOW_ID_WINDOW_TYPE)) != 0)
+    {
+        if (!bcmolt_rogue_detection_window_pack(this->window_type, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_ROGUE_DETECTION_WINDOW_ID_ALLOC_ID)) != 0)
+    {
+        if (!bcmolt_buf_write_u16(buf, (uint16_t) this->alloc_id))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_ROGUE_DETECTION_WINDOW_ID_ONU_ID)) != 0)
+    {
+        if (!bcmolt_buf_write_u16(buf, (uint16_t) this->onu_id))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_ROGUE_DETECTION_WINDOW_ID_SECOND_RANGING_WINDOW)) != 0)
+    {
+        if (!bcmolt_buf_write_bool(buf, this->second_ranging_window))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_xgpon_ni_rogue_detection_window_data_get_packed_length(const bcmolt_xgpon_ni_rogue_detection_window_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_ROGUE_DETECTION_WINDOW_ID_WINDOW_TYPE)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_ROGUE_DETECTION_WINDOW_ID_ALLOC_ID)) != 0)
+    {
+        count += 2;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_ROGUE_DETECTION_WINDOW_ID_ONU_ID)) != 0)
+    {
+        count += 2;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_ROGUE_DETECTION_WINDOW_ID_SECOND_RANGING_WINDOW)) != 0)
+    {
+        count += 1;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_ni_rogue_detection_window_data_unpack(bcmolt_xgpon_ni_rogue_detection_window_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_ROGUE_DETECTION_WINDOW_ID_WINDOW_TYPE)) != 0)
+    {
+        if (!bcmolt_rogue_detection_window_unpack(&this->window_type, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_ROGUE_DETECTION_WINDOW_ID_ALLOC_ID)) != 0)
+    {
+        if (!bcmolt_buf_read_u16(buf, (uint16_t *) &this->alloc_id))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_ROGUE_DETECTION_WINDOW_ID_ONU_ID)) != 0)
+    {
+        if (!bcmolt_buf_read_u16(buf, (uint16_t *) &this->onu_id))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_ROGUE_DETECTION_WINDOW_ID_SECOND_RANGING_WINDOW)) != 0)
+    {
+        if (!bcmolt_buf_read_bool(buf, &this->second_ranging_window))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_ni_rogue_detection_window_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_ROGUE_DETECTION_WINDOW_ID_WINDOW_TYPE)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_ROGUE_DETECTION_WINDOW_ID_ALLOC_ID)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 2))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_ROGUE_DETECTION_WINDOW_ID_ONU_ID)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 2))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_ROGUE_DETECTION_WINDOW_ID_SECOND_RANGING_WINDOW)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_ni_rogue_detection_window_data_bounds_check(const bcmolt_xgpon_ni_rogue_detection_window_data *this, bcmolt_presence_mask fields_present, bcmolt_xgpon_ni_rogue_detection_window_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_ROGUE_DETECTION_WINDOW_ID_WINDOW_TYPE)) != 0)
+    {
+        switch (this->window_type)
+        {
+            case BCMOLT_ROGUE_DETECTION_WINDOW_SILENT_WINDOW:
+                break;
+            case BCMOLT_ROGUE_DETECTION_WINDOW_CUT_OFF_WINDOW:
+                break;
+            default:
+                *failed_prop = BCMOLT_XGPON_NI_ROGUE_DETECTION_WINDOW_ID_WINDOW_TYPE;
+                return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_ROGUE_DETECTION_WINDOW_ID_ALLOC_ID)) != 0)
+    {
+        if (this->alloc_id > (bcmolt_xgpon_alloc_id) 16383)
+        {
+            *failed_prop = BCMOLT_XGPON_NI_ROGUE_DETECTION_WINDOW_ID_ALLOC_ID;
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_ROGUE_DETECTION_WINDOW_ID_ONU_ID)) != 0)
+    {
+        if (this->onu_id > (bcmolt_xgpon_onu_id) 511)
+        {
+            *failed_prop = BCMOLT_XGPON_NI_ROGUE_DETECTION_WINDOW_ID_ONU_ID;
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_xgpon_ni_run_special_bw_map_data_set_default(bcmolt_xgpon_ni_run_special_bw_map_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_RUN_SPECIAL_BW_MAP_ID_NUMBER_OF_CYCLE)) != 0)
+    {
+        this->number_of_cycle = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_RUN_SPECIAL_BW_MAP_ID_ALLOCATION_NUMBER)) != 0)
+    {
+        this->allocation_number = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_RUN_SPECIAL_BW_MAP_ID_BW_MAP_ARRAY)) != 0)
+    {
+        this->bw_map_array = 0;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_ni_run_special_bw_map_data_pack(const bcmolt_xgpon_ni_run_special_bw_map_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_RUN_SPECIAL_BW_MAP_ID_NUMBER_OF_CYCLE)) != 0)
+    {
+        if (!bcmolt_buf_write_u8(buf, this->number_of_cycle))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_RUN_SPECIAL_BW_MAP_ID_ALLOCATION_NUMBER)) != 0)
+    {
+        if (!bcmolt_buf_write_u8(buf, this->allocation_number))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_RUN_SPECIAL_BW_MAP_ID_BW_MAP_ARRAY)) != 0)
+    {
+        if (!bcmolt_buf_write_u8(buf, this->bw_map_array))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_xgpon_ni_run_special_bw_map_data_get_packed_length(const bcmolt_xgpon_ni_run_special_bw_map_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_RUN_SPECIAL_BW_MAP_ID_NUMBER_OF_CYCLE)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_RUN_SPECIAL_BW_MAP_ID_ALLOCATION_NUMBER)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_RUN_SPECIAL_BW_MAP_ID_BW_MAP_ARRAY)) != 0)
+    {
+        count += 1;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_ni_run_special_bw_map_data_unpack(bcmolt_xgpon_ni_run_special_bw_map_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_RUN_SPECIAL_BW_MAP_ID_NUMBER_OF_CYCLE)) != 0)
+    {
+        if (!bcmolt_buf_read_u8(buf, &this->number_of_cycle))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_RUN_SPECIAL_BW_MAP_ID_ALLOCATION_NUMBER)) != 0)
+    {
+        if (!bcmolt_buf_read_u8(buf, &this->allocation_number))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_RUN_SPECIAL_BW_MAP_ID_BW_MAP_ARRAY)) != 0)
+    {
+        if (!bcmolt_buf_read_u8(buf, &this->bw_map_array))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_ni_run_special_bw_map_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_RUN_SPECIAL_BW_MAP_ID_NUMBER_OF_CYCLE)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_RUN_SPECIAL_BW_MAP_ID_ALLOCATION_NUMBER)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_RUN_SPECIAL_BW_MAP_ID_BW_MAP_ARRAY)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_ni_run_special_bw_map_data_bounds_check(const bcmolt_xgpon_ni_run_special_bw_map_data *this, bcmolt_presence_mask fields_present, bcmolt_xgpon_ni_run_special_bw_map_id *failed_prop)
+{
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_xgpon_ni_set_onu_state_data_set_default(bcmolt_xgpon_ni_set_onu_state_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_SET_ONU_STATE_ID_ONU_STATE)) != 0)
+    {
+        this->onu_state = BCMOLT_ONU_OPERATION_INACTIVE;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_ni_set_onu_state_data_pack(const bcmolt_xgpon_ni_set_onu_state_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_SET_ONU_STATE_ID_ONU_STATE)) != 0)
+    {
+        if (!bcmolt_onu_operation_pack(this->onu_state, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_xgpon_ni_set_onu_state_data_get_packed_length(const bcmolt_xgpon_ni_set_onu_state_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_SET_ONU_STATE_ID_ONU_STATE)) != 0)
+    {
+        count += 1;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_ni_set_onu_state_data_unpack(bcmolt_xgpon_ni_set_onu_state_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_SET_ONU_STATE_ID_ONU_STATE)) != 0)
+    {
+        if (!bcmolt_onu_operation_unpack(&this->onu_state, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_ni_set_onu_state_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_SET_ONU_STATE_ID_ONU_STATE)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_ni_set_onu_state_data_bounds_check(const bcmolt_xgpon_ni_set_onu_state_data *this, bcmolt_presence_mask fields_present, bcmolt_xgpon_ni_set_onu_state_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_SET_ONU_STATE_ID_ONU_STATE)) != 0)
+    {
+        switch (this->onu_state)
+        {
+            case BCMOLT_ONU_OPERATION_INACTIVE:
+                break;
+            case BCMOLT_ONU_OPERATION_ACTIVE:
+                break;
+            case BCMOLT_ONU_OPERATION_DISABLE:
+                break;
+            case BCMOLT_ONU_OPERATION_ENABLE:
+                break;
+            case BCMOLT_ONU_OPERATION_ACTIVE_STANDBY:
+                break;
+            case BCMOLT_ONU_OPERATION_AWAKE_FREE:
+                break;
+            default:
+                *failed_prop = BCMOLT_XGPON_NI_SET_ONU_STATE_ID_ONU_STATE;
+                return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_xgpon_ni_set_pon_state_data_set_default(bcmolt_xgpon_ni_set_pon_state_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_SET_PON_STATE_ID_PON_STATE)) != 0)
+    {
+        this->pon_state = BCMOLT_PON_OPERATION_INACTIVE;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_ni_set_pon_state_data_pack(const bcmolt_xgpon_ni_set_pon_state_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_SET_PON_STATE_ID_PON_STATE)) != 0)
+    {
+        if (!bcmolt_pon_operation_pack(this->pon_state, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_xgpon_ni_set_pon_state_data_get_packed_length(const bcmolt_xgpon_ni_set_pon_state_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_SET_PON_STATE_ID_PON_STATE)) != 0)
+    {
+        count += 1;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_ni_set_pon_state_data_unpack(bcmolt_xgpon_ni_set_pon_state_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_SET_PON_STATE_ID_PON_STATE)) != 0)
+    {
+        if (!bcmolt_pon_operation_unpack(&this->pon_state, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_ni_set_pon_state_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_SET_PON_STATE_ID_PON_STATE)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_ni_set_pon_state_data_bounds_check(const bcmolt_xgpon_ni_set_pon_state_data *this, bcmolt_presence_mask fields_present, bcmolt_xgpon_ni_set_pon_state_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_SET_PON_STATE_ID_PON_STATE)) != 0)
+    {
+        switch (this->pon_state)
+        {
+            case BCMOLT_PON_OPERATION_INACTIVE:
+                break;
+            case BCMOLT_PON_OPERATION_ACTIVE_WORKING:
+                break;
+            case BCMOLT_PON_OPERATION_ACTIVE_STANDBY:
+                break;
+            default:
+                *failed_prop = BCMOLT_XGPON_NI_SET_PON_STATE_ID_PON_STATE;
+                return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_xgpon_ni_start_onu_upgrade_data_set_default(bcmolt_xgpon_ni_start_onu_upgrade_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_START_ONU_UPGRADE_ID_LIST_OF_ONU_IDS)) != 0)
+    {
+        this->list_of_onu_ids.len = 0;
+        this->list_of_onu_ids.val = NULL;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_ni_start_onu_upgrade_data_pack(const bcmolt_xgpon_ni_start_onu_upgrade_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_START_ONU_UPGRADE_ID_LIST_OF_ONU_IDS)) != 0)
+    {
+        if (!bcmolt_pon_onu_id_list_u32_pack(&this->list_of_onu_ids, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_xgpon_ni_start_onu_upgrade_data_get_packed_length(const bcmolt_xgpon_ni_start_onu_upgrade_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_START_ONU_UPGRADE_ID_LIST_OF_ONU_IDS)) != 0)
+    {
+        count += bcmolt_pon_onu_id_list_u32_get_packed_length(&this->list_of_onu_ids);
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_ni_start_onu_upgrade_data_unpack(bcmolt_xgpon_ni_start_onu_upgrade_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_START_ONU_UPGRADE_ID_LIST_OF_ONU_IDS)) != 0)
+    {
+        if (!bcmolt_pon_onu_id_list_u32_unpack(&this->list_of_onu_ids, buf, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_ni_start_onu_upgrade_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_START_ONU_UPGRADE_ID_LIST_OF_ONU_IDS)) != 0)
+    {
+        if (!bcmolt_pon_onu_id_list_u32_scan(packed, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_ni_start_onu_upgrade_data_bounds_check(const bcmolt_xgpon_ni_start_onu_upgrade_data *this, bcmolt_presence_mask fields_present, bcmolt_xgpon_ni_start_onu_upgrade_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_START_ONU_UPGRADE_ID_LIST_OF_ONU_IDS)) != 0)
+    {
+        if (!bcmolt_pon_onu_id_list_u32_bounds_check(&this->list_of_onu_ids))
+        {
+            *failed_prop = BCMOLT_XGPON_NI_START_ONU_UPGRADE_ID_LIST_OF_ONU_IDS;
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_xgpon_ni_broadcast_ploam_packet_data_set_default(bcmolt_xgpon_ni_broadcast_ploam_packet_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_BROADCAST_PLOAM_PACKET_ID_PLOAM)) != 0)
+    {
+        memset(this->ploam.arr, 0, sizeof(this->ploam.arr));
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_ni_broadcast_ploam_packet_data_pack(const bcmolt_xgpon_ni_broadcast_ploam_packet_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_BROADCAST_PLOAM_PACKET_ID_PLOAM)) != 0)
+    {
+        if (!bcmolt_arr_u8_40_pack(&this->ploam, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_xgpon_ni_broadcast_ploam_packet_data_get_packed_length(const bcmolt_xgpon_ni_broadcast_ploam_packet_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_BROADCAST_PLOAM_PACKET_ID_PLOAM)) != 0)
+    {
+        count += 40;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_ni_broadcast_ploam_packet_data_unpack(bcmolt_xgpon_ni_broadcast_ploam_packet_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_BROADCAST_PLOAM_PACKET_ID_PLOAM)) != 0)
+    {
+        if (!bcmolt_arr_u8_40_unpack(&this->ploam, buf, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_ni_broadcast_ploam_packet_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_BROADCAST_PLOAM_PACKET_ID_PLOAM)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 40))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_ni_broadcast_ploam_packet_data_bounds_check(const bcmolt_xgpon_ni_broadcast_ploam_packet_data *this, bcmolt_presence_mask fields_present, bcmolt_xgpon_ni_broadcast_ploam_packet_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_BROADCAST_PLOAM_PACKET_ID_PLOAM)) != 0)
+    {
+        if (!bcmolt_arr_u8_40_bounds_check(&this->ploam))
+        {
+            *failed_prop = BCMOLT_XGPON_NI_BROADCAST_PLOAM_PACKET_ID_PLOAM;
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_xgpon_ni_cpu_packets_data_set_default(bcmolt_xgpon_ni_cpu_packets_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_CPU_PACKETS_ID_PACKET_TYPE)) != 0)
+    {
+        this->packet_type = BCMOLT_PACKET_TYPE_CPU;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_CPU_PACKETS_ID_CALC_CRC)) != 0)
+    {
+        this->calc_crc = BCMOS_FALSE;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_CPU_PACKETS_ID_GEM_PORT_LIST)) != 0)
+    {
+        this->gem_port_list.len = 0;
+        this->gem_port_list.val = NULL;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_CPU_PACKETS_ID_BUFFER)) != 0)
+    {
+        this->buffer.len = 0;
+        this->buffer.val = NULL;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_ni_cpu_packets_data_pack(const bcmolt_xgpon_ni_cpu_packets_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_CPU_PACKETS_ID_PACKET_TYPE)) != 0)
+    {
+        if (!bcmolt_packet_type_pack(this->packet_type, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_CPU_PACKETS_ID_CALC_CRC)) != 0)
+    {
+        if (!bcmolt_buf_write_bool(buf, this->calc_crc))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_CPU_PACKETS_ID_GEM_PORT_LIST)) != 0)
+    {
+        if (!bcmolt_xgpon_gem_id_list_u8_max_16_pack(&this->gem_port_list, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_CPU_PACKETS_ID_BUFFER)) != 0)
+    {
+        if (!bcmolt_u8_list_u32_max_2048_pack(&this->buffer, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_xgpon_ni_cpu_packets_data_get_packed_length(const bcmolt_xgpon_ni_cpu_packets_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_CPU_PACKETS_ID_PACKET_TYPE)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_CPU_PACKETS_ID_CALC_CRC)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_CPU_PACKETS_ID_GEM_PORT_LIST)) != 0)
+    {
+        count += bcmolt_xgpon_gem_id_list_u8_max_16_get_packed_length(&this->gem_port_list);
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_CPU_PACKETS_ID_BUFFER)) != 0)
+    {
+        count += bcmolt_u8_list_u32_max_2048_get_packed_length(&this->buffer);
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_ni_cpu_packets_data_unpack(bcmolt_xgpon_ni_cpu_packets_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_CPU_PACKETS_ID_PACKET_TYPE)) != 0)
+    {
+        if (!bcmolt_packet_type_unpack(&this->packet_type, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_CPU_PACKETS_ID_CALC_CRC)) != 0)
+    {
+        if (!bcmolt_buf_read_bool(buf, &this->calc_crc))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_CPU_PACKETS_ID_GEM_PORT_LIST)) != 0)
+    {
+        if (!bcmolt_xgpon_gem_id_list_u8_max_16_unpack(&this->gem_port_list, buf, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_CPU_PACKETS_ID_BUFFER)) != 0)
+    {
+        if (!bcmolt_u8_list_u32_max_2048_unpack(&this->buffer, buf, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_ni_cpu_packets_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_CPU_PACKETS_ID_PACKET_TYPE)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_CPU_PACKETS_ID_CALC_CRC)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_CPU_PACKETS_ID_GEM_PORT_LIST)) != 0)
+    {
+        if (!bcmolt_xgpon_gem_id_list_u8_max_16_scan(packed, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_CPU_PACKETS_ID_BUFFER)) != 0)
+    {
+        if (!bcmolt_u8_list_u32_max_2048_scan(packed, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_ni_cpu_packets_data_bounds_check(const bcmolt_xgpon_ni_cpu_packets_data *this, bcmolt_presence_mask fields_present, bcmolt_xgpon_ni_cpu_packets_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_CPU_PACKETS_ID_PACKET_TYPE)) != 0)
+    {
+        switch (this->packet_type)
+        {
+            case BCMOLT_PACKET_TYPE_CPU:
+                break;
+            case BCMOLT_PACKET_TYPE_OMCI:
+                break;
+            default:
+                *failed_prop = BCMOLT_XGPON_NI_CPU_PACKETS_ID_PACKET_TYPE;
+                return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_CPU_PACKETS_ID_GEM_PORT_LIST)) != 0)
+    {
+        if (this->gem_port_list.len > 16)
+        {
+            return BCMOS_FALSE;
+        }
+
+        if (!bcmolt_xgpon_gem_id_list_u8_max_16_bounds_check(&this->gem_port_list))
+        {
+            *failed_prop = BCMOLT_XGPON_NI_CPU_PACKETS_ID_GEM_PORT_LIST;
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_NI_CPU_PACKETS_ID_BUFFER)) != 0)
+    {
+        if (this->buffer.len > 2048)
+        {
+            return BCMOS_FALSE;
+        }
+
+        if (!bcmolt_u8_list_u32_max_2048_bounds_check(&this->buffer))
+        {
+            *failed_prop = BCMOLT_XGPON_NI_CPU_PACKETS_ID_BUFFER;
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_xgpon_onu_key_set_default(bcmolt_xgpon_onu_key *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_KEY_ID_PON_NI)) != 0)
+    {
+        this->pon_ni = (bcmolt_xgpon_ni) 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_KEY_ID_ONU_ID)) != 0)
+    {
+        this->onu_id = (bcmolt_xgpon_onu_id) 0;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_key_pack(const bcmolt_xgpon_onu_key *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_KEY_ID_PON_NI)) != 0)
+    {
+        if (!bcmolt_buf_write_u8(buf, (uint8_t) this->pon_ni))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_KEY_ID_ONU_ID)) != 0)
+    {
+        if (!bcmolt_buf_write_u16(buf, (uint16_t) this->onu_id))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_xgpon_onu_key_get_packed_length(const bcmolt_xgpon_onu_key *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_KEY_ID_PON_NI)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_KEY_ID_ONU_ID)) != 0)
+    {
+        count += 2;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_key_unpack(bcmolt_xgpon_onu_key *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_KEY_ID_PON_NI)) != 0)
+    {
+        if (!bcmolt_buf_read_u8(buf, (uint8_t *) &this->pon_ni))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_KEY_ID_ONU_ID)) != 0)
+    {
+        if (!bcmolt_buf_read_u16(buf, (uint16_t *) &this->onu_id))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_key_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_KEY_ID_PON_NI)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_KEY_ID_ONU_ID)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 2))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_key_bounds_check(const bcmolt_xgpon_onu_key *this, bcmolt_presence_mask fields_present, bcmolt_xgpon_onu_key_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_KEY_ID_PON_NI)) != 0)
+    {
+        if (this->pon_ni > (bcmolt_xgpon_ni) 7)
+        {
+            *failed_prop = BCMOLT_XGPON_ONU_KEY_ID_PON_NI;
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_KEY_ID_ONU_ID)) != 0)
+    {
+        if (this->onu_id > (bcmolt_xgpon_onu_id) 511)
+        {
+            *failed_prop = BCMOLT_XGPON_ONU_KEY_ID_ONU_ID;
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_xgpon_onu_cfg_data_set_default(bcmolt_xgpon_onu_cfg_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_CFG_ID_ONU_STATE)) != 0)
+    {
+        this->onu_state = BCMOLT_ONU_STATE_NOT_CONFIGURED;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_CFG_ID_ONU_OLD_STATE)) != 0)
+    {
+        this->onu_old_state = BCMOLT_ONU_STATE_NOT_CONFIGURED;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_CFG_ID_ALARM_STATE)) != 0)
+    {
+        this->alarm_state.losi = BCMOLT_STATUS_OFF;
+        this->alarm_state.lobi = BCMOLT_STATUS_OFF;
+        this->alarm_state.lopci = BCMOLT_STATUS_OFF;
+        this->alarm_state.lopci_mic_error = BCMOLT_STATUS_OFF;
+        this->alarm_state.looci = BCMOLT_STATUS_OFF;
+        this->alarm_state.tiwi = BCMOLT_STATUS_OFF;
+        this->alarm_state.dowi = BCMOLT_STATUS_OFF;
+        this->alarm_state.sufi = BCMOLT_STATUS_OFF;
+        this->alarm_state.sfi = BCMOLT_STATUS_OFF;
+        this->alarm_state.sdi = BCMOLT_STATUS_OFF;
+        this->alarm_state.dfi = BCMOLT_STATUS_OFF;
+        this->alarm_state.dgi = BCMOLT_STATUS_OFF;
+        this->alarm_state.pqsi = BCMOLT_STATUS_OFF;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_CFG_ID_REGISTRATION_ENCRYPTION_KEYS)) != 0)
+    {
+        memset(this->registration_encryption_keys.ploam_ik.bytes, 0, sizeof(this->registration_encryption_keys.ploam_ik.bytes));
+        memset(this->registration_encryption_keys.omci_ik.bytes, 0, sizeof(this->registration_encryption_keys.omci_ik.bytes));
+        memset(this->registration_encryption_keys.omci_k1.bytes, 0, sizeof(this->registration_encryption_keys.omci_k1.bytes));
+        memset(this->registration_encryption_keys.omci_k2.bytes, 0, sizeof(this->registration_encryption_keys.omci_k2.bytes));
+        memset(this->registration_encryption_keys.kek.bytes, 0, sizeof(this->registration_encryption_keys.kek.bytes));
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_CFG_ID_CURRENT_ENCRYPTION_KEY)) != 0)
+    {
+        memset(this->current_encryption_key.encryption_key.bytes, 0, sizeof(this->current_encryption_key.encryption_key.bytes));
+        this->current_encryption_key.key_index = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_CFG_ID_SERIAL_NUMBER)) != 0)
+    {
+        memset(this->serial_number.vendor_id, 0, sizeof(this->serial_number.vendor_id));
+        memset(this->serial_number.vendor_specific, 0, sizeof(this->serial_number.vendor_specific));
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_CFG_ID_REGISTRATION_ID)) != 0)
+    {
+        memset(this->registration_id.arr, 0, sizeof(this->registration_id.arr));
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_CFG_ID_REGISTRATION_ID_AUTO_LEARNING)) != 0)
+    {
+        this->registration_id_auto_learning = BCMOS_FALSE;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_CFG_ID_RANGING_BURST_PROFILE)) != 0)
+    {
+        this->ranging_burst_profile = (bcmolt_burst_profile_index) 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_CFG_ID_DATA_BURST_PROFILE)) != 0)
+    {
+        this->data_burst_profile = (bcmolt_burst_profile_index) 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_CFG_ID_RANGING_TIME)) != 0)
+    {
+        this->ranging_time = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_CFG_ID_DISABLED_AFTER_DISCOVERY)) != 0)
+    {
+        this->disabled_after_discovery = BCMOLT_STATUS_OFF;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_CFG_ID_DEACTIVATION_REASON)) != 0)
+    {
+        this->deactivation_reason = BCMOLT_DEACTIVATION_REASON_NONE;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_CFG_ID_ALL_GEM_PORTS)) != 0)
+    {
+        this->all_gem_ports.len = 0;
+        this->all_gem_ports.val = NULL;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_CFG_ID_ALL_ALLOCS)) != 0)
+    {
+        this->all_allocs.len = 0;
+        this->all_allocs.val = NULL;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_CFG_ID_EXTENDED_GUARD_TIME)) != 0)
+    {
+        this->extended_guard_time.additional_preburst_guard_time = 0;
+        this->extended_guard_time.additional_postburst_guard_time = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_CFG_ID_US_LINE_RATE)) != 0)
+    {
+        this->us_line_rate = BCMOLT_UPSTREAM_LINE_RATE_CAPABILITIES_RATE_2_P_5_G;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_CFG_ID_CALIBRATION_RECORD)) != 0)
+    {
+        memset(this->calibration_record.arr, 0, sizeof(this->calibration_record.arr));
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_CFG_ID_TUNING_GRANULARITY)) != 0)
+    {
+        this->tuning_granularity = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_CFG_ID_STEP_TUNING_TIME)) != 0)
+    {
+        this->step_tuning_time = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_CFG_ID_POWER_LEVELLING_CAPABILITIES)) != 0)
+    {
+        this->power_levelling_capabilities = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_CFG_ID_REQUEST_REGISTRATION_STATUS)) != 0)
+    {
+        this->request_registration_status.request_registration_state = BCMOLT_CONTROL_STATE_DISABLE;
+        this->request_registration_status.sma_flag = BCMOS_FALSE;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_cfg_data_pack(const bcmolt_xgpon_onu_cfg_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_CFG_ID_ONU_STATE)) != 0)
+    {
+        if (!bcmolt_onu_state_pack(this->onu_state, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_CFG_ID_ONU_OLD_STATE)) != 0)
+    {
+        if (!bcmolt_onu_state_pack(this->onu_old_state, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_CFG_ID_ALARM_STATE)) != 0)
+    {
+        if (!bcmolt_xgpon_onu_alarm_state_pack(&this->alarm_state, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_CFG_ID_REGISTRATION_ENCRYPTION_KEYS)) != 0)
+    {
+        if (!bcmolt_xgpon_onu_registration_keys_pack(&this->registration_encryption_keys, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_CFG_ID_CURRENT_ENCRYPTION_KEY)) != 0)
+    {
+        if (!bcmolt_xgpon_onu_aes_key_pack(&this->current_encryption_key, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_CFG_ID_SERIAL_NUMBER)) != 0)
+    {
+        if (!bcmolt_serial_number_pack(&this->serial_number, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_CFG_ID_REGISTRATION_ID)) != 0)
+    {
+        if (!bcmolt_arr_u8_36_pack(&this->registration_id, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_CFG_ID_REGISTRATION_ID_AUTO_LEARNING)) != 0)
+    {
+        if (!bcmolt_buf_write_bool(buf, this->registration_id_auto_learning))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_CFG_ID_RANGING_BURST_PROFILE)) != 0)
+    {
+        if (!bcmolt_buf_write_u8(buf, (uint8_t) this->ranging_burst_profile))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_CFG_ID_DATA_BURST_PROFILE)) != 0)
+    {
+        if (!bcmolt_buf_write_u8(buf, (uint8_t) this->data_burst_profile))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_CFG_ID_RANGING_TIME)) != 0)
+    {
+        if (!bcmolt_buf_write_u32(buf, this->ranging_time))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_CFG_ID_DISABLED_AFTER_DISCOVERY)) != 0)
+    {
+        if (!bcmolt_status_pack(this->disabled_after_discovery, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_CFG_ID_DEACTIVATION_REASON)) != 0)
+    {
+        if (!bcmolt_deactivation_reason_pack(this->deactivation_reason, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_CFG_ID_ALL_GEM_PORTS)) != 0)
+    {
+        if (!bcmolt_xgpon_gem_port_with_state_list_u16_max_256_pack(&this->all_gem_ports, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_CFG_ID_ALL_ALLOCS)) != 0)
+    {
+        if (!bcmolt_xgpon_alloc_with_state_list_u16_max_32_pack(&this->all_allocs, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_CFG_ID_EXTENDED_GUARD_TIME)) != 0)
+    {
+        if (!bcmolt_extended_guard_time_pack(&this->extended_guard_time, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_CFG_ID_US_LINE_RATE)) != 0)
+    {
+        if (!bcmolt_upstream_line_rate_capabilities_pack(this->us_line_rate, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_CFG_ID_CALIBRATION_RECORD)) != 0)
+    {
+        if (!bcmolt_arr_calibration_record_8_pack(&this->calibration_record, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_CFG_ID_TUNING_GRANULARITY)) != 0)
+    {
+        if (!bcmolt_buf_write_u8(buf, this->tuning_granularity))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_CFG_ID_STEP_TUNING_TIME)) != 0)
+    {
+        if (!bcmolt_buf_write_u8(buf, this->step_tuning_time))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_CFG_ID_POWER_LEVELLING_CAPABILITIES)) != 0)
+    {
+        if (!bcmolt_buf_write_u8(buf, this->power_levelling_capabilities))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_CFG_ID_REQUEST_REGISTRATION_STATUS)) != 0)
+    {
+        if (!bcmolt_request_registration_status_pack(&this->request_registration_status, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_xgpon_onu_cfg_data_get_packed_length(const bcmolt_xgpon_onu_cfg_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_CFG_ID_ONU_STATE)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_CFG_ID_ONU_OLD_STATE)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_CFG_ID_ALARM_STATE)) != 0)
+    {
+        count += 13;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_CFG_ID_REGISTRATION_ENCRYPTION_KEYS)) != 0)
+    {
+        count += 80;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_CFG_ID_CURRENT_ENCRYPTION_KEY)) != 0)
+    {
+        count += 17;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_CFG_ID_SERIAL_NUMBER)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_CFG_ID_REGISTRATION_ID)) != 0)
+    {
+        count += 36;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_CFG_ID_REGISTRATION_ID_AUTO_LEARNING)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_CFG_ID_RANGING_BURST_PROFILE)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_CFG_ID_DATA_BURST_PROFILE)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_CFG_ID_RANGING_TIME)) != 0)
+    {
+        count += 4;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_CFG_ID_DISABLED_AFTER_DISCOVERY)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_CFG_ID_DEACTIVATION_REASON)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_CFG_ID_ALL_GEM_PORTS)) != 0)
+    {
+        count += bcmolt_xgpon_gem_port_with_state_list_u16_max_256_get_packed_length(&this->all_gem_ports);
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_CFG_ID_ALL_ALLOCS)) != 0)
+    {
+        count += bcmolt_xgpon_alloc_with_state_list_u16_max_32_get_packed_length(&this->all_allocs);
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_CFG_ID_EXTENDED_GUARD_TIME)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_CFG_ID_US_LINE_RATE)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_CFG_ID_CALIBRATION_RECORD)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_CFG_ID_TUNING_GRANULARITY)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_CFG_ID_STEP_TUNING_TIME)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_CFG_ID_POWER_LEVELLING_CAPABILITIES)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_CFG_ID_REQUEST_REGISTRATION_STATUS)) != 0)
+    {
+        count += 2;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_cfg_data_unpack(bcmolt_xgpon_onu_cfg_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_CFG_ID_ONU_STATE)) != 0)
+    {
+        if (!bcmolt_onu_state_unpack(&this->onu_state, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_CFG_ID_ONU_OLD_STATE)) != 0)
+    {
+        if (!bcmolt_onu_state_unpack(&this->onu_old_state, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_CFG_ID_ALARM_STATE)) != 0)
+    {
+        if (!bcmolt_xgpon_onu_alarm_state_unpack(&this->alarm_state, buf, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_CFG_ID_REGISTRATION_ENCRYPTION_KEYS)) != 0)
+    {
+        if (!bcmolt_xgpon_onu_registration_keys_unpack(&this->registration_encryption_keys, buf, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_CFG_ID_CURRENT_ENCRYPTION_KEY)) != 0)
+    {
+        if (!bcmolt_xgpon_onu_aes_key_unpack(&this->current_encryption_key, buf, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_CFG_ID_SERIAL_NUMBER)) != 0)
+    {
+        if (!bcmolt_serial_number_unpack(&this->serial_number, buf, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_CFG_ID_REGISTRATION_ID)) != 0)
+    {
+        if (!bcmolt_arr_u8_36_unpack(&this->registration_id, buf, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_CFG_ID_REGISTRATION_ID_AUTO_LEARNING)) != 0)
+    {
+        if (!bcmolt_buf_read_bool(buf, &this->registration_id_auto_learning))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_CFG_ID_RANGING_BURST_PROFILE)) != 0)
+    {
+        if (!bcmolt_buf_read_u8(buf, (uint8_t *) &this->ranging_burst_profile))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_CFG_ID_DATA_BURST_PROFILE)) != 0)
+    {
+        if (!bcmolt_buf_read_u8(buf, (uint8_t *) &this->data_burst_profile))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_CFG_ID_RANGING_TIME)) != 0)
+    {
+        if (!bcmolt_buf_read_u32(buf, &this->ranging_time))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_CFG_ID_DISABLED_AFTER_DISCOVERY)) != 0)
+    {
+        if (!bcmolt_status_unpack(&this->disabled_after_discovery, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_CFG_ID_DEACTIVATION_REASON)) != 0)
+    {
+        if (!bcmolt_deactivation_reason_unpack(&this->deactivation_reason, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_CFG_ID_ALL_GEM_PORTS)) != 0)
+    {
+        if (!bcmolt_xgpon_gem_port_with_state_list_u16_max_256_unpack(&this->all_gem_ports, buf, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_CFG_ID_ALL_ALLOCS)) != 0)
+    {
+        if (!bcmolt_xgpon_alloc_with_state_list_u16_max_32_unpack(&this->all_allocs, buf, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_CFG_ID_EXTENDED_GUARD_TIME)) != 0)
+    {
+        if (!bcmolt_extended_guard_time_unpack(&this->extended_guard_time, buf, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_CFG_ID_US_LINE_RATE)) != 0)
+    {
+        if (!bcmolt_upstream_line_rate_capabilities_unpack(&this->us_line_rate, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_CFG_ID_CALIBRATION_RECORD)) != 0)
+    {
+        if (!bcmolt_arr_calibration_record_8_unpack(&this->calibration_record, buf, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_CFG_ID_TUNING_GRANULARITY)) != 0)
+    {
+        if (!bcmolt_buf_read_u8(buf, &this->tuning_granularity))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_CFG_ID_STEP_TUNING_TIME)) != 0)
+    {
+        if (!bcmolt_buf_read_u8(buf, &this->step_tuning_time))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_CFG_ID_POWER_LEVELLING_CAPABILITIES)) != 0)
+    {
+        if (!bcmolt_buf_read_u8(buf, &this->power_levelling_capabilities))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_CFG_ID_REQUEST_REGISTRATION_STATUS)) != 0)
+    {
+        if (!bcmolt_request_registration_status_unpack(&this->request_registration_status, buf, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_cfg_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_CFG_ID_ONU_STATE)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_CFG_ID_ONU_OLD_STATE)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_CFG_ID_ALARM_STATE)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 13))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_CFG_ID_REGISTRATION_ENCRYPTION_KEYS)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 80))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_CFG_ID_CURRENT_ENCRYPTION_KEY)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 17))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_CFG_ID_SERIAL_NUMBER)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_CFG_ID_REGISTRATION_ID)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 36))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_CFG_ID_REGISTRATION_ID_AUTO_LEARNING)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_CFG_ID_RANGING_BURST_PROFILE)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_CFG_ID_DATA_BURST_PROFILE)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_CFG_ID_RANGING_TIME)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 4))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_CFG_ID_DISABLED_AFTER_DISCOVERY)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_CFG_ID_DEACTIVATION_REASON)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_CFG_ID_ALL_GEM_PORTS)) != 0)
+    {
+        if (!bcmolt_xgpon_gem_port_with_state_list_u16_max_256_scan(packed, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_CFG_ID_ALL_ALLOCS)) != 0)
+    {
+        if (!bcmolt_xgpon_alloc_with_state_list_u16_max_32_scan(packed, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_CFG_ID_EXTENDED_GUARD_TIME)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_CFG_ID_US_LINE_RATE)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_CFG_ID_CALIBRATION_RECORD)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_CFG_ID_TUNING_GRANULARITY)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_CFG_ID_STEP_TUNING_TIME)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_CFG_ID_POWER_LEVELLING_CAPABILITIES)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_CFG_ID_REQUEST_REGISTRATION_STATUS)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 2))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_cfg_data_bounds_check(const bcmolt_xgpon_onu_cfg_data *this, bcmolt_presence_mask fields_present, bcmolt_xgpon_onu_cfg_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_CFG_ID_ONU_STATE)) != 0)
+    {
+        switch (this->onu_state)
+        {
+            case BCMOLT_ONU_STATE_NOT_CONFIGURED:
+                break;
+            case BCMOLT_ONU_STATE_INACTIVE:
+                break;
+            case BCMOLT_ONU_STATE_ACTIVE:
+                break;
+            case BCMOLT_ONU_STATE_ACTIVE_STANDBY:
+                break;
+            case BCMOLT_ONU_STATE_DISABLED:
+                break;
+            case BCMOLT_ONU_STATE_AWAKE_FREE:
+                break;
+            case BCMOLT_ONU_STATE_PROCESSING:
+                break;
+            case BCMOLT_ONU_STATE_LOW_POWER_DOZE:
+                break;
+            case BCMOLT_ONU_STATE_LOW_POWER_SLEEP:
+                break;
+            case BCMOLT_ONU_STATE_LOW_POWER_WATCH:
+                break;
+            case BCMOLT_ONU_STATE_UNAWARE:
+                break;
+            default:
+                *failed_prop = BCMOLT_XGPON_ONU_CFG_ID_ONU_STATE;
+                return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_CFG_ID_ONU_OLD_STATE)) != 0)
+    {
+        switch (this->onu_old_state)
+        {
+            case BCMOLT_ONU_STATE_NOT_CONFIGURED:
+                break;
+            case BCMOLT_ONU_STATE_INACTIVE:
+                break;
+            case BCMOLT_ONU_STATE_ACTIVE:
+                break;
+            case BCMOLT_ONU_STATE_ACTIVE_STANDBY:
+                break;
+            case BCMOLT_ONU_STATE_DISABLED:
+                break;
+            case BCMOLT_ONU_STATE_AWAKE_FREE:
+                break;
+            case BCMOLT_ONU_STATE_PROCESSING:
+                break;
+            case BCMOLT_ONU_STATE_LOW_POWER_DOZE:
+                break;
+            case BCMOLT_ONU_STATE_LOW_POWER_SLEEP:
+                break;
+            case BCMOLT_ONU_STATE_LOW_POWER_WATCH:
+                break;
+            case BCMOLT_ONU_STATE_UNAWARE:
+                break;
+            default:
+                *failed_prop = BCMOLT_XGPON_ONU_CFG_ID_ONU_OLD_STATE;
+                return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_CFG_ID_ALARM_STATE)) != 0)
+    {
+        if (!bcmolt_xgpon_onu_alarm_state_bounds_check(&this->alarm_state))
+        {
+            *failed_prop = BCMOLT_XGPON_ONU_CFG_ID_ALARM_STATE;
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_CFG_ID_REGISTRATION_ENCRYPTION_KEYS)) != 0)
+    {
+        if (!bcmolt_xgpon_onu_registration_keys_bounds_check(&this->registration_encryption_keys))
+        {
+            *failed_prop = BCMOLT_XGPON_ONU_CFG_ID_REGISTRATION_ENCRYPTION_KEYS;
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_CFG_ID_CURRENT_ENCRYPTION_KEY)) != 0)
+    {
+        if (!bcmolt_xgpon_onu_aes_key_bounds_check(&this->current_encryption_key))
+        {
+            *failed_prop = BCMOLT_XGPON_ONU_CFG_ID_CURRENT_ENCRYPTION_KEY;
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_CFG_ID_SERIAL_NUMBER)) != 0)
+    {
+        if (!bcmolt_serial_number_bounds_check(&this->serial_number))
+        {
+            *failed_prop = BCMOLT_XGPON_ONU_CFG_ID_SERIAL_NUMBER;
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_CFG_ID_REGISTRATION_ID)) != 0)
+    {
+        if (!bcmolt_arr_u8_36_bounds_check(&this->registration_id))
+        {
+            *failed_prop = BCMOLT_XGPON_ONU_CFG_ID_REGISTRATION_ID;
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_CFG_ID_RANGING_BURST_PROFILE)) != 0)
+    {
+        if (this->ranging_burst_profile > (bcmolt_burst_profile_index) 3)
+        {
+            *failed_prop = BCMOLT_XGPON_ONU_CFG_ID_RANGING_BURST_PROFILE;
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_CFG_ID_DATA_BURST_PROFILE)) != 0)
+    {
+        if (this->data_burst_profile > (bcmolt_burst_profile_index) 3)
+        {
+            *failed_prop = BCMOLT_XGPON_ONU_CFG_ID_DATA_BURST_PROFILE;
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_CFG_ID_DISABLED_AFTER_DISCOVERY)) != 0)
+    {
+        switch (this->disabled_after_discovery)
+        {
+            case BCMOLT_STATUS_OFF:
+                break;
+            case BCMOLT_STATUS_ON:
+                break;
+            case BCMOLT_STATUS_NO_CHANGE:
+                break;
+            default:
+                *failed_prop = BCMOLT_XGPON_ONU_CFG_ID_DISABLED_AFTER_DISCOVERY;
+                return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_CFG_ID_DEACTIVATION_REASON)) != 0)
+    {
+        switch (this->deactivation_reason)
+        {
+            case BCMOLT_DEACTIVATION_REASON_NONE:
+                break;
+            case BCMOLT_DEACTIVATION_REASON_DEACTIVATION:
+                break;
+            case BCMOLT_DEACTIVATION_REASON_ACK_TIMEOUT:
+                break;
+            case BCMOLT_DEACTIVATION_REASON_SFI:
+                break;
+            case BCMOLT_DEACTIVATION_REASON_TIWI:
+                break;
+            case BCMOLT_DEACTIVATION_REASON_PASSWORD_AUTHENTICATION:
+                break;
+            case BCMOLT_DEACTIVATION_REASON_ONU_ALARM:
+                break;
+            case BCMOLT_DEACTIVATION_REASON_LOS:
+                break;
+            case BCMOLT_DEACTIVATION_REASON_LOKI:
+                break;
+            case BCMOLT_DEACTIVATION_REASON_RERANGE_FAILURE:
+                break;
+            default:
+                *failed_prop = BCMOLT_XGPON_ONU_CFG_ID_DEACTIVATION_REASON;
+                return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_CFG_ID_ALL_GEM_PORTS)) != 0)
+    {
+        if (this->all_gem_ports.len > 256)
+        {
+            return BCMOS_FALSE;
+        }
+
+        if (!bcmolt_xgpon_gem_port_with_state_list_u16_max_256_bounds_check(&this->all_gem_ports))
+        {
+            *failed_prop = BCMOLT_XGPON_ONU_CFG_ID_ALL_GEM_PORTS;
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_CFG_ID_ALL_ALLOCS)) != 0)
+    {
+        if (this->all_allocs.len > 32)
+        {
+            return BCMOS_FALSE;
+        }
+
+        if (!bcmolt_xgpon_alloc_with_state_list_u16_max_32_bounds_check(&this->all_allocs))
+        {
+            *failed_prop = BCMOLT_XGPON_ONU_CFG_ID_ALL_ALLOCS;
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_CFG_ID_EXTENDED_GUARD_TIME)) != 0)
+    {
+        if (!bcmolt_extended_guard_time_bounds_check(&this->extended_guard_time))
+        {
+            *failed_prop = BCMOLT_XGPON_ONU_CFG_ID_EXTENDED_GUARD_TIME;
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_CFG_ID_US_LINE_RATE)) != 0)
+    {
+        switch (this->us_line_rate)
+        {
+            case BCMOLT_UPSTREAM_LINE_RATE_CAPABILITIES_RATE_2_P_5_G:
+                break;
+            case BCMOLT_UPSTREAM_LINE_RATE_CAPABILITIES_RATE_10_G:
+                break;
+            default:
+                *failed_prop = BCMOLT_XGPON_ONU_CFG_ID_US_LINE_RATE;
+                return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_CFG_ID_CALIBRATION_RECORD)) != 0)
+    {
+        if (!bcmolt_arr_calibration_record_8_bounds_check(&this->calibration_record))
+        {
+            *failed_prop = BCMOLT_XGPON_ONU_CFG_ID_CALIBRATION_RECORD;
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_CFG_ID_REQUEST_REGISTRATION_STATUS)) != 0)
+    {
+        if (!bcmolt_request_registration_status_bounds_check(&this->request_registration_status))
+        {
+            *failed_prop = BCMOLT_XGPON_ONU_CFG_ID_REQUEST_REGISTRATION_STATUS;
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_xgpon_onu_stat_data_set_default(bcmolt_xgpon_onu_stat_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_STAT_ID_POSITIVE_DRIFT)) != 0)
+    {
+        this->positive_drift = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_STAT_ID_NEGATIVE_DRIFT)) != 0)
+    {
+        this->negative_drift = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_STAT_ID_DELIMITER_MISS_DETECTION)) != 0)
+    {
+        this->delimiter_miss_detection = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_STAT_ID_BIP32_ERRORS)) != 0)
+    {
+        this->bip32_errors = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_STAT_ID_RX_WORDS)) != 0)
+    {
+        this->rx_words = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_STAT_ID_FEC_CORRECTED_SYMBOLS)) != 0)
+    {
+        this->fec_corrected_symbols = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_STAT_ID_FEC_CORRECTED_CODEWORDS)) != 0)
+    {
+        this->fec_corrected_codewords = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_STAT_ID_FEC_UNCORRECTABLE_CODEWORDS)) != 0)
+    {
+        this->fec_uncorrectable_codewords = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_STAT_ID_FEC_CODEWORDS)) != 0)
+    {
+        this->fec_codewords = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_STAT_ID_FEC_CORRECTED_BITS)) != 0)
+    {
+        this->fec_corrected_bits = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_STAT_ID_XGEM_KEY_ERRORS)) != 0)
+    {
+        this->xgem_key_errors = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_STAT_ID_XGEM_LOSS)) != 0)
+    {
+        this->xgem_loss = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_STAT_ID_RX_PLOAMS_MIC_ERROR)) != 0)
+    {
+        this->rx_ploams_mic_error = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_STAT_ID_RX_PLOAMS_NON_IDLE)) != 0)
+    {
+        this->rx_ploams_non_idle = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_STAT_ID_RX_OMCI)) != 0)
+    {
+        this->rx_omci = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_STAT_ID_RX_OMCI_PACKETS_CRC_ERROR)) != 0)
+    {
+        this->rx_omci_packets_crc_error = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_STAT_ID_RX_BYTES)) != 0)
+    {
+        this->rx_bytes = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_STAT_ID_RX_PACKETS)) != 0)
+    {
+        this->rx_packets = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_STAT_ID_TX_BYTES)) != 0)
+    {
+        this->tx_bytes = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_STAT_ID_TX_PACKETS)) != 0)
+    {
+        this->tx_packets = 0;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_stat_data_pack(const bcmolt_xgpon_onu_stat_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_STAT_ID_POSITIVE_DRIFT)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->positive_drift))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_STAT_ID_NEGATIVE_DRIFT)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->negative_drift))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_STAT_ID_DELIMITER_MISS_DETECTION)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->delimiter_miss_detection))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_STAT_ID_BIP32_ERRORS)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->bip32_errors))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_STAT_ID_RX_WORDS)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->rx_words))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_STAT_ID_FEC_CORRECTED_SYMBOLS)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->fec_corrected_symbols))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_STAT_ID_FEC_CORRECTED_CODEWORDS)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->fec_corrected_codewords))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_STAT_ID_FEC_UNCORRECTABLE_CODEWORDS)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->fec_uncorrectable_codewords))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_STAT_ID_FEC_CODEWORDS)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->fec_codewords))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_STAT_ID_FEC_CORRECTED_BITS)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->fec_corrected_bits))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_STAT_ID_XGEM_KEY_ERRORS)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->xgem_key_errors))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_STAT_ID_XGEM_LOSS)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->xgem_loss))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_STAT_ID_RX_PLOAMS_MIC_ERROR)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->rx_ploams_mic_error))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_STAT_ID_RX_PLOAMS_NON_IDLE)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->rx_ploams_non_idle))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_STAT_ID_RX_OMCI)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->rx_omci))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_STAT_ID_RX_OMCI_PACKETS_CRC_ERROR)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->rx_omci_packets_crc_error))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_STAT_ID_RX_BYTES)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->rx_bytes))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_STAT_ID_RX_PACKETS)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->rx_packets))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_STAT_ID_TX_BYTES)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->tx_bytes))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_STAT_ID_TX_PACKETS)) != 0)
+    {
+        if (!bcmolt_buf_write_u64(buf, this->tx_packets))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_xgpon_onu_stat_data_get_packed_length(const bcmolt_xgpon_onu_stat_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_STAT_ID_POSITIVE_DRIFT)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_STAT_ID_NEGATIVE_DRIFT)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_STAT_ID_DELIMITER_MISS_DETECTION)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_STAT_ID_BIP32_ERRORS)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_STAT_ID_RX_WORDS)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_STAT_ID_FEC_CORRECTED_SYMBOLS)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_STAT_ID_FEC_CORRECTED_CODEWORDS)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_STAT_ID_FEC_UNCORRECTABLE_CODEWORDS)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_STAT_ID_FEC_CODEWORDS)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_STAT_ID_FEC_CORRECTED_BITS)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_STAT_ID_XGEM_KEY_ERRORS)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_STAT_ID_XGEM_LOSS)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_STAT_ID_RX_PLOAMS_MIC_ERROR)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_STAT_ID_RX_PLOAMS_NON_IDLE)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_STAT_ID_RX_OMCI)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_STAT_ID_RX_OMCI_PACKETS_CRC_ERROR)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_STAT_ID_RX_BYTES)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_STAT_ID_RX_PACKETS)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_STAT_ID_TX_BYTES)) != 0)
+    {
+        count += 8;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_STAT_ID_TX_PACKETS)) != 0)
+    {
+        count += 8;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_stat_data_unpack(bcmolt_xgpon_onu_stat_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_STAT_ID_POSITIVE_DRIFT)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->positive_drift))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_STAT_ID_NEGATIVE_DRIFT)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->negative_drift))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_STAT_ID_DELIMITER_MISS_DETECTION)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->delimiter_miss_detection))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_STAT_ID_BIP32_ERRORS)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->bip32_errors))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_STAT_ID_RX_WORDS)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->rx_words))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_STAT_ID_FEC_CORRECTED_SYMBOLS)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->fec_corrected_symbols))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_STAT_ID_FEC_CORRECTED_CODEWORDS)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->fec_corrected_codewords))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_STAT_ID_FEC_UNCORRECTABLE_CODEWORDS)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->fec_uncorrectable_codewords))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_STAT_ID_FEC_CODEWORDS)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->fec_codewords))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_STAT_ID_FEC_CORRECTED_BITS)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->fec_corrected_bits))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_STAT_ID_XGEM_KEY_ERRORS)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->xgem_key_errors))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_STAT_ID_XGEM_LOSS)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->xgem_loss))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_STAT_ID_RX_PLOAMS_MIC_ERROR)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->rx_ploams_mic_error))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_STAT_ID_RX_PLOAMS_NON_IDLE)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->rx_ploams_non_idle))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_STAT_ID_RX_OMCI)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->rx_omci))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_STAT_ID_RX_OMCI_PACKETS_CRC_ERROR)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->rx_omci_packets_crc_error))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_STAT_ID_RX_BYTES)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->rx_bytes))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_STAT_ID_RX_PACKETS)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->rx_packets))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_STAT_ID_TX_BYTES)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->tx_bytes))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_STAT_ID_TX_PACKETS)) != 0)
+    {
+        if (!bcmolt_buf_read_u64(buf, &this->tx_packets))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_stat_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_STAT_ID_POSITIVE_DRIFT)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_STAT_ID_NEGATIVE_DRIFT)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_STAT_ID_DELIMITER_MISS_DETECTION)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_STAT_ID_BIP32_ERRORS)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_STAT_ID_RX_WORDS)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_STAT_ID_FEC_CORRECTED_SYMBOLS)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_STAT_ID_FEC_CORRECTED_CODEWORDS)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_STAT_ID_FEC_UNCORRECTABLE_CODEWORDS)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_STAT_ID_FEC_CODEWORDS)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_STAT_ID_FEC_CORRECTED_BITS)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_STAT_ID_XGEM_KEY_ERRORS)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_STAT_ID_XGEM_LOSS)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_STAT_ID_RX_PLOAMS_MIC_ERROR)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_STAT_ID_RX_PLOAMS_NON_IDLE)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_STAT_ID_RX_OMCI)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_STAT_ID_RX_OMCI_PACKETS_CRC_ERROR)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_STAT_ID_RX_BYTES)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_STAT_ID_RX_PACKETS)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_STAT_ID_TX_BYTES)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_STAT_ID_TX_PACKETS)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_stat_data_bounds_check(const bcmolt_xgpon_onu_stat_data *this, bcmolt_presence_mask fields_present, bcmolt_xgpon_onu_stat_id *failed_prop)
+{
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_xgpon_onu_stat_cfg_data_set_default(bcmolt_xgpon_onu_stat_cfg_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_STAT_CFG_ID_CFG)) != 0)
+    {
+        this->cfg.trigger.type = BCMOLT_STAT_CONDITION_TYPE_NONE;
+        this->cfg.soak.active_soak_time = 0;
+        this->cfg.soak.clear_soak_time = 0;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_stat_cfg_data_pack(const bcmolt_xgpon_onu_stat_cfg_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_STAT_CFG_ID_CFG)) != 0)
+    {
+        if (!bcmolt_stat_alarm_config_pack(&this->cfg, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_xgpon_onu_stat_cfg_data_get_packed_length(const bcmolt_xgpon_onu_stat_cfg_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_STAT_CFG_ID_CFG)) != 0)
+    {
+        count += bcmolt_stat_alarm_config_get_packed_length(&this->cfg);
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_stat_cfg_data_unpack(bcmolt_xgpon_onu_stat_cfg_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_STAT_CFG_ID_CFG)) != 0)
+    {
+        if (!bcmolt_stat_alarm_config_unpack(&this->cfg, buf, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_stat_cfg_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_STAT_CFG_ID_CFG)) != 0)
+    {
+        if (!bcmolt_stat_alarm_config_scan(packed, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_stat_cfg_data_bounds_check(const bcmolt_xgpon_onu_stat_cfg_data *this, bcmolt_presence_mask fields_present, bcmolt_xgpon_onu_stat_cfg_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_STAT_CFG_ID_CFG)) != 0)
+    {
+        if (!bcmolt_stat_alarm_config_bounds_check(&this->cfg))
+        {
+            *failed_prop = BCMOLT_XGPON_ONU_STAT_CFG_ID_CFG;
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_xgpon_onu_dfi_data_set_default(bcmolt_xgpon_onu_dfi_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_DFI_ID_ALARM_STATUS)) != 0)
+    {
+        this->alarm_status = BCMOLT_STATUS_OFF;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_dfi_data_pack(const bcmolt_xgpon_onu_dfi_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_DFI_ID_ALARM_STATUS)) != 0)
+    {
+        if (!bcmolt_status_pack(this->alarm_status, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_xgpon_onu_dfi_data_get_packed_length(const bcmolt_xgpon_onu_dfi_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_DFI_ID_ALARM_STATUS)) != 0)
+    {
+        count += 1;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_dfi_data_unpack(bcmolt_xgpon_onu_dfi_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_DFI_ID_ALARM_STATUS)) != 0)
+    {
+        if (!bcmolt_status_unpack(&this->alarm_status, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_dfi_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_DFI_ID_ALARM_STATUS)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_dfi_data_bounds_check(const bcmolt_xgpon_onu_dfi_data *this, bcmolt_presence_mask fields_present, bcmolt_xgpon_onu_dfi_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_DFI_ID_ALARM_STATUS)) != 0)
+    {
+        switch (this->alarm_status)
+        {
+            case BCMOLT_STATUS_OFF:
+                break;
+            case BCMOLT_STATUS_ON:
+                break;
+            case BCMOLT_STATUS_NO_CHANGE:
+                break;
+            default:
+                *failed_prop = BCMOLT_XGPON_ONU_DFI_ID_ALARM_STATUS;
+                return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_xgpon_onu_dgi_data_set_default(bcmolt_xgpon_onu_dgi_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_DGI_ID_ALARM_STATUS)) != 0)
+    {
+        this->alarm_status = BCMOLT_STATUS_OFF;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_dgi_data_pack(const bcmolt_xgpon_onu_dgi_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_DGI_ID_ALARM_STATUS)) != 0)
+    {
+        if (!bcmolt_status_pack(this->alarm_status, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_xgpon_onu_dgi_data_get_packed_length(const bcmolt_xgpon_onu_dgi_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_DGI_ID_ALARM_STATUS)) != 0)
+    {
+        count += 1;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_dgi_data_unpack(bcmolt_xgpon_onu_dgi_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_DGI_ID_ALARM_STATUS)) != 0)
+    {
+        if (!bcmolt_status_unpack(&this->alarm_status, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_dgi_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_DGI_ID_ALARM_STATUS)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_dgi_data_bounds_check(const bcmolt_xgpon_onu_dgi_data *this, bcmolt_presence_mask fields_present, bcmolt_xgpon_onu_dgi_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_DGI_ID_ALARM_STATUS)) != 0)
+    {
+        switch (this->alarm_status)
+        {
+            case BCMOLT_STATUS_OFF:
+                break;
+            case BCMOLT_STATUS_ON:
+                break;
+            case BCMOLT_STATUS_NO_CHANGE:
+                break;
+            default:
+                *failed_prop = BCMOLT_XGPON_ONU_DGI_ID_ALARM_STATUS;
+                return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_xgpon_onu_dowi_data_set_default(bcmolt_xgpon_onu_dowi_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_DOWI_ID_ALARM_STATUS)) != 0)
+    {
+        this->alarm_status = BCMOLT_STATUS_OFF;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_DOWI_ID_DRIFT_VALUE)) != 0)
+    {
+        this->drift_value = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_DOWI_ID_NEW_EQD)) != 0)
+    {
+        this->new_eqd = 0;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_dowi_data_pack(const bcmolt_xgpon_onu_dowi_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_DOWI_ID_ALARM_STATUS)) != 0)
+    {
+        if (!bcmolt_status_pack(this->alarm_status, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_DOWI_ID_DRIFT_VALUE)) != 0)
+    {
+        if (!bcmolt_buf_write_s32(buf, this->drift_value))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_DOWI_ID_NEW_EQD)) != 0)
+    {
+        if (!bcmolt_buf_write_u32(buf, this->new_eqd))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_xgpon_onu_dowi_data_get_packed_length(const bcmolt_xgpon_onu_dowi_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_DOWI_ID_ALARM_STATUS)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_DOWI_ID_DRIFT_VALUE)) != 0)
+    {
+        count += 4;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_DOWI_ID_NEW_EQD)) != 0)
+    {
+        count += 4;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_dowi_data_unpack(bcmolt_xgpon_onu_dowi_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_DOWI_ID_ALARM_STATUS)) != 0)
+    {
+        if (!bcmolt_status_unpack(&this->alarm_status, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_DOWI_ID_DRIFT_VALUE)) != 0)
+    {
+        if (!bcmolt_buf_read_s32(buf, &this->drift_value))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_DOWI_ID_NEW_EQD)) != 0)
+    {
+        if (!bcmolt_buf_read_u32(buf, &this->new_eqd))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_dowi_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_DOWI_ID_ALARM_STATUS)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_DOWI_ID_DRIFT_VALUE)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 4))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_DOWI_ID_NEW_EQD)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 4))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_dowi_data_bounds_check(const bcmolt_xgpon_onu_dowi_data *this, bcmolt_presence_mask fields_present, bcmolt_xgpon_onu_dowi_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_DOWI_ID_ALARM_STATUS)) != 0)
+    {
+        switch (this->alarm_status)
+        {
+            case BCMOLT_STATUS_OFF:
+                break;
+            case BCMOLT_STATUS_ON:
+                break;
+            case BCMOLT_STATUS_NO_CHANGE:
+                break;
+            default:
+                *failed_prop = BCMOLT_XGPON_ONU_DOWI_ID_ALARM_STATUS;
+                return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_xgpon_onu_invalid_dbru_report_data_set_default(bcmolt_xgpon_onu_invalid_dbru_report_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_INVALID_DBRU_REPORT_ID_ALLOC_ID)) != 0)
+    {
+        this->alloc_id = (bcmolt_xgpon_alloc_id) 0;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_invalid_dbru_report_data_pack(const bcmolt_xgpon_onu_invalid_dbru_report_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_INVALID_DBRU_REPORT_ID_ALLOC_ID)) != 0)
+    {
+        if (!bcmolt_buf_write_u16(buf, (uint16_t) this->alloc_id))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_xgpon_onu_invalid_dbru_report_data_get_packed_length(const bcmolt_xgpon_onu_invalid_dbru_report_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_INVALID_DBRU_REPORT_ID_ALLOC_ID)) != 0)
+    {
+        count += 2;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_invalid_dbru_report_data_unpack(bcmolt_xgpon_onu_invalid_dbru_report_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_INVALID_DBRU_REPORT_ID_ALLOC_ID)) != 0)
+    {
+        if (!bcmolt_buf_read_u16(buf, (uint16_t *) &this->alloc_id))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_invalid_dbru_report_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_INVALID_DBRU_REPORT_ID_ALLOC_ID)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 2))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_invalid_dbru_report_data_bounds_check(const bcmolt_xgpon_onu_invalid_dbru_report_data *this, bcmolt_presence_mask fields_present, bcmolt_xgpon_onu_invalid_dbru_report_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_INVALID_DBRU_REPORT_ID_ALLOC_ID)) != 0)
+    {
+        if (this->alloc_id > (bcmolt_xgpon_alloc_id) 16383)
+        {
+            *failed_prop = BCMOLT_XGPON_ONU_INVALID_DBRU_REPORT_ID_ALLOC_ID;
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_xgpon_onu_key_exchange_completed_data_set_default(bcmolt_xgpon_onu_key_exchange_completed_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_KEY_EXCHANGE_COMPLETED_ID_NEW_KEY)) != 0)
+    {
+        memset(this->new_key.encryption_key.bytes, 0, sizeof(this->new_key.encryption_key.bytes));
+        this->new_key.key_index = 0;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_key_exchange_completed_data_pack(const bcmolt_xgpon_onu_key_exchange_completed_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_KEY_EXCHANGE_COMPLETED_ID_NEW_KEY)) != 0)
+    {
+        if (!bcmolt_xgpon_onu_aes_key_pack(&this->new_key, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_xgpon_onu_key_exchange_completed_data_get_packed_length(const bcmolt_xgpon_onu_key_exchange_completed_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_KEY_EXCHANGE_COMPLETED_ID_NEW_KEY)) != 0)
+    {
+        count += 17;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_key_exchange_completed_data_unpack(bcmolt_xgpon_onu_key_exchange_completed_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_KEY_EXCHANGE_COMPLETED_ID_NEW_KEY)) != 0)
+    {
+        if (!bcmolt_xgpon_onu_aes_key_unpack(&this->new_key, buf, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_key_exchange_completed_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_KEY_EXCHANGE_COMPLETED_ID_NEW_KEY)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 17))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_key_exchange_completed_data_bounds_check(const bcmolt_xgpon_onu_key_exchange_completed_data *this, bcmolt_presence_mask fields_present, bcmolt_xgpon_onu_key_exchange_completed_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_KEY_EXCHANGE_COMPLETED_ID_NEW_KEY)) != 0)
+    {
+        if (!bcmolt_xgpon_onu_aes_key_bounds_check(&this->new_key))
+        {
+            *failed_prop = BCMOLT_XGPON_ONU_KEY_EXCHANGE_COMPLETED_ID_NEW_KEY;
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_xgpon_onu_key_exchange_key_mismatch_data_set_default(bcmolt_xgpon_onu_key_exchange_key_mismatch_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_KEY_EXCHANGE_KEY_MISMATCH_ID_EXPECTED_KEY)) != 0)
+    {
+        memset(this->expected_key.bytes, 0, sizeof(this->expected_key.bytes));
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_KEY_EXCHANGE_KEY_MISMATCH_ID_RECEIVED_KEY)) != 0)
+    {
+        memset(this->received_key.bytes, 0, sizeof(this->received_key.bytes));
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_key_exchange_key_mismatch_data_pack(const bcmolt_xgpon_onu_key_exchange_key_mismatch_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_KEY_EXCHANGE_KEY_MISMATCH_ID_EXPECTED_KEY)) != 0)
+    {
+        if (!bcmolt_aes_key_pack(&this->expected_key, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_KEY_EXCHANGE_KEY_MISMATCH_ID_RECEIVED_KEY)) != 0)
+    {
+        if (!bcmolt_aes_key_pack(&this->received_key, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_xgpon_onu_key_exchange_key_mismatch_data_get_packed_length(const bcmolt_xgpon_onu_key_exchange_key_mismatch_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_KEY_EXCHANGE_KEY_MISMATCH_ID_EXPECTED_KEY)) != 0)
+    {
+        count += 16;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_KEY_EXCHANGE_KEY_MISMATCH_ID_RECEIVED_KEY)) != 0)
+    {
+        count += 16;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_key_exchange_key_mismatch_data_unpack(bcmolt_xgpon_onu_key_exchange_key_mismatch_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_KEY_EXCHANGE_KEY_MISMATCH_ID_EXPECTED_KEY)) != 0)
+    {
+        if (!bcmolt_aes_key_unpack(&this->expected_key, buf, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_KEY_EXCHANGE_KEY_MISMATCH_ID_RECEIVED_KEY)) != 0)
+    {
+        if (!bcmolt_aes_key_unpack(&this->received_key, buf, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_key_exchange_key_mismatch_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_KEY_EXCHANGE_KEY_MISMATCH_ID_EXPECTED_KEY)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 16))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_KEY_EXCHANGE_KEY_MISMATCH_ID_RECEIVED_KEY)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 16))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_key_exchange_key_mismatch_data_bounds_check(const bcmolt_xgpon_onu_key_exchange_key_mismatch_data *this, bcmolt_presence_mask fields_present, bcmolt_xgpon_onu_key_exchange_key_mismatch_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_KEY_EXCHANGE_KEY_MISMATCH_ID_EXPECTED_KEY)) != 0)
+    {
+        if (!bcmolt_aes_key_bounds_check(&this->expected_key))
+        {
+            *failed_prop = BCMOLT_XGPON_ONU_KEY_EXCHANGE_KEY_MISMATCH_ID_EXPECTED_KEY;
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_KEY_EXCHANGE_KEY_MISMATCH_ID_RECEIVED_KEY)) != 0)
+    {
+        if (!bcmolt_aes_key_bounds_check(&this->received_key))
+        {
+            *failed_prop = BCMOLT_XGPON_ONU_KEY_EXCHANGE_KEY_MISMATCH_ID_RECEIVED_KEY;
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_xgpon_onu_looci_data_set_default(bcmolt_xgpon_onu_looci_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_LOOCI_ID_ALARM_STATUS)) != 0)
+    {
+        this->alarm_status = BCMOLT_STATUS_OFF;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_looci_data_pack(const bcmolt_xgpon_onu_looci_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_LOOCI_ID_ALARM_STATUS)) != 0)
+    {
+        if (!bcmolt_status_pack(this->alarm_status, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_xgpon_onu_looci_data_get_packed_length(const bcmolt_xgpon_onu_looci_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_LOOCI_ID_ALARM_STATUS)) != 0)
+    {
+        count += 1;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_looci_data_unpack(bcmolt_xgpon_onu_looci_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_LOOCI_ID_ALARM_STATUS)) != 0)
+    {
+        if (!bcmolt_status_unpack(&this->alarm_status, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_looci_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_LOOCI_ID_ALARM_STATUS)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_looci_data_bounds_check(const bcmolt_xgpon_onu_looci_data *this, bcmolt_presence_mask fields_present, bcmolt_xgpon_onu_looci_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_LOOCI_ID_ALARM_STATUS)) != 0)
+    {
+        switch (this->alarm_status)
+        {
+            case BCMOLT_STATUS_OFF:
+                break;
+            case BCMOLT_STATUS_ON:
+                break;
+            case BCMOLT_STATUS_NO_CHANGE:
+                break;
+            default:
+                *failed_prop = BCMOLT_XGPON_ONU_LOOCI_ID_ALARM_STATUS;
+                return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_xgpon_onu_onu_activation_completed_data_set_default(bcmolt_xgpon_onu_onu_activation_completed_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_ONU_ACTIVATION_COMPLETED_ID_STATUS)) != 0)
+    {
+        this->status = BCMOLT_RESULT_SUCCESS;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_ONU_ACTIVATION_COMPLETED_ID_FAIL_REASON)) != 0)
+    {
+        this->fail_reason = BCMOLT_ACTIVATION_FAIL_REASON_NONE;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_ONU_ACTIVATION_COMPLETED_ID_REGISTRATION_ID)) != 0)
+    {
+        memset(this->registration_id.arr, 0, sizeof(this->registration_id.arr));
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_ONU_ACTIVATION_COMPLETED_ID_REGISTRATION_ENCRYPTION_KEYS)) != 0)
+    {
+        memset(this->registration_encryption_keys.ploam_ik.bytes, 0, sizeof(this->registration_encryption_keys.ploam_ik.bytes));
+        memset(this->registration_encryption_keys.omci_ik.bytes, 0, sizeof(this->registration_encryption_keys.omci_ik.bytes));
+        memset(this->registration_encryption_keys.omci_k1.bytes, 0, sizeof(this->registration_encryption_keys.omci_k1.bytes));
+        memset(this->registration_encryption_keys.omci_k2.bytes, 0, sizeof(this->registration_encryption_keys.omci_k2.bytes));
+        memset(this->registration_encryption_keys.kek.bytes, 0, sizeof(this->registration_encryption_keys.kek.bytes));
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_onu_activation_completed_data_pack(const bcmolt_xgpon_onu_onu_activation_completed_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_ONU_ACTIVATION_COMPLETED_ID_STATUS)) != 0)
+    {
+        if (!bcmolt_result_pack(this->status, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_ONU_ACTIVATION_COMPLETED_ID_FAIL_REASON)) != 0)
+    {
+        if (!bcmolt_activation_fail_reason_pack(this->fail_reason, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_ONU_ACTIVATION_COMPLETED_ID_REGISTRATION_ID)) != 0)
+    {
+        if (!bcmolt_arr_u8_36_pack(&this->registration_id, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_ONU_ACTIVATION_COMPLETED_ID_REGISTRATION_ENCRYPTION_KEYS)) != 0)
+    {
+        if (!bcmolt_xgpon_onu_registration_keys_pack(&this->registration_encryption_keys, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_xgpon_onu_onu_activation_completed_data_get_packed_length(const bcmolt_xgpon_onu_onu_activation_completed_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_ONU_ACTIVATION_COMPLETED_ID_STATUS)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_ONU_ACTIVATION_COMPLETED_ID_FAIL_REASON)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_ONU_ACTIVATION_COMPLETED_ID_REGISTRATION_ID)) != 0)
+    {
+        count += 36;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_ONU_ACTIVATION_COMPLETED_ID_REGISTRATION_ENCRYPTION_KEYS)) != 0)
+    {
+        count += 80;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_onu_activation_completed_data_unpack(bcmolt_xgpon_onu_onu_activation_completed_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_ONU_ACTIVATION_COMPLETED_ID_STATUS)) != 0)
+    {
+        if (!bcmolt_result_unpack(&this->status, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_ONU_ACTIVATION_COMPLETED_ID_FAIL_REASON)) != 0)
+    {
+        if (!bcmolt_activation_fail_reason_unpack(&this->fail_reason, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_ONU_ACTIVATION_COMPLETED_ID_REGISTRATION_ID)) != 0)
+    {
+        if (!bcmolt_arr_u8_36_unpack(&this->registration_id, buf, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_ONU_ACTIVATION_COMPLETED_ID_REGISTRATION_ENCRYPTION_KEYS)) != 0)
+    {
+        if (!bcmolt_xgpon_onu_registration_keys_unpack(&this->registration_encryption_keys, buf, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_onu_activation_completed_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_ONU_ACTIVATION_COMPLETED_ID_STATUS)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_ONU_ACTIVATION_COMPLETED_ID_FAIL_REASON)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_ONU_ACTIVATION_COMPLETED_ID_REGISTRATION_ID)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 36))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_ONU_ACTIVATION_COMPLETED_ID_REGISTRATION_ENCRYPTION_KEYS)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 80))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_onu_activation_completed_data_bounds_check(const bcmolt_xgpon_onu_onu_activation_completed_data *this, bcmolt_presence_mask fields_present, bcmolt_xgpon_onu_onu_activation_completed_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_ONU_ACTIVATION_COMPLETED_ID_STATUS)) != 0)
+    {
+        switch (this->status)
+        {
+            case BCMOLT_RESULT_SUCCESS:
+                break;
+            case BCMOLT_RESULT_FAIL:
+                break;
+            default:
+                *failed_prop = BCMOLT_XGPON_ONU_ONU_ACTIVATION_COMPLETED_ID_STATUS;
+                return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_ONU_ACTIVATION_COMPLETED_ID_FAIL_REASON)) != 0)
+    {
+        switch (this->fail_reason)
+        {
+            case BCMOLT_ACTIVATION_FAIL_REASON_NONE:
+                break;
+            case BCMOLT_ACTIVATION_FAIL_REASON_RANGING:
+                break;
+            case BCMOLT_ACTIVATION_FAIL_REASON_PASSWORD_AUTHENTICATION:
+                break;
+            case BCMOLT_ACTIVATION_FAIL_REASON_LOS:
+                break;
+            case BCMOLT_ACTIVATION_FAIL_REASON_ONU_ALARM:
+                break;
+            default:
+                *failed_prop = BCMOLT_XGPON_ONU_ONU_ACTIVATION_COMPLETED_ID_FAIL_REASON;
+                return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_ONU_ACTIVATION_COMPLETED_ID_REGISTRATION_ID)) != 0)
+    {
+        if (!bcmolt_arr_u8_36_bounds_check(&this->registration_id))
+        {
+            *failed_prop = BCMOLT_XGPON_ONU_ONU_ACTIVATION_COMPLETED_ID_REGISTRATION_ID;
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_ONU_ACTIVATION_COMPLETED_ID_REGISTRATION_ENCRYPTION_KEYS)) != 0)
+    {
+        if (!bcmolt_xgpon_onu_registration_keys_bounds_check(&this->registration_encryption_keys))
+        {
+            *failed_prop = BCMOLT_XGPON_ONU_ONU_ACTIVATION_COMPLETED_ID_REGISTRATION_ENCRYPTION_KEYS;
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_xgpon_onu_onu_alarm_data_set_default(bcmolt_xgpon_onu_onu_alarm_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_ONU_ALARM_ID_ONU_ALARM)) != 0)
+    {
+        this->onu_alarm.losi = BCMOLT_STATUS_OFF;
+        this->onu_alarm.lobi = BCMOLT_STATUS_OFF;
+        this->onu_alarm.lopci_miss = BCMOLT_STATUS_OFF;
+        this->onu_alarm.lopci_mic_error = BCMOLT_STATUS_OFF;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_onu_alarm_data_pack(const bcmolt_xgpon_onu_onu_alarm_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_ONU_ALARM_ID_ONU_ALARM)) != 0)
+    {
+        if (!bcmolt_xgpon_onu_alarms_pack(&this->onu_alarm, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_xgpon_onu_onu_alarm_data_get_packed_length(const bcmolt_xgpon_onu_onu_alarm_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_ONU_ALARM_ID_ONU_ALARM)) != 0)
+    {
+        count += 4;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_onu_alarm_data_unpack(bcmolt_xgpon_onu_onu_alarm_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_ONU_ALARM_ID_ONU_ALARM)) != 0)
+    {
+        if (!bcmolt_xgpon_onu_alarms_unpack(&this->onu_alarm, buf, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_onu_alarm_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_ONU_ALARM_ID_ONU_ALARM)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 4))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_onu_alarm_data_bounds_check(const bcmolt_xgpon_onu_onu_alarm_data *this, bcmolt_presence_mask fields_present, bcmolt_xgpon_onu_onu_alarm_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_ONU_ALARM_ID_ONU_ALARM)) != 0)
+    {
+        if (!bcmolt_xgpon_onu_alarms_bounds_check(&this->onu_alarm))
+        {
+            *failed_prop = BCMOLT_XGPON_ONU_ONU_ALARM_ID_ONU_ALARM;
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_xgpon_onu_onu_deactivation_completed_data_set_default(bcmolt_xgpon_onu_onu_deactivation_completed_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_ONU_DEACTIVATION_COMPLETED_ID_STATUS)) != 0)
+    {
+        this->status = BCMOLT_RESULT_SUCCESS;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_onu_deactivation_completed_data_pack(const bcmolt_xgpon_onu_onu_deactivation_completed_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_ONU_DEACTIVATION_COMPLETED_ID_STATUS)) != 0)
+    {
+        if (!bcmolt_result_pack(this->status, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_xgpon_onu_onu_deactivation_completed_data_get_packed_length(const bcmolt_xgpon_onu_onu_deactivation_completed_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_ONU_DEACTIVATION_COMPLETED_ID_STATUS)) != 0)
+    {
+        count += 1;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_onu_deactivation_completed_data_unpack(bcmolt_xgpon_onu_onu_deactivation_completed_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_ONU_DEACTIVATION_COMPLETED_ID_STATUS)) != 0)
+    {
+        if (!bcmolt_result_unpack(&this->status, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_onu_deactivation_completed_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_ONU_DEACTIVATION_COMPLETED_ID_STATUS)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_onu_deactivation_completed_data_bounds_check(const bcmolt_xgpon_onu_onu_deactivation_completed_data *this, bcmolt_presence_mask fields_present, bcmolt_xgpon_onu_onu_deactivation_completed_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_ONU_DEACTIVATION_COMPLETED_ID_STATUS)) != 0)
+    {
+        switch (this->status)
+        {
+            case BCMOLT_RESULT_SUCCESS:
+                break;
+            case BCMOLT_RESULT_FAIL:
+                break;
+            default:
+                *failed_prop = BCMOLT_XGPON_ONU_ONU_DEACTIVATION_COMPLETED_ID_STATUS;
+                return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_xgpon_onu_onu_disable_completed_data_set_default(bcmolt_xgpon_onu_onu_disable_completed_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_ONU_DISABLE_COMPLETED_ID_SERIAL_NUMBER)) != 0)
+    {
+        memset(this->serial_number.vendor_id, 0, sizeof(this->serial_number.vendor_id));
+        memset(this->serial_number.vendor_specific, 0, sizeof(this->serial_number.vendor_specific));
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_onu_disable_completed_data_pack(const bcmolt_xgpon_onu_onu_disable_completed_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_ONU_DISABLE_COMPLETED_ID_SERIAL_NUMBER)) != 0)
+    {
+        if (!bcmolt_serial_number_pack(&this->serial_number, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_xgpon_onu_onu_disable_completed_data_get_packed_length(const bcmolt_xgpon_onu_onu_disable_completed_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_ONU_DISABLE_COMPLETED_ID_SERIAL_NUMBER)) != 0)
+    {
+        count += 8;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_onu_disable_completed_data_unpack(bcmolt_xgpon_onu_onu_disable_completed_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_ONU_DISABLE_COMPLETED_ID_SERIAL_NUMBER)) != 0)
+    {
+        if (!bcmolt_serial_number_unpack(&this->serial_number, buf, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_onu_disable_completed_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_ONU_DISABLE_COMPLETED_ID_SERIAL_NUMBER)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_onu_disable_completed_data_bounds_check(const bcmolt_xgpon_onu_onu_disable_completed_data *this, bcmolt_presence_mask fields_present, bcmolt_xgpon_onu_onu_disable_completed_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_ONU_DISABLE_COMPLETED_ID_SERIAL_NUMBER)) != 0)
+    {
+        if (!bcmolt_serial_number_bounds_check(&this->serial_number))
+        {
+            *failed_prop = BCMOLT_XGPON_ONU_ONU_DISABLE_COMPLETED_ID_SERIAL_NUMBER;
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_xgpon_onu_onu_enable_completed_data_set_default(bcmolt_xgpon_onu_onu_enable_completed_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_ONU_ENABLE_COMPLETED_ID_SERIAL_NUMBER)) != 0)
+    {
+        memset(this->serial_number.vendor_id, 0, sizeof(this->serial_number.vendor_id));
+        memset(this->serial_number.vendor_specific, 0, sizeof(this->serial_number.vendor_specific));
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_onu_enable_completed_data_pack(const bcmolt_xgpon_onu_onu_enable_completed_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_ONU_ENABLE_COMPLETED_ID_SERIAL_NUMBER)) != 0)
+    {
+        if (!bcmolt_serial_number_pack(&this->serial_number, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_xgpon_onu_onu_enable_completed_data_get_packed_length(const bcmolt_xgpon_onu_onu_enable_completed_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_ONU_ENABLE_COMPLETED_ID_SERIAL_NUMBER)) != 0)
+    {
+        count += 8;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_onu_enable_completed_data_unpack(bcmolt_xgpon_onu_onu_enable_completed_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_ONU_ENABLE_COMPLETED_ID_SERIAL_NUMBER)) != 0)
+    {
+        if (!bcmolt_serial_number_unpack(&this->serial_number, buf, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_onu_enable_completed_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_ONU_ENABLE_COMPLETED_ID_SERIAL_NUMBER)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 8))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_onu_enable_completed_data_bounds_check(const bcmolt_xgpon_onu_onu_enable_completed_data *this, bcmolt_presence_mask fields_present, bcmolt_xgpon_onu_onu_enable_completed_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_ONU_ENABLE_COMPLETED_ID_SERIAL_NUMBER)) != 0)
+    {
+        if (!bcmolt_serial_number_bounds_check(&this->serial_number))
+        {
+            *failed_prop = BCMOLT_XGPON_ONU_ONU_ENABLE_COMPLETED_ID_SERIAL_NUMBER;
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_xgpon_onu_onu_tuning_in_completed_data_set_default(bcmolt_xgpon_onu_onu_tuning_in_completed_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_ONU_TUNING_IN_COMPLETED_ID_RESULT)) != 0)
+    {
+        this->result = BCMOLT_RESULT_SUCCESS;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_ONU_TUNING_IN_COMPLETED_ID_FAIL_REASON)) != 0)
+    {
+        this->fail_reason = BCMOLT_TUNE_IN_FAIL_REASON_NONE;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_onu_tuning_in_completed_data_pack(const bcmolt_xgpon_onu_onu_tuning_in_completed_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_ONU_TUNING_IN_COMPLETED_ID_RESULT)) != 0)
+    {
+        if (!bcmolt_result_pack(this->result, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_ONU_TUNING_IN_COMPLETED_ID_FAIL_REASON)) != 0)
+    {
+        if (!bcmolt_tune_in_fail_reason_pack(this->fail_reason, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_xgpon_onu_onu_tuning_in_completed_data_get_packed_length(const bcmolt_xgpon_onu_onu_tuning_in_completed_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_ONU_TUNING_IN_COMPLETED_ID_RESULT)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_ONU_TUNING_IN_COMPLETED_ID_FAIL_REASON)) != 0)
+    {
+        count += 1;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_onu_tuning_in_completed_data_unpack(bcmolt_xgpon_onu_onu_tuning_in_completed_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_ONU_TUNING_IN_COMPLETED_ID_RESULT)) != 0)
+    {
+        if (!bcmolt_result_unpack(&this->result, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_ONU_TUNING_IN_COMPLETED_ID_FAIL_REASON)) != 0)
+    {
+        if (!bcmolt_tune_in_fail_reason_unpack(&this->fail_reason, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_onu_tuning_in_completed_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_ONU_TUNING_IN_COMPLETED_ID_RESULT)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_ONU_TUNING_IN_COMPLETED_ID_FAIL_REASON)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_onu_tuning_in_completed_data_bounds_check(const bcmolt_xgpon_onu_onu_tuning_in_completed_data *this, bcmolt_presence_mask fields_present, bcmolt_xgpon_onu_onu_tuning_in_completed_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_ONU_TUNING_IN_COMPLETED_ID_RESULT)) != 0)
+    {
+        switch (this->result)
+        {
+            case BCMOLT_RESULT_SUCCESS:
+                break;
+            case BCMOLT_RESULT_FAIL:
+                break;
+            default:
+                *failed_prop = BCMOLT_XGPON_ONU_ONU_TUNING_IN_COMPLETED_ID_RESULT;
+                return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_ONU_TUNING_IN_COMPLETED_ID_FAIL_REASON)) != 0)
+    {
+        switch (this->fail_reason)
+        {
+            case BCMOLT_TUNE_IN_FAIL_REASON_NONE:
+                break;
+            case BCMOLT_TUNE_IN_FAIL_REASON_NO_TUNING_RESPONSE_PLOAM_RECEIVED:
+                break;
+            case BCMOLT_TUNE_IN_FAIL_REASON_ONU_ACTIVATION_FAILED:
+                break;
+            default:
+                *failed_prop = BCMOLT_XGPON_ONU_ONU_TUNING_IN_COMPLETED_ID_FAIL_REASON;
+                return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_xgpon_onu_onu_tuning_out_completed_data_set_default(bcmolt_xgpon_onu_onu_tuning_out_completed_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_ONU_TUNING_OUT_COMPLETED_ID_RESULT)) != 0)
+    {
+        this->result = BCMOLT_RESULT_SUCCESS;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_ONU_TUNING_OUT_COMPLETED_ID_FAIL_REASON)) != 0)
+    {
+        this->fail_reason = BCMOLT_TUNE_OUT_FAIL_REASON_NONE;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_onu_tuning_out_completed_data_pack(const bcmolt_xgpon_onu_onu_tuning_out_completed_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_ONU_TUNING_OUT_COMPLETED_ID_RESULT)) != 0)
+    {
+        if (!bcmolt_result_pack(this->result, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_ONU_TUNING_OUT_COMPLETED_ID_FAIL_REASON)) != 0)
+    {
+        if (!bcmolt_tune_out_fail_reason_pack(this->fail_reason, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_xgpon_onu_onu_tuning_out_completed_data_get_packed_length(const bcmolt_xgpon_onu_onu_tuning_out_completed_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_ONU_TUNING_OUT_COMPLETED_ID_RESULT)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_ONU_TUNING_OUT_COMPLETED_ID_FAIL_REASON)) != 0)
+    {
+        count += 1;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_onu_tuning_out_completed_data_unpack(bcmolt_xgpon_onu_onu_tuning_out_completed_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_ONU_TUNING_OUT_COMPLETED_ID_RESULT)) != 0)
+    {
+        if (!bcmolt_result_unpack(&this->result, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_ONU_TUNING_OUT_COMPLETED_ID_FAIL_REASON)) != 0)
+    {
+        if (!bcmolt_tune_out_fail_reason_unpack(&this->fail_reason, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_onu_tuning_out_completed_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_ONU_TUNING_OUT_COMPLETED_ID_RESULT)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_ONU_TUNING_OUT_COMPLETED_ID_FAIL_REASON)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_onu_tuning_out_completed_data_bounds_check(const bcmolt_xgpon_onu_onu_tuning_out_completed_data *this, bcmolt_presence_mask fields_present, bcmolt_xgpon_onu_onu_tuning_out_completed_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_ONU_TUNING_OUT_COMPLETED_ID_RESULT)) != 0)
+    {
+        switch (this->result)
+        {
+            case BCMOLT_RESULT_SUCCESS:
+                break;
+            case BCMOLT_RESULT_FAIL:
+                break;
+            default:
+                *failed_prop = BCMOLT_XGPON_ONU_ONU_TUNING_OUT_COMPLETED_ID_RESULT;
+                return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_ONU_TUNING_OUT_COMPLETED_ID_FAIL_REASON)) != 0)
+    {
+        switch (this->fail_reason)
+        {
+            case BCMOLT_TUNE_OUT_FAIL_REASON_NONE:
+                break;
+            case BCMOLT_TUNE_OUT_FAIL_REASON_NACK_PLOAM_RECEIVED:
+                break;
+            case BCMOLT_TUNE_OUT_FAIL_REASON_NO_TUNING_RESPONSE_PLOAM_RECEIVED:
+                break;
+            case BCMOLT_TUNE_OUT_FAIL_REASON_TSOURCE_TIMEOUT:
+                break;
+            case BCMOLT_TUNE_OUT_FAIL_REASON_ROLLBACK_REQUEST:
+                break;
+            default:
+                *failed_prop = BCMOLT_XGPON_ONU_ONU_TUNING_OUT_COMPLETED_ID_FAIL_REASON;
+                return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_xgpon_onu_possible_drift_data_set_default(bcmolt_xgpon_onu_possible_drift_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_POSSIBLE_DRIFT_ID_ALARM_STATUS)) != 0)
+    {
+        this->alarm_status = BCMOLT_STATUS_OFF;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_POSSIBLE_DRIFT_ID_ESTIMATED_DRIFT)) != 0)
+    {
+        this->estimated_drift = 0;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_possible_drift_data_pack(const bcmolt_xgpon_onu_possible_drift_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_POSSIBLE_DRIFT_ID_ALARM_STATUS)) != 0)
+    {
+        if (!bcmolt_status_pack(this->alarm_status, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_POSSIBLE_DRIFT_ID_ESTIMATED_DRIFT)) != 0)
+    {
+        if (!bcmolt_buf_write_s32(buf, this->estimated_drift))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_xgpon_onu_possible_drift_data_get_packed_length(const bcmolt_xgpon_onu_possible_drift_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_POSSIBLE_DRIFT_ID_ALARM_STATUS)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_POSSIBLE_DRIFT_ID_ESTIMATED_DRIFT)) != 0)
+    {
+        count += 4;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_possible_drift_data_unpack(bcmolt_xgpon_onu_possible_drift_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_POSSIBLE_DRIFT_ID_ALARM_STATUS)) != 0)
+    {
+        if (!bcmolt_status_unpack(&this->alarm_status, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_POSSIBLE_DRIFT_ID_ESTIMATED_DRIFT)) != 0)
+    {
+        if (!bcmolt_buf_read_s32(buf, &this->estimated_drift))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_possible_drift_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_POSSIBLE_DRIFT_ID_ALARM_STATUS)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_POSSIBLE_DRIFT_ID_ESTIMATED_DRIFT)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 4))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_possible_drift_data_bounds_check(const bcmolt_xgpon_onu_possible_drift_data *this, bcmolt_presence_mask fields_present, bcmolt_xgpon_onu_possible_drift_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_POSSIBLE_DRIFT_ID_ALARM_STATUS)) != 0)
+    {
+        switch (this->alarm_status)
+        {
+            case BCMOLT_STATUS_OFF:
+                break;
+            case BCMOLT_STATUS_ON:
+                break;
+            case BCMOLT_STATUS_NO_CHANGE:
+                break;
+            default:
+                *failed_prop = BCMOLT_XGPON_ONU_POSSIBLE_DRIFT_ID_ALARM_STATUS;
+                return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_xgpon_onu_power_consumption_report_data_set_default(bcmolt_xgpon_onu_power_consumption_report_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_POWER_CONSUMPTION_REPORT_ID_POWER_CONSUMPTION_REPORT)) != 0)
+    {
+        memset(this->power_consumption_report.arr, 0, sizeof(this->power_consumption_report.arr));
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_power_consumption_report_data_pack(const bcmolt_xgpon_onu_power_consumption_report_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_POWER_CONSUMPTION_REPORT_ID_POWER_CONSUMPTION_REPORT)) != 0)
+    {
+        if (!bcmolt_arr_power_consumption_channel_report_8_pack(&this->power_consumption_report, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_xgpon_onu_power_consumption_report_data_get_packed_length(const bcmolt_xgpon_onu_power_consumption_report_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_POWER_CONSUMPTION_REPORT_ID_POWER_CONSUMPTION_REPORT)) != 0)
+    {
+        count += 32;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_power_consumption_report_data_unpack(bcmolt_xgpon_onu_power_consumption_report_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_POWER_CONSUMPTION_REPORT_ID_POWER_CONSUMPTION_REPORT)) != 0)
+    {
+        if (!bcmolt_arr_power_consumption_channel_report_8_unpack(&this->power_consumption_report, buf, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_power_consumption_report_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_POWER_CONSUMPTION_REPORT_ID_POWER_CONSUMPTION_REPORT)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 32))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_power_consumption_report_data_bounds_check(const bcmolt_xgpon_onu_power_consumption_report_data *this, bcmolt_presence_mask fields_present, bcmolt_xgpon_onu_power_consumption_report_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_POWER_CONSUMPTION_REPORT_ID_POWER_CONSUMPTION_REPORT)) != 0)
+    {
+        if (!bcmolt_arr_power_consumption_channel_report_8_bounds_check(&this->power_consumption_report))
+        {
+            *failed_prop = BCMOLT_XGPON_ONU_POWER_CONSUMPTION_REPORT_ID_POWER_CONSUMPTION_REPORT;
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_xgpon_onu_power_level_report_data_set_default(bcmolt_xgpon_onu_power_level_report_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_POWER_LEVEL_REPORT_ID_ATTENUATION)) != 0)
+    {
+        this->attenuation = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_POWER_LEVEL_REPORT_ID_POWER_LEVELLING_CAPABILITY)) != 0)
+    {
+        this->power_levelling_capability = 0;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_power_level_report_data_pack(const bcmolt_xgpon_onu_power_level_report_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_POWER_LEVEL_REPORT_ID_ATTENUATION)) != 0)
+    {
+        if (!bcmolt_buf_write_u8(buf, this->attenuation))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_POWER_LEVEL_REPORT_ID_POWER_LEVELLING_CAPABILITY)) != 0)
+    {
+        if (!bcmolt_buf_write_u8(buf, this->power_levelling_capability))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_xgpon_onu_power_level_report_data_get_packed_length(const bcmolt_xgpon_onu_power_level_report_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_POWER_LEVEL_REPORT_ID_ATTENUATION)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_POWER_LEVEL_REPORT_ID_POWER_LEVELLING_CAPABILITY)) != 0)
+    {
+        count += 1;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_power_level_report_data_unpack(bcmolt_xgpon_onu_power_level_report_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_POWER_LEVEL_REPORT_ID_ATTENUATION)) != 0)
+    {
+        if (!bcmolt_buf_read_u8(buf, &this->attenuation))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_POWER_LEVEL_REPORT_ID_POWER_LEVELLING_CAPABILITY)) != 0)
+    {
+        if (!bcmolt_buf_read_u8(buf, &this->power_levelling_capability))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_power_level_report_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_POWER_LEVEL_REPORT_ID_ATTENUATION)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_POWER_LEVEL_REPORT_ID_POWER_LEVELLING_CAPABILITY)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_power_level_report_data_bounds_check(const bcmolt_xgpon_onu_power_level_report_data *this, bcmolt_presence_mask fields_present, bcmolt_xgpon_onu_power_level_report_id *failed_prop)
+{
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_xgpon_onu_power_management_state_change_data_set_default(bcmolt_xgpon_onu_power_management_state_change_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_POWER_MANAGEMENT_STATE_CHANGE_ID_OLD_STATE)) != 0)
+    {
+        this->old_state = BCMOLT_ONU_STATE_NOT_CONFIGURED;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_POWER_MANAGEMENT_STATE_CHANGE_ID_NEW_STATE)) != 0)
+    {
+        this->new_state = BCMOLT_ONU_STATE_NOT_CONFIGURED;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_POWER_MANAGEMENT_STATE_CHANGE_ID_REASON)) != 0)
+    {
+        this->reason = BCMOLT_POWER_MANAGEMENT_TRANSITION_REASON_POWER_MANAGEMENT_ENABLED;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_power_management_state_change_data_pack(const bcmolt_xgpon_onu_power_management_state_change_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_POWER_MANAGEMENT_STATE_CHANGE_ID_OLD_STATE)) != 0)
+    {
+        if (!bcmolt_onu_state_pack(this->old_state, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_POWER_MANAGEMENT_STATE_CHANGE_ID_NEW_STATE)) != 0)
+    {
+        if (!bcmolt_onu_state_pack(this->new_state, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_POWER_MANAGEMENT_STATE_CHANGE_ID_REASON)) != 0)
+    {
+        if (!bcmolt_power_management_transition_reason_pack(this->reason, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_xgpon_onu_power_management_state_change_data_get_packed_length(const bcmolt_xgpon_onu_power_management_state_change_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_POWER_MANAGEMENT_STATE_CHANGE_ID_OLD_STATE)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_POWER_MANAGEMENT_STATE_CHANGE_ID_NEW_STATE)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_POWER_MANAGEMENT_STATE_CHANGE_ID_REASON)) != 0)
+    {
+        count += 1;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_power_management_state_change_data_unpack(bcmolt_xgpon_onu_power_management_state_change_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_POWER_MANAGEMENT_STATE_CHANGE_ID_OLD_STATE)) != 0)
+    {
+        if (!bcmolt_onu_state_unpack(&this->old_state, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_POWER_MANAGEMENT_STATE_CHANGE_ID_NEW_STATE)) != 0)
+    {
+        if (!bcmolt_onu_state_unpack(&this->new_state, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_POWER_MANAGEMENT_STATE_CHANGE_ID_REASON)) != 0)
+    {
+        if (!bcmolt_power_management_transition_reason_unpack(&this->reason, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_power_management_state_change_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_POWER_MANAGEMENT_STATE_CHANGE_ID_OLD_STATE)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_POWER_MANAGEMENT_STATE_CHANGE_ID_NEW_STATE)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_POWER_MANAGEMENT_STATE_CHANGE_ID_REASON)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_power_management_state_change_data_bounds_check(const bcmolt_xgpon_onu_power_management_state_change_data *this, bcmolt_presence_mask fields_present, bcmolt_xgpon_onu_power_management_state_change_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_POWER_MANAGEMENT_STATE_CHANGE_ID_OLD_STATE)) != 0)
+    {
+        switch (this->old_state)
+        {
+            case BCMOLT_ONU_STATE_NOT_CONFIGURED:
+                break;
+            case BCMOLT_ONU_STATE_INACTIVE:
+                break;
+            case BCMOLT_ONU_STATE_ACTIVE:
+                break;
+            case BCMOLT_ONU_STATE_ACTIVE_STANDBY:
+                break;
+            case BCMOLT_ONU_STATE_DISABLED:
+                break;
+            case BCMOLT_ONU_STATE_AWAKE_FREE:
+                break;
+            case BCMOLT_ONU_STATE_PROCESSING:
+                break;
+            case BCMOLT_ONU_STATE_LOW_POWER_DOZE:
+                break;
+            case BCMOLT_ONU_STATE_LOW_POWER_SLEEP:
+                break;
+            case BCMOLT_ONU_STATE_LOW_POWER_WATCH:
+                break;
+            case BCMOLT_ONU_STATE_UNAWARE:
+                break;
+            default:
+                *failed_prop = BCMOLT_XGPON_ONU_POWER_MANAGEMENT_STATE_CHANGE_ID_OLD_STATE;
+                return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_POWER_MANAGEMENT_STATE_CHANGE_ID_NEW_STATE)) != 0)
+    {
+        switch (this->new_state)
+        {
+            case BCMOLT_ONU_STATE_NOT_CONFIGURED:
+                break;
+            case BCMOLT_ONU_STATE_INACTIVE:
+                break;
+            case BCMOLT_ONU_STATE_ACTIVE:
+                break;
+            case BCMOLT_ONU_STATE_ACTIVE_STANDBY:
+                break;
+            case BCMOLT_ONU_STATE_DISABLED:
+                break;
+            case BCMOLT_ONU_STATE_AWAKE_FREE:
+                break;
+            case BCMOLT_ONU_STATE_PROCESSING:
+                break;
+            case BCMOLT_ONU_STATE_LOW_POWER_DOZE:
+                break;
+            case BCMOLT_ONU_STATE_LOW_POWER_SLEEP:
+                break;
+            case BCMOLT_ONU_STATE_LOW_POWER_WATCH:
+                break;
+            case BCMOLT_ONU_STATE_UNAWARE:
+                break;
+            default:
+                *failed_prop = BCMOLT_XGPON_ONU_POWER_MANAGEMENT_STATE_CHANGE_ID_NEW_STATE;
+                return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_POWER_MANAGEMENT_STATE_CHANGE_ID_REASON)) != 0)
+    {
+        switch (this->reason)
+        {
+            case BCMOLT_POWER_MANAGEMENT_TRANSITION_REASON_POWER_MANAGEMENT_ENABLED:
+                break;
+            case BCMOLT_POWER_MANAGEMENT_TRANSITION_REASON_POWER_MANAGEMENT_DISABLED:
+                break;
+            case BCMOLT_POWER_MANAGEMENT_TRANSITION_REASON_SLEEP_REQUEST_AWAKE:
+                break;
+            case BCMOLT_POWER_MANAGEMENT_TRANSITION_REASON_SLEEP_REQUEST_DOZE:
+                break;
+            case BCMOLT_POWER_MANAGEMENT_TRANSITION_REASON_SLEEP_REQUEST_SLEEP:
+                break;
+            case BCMOLT_POWER_MANAGEMENT_TRANSITION_REASON_SLEEP_REQUEST_WATCH:
+                break;
+            case BCMOLT_POWER_MANAGEMENT_TRANSITION_REASON_TERI_EXPIRED:
+                break;
+            case BCMOLT_POWER_MANAGEMENT_TRANSITION_REASON_TALERTED_EXPIRED:
+                break;
+            case BCMOLT_POWER_MANAGEMENT_TRANSITION_REASON_ALARM:
+                break;
+            default:
+                *failed_prop = BCMOLT_XGPON_ONU_POWER_MANAGEMENT_STATE_CHANGE_ID_REASON;
+                return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_xgpon_onu_pqsi_data_set_default(bcmolt_xgpon_onu_pqsi_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_PQSI_ID_ALARM_STATUS)) != 0)
+    {
+        this->alarm_status = BCMOLT_STATUS_OFF;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_pqsi_data_pack(const bcmolt_xgpon_onu_pqsi_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_PQSI_ID_ALARM_STATUS)) != 0)
+    {
+        if (!bcmolt_status_pack(this->alarm_status, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_xgpon_onu_pqsi_data_get_packed_length(const bcmolt_xgpon_onu_pqsi_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_PQSI_ID_ALARM_STATUS)) != 0)
+    {
+        count += 1;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_pqsi_data_unpack(bcmolt_xgpon_onu_pqsi_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_PQSI_ID_ALARM_STATUS)) != 0)
+    {
+        if (!bcmolt_status_unpack(&this->alarm_status, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_pqsi_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_PQSI_ID_ALARM_STATUS)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_pqsi_data_bounds_check(const bcmolt_xgpon_onu_pqsi_data *this, bcmolt_presence_mask fields_present, bcmolt_xgpon_onu_pqsi_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_PQSI_ID_ALARM_STATUS)) != 0)
+    {
+        switch (this->alarm_status)
+        {
+            case BCMOLT_STATUS_OFF:
+                break;
+            case BCMOLT_STATUS_ON:
+                break;
+            case BCMOLT_STATUS_NO_CHANGE:
+                break;
+            default:
+                *failed_prop = BCMOLT_XGPON_ONU_PQSI_ID_ALARM_STATUS;
+                return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_xgpon_onu_ranging_completed_data_set_default(bcmolt_xgpon_onu_ranging_completed_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_RANGING_COMPLETED_ID_STATUS)) != 0)
+    {
+        this->status = BCMOLT_RESULT_SUCCESS;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_RANGING_COMPLETED_ID_FAIL_REASON)) != 0)
+    {
+        this->fail_reason = BCMOLT_RANGING_FAIL_REASON_NONE;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_RANGING_COMPLETED_ID_EQD)) != 0)
+    {
+        this->eqd = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_RANGING_COMPLETED_ID_NUMBER_OF_PLOAMS)) != 0)
+    {
+        this->number_of_ploams = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_RANGING_COMPLETED_ID_POWER_LEVEL)) != 0)
+    {
+        this->power_level = 0;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_ranging_completed_data_pack(const bcmolt_xgpon_onu_ranging_completed_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_RANGING_COMPLETED_ID_STATUS)) != 0)
+    {
+        if (!bcmolt_result_pack(this->status, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_RANGING_COMPLETED_ID_FAIL_REASON)) != 0)
+    {
+        if (!bcmolt_ranging_fail_reason_pack(this->fail_reason, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_RANGING_COMPLETED_ID_EQD)) != 0)
+    {
+        if (!bcmolt_buf_write_u32(buf, this->eqd))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_RANGING_COMPLETED_ID_NUMBER_OF_PLOAMS)) != 0)
+    {
+        if (!bcmolt_buf_write_u8(buf, this->number_of_ploams))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_RANGING_COMPLETED_ID_POWER_LEVEL)) != 0)
+    {
+        if (!bcmolt_buf_write_u8(buf, this->power_level))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_xgpon_onu_ranging_completed_data_get_packed_length(const bcmolt_xgpon_onu_ranging_completed_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_RANGING_COMPLETED_ID_STATUS)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_RANGING_COMPLETED_ID_FAIL_REASON)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_RANGING_COMPLETED_ID_EQD)) != 0)
+    {
+        count += 4;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_RANGING_COMPLETED_ID_NUMBER_OF_PLOAMS)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_RANGING_COMPLETED_ID_POWER_LEVEL)) != 0)
+    {
+        count += 1;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_ranging_completed_data_unpack(bcmolt_xgpon_onu_ranging_completed_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_RANGING_COMPLETED_ID_STATUS)) != 0)
+    {
+        if (!bcmolt_result_unpack(&this->status, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_RANGING_COMPLETED_ID_FAIL_REASON)) != 0)
+    {
+        if (!bcmolt_ranging_fail_reason_unpack(&this->fail_reason, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_RANGING_COMPLETED_ID_EQD)) != 0)
+    {
+        if (!bcmolt_buf_read_u32(buf, &this->eqd))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_RANGING_COMPLETED_ID_NUMBER_OF_PLOAMS)) != 0)
+    {
+        if (!bcmolt_buf_read_u8(buf, &this->number_of_ploams))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_RANGING_COMPLETED_ID_POWER_LEVEL)) != 0)
+    {
+        if (!bcmolt_buf_read_u8(buf, &this->power_level))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_ranging_completed_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_RANGING_COMPLETED_ID_STATUS)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_RANGING_COMPLETED_ID_FAIL_REASON)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_RANGING_COMPLETED_ID_EQD)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 4))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_RANGING_COMPLETED_ID_NUMBER_OF_PLOAMS)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_RANGING_COMPLETED_ID_POWER_LEVEL)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_ranging_completed_data_bounds_check(const bcmolt_xgpon_onu_ranging_completed_data *this, bcmolt_presence_mask fields_present, bcmolt_xgpon_onu_ranging_completed_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_RANGING_COMPLETED_ID_STATUS)) != 0)
+    {
+        switch (this->status)
+        {
+            case BCMOLT_RESULT_SUCCESS:
+                break;
+            case BCMOLT_RESULT_FAIL:
+                break;
+            default:
+                *failed_prop = BCMOLT_XGPON_ONU_RANGING_COMPLETED_ID_STATUS;
+                return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_RANGING_COMPLETED_ID_FAIL_REASON)) != 0)
+    {
+        switch (this->fail_reason)
+        {
+            case BCMOLT_RANGING_FAIL_REASON_NONE:
+                break;
+            case BCMOLT_RANGING_FAIL_REASON_RANGING_ACK_TIMEOUT:
+                break;
+            case BCMOLT_RANGING_FAIL_REASON_PLOAM_DATA_MISMATCH:
+                break;
+            case BCMOLT_RANGING_FAIL_REASON_PLOAM_TYPE_MISMATCH:
+                break;
+            case BCMOLT_RANGING_FAIL_REASON_PLOAM_ONU_ID_MISMATCH:
+                break;
+            case BCMOLT_RANGING_FAIL_REASON_DRIFT_EXCEEDED:
+                break;
+            case BCMOLT_RANGING_FAIL_REASON_NO_PLOAM_RECEIVED:
+                break;
+            case BCMOLT_RANGING_FAIL_REASON_LOS:
+                break;
+            case BCMOLT_RANGING_FAIL_REASON_ALARMS:
+                break;
+            default:
+                *failed_prop = BCMOLT_XGPON_ONU_RANGING_COMPLETED_ID_FAIL_REASON;
+                return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_xgpon_onu_registration_id_data_set_default(bcmolt_xgpon_onu_registration_id_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_REGISTRATION_ID_ID_REGISTRATION_ID)) != 0)
+    {
+        memset(this->registration_id.arr, 0, sizeof(this->registration_id.arr));
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_REGISTRATION_ID_ID_REQUEST_REGISTRATION_STATUS)) != 0)
+    {
+        this->request_registration_status = BCMOLT_RESULT_SUCCESS;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_REGISTRATION_ID_ID_REQUEST_REGISTRATION_FAIL_REASON)) != 0)
+    {
+        this->request_registration_fail_reason = BCMOLT_REQUEST_REGISTRATION_FAIL_REASON_NONE;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_registration_id_data_pack(const bcmolt_xgpon_onu_registration_id_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_REGISTRATION_ID_ID_REGISTRATION_ID)) != 0)
+    {
+        if (!bcmolt_arr_u8_36_pack(&this->registration_id, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_REGISTRATION_ID_ID_REQUEST_REGISTRATION_STATUS)) != 0)
+    {
+        if (!bcmolt_result_pack(this->request_registration_status, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_REGISTRATION_ID_ID_REQUEST_REGISTRATION_FAIL_REASON)) != 0)
+    {
+        if (!bcmolt_request_registration_fail_reason_pack(this->request_registration_fail_reason, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_xgpon_onu_registration_id_data_get_packed_length(const bcmolt_xgpon_onu_registration_id_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_REGISTRATION_ID_ID_REGISTRATION_ID)) != 0)
+    {
+        count += 36;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_REGISTRATION_ID_ID_REQUEST_REGISTRATION_STATUS)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_REGISTRATION_ID_ID_REQUEST_REGISTRATION_FAIL_REASON)) != 0)
+    {
+        count += 1;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_registration_id_data_unpack(bcmolt_xgpon_onu_registration_id_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_REGISTRATION_ID_ID_REGISTRATION_ID)) != 0)
+    {
+        if (!bcmolt_arr_u8_36_unpack(&this->registration_id, buf, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_REGISTRATION_ID_ID_REQUEST_REGISTRATION_STATUS)) != 0)
+    {
+        if (!bcmolt_result_unpack(&this->request_registration_status, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_REGISTRATION_ID_ID_REQUEST_REGISTRATION_FAIL_REASON)) != 0)
+    {
+        if (!bcmolt_request_registration_fail_reason_unpack(&this->request_registration_fail_reason, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_registration_id_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_REGISTRATION_ID_ID_REGISTRATION_ID)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 36))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_REGISTRATION_ID_ID_REQUEST_REGISTRATION_STATUS)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_REGISTRATION_ID_ID_REQUEST_REGISTRATION_FAIL_REASON)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_registration_id_data_bounds_check(const bcmolt_xgpon_onu_registration_id_data *this, bcmolt_presence_mask fields_present, bcmolt_xgpon_onu_registration_id_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_REGISTRATION_ID_ID_REGISTRATION_ID)) != 0)
+    {
+        if (!bcmolt_arr_u8_36_bounds_check(&this->registration_id))
+        {
+            *failed_prop = BCMOLT_XGPON_ONU_REGISTRATION_ID_ID_REGISTRATION_ID;
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_REGISTRATION_ID_ID_REQUEST_REGISTRATION_STATUS)) != 0)
+    {
+        switch (this->request_registration_status)
+        {
+            case BCMOLT_RESULT_SUCCESS:
+                break;
+            case BCMOLT_RESULT_FAIL:
+                break;
+            default:
+                *failed_prop = BCMOLT_XGPON_ONU_REGISTRATION_ID_ID_REQUEST_REGISTRATION_STATUS;
+                return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_REGISTRATION_ID_ID_REQUEST_REGISTRATION_FAIL_REASON)) != 0)
+    {
+        switch (this->request_registration_fail_reason)
+        {
+            case BCMOLT_REQUEST_REGISTRATION_FAIL_REASON_NONE:
+                break;
+            case BCMOLT_REQUEST_REGISTRATION_FAIL_REASON_REGISTRATION_PLOAM_TIMEOUT:
+                break;
+            case BCMOLT_REQUEST_REGISTRATION_FAIL_REASON_ONU_ALARM:
+                break;
+            case BCMOLT_REQUEST_REGISTRATION_FAIL_REASON_DEACTIVATION:
+                break;
+            case BCMOLT_REQUEST_REGISTRATION_FAIL_REASON_DISABLE:
+                break;
+            default:
+                *failed_prop = BCMOLT_XGPON_ONU_REGISTRATION_ID_ID_REQUEST_REGISTRATION_FAIL_REASON;
+                return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_xgpon_onu_rssi_measurement_completed_data_set_default(bcmolt_xgpon_onu_rssi_measurement_completed_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_RSSI_MEASUREMENT_COMPLETED_ID_STATUS)) != 0)
+    {
+        this->status = BCMOLT_RESULT_SUCCESS;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_RSSI_MEASUREMENT_COMPLETED_ID_FAIL_REASON)) != 0)
+    {
+        this->fail_reason = BCMOLT_RSSI_MEASUREMENT_FAIL_REASON_NONE;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_rssi_measurement_completed_data_pack(const bcmolt_xgpon_onu_rssi_measurement_completed_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_RSSI_MEASUREMENT_COMPLETED_ID_STATUS)) != 0)
+    {
+        if (!bcmolt_result_pack(this->status, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_RSSI_MEASUREMENT_COMPLETED_ID_FAIL_REASON)) != 0)
+    {
+        if (!bcmolt_rssi_measurement_fail_reason_pack(this->fail_reason, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_xgpon_onu_rssi_measurement_completed_data_get_packed_length(const bcmolt_xgpon_onu_rssi_measurement_completed_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_RSSI_MEASUREMENT_COMPLETED_ID_STATUS)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_RSSI_MEASUREMENT_COMPLETED_ID_FAIL_REASON)) != 0)
+    {
+        count += 1;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_rssi_measurement_completed_data_unpack(bcmolt_xgpon_onu_rssi_measurement_completed_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_RSSI_MEASUREMENT_COMPLETED_ID_STATUS)) != 0)
+    {
+        if (!bcmolt_result_unpack(&this->status, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_RSSI_MEASUREMENT_COMPLETED_ID_FAIL_REASON)) != 0)
+    {
+        if (!bcmolt_rssi_measurement_fail_reason_unpack(&this->fail_reason, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_rssi_measurement_completed_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_RSSI_MEASUREMENT_COMPLETED_ID_STATUS)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_RSSI_MEASUREMENT_COMPLETED_ID_FAIL_REASON)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_rssi_measurement_completed_data_bounds_check(const bcmolt_xgpon_onu_rssi_measurement_completed_data *this, bcmolt_presence_mask fields_present, bcmolt_xgpon_onu_rssi_measurement_completed_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_RSSI_MEASUREMENT_COMPLETED_ID_STATUS)) != 0)
+    {
+        switch (this->status)
+        {
+            case BCMOLT_RESULT_SUCCESS:
+                break;
+            case BCMOLT_RESULT_FAIL:
+                break;
+            default:
+                *failed_prop = BCMOLT_XGPON_ONU_RSSI_MEASUREMENT_COMPLETED_ID_STATUS;
+                return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_RSSI_MEASUREMENT_COMPLETED_ID_FAIL_REASON)) != 0)
+    {
+        switch (this->fail_reason)
+        {
+            case BCMOLT_RSSI_MEASUREMENT_FAIL_REASON_NONE:
+                break;
+            case BCMOLT_RSSI_MEASUREMENT_FAIL_REASON_NO_DELIMITER:
+                break;
+            case BCMOLT_RSSI_MEASUREMENT_FAIL_REASON_NO_ACCESS:
+                break;
+            default:
+                *failed_prop = BCMOLT_XGPON_ONU_RSSI_MEASUREMENT_COMPLETED_ID_FAIL_REASON;
+                return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_xgpon_onu_sdi_data_set_default(bcmolt_xgpon_onu_sdi_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_SDI_ID_ALARM_STATUS)) != 0)
+    {
+        this->alarm_status = BCMOLT_STATUS_OFF;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_SDI_ID_BER)) != 0)
+    {
+        this->ber = 0;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_sdi_data_pack(const bcmolt_xgpon_onu_sdi_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_SDI_ID_ALARM_STATUS)) != 0)
+    {
+        if (!bcmolt_status_pack(this->alarm_status, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_SDI_ID_BER)) != 0)
+    {
+        if (!bcmolt_buf_write_u32(buf, this->ber))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_xgpon_onu_sdi_data_get_packed_length(const bcmolt_xgpon_onu_sdi_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_SDI_ID_ALARM_STATUS)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_SDI_ID_BER)) != 0)
+    {
+        count += 4;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_sdi_data_unpack(bcmolt_xgpon_onu_sdi_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_SDI_ID_ALARM_STATUS)) != 0)
+    {
+        if (!bcmolt_status_unpack(&this->alarm_status, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_SDI_ID_BER)) != 0)
+    {
+        if (!bcmolt_buf_read_u32(buf, &this->ber))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_sdi_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_SDI_ID_ALARM_STATUS)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_SDI_ID_BER)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 4))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_sdi_data_bounds_check(const bcmolt_xgpon_onu_sdi_data *this, bcmolt_presence_mask fields_present, bcmolt_xgpon_onu_sdi_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_SDI_ID_ALARM_STATUS)) != 0)
+    {
+        switch (this->alarm_status)
+        {
+            case BCMOLT_STATUS_OFF:
+                break;
+            case BCMOLT_STATUS_ON:
+                break;
+            case BCMOLT_STATUS_NO_CHANGE:
+                break;
+            default:
+                *failed_prop = BCMOLT_XGPON_ONU_SDI_ID_ALARM_STATUS;
+                return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_xgpon_onu_secure_mutual_authentication_failure_data_set_default(bcmolt_xgpon_onu_secure_mutual_authentication_failure_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_SECURE_MUTUAL_AUTHENTICATION_FAILURE_ID_STATUS)) != 0)
+    {
+        this->status = BCMOLT_RESULT_SUCCESS;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_SECURE_MUTUAL_AUTHENTICATION_FAILURE_ID_FAIL_REASON)) != 0)
+    {
+        this->fail_reason = BCMOLT_SECURE_MUTUAL_AUTHENTICATION_FAIL_REASON_TIMEOUT;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_secure_mutual_authentication_failure_data_pack(const bcmolt_xgpon_onu_secure_mutual_authentication_failure_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_SECURE_MUTUAL_AUTHENTICATION_FAILURE_ID_STATUS)) != 0)
+    {
+        if (!bcmolt_result_pack(this->status, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_SECURE_MUTUAL_AUTHENTICATION_FAILURE_ID_FAIL_REASON)) != 0)
+    {
+        if (!bcmolt_secure_mutual_authentication_fail_reason_pack(this->fail_reason, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_xgpon_onu_secure_mutual_authentication_failure_data_get_packed_length(const bcmolt_xgpon_onu_secure_mutual_authentication_failure_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_SECURE_MUTUAL_AUTHENTICATION_FAILURE_ID_STATUS)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_SECURE_MUTUAL_AUTHENTICATION_FAILURE_ID_FAIL_REASON)) != 0)
+    {
+        count += 1;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_secure_mutual_authentication_failure_data_unpack(bcmolt_xgpon_onu_secure_mutual_authentication_failure_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_SECURE_MUTUAL_AUTHENTICATION_FAILURE_ID_STATUS)) != 0)
+    {
+        if (!bcmolt_result_unpack(&this->status, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_SECURE_MUTUAL_AUTHENTICATION_FAILURE_ID_FAIL_REASON)) != 0)
+    {
+        if (!bcmolt_secure_mutual_authentication_fail_reason_unpack(&this->fail_reason, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_secure_mutual_authentication_failure_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_SECURE_MUTUAL_AUTHENTICATION_FAILURE_ID_STATUS)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_SECURE_MUTUAL_AUTHENTICATION_FAILURE_ID_FAIL_REASON)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_secure_mutual_authentication_failure_data_bounds_check(const bcmolt_xgpon_onu_secure_mutual_authentication_failure_data *this, bcmolt_presence_mask fields_present, bcmolt_xgpon_onu_secure_mutual_authentication_failure_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_SECURE_MUTUAL_AUTHENTICATION_FAILURE_ID_STATUS)) != 0)
+    {
+        switch (this->status)
+        {
+            case BCMOLT_RESULT_SUCCESS:
+                break;
+            case BCMOLT_RESULT_FAIL:
+                break;
+            default:
+                *failed_prop = BCMOLT_XGPON_ONU_SECURE_MUTUAL_AUTHENTICATION_FAILURE_ID_STATUS;
+                return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_SECURE_MUTUAL_AUTHENTICATION_FAILURE_ID_FAIL_REASON)) != 0)
+    {
+        switch (this->fail_reason)
+        {
+            case BCMOLT_SECURE_MUTUAL_AUTHENTICATION_FAIL_REASON_TIMEOUT:
+                break;
+            default:
+                *failed_prop = BCMOLT_XGPON_ONU_SECURE_MUTUAL_AUTHENTICATION_FAILURE_ID_FAIL_REASON;
+                return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_xgpon_onu_sfi_data_set_default(bcmolt_xgpon_onu_sfi_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_SFI_ID_ALARM_STATUS)) != 0)
+    {
+        this->alarm_status = BCMOLT_STATUS_OFF;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_SFI_ID_BER)) != 0)
+    {
+        this->ber = 0;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_sfi_data_pack(const bcmolt_xgpon_onu_sfi_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_SFI_ID_ALARM_STATUS)) != 0)
+    {
+        if (!bcmolt_status_pack(this->alarm_status, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_SFI_ID_BER)) != 0)
+    {
+        if (!bcmolt_buf_write_u32(buf, this->ber))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_xgpon_onu_sfi_data_get_packed_length(const bcmolt_xgpon_onu_sfi_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_SFI_ID_ALARM_STATUS)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_SFI_ID_BER)) != 0)
+    {
+        count += 4;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_sfi_data_unpack(bcmolt_xgpon_onu_sfi_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_SFI_ID_ALARM_STATUS)) != 0)
+    {
+        if (!bcmolt_status_unpack(&this->alarm_status, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_SFI_ID_BER)) != 0)
+    {
+        if (!bcmolt_buf_read_u32(buf, &this->ber))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_sfi_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_SFI_ID_ALARM_STATUS)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_SFI_ID_BER)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 4))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_sfi_data_bounds_check(const bcmolt_xgpon_onu_sfi_data *this, bcmolt_presence_mask fields_present, bcmolt_xgpon_onu_sfi_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_SFI_ID_ALARM_STATUS)) != 0)
+    {
+        switch (this->alarm_status)
+        {
+            case BCMOLT_STATUS_OFF:
+                break;
+            case BCMOLT_STATUS_ON:
+                break;
+            case BCMOLT_STATUS_NO_CHANGE:
+                break;
+            default:
+                *failed_prop = BCMOLT_XGPON_ONU_SFI_ID_ALARM_STATUS;
+                return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_xgpon_onu_stat_alarm_cleared_data_set_default(bcmolt_xgpon_onu_stat_alarm_cleared_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_STAT_ALARM_CLEARED_ID_STAT)) != 0)
+    {
+        this->stat = BCMOLT_XGPON_ONU_STAT_ID_POSITIVE_DRIFT;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_stat_alarm_cleared_data_pack(const bcmolt_xgpon_onu_stat_alarm_cleared_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_STAT_ALARM_CLEARED_ID_STAT)) != 0)
+    {
+        if (!bcmolt_xgpon_onu_stat_id_pack(this->stat, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_xgpon_onu_stat_alarm_cleared_data_get_packed_length(const bcmolt_xgpon_onu_stat_alarm_cleared_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_STAT_ALARM_CLEARED_ID_STAT)) != 0)
+    {
+        count += 2;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_stat_alarm_cleared_data_unpack(bcmolt_xgpon_onu_stat_alarm_cleared_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_STAT_ALARM_CLEARED_ID_STAT)) != 0)
+    {
+        if (!bcmolt_xgpon_onu_stat_id_unpack(&this->stat, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_stat_alarm_cleared_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_STAT_ALARM_CLEARED_ID_STAT)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 2))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_stat_alarm_cleared_data_bounds_check(const bcmolt_xgpon_onu_stat_alarm_cleared_data *this, bcmolt_presence_mask fields_present, bcmolt_xgpon_onu_stat_alarm_cleared_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_STAT_ALARM_CLEARED_ID_STAT)) != 0)
+    {
+        switch (this->stat)
+        {
+            case BCMOLT_XGPON_ONU_STAT_ID_POSITIVE_DRIFT:
+                break;
+            case BCMOLT_XGPON_ONU_STAT_ID_NEGATIVE_DRIFT:
+                break;
+            case BCMOLT_XGPON_ONU_STAT_ID_DELIMITER_MISS_DETECTION:
+                break;
+            case BCMOLT_XGPON_ONU_STAT_ID_BIP32_ERRORS:
+                break;
+            case BCMOLT_XGPON_ONU_STAT_ID_RX_WORDS:
+                break;
+            case BCMOLT_XGPON_ONU_STAT_ID_FEC_CORRECTED_SYMBOLS:
+                break;
+            case BCMOLT_XGPON_ONU_STAT_ID_FEC_CORRECTED_CODEWORDS:
+                break;
+            case BCMOLT_XGPON_ONU_STAT_ID_FEC_UNCORRECTABLE_CODEWORDS:
+                break;
+            case BCMOLT_XGPON_ONU_STAT_ID_FEC_CODEWORDS:
+                break;
+            case BCMOLT_XGPON_ONU_STAT_ID_FEC_CORRECTED_BITS:
+                break;
+            case BCMOLT_XGPON_ONU_STAT_ID_XGEM_KEY_ERRORS:
+                break;
+            case BCMOLT_XGPON_ONU_STAT_ID_XGEM_LOSS:
+                break;
+            case BCMOLT_XGPON_ONU_STAT_ID_RX_PLOAMS_MIC_ERROR:
+                break;
+            case BCMOLT_XGPON_ONU_STAT_ID_RX_PLOAMS_NON_IDLE:
+                break;
+            case BCMOLT_XGPON_ONU_STAT_ID_RX_OMCI:
+                break;
+            case BCMOLT_XGPON_ONU_STAT_ID_RX_OMCI_PACKETS_CRC_ERROR:
+                break;
+            case BCMOLT_XGPON_ONU_STAT_ID_RX_BYTES:
+                break;
+            case BCMOLT_XGPON_ONU_STAT_ID_RX_PACKETS:
+                break;
+            case BCMOLT_XGPON_ONU_STAT_ID_TX_BYTES:
+                break;
+            case BCMOLT_XGPON_ONU_STAT_ID_TX_PACKETS:
+                break;
+            default:
+                *failed_prop = BCMOLT_XGPON_ONU_STAT_ALARM_CLEARED_ID_STAT;
+                return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_xgpon_onu_stat_alarm_raised_data_set_default(bcmolt_xgpon_onu_stat_alarm_raised_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_STAT_ALARM_RAISED_ID_STAT)) != 0)
+    {
+        this->stat = BCMOLT_XGPON_ONU_STAT_ID_POSITIVE_DRIFT;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_stat_alarm_raised_data_pack(const bcmolt_xgpon_onu_stat_alarm_raised_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_STAT_ALARM_RAISED_ID_STAT)) != 0)
+    {
+        if (!bcmolt_xgpon_onu_stat_id_pack(this->stat, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_xgpon_onu_stat_alarm_raised_data_get_packed_length(const bcmolt_xgpon_onu_stat_alarm_raised_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_STAT_ALARM_RAISED_ID_STAT)) != 0)
+    {
+        count += 2;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_stat_alarm_raised_data_unpack(bcmolt_xgpon_onu_stat_alarm_raised_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_STAT_ALARM_RAISED_ID_STAT)) != 0)
+    {
+        if (!bcmolt_xgpon_onu_stat_id_unpack(&this->stat, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_stat_alarm_raised_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_STAT_ALARM_RAISED_ID_STAT)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 2))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_stat_alarm_raised_data_bounds_check(const bcmolt_xgpon_onu_stat_alarm_raised_data *this, bcmolt_presence_mask fields_present, bcmolt_xgpon_onu_stat_alarm_raised_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_STAT_ALARM_RAISED_ID_STAT)) != 0)
+    {
+        switch (this->stat)
+        {
+            case BCMOLT_XGPON_ONU_STAT_ID_POSITIVE_DRIFT:
+                break;
+            case BCMOLT_XGPON_ONU_STAT_ID_NEGATIVE_DRIFT:
+                break;
+            case BCMOLT_XGPON_ONU_STAT_ID_DELIMITER_MISS_DETECTION:
+                break;
+            case BCMOLT_XGPON_ONU_STAT_ID_BIP32_ERRORS:
+                break;
+            case BCMOLT_XGPON_ONU_STAT_ID_RX_WORDS:
+                break;
+            case BCMOLT_XGPON_ONU_STAT_ID_FEC_CORRECTED_SYMBOLS:
+                break;
+            case BCMOLT_XGPON_ONU_STAT_ID_FEC_CORRECTED_CODEWORDS:
+                break;
+            case BCMOLT_XGPON_ONU_STAT_ID_FEC_UNCORRECTABLE_CODEWORDS:
+                break;
+            case BCMOLT_XGPON_ONU_STAT_ID_FEC_CODEWORDS:
+                break;
+            case BCMOLT_XGPON_ONU_STAT_ID_FEC_CORRECTED_BITS:
+                break;
+            case BCMOLT_XGPON_ONU_STAT_ID_XGEM_KEY_ERRORS:
+                break;
+            case BCMOLT_XGPON_ONU_STAT_ID_XGEM_LOSS:
+                break;
+            case BCMOLT_XGPON_ONU_STAT_ID_RX_PLOAMS_MIC_ERROR:
+                break;
+            case BCMOLT_XGPON_ONU_STAT_ID_RX_PLOAMS_NON_IDLE:
+                break;
+            case BCMOLT_XGPON_ONU_STAT_ID_RX_OMCI:
+                break;
+            case BCMOLT_XGPON_ONU_STAT_ID_RX_OMCI_PACKETS_CRC_ERROR:
+                break;
+            case BCMOLT_XGPON_ONU_STAT_ID_RX_BYTES:
+                break;
+            case BCMOLT_XGPON_ONU_STAT_ID_RX_PACKETS:
+                break;
+            case BCMOLT_XGPON_ONU_STAT_ID_TX_BYTES:
+                break;
+            case BCMOLT_XGPON_ONU_STAT_ID_TX_PACKETS:
+                break;
+            default:
+                *failed_prop = BCMOLT_XGPON_ONU_STAT_ALARM_RAISED_ID_STAT;
+                return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_xgpon_onu_sufi_data_set_default(bcmolt_xgpon_onu_sufi_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_SUFI_ID_ALARM_STATUS)) != 0)
+    {
+        this->alarm_status = BCMOLT_STATUS_OFF;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_sufi_data_pack(const bcmolt_xgpon_onu_sufi_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_SUFI_ID_ALARM_STATUS)) != 0)
+    {
+        if (!bcmolt_status_pack(this->alarm_status, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_xgpon_onu_sufi_data_get_packed_length(const bcmolt_xgpon_onu_sufi_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_SUFI_ID_ALARM_STATUS)) != 0)
+    {
+        count += 1;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_sufi_data_unpack(bcmolt_xgpon_onu_sufi_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_SUFI_ID_ALARM_STATUS)) != 0)
+    {
+        if (!bcmolt_status_unpack(&this->alarm_status, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_sufi_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_SUFI_ID_ALARM_STATUS)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_sufi_data_bounds_check(const bcmolt_xgpon_onu_sufi_data *this, bcmolt_presence_mask fields_present, bcmolt_xgpon_onu_sufi_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_SUFI_ID_ALARM_STATUS)) != 0)
+    {
+        switch (this->alarm_status)
+        {
+            case BCMOLT_STATUS_OFF:
+                break;
+            case BCMOLT_STATUS_ON:
+                break;
+            case BCMOLT_STATUS_NO_CHANGE:
+                break;
+            default:
+                *failed_prop = BCMOLT_XGPON_ONU_SUFI_ID_ALARM_STATUS;
+                return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_xgpon_onu_tiwi_data_set_default(bcmolt_xgpon_onu_tiwi_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_TIWI_ID_ALARM_STATUS)) != 0)
+    {
+        this->alarm_status = BCMOLT_STATUS_OFF;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_TIWI_ID_DRIFT_VALUE)) != 0)
+    {
+        this->drift_value = 0;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_tiwi_data_pack(const bcmolt_xgpon_onu_tiwi_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_TIWI_ID_ALARM_STATUS)) != 0)
+    {
+        if (!bcmolt_status_pack(this->alarm_status, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_TIWI_ID_DRIFT_VALUE)) != 0)
+    {
+        if (!bcmolt_buf_write_s32(buf, this->drift_value))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_xgpon_onu_tiwi_data_get_packed_length(const bcmolt_xgpon_onu_tiwi_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_TIWI_ID_ALARM_STATUS)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_TIWI_ID_DRIFT_VALUE)) != 0)
+    {
+        count += 4;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_tiwi_data_unpack(bcmolt_xgpon_onu_tiwi_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_TIWI_ID_ALARM_STATUS)) != 0)
+    {
+        if (!bcmolt_status_unpack(&this->alarm_status, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_TIWI_ID_DRIFT_VALUE)) != 0)
+    {
+        if (!bcmolt_buf_read_s32(buf, &this->drift_value))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_tiwi_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_TIWI_ID_ALARM_STATUS)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_TIWI_ID_DRIFT_VALUE)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 4))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_tiwi_data_bounds_check(const bcmolt_xgpon_onu_tiwi_data *this, bcmolt_presence_mask fields_present, bcmolt_xgpon_onu_tiwi_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_TIWI_ID_ALARM_STATUS)) != 0)
+    {
+        switch (this->alarm_status)
+        {
+            case BCMOLT_STATUS_OFF:
+                break;
+            case BCMOLT_STATUS_ON:
+                break;
+            case BCMOLT_STATUS_NO_CHANGE:
+                break;
+            default:
+                *failed_prop = BCMOLT_XGPON_ONU_TIWI_ID_ALARM_STATUS;
+                return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_xgpon_onu_tuning_response_data_set_default(bcmolt_xgpon_onu_tuning_response_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_TUNING_RESPONSE_ID_ACK)) != 0)
+    {
+        this->ack = BCMOS_FALSE;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_TUNING_RESPONSE_ID_RESULT)) != 0)
+    {
+        this->result = BCMOLT_RESULT_SUCCESS;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_tuning_response_data_pack(const bcmolt_xgpon_onu_tuning_response_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_TUNING_RESPONSE_ID_ACK)) != 0)
+    {
+        if (!bcmolt_buf_write_bool(buf, this->ack))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_TUNING_RESPONSE_ID_RESULT)) != 0)
+    {
+        if (!bcmolt_result_pack(this->result, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_xgpon_onu_tuning_response_data_get_packed_length(const bcmolt_xgpon_onu_tuning_response_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_TUNING_RESPONSE_ID_ACK)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_TUNING_RESPONSE_ID_RESULT)) != 0)
+    {
+        count += 1;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_tuning_response_data_unpack(bcmolt_xgpon_onu_tuning_response_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_TUNING_RESPONSE_ID_ACK)) != 0)
+    {
+        if (!bcmolt_buf_read_bool(buf, &this->ack))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_TUNING_RESPONSE_ID_RESULT)) != 0)
+    {
+        if (!bcmolt_result_unpack(&this->result, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_tuning_response_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_TUNING_RESPONSE_ID_ACK)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_TUNING_RESPONSE_ID_RESULT)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_tuning_response_data_bounds_check(const bcmolt_xgpon_onu_tuning_response_data *this, bcmolt_presence_mask fields_present, bcmolt_xgpon_onu_tuning_response_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_TUNING_RESPONSE_ID_RESULT)) != 0)
+    {
+        switch (this->result)
+        {
+            case BCMOLT_RESULT_SUCCESS:
+                break;
+            case BCMOLT_RESULT_FAIL:
+                break;
+            default:
+                *failed_prop = BCMOLT_XGPON_ONU_TUNING_RESPONSE_ID_RESULT;
+                return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_xgpon_onu_auto_cfg_data_set_default(bcmolt_xgpon_onu_auto_cfg_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_AUTO_CFG_ID_DFI)) != 0)
+    {
+        this->dfi = BCMOS_FALSE;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_AUTO_CFG_ID_DGI)) != 0)
+    {
+        this->dgi = BCMOS_FALSE;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_AUTO_CFG_ID_DOWI)) != 0)
+    {
+        this->dowi = BCMOS_FALSE;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_AUTO_CFG_ID_INVALID_DBRU_REPORT)) != 0)
+    {
+        this->invalid_dbru_report = BCMOS_FALSE;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_AUTO_CFG_ID_KEY_EXCHANGE_COMPLETED)) != 0)
+    {
+        this->key_exchange_completed = BCMOS_FALSE;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_AUTO_CFG_ID_KEY_EXCHANGE_CYCLE_SKIPPED)) != 0)
+    {
+        this->key_exchange_cycle_skipped = BCMOS_FALSE;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_AUTO_CFG_ID_KEY_EXCHANGE_KEY_MISMATCH)) != 0)
+    {
+        this->key_exchange_key_mismatch = BCMOS_FALSE;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_AUTO_CFG_ID_KEY_EXCHANGE_KEY_REQUEST_TIMEOUT)) != 0)
+    {
+        this->key_exchange_key_request_timeout = BCMOS_FALSE;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_AUTO_CFG_ID_LOOCI)) != 0)
+    {
+        this->looci = BCMOS_FALSE;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_AUTO_CFG_ID_ONU_ACTIVATION_COMPLETED)) != 0)
+    {
+        this->onu_activation_completed = BCMOS_FALSE;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_AUTO_CFG_ID_ONU_ALARM)) != 0)
+    {
+        this->onu_alarm = BCMOS_FALSE;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_AUTO_CFG_ID_ONU_DEACTIVATION_COMPLETED)) != 0)
+    {
+        this->onu_deactivation_completed = BCMOS_FALSE;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_AUTO_CFG_ID_ONU_DISABLE_COMPLETED)) != 0)
+    {
+        this->onu_disable_completed = BCMOS_FALSE;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_AUTO_CFG_ID_ONU_ENABLE_COMPLETED)) != 0)
+    {
+        this->onu_enable_completed = BCMOS_FALSE;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_AUTO_CFG_ID_ONU_TUNING_IN_COMPLETED)) != 0)
+    {
+        this->onu_tuning_in_completed = BCMOS_FALSE;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_AUTO_CFG_ID_ONU_TUNING_OUT_COMPLETED)) != 0)
+    {
+        this->onu_tuning_out_completed = BCMOS_FALSE;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_AUTO_CFG_ID_OPTICAL_REFLECTION)) != 0)
+    {
+        this->optical_reflection = BCMOS_FALSE;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_AUTO_CFG_ID_POSSIBLE_DRIFT)) != 0)
+    {
+        this->possible_drift = BCMOS_FALSE;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_AUTO_CFG_ID_POWER_CONSUMPTION_REPORT)) != 0)
+    {
+        this->power_consumption_report = BCMOS_FALSE;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_AUTO_CFG_ID_POWER_LEVEL_REPORT)) != 0)
+    {
+        this->power_level_report = BCMOS_FALSE;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_AUTO_CFG_ID_POWER_MANAGEMENT_STATE_CHANGE)) != 0)
+    {
+        this->power_management_state_change = BCMOS_FALSE;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_AUTO_CFG_ID_PQSI)) != 0)
+    {
+        this->pqsi = BCMOS_FALSE;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_AUTO_CFG_ID_RANGING_COMPLETED)) != 0)
+    {
+        this->ranging_completed = BCMOS_FALSE;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_AUTO_CFG_ID_REGISTRATION_ID)) != 0)
+    {
+        this->registration_id = BCMOS_FALSE;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_AUTO_CFG_ID_RSSI_MEASUREMENT_COMPLETED)) != 0)
+    {
+        this->rssi_measurement_completed = BCMOS_FALSE;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_AUTO_CFG_ID_SDI)) != 0)
+    {
+        this->sdi = BCMOS_FALSE;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_AUTO_CFG_ID_SECURE_MUTUAL_AUTHENTICATION_FAILURE)) != 0)
+    {
+        this->secure_mutual_authentication_failure = BCMOS_FALSE;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_AUTO_CFG_ID_SFI)) != 0)
+    {
+        this->sfi = BCMOS_FALSE;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_AUTO_CFG_ID_STAT_ALARM_CLEARED)) != 0)
+    {
+        this->stat_alarm_cleared = BCMOS_FALSE;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_AUTO_CFG_ID_STAT_ALARM_RAISED)) != 0)
+    {
+        this->stat_alarm_raised = BCMOS_FALSE;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_AUTO_CFG_ID_SUFI)) != 0)
+    {
+        this->sufi = BCMOS_FALSE;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_AUTO_CFG_ID_TIWI)) != 0)
+    {
+        this->tiwi = BCMOS_FALSE;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_AUTO_CFG_ID_TUNING_RESPONSE)) != 0)
+    {
+        this->tuning_response = BCMOS_FALSE;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_auto_cfg_data_pack(const bcmolt_xgpon_onu_auto_cfg_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_AUTO_CFG_ID_DFI)) != 0)
+    {
+        if (!bcmolt_buf_write_bool(buf, this->dfi))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_AUTO_CFG_ID_DGI)) != 0)
+    {
+        if (!bcmolt_buf_write_bool(buf, this->dgi))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_AUTO_CFG_ID_DOWI)) != 0)
+    {
+        if (!bcmolt_buf_write_bool(buf, this->dowi))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_AUTO_CFG_ID_INVALID_DBRU_REPORT)) != 0)
+    {
+        if (!bcmolt_buf_write_bool(buf, this->invalid_dbru_report))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_AUTO_CFG_ID_KEY_EXCHANGE_COMPLETED)) != 0)
+    {
+        if (!bcmolt_buf_write_bool(buf, this->key_exchange_completed))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_AUTO_CFG_ID_KEY_EXCHANGE_CYCLE_SKIPPED)) != 0)
+    {
+        if (!bcmolt_buf_write_bool(buf, this->key_exchange_cycle_skipped))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_AUTO_CFG_ID_KEY_EXCHANGE_KEY_MISMATCH)) != 0)
+    {
+        if (!bcmolt_buf_write_bool(buf, this->key_exchange_key_mismatch))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_AUTO_CFG_ID_KEY_EXCHANGE_KEY_REQUEST_TIMEOUT)) != 0)
+    {
+        if (!bcmolt_buf_write_bool(buf, this->key_exchange_key_request_timeout))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_AUTO_CFG_ID_LOOCI)) != 0)
+    {
+        if (!bcmolt_buf_write_bool(buf, this->looci))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_AUTO_CFG_ID_ONU_ACTIVATION_COMPLETED)) != 0)
+    {
+        if (!bcmolt_buf_write_bool(buf, this->onu_activation_completed))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_AUTO_CFG_ID_ONU_ALARM)) != 0)
+    {
+        if (!bcmolt_buf_write_bool(buf, this->onu_alarm))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_AUTO_CFG_ID_ONU_DEACTIVATION_COMPLETED)) != 0)
+    {
+        if (!bcmolt_buf_write_bool(buf, this->onu_deactivation_completed))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_AUTO_CFG_ID_ONU_DISABLE_COMPLETED)) != 0)
+    {
+        if (!bcmolt_buf_write_bool(buf, this->onu_disable_completed))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_AUTO_CFG_ID_ONU_ENABLE_COMPLETED)) != 0)
+    {
+        if (!bcmolt_buf_write_bool(buf, this->onu_enable_completed))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_AUTO_CFG_ID_ONU_TUNING_IN_COMPLETED)) != 0)
+    {
+        if (!bcmolt_buf_write_bool(buf, this->onu_tuning_in_completed))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_AUTO_CFG_ID_ONU_TUNING_OUT_COMPLETED)) != 0)
+    {
+        if (!bcmolt_buf_write_bool(buf, this->onu_tuning_out_completed))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_AUTO_CFG_ID_OPTICAL_REFLECTION)) != 0)
+    {
+        if (!bcmolt_buf_write_bool(buf, this->optical_reflection))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_AUTO_CFG_ID_POSSIBLE_DRIFT)) != 0)
+    {
+        if (!bcmolt_buf_write_bool(buf, this->possible_drift))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_AUTO_CFG_ID_POWER_CONSUMPTION_REPORT)) != 0)
+    {
+        if (!bcmolt_buf_write_bool(buf, this->power_consumption_report))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_AUTO_CFG_ID_POWER_LEVEL_REPORT)) != 0)
+    {
+        if (!bcmolt_buf_write_bool(buf, this->power_level_report))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_AUTO_CFG_ID_POWER_MANAGEMENT_STATE_CHANGE)) != 0)
+    {
+        if (!bcmolt_buf_write_bool(buf, this->power_management_state_change))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_AUTO_CFG_ID_PQSI)) != 0)
+    {
+        if (!bcmolt_buf_write_bool(buf, this->pqsi))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_AUTO_CFG_ID_RANGING_COMPLETED)) != 0)
+    {
+        if (!bcmolt_buf_write_bool(buf, this->ranging_completed))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_AUTO_CFG_ID_REGISTRATION_ID)) != 0)
+    {
+        if (!bcmolt_buf_write_bool(buf, this->registration_id))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_AUTO_CFG_ID_RSSI_MEASUREMENT_COMPLETED)) != 0)
+    {
+        if (!bcmolt_buf_write_bool(buf, this->rssi_measurement_completed))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_AUTO_CFG_ID_SDI)) != 0)
+    {
+        if (!bcmolt_buf_write_bool(buf, this->sdi))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_AUTO_CFG_ID_SECURE_MUTUAL_AUTHENTICATION_FAILURE)) != 0)
+    {
+        if (!bcmolt_buf_write_bool(buf, this->secure_mutual_authentication_failure))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_AUTO_CFG_ID_SFI)) != 0)
+    {
+        if (!bcmolt_buf_write_bool(buf, this->sfi))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_AUTO_CFG_ID_STAT_ALARM_CLEARED)) != 0)
+    {
+        if (!bcmolt_buf_write_bool(buf, this->stat_alarm_cleared))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_AUTO_CFG_ID_STAT_ALARM_RAISED)) != 0)
+    {
+        if (!bcmolt_buf_write_bool(buf, this->stat_alarm_raised))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_AUTO_CFG_ID_SUFI)) != 0)
+    {
+        if (!bcmolt_buf_write_bool(buf, this->sufi))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_AUTO_CFG_ID_TIWI)) != 0)
+    {
+        if (!bcmolt_buf_write_bool(buf, this->tiwi))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_AUTO_CFG_ID_TUNING_RESPONSE)) != 0)
+    {
+        if (!bcmolt_buf_write_bool(buf, this->tuning_response))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_xgpon_onu_auto_cfg_data_get_packed_length(const bcmolt_xgpon_onu_auto_cfg_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_AUTO_CFG_ID_DFI)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_AUTO_CFG_ID_DGI)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_AUTO_CFG_ID_DOWI)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_AUTO_CFG_ID_INVALID_DBRU_REPORT)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_AUTO_CFG_ID_KEY_EXCHANGE_COMPLETED)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_AUTO_CFG_ID_KEY_EXCHANGE_CYCLE_SKIPPED)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_AUTO_CFG_ID_KEY_EXCHANGE_KEY_MISMATCH)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_AUTO_CFG_ID_KEY_EXCHANGE_KEY_REQUEST_TIMEOUT)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_AUTO_CFG_ID_LOOCI)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_AUTO_CFG_ID_ONU_ACTIVATION_COMPLETED)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_AUTO_CFG_ID_ONU_ALARM)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_AUTO_CFG_ID_ONU_DEACTIVATION_COMPLETED)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_AUTO_CFG_ID_ONU_DISABLE_COMPLETED)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_AUTO_CFG_ID_ONU_ENABLE_COMPLETED)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_AUTO_CFG_ID_ONU_TUNING_IN_COMPLETED)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_AUTO_CFG_ID_ONU_TUNING_OUT_COMPLETED)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_AUTO_CFG_ID_OPTICAL_REFLECTION)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_AUTO_CFG_ID_POSSIBLE_DRIFT)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_AUTO_CFG_ID_POWER_CONSUMPTION_REPORT)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_AUTO_CFG_ID_POWER_LEVEL_REPORT)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_AUTO_CFG_ID_POWER_MANAGEMENT_STATE_CHANGE)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_AUTO_CFG_ID_PQSI)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_AUTO_CFG_ID_RANGING_COMPLETED)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_AUTO_CFG_ID_REGISTRATION_ID)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_AUTO_CFG_ID_RSSI_MEASUREMENT_COMPLETED)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_AUTO_CFG_ID_SDI)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_AUTO_CFG_ID_SECURE_MUTUAL_AUTHENTICATION_FAILURE)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_AUTO_CFG_ID_SFI)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_AUTO_CFG_ID_STAT_ALARM_CLEARED)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_AUTO_CFG_ID_STAT_ALARM_RAISED)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_AUTO_CFG_ID_SUFI)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_AUTO_CFG_ID_TIWI)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_AUTO_CFG_ID_TUNING_RESPONSE)) != 0)
+    {
+        count += 1;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_auto_cfg_data_unpack(bcmolt_xgpon_onu_auto_cfg_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_AUTO_CFG_ID_DFI)) != 0)
+    {
+        if (!bcmolt_buf_read_bool(buf, &this->dfi))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_AUTO_CFG_ID_DGI)) != 0)
+    {
+        if (!bcmolt_buf_read_bool(buf, &this->dgi))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_AUTO_CFG_ID_DOWI)) != 0)
+    {
+        if (!bcmolt_buf_read_bool(buf, &this->dowi))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_AUTO_CFG_ID_INVALID_DBRU_REPORT)) != 0)
+    {
+        if (!bcmolt_buf_read_bool(buf, &this->invalid_dbru_report))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_AUTO_CFG_ID_KEY_EXCHANGE_COMPLETED)) != 0)
+    {
+        if (!bcmolt_buf_read_bool(buf, &this->key_exchange_completed))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_AUTO_CFG_ID_KEY_EXCHANGE_CYCLE_SKIPPED)) != 0)
+    {
+        if (!bcmolt_buf_read_bool(buf, &this->key_exchange_cycle_skipped))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_AUTO_CFG_ID_KEY_EXCHANGE_KEY_MISMATCH)) != 0)
+    {
+        if (!bcmolt_buf_read_bool(buf, &this->key_exchange_key_mismatch))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_AUTO_CFG_ID_KEY_EXCHANGE_KEY_REQUEST_TIMEOUT)) != 0)
+    {
+        if (!bcmolt_buf_read_bool(buf, &this->key_exchange_key_request_timeout))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_AUTO_CFG_ID_LOOCI)) != 0)
+    {
+        if (!bcmolt_buf_read_bool(buf, &this->looci))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_AUTO_CFG_ID_ONU_ACTIVATION_COMPLETED)) != 0)
+    {
+        if (!bcmolt_buf_read_bool(buf, &this->onu_activation_completed))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_AUTO_CFG_ID_ONU_ALARM)) != 0)
+    {
+        if (!bcmolt_buf_read_bool(buf, &this->onu_alarm))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_AUTO_CFG_ID_ONU_DEACTIVATION_COMPLETED)) != 0)
+    {
+        if (!bcmolt_buf_read_bool(buf, &this->onu_deactivation_completed))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_AUTO_CFG_ID_ONU_DISABLE_COMPLETED)) != 0)
+    {
+        if (!bcmolt_buf_read_bool(buf, &this->onu_disable_completed))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_AUTO_CFG_ID_ONU_ENABLE_COMPLETED)) != 0)
+    {
+        if (!bcmolt_buf_read_bool(buf, &this->onu_enable_completed))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_AUTO_CFG_ID_ONU_TUNING_IN_COMPLETED)) != 0)
+    {
+        if (!bcmolt_buf_read_bool(buf, &this->onu_tuning_in_completed))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_AUTO_CFG_ID_ONU_TUNING_OUT_COMPLETED)) != 0)
+    {
+        if (!bcmolt_buf_read_bool(buf, &this->onu_tuning_out_completed))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_AUTO_CFG_ID_OPTICAL_REFLECTION)) != 0)
+    {
+        if (!bcmolt_buf_read_bool(buf, &this->optical_reflection))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_AUTO_CFG_ID_POSSIBLE_DRIFT)) != 0)
+    {
+        if (!bcmolt_buf_read_bool(buf, &this->possible_drift))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_AUTO_CFG_ID_POWER_CONSUMPTION_REPORT)) != 0)
+    {
+        if (!bcmolt_buf_read_bool(buf, &this->power_consumption_report))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_AUTO_CFG_ID_POWER_LEVEL_REPORT)) != 0)
+    {
+        if (!bcmolt_buf_read_bool(buf, &this->power_level_report))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_AUTO_CFG_ID_POWER_MANAGEMENT_STATE_CHANGE)) != 0)
+    {
+        if (!bcmolt_buf_read_bool(buf, &this->power_management_state_change))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_AUTO_CFG_ID_PQSI)) != 0)
+    {
+        if (!bcmolt_buf_read_bool(buf, &this->pqsi))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_AUTO_CFG_ID_RANGING_COMPLETED)) != 0)
+    {
+        if (!bcmolt_buf_read_bool(buf, &this->ranging_completed))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_AUTO_CFG_ID_REGISTRATION_ID)) != 0)
+    {
+        if (!bcmolt_buf_read_bool(buf, &this->registration_id))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_AUTO_CFG_ID_RSSI_MEASUREMENT_COMPLETED)) != 0)
+    {
+        if (!bcmolt_buf_read_bool(buf, &this->rssi_measurement_completed))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_AUTO_CFG_ID_SDI)) != 0)
+    {
+        if (!bcmolt_buf_read_bool(buf, &this->sdi))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_AUTO_CFG_ID_SECURE_MUTUAL_AUTHENTICATION_FAILURE)) != 0)
+    {
+        if (!bcmolt_buf_read_bool(buf, &this->secure_mutual_authentication_failure))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_AUTO_CFG_ID_SFI)) != 0)
+    {
+        if (!bcmolt_buf_read_bool(buf, &this->sfi))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_AUTO_CFG_ID_STAT_ALARM_CLEARED)) != 0)
+    {
+        if (!bcmolt_buf_read_bool(buf, &this->stat_alarm_cleared))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_AUTO_CFG_ID_STAT_ALARM_RAISED)) != 0)
+    {
+        if (!bcmolt_buf_read_bool(buf, &this->stat_alarm_raised))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_AUTO_CFG_ID_SUFI)) != 0)
+    {
+        if (!bcmolt_buf_read_bool(buf, &this->sufi))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_AUTO_CFG_ID_TIWI)) != 0)
+    {
+        if (!bcmolt_buf_read_bool(buf, &this->tiwi))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_AUTO_CFG_ID_TUNING_RESPONSE)) != 0)
+    {
+        if (!bcmolt_buf_read_bool(buf, &this->tuning_response))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_auto_cfg_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_AUTO_CFG_ID_DFI)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_AUTO_CFG_ID_DGI)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_AUTO_CFG_ID_DOWI)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_AUTO_CFG_ID_INVALID_DBRU_REPORT)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_AUTO_CFG_ID_KEY_EXCHANGE_COMPLETED)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_AUTO_CFG_ID_KEY_EXCHANGE_CYCLE_SKIPPED)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_AUTO_CFG_ID_KEY_EXCHANGE_KEY_MISMATCH)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_AUTO_CFG_ID_KEY_EXCHANGE_KEY_REQUEST_TIMEOUT)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_AUTO_CFG_ID_LOOCI)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_AUTO_CFG_ID_ONU_ACTIVATION_COMPLETED)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_AUTO_CFG_ID_ONU_ALARM)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_AUTO_CFG_ID_ONU_DEACTIVATION_COMPLETED)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_AUTO_CFG_ID_ONU_DISABLE_COMPLETED)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_AUTO_CFG_ID_ONU_ENABLE_COMPLETED)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_AUTO_CFG_ID_ONU_TUNING_IN_COMPLETED)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_AUTO_CFG_ID_ONU_TUNING_OUT_COMPLETED)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_AUTO_CFG_ID_OPTICAL_REFLECTION)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_AUTO_CFG_ID_POSSIBLE_DRIFT)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_AUTO_CFG_ID_POWER_CONSUMPTION_REPORT)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_AUTO_CFG_ID_POWER_LEVEL_REPORT)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_AUTO_CFG_ID_POWER_MANAGEMENT_STATE_CHANGE)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_AUTO_CFG_ID_PQSI)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_AUTO_CFG_ID_RANGING_COMPLETED)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_AUTO_CFG_ID_REGISTRATION_ID)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_AUTO_CFG_ID_RSSI_MEASUREMENT_COMPLETED)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_AUTO_CFG_ID_SDI)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_AUTO_CFG_ID_SECURE_MUTUAL_AUTHENTICATION_FAILURE)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_AUTO_CFG_ID_SFI)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_AUTO_CFG_ID_STAT_ALARM_CLEARED)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_AUTO_CFG_ID_STAT_ALARM_RAISED)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_AUTO_CFG_ID_SUFI)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_AUTO_CFG_ID_TIWI)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_AUTO_CFG_ID_TUNING_RESPONSE)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_auto_cfg_data_bounds_check(const bcmolt_xgpon_onu_auto_cfg_data *this, bcmolt_presence_mask fields_present, bcmolt_xgpon_onu_auto_cfg_id *failed_prop)
+{
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_xgpon_onu_adjust_tx_wavelength_data_set_default(bcmolt_xgpon_onu_adjust_tx_wavelength_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_ADJUST_TX_WAVELENGTH_ID_FREQUENCY_ADJUSTMENT_DIRECTION)) != 0)
+    {
+        this->frequency_adjustment_direction = BCMOLT_FREQUENCY_ADJUSTMENT_DIRECTION_LOWER;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_ADJUST_TX_WAVELENGTH_ID_FREQUENCY_ADJUSTMENT_SIZE)) != 0)
+    {
+        this->frequency_adjustment_size = 0;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_adjust_tx_wavelength_data_pack(const bcmolt_xgpon_onu_adjust_tx_wavelength_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_ADJUST_TX_WAVELENGTH_ID_FREQUENCY_ADJUSTMENT_DIRECTION)) != 0)
+    {
+        if (!bcmolt_frequency_adjustment_direction_pack(this->frequency_adjustment_direction, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_ADJUST_TX_WAVELENGTH_ID_FREQUENCY_ADJUSTMENT_SIZE)) != 0)
+    {
+        if (!bcmolt_buf_write_u8(buf, this->frequency_adjustment_size))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_xgpon_onu_adjust_tx_wavelength_data_get_packed_length(const bcmolt_xgpon_onu_adjust_tx_wavelength_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_ADJUST_TX_WAVELENGTH_ID_FREQUENCY_ADJUSTMENT_DIRECTION)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_ADJUST_TX_WAVELENGTH_ID_FREQUENCY_ADJUSTMENT_SIZE)) != 0)
+    {
+        count += 1;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_adjust_tx_wavelength_data_unpack(bcmolt_xgpon_onu_adjust_tx_wavelength_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_ADJUST_TX_WAVELENGTH_ID_FREQUENCY_ADJUSTMENT_DIRECTION)) != 0)
+    {
+        if (!bcmolt_frequency_adjustment_direction_unpack(&this->frequency_adjustment_direction, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_ADJUST_TX_WAVELENGTH_ID_FREQUENCY_ADJUSTMENT_SIZE)) != 0)
+    {
+        if (!bcmolt_buf_read_u8(buf, &this->frequency_adjustment_size))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_adjust_tx_wavelength_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_ADJUST_TX_WAVELENGTH_ID_FREQUENCY_ADJUSTMENT_DIRECTION)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_ADJUST_TX_WAVELENGTH_ID_FREQUENCY_ADJUSTMENT_SIZE)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_adjust_tx_wavelength_data_bounds_check(const bcmolt_xgpon_onu_adjust_tx_wavelength_data *this, bcmolt_presence_mask fields_present, bcmolt_xgpon_onu_adjust_tx_wavelength_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_ADJUST_TX_WAVELENGTH_ID_FREQUENCY_ADJUSTMENT_DIRECTION)) != 0)
+    {
+        switch (this->frequency_adjustment_direction)
+        {
+            case BCMOLT_FREQUENCY_ADJUSTMENT_DIRECTION_LOWER:
+                break;
+            case BCMOLT_FREQUENCY_ADJUSTMENT_DIRECTION_HIGHER:
+                break;
+            default:
+                *failed_prop = BCMOLT_XGPON_ONU_ADJUST_TX_WAVELENGTH_ID_FREQUENCY_ADJUSTMENT_DIRECTION;
+                return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_xgpon_onu_change_power_levelling_data_set_default(bcmolt_xgpon_onu_change_power_levelling_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_CHANGE_POWER_LEVELLING_ID_CONTROL)) != 0)
+    {
+        this->control = BCMOLT_POWER_LEVELLING_CONTROL_DIRECT;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_CHANGE_POWER_LEVELLING_ID_ATTENUATION)) != 0)
+    {
+        this->attenuation = 0;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_change_power_levelling_data_pack(const bcmolt_xgpon_onu_change_power_levelling_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_CHANGE_POWER_LEVELLING_ID_CONTROL)) != 0)
+    {
+        if (!bcmolt_power_levelling_control_pack(this->control, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_CHANGE_POWER_LEVELLING_ID_ATTENUATION)) != 0)
+    {
+        if (!bcmolt_buf_write_u8(buf, this->attenuation))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_xgpon_onu_change_power_levelling_data_get_packed_length(const bcmolt_xgpon_onu_change_power_levelling_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_CHANGE_POWER_LEVELLING_ID_CONTROL)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_CHANGE_POWER_LEVELLING_ID_ATTENUATION)) != 0)
+    {
+        count += 1;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_change_power_levelling_data_unpack(bcmolt_xgpon_onu_change_power_levelling_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_CHANGE_POWER_LEVELLING_ID_CONTROL)) != 0)
+    {
+        if (!bcmolt_power_levelling_control_unpack(&this->control, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_CHANGE_POWER_LEVELLING_ID_ATTENUATION)) != 0)
+    {
+        if (!bcmolt_buf_read_u8(buf, &this->attenuation))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_change_power_levelling_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_CHANGE_POWER_LEVELLING_ID_CONTROL)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_CHANGE_POWER_LEVELLING_ID_ATTENUATION)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_change_power_levelling_data_bounds_check(const bcmolt_xgpon_onu_change_power_levelling_data *this, bcmolt_presence_mask fields_present, bcmolt_xgpon_onu_change_power_levelling_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_CHANGE_POWER_LEVELLING_ID_CONTROL)) != 0)
+    {
+        switch (this->control)
+        {
+            case BCMOLT_POWER_LEVELLING_CONTROL_DIRECT:
+                break;
+            case BCMOLT_POWER_LEVELLING_CONTROL_DECREASE:
+                break;
+            case BCMOLT_POWER_LEVELLING_CONTROL_INCREASE:
+                break;
+            default:
+                *failed_prop = BCMOLT_XGPON_ONU_CHANGE_POWER_LEVELLING_ID_CONTROL;
+                return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_xgpon_onu_onu_tuning_out_data_set_default(bcmolt_xgpon_onu_onu_tuning_out_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_ONU_TUNING_OUT_ID_TARGET_DS_PON_ID)) != 0)
+    {
+        this->target_ds_pon_id.administrative_label = 0;
+        this->target_ds_pon_id.dwlch_id = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_ONU_TUNING_OUT_ID_TARGET_US_PON_ID)) != 0)
+    {
+        this->target_us_pon_id.administrative_label = 0;
+        this->target_us_pon_id.dwlch_id = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_ONU_TUNING_OUT_ID_TIME_TO_SWITCH)) != 0)
+    {
+        this->time_to_switch = 500;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_ONU_TUNING_OUT_ID_ROLLBACK)) != 0)
+    {
+        this->rollback = BCMOS_FALSE;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_ONU_TUNING_OUT_ID_STATUS)) != 0)
+    {
+        this->status = BCMOLT_STATUS_OFF;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_onu_tuning_out_data_pack(const bcmolt_xgpon_onu_onu_tuning_out_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_ONU_TUNING_OUT_ID_TARGET_DS_PON_ID)) != 0)
+    {
+        if (!bcmolt_pon_id_pack(&this->target_ds_pon_id, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_ONU_TUNING_OUT_ID_TARGET_US_PON_ID)) != 0)
+    {
+        if (!bcmolt_pon_id_pack(&this->target_us_pon_id, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_ONU_TUNING_OUT_ID_TIME_TO_SWITCH)) != 0)
+    {
+        if (!bcmolt_buf_write_u32(buf, this->time_to_switch))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_ONU_TUNING_OUT_ID_ROLLBACK)) != 0)
+    {
+        if (!bcmolt_buf_write_bool(buf, this->rollback))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_ONU_TUNING_OUT_ID_STATUS)) != 0)
+    {
+        if (!bcmolt_status_pack(this->status, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_xgpon_onu_onu_tuning_out_data_get_packed_length(const bcmolt_xgpon_onu_onu_tuning_out_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_ONU_TUNING_OUT_ID_TARGET_DS_PON_ID)) != 0)
+    {
+        count += 5;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_ONU_TUNING_OUT_ID_TARGET_US_PON_ID)) != 0)
+    {
+        count += 5;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_ONU_TUNING_OUT_ID_TIME_TO_SWITCH)) != 0)
+    {
+        count += 4;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_ONU_TUNING_OUT_ID_ROLLBACK)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_ONU_TUNING_OUT_ID_STATUS)) != 0)
+    {
+        count += 1;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_onu_tuning_out_data_unpack(bcmolt_xgpon_onu_onu_tuning_out_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_ONU_TUNING_OUT_ID_TARGET_DS_PON_ID)) != 0)
+    {
+        if (!bcmolt_pon_id_unpack(&this->target_ds_pon_id, buf, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_ONU_TUNING_OUT_ID_TARGET_US_PON_ID)) != 0)
+    {
+        if (!bcmolt_pon_id_unpack(&this->target_us_pon_id, buf, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_ONU_TUNING_OUT_ID_TIME_TO_SWITCH)) != 0)
+    {
+        if (!bcmolt_buf_read_u32(buf, &this->time_to_switch))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_ONU_TUNING_OUT_ID_ROLLBACK)) != 0)
+    {
+        if (!bcmolt_buf_read_bool(buf, &this->rollback))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_ONU_TUNING_OUT_ID_STATUS)) != 0)
+    {
+        if (!bcmolt_status_unpack(&this->status, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_onu_tuning_out_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_ONU_TUNING_OUT_ID_TARGET_DS_PON_ID)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 5))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_ONU_TUNING_OUT_ID_TARGET_US_PON_ID)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 5))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_ONU_TUNING_OUT_ID_TIME_TO_SWITCH)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 4))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_ONU_TUNING_OUT_ID_ROLLBACK)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_ONU_TUNING_OUT_ID_STATUS)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_onu_tuning_out_data_bounds_check(const bcmolt_xgpon_onu_onu_tuning_out_data *this, bcmolt_presence_mask fields_present, bcmolt_xgpon_onu_onu_tuning_out_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_ONU_TUNING_OUT_ID_TARGET_DS_PON_ID)) != 0)
+    {
+        if (!bcmolt_pon_id_bounds_check(&this->target_ds_pon_id))
+        {
+            *failed_prop = BCMOLT_XGPON_ONU_ONU_TUNING_OUT_ID_TARGET_DS_PON_ID;
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_ONU_TUNING_OUT_ID_TARGET_US_PON_ID)) != 0)
+    {
+        if (!bcmolt_pon_id_bounds_check(&this->target_us_pon_id))
+        {
+            *failed_prop = BCMOLT_XGPON_ONU_ONU_TUNING_OUT_ID_TARGET_US_PON_ID;
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_ONU_TUNING_OUT_ID_TIME_TO_SWITCH)) != 0)
+    {
+        if (this->time_to_switch < 500)
+        {
+            *failed_prop = BCMOLT_XGPON_ONU_ONU_TUNING_OUT_ID_TIME_TO_SWITCH;
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_ONU_TUNING_OUT_ID_STATUS)) != 0)
+    {
+        switch (this->status)
+        {
+            case BCMOLT_STATUS_OFF:
+                break;
+            case BCMOLT_STATUS_ON:
+                break;
+            case BCMOLT_STATUS_NO_CHANGE:
+                break;
+            default:
+                *failed_prop = BCMOLT_XGPON_ONU_ONU_TUNING_OUT_ID_STATUS;
+                return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_xgpon_onu_request_registration_data_set_default(bcmolt_xgpon_onu_request_registration_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_REQUEST_REGISTRATION_ID_SMA_FLAG)) != 0)
+    {
+        this->sma_flag = BCMOS_FALSE;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_request_registration_data_pack(const bcmolt_xgpon_onu_request_registration_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_REQUEST_REGISTRATION_ID_SMA_FLAG)) != 0)
+    {
+        if (!bcmolt_buf_write_bool(buf, this->sma_flag))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_xgpon_onu_request_registration_data_get_packed_length(const bcmolt_xgpon_onu_request_registration_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_REQUEST_REGISTRATION_ID_SMA_FLAG)) != 0)
+    {
+        count += 1;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_request_registration_data_unpack(bcmolt_xgpon_onu_request_registration_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_REQUEST_REGISTRATION_ID_SMA_FLAG)) != 0)
+    {
+        if (!bcmolt_buf_read_bool(buf, &this->sma_flag))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_request_registration_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_REQUEST_REGISTRATION_ID_SMA_FLAG)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_request_registration_data_bounds_check(const bcmolt_xgpon_onu_request_registration_data *this, bcmolt_presence_mask fields_present, bcmolt_xgpon_onu_request_registration_id *failed_prop)
+{
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_xgpon_onu_secure_mutual_authentication_data_set_default(bcmolt_xgpon_onu_secure_mutual_authentication_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_SECURE_MUTUAL_AUTHENTICATION_ID_MASTER_KEY)) != 0)
+    {
+        memset(this->master_key.bytes, 0, sizeof(this->master_key.bytes));
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_SECURE_MUTUAL_AUTHENTICATION_ID_BUFFER)) != 0)
+    {
+        this->buffer.len = 0;
+        this->buffer.val = NULL;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_SECURE_MUTUAL_AUTHENTICATION_ID_MIC)) != 0)
+    {
+        this->mic = 0;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_secure_mutual_authentication_data_pack(const bcmolt_xgpon_onu_secure_mutual_authentication_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_SECURE_MUTUAL_AUTHENTICATION_ID_MASTER_KEY)) != 0)
+    {
+        if (!bcmolt_aes_key_pack(&this->master_key, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_SECURE_MUTUAL_AUTHENTICATION_ID_BUFFER)) != 0)
+    {
+        if (!bcmolt_u8_list_u32_max_2048_pack(&this->buffer, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_SECURE_MUTUAL_AUTHENTICATION_ID_MIC)) != 0)
+    {
+        if (!bcmolt_buf_write_u32(buf, this->mic))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_xgpon_onu_secure_mutual_authentication_data_get_packed_length(const bcmolt_xgpon_onu_secure_mutual_authentication_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_SECURE_MUTUAL_AUTHENTICATION_ID_MASTER_KEY)) != 0)
+    {
+        count += 16;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_SECURE_MUTUAL_AUTHENTICATION_ID_BUFFER)) != 0)
+    {
+        count += bcmolt_u8_list_u32_max_2048_get_packed_length(&this->buffer);
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_SECURE_MUTUAL_AUTHENTICATION_ID_MIC)) != 0)
+    {
+        count += 4;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_secure_mutual_authentication_data_unpack(bcmolt_xgpon_onu_secure_mutual_authentication_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_SECURE_MUTUAL_AUTHENTICATION_ID_MASTER_KEY)) != 0)
+    {
+        if (!bcmolt_aes_key_unpack(&this->master_key, buf, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_SECURE_MUTUAL_AUTHENTICATION_ID_BUFFER)) != 0)
+    {
+        if (!bcmolt_u8_list_u32_max_2048_unpack(&this->buffer, buf, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_SECURE_MUTUAL_AUTHENTICATION_ID_MIC)) != 0)
+    {
+        if (!bcmolt_buf_read_u32(buf, &this->mic))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_secure_mutual_authentication_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_SECURE_MUTUAL_AUTHENTICATION_ID_MASTER_KEY)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 16))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_SECURE_MUTUAL_AUTHENTICATION_ID_BUFFER)) != 0)
+    {
+        if (!bcmolt_u8_list_u32_max_2048_scan(packed, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_SECURE_MUTUAL_AUTHENTICATION_ID_MIC)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 4))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_secure_mutual_authentication_data_bounds_check(const bcmolt_xgpon_onu_secure_mutual_authentication_data *this, bcmolt_presence_mask fields_present, bcmolt_xgpon_onu_secure_mutual_authentication_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_SECURE_MUTUAL_AUTHENTICATION_ID_MASTER_KEY)) != 0)
+    {
+        if (!bcmolt_aes_key_bounds_check(&this->master_key))
+        {
+            *failed_prop = BCMOLT_XGPON_ONU_SECURE_MUTUAL_AUTHENTICATION_ID_MASTER_KEY;
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_SECURE_MUTUAL_AUTHENTICATION_ID_BUFFER)) != 0)
+    {
+        if (this->buffer.len > 2048)
+        {
+            return BCMOS_FALSE;
+        }
+
+        if (!bcmolt_u8_list_u32_max_2048_bounds_check(&this->buffer))
+        {
+            *failed_prop = BCMOLT_XGPON_ONU_SECURE_MUTUAL_AUTHENTICATION_ID_BUFFER;
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_xgpon_onu_set_onu_state_data_set_default(bcmolt_xgpon_onu_set_onu_state_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_SET_ONU_STATE_ID_ONU_STATE)) != 0)
+    {
+        this->onu_state = BCMOLT_ONU_OPERATION_INACTIVE;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_set_onu_state_data_pack(const bcmolt_xgpon_onu_set_onu_state_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_SET_ONU_STATE_ID_ONU_STATE)) != 0)
+    {
+        if (!bcmolt_onu_operation_pack(this->onu_state, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_xgpon_onu_set_onu_state_data_get_packed_length(const bcmolt_xgpon_onu_set_onu_state_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_SET_ONU_STATE_ID_ONU_STATE)) != 0)
+    {
+        count += 1;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_set_onu_state_data_unpack(bcmolt_xgpon_onu_set_onu_state_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_SET_ONU_STATE_ID_ONU_STATE)) != 0)
+    {
+        if (!bcmolt_onu_operation_unpack(&this->onu_state, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_set_onu_state_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_SET_ONU_STATE_ID_ONU_STATE)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_set_onu_state_data_bounds_check(const bcmolt_xgpon_onu_set_onu_state_data *this, bcmolt_presence_mask fields_present, bcmolt_xgpon_onu_set_onu_state_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_SET_ONU_STATE_ID_ONU_STATE)) != 0)
+    {
+        switch (this->onu_state)
+        {
+            case BCMOLT_ONU_OPERATION_INACTIVE:
+                break;
+            case BCMOLT_ONU_OPERATION_ACTIVE:
+                break;
+            case BCMOLT_ONU_OPERATION_DISABLE:
+                break;
+            case BCMOLT_ONU_OPERATION_ENABLE:
+                break;
+            case BCMOLT_ONU_OPERATION_ACTIVE_STANDBY:
+                break;
+            case BCMOLT_ONU_OPERATION_AWAKE_FREE:
+                break;
+            default:
+                *failed_prop = BCMOLT_XGPON_ONU_SET_ONU_STATE_ID_ONU_STATE;
+                return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_xgpon_onu_cpu_packets_data_set_default(bcmolt_xgpon_onu_cpu_packets_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_CPU_PACKETS_ID_PACKET_TYPE)) != 0)
+    {
+        this->packet_type = BCMOLT_PACKET_TYPE_CPU;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_CPU_PACKETS_ID_CALC_CRC)) != 0)
+    {
+        this->calc_crc = BCMOS_FALSE;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_CPU_PACKETS_ID_NUMBER_OF_PACKETS)) != 0)
+    {
+        this->number_of_packets = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_CPU_PACKETS_ID_PACKET_SIZE)) != 0)
+    {
+        this->packet_size = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_CPU_PACKETS_ID_BUFFER)) != 0)
+    {
+        this->buffer.len = 0;
+        this->buffer.val = NULL;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_cpu_packets_data_pack(const bcmolt_xgpon_onu_cpu_packets_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_CPU_PACKETS_ID_PACKET_TYPE)) != 0)
+    {
+        if (!bcmolt_packet_type_pack(this->packet_type, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_CPU_PACKETS_ID_CALC_CRC)) != 0)
+    {
+        if (!bcmolt_buf_write_bool(buf, this->calc_crc))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_CPU_PACKETS_ID_NUMBER_OF_PACKETS)) != 0)
+    {
+        if (!bcmolt_buf_write_u8(buf, this->number_of_packets))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_CPU_PACKETS_ID_PACKET_SIZE)) != 0)
+    {
+        if (!bcmolt_buf_write_u16(buf, this->packet_size))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_CPU_PACKETS_ID_BUFFER)) != 0)
+    {
+        if (!bcmolt_u8_list_u32_max_2048_pack(&this->buffer, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_xgpon_onu_cpu_packets_data_get_packed_length(const bcmolt_xgpon_onu_cpu_packets_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_CPU_PACKETS_ID_PACKET_TYPE)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_CPU_PACKETS_ID_CALC_CRC)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_CPU_PACKETS_ID_NUMBER_OF_PACKETS)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_CPU_PACKETS_ID_PACKET_SIZE)) != 0)
+    {
+        count += 2;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_CPU_PACKETS_ID_BUFFER)) != 0)
+    {
+        count += bcmolt_u8_list_u32_max_2048_get_packed_length(&this->buffer);
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_cpu_packets_data_unpack(bcmolt_xgpon_onu_cpu_packets_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_CPU_PACKETS_ID_PACKET_TYPE)) != 0)
+    {
+        if (!bcmolt_packet_type_unpack(&this->packet_type, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_CPU_PACKETS_ID_CALC_CRC)) != 0)
+    {
+        if (!bcmolt_buf_read_bool(buf, &this->calc_crc))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_CPU_PACKETS_ID_NUMBER_OF_PACKETS)) != 0)
+    {
+        if (!bcmolt_buf_read_u8(buf, &this->number_of_packets))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_CPU_PACKETS_ID_PACKET_SIZE)) != 0)
+    {
+        if (!bcmolt_buf_read_u16(buf, &this->packet_size))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_CPU_PACKETS_ID_BUFFER)) != 0)
+    {
+        if (!bcmolt_u8_list_u32_max_2048_unpack(&this->buffer, buf, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_cpu_packets_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_CPU_PACKETS_ID_PACKET_TYPE)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_CPU_PACKETS_ID_CALC_CRC)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_CPU_PACKETS_ID_NUMBER_OF_PACKETS)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_CPU_PACKETS_ID_PACKET_SIZE)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 2))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_CPU_PACKETS_ID_BUFFER)) != 0)
+    {
+        if (!bcmolt_u8_list_u32_max_2048_scan(packed, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_cpu_packets_data_bounds_check(const bcmolt_xgpon_onu_cpu_packets_data *this, bcmolt_presence_mask fields_present, bcmolt_xgpon_onu_cpu_packets_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_CPU_PACKETS_ID_PACKET_TYPE)) != 0)
+    {
+        switch (this->packet_type)
+        {
+            case BCMOLT_PACKET_TYPE_CPU:
+                break;
+            case BCMOLT_PACKET_TYPE_OMCI:
+                break;
+            default:
+                *failed_prop = BCMOLT_XGPON_ONU_CPU_PACKETS_ID_PACKET_TYPE;
+                return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_CPU_PACKETS_ID_NUMBER_OF_PACKETS)) != 0)
+    {
+        if (this->number_of_packets > 32)
+        {
+            *failed_prop = BCMOLT_XGPON_ONU_CPU_PACKETS_ID_NUMBER_OF_PACKETS;
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_CPU_PACKETS_ID_PACKET_SIZE)) != 0)
+    {
+        if (this->packet_size > 2000)
+        {
+            *failed_prop = BCMOLT_XGPON_ONU_CPU_PACKETS_ID_PACKET_SIZE;
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_CPU_PACKETS_ID_BUFFER)) != 0)
+    {
+        if (this->buffer.len > 2048)
+        {
+            return BCMOS_FALSE;
+        }
+
+        if (!bcmolt_u8_list_u32_max_2048_bounds_check(&this->buffer))
+        {
+            *failed_prop = BCMOLT_XGPON_ONU_CPU_PACKETS_ID_BUFFER;
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_xgpon_onu_ploam_packet_data_set_default(bcmolt_xgpon_onu_ploam_packet_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_PLOAM_PACKET_ID_DEFAULT_KEY)) != 0)
+    {
+        this->default_key = BCMOS_FALSE;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_PLOAM_PACKET_ID_PLOAM)) != 0)
+    {
+        memset(this->ploam.arr, 0, sizeof(this->ploam.arr));
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_ploam_packet_data_pack(const bcmolt_xgpon_onu_ploam_packet_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_PLOAM_PACKET_ID_DEFAULT_KEY)) != 0)
+    {
+        if (!bcmolt_buf_write_bool(buf, this->default_key))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_PLOAM_PACKET_ID_PLOAM)) != 0)
+    {
+        if (!bcmolt_arr_u8_40_pack(&this->ploam, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_xgpon_onu_ploam_packet_data_get_packed_length(const bcmolt_xgpon_onu_ploam_packet_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_PLOAM_PACKET_ID_DEFAULT_KEY)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_PLOAM_PACKET_ID_PLOAM)) != 0)
+    {
+        count += 40;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_ploam_packet_data_unpack(bcmolt_xgpon_onu_ploam_packet_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_PLOAM_PACKET_ID_DEFAULT_KEY)) != 0)
+    {
+        if (!bcmolt_buf_read_bool(buf, &this->default_key))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_PLOAM_PACKET_ID_PLOAM)) != 0)
+    {
+        if (!bcmolt_arr_u8_40_unpack(&this->ploam, buf, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_ploam_packet_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_PLOAM_PACKET_ID_DEFAULT_KEY)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_PLOAM_PACKET_ID_PLOAM)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 40))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_ploam_packet_data_bounds_check(const bcmolt_xgpon_onu_ploam_packet_data *this, bcmolt_presence_mask fields_present, bcmolt_xgpon_onu_ploam_packet_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_PLOAM_PACKET_ID_PLOAM)) != 0)
+    {
+        if (!bcmolt_arr_u8_40_bounds_check(&this->ploam))
+        {
+            *failed_prop = BCMOLT_XGPON_ONU_PLOAM_PACKET_ID_PLOAM;
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_xgpon_onu_cpu_packet_data_set_default(bcmolt_xgpon_onu_cpu_packet_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_CPU_PACKET_ID_PORT_ID)) != 0)
+    {
+        this->port_id = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_CPU_PACKET_ID_CRC_OK)) != 0)
+    {
+        this->crc_ok = BCMOS_FALSE;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_CPU_PACKET_ID_PACKET_SIZE)) != 0)
+    {
+        this->packet_size = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_CPU_PACKET_ID_BUFFER)) != 0)
+    {
+        this->buffer.len = 0;
+        this->buffer.val = NULL;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_cpu_packet_data_pack(const bcmolt_xgpon_onu_cpu_packet_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_CPU_PACKET_ID_PORT_ID)) != 0)
+    {
+        if (!bcmolt_buf_write_u16(buf, this->port_id))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_CPU_PACKET_ID_CRC_OK)) != 0)
+    {
+        if (!bcmolt_buf_write_bool(buf, this->crc_ok))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_CPU_PACKET_ID_PACKET_SIZE)) != 0)
+    {
+        if (!bcmolt_buf_write_u32(buf, this->packet_size))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_CPU_PACKET_ID_BUFFER)) != 0)
+    {
+        if (!bcmolt_u8_list_u32_pack(&this->buffer, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_xgpon_onu_cpu_packet_data_get_packed_length(const bcmolt_xgpon_onu_cpu_packet_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_CPU_PACKET_ID_PORT_ID)) != 0)
+    {
+        count += 2;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_CPU_PACKET_ID_CRC_OK)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_CPU_PACKET_ID_PACKET_SIZE)) != 0)
+    {
+        count += 4;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_CPU_PACKET_ID_BUFFER)) != 0)
+    {
+        count += bcmolt_u8_list_u32_get_packed_length(&this->buffer);
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_cpu_packet_data_unpack(bcmolt_xgpon_onu_cpu_packet_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_CPU_PACKET_ID_PORT_ID)) != 0)
+    {
+        if (!bcmolt_buf_read_u16(buf, &this->port_id))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_CPU_PACKET_ID_CRC_OK)) != 0)
+    {
+        if (!bcmolt_buf_read_bool(buf, &this->crc_ok))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_CPU_PACKET_ID_PACKET_SIZE)) != 0)
+    {
+        if (!bcmolt_buf_read_u32(buf, &this->packet_size))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_CPU_PACKET_ID_BUFFER)) != 0)
+    {
+        if (!bcmolt_u8_list_u32_unpack(&this->buffer, buf, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_cpu_packet_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_CPU_PACKET_ID_PORT_ID)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 2))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_CPU_PACKET_ID_CRC_OK)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_CPU_PACKET_ID_PACKET_SIZE)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 4))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_CPU_PACKET_ID_BUFFER)) != 0)
+    {
+        if (!bcmolt_u8_list_u32_scan(packed, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_cpu_packet_data_bounds_check(const bcmolt_xgpon_onu_cpu_packet_data *this, bcmolt_presence_mask fields_present, bcmolt_xgpon_onu_cpu_packet_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_CPU_PACKET_ID_BUFFER)) != 0)
+    {
+        if (!bcmolt_u8_list_u32_bounds_check(&this->buffer))
+        {
+            *failed_prop = BCMOLT_XGPON_ONU_CPU_PACKET_ID_BUFFER;
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_xgpon_onu_omci_packet_data_set_default(bcmolt_xgpon_onu_omci_packet_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_OMCI_PACKET_ID_PORT_ID)) != 0)
+    {
+        this->port_id = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_OMCI_PACKET_ID_CRC_OK)) != 0)
+    {
+        this->crc_ok = BCMOS_FALSE;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_OMCI_PACKET_ID_PACKET_SIZE)) != 0)
+    {
+        this->packet_size = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_OMCI_PACKET_ID_BUFFER)) != 0)
+    {
+        this->buffer.len = 0;
+        this->buffer.val = NULL;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_omci_packet_data_pack(const bcmolt_xgpon_onu_omci_packet_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_OMCI_PACKET_ID_PORT_ID)) != 0)
+    {
+        if (!bcmolt_buf_write_u16(buf, this->port_id))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_OMCI_PACKET_ID_CRC_OK)) != 0)
+    {
+        if (!bcmolt_buf_write_bool(buf, this->crc_ok))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_OMCI_PACKET_ID_PACKET_SIZE)) != 0)
+    {
+        if (!bcmolt_buf_write_u32(buf, this->packet_size))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_OMCI_PACKET_ID_BUFFER)) != 0)
+    {
+        if (!bcmolt_u8_list_u32_pack(&this->buffer, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_xgpon_onu_omci_packet_data_get_packed_length(const bcmolt_xgpon_onu_omci_packet_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_OMCI_PACKET_ID_PORT_ID)) != 0)
+    {
+        count += 2;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_OMCI_PACKET_ID_CRC_OK)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_OMCI_PACKET_ID_PACKET_SIZE)) != 0)
+    {
+        count += 4;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_OMCI_PACKET_ID_BUFFER)) != 0)
+    {
+        count += bcmolt_u8_list_u32_get_packed_length(&this->buffer);
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_omci_packet_data_unpack(bcmolt_xgpon_onu_omci_packet_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_OMCI_PACKET_ID_PORT_ID)) != 0)
+    {
+        if (!bcmolt_buf_read_u16(buf, &this->port_id))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_OMCI_PACKET_ID_CRC_OK)) != 0)
+    {
+        if (!bcmolt_buf_read_bool(buf, &this->crc_ok))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_OMCI_PACKET_ID_PACKET_SIZE)) != 0)
+    {
+        if (!bcmolt_buf_read_u32(buf, &this->packet_size))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_OMCI_PACKET_ID_BUFFER)) != 0)
+    {
+        if (!bcmolt_u8_list_u32_unpack(&this->buffer, buf, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_omci_packet_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_OMCI_PACKET_ID_PORT_ID)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 2))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_OMCI_PACKET_ID_CRC_OK)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_OMCI_PACKET_ID_PACKET_SIZE)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 4))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_OMCI_PACKET_ID_BUFFER)) != 0)
+    {
+        if (!bcmolt_u8_list_u32_scan(packed, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_onu_omci_packet_data_bounds_check(const bcmolt_xgpon_onu_omci_packet_data *this, bcmolt_presence_mask fields_present, bcmolt_xgpon_onu_omci_packet_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_ONU_OMCI_PACKET_ID_BUFFER)) != 0)
+    {
+        if (!bcmolt_u8_list_u32_bounds_check(&this->buffer))
+        {
+            *failed_prop = BCMOLT_XGPON_ONU_OMCI_PACKET_ID_BUFFER;
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_xgpon_trx_key_set_default(bcmolt_xgpon_trx_key *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_TRX_KEY_ID_PON_NI)) != 0)
+    {
+        this->pon_ni = (bcmolt_xgpon_ni) 0;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_trx_key_pack(const bcmolt_xgpon_trx_key *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_TRX_KEY_ID_PON_NI)) != 0)
+    {
+        if (!bcmolt_buf_write_u8(buf, (uint8_t) this->pon_ni))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_xgpon_trx_key_get_packed_length(const bcmolt_xgpon_trx_key *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_XGPON_TRX_KEY_ID_PON_NI)) != 0)
+    {
+        count += 1;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_trx_key_unpack(bcmolt_xgpon_trx_key *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_TRX_KEY_ID_PON_NI)) != 0)
+    {
+        if (!bcmolt_buf_read_u8(buf, (uint8_t *) &this->pon_ni))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_trx_key_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_TRX_KEY_ID_PON_NI)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_trx_key_bounds_check(const bcmolt_xgpon_trx_key *this, bcmolt_presence_mask fields_present, bcmolt_xgpon_trx_key_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_TRX_KEY_ID_PON_NI)) != 0)
+    {
+        if (this->pon_ni > (bcmolt_xgpon_ni) 7)
+        {
+            *failed_prop = BCMOLT_XGPON_TRX_KEY_ID_PON_NI;
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_xgpon_trx_cfg_data_set_default(bcmolt_xgpon_trx_cfg_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_TRX_CFG_ID_BURST_PROFILE)) != 0)
+    {
+        this->burst_profile.arr[0].profile_version = 0;
+        this->burst_profile.arr[0].is_fec_on = BCMOS_FALSE;
+        this->burst_profile.arr[0].delimiter_size_in_bytes = 8;
+        this->burst_profile.arr[0].delimiter_pattern_high = 3015562000UL;
+        this->burst_profile.arr[0].delimiter_pattern_low = 2999259041UL;
+        this->burst_profile.arr[0].preamble_length_in_bytes = 8;
+        this->burst_profile.arr[0].preamble_repeats_count = 20;
+        this->burst_profile.arr[0].preamble_pattern_high = 2863311530UL;
+        this->burst_profile.arr[0].preamble_pattern_low = 2863311530UL;
+        this->burst_profile.arr[0].pon_tag = 0;
+        this->burst_profile.arr[0].num_of_guard_bytes = 16;
+        this->burst_profile.arr[0].is_profile_valid = BCMOS_TRUE;
+        this->burst_profile.arr[0].burst_overhead_size_in_words = 78;
+        this->burst_profile.arr[1].profile_version = 0;
+        this->burst_profile.arr[1].is_fec_on = BCMOS_FALSE;
+        this->burst_profile.arr[1].delimiter_size_in_bytes = 8;
+        this->burst_profile.arr[1].delimiter_pattern_high = 3015562000UL;
+        this->burst_profile.arr[1].delimiter_pattern_low = 2999259041UL;
+        this->burst_profile.arr[1].preamble_length_in_bytes = 8;
+        this->burst_profile.arr[1].preamble_repeats_count = 9;
+        this->burst_profile.arr[1].preamble_pattern_high = 2863311530UL;
+        this->burst_profile.arr[1].preamble_pattern_low = 2863311530UL;
+        this->burst_profile.arr[1].pon_tag = 0;
+        this->burst_profile.arr[1].num_of_guard_bytes = 16;
+        this->burst_profile.arr[1].is_profile_valid = BCMOS_TRUE;
+        this->burst_profile.arr[1].burst_overhead_size_in_words = 56;
+        this->burst_profile.arr[2].profile_version = 0;
+        this->burst_profile.arr[2].is_fec_on = BCMOS_TRUE;
+        this->burst_profile.arr[2].delimiter_size_in_bytes = 8;
+        this->burst_profile.arr[2].delimiter_pattern_high = 3015562000UL;
+        this->burst_profile.arr[2].delimiter_pattern_low = 2999259041UL;
+        this->burst_profile.arr[2].preamble_length_in_bytes = 8;
+        this->burst_profile.arr[2].preamble_repeats_count = 20;
+        this->burst_profile.arr[2].preamble_pattern_high = 2863311530UL;
+        this->burst_profile.arr[2].preamble_pattern_low = 2863311530UL;
+        this->burst_profile.arr[2].pon_tag = 0;
+        this->burst_profile.arr[2].num_of_guard_bytes = 16;
+        this->burst_profile.arr[2].is_profile_valid = BCMOS_TRUE;
+        this->burst_profile.arr[2].burst_overhead_size_in_words = 78;
+        this->burst_profile.arr[3].profile_version = 0;
+        this->burst_profile.arr[3].is_fec_on = BCMOS_TRUE;
+        this->burst_profile.arr[3].delimiter_size_in_bytes = 8;
+        this->burst_profile.arr[3].delimiter_pattern_high = 3015562000UL;
+        this->burst_profile.arr[3].delimiter_pattern_low = 2999259041UL;
+        this->burst_profile.arr[3].preamble_length_in_bytes = 8;
+        this->burst_profile.arr[3].preamble_repeats_count = 9;
+        this->burst_profile.arr[3].preamble_pattern_high = 2863311530UL;
+        this->burst_profile.arr[3].preamble_pattern_low = 2863311530UL;
+        this->burst_profile.arr[3].pon_tag = 0;
+        this->burst_profile.arr[3].num_of_guard_bytes = 16;
+        this->burst_profile.arr[3].is_profile_valid = BCMOS_TRUE;
+        this->burst_profile.arr[3].burst_overhead_size_in_words = 56;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_TRX_CFG_ID_TRANSCEIVER_CONFIG)) != 0)
+    {
+        this->transceiver_config.arr[0].trx_reset_pattern_first = 0;
+        this->transceiver_config.arr[0].trx_reset_pattern_middle = 4294967295UL;
+        this->transceiver_config.arr[0].trx_reset_pattern_last = 0;
+        this->transceiver_config.arr[0].trx_reset_middle_repeats_count = 4;
+        this->transceiver_config.arr[0].trx_reset_location = 0;
+        this->transceiver_config.arr[0].trx_reset_polarity = BCMOS_FALSE;
+        this->transceiver_config.arr[0].bcdr_reset_pattern_first = 0;
+        this->transceiver_config.arr[0].bcdr_reset_pattern_middle = 255;
+        this->transceiver_config.arr[0].bcdr_reset_pattern_last = 0;
+        this->transceiver_config.arr[0].bcdr_reset_middle_repeats_count = 1;
+        this->transceiver_config.arr[0].bcdr_reset_location = 20;
+        this->transceiver_config.arr[0].bcdr_reset_polarity = BCMOS_FALSE;
+        this->transceiver_config.arr[1].trx_reset_pattern_first = 0;
+        this->transceiver_config.arr[1].trx_reset_pattern_middle = 4294967295UL;
+        this->transceiver_config.arr[1].trx_reset_pattern_last = 0;
+        this->transceiver_config.arr[1].trx_reset_middle_repeats_count = 4;
+        this->transceiver_config.arr[1].trx_reset_location = 33;
+        this->transceiver_config.arr[1].trx_reset_polarity = BCMOS_FALSE;
+        this->transceiver_config.arr[1].bcdr_reset_pattern_first = 0;
+        this->transceiver_config.arr[1].bcdr_reset_pattern_middle = 255;
+        this->transceiver_config.arr[1].bcdr_reset_pattern_last = 0;
+        this->transceiver_config.arr[1].bcdr_reset_middle_repeats_count = 1;
+        this->transceiver_config.arr[1].bcdr_reset_location = 23;
+        this->transceiver_config.arr[1].bcdr_reset_polarity = BCMOS_FALSE;
+        this->transceiver_config.arr[2].trx_reset_pattern_first = 0;
+        this->transceiver_config.arr[2].trx_reset_pattern_middle = 4294967295UL;
+        this->transceiver_config.arr[2].trx_reset_pattern_last = 0;
+        this->transceiver_config.arr[2].trx_reset_middle_repeats_count = 4;
+        this->transceiver_config.arr[2].trx_reset_location = 0;
+        this->transceiver_config.arr[2].trx_reset_polarity = BCMOS_FALSE;
+        this->transceiver_config.arr[2].bcdr_reset_pattern_first = 0;
+        this->transceiver_config.arr[2].bcdr_reset_pattern_middle = 255;
+        this->transceiver_config.arr[2].bcdr_reset_pattern_last = 0;
+        this->transceiver_config.arr[2].bcdr_reset_middle_repeats_count = 1;
+        this->transceiver_config.arr[2].bcdr_reset_location = 20;
+        this->transceiver_config.arr[2].bcdr_reset_polarity = BCMOS_FALSE;
+        this->transceiver_config.arr[3].trx_reset_pattern_first = 0;
+        this->transceiver_config.arr[3].trx_reset_pattern_middle = 4294967295UL;
+        this->transceiver_config.arr[3].trx_reset_pattern_last = 0;
+        this->transceiver_config.arr[3].trx_reset_middle_repeats_count = 4;
+        this->transceiver_config.arr[3].trx_reset_location = 33;
+        this->transceiver_config.arr[3].trx_reset_polarity = BCMOS_FALSE;
+        this->transceiver_config.arr[3].bcdr_reset_pattern_first = 0;
+        this->transceiver_config.arr[3].bcdr_reset_pattern_middle = 255;
+        this->transceiver_config.arr[3].bcdr_reset_pattern_last = 0;
+        this->transceiver_config.arr[3].bcdr_reset_middle_repeats_count = 1;
+        this->transceiver_config.arr[3].bcdr_reset_location = 23;
+        this->transceiver_config.arr[3].bcdr_reset_polarity = BCMOS_FALSE;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_TRX_CFG_ID_TRANSCEIVER_TYPE)) != 0)
+    {
+        this->transceiver_type = BCMOLT_XGPON_TRX_TYPE_LTH_7222_PC;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_TRX_CFG_ID_DEBUG)) != 0)
+    {
+        this->debug.rx_reversed_polarity = BCMOLT_CONTROL_STATE_DISABLE;
+        this->debug.neg_out_bit = BCMOLT_CONTROL_STATE_DISABLE;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_TRX_CFG_ID_RSSI_NORMAL_CONFIG)) != 0)
+    {
+        this->rssi_normal_config.polarity = BCMOLT_POLARITY_LOW;
+        this->rssi_normal_config.location = 35;
+        this->rssi_normal_config.location_sign = BCMOLT_SIGN_POSITIVE;
+        this->rssi_normal_config.pulse_width = 80;
+        this->rssi_normal_config.minimum_burst = 200;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_TRX_CFG_ID_RSSI_RANGING_CONFIG)) != 0)
+    {
+        this->rssi_ranging_config.start_on_ed = BCMOS_TRUE;
+        this->rssi_ranging_config.frame_delay = 0;
+        this->rssi_ranging_config.word_delay = 20;
+        this->rssi_ranging_config.frame_delay_after_ed = 0;
+        this->rssi_ranging_config.word_delay_after_ed = 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_TRX_CFG_ID_SERDES_CONFIGURATION)) != 0)
+    {
+        this->serdes_configuration.multi_ed_mode = BCMOS_FALSE;
+        this->serdes_configuration.ranging_mode = BCMOLT_XGPON_SERDES_RANGING_MODE_BCDR;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_TRX_CFG_ID_BURST_PROFILE_DELIMITER_MAX_ERRORS)) != 0)
+    {
+        this->burst_profile_delimiter_max_errors.arr[0] = 7;
+        this->burst_profile_delimiter_max_errors.arr[1] = 7;
+        this->burst_profile_delimiter_max_errors.arr[2] = 7;
+        this->burst_profile_delimiter_max_errors.arr[3] = 7;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_TRX_CFG_ID_RANGING_SM_PATTERNS_AT_INIT)) != 0)
+    {
+        this->ranging_sm_patterns_at_init.trx_reset_pattern_first = 4294967295UL;
+        this->ranging_sm_patterns_at_init.trx_reset_pattern_middle = 4294967295UL;
+        this->ranging_sm_patterns_at_init.trx_reset_pattern_last = 4294967295UL;
+        this->ranging_sm_patterns_at_init.trx_reset_middle_repeats = 8;
+        this->ranging_sm_patterns_at_init.trx_reset_location = 2;
+        this->ranging_sm_patterns_at_init.bcdr_reset_pattern_first = 4294967295UL;
+        this->ranging_sm_patterns_at_init.bcdr_reset_pattern_middle = 4294967295UL;
+        this->ranging_sm_patterns_at_init.bcdr_reset_pattern_last = 4294967295UL;
+        this->ranging_sm_patterns_at_init.bcdr_reset_middle_repeats = 4;
+        this->ranging_sm_patterns_at_init.bcdr_reset_location = 2;
+        this->ranging_sm_patterns_at_init.bcdr_reset_polarity = BCMOS_FALSE;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_TRX_CFG_ID_RANGING_SM_PATTERNS_ED_FAILURE)) != 0)
+    {
+        this->ranging_sm_patterns_ed_failure.trx_reset_pattern_first = 0;
+        this->ranging_sm_patterns_ed_failure.trx_reset_pattern_middle = 0;
+        this->ranging_sm_patterns_ed_failure.trx_reset_pattern_last = 0;
+        this->ranging_sm_patterns_ed_failure.trx_reset_middle_repeats = 0;
+        this->ranging_sm_patterns_ed_failure.trx_reset_location = 0;
+        this->ranging_sm_patterns_ed_failure.bcdr_reset_pattern_first = 0;
+        this->ranging_sm_patterns_ed_failure.bcdr_reset_pattern_middle = 0;
+        this->ranging_sm_patterns_ed_failure.bcdr_reset_pattern_last = 0;
+        this->ranging_sm_patterns_ed_failure.bcdr_reset_middle_repeats = 0;
+        this->ranging_sm_patterns_ed_failure.bcdr_reset_location = 0;
+        this->ranging_sm_patterns_ed_failure.bcdr_reset_polarity = BCMOS_FALSE;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_TRX_CFG_ID_RESET_ON_DEL_MISS)) != 0)
+    {
+        this->reset_on_del_miss = BCMOS_FALSE;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_TRX_CFG_ID_ED_STATE)) != 0)
+    {
+        this->ed_state.reset_on_ed_fail = BCMOS_FALSE;
+        this->ed_state.reset_on_ed_success = BCMOS_TRUE;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_TRX_CFG_ID_INVERT_ED)) != 0)
+    {
+        this->invert_ed = BCMOS_FALSE;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_TRX_CFG_ID_END_OF_BURST_RESET)) != 0)
+    {
+        this->end_of_burst_reset = BCMOS_FALSE;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_TRX_CFG_ID_TRX_RST_POLARITY)) != 0)
+    {
+        this->trx_rst_polarity = BCMOS_FALSE;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_trx_cfg_data_pack(const bcmolt_xgpon_trx_cfg_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_TRX_CFG_ID_BURST_PROFILE)) != 0)
+    {
+        if (!bcmolt_arr_xgpon_burst_profile_4_pack(&this->burst_profile, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_TRX_CFG_ID_TRANSCEIVER_CONFIG)) != 0)
+    {
+        if (!bcmolt_arr_xgpon_trx_configuration_4_pack(&this->transceiver_config, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_TRX_CFG_ID_TRANSCEIVER_TYPE)) != 0)
+    {
+        if (!bcmolt_xgpon_trx_type_pack(this->transceiver_type, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_TRX_CFG_ID_DEBUG)) != 0)
+    {
+        if (!bcmolt_xgpon_trx_debug_pack(&this->debug, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_TRX_CFG_ID_RSSI_NORMAL_CONFIG)) != 0)
+    {
+        if (!bcmolt_xgpon_rssi_normal_config_pack(&this->rssi_normal_config, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_TRX_CFG_ID_RSSI_RANGING_CONFIG)) != 0)
+    {
+        if (!bcmolt_xgpon_rssi_ranging_config_pack(&this->rssi_ranging_config, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_TRX_CFG_ID_SERDES_CONFIGURATION)) != 0)
+    {
+        if (!bcmolt_xgpon_serdes_configuration_pack(&this->serdes_configuration, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_TRX_CFG_ID_BURST_PROFILE_DELIMITER_MAX_ERRORS)) != 0)
+    {
+        if (!bcmolt_arr_u8_4_pack(&this->burst_profile_delimiter_max_errors, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_TRX_CFG_ID_RANGING_SM_PATTERNS_AT_INIT)) != 0)
+    {
+        if (!bcmolt_xgpon_rx_ranging_sm_pattern_pack(&this->ranging_sm_patterns_at_init, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_TRX_CFG_ID_RANGING_SM_PATTERNS_ED_FAILURE)) != 0)
+    {
+        if (!bcmolt_xgpon_rx_ranging_sm_pattern_pack(&this->ranging_sm_patterns_ed_failure, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_TRX_CFG_ID_RESET_ON_DEL_MISS)) != 0)
+    {
+        if (!bcmolt_buf_write_bool(buf, this->reset_on_del_miss))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_TRX_CFG_ID_ED_STATE)) != 0)
+    {
+        if (!bcmolt_xgpon_ed_state_pack(&this->ed_state, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_TRX_CFG_ID_INVERT_ED)) != 0)
+    {
+        if (!bcmolt_buf_write_bool(buf, this->invert_ed))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_TRX_CFG_ID_END_OF_BURST_RESET)) != 0)
+    {
+        if (!bcmolt_buf_write_bool(buf, this->end_of_burst_reset))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_TRX_CFG_ID_TRX_RST_POLARITY)) != 0)
+    {
+        if (!bcmolt_buf_write_bool(buf, this->trx_rst_polarity))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_xgpon_trx_cfg_data_get_packed_length(const bcmolt_xgpon_trx_cfg_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_XGPON_TRX_CFG_ID_BURST_PROFILE)) != 0)
+    {
+        count += 152;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_TRX_CFG_ID_TRANSCEIVER_CONFIG)) != 0)
+    {
+        count += 124;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_TRX_CFG_ID_TRANSCEIVER_TYPE)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_TRX_CFG_ID_DEBUG)) != 0)
+    {
+        count += 2;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_TRX_CFG_ID_RSSI_NORMAL_CONFIG)) != 0)
+    {
+        count += 7;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_TRX_CFG_ID_RSSI_RANGING_CONFIG)) != 0)
+    {
+        count += 7;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_TRX_CFG_ID_SERDES_CONFIGURATION)) != 0)
+    {
+        count += 2;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_TRX_CFG_ID_BURST_PROFILE_DELIMITER_MAX_ERRORS)) != 0)
+    {
+        count += 4;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_TRX_CFG_ID_RANGING_SM_PATTERNS_AT_INIT)) != 0)
+    {
+        count += 29;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_TRX_CFG_ID_RANGING_SM_PATTERNS_ED_FAILURE)) != 0)
+    {
+        count += 29;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_TRX_CFG_ID_RESET_ON_DEL_MISS)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_TRX_CFG_ID_ED_STATE)) != 0)
+    {
+        count += 2;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_TRX_CFG_ID_INVERT_ED)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_TRX_CFG_ID_END_OF_BURST_RESET)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_TRX_CFG_ID_TRX_RST_POLARITY)) != 0)
+    {
+        count += 1;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_trx_cfg_data_unpack(bcmolt_xgpon_trx_cfg_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_TRX_CFG_ID_BURST_PROFILE)) != 0)
+    {
+        if (!bcmolt_arr_xgpon_burst_profile_4_unpack(&this->burst_profile, buf, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_TRX_CFG_ID_TRANSCEIVER_CONFIG)) != 0)
+    {
+        if (!bcmolt_arr_xgpon_trx_configuration_4_unpack(&this->transceiver_config, buf, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_TRX_CFG_ID_TRANSCEIVER_TYPE)) != 0)
+    {
+        if (!bcmolt_xgpon_trx_type_unpack(&this->transceiver_type, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_TRX_CFG_ID_DEBUG)) != 0)
+    {
+        if (!bcmolt_xgpon_trx_debug_unpack(&this->debug, buf, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_TRX_CFG_ID_RSSI_NORMAL_CONFIG)) != 0)
+    {
+        if (!bcmolt_xgpon_rssi_normal_config_unpack(&this->rssi_normal_config, buf, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_TRX_CFG_ID_RSSI_RANGING_CONFIG)) != 0)
+    {
+        if (!bcmolt_xgpon_rssi_ranging_config_unpack(&this->rssi_ranging_config, buf, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_TRX_CFG_ID_SERDES_CONFIGURATION)) != 0)
+    {
+        if (!bcmolt_xgpon_serdes_configuration_unpack(&this->serdes_configuration, buf, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_TRX_CFG_ID_BURST_PROFILE_DELIMITER_MAX_ERRORS)) != 0)
+    {
+        if (!bcmolt_arr_u8_4_unpack(&this->burst_profile_delimiter_max_errors, buf, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_TRX_CFG_ID_RANGING_SM_PATTERNS_AT_INIT)) != 0)
+    {
+        if (!bcmolt_xgpon_rx_ranging_sm_pattern_unpack(&this->ranging_sm_patterns_at_init, buf, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_TRX_CFG_ID_RANGING_SM_PATTERNS_ED_FAILURE)) != 0)
+    {
+        if (!bcmolt_xgpon_rx_ranging_sm_pattern_unpack(&this->ranging_sm_patterns_ed_failure, buf, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_TRX_CFG_ID_RESET_ON_DEL_MISS)) != 0)
+    {
+        if (!bcmolt_buf_read_bool(buf, &this->reset_on_del_miss))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_TRX_CFG_ID_ED_STATE)) != 0)
+    {
+        if (!bcmolt_xgpon_ed_state_unpack(&this->ed_state, buf, extra_mem))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_TRX_CFG_ID_INVERT_ED)) != 0)
+    {
+        if (!bcmolt_buf_read_bool(buf, &this->invert_ed))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_TRX_CFG_ID_END_OF_BURST_RESET)) != 0)
+    {
+        if (!bcmolt_buf_read_bool(buf, &this->end_of_burst_reset))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_TRX_CFG_ID_TRX_RST_POLARITY)) != 0)
+    {
+        if (!bcmolt_buf_read_bool(buf, &this->trx_rst_polarity))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_trx_cfg_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_TRX_CFG_ID_BURST_PROFILE)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 152))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_TRX_CFG_ID_TRANSCEIVER_CONFIG)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 124))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_TRX_CFG_ID_TRANSCEIVER_TYPE)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_TRX_CFG_ID_DEBUG)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 2))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_TRX_CFG_ID_RSSI_NORMAL_CONFIG)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 7))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_TRX_CFG_ID_RSSI_RANGING_CONFIG)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 7))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_TRX_CFG_ID_SERDES_CONFIGURATION)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 2))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_TRX_CFG_ID_BURST_PROFILE_DELIMITER_MAX_ERRORS)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 4))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_TRX_CFG_ID_RANGING_SM_PATTERNS_AT_INIT)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 29))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_TRX_CFG_ID_RANGING_SM_PATTERNS_ED_FAILURE)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 29))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_TRX_CFG_ID_RESET_ON_DEL_MISS)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_TRX_CFG_ID_ED_STATE)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 2))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_TRX_CFG_ID_INVERT_ED)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_TRX_CFG_ID_END_OF_BURST_RESET)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_TRX_CFG_ID_TRX_RST_POLARITY)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xgpon_trx_cfg_data_bounds_check(const bcmolt_xgpon_trx_cfg_data *this, bcmolt_presence_mask fields_present, bcmolt_xgpon_trx_cfg_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_XGPON_TRX_CFG_ID_BURST_PROFILE)) != 0)
+    {
+        if (!bcmolt_arr_xgpon_burst_profile_4_bounds_check(&this->burst_profile))
+        {
+            *failed_prop = BCMOLT_XGPON_TRX_CFG_ID_BURST_PROFILE;
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_TRX_CFG_ID_TRANSCEIVER_CONFIG)) != 0)
+    {
+        if (!bcmolt_arr_xgpon_trx_configuration_4_bounds_check(&this->transceiver_config))
+        {
+            *failed_prop = BCMOLT_XGPON_TRX_CFG_ID_TRANSCEIVER_CONFIG;
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_TRX_CFG_ID_TRANSCEIVER_TYPE)) != 0)
+    {
+        switch (this->transceiver_type)
+        {
+            case BCMOLT_XGPON_TRX_TYPE_LTH_7222_PC:
+                break;
+            case BCMOLT_XGPON_TRX_TYPE_USER_DEFINED:
+                break;
+            case BCMOLT_XGPON_TRX_TYPE_WTD_RTXM266_702:
+                break;
+            case BCMOLT_XGPON_TRX_TYPE_LTH_7222_BC_PLUS:
+                break;
+            case BCMOLT_XGPON_TRX_TYPE_LTH_7226_PC:
+                break;
+            case BCMOLT_XGPON_TRX_TYPE_LTH_5302_PC:
+                break;
+            case BCMOLT_XGPON_TRX_TYPE_XGPON_GENERAL_1:
+                break;
+            case BCMOLT_XGPON_TRX_TYPE_XGPON_GENERAL_2:
+                break;
+            case BCMOLT_XGPON_TRX_TYPE_LTW_627_X_PC:
+                break;
+            case BCMOLT_XGPON_TRX_TYPE_XPP_XE_R_3_CDFB:
+                break;
+            default:
+                *failed_prop = BCMOLT_XGPON_TRX_CFG_ID_TRANSCEIVER_TYPE;
+                return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_TRX_CFG_ID_DEBUG)) != 0)
+    {
+        if (!bcmolt_xgpon_trx_debug_bounds_check(&this->debug))
+        {
+            *failed_prop = BCMOLT_XGPON_TRX_CFG_ID_DEBUG;
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_TRX_CFG_ID_RSSI_NORMAL_CONFIG)) != 0)
+    {
+        if (!bcmolt_xgpon_rssi_normal_config_bounds_check(&this->rssi_normal_config))
+        {
+            *failed_prop = BCMOLT_XGPON_TRX_CFG_ID_RSSI_NORMAL_CONFIG;
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_TRX_CFG_ID_RSSI_RANGING_CONFIG)) != 0)
+    {
+        if (!bcmolt_xgpon_rssi_ranging_config_bounds_check(&this->rssi_ranging_config))
+        {
+            *failed_prop = BCMOLT_XGPON_TRX_CFG_ID_RSSI_RANGING_CONFIG;
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_TRX_CFG_ID_SERDES_CONFIGURATION)) != 0)
+    {
+        if (!bcmolt_xgpon_serdes_configuration_bounds_check(&this->serdes_configuration))
+        {
+            *failed_prop = BCMOLT_XGPON_TRX_CFG_ID_SERDES_CONFIGURATION;
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_TRX_CFG_ID_BURST_PROFILE_DELIMITER_MAX_ERRORS)) != 0)
+    {
+        if (!bcmolt_arr_u8_4_bounds_check(&this->burst_profile_delimiter_max_errors))
+        {
+            *failed_prop = BCMOLT_XGPON_TRX_CFG_ID_BURST_PROFILE_DELIMITER_MAX_ERRORS;
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_TRX_CFG_ID_RANGING_SM_PATTERNS_AT_INIT)) != 0)
+    {
+        if (!bcmolt_xgpon_rx_ranging_sm_pattern_bounds_check(&this->ranging_sm_patterns_at_init))
+        {
+            *failed_prop = BCMOLT_XGPON_TRX_CFG_ID_RANGING_SM_PATTERNS_AT_INIT;
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_TRX_CFG_ID_RANGING_SM_PATTERNS_ED_FAILURE)) != 0)
+    {
+        if (!bcmolt_xgpon_rx_ranging_sm_pattern_bounds_check(&this->ranging_sm_patterns_ed_failure))
+        {
+            *failed_prop = BCMOLT_XGPON_TRX_CFG_ID_RANGING_SM_PATTERNS_ED_FAILURE;
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XGPON_TRX_CFG_ID_ED_STATE)) != 0)
+    {
+        if (!bcmolt_xgpon_ed_state_bounds_check(&this->ed_state))
+        {
+            *failed_prop = BCMOLT_XGPON_TRX_CFG_ID_ED_STATE;
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_xpon_serdes_key_set_default(bcmolt_xpon_serdes_key *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XPON_SERDES_KEY_ID_PON_NI)) != 0)
+    {
+        this->pon_ni = (bcmolt_pon_ni) 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XPON_SERDES_KEY_ID_INSTANCE)) != 0)
+    {
+        this->instance = BCMOLT_SERDES_INSTANCE_INSTANCE_0;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xpon_serdes_key_pack(const bcmolt_xpon_serdes_key *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XPON_SERDES_KEY_ID_PON_NI)) != 0)
+    {
+        if (!bcmolt_buf_write_u8(buf, (uint8_t) this->pon_ni))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XPON_SERDES_KEY_ID_INSTANCE)) != 0)
+    {
+        if (!bcmolt_serdes_instance_pack(this->instance, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_xpon_serdes_key_get_packed_length(const bcmolt_xpon_serdes_key *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_XPON_SERDES_KEY_ID_PON_NI)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XPON_SERDES_KEY_ID_INSTANCE)) != 0)
+    {
+        count += 1;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xpon_serdes_key_unpack(bcmolt_xpon_serdes_key *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XPON_SERDES_KEY_ID_PON_NI)) != 0)
+    {
+        if (!bcmolt_buf_read_u8(buf, (uint8_t *) &this->pon_ni))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XPON_SERDES_KEY_ID_INSTANCE)) != 0)
+    {
+        if (!bcmolt_serdes_instance_unpack(&this->instance, buf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xpon_serdes_key_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XPON_SERDES_KEY_ID_PON_NI)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XPON_SERDES_KEY_ID_INSTANCE)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xpon_serdes_key_bounds_check(const bcmolt_xpon_serdes_key *this, bcmolt_presence_mask fields_present, bcmolt_xpon_serdes_key_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_XPON_SERDES_KEY_ID_PON_NI)) != 0)
+    {
+        if (this->pon_ni > (bcmolt_pon_ni) 15)
+        {
+            *failed_prop = BCMOLT_XPON_SERDES_KEY_ID_PON_NI;
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XPON_SERDES_KEY_ID_INSTANCE)) != 0)
+    {
+        switch (this->instance)
+        {
+            case BCMOLT_SERDES_INSTANCE_INSTANCE_0:
+                break;
+            case BCMOLT_SERDES_INSTANCE_INSTANCE_1:
+                break;
+            default:
+                *failed_prop = BCMOLT_XPON_SERDES_KEY_ID_INSTANCE;
+                return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+void bcmolt_xpon_serdes_cfg_data_set_default(bcmolt_xpon_serdes_cfg_data *this, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XPON_SERDES_CFG_ID_RX_VGA)) != 0)
+    {
+        this->rx_vga = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XPON_SERDES_CFG_ID_RX_PF)) != 0)
+    {
+        this->rx_pf = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XPON_SERDES_CFG_ID_RX_LFPF)) != 0)
+    {
+        this->rx_lfpf = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XPON_SERDES_CFG_ID_RX_DFE1)) != 0)
+    {
+        this->rx_dfe1 = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XPON_SERDES_CFG_ID_RX_DFE2)) != 0)
+    {
+        this->rx_dfe2 = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XPON_SERDES_CFG_ID_RX_DFE3)) != 0)
+    {
+        this->rx_dfe3 = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XPON_SERDES_CFG_ID_RX_DFE4)) != 0)
+    {
+        this->rx_dfe4 = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XPON_SERDES_CFG_ID_RX_DFE5)) != 0)
+    {
+        this->rx_dfe5 = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XPON_SERDES_CFG_ID_TX_PRE)) != 0)
+    {
+        this->tx_pre = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XPON_SERDES_CFG_ID_TX_MAIN)) != 0)
+    {
+        this->tx_main = 43;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XPON_SERDES_CFG_ID_TX_POST1)) != 0)
+    {
+        this->tx_post1 = 5;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XPON_SERDES_CFG_ID_TX_POST2)) != 0)
+    {
+        this->tx_post2 = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XPON_SERDES_CFG_ID_TX_POST3)) != 0)
+    {
+        this->tx_post3 = 0;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XPON_SERDES_CFG_ID_TX_AMP)) != 0)
+    {
+        this->tx_amp = 12;
+    }
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xpon_serdes_cfg_data_pack(const bcmolt_xpon_serdes_cfg_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XPON_SERDES_CFG_ID_RX_VGA)) != 0)
+    {
+        if (!bcmolt_buf_write_u8(buf, this->rx_vga))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XPON_SERDES_CFG_ID_RX_PF)) != 0)
+    {
+        if (!bcmolt_buf_write_u8(buf, this->rx_pf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XPON_SERDES_CFG_ID_RX_LFPF)) != 0)
+    {
+        if (!bcmolt_buf_write_u8(buf, this->rx_lfpf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XPON_SERDES_CFG_ID_RX_DFE1)) != 0)
+    {
+        if (!bcmolt_buf_write_u8(buf, this->rx_dfe1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XPON_SERDES_CFG_ID_RX_DFE2)) != 0)
+    {
+        if (!bcmolt_buf_write_s8(buf, this->rx_dfe2))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XPON_SERDES_CFG_ID_RX_DFE3)) != 0)
+    {
+        if (!bcmolt_buf_write_s8(buf, this->rx_dfe3))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XPON_SERDES_CFG_ID_RX_DFE4)) != 0)
+    {
+        if (!bcmolt_buf_write_s8(buf, this->rx_dfe4))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XPON_SERDES_CFG_ID_RX_DFE5)) != 0)
+    {
+        if (!bcmolt_buf_write_s8(buf, this->rx_dfe5))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XPON_SERDES_CFG_ID_TX_PRE)) != 0)
+    {
+        if (!bcmolt_buf_write_u8(buf, this->tx_pre))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XPON_SERDES_CFG_ID_TX_MAIN)) != 0)
+    {
+        if (!bcmolt_buf_write_u8(buf, this->tx_main))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XPON_SERDES_CFG_ID_TX_POST1)) != 0)
+    {
+        if (!bcmolt_buf_write_u8(buf, this->tx_post1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XPON_SERDES_CFG_ID_TX_POST2)) != 0)
+    {
+        if (!bcmolt_buf_write_s8(buf, this->tx_post2))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XPON_SERDES_CFG_ID_TX_POST3)) != 0)
+    {
+        if (!bcmolt_buf_write_s8(buf, this->tx_post3))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XPON_SERDES_CFG_ID_TX_AMP)) != 0)
+    {
+        if (!bcmolt_buf_write_u8(buf, this->tx_amp))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+uint32_t bcmolt_xpon_serdes_cfg_data_get_packed_length(const bcmolt_xpon_serdes_cfg_data *this, bcmolt_presence_mask fields_present)
+{
+    uint32_t count = 0;
+    if ((fields_present & (1ULL << BCMOLT_XPON_SERDES_CFG_ID_RX_VGA)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XPON_SERDES_CFG_ID_RX_PF)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XPON_SERDES_CFG_ID_RX_LFPF)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XPON_SERDES_CFG_ID_RX_DFE1)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XPON_SERDES_CFG_ID_RX_DFE2)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XPON_SERDES_CFG_ID_RX_DFE3)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XPON_SERDES_CFG_ID_RX_DFE4)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XPON_SERDES_CFG_ID_RX_DFE5)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XPON_SERDES_CFG_ID_TX_PRE)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XPON_SERDES_CFG_ID_TX_MAIN)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XPON_SERDES_CFG_ID_TX_POST1)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XPON_SERDES_CFG_ID_TX_POST2)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XPON_SERDES_CFG_ID_TX_POST3)) != 0)
+    {
+        count += 1;
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XPON_SERDES_CFG_ID_TX_AMP)) != 0)
+    {
+        count += 1;
+    }
+
+    return count;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xpon_serdes_cfg_data_unpack(bcmolt_xpon_serdes_cfg_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XPON_SERDES_CFG_ID_RX_VGA)) != 0)
+    {
+        if (!bcmolt_buf_read_u8(buf, &this->rx_vga))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XPON_SERDES_CFG_ID_RX_PF)) != 0)
+    {
+        if (!bcmolt_buf_read_u8(buf, &this->rx_pf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XPON_SERDES_CFG_ID_RX_LFPF)) != 0)
+    {
+        if (!bcmolt_buf_read_u8(buf, &this->rx_lfpf))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XPON_SERDES_CFG_ID_RX_DFE1)) != 0)
+    {
+        if (!bcmolt_buf_read_u8(buf, &this->rx_dfe1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XPON_SERDES_CFG_ID_RX_DFE2)) != 0)
+    {
+        if (!bcmolt_buf_read_s8(buf, &this->rx_dfe2))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XPON_SERDES_CFG_ID_RX_DFE3)) != 0)
+    {
+        if (!bcmolt_buf_read_s8(buf, &this->rx_dfe3))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XPON_SERDES_CFG_ID_RX_DFE4)) != 0)
+    {
+        if (!bcmolt_buf_read_s8(buf, &this->rx_dfe4))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XPON_SERDES_CFG_ID_RX_DFE5)) != 0)
+    {
+        if (!bcmolt_buf_read_s8(buf, &this->rx_dfe5))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XPON_SERDES_CFG_ID_TX_PRE)) != 0)
+    {
+        if (!bcmolt_buf_read_u8(buf, &this->tx_pre))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XPON_SERDES_CFG_ID_TX_MAIN)) != 0)
+    {
+        if (!bcmolt_buf_read_u8(buf, &this->tx_main))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XPON_SERDES_CFG_ID_TX_POST1)) != 0)
+    {
+        if (!bcmolt_buf_read_u8(buf, &this->tx_post1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XPON_SERDES_CFG_ID_TX_POST2)) != 0)
+    {
+        if (!bcmolt_buf_read_s8(buf, &this->tx_post2))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XPON_SERDES_CFG_ID_TX_POST3)) != 0)
+    {
+        if (!bcmolt_buf_read_s8(buf, &this->tx_post3))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XPON_SERDES_CFG_ID_TX_AMP)) != 0)
+    {
+        if (!bcmolt_buf_read_u8(buf, &this->tx_amp))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xpon_serdes_cfg_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present)
+{
+    if ((fields_present & (1ULL << BCMOLT_XPON_SERDES_CFG_ID_RX_VGA)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XPON_SERDES_CFG_ID_RX_PF)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XPON_SERDES_CFG_ID_RX_LFPF)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XPON_SERDES_CFG_ID_RX_DFE1)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XPON_SERDES_CFG_ID_RX_DFE2)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XPON_SERDES_CFG_ID_RX_DFE3)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XPON_SERDES_CFG_ID_RX_DFE4)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XPON_SERDES_CFG_ID_RX_DFE5)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XPON_SERDES_CFG_ID_TX_PRE)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XPON_SERDES_CFG_ID_TX_MAIN)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XPON_SERDES_CFG_ID_TX_POST1)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XPON_SERDES_CFG_ID_TX_POST2)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XPON_SERDES_CFG_ID_TX_POST3)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XPON_SERDES_CFG_ID_TX_AMP)) != 0)
+    {
+        if (!bcmolt_buf_skip(packed, 1))
+        {
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+bcmos_bool bcmolt_xpon_serdes_cfg_data_bounds_check(const bcmolt_xpon_serdes_cfg_data *this, bcmolt_presence_mask fields_present, bcmolt_xpon_serdes_cfg_id *failed_prop)
+{
+    if ((fields_present & (1ULL << BCMOLT_XPON_SERDES_CFG_ID_RX_VGA)) != 0)
+    {
+        if (this->rx_vga > 45)
+        {
+            *failed_prop = BCMOLT_XPON_SERDES_CFG_ID_RX_VGA;
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XPON_SERDES_CFG_ID_RX_PF)) != 0)
+    {
+        if (this->rx_pf > 15)
+        {
+            *failed_prop = BCMOLT_XPON_SERDES_CFG_ID_RX_PF;
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XPON_SERDES_CFG_ID_RX_LFPF)) != 0)
+    {
+        if (this->rx_lfpf > 7)
+        {
+            *failed_prop = BCMOLT_XPON_SERDES_CFG_ID_RX_LFPF;
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XPON_SERDES_CFG_ID_RX_DFE1)) != 0)
+    {
+        if (this->rx_dfe1 > 63)
+        {
+            *failed_prop = BCMOLT_XPON_SERDES_CFG_ID_RX_DFE1;
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XPON_SERDES_CFG_ID_RX_DFE2)) != 0)
+    {
+        if (this->rx_dfe2 < -31)
+        {
+            *failed_prop = BCMOLT_XPON_SERDES_CFG_ID_RX_DFE2;
+            return BCMOS_FALSE;
+        }
+
+        if (this->rx_dfe2 > 31)
+        {
+            *failed_prop = BCMOLT_XPON_SERDES_CFG_ID_RX_DFE2;
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XPON_SERDES_CFG_ID_RX_DFE3)) != 0)
+    {
+        if (this->rx_dfe3 < -31)
+        {
+            *failed_prop = BCMOLT_XPON_SERDES_CFG_ID_RX_DFE3;
+            return BCMOS_FALSE;
+        }
+
+        if (this->rx_dfe3 > 31)
+        {
+            *failed_prop = BCMOLT_XPON_SERDES_CFG_ID_RX_DFE3;
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XPON_SERDES_CFG_ID_RX_DFE4)) != 0)
+    {
+        if (this->rx_dfe4 < -15)
+        {
+            *failed_prop = BCMOLT_XPON_SERDES_CFG_ID_RX_DFE4;
+            return BCMOS_FALSE;
+        }
+
+        if (this->rx_dfe4 > 15)
+        {
+            *failed_prop = BCMOLT_XPON_SERDES_CFG_ID_RX_DFE4;
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XPON_SERDES_CFG_ID_RX_DFE5)) != 0)
+    {
+        if (this->rx_dfe5 < -15)
+        {
+            *failed_prop = BCMOLT_XPON_SERDES_CFG_ID_RX_DFE5;
+            return BCMOS_FALSE;
+        }
+
+        if (this->rx_dfe5 > 15)
+        {
+            *failed_prop = BCMOLT_XPON_SERDES_CFG_ID_RX_DFE5;
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XPON_SERDES_CFG_ID_TX_PRE)) != 0)
+    {
+        if (this->tx_pre > 31)
+        {
+            *failed_prop = BCMOLT_XPON_SERDES_CFG_ID_TX_PRE;
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XPON_SERDES_CFG_ID_TX_MAIN)) != 0)
+    {
+        if (this->tx_main > 112)
+        {
+            *failed_prop = BCMOLT_XPON_SERDES_CFG_ID_TX_MAIN;
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XPON_SERDES_CFG_ID_TX_POST1)) != 0)
+    {
+        if (this->tx_post1 > 63)
+        {
+            *failed_prop = BCMOLT_XPON_SERDES_CFG_ID_TX_POST1;
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XPON_SERDES_CFG_ID_TX_POST2)) != 0)
+    {
+        if (this->tx_post2 < -15)
+        {
+            *failed_prop = BCMOLT_XPON_SERDES_CFG_ID_TX_POST2;
+            return BCMOS_FALSE;
+        }
+
+        if (this->tx_post2 > 15)
+        {
+            *failed_prop = BCMOLT_XPON_SERDES_CFG_ID_TX_POST2;
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XPON_SERDES_CFG_ID_TX_POST3)) != 0)
+    {
+        if (this->tx_post3 < -7)
+        {
+            *failed_prop = BCMOLT_XPON_SERDES_CFG_ID_TX_POST3;
+            return BCMOS_FALSE;
+        }
+
+        if (this->tx_post3 > 7)
+        {
+            *failed_prop = BCMOLT_XPON_SERDES_CFG_ID_TX_POST3;
+            return BCMOS_FALSE;
+        }
+    }
+
+    if ((fields_present & (1ULL << BCMOLT_XPON_SERDES_CFG_ID_TX_AMP)) != 0)
+    {
+        if (this->tx_amp > 15)
+        {
+            *failed_prop = BCMOLT_XPON_SERDES_CFG_ID_TX_AMP;
+            return BCMOS_FALSE;
+        }
+    }
+
+    return BCMOS_TRUE;
+}
+
+bcmos_bool bcmolt_obj_has_tag(bcmolt_obj_id obj, bcmolt_obj_tag tag)
+{
+    switch (obj)
+    {
+        case BCMOLT_OBJ_ID_AE_NI:
+            return (tag == BCMOLT_OBJ_TAG_AE);
+        case BCMOLT_OBJ_ID_AE_PATH_DS:
+            return (tag == BCMOLT_OBJ_TAG_AE);
+        case BCMOLT_OBJ_ID_AE_PATH_US:
+            return (tag == BCMOLT_OBJ_TAG_AE);
+        case BCMOLT_OBJ_ID_CHANNEL:
+            return (tag == BCMOLT_OBJ_TAG_XGPON);
+        case BCMOLT_OBJ_ID_DEBUG:
+            return (((tag == BCMOLT_OBJ_TAG_EPON) || (tag == BCMOLT_OBJ_TAG_GPON)) || (tag == BCMOLT_OBJ_TAG_XGPON));
+        case BCMOLT_OBJ_ID_DEVICE:
+            return ((((tag == BCMOLT_OBJ_TAG_EPON) || (tag == BCMOLT_OBJ_TAG_GPON)) || (tag == BCMOLT_OBJ_TAG_XGPON)) || (tag == BCMOLT_OBJ_TAG_AE));
+        case BCMOLT_OBJ_ID_EPON_DENIED_LINK:
+            return (tag == BCMOLT_OBJ_TAG_EPON);
+        case BCMOLT_OBJ_ID_EPON_LINK:
+            return (tag == BCMOLT_OBJ_TAG_EPON);
+        case BCMOLT_OBJ_ID_EPON_NI:
+            return (tag == BCMOLT_OBJ_TAG_EPON);
+        case BCMOLT_OBJ_ID_EPON_ONU_10G_US:
+            return (tag == BCMOLT_OBJ_TAG_EPON);
+        case BCMOLT_OBJ_ID_EPON_ONU_1G_US:
+            return (tag == BCMOLT_OBJ_TAG_EPON);
+        case BCMOLT_OBJ_ID_EPON_PATH_10G_DS:
+            return (tag == BCMOLT_OBJ_TAG_EPON);
+        case BCMOLT_OBJ_ID_EPON_PATH_10G_US:
+            return (tag == BCMOLT_OBJ_TAG_EPON);
+        case BCMOLT_OBJ_ID_EPON_PATH_1G_DS:
+            return (tag == BCMOLT_OBJ_TAG_EPON);
+        case BCMOLT_OBJ_ID_EPON_PATH_1G_US:
+            return (tag == BCMOLT_OBJ_TAG_EPON);
+        case BCMOLT_OBJ_ID_EPON_RP:
+            return (tag == BCMOLT_OBJ_TAG_EPON);
+        case BCMOLT_OBJ_ID_GPIO:
+            return ((((tag == BCMOLT_OBJ_TAG_EPON) || (tag == BCMOLT_OBJ_TAG_GPON)) || (tag == BCMOLT_OBJ_TAG_XGPON)) || (tag == BCMOLT_OBJ_TAG_AE));
+        case BCMOLT_OBJ_ID_GPON_ALLOC:
+            return (tag == BCMOLT_OBJ_TAG_GPON);
+        case BCMOLT_OBJ_ID_GPON_GEM_PORT:
+            return (tag == BCMOLT_OBJ_TAG_GPON);
+        case BCMOLT_OBJ_ID_GPON_IWF:
+            return (tag == BCMOLT_OBJ_TAG_GPON);
+        case BCMOLT_OBJ_ID_GPON_IWF_DS_EGRESS_FLOW:
+            return (tag == BCMOLT_OBJ_TAG_GPON);
+        case BCMOLT_OBJ_ID_GPON_IWF_DS_INGRESS_FLOW:
+            return (tag == BCMOLT_OBJ_TAG_GPON);
+        case BCMOLT_OBJ_ID_GPON_IWF_MAC_TABLE:
+            return (tag == BCMOLT_OBJ_TAG_GPON);
+        case BCMOLT_OBJ_ID_GPON_IWF_US_FLOW:
+            return (tag == BCMOLT_OBJ_TAG_GPON);
+        case BCMOLT_OBJ_ID_GPON_NI:
+            return (tag == BCMOLT_OBJ_TAG_GPON);
+        case BCMOLT_OBJ_ID_GPON_ONU:
+            return (tag == BCMOLT_OBJ_TAG_GPON);
+        case BCMOLT_OBJ_ID_GPON_TRX:
+            return (tag == BCMOLT_OBJ_TAG_GPON);
+        case BCMOLT_OBJ_ID_LOG_ENTRY:
+            return (((tag == BCMOLT_OBJ_TAG_XGPON) || (tag == BCMOLT_OBJ_TAG_GPON)) || (tag == BCMOLT_OBJ_TAG_EPON));
+        case BCMOLT_OBJ_ID_LOGGER:
+            return (((tag == BCMOLT_OBJ_TAG_GPON) || (tag == BCMOLT_OBJ_TAG_XGPON)) || (tag == BCMOLT_OBJ_TAG_EPON));
+        case BCMOLT_OBJ_ID_NNI:
+            return ((((tag == BCMOLT_OBJ_TAG_GPON) || (tag == BCMOLT_OBJ_TAG_XGPON)) || (tag == BCMOLT_OBJ_TAG_EPON)) || (tag == BCMOLT_OBJ_TAG_AE));
+        case BCMOLT_OBJ_ID_NNI_SERDES:
+            return ((((tag == BCMOLT_OBJ_TAG_GPON) || (tag == BCMOLT_OBJ_TAG_XGPON)) || (tag == BCMOLT_OBJ_TAG_EPON)) || (tag == BCMOLT_OBJ_TAG_AE));
+        case BCMOLT_OBJ_ID_SOFTWARE_ERROR:
+            return ((((tag == BCMOLT_OBJ_TAG_GPON) || (tag == BCMOLT_OBJ_TAG_XGPON)) || (tag == BCMOLT_OBJ_TAG_EPON)) || (tag == BCMOLT_OBJ_TAG_AE));
+        case BCMOLT_OBJ_ID_TRX_CALIBRATION:
+            return (((tag == BCMOLT_OBJ_TAG_GPON) || (tag == BCMOLT_OBJ_TAG_XGPON)) || (tag == BCMOLT_OBJ_TAG_EPON));
+        case BCMOLT_OBJ_ID_XGPON_ALLOC:
+            return (tag == BCMOLT_OBJ_TAG_XGPON);
+        case BCMOLT_OBJ_ID_XGPON_GEM_PORT:
+            return (tag == BCMOLT_OBJ_TAG_XGPON);
+        case BCMOLT_OBJ_ID_XGPON_IWF:
+            return (tag == BCMOLT_OBJ_TAG_XGPON);
+        case BCMOLT_OBJ_ID_XGPON_NI:
+            return (tag == BCMOLT_OBJ_TAG_XGPON);
+        case BCMOLT_OBJ_ID_XGPON_ONU:
+            return (tag == BCMOLT_OBJ_TAG_XGPON);
+        case BCMOLT_OBJ_ID_XGPON_TRX:
+            return (tag == BCMOLT_OBJ_TAG_XGPON);
+        case BCMOLT_OBJ_ID_XPON_SERDES:
+            return ((((tag == BCMOLT_OBJ_TAG_GPON) || (tag == BCMOLT_OBJ_TAG_XGPON)) || (tag == BCMOLT_OBJ_TAG_EPON)) || (tag == BCMOLT_OBJ_TAG_AE));
+        default:
+            return BCMOS_FALSE;
+    }
+}
+
+/* Maple device selected as a target for CLI commands */
+bcmolt_devid current_device;
+
+/* System mode */
+static bcmolt_system_mode device_system_mode[BCMTR_MAX_OLTS];
+
+/** Set system mode
+ * \param[in]  dev            Device id
+ * \param[in]  system_mode    System mode
+ * \returns BCM_ERR_OK, BCM_ERR_NOT_SUPPORTED
+ */
+bcmos_errno bcmolt_system_mode_set(bcmolt_devid dev, bcmolt_system_mode system_mode)
+{
+    if (dev >= BCMTR_MAX_OLTS) return BCM_ERR_PARM;
+    device_system_mode[dev] = system_mode;
+    return BCM_ERR_OK;
+}
+
+/** Get system mode
+ * \param[in]  dev            Device id
+ * \param[in]  system_mode    System mode
+ * \returns BCM_ERR_OK
+ */
+bcmos_errno bcmolt_system_mode_get(bcmolt_devid dev, bcmolt_system_mode *system_mode)
+{
+    if (dev >= BCMTR_MAX_OLTS) return BCM_ERR_PARM;
+    *system_mode = device_system_mode[dev];
+    return BCM_ERR_OK;
+}
+
+/** Mapping of system mode to object tag.
+ * This function is hand-written and must be updated whenever a new system mode is added or object tags change.
+ */
+bcmos_bool bcmolt_obj_tag_valid_for_system_mode(bcmolt_system_mode system_mode, bcmolt_obj_tag tag)
+{
+    switch (system_mode)
+    {
+        case BCMOLT_SYSTEM_MODE_GPON__16_X: /* Fall-through */
+        case BCMOLT_SYSTEM_MODE_GPON__8_X:
+        case BCMOLT_SYSTEM_MODE_GPON__4_X:
+            return tag == BCMOLT_OBJ_TAG_GPON;
+        case BCMOLT_SYSTEM_MODE_EPON__16_X:
+        case BCMOLT_SYSTEM_MODE_EPON__8_X:
+        case BCMOLT_SYSTEM_MODE_EPON__4_X:
+        case BCMOLT_SYSTEM_MODE_EPON__8_X_COEXISTENCE_TDMA:
+        case BCMOLT_SYSTEM_MODE_EPON__4_X_COEXISTENCE_TDMA:
+        case BCMOLT_SYSTEM_MODE_EPON__8_X_10_G:
+        case BCMOLT_SYSTEM_MODE_EPON__4_X_10_G:
+        case BCMOLT_SYSTEM_MODE_EPON__2_X_10_G:
+            return tag == BCMOLT_OBJ_TAG_EPON;
+        case BCMOLT_SYSTEM_MODE_XGPON_1__8_X:
+        case BCMOLT_SYSTEM_MODE_XGPON_1__4_X:
+        case BCMOLT_SYSTEM_MODE_XGS__2_X_10_G:
+        case BCMOLT_SYSTEM_MODE_NGPON2__2_X_10_G:
+        case BCMOLT_SYSTEM_MODE_NGPON2__8_X_2_P_5_G:
+            return tag == BCMOLT_OBJ_TAG_XGPON;
+        case BCMOLT_SYSTEM_MODE_GPON_8_XGPON_4_X_COEXISTENCE:
+            return tag == BCMOLT_OBJ_TAG_GPON || tag == BCMOLT_OBJ_TAG_XGPON;
+        case BCMOLT_SYSTEM_MODE_AE_8_X:
+            return tag == BCMOLT_OBJ_TAG_AE;
+        default:
+            return BCMOS_FALSE;
+    }
+}
+
+bcmos_bool bcmolt_object_is_supported(bcmolt_system_mode system_mode, bcmolt_obj_id obj)
+{
+    bcmolt_obj_tag tag;
+
+    for (tag = 0; tag < BCMOLT_OBJ_TAG__NUM_OF; tag++)
+    {
+        if (bcmolt_obj_tag_valid_for_system_mode(system_mode, tag) && bcmolt_obj_has_tag(obj, tag))
+        {
+            return BCMOS_TRUE;
+        }
+    }
+
+    return BCMOS_FALSE;
+}
+
+const char *bcmolt_system_mode_name(bcmolt_system_mode mode)
+{
+    static const char *mode_name[] = { [BCMOLT_SYSTEM_MODE_GPON__16_X] = "GPON_16", [BCMOLT_SYSTEM_MODE_GPON__8_X] = "GPON_8", [BCMOLT_SYSTEM_MODE_GPON__4_X] = "GPON_4", [BCMOLT_SYSTEM_MODE_EPON__16_X] = "EPON_16", [BCMOLT_SYSTEM_MODE_EPON__8_X] = "EPON_8", [BCMOLT_SYSTEM_MODE_EPON__4_X] = "EPON_4", [BCMOLT_SYSTEM_MODE_XGPON_1__8_X] = "XGPON1_8", [BCMOLT_SYSTEM_MODE_EPON__8_X_COEXISTENCE_TDMA] = "EPON_8_TDMA", [BCMOLT_SYSTEM_MODE_EPON__4_X_COEXISTENCE_TDMA] = "EPON_4_TDMA", [BCMOLT_SYSTEM_MODE_EPON__8_X_10_G] = "EPON_8_10G", [BCMOLT_SYSTEM_MODE_EPON__4_X_10_G] = "EPON_4_10G", [BCMOLT_SYSTEM_MODE_GPON_8_XGPON_4_X_COEXISTENCE] = "GPON_8_XGPON_4", [BCMOLT_SYSTEM_MODE_AE_8_X] = "AE_8", [BCMOLT_SYSTEM_MODE_XGS__2_X_10_G] = "XGS_2_10G", [BCMOLT_SYSTEM_MODE_NGPON2__2_X_10_G] = "NGPON2_2_10G", [BCMOLT_SYSTEM_MODE_NGPON2__8_X_2_P_5_G] = "NGPON2_2_2_5G", [BCMOLT_SYSTEM_MODE_XGPON_1__4_X] = "XGPON1_4", [BCMOLT_SYSTEM_MODE_EPON__2_X_10_G] = "EPON_2_10G", };
+
+    const char *unset = "*unconfigured*";
+    const char *invalid = "*invalid*";
+
+    if (mode >= BCMOLT_SYSTEM_MODE__NUM_OF)
+    {
+        return unset;
+    }
+
+    if (mode_name[mode] == NULL)
+    {
+        return invalid;
+    }
+
+    return mode_name[mode];
+}
+
+/* XGPON num of onus */
+static bcmolt_xgpon_num_of_onus device_xgpon_num_of_onus[BCMTR_MAX_OLTS];
+
+/** Set xgpon num of onus
+ * \param[in]  dev            Device id
+ * \param[in]  xgpon_num_of_onus    XGPON num of onus
+ * \returns BCM_ERR_OK, BCM_ERR_PARM
+ */
+bcmos_errno bcmolt_xgpon_num_of_onus_set(bcmolt_devid dev, bcmolt_xgpon_num_of_onus xgpon_num_of_onus)
+{
+    if (dev >= BCMTR_MAX_OLTS) return BCM_ERR_PARM;
+    device_xgpon_num_of_onus[dev] = xgpon_num_of_onus;
+    return BCM_ERR_OK;
+}
+
+/** Get xgpon num of onus
+ * \param[in]  dev            Device id
+ * \param[in]  xgpon_num_of_onus    XGPON num of onus
+ * \returns BCM_ERR_OK, BCM_ERR_PARM
+ */
+bcmos_errno bcmolt_xgpon_num_of_onus_get(bcmolt_devid dev, bcmolt_xgpon_num_of_onus *xgpon_num_of_onus)
+{
+    if (dev >= BCMTR_MAX_OLTS) return BCM_ERR_PARM;
+    *xgpon_num_of_onus = device_xgpon_num_of_onus[dev];
+    return BCM_ERR_OK;
+}
diff --git a/bcm68620_release/release/host_driver/model/bcmolt_model_types.h b/bcm68620_release/release/host_driver/model/bcmolt_model_types.h
new file mode 100644
index 0000000..3785b02
--- /dev/null
+++ b/bcm68620_release/release/host_driver/model/bcmolt_model_types.h
@@ -0,0 +1,46987 @@
+/*
+<:copyright-BRCM:2016:proprietary:standard
+
+   Broadcom Proprietary and Confidential.(c) 2016 Broadcom
+   All Rights Reserved
+
+This program is the proprietary software of Broadcom Corporation and/or its
+licensors, and may only be used, duplicated, modified or distributed pursuant
+to the terms and conditions of a separate, written license agreement executed
+between you and Broadcom (an "Authorized License").  Except as set forth in
+an Authorized License, Broadcom grants no license (express or implied), right
+to use, or waiver of any kind with respect to the Software, and Broadcom
+expressly reserves all rights in and to the Software and all intellectual
+property rights therein.  IF YOU HAVE NO AUTHORIZED LICENSE, THEN YOU HAVE
+NO RIGHT TO USE THIS SOFTWARE IN ANY WAY, AND SHOULD IMMEDIATELY NOTIFY
+BROADCOM AND DISCONTINUE ALL USE OF THE SOFTWARE.
+
+Except as expressly set forth in the Authorized License,
+
+1. This program, including its structure, sequence and organization,
+    constitutes the valuable trade secrets of Broadcom, and you shall use
+    all reasonable efforts to protect the confidentiality thereof, and to
+    use this information only in connection with your use of Broadcom
+    integrated circuit products.
+
+2. TO THE MAXIMUM EXTENT PERMITTED BY LAW, THE SOFTWARE IS PROVIDED "AS IS"
+    AND WITH ALL FAULTS AND BROADCOM MAKES NO PROMISES, REPRESENTATIONS OR
+    WARRANTIES, EITHER EXPRESS, IMPLIED, STATUTORY, OR OTHERWISE, WITH
+    RESPECT TO THE SOFTWARE.  BROADCOM SPECIFICALLY DISCLAIMS ANY AND
+    ALL IMPLIED WARRANTIES OF TITLE, MERCHANTABILITY, NONINFRINGEMENT,
+    FITNESS FOR A PARTICULAR PURPOSE, LACK OF VIRUSES, ACCURACY OR
+    COMPLETENESS, QUIET ENJOYMENT, QUIET POSSESSION OR CORRESPONDENCE
+    TO DESCRIPTION. YOU ASSUME THE ENTIRE RISK ARISING OUT OF USE OR
+    PERFORMANCE OF THE SOFTWARE.
+
+3. TO THE MAXIMUM EXTENT PERMITTED BY LAW, IN NO EVENT SHALL BROADCOM OR
+    ITS LICENSORS BE LIABLE FOR (i) CONSEQUENTIAL, INCIDENTAL, SPECIAL,
+    INDIRECT, OR EXEMPLARY DAMAGES WHATSOEVER ARISING OUT OF OR IN ANY
+    WAY RELATING TO YOUR USE OF OR INABILITY TO USE THE SOFTWARE EVEN
+    IF BROADCOM HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES;
+    OR (ii) ANY AMOUNT IN EXCESS OF THE AMOUNT ACTUALLY PAID FOR THE
+    SOFTWARE ITSELF OR U.S. $1, WHICHEVER IS GREATER. THESE LIMITATIONS
+    SHALL APPLY NOTWITHSTANDING ANY FAILURE OF ESSENTIAL PURPOSE OF ANY
+    LIMITED REMEDY.
+:>
+*/
+#ifndef BCMOLT_MODEL_TYPES_H_
+#define BCMOLT_MODEL_TYPES_H_
+
+#include "bcmos_system.h"
+#include "bcmos_errno.h"
+#include "bcmolt_buf.h"
+#include "bcmolt_msg.h"
+#include "bcmolt_model_data.h"
+
+/** \addtogroup object_model
+ * @{
+ */
+
+/** Structure definition for the "key" group of the "ae_ni" object. 
+ */
+typedef struct bcmolt_ae_ni_key
+{
+    bcmolt_ae_ni ae_ni; /**< The index of a specific AE NI instance as seen by the host. */
+} bcmolt_ae_ni_key;
+
+/** Structure definition for the "cfg" group of the "ae_ni" object. 
+ */
+typedef struct bcmolt_ae_ni_cfg_data
+{
+    bcmos_mac_address mac_address;  /**< The MAC address used for all frames generated by the OLT on the network.  This value must be set before AE_NI is first enabled, and cannot be changed while the AE_NI is enabled. */
+    bcmolt_ae_ni_en_state ae_ni_en; /**< Indicates the enable state of the AE NI. */
+    uint16_t mtu_10g;               /**< Maximum frame size (including FCS) on the 10G path. This attribute cannot be changed on an enabled AE_NI. */
+    bcmolt_prbs_generator_config prbs_generator;    /**< DS PRBS generator configuration */
+    bcmolt_prbs_checker_config prbs_checker;        /**< US PRBS checker configuration */
+    bcmolt_prbs_status prbs_status;                 /**< Result of US PRBS checker */
+} bcmolt_ae_ni_cfg_data;
+
+/** Transport message definition for "cfg" group of "ae_ni" object. 
+ */
+typedef struct bcmolt_ae_ni_cfg
+{
+    bcmolt_cfg hdr;             /**< Transport header. */
+    bcmolt_ae_ni_key key;       /**< Object key. */
+    bcmolt_ae_ni_cfg_data data; /**< All properties that must be set by the user. */
+} bcmolt_ae_ni_cfg;
+
+/** Structure definition for the "set_ae_ni_en_state" group of the "ae_ni" 
+ * object. 
+ *
+ * Set the AE NI enable state. 
+ */
+typedef struct bcmolt_ae_ni_set_ae_ni_en_state_data
+{
+    bcmolt_ae_ni_en_state new_state;    /**< New EPON NI enable state. */
+} bcmolt_ae_ni_set_ae_ni_en_state_data;
+
+/** Transport message definition for "set_ae_ni_en_state" group of "ae_ni" 
+ * object. 
+ */
+typedef struct bcmolt_ae_ni_set_ae_ni_en_state
+{
+    bcmolt_oper hdr;        /**< Transport header. */
+    bcmolt_ae_ni_key key;   /**< Object key. */
+    bcmolt_ae_ni_set_ae_ni_en_state_data data;  /**< All properties that must be set by the user. */
+} bcmolt_ae_ni_set_ae_ni_en_state;
+
+/** Structure definition for the "key" group of the "ae_path_ds" object. 
+ */
+typedef struct bcmolt_ae_path_ds_key
+{
+    bcmolt_ae_ni ae_ni; /**< AE NI associated with this 10G downstream path. */
+} bcmolt_ae_path_ds_key;
+
+/** Structure definition for the "stat" group of the "ae_path_ds" object. 
+ */
+typedef struct bcmolt_ae_path_ds_stat_data
+{
+    uint64_t bytes;             /**< The number of bytes transmitted on this 10g downstream path. */
+    uint64_t frames;            /**< The number of frames transmitted on this 10g downstream path. */
+    uint64_t frames_64;         /**< The number of 64 byte frames transmitted on this 10g downstream path. */
+    uint64_t frames_65_127;     /**< The number of 65 to 127 byte frames transmitted on this 10g downstream path. */
+    uint64_t frames_128_255;    /**< The number of 128 to 255 byte frames transmitted on this 10g downstream path. */
+    uint64_t frames_256_511;    /**< The number of 256 to 511 byte frames transmitted on this 10g downstream path. */
+    uint64_t frames_512_1023;   /**< The number of 512 to 1023 byte frames transmitted on this 10g downstream path. */
+    uint64_t frames_1024_1518;  /**< The number of 1024 to 1518 byte frames transmitted on this 10g downstream path. */
+    uint64_t frames_1519_2047;  /**< The number of 1519 to 2047 byte frames transmitted on this 10g downstream path. */
+    uint64_t frames_2048_4095;  /**< The number of 2048 to 4095 byte frames transmitted on this 10g downstream path. */
+    uint64_t frames_4096_9216;  /**< The number of 4096 to 9216 byte frames transmitted on this 10g downstream path. */
+    uint64_t frames_9217_16383; /**< The number of 9217 to 16383 byte frames transmitted on this 10g downstream path. */
+    uint64_t broadcast_frames;  /**< The number of broadcast frames transmitted on this 10g downstream path. */
+    uint64_t data_bytes;        /**< The number of data bytes transmitted on this 10g downstream path. */
+    uint64_t multicast_frames;  /**< The number of multicast frames transmitted on this 10g downstream path. */
+    uint64_t unicast_frames;    /**< The number of unicast frames transmitted on this 10g downstream path. */
+    uint64_t abort_frames;      /**< Number of abort frames transmitted on this 10g downstream path. */
+} bcmolt_ae_path_ds_stat_data;
+
+/** Transport message definition for "stat" group of "ae_path_ds" object. 
+ */
+typedef struct bcmolt_ae_path_ds_stat
+{
+    bcmolt_stat hdr;                    /**< Transport header. */
+    bcmolt_ae_path_ds_key key;          /**< Object key. */
+    bcmolt_ae_path_ds_stat_data data;   /**< All properties that must be set by the user. */
+} bcmolt_ae_path_ds_stat;
+
+/** Structure definition for the "stat_cfg" group of the "ae_path_ds" object. 
+ */
+typedef struct bcmolt_ae_path_ds_stat_cfg_data
+{
+    bcmolt_stat_alarm_config cfg;   /**< Statistic alarm configuration. */
+} bcmolt_ae_path_ds_stat_cfg_data;
+
+/** Transport message definition for "stat_cfg" group of "ae_path_ds" object. 
+ */
+typedef struct bcmolt_ae_path_ds_stat_cfg
+{
+    bcmolt_stat_cfg hdr;        /**< Transport header. */
+    bcmolt_ae_path_ds_key key;  /**< Object key. */
+    bcmolt_ae_path_ds_stat_cfg_data data;   /**< All properties that must be set by the user. */
+} bcmolt_ae_path_ds_stat_cfg;
+
+/** Structure definition for the "stat_alarm_cleared" group of the "ae_path_ds" 
+ * object. 
+ *
+ * Sent when a configured statistic alarm condition is no longer met. 
+ */
+typedef struct bcmolt_ae_path_ds_stat_alarm_cleared_data
+{
+    bcmolt_ae_path_ds_stat_id stat; /**< Statistic identifier. */
+} bcmolt_ae_path_ds_stat_alarm_cleared_data;
+
+/** Transport message definition for "stat_alarm_cleared" group of "ae_path_ds" 
+ * object. 
+ */
+typedef struct bcmolt_ae_path_ds_stat_alarm_cleared
+{
+    bcmolt_auto hdr;            /**< Transport header. */
+    bcmolt_ae_path_ds_key key;  /**< Object key. */
+    bcmolt_ae_path_ds_stat_alarm_cleared_data data; /**< All properties that must be set by the user. */
+} bcmolt_ae_path_ds_stat_alarm_cleared;
+
+/** Structure definition for the "stat_alarm_raised" group of the "ae_path_ds" 
+ * object. 
+ *
+ * Sent when a configured statistic alarm condition has been met. 
+ */
+typedef struct bcmolt_ae_path_ds_stat_alarm_raised_data
+{
+    bcmolt_ae_path_ds_stat_id stat; /**< Statistic identifier. */
+} bcmolt_ae_path_ds_stat_alarm_raised_data;
+
+/** Transport message definition for "stat_alarm_raised" group of "ae_path_ds" 
+ * object. 
+ */
+typedef struct bcmolt_ae_path_ds_stat_alarm_raised
+{
+    bcmolt_auto hdr;            /**< Transport header. */
+    bcmolt_ae_path_ds_key key;  /**< Object key. */
+    bcmolt_ae_path_ds_stat_alarm_raised_data data;  /**< All properties that must be set by the user. */
+} bcmolt_ae_path_ds_stat_alarm_raised;
+
+/** Structure definition for the "auto_cfg" group of the "ae_path_ds" object. 
+ */
+typedef struct bcmolt_ae_path_ds_auto_cfg_data
+{
+    bcmos_bool stat_alarm_cleared;  /**< If true, indications of type "stat_alarm_cleared" will be generated. */
+    bcmos_bool stat_alarm_raised;   /**< If true, indications of type "stat_alarm_raised" will be generated. */
+} bcmolt_ae_path_ds_auto_cfg_data;
+
+/** Transport message definition for "auto_cfg" group of "ae_path_ds" object. 
+ */
+typedef struct bcmolt_ae_path_ds_auto_cfg
+{
+    bcmolt_auto_cfg hdr;                    /**< Transport header. */
+    bcmolt_ae_path_ds_key key;              /**< Object key. */
+    bcmolt_ae_path_ds_auto_cfg_data data;   /**< All properties that must be set by the user. */
+} bcmolt_ae_path_ds_auto_cfg;
+
+/** Structure definition for the "key" group of the "ae_path_us" object. 
+ */
+typedef struct bcmolt_ae_path_us_key
+{
+    bcmolt_ae_ni ae_ni; /**< AE NI associated with this 10G upstream path. */
+} bcmolt_ae_path_us_key;
+
+/** Structure definition for the "stat" group of the "ae_path_us" object. 
+ */
+typedef struct bcmolt_ae_path_us_stat_data
+{
+    uint64_t bytes;             /**< The number of bytes received on this 10g upstream path. */
+    uint64_t frames;            /**< The number of frames received on this 10g upstream path. */
+    uint64_t frames_64;         /**< The number of 64 byte frames received on this 10g upstream path. */
+    uint64_t frames_65_127;     /**< The number of 65 to 127 byte frames received on this 10g upstream path. */
+    uint64_t frames_128_255;    /**< The number of 128 to 255 byte frames received on this 10g upstream path. */
+    uint64_t frames_256_511;    /**< The number of 256 to 511 byte frames received on this 10g upstream path. */
+    uint64_t frames_512_1023;   /**< The number of 512 to 1023 byte frames received on this 10g upstream path. */
+    uint64_t frames_1024_1518;  /**< The number of 1024 to 1518 byte frames received on this 10g upstream path. */
+    uint64_t frames_1519_2047;  /**< The number of 1519 to 2047 byte frames received on this 10g upstream path. */
+    uint64_t frames_2048_4095;  /**< The number of 2048 to 4095 byte frames received on this 10g upstream path. */
+    uint64_t frames_4096_9216;  /**< The number of 4096 to 9216 byte frames received on this 10g upstream path. */
+    uint64_t frames_9217_16383; /**< The number of 9217 to 16383 byte frames received on this 10g upstream path. */
+    uint64_t broadcast_frames;  /**< The number of broadcast frames received on this 10g upstream path. */
+    uint64_t data_bytes;        /**< The number of data bytes received on this 10g upstream path. */
+    uint64_t multicast_frames;  /**< The number of multicast frames received on this 10g upstream path. */
+    uint64_t unicast_frames;    /**< The number of unicast frames received on this 10g upstream path. */
+    uint64_t abort_frames;      /**< The number of abort frames received on this 10g upstream path. */
+    uint64_t fcs_error;         /**< The number of bad FCS errors received on this 10g upstream path. */
+    uint64_t oversize_error;    /**< The number of oversize errors received on this 10g upstream path. */
+    uint64_t runt_error;        /**< The number of runt errors received on this 10g upstream path. */
+} bcmolt_ae_path_us_stat_data;
+
+/** Transport message definition for "stat" group of "ae_path_us" object. 
+ */
+typedef struct bcmolt_ae_path_us_stat
+{
+    bcmolt_stat hdr;                    /**< Transport header. */
+    bcmolt_ae_path_us_key key;          /**< Object key. */
+    bcmolt_ae_path_us_stat_data data;   /**< All properties that must be set by the user. */
+} bcmolt_ae_path_us_stat;
+
+/** Structure definition for the "stat_cfg" group of the "ae_path_us" object. 
+ */
+typedef struct bcmolt_ae_path_us_stat_cfg_data
+{
+    bcmolt_stat_alarm_config cfg;   /**< Statistic alarm configuration. */
+} bcmolt_ae_path_us_stat_cfg_data;
+
+/** Transport message definition for "stat_cfg" group of "ae_path_us" object. 
+ */
+typedef struct bcmolt_ae_path_us_stat_cfg
+{
+    bcmolt_stat_cfg hdr;        /**< Transport header. */
+    bcmolt_ae_path_us_key key;  /**< Object key. */
+    bcmolt_ae_path_us_stat_cfg_data data;   /**< All properties that must be set by the user. */
+} bcmolt_ae_path_us_stat_cfg;
+
+/** Structure definition for the "stat_alarm_cleared" group of the "ae_path_us" 
+ * object. 
+ *
+ * Sent when a configured statistic alarm condition is no longer met. 
+ */
+typedef struct bcmolt_ae_path_us_stat_alarm_cleared_data
+{
+    bcmolt_ae_path_us_stat_id stat; /**< Statistic identifier. */
+} bcmolt_ae_path_us_stat_alarm_cleared_data;
+
+/** Transport message definition for "stat_alarm_cleared" group of "ae_path_us" 
+ * object. 
+ */
+typedef struct bcmolt_ae_path_us_stat_alarm_cleared
+{
+    bcmolt_auto hdr;            /**< Transport header. */
+    bcmolt_ae_path_us_key key;  /**< Object key. */
+    bcmolt_ae_path_us_stat_alarm_cleared_data data; /**< All properties that must be set by the user. */
+} bcmolt_ae_path_us_stat_alarm_cleared;
+
+/** Structure definition for the "stat_alarm_raised" group of the "ae_path_us" 
+ * object. 
+ *
+ * Sent when a configured statistic alarm condition has been met. 
+ */
+typedef struct bcmolt_ae_path_us_stat_alarm_raised_data
+{
+    bcmolt_ae_path_us_stat_id stat; /**< Statistic identifier. */
+} bcmolt_ae_path_us_stat_alarm_raised_data;
+
+/** Transport message definition for "stat_alarm_raised" group of "ae_path_us" 
+ * object. 
+ */
+typedef struct bcmolt_ae_path_us_stat_alarm_raised
+{
+    bcmolt_auto hdr;            /**< Transport header. */
+    bcmolt_ae_path_us_key key;  /**< Object key. */
+    bcmolt_ae_path_us_stat_alarm_raised_data data;  /**< All properties that must be set by the user. */
+} bcmolt_ae_path_us_stat_alarm_raised;
+
+/** Structure definition for the "auto_cfg" group of the "ae_path_us" object. 
+ */
+typedef struct bcmolt_ae_path_us_auto_cfg_data
+{
+    bcmos_bool stat_alarm_cleared;  /**< If true, indications of type "stat_alarm_cleared" will be generated. */
+    bcmos_bool stat_alarm_raised;   /**< If true, indications of type "stat_alarm_raised" will be generated. */
+} bcmolt_ae_path_us_auto_cfg_data;
+
+/** Transport message definition for "auto_cfg" group of "ae_path_us" object. 
+ */
+typedef struct bcmolt_ae_path_us_auto_cfg
+{
+    bcmolt_auto_cfg hdr;                    /**< Transport header. */
+    bcmolt_ae_path_us_key key;              /**< Object key. */
+    bcmolt_ae_path_us_auto_cfg_data data;   /**< All properties that must be set by the user. */
+} bcmolt_ae_path_us_auto_cfg;
+
+/** Structure definition for the "key" group of the "channel" object. 
+ */
+typedef struct bcmolt_channel_key
+{
+    bcmolt_pon_ni pon_ni;   /**< PON network interface. */
+} bcmolt_channel_key;
+
+/** Structure definition for the "cfg" group of the "channel" object. 
+ */
+typedef struct bcmolt_channel_cfg_data
+{
+    bcmolt_operation_control operation_control; /**< Operation control. */
+    uint16_t tol;   /**< Transmit Optical Level. An indication of the current OLT CT transceiver channel launch power into the ODN */
+    bcmolt_system_profile system_profile;           /**< System profile. */
+#define BCMOLT_CHANNEL_CFG_DATA_CHANNEL_PROFILE_LEN 8
+    bcmolt_arr_channel_profile_8 channel_profile;   /**< Channel profile. */
+} bcmolt_channel_cfg_data;
+
+/** Transport message definition for "cfg" group of "channel" object. 
+ */
+typedef struct bcmolt_channel_cfg
+{
+    bcmolt_cfg hdr;                 /**< Transport header. */
+    bcmolt_channel_key key;         /**< Object key. */
+    bcmolt_channel_cfg_data data;   /**< All properties that must be set by the user. */
+} bcmolt_channel_cfg;
+
+/** Structure definition for the "key" group of the "debug" object. 
+ */
+typedef struct bcmolt_debug_key
+{
+    uint32_t reserved;  /**< Reserved (set to 0) */
+} bcmolt_debug_key;
+
+/** Structure definition for the "cfg" group of the "debug" object. 
+ */
+typedef struct bcmolt_debug_cfg_data
+{
+    bcmolt_console_redirection console_redirection;             /**< Log output redirection */
+    uint32_t indications_dropped;                               /**< Number of indications dropped due to congestion / shaping. */
+    uint8_t file_used_percent;                                  /**< DDR log file used percent */
+    bcmolt_api_capture_config api_capture_cfg;                  /**< Configuration for API capture. */
+    bcmolt_api_capture_stats api_capture_stats;                 /**< Statistics on the most recent API capture. */
+    bcmolt_api_capture_buffer_reader api_capture_buffer_read;   /**< Controls what portion of the capture buffer is returned when performing a cfg_get. */
+    bcmolt_u8_list_u32 api_capture_buffer;                      /**< The portion of the capture buffer currently specified by api_capture_buffer_read. */
+} bcmolt_debug_cfg_data;
+
+/** Transport message definition for "cfg" group of "debug" object. 
+ */
+typedef struct bcmolt_debug_cfg
+{
+    bcmolt_cfg hdr;             /**< Transport header. */
+    bcmolt_debug_key key;       /**< Object key. */
+    bcmolt_debug_cfg_data data; /**< All properties that must be set by the user. */
+} bcmolt_debug_cfg;
+
+/** Structure definition for the "cli_output" group of the "debug" object. 
+ *
+ * CLI Output String 
+ */
+typedef struct bcmolt_debug_cli_output_data
+{
+    bcmolt_u8_list_u32 data;    /**< output data */
+} bcmolt_debug_cli_output_data;
+
+/** Transport message definition for "cli_output" group of "debug" object. 
+ */
+typedef struct bcmolt_debug_cli_output
+{
+    bcmolt_auto hdr;                    /**< Transport header. */
+    bcmolt_debug_key key;               /**< Object key. */
+    bcmolt_debug_cli_output_data data;  /**< All properties that must be set by the user. */
+} bcmolt_debug_cli_output;
+
+/** Transport message definition for "file_almost_full" group of "debug" object. 
+ */
+typedef struct bcmolt_debug_file_almost_full
+{
+    bcmolt_auto hdr;        /**< Transport header. */
+    bcmolt_debug_key key;   /**< Object key. */
+} bcmolt_debug_file_almost_full;
+
+/** Structure definition for the "auto_cfg" group of the "debug" object. 
+ */
+typedef struct bcmolt_debug_auto_cfg_data
+{
+    bcmos_bool cli_output;          /**< If true, indications of type "cli_output" will be generated. */
+    bcmos_bool file_almost_full;    /**< If true, indications of type "file_almost_full" will be generated. */
+} bcmolt_debug_auto_cfg_data;
+
+/** Transport message definition for "auto_cfg" group of "debug" object. 
+ */
+typedef struct bcmolt_debug_auto_cfg
+{
+    bcmolt_auto_cfg hdr;                /**< Transport header. */
+    bcmolt_debug_key key;               /**< Object key. */
+    bcmolt_debug_auto_cfg_data data;    /**< All properties that must be set by the user. */
+} bcmolt_debug_auto_cfg;
+
+/** Structure definition for the "cli_input" group of the "debug" object. 
+ *
+ * CLI Input String 
+ */
+typedef struct bcmolt_debug_cli_input_data
+{
+    bcmolt_u8_list_u32 data;    /**< Input String */
+} bcmolt_debug_cli_input_data;
+
+/** Transport message definition for "cli_input" group of "debug" object. 
+ */
+typedef struct bcmolt_debug_cli_input
+{
+    bcmolt_oper hdr;                    /**< Transport header. */
+    bcmolt_debug_key key;               /**< Object key. */
+    bcmolt_debug_cli_input_data data;   /**< All properties that must be set by the user. */
+} bcmolt_debug_cli_input;
+
+/** Transport message definition for "reset_api_capture" group of "debug" 
+ * object. 
+ */
+typedef struct bcmolt_debug_reset_api_capture
+{
+    bcmolt_oper hdr;        /**< Transport header. */
+    bcmolt_debug_key key;   /**< Object key. */
+} bcmolt_debug_reset_api_capture;
+
+/** Transport message definition for "start_api_capture" group of "debug" 
+ * object. 
+ */
+typedef struct bcmolt_debug_start_api_capture
+{
+    bcmolt_oper hdr;        /**< Transport header. */
+    bcmolt_debug_key key;   /**< Object key. */
+} bcmolt_debug_start_api_capture;
+
+/** Transport message definition for "stop_api_capture" group of "debug" object. 
+ */
+typedef struct bcmolt_debug_stop_api_capture
+{
+    bcmolt_oper hdr;        /**< Transport header. */
+    bcmolt_debug_key key;   /**< Object key. */
+} bcmolt_debug_stop_api_capture;
+
+/** Structure definition for the "key" group of the "device" object. 
+ */
+typedef struct bcmolt_device_key
+{
+    uint32_t reserved;  /**< Reserved (set to 0). */
+} bcmolt_device_key;
+
+/** Structure definition for the "cfg" group of the "device" object. 
+ */
+typedef struct bcmolt_device_cfg_data
+{
+    bcmolt_system_mode system_mode; /**< System mode - this must be set by the host when initially provisioning the system.  Setting this also sets the "nni_speed" property, unless it is overridden. */
+    uint32_t keepalive_interval;    /**< Keepalive Interval in Seconds  (0 = Disable) */
+    uint32_t keepalive_tolerance;   /**< How many keepalive messages can be lost before triggering a disconnect sequence  */
+    bcmolt_firmware_sw_version firmware_sw_version;             /**< Firmware SW Version */
+    bcmolt_host_sw_version host_sw_version;                     /**< Host SW Version */
+    bcmolt_device_chip_revision chip_revision;                  /**< Revision of the BCM68620 device. */
+    bcmolt_device_state state;                                  /**< Device state */
+    bcmolt_debug_device_cfg debug;                              /**< Device configuration debug parameters */
+    bcmolt_device_nni_speed nni_speed;                          /**< Speed of the NNI interface.  This is calculated automatically when the "system_mode" property is set, but can be overridden by the host. */
+    bcmolt_ext_irq protection_switching_ext_irq;                /**< The selected external IRQ for protection switching */
+    uint32_t epon_clock_transport_sample_delay;                 /**< The time (in TQ) that it takes from when a pulse is generated at the external source to when we sample it. */
+    bcmolt_indication_shaping indication_shaping;               /**< Shaping / rate limiting for the indication channel. */
+    uint32_t chip_temperature;                                  /**< Current die temperature. */
+    bcmolt_control_state gpon_xgpon_tod_enable;                 /**< GPON/XGPON ToD control state */
+    bcmolt_gpio_pin gpon_xgpon_tod_gpio_pin;                    /**< GPON/XGPON ToD GIO pin */
+    bcmos_bool gpon_xgpon_tod_connected_internally;             /**< GPON/XGPON is ToD internally */
+    bcmolt_str_256 epon_8021_as_tod_format;                     /**< The format of the 802.1AS ToD string. */
+    bcmolt_shaper_mode epon_shaper_mode;                        /**< Controls EPON shaper behavior. */
+    bcmolt_embedded_image_entry_list_u8 embedded_image_list;    /**< List of all file images stored in the OLT. */
+    uint32_t chip_voltage;                      /**< Chip voltage in mV */
+    bcmolt_str_256 epon_tod_string;             /**< The current ToD string to be used for clock transport (EPON only). */
+    bcmolt_xgpon_num_of_onus xgpon_num_of_onus; /**< xgpon num of onus. */
+    bcmos_ipv4_address device_ip_address;       /**< The IP Address of the device */
+    uint16_t device_udp_port;                   /**< The UDP port of the Device */
+    bcmolt_uart_baudrate tod_uart_baudrate;     /**< UART baud rate */
+    uint8_t gpon_xgpon_tod_string_length;       /**< GPON/XGPON ToD string length */
+} bcmolt_device_cfg_data;
+
+/** Transport message definition for "cfg" group of "device" object. 
+ */
+typedef struct bcmolt_device_cfg
+{
+    bcmolt_cfg hdr;                 /**< Transport header. */
+    bcmolt_device_key key;          /**< Object key. */
+    bcmolt_device_cfg_data data;    /**< All properties that must be set by the user. */
+} bcmolt_device_cfg;
+
+/** Structure definition for the "connection_complete" group of the "device" 
+ * object. 
+ *
+ * The host successfully connected to the device.  The device has either been 
+ * reprogrammed with new firmware, or a connection was established with an 
+ * existing device (see the "standalone" field). 
+ */
+typedef struct bcmolt_device_connection_complete_data
+{
+    bcmos_bool standalone;  /**< If true, the device was previously running in standalone mode before this connection was established.  If false, the device was booted from reset with new firmware, etc. */
+} bcmolt_device_connection_complete_data;
+
+/** Transport message definition for "connection_complete" group of "device" 
+ * object. 
+ */
+typedef struct bcmolt_device_connection_complete
+{
+    bcmolt_auto hdr;        /**< Transport header. */
+    bcmolt_device_key key;  /**< Object key. */
+    bcmolt_device_connection_complete_data data;    /**< All properties that must be set by the user. */
+} bcmolt_device_connection_complete;
+
+/** Transport message definition for "connection_established" group of "device" 
+ * object. 
+ */
+typedef struct bcmolt_device_connection_established
+{
+    bcmolt_auto hdr;        /**< Transport header. */
+    bcmolt_device_key key;  /**< Object key. */
+} bcmolt_device_connection_established;
+
+/** Structure definition for the "connection_failure" group of the "device" 
+ * object. 
+ *
+ * The host failed to connect to the device. 
+ */
+typedef struct bcmolt_device_connection_failure_data
+{
+    bcmolt_host_connection_fail_reason reason;  /**< Connection fail reason. */
+} bcmolt_device_connection_failure_data;
+
+/** Transport message definition for "connection_failure" group of "device" 
+ * object. 
+ */
+typedef struct bcmolt_device_connection_failure
+{
+    bcmolt_auto hdr;        /**< Transport header. */
+    bcmolt_device_key key;  /**< Object key. */
+    bcmolt_device_connection_failure_data data; /**< All properties that must be set by the user. */
+} bcmolt_device_connection_failure;
+
+/** Structure definition for the "ddr_test_complete" group of the "device" 
+ * object. 
+ *
+ * The DDR Test has completed 
+ */
+typedef struct bcmolt_device_ddr_test_complete_data
+{
+    bcmolt_ddr_test_completed ddr_test; /**< Results of the DDR Test */
+} bcmolt_device_ddr_test_complete_data;
+
+/** Transport message definition for "ddr_test_complete" group of "device" 
+ * object. 
+ */
+typedef struct bcmolt_device_ddr_test_complete
+{
+    bcmolt_auto hdr;        /**< Transport header. */
+    bcmolt_device_key key;  /**< Object key. */
+    bcmolt_device_ddr_test_complete_data data;  /**< All properties that must be set by the user. */
+} bcmolt_device_ddr_test_complete;
+
+/** Structure definition for the "device_keep_alive" group of the "device" 
+ * object. 
+ *
+ * Keep alive message from the device to the host - used by the device control 
+ * library (not sent to the host application). 
+ */
+typedef struct bcmolt_device_device_keep_alive_data
+{
+    uint32_t sequence_number;   /**< sequence number */
+    uint32_t time_stamp;        /**< time stamp */
+} bcmolt_device_device_keep_alive_data;
+
+/** Transport message definition for "device_keep_alive" group of "device" 
+ * object. 
+ */
+typedef struct bcmolt_device_device_keep_alive
+{
+    bcmolt_auto hdr;        /**< Transport header. */
+    bcmolt_device_key key;  /**< Object key. */
+    bcmolt_device_device_keep_alive_data data;  /**< All properties that must be set by the user. */
+} bcmolt_device_device_keep_alive;
+
+/** Structure definition for the "device_ready" group of the "device" object. 
+ *
+ * Device ready indication used by the device control library (not sent to the 
+ * host application). 
+ */
+typedef struct bcmolt_device_device_ready_data
+{
+    bcmolt_firmware_sw_version firmware_sw_version; /**< Software Version. */
+    bcmolt_system_mode system_mode;                 /**< System Mode. */
+    bcmolt_device_nni_speed nni_speed;              /**< NNI Speed. */
+    bcmolt_device_chip_revision chip_revision;      /**< Chip Revision. */
+    bcmolt_control_state tod_enable;                /**< ToD control. */
+    bcmolt_gpio_pin tod_gpio_pin;                   /**< GPIO pin is used when ToD UART is not connected to the embedded, and TOD value is obtained by the host. */
+} bcmolt_device_device_ready_data;
+
+/** Transport message definition for "device_ready" group of "device" object. 
+ */
+typedef struct bcmolt_device_device_ready
+{
+    bcmolt_auto hdr;                        /**< Transport header. */
+    bcmolt_device_key key;                  /**< Object key. */
+    bcmolt_device_device_ready_data data;   /**< All properties that must be set by the user. */
+} bcmolt_device_device_ready;
+
+/** Transport message definition for "disconnection_complete" group of "device" 
+ * object. 
+ */
+typedef struct bcmolt_device_disconnection_complete
+{
+    bcmolt_auto hdr;        /**< Transport header. */
+    bcmolt_device_key key;  /**< Object key. */
+} bcmolt_device_disconnection_complete;
+
+/** Structure definition for the "image_transfer_complete" group of the "device" 
+ * object. 
+ */
+typedef struct bcmolt_device_image_transfer_complete_data
+{
+    bcmolt_device_image_type image_type;    /**< Image type. */
+    uint32_t block_number;                  /**< Block number. */
+    bcmolt_image_transfer_status status;    /**< Image transfer status. */
+} bcmolt_device_image_transfer_complete_data;
+
+/** Transport message definition for "image_transfer_complete" group of "device" 
+ * object. 
+ */
+typedef struct bcmolt_device_image_transfer_complete
+{
+    bcmolt_auto hdr;        /**< Transport header. */
+    bcmolt_device_key key;  /**< Object key. */
+    bcmolt_device_image_transfer_complete_data data;    /**< All properties that must be set by the user. */
+} bcmolt_device_image_transfer_complete;
+
+/** Structure definition for the "indications_dropped" group of the "device" 
+ * object. 
+ *
+ * Sent when indications are dropped due to congestion / shaping. 
+ */
+typedef struct bcmolt_device_indications_dropped_data
+{
+    uint32_t total_count;   /**< Total number of indications dropped since the system was started. */
+} bcmolt_device_indications_dropped_data;
+
+/** Transport message definition for "indications_dropped" group of "device" 
+ * object. 
+ */
+typedef struct bcmolt_device_indications_dropped
+{
+    bcmolt_auto hdr;        /**< Transport header. */
+    bcmolt_device_key key;  /**< Object key. */
+    bcmolt_device_indications_dropped_data data;    /**< All properties that must be set by the user. */
+} bcmolt_device_indications_dropped;
+
+/** Structure definition for the "sw_error" group of the "device" object. 
+ */
+typedef struct bcmolt_device_sw_error_data
+{
+    bcmolt_str_100 task_name;   /**< task name. */
+    bcmolt_str_100 file_name;   /**< file name. */
+    uint32_t line_number;       /**< line number. */
+    uint8_t pon_ni;             /**< pon_ni. */
+} bcmolt_device_sw_error_data;
+
+/** Transport message definition for "sw_error" group of "device" object. 
+ */
+typedef struct bcmolt_device_sw_error
+{
+    bcmolt_auto hdr;                    /**< Transport header. */
+    bcmolt_device_key key;              /**< Object key. */
+    bcmolt_device_sw_error_data data;   /**< All properties that must be set by the user. */
+} bcmolt_device_sw_error;
+
+/** Structure definition for the "sw_exception" group of the "device" object. 
+ */
+typedef struct bcmolt_device_sw_exception_data
+{
+    uint8_t cpu_id;         /**< CPU ID. */
+    bcmolt_str_2000 text;   /**< text. */
+} bcmolt_device_sw_exception_data;
+
+/** Transport message definition for "sw_exception" group of "device" object. 
+ */
+typedef struct bcmolt_device_sw_exception
+{
+    bcmolt_auto hdr;        /**< Transport header. */
+    bcmolt_device_key key;  /**< Object key. */
+    bcmolt_device_sw_exception_data data;   /**< All properties that must be set by the user. */
+} bcmolt_device_sw_exception;
+
+/** Structure definition for the "auto_cfg" group of the "device" object. 
+ */
+typedef struct bcmolt_device_auto_cfg_data
+{
+    bcmos_bool connection_complete;     /**< If true, indications of type "connection_complete" will be generated. */
+    bcmos_bool connection_established;  /**< If true, indications of type "connection_established" will be generated. */
+    bcmos_bool connection_failure;      /**< If true, indications of type "connection_failure" will be generated. */
+    bcmos_bool ddr_test_complete;       /**< If true, indications of type "ddr_test_complete" will be generated. */
+    bcmos_bool device_keep_alive;       /**< If true, indications of type "device_keep_alive" will be generated. */
+    bcmos_bool device_ready;            /**< If true, indications of type "device_ready" will be generated. */
+    bcmos_bool disconnection_complete;  /**< If true, indications of type "disconnection_complete" will be generated. */
+    bcmos_bool image_transfer_complete; /**< If true, indications of type "image_transfer_complete" will be generated. */
+    bcmos_bool indications_dropped;     /**< If true, indications of type "indications_dropped" will be generated. */
+    bcmos_bool sw_error;                /**< If true, indications of type "sw_error" will be generated. */
+    bcmos_bool sw_exception;            /**< If true, indications of type "sw_exception" will be generated. */
+} bcmolt_device_auto_cfg_data;
+
+/** Transport message definition for "auto_cfg" group of "device" object. 
+ */
+typedef struct bcmolt_device_auto_cfg
+{
+    bcmolt_auto_cfg hdr;                /**< Transport header. */
+    bcmolt_device_key key;              /**< Object key. */
+    bcmolt_device_auto_cfg_data data;   /**< All properties that must be set by the user. */
+} bcmolt_device_auto_cfg;
+
+/** Transport message definition for "connect" group of "device" object. 
+ */
+typedef struct bcmolt_device_connect
+{
+    bcmolt_oper hdr;        /**< Transport header. */
+    bcmolt_device_key key;  /**< Object key. */
+} bcmolt_device_connect;
+
+/** Transport message definition for "disconnect" group of "device" object. 
+ */
+typedef struct bcmolt_device_disconnect
+{
+    bcmolt_oper hdr;        /**< Transport header. */
+    bcmolt_device_key key;  /**< Object key. */
+} bcmolt_device_disconnect;
+
+/** Structure definition for the "host_keep_alive" group of the "device" object. 
+ *
+ * Keep alive message from the host to the device - used by the device control 
+ * library (should not be sent by the host application). 
+ */
+typedef struct bcmolt_device_host_keep_alive_data
+{
+    uint32_t sequence_number;   /**< sequence number */
+    uint32_t time_stamp;        /**< time stamp */
+} bcmolt_device_host_keep_alive_data;
+
+/** Transport message definition for "host_keep_alive" group of "device" object. 
+ */
+typedef struct bcmolt_device_host_keep_alive
+{
+    bcmolt_oper hdr;        /**< Transport header. */
+    bcmolt_device_key key;  /**< Object key. */
+    bcmolt_device_host_keep_alive_data data;    /**< All properties that must be set by the user. */
+} bcmolt_device_host_keep_alive;
+
+/** Structure definition for the "image_transfer_data" group of the "device" 
+ * object. 
+ *
+ * used for transferring the actual data from/to the OLT.   not to be directly 
+ * called by the user. 
+ */
+typedef struct bcmolt_device_image_transfer_data_data
+{
+    uint32_t block_number;          /**< Block number. */
+    bcmos_bool more_data;           /**< Specifies that there are more data to come. */
+    bcmolt_u8_list_u16_hex data;    /**< Data. */
+} bcmolt_device_image_transfer_data_data;
+
+/** Transport message definition for "image_transfer_data" group of "device" 
+ * object. 
+ */
+typedef struct bcmolt_device_image_transfer_data
+{
+    bcmolt_oper hdr;        /**< Transport header. */
+    bcmolt_device_key key;  /**< Object key. */
+    bcmolt_device_image_transfer_data_data data;    /**< All properties that must be set by the user. */
+} bcmolt_device_image_transfer_data;
+
+/** Structure definition for the "image_transfer_start" group of the "device" 
+ * object. 
+ *
+ * This API message informs the OLT of the start of image transfer, and 
+ * provides the information of the file image. 
+ */
+typedef struct bcmolt_device_image_transfer_start_data
+{
+    bcmolt_device_image_type image_type;    /**< File type. */
+    uint32_t image_size;                    /**< Size of the file image.  Ignored for RRQ operation. */
+    uint32_t crc32;             /**< CRC32 checksum of the entire file image. */
+    bcmolt_str_64 image_name;   /**< Name of the file image.  Null-terminated string.  This is required for the DPoE ONU only.  DPoE requires the write request OAM contains the name of the file. */
+} bcmolt_device_image_transfer_start_data;
+
+/** Transport message definition for "image_transfer_start" group of "device" 
+ * object. 
+ */
+typedef struct bcmolt_device_image_transfer_start
+{
+    bcmolt_oper hdr;        /**< Transport header. */
+    bcmolt_device_key key;  /**< Object key. */
+    bcmolt_device_image_transfer_start_data data;   /**< All properties that must be set by the user. */
+} bcmolt_device_image_transfer_start;
+
+/** Structure definition for the "reset" group of the "device" object. 
+ *
+ * Resets the host/device. 
+ */
+typedef struct bcmolt_device_reset_data
+{
+    bcmolt_device_reset_mode mode;  /**< Options to control what should be reset. */
+} bcmolt_device_reset_data;
+
+/** Transport message definition for "reset" group of "device" object. 
+ */
+typedef struct bcmolt_device_reset
+{
+    bcmolt_oper hdr;                /**< Transport header. */
+    bcmolt_device_key key;          /**< Object key. */
+    bcmolt_device_reset_data data;  /**< All properties that must be set by the user. */
+} bcmolt_device_reset;
+
+/** Structure definition for the "run_ddr_test" group of the "device" object. 
+ *
+ * Run a test on one or more of the DDR components. 
+ */
+typedef struct bcmolt_device_run_ddr_test_data
+{
+    bcmos_bool cpu;     /**< Whether or not to test the CPU DDR */
+    bcmos_bool ras_0;   /**< Whether or not to test RAS 0 DDR */
+    bcmos_bool ras_1;   /**< Whether or not to test RAS 1 DDR */
+} bcmolt_device_run_ddr_test_data;
+
+/** Transport message definition for "run_ddr_test" group of "device" object. 
+ */
+typedef struct bcmolt_device_run_ddr_test
+{
+    bcmolt_oper hdr;        /**< Transport header. */
+    bcmolt_device_key key;  /**< Object key. */
+    bcmolt_device_run_ddr_test_data data;   /**< All properties that must be set by the user. */
+} bcmolt_device_run_ddr_test;
+
+/** Transport message definition for "sw_upgrade_activate" group of "device" 
+ * object. 
+ */
+typedef struct bcmolt_device_sw_upgrade_activate
+{
+    bcmolt_oper hdr;        /**< Transport header. */
+    bcmolt_device_key key;  /**< Object key. */
+} bcmolt_device_sw_upgrade_activate;
+
+/** Structure definition for the "key" group of the "epon_denied_link" object. 
+ */
+typedef struct bcmolt_epon_denied_link_key
+{
+    bcmolt_epon_ni epon_ni;         /**< Uniquely identifies the EPON NI containing the link. */
+    bcmos_mac_address mac_address;  /**< The MAC address associated with the EPON link. */
+} bcmolt_epon_denied_link_key;
+
+/** Structure definition for the "cfg" group of the "epon_denied_link" object. 
+ */
+typedef struct bcmolt_epon_denied_link_cfg_data
+{
+    bcmolt_epon_denied_link_alarm_state alarm_state;    /**< The state of the alarms on this link. */
+} bcmolt_epon_denied_link_cfg_data;
+
+/** Transport message definition for "cfg" group of "epon_denied_link" object. 
+ */
+typedef struct bcmolt_epon_denied_link_cfg
+{
+    bcmolt_cfg hdr;                     /**< Transport header. */
+    bcmolt_epon_denied_link_key key;    /**< Object key. */
+    bcmolt_epon_denied_link_cfg_data data;  /**< All properties that must be set by the user. */
+} bcmolt_epon_denied_link_cfg;
+
+/** Structure definition for the "laser_on_off_violation" group of the 
+ * "epon_denied_link" object. 
+ *
+ * This is when a link tries to reigster with an impossible laser on or off 
+ * time. 
+ */
+typedef struct bcmolt_epon_denied_link_laser_on_off_violation_data
+{
+    bcmolt_laser_on_off_status alarm_status;    /**< Alarm Status. */
+} bcmolt_epon_denied_link_laser_on_off_violation_data;
+
+/** Transport message definition for "laser_on_off_violation" group of 
+ * "epon_denied_link" object. 
+ */
+typedef struct bcmolt_epon_denied_link_laser_on_off_violation
+{
+    bcmolt_auto hdr;                    /**< Transport header. */
+    bcmolt_epon_denied_link_key key;    /**< Object key. */
+    bcmolt_epon_denied_link_laser_on_off_violation_data data;   /**< All properties that must be set by the user. */
+} bcmolt_epon_denied_link_laser_on_off_violation;
+
+/** Structure definition for the "llid_pool_empty_violation" group of the 
+ * "epon_denied_link" object. 
+ *
+ * A link tried to register and it there are no LLIDs available. If this 
+ * occurs, it is possible there is an issue with your 'max links' and/or 'Base 
+ * LLID' fields on your RP. 
+ */
+typedef struct bcmolt_epon_denied_link_llid_pool_empty_violation_data
+{
+    bcmolt_status alarm_status; /**< Alarm Status. */
+} bcmolt_epon_denied_link_llid_pool_empty_violation_data;
+
+/** Transport message definition for "llid_pool_empty_violation" group of 
+ * "epon_denied_link" object. 
+ */
+typedef struct bcmolt_epon_denied_link_llid_pool_empty_violation
+{
+    bcmolt_auto hdr;                    /**< Transport header. */
+    bcmolt_epon_denied_link_key key;    /**< Object key. */
+    bcmolt_epon_denied_link_llid_pool_empty_violation_data data;    /**< All properties that must be set by the user. */
+} bcmolt_epon_denied_link_llid_pool_empty_violation;
+
+/** Structure definition for the "max_link_violation" group of the 
+ * "epon_denied_link" object. 
+ *
+ * A link tried to register and it would have put us over the provisioned max 
+ * links for the corresponding EPON NI. 
+ */
+typedef struct bcmolt_epon_denied_link_max_link_violation_data
+{
+    bcmolt_status alarm_status; /**< Alarm Status. */
+} bcmolt_epon_denied_link_max_link_violation_data;
+
+/** Transport message definition for "max_link_violation" group of 
+ * "epon_denied_link" object. 
+ */
+typedef struct bcmolt_epon_denied_link_max_link_violation
+{
+    bcmolt_auto hdr;                    /**< Transport header. */
+    bcmolt_epon_denied_link_key key;    /**< Object key. */
+    bcmolt_epon_denied_link_max_link_violation_data data;   /**< All properties that must be set by the user. */
+} bcmolt_epon_denied_link_max_link_violation;
+
+/** Structure definition for the "overhead_profile_violation" group of the 
+ * "epon_denied_link" object. 
+ *
+ * This is when link tries to register and there are already too many existing 
+ * laser on/off combinations. 
+ */
+typedef struct bcmolt_epon_denied_link_overhead_profile_violation_data
+{
+    bcmolt_status alarm_status; /**< Alarm status. */
+} bcmolt_epon_denied_link_overhead_profile_violation_data;
+
+/** Transport message definition for "overhead_profile_violation" group of 
+ * "epon_denied_link" object. 
+ */
+typedef struct bcmolt_epon_denied_link_overhead_profile_violation
+{
+    bcmolt_auto hdr;                    /**< Transport header. */
+    bcmolt_epon_denied_link_key key;    /**< Object key. */
+    bcmolt_epon_denied_link_overhead_profile_violation_data data;   /**< All properties that must be set by the user. */
+} bcmolt_epon_denied_link_overhead_profile_violation;
+
+/** Structure definition for the "range_violation" group of the 
+ * "epon_denied_link" object. 
+ *
+ * A link tried to register with a range value that was outside of the min/max 
+ * fiber length. 
+ */
+typedef struct bcmolt_epon_denied_link_range_violation_data
+{
+    bcmolt_range_status alarm_status;   /**< Alarm Status. */
+} bcmolt_epon_denied_link_range_violation_data;
+
+/** Transport message definition for "range_violation" group of 
+ * "epon_denied_link" object. 
+ */
+typedef struct bcmolt_epon_denied_link_range_violation
+{
+    bcmolt_auto hdr;                    /**< Transport header. */
+    bcmolt_epon_denied_link_key key;    /**< Object key. */
+    bcmolt_epon_denied_link_range_violation_data data;  /**< All properties that must be set by the user. */
+} bcmolt_epon_denied_link_range_violation;
+
+/** Structure definition for the "rogue_violation" group of the 
+ * "epon_denied_link" object. 
+ *
+ * A Rogue ONU was detected on this link/LLID.  
+ */
+typedef struct bcmolt_epon_denied_link_rogue_violation_data
+{
+    bcmolt_rogue_status alarm_status;   /**< Alarm Status. */
+} bcmolt_epon_denied_link_rogue_violation_data;
+
+/** Transport message definition for "rogue_violation" group of 
+ * "epon_denied_link" object. 
+ */
+typedef struct bcmolt_epon_denied_link_rogue_violation
+{
+    bcmolt_auto hdr;                    /**< Transport header. */
+    bcmolt_epon_denied_link_key key;    /**< Object key. */
+    bcmolt_epon_denied_link_rogue_violation_data data;  /**< All properties that must be set by the user. */
+} bcmolt_epon_denied_link_rogue_violation;
+
+/** Structure definition for the "system_resource_violation" group of the 
+ * "epon_denied_link" object. 
+ *
+ * A link tried to register and we were unable to allocate system resources for 
+ * it. 
+ */
+typedef struct bcmolt_epon_denied_link_system_resource_violation_data
+{
+    bcmolt_status alarm_status; /**< Alarm Status. */
+} bcmolt_epon_denied_link_system_resource_violation_data;
+
+/** Transport message definition for "system_resource_violation" group of 
+ * "epon_denied_link" object. 
+ */
+typedef struct bcmolt_epon_denied_link_system_resource_violation
+{
+    bcmolt_auto hdr;                    /**< Transport header. */
+    bcmolt_epon_denied_link_key key;    /**< Object key. */
+    bcmolt_epon_denied_link_system_resource_violation_data data;    /**< All properties that must be set by the user. */
+} bcmolt_epon_denied_link_system_resource_violation;
+
+/** Structure definition for the "tdm_channels_exhausted" group of the 
+ * "epon_denied_link" object. 
+ */
+typedef struct bcmolt_epon_denied_link_tdm_channels_exhausted_data
+{
+    bcmolt_status alarm_status; /**< Alarm Status. */
+} bcmolt_epon_denied_link_tdm_channels_exhausted_data;
+
+/** Transport message definition for "tdm_channels_exhausted" group of 
+ * "epon_denied_link" object. 
+ */
+typedef struct bcmolt_epon_denied_link_tdm_channels_exhausted
+{
+    bcmolt_auto hdr;                    /**< Transport header. */
+    bcmolt_epon_denied_link_key key;    /**< Object key. */
+    bcmolt_epon_denied_link_tdm_channels_exhausted_data data;   /**< All properties that must be set by the user. */
+} bcmolt_epon_denied_link_tdm_channels_exhausted;
+
+/** Structure definition for the "unknown_link_violation" group of the 
+ * "epon_denied_link" object. 
+ *
+ * A link tried to register while the PON was set to "notify unknown" 
+ * registration behavior and this link was not pre-provisioned. 
+ */
+typedef struct bcmolt_epon_denied_link_unknown_link_violation_data
+{
+    bcmolt_unknown_link_status alarm_status;    /**< Alarm Status. */
+} bcmolt_epon_denied_link_unknown_link_violation_data;
+
+/** Transport message definition for "unknown_link_violation" group of 
+ * "epon_denied_link" object. 
+ */
+typedef struct bcmolt_epon_denied_link_unknown_link_violation
+{
+    bcmolt_auto hdr;                    /**< Transport header. */
+    bcmolt_epon_denied_link_key key;    /**< Object key. */
+    bcmolt_epon_denied_link_unknown_link_violation_data data;   /**< All properties that must be set by the user. */
+} bcmolt_epon_denied_link_unknown_link_violation;
+
+/** Structure definition for the "upstream_bandwidth_violation" group of the 
+ * "epon_denied_link" object. 
+ *
+ * This link failed to register because there was insufficient upstream 
+ * bandwidth available to provide the default UBD. 
+ */
+typedef struct bcmolt_epon_denied_link_upstream_bandwidth_violation_data
+{
+    bcmolt_status alarm_status; /**< Alarm Status. */
+} bcmolt_epon_denied_link_upstream_bandwidth_violation_data;
+
+/** Transport message definition for "upstream_bandwidth_violation" group of 
+ * "epon_denied_link" object. 
+ */
+typedef struct bcmolt_epon_denied_link_upstream_bandwidth_violation
+{
+    bcmolt_auto hdr;                    /**< Transport header. */
+    bcmolt_epon_denied_link_key key;    /**< Object key. */
+    bcmolt_epon_denied_link_upstream_bandwidth_violation_data data; /**< All properties that must be set by the user. */
+} bcmolt_epon_denied_link_upstream_bandwidth_violation;
+
+/** Structure definition for the "auto_cfg" group of the "epon_denied_link" 
+ * object. 
+ */
+typedef struct bcmolt_epon_denied_link_auto_cfg_data
+{
+    bcmos_bool laser_on_off_violation;          /**< If true, indications of type "laser_on_off_violation" will be generated. */
+    bcmos_bool llid_pool_empty_violation;       /**< If true, indications of type "llid_pool_empty_violation" will be generated. */
+    bcmos_bool max_link_violation;              /**< If true, indications of type "max_link_violation" will be generated. */
+    bcmos_bool overhead_profile_violation;      /**< If true, indications of type "overhead_profile_violation" will be generated. */
+    bcmos_bool range_violation;                 /**< If true, indications of type "range_violation" will be generated. */
+    bcmos_bool rogue_violation;                 /**< If true, indications of type "rogue_violation" will be generated. */
+    bcmos_bool system_resource_violation;       /**< If true, indications of type "system_resource_violation" will be generated. */
+    bcmos_bool tdm_channels_exhausted;          /**< If true, indications of type "tdm_channels_exhausted" will be generated. */
+    bcmos_bool unknown_link_violation;          /**< If true, indications of type "unknown_link_violation" will be generated. */
+    bcmos_bool upstream_bandwidth_violation;    /**< If true, indications of type "upstream_bandwidth_violation" will be generated. */
+} bcmolt_epon_denied_link_auto_cfg_data;
+
+/** Transport message definition for "auto_cfg" group of "epon_denied_link" 
+ * object. 
+ */
+typedef struct bcmolt_epon_denied_link_auto_cfg
+{
+    bcmolt_auto_cfg hdr;                        /**< Transport header. */
+    bcmolt_epon_denied_link_key key;            /**< Object key. */
+    bcmolt_epon_denied_link_auto_cfg_data data; /**< All properties that must be set by the user. */
+} bcmolt_epon_denied_link_auto_cfg;
+
+/** Structure definition for the "key" group of the "epon_link" object. 
+ */
+typedef struct bcmolt_epon_link_key
+{
+    bcmolt_epon_ni epon_ni;         /**< Uniquely identifies the EPON NI containing the link. */
+    bcmos_mac_address mac_address;  /**< The MAC address associated with the EPON link. */
+} bcmolt_epon_link_key;
+
+/** Structure definition for the "cfg" group of the "epon_link" object. 
+ */
+typedef struct bcmolt_epon_link_cfg_data
+{
+    bcmolt_epon_link_rate link_rate;            /**< This link's downstream and upstream rate. */
+    bcmolt_epon_link_state_flags state_flags;   /**< EPON link state flags reflect the current status of the link.   Registered state flag is controled by the static registration operation for links on a protected-standby PON. */
+    bcmolt_epon_llid llid;                      /**< LLID associated with this link. */
+    bcmolt_time_quanta laser_on_time_tq;        /**< Laser-on time in time quanta. */
+    bcmolt_time_quanta laser_off_time_tq;       /**< Laser-off time in time quanta. */
+    bcmolt_time_quanta range_value_tq;          /**< Range value used for this link - in time quanta. */
+    bcmolt_meters distance;                     /**< Distance to the ONU (Differs from range value in that this ignores internal delays) */
+    bcmolt_epon_link_alarm_state alarm_state;   /**< The state of the alarms on this link. */
+    bcmolt_epon_tunnel_id tunnel_id;            /**< Upstream and downstream tunnel ID for this link. */
+    bcmolt_epon_onu_id onu_id;                  /**< ONU associated with this EPON link.  A value of 0xFF indicates that the link has not been associated with an ONU. */
+    bcmolt_epon_laser_overhead_parameters min_laser_overhead;   /**< For 1G ONUs ,these values will override the standard values of 32. */
+    bcmolt_epon_key_exchange_config key_exchange_config;        /**< Encryption key exchange configuration for this link. */
+    bcmolt_epon_encryption_config epon_encryption;              /**< Encryption configuration for this link. */
+    bcmolt_epon_link_fec_en fec_enable;                 /**< FEC enable state for this link. */
+    bcmolt_oam_heartbeat_config oam_heartbeat_config;   /**< OAM heartbeat configuration.  This includes the frame to transmit to the link, and the expected frame/mask from the ONU.   */
+    bcmolt_upstream_bandwidth_distribution upstream_bandwidth;  /**< Upstream Bandwidth. */
+    bcmolt_ubd_info ubd_info;           /**< Returns the actual values from the UBD. Useful if you want to see what value the firmware chose for a field set to 'automatic'. */
+    bcmos_bool clock_transport_enable;  /**< Whether or not to enable clock transport on this link. */
+    uint8_t pending_grants;             /**< The number of pending grants. */
+    bcmolt_epon_link_type link_type;    /**< Link Type. */
+} bcmolt_epon_link_cfg_data;
+
+/** Transport message definition for "cfg" group of "epon_link" object. 
+ */
+typedef struct bcmolt_epon_link_cfg
+{
+    bcmolt_cfg hdr;                 /**< Transport header. */
+    bcmolt_epon_link_key key;       /**< Object key. */
+    bcmolt_epon_link_cfg_data data; /**< All properties that must be set by the user. */
+} bcmolt_epon_link_cfg;
+
+/** Structure definition for the "stat" group of the "epon_link" object. 
+ */
+typedef struct bcmolt_epon_link_stat_data
+{
+    uint64_t rx_data_bytes;             /**< The number of data bytes received on this EPON link. */
+    uint64_t rx_data_frames;            /**< The number of data frames received on this EPON link. */
+    uint64_t rx_frames_64;              /**< The number of 64 byte frames received on this EPON Link */
+    uint64_t rx_frames_65_127;          /**< The number of 65 to 127 byte frames received on this EPON Link */
+    uint64_t rx_frames_128_255;         /**< The number of 128 to 255 byte frames received on this EPON Link */
+    uint64_t rx_frames_256_511;         /**< The number of 256 to 511 byte frames received on this EPON Link */
+    uint64_t rx_frames_512_1023;        /**< The number of 512 to 1023 byte frames received on this EPON Link */
+    uint64_t rx_frames_1024_1518;       /**< The number of 1024 to 1518 byte frames received on this EPON Link */
+    uint64_t rx_frames_1519_2047;       /**< The number of 1519 to 2047 byte frames received on this EPON Link */
+    uint64_t rx_frames_2048_4095;       /**< The number of 2048 to 4095 byte frames received on this EPON Link */
+    uint64_t rx_frames_4096_9216;       /**< The number of 4096 to 9216 byte frames received on this EPON Link */
+    uint64_t rx_frames_9217_16383;      /**< The number of 9217 to 16383 byte frames received on this EPON Link */
+    uint64_t rx_oam_bytes;              /**< The number of OAM bytes received on this EPON link. */
+    uint64_t rx_oam_frames;             /**< The number of OAM frames received on this EPON link. */
+    uint64_t rx_mpcp_frames;            /**< The number of MPCP frames received on this EPON link. */
+    uint64_t rx_broadcast_frames;       /**< The number of broadcast frames received on this EPON link. */
+    uint64_t rx_unicast_frames;         /**< The number of unicast frames received on this EPON link. */
+    uint64_t rx_multicast_frames;       /**< The number of multicast frames received on this EPON link. */
+    uint64_t rx_report_frames;          /**< The number of report frames received on this EPON link. */
+    uint64_t rx_fcs_error;              /**< The number of bad FCS errors received on this EPON Link */
+    uint64_t rx_oversize_error;         /**< The number of oversize errors received on this EPON Link */
+    uint64_t rx_runt_error;             /**< The number of runt errors received on this EPON Link */
+    uint64_t rx_line_code_error;        /**< The number of line code errors received on this EPON Link */
+    uint64_t rx_line_code_error_max;    /**< The number of line code errors max received on this EPON Link */
+    uint64_t tx_data_bytes;             /**< The number of data bytes transmitted on this EPON link. */
+    uint64_t tx_data_frames;            /**< The number of data frames transmitted on this EPON link. */
+    uint64_t tx_frames_64;              /**< The number of 64 byte frames transmitted on this EPON Link */
+    uint64_t tx_frames_65_127;          /**< The number of 65 to 127 byte frames transmitted on this EPON Link */
+    uint64_t tx_frames_128_255;         /**< The number of 128 to 255 byte frames transmitted on this EPON Link */
+    uint64_t tx_frames_256_511;         /**< The number of 256 to 511 byte frames transmitted on this EPON Link */
+    uint64_t tx_frames_512_1023;        /**< The number of 512 to 1023 byte frames transmitted on this EPON Link */
+    uint64_t tx_frames_1024_1518;       /**< The number of 1024 to 1518 byte frames transmitted on this EPON Link */
+    uint64_t tx_frames_1519_2047;       /**< The number of 1519 to 2047 byte frames transmitted on this EPON Link */
+    uint64_t tx_frames_2048_4095;       /**< The number of 2048 to 4095 byte frames transmitted on this EPON Link */
+    uint64_t tx_frames_4096_9216;       /**< The number of 4096 to 9216 byte frames transmitted on this EPON Link */
+    uint64_t tx_frames_9217_16383;      /**< The number of 9217 to 16383 byte frames transmitted on this EPON Link */
+    uint64_t tx_oam_bytes;              /**< The number of OAM bytes transmitted on this EPON link. */
+    uint64_t tx_oam_frames;             /**< The number of OAM frames transmitted on this EPON link. */
+    uint64_t tx_mpcp_frames;            /**< The number of MPCP frames transmitted on this EPON link. */
+    uint64_t tx_broadcast_frames;       /**< The number of broadcast frames transmitted on this EPON link. */
+    uint64_t tx_unicast_frames;         /**< The number of unicast frames transmitted on this EPON link. */
+    uint64_t tx_multicast_frames;       /**< The number of multicast frames transmitted on this EPON link. */
+    uint64_t tx_gates;                  /**< The number of gates transmitted on this EPON link. */
+} bcmolt_epon_link_stat_data;
+
+/** Transport message definition for "stat" group of "epon_link" object. 
+ */
+typedef struct bcmolt_epon_link_stat
+{
+    bcmolt_stat hdr;                    /**< Transport header. */
+    bcmolt_epon_link_key key;           /**< Object key. */
+    bcmolt_epon_link_stat_data data;    /**< All properties that must be set by the user. */
+} bcmolt_epon_link_stat;
+
+/** Structure definition for the "stat_cfg" group of the "epon_link" object. 
+ */
+typedef struct bcmolt_epon_link_stat_cfg_data
+{
+    bcmolt_stat_alarm_config cfg;   /**< Statistic alarm configuration. */
+} bcmolt_epon_link_stat_cfg_data;
+
+/** Transport message definition for "stat_cfg" group of "epon_link" object. 
+ */
+typedef struct bcmolt_epon_link_stat_cfg
+{
+    bcmolt_stat_cfg hdr;        /**< Transport header. */
+    bcmolt_epon_link_key key;   /**< Object key. */
+    bcmolt_epon_link_stat_cfg_data data;    /**< All properties that must be set by the user. */
+} bcmolt_epon_link_stat_cfg;
+
+/** Structure definition for the "duplicate_mpcp_registration_request" group of 
+ * the "epon_link" object. 
+ *
+ * A register requested was received for a link with the same MAC address as a 
+ * link that has already registered. 
+ */
+typedef struct bcmolt_epon_link_duplicate_mpcp_registration_request_data
+{
+    bcmolt_time_quanta initial_range_tq;    /**< Range as calculated from the first frame received. */
+    bcmolt_time_quanta current_range_tq;    /**< Range as calculated from the current frame. */
+} bcmolt_epon_link_duplicate_mpcp_registration_request_data;
+
+/** Transport message definition for "duplicate_mpcp_registration_request" group 
+ * of "epon_link" object. 
+ */
+typedef struct bcmolt_epon_link_duplicate_mpcp_registration_request
+{
+    bcmolt_auto hdr;            /**< Transport header. */
+    bcmolt_epon_link_key key;   /**< Object key. */
+    bcmolt_epon_link_duplicate_mpcp_registration_request_data data; /**< All properties that must be set by the user. */
+} bcmolt_epon_link_duplicate_mpcp_registration_request;
+
+/** Transport message definition for "encryption_enabled" group of "epon_link" 
+ * object. 
+ */
+typedef struct bcmolt_epon_link_encryption_enabled
+{
+    bcmolt_auto hdr;            /**< Transport header. */
+    bcmolt_epon_link_key key;   /**< Object key. */
+} bcmolt_epon_link_encryption_enabled;
+
+/** Structure definition for the "key_exchange_failure" group of the "epon_link" 
+ * object. 
+ *
+ * The OLT failed to receive an updated encryption key within the expected time 
+ * period after encryption key exchange has been initiated. 
+ */
+typedef struct bcmolt_epon_link_key_exchange_failure_data
+{
+    bcmolt_status alarm_status; /**< alarm status. */
+} bcmolt_epon_link_key_exchange_failure_data;
+
+/** Transport message definition for "key_exchange_failure" group of "epon_link" 
+ * object. 
+ */
+typedef struct bcmolt_epon_link_key_exchange_failure
+{
+    bcmolt_auto hdr;            /**< Transport header. */
+    bcmolt_epon_link_key key;   /**< Object key. */
+    bcmolt_epon_link_key_exchange_failure_data data;    /**< All properties that must be set by the user. */
+} bcmolt_epon_link_key_exchange_failure;
+
+/** Transport message definition for "key_exchange_started" group of "epon_link" 
+ * object. 
+ */
+typedef struct bcmolt_epon_link_key_exchange_started
+{
+    bcmolt_auto hdr;            /**< Transport header. */
+    bcmolt_epon_link_key key;   /**< Object key. */
+} bcmolt_epon_link_key_exchange_started;
+
+/** Transport message definition for "key_exchange_stopped" group of "epon_link" 
+ * object. 
+ */
+typedef struct bcmolt_epon_link_key_exchange_stopped
+{
+    bcmolt_auto hdr;            /**< Transport header. */
+    bcmolt_epon_link_key key;   /**< Object key. */
+} bcmolt_epon_link_key_exchange_stopped;
+
+/** Transport message definition for "link_deleted" group of "epon_link" object. 
+ */
+typedef struct bcmolt_epon_link_link_deleted
+{
+    bcmolt_auto hdr;            /**< Transport header. */
+    bcmolt_epon_link_key key;   /**< Object key. */
+} bcmolt_epon_link_link_deleted;
+
+/** Structure definition for the "link_speed_mismatch" group of the "epon_link" 
+ * object. 
+ *
+ * Host will receive this indication if a link registers then attempts to 
+ * register later at a different speed, or if the link registers at a different 
+ * speed than the speed with which it was pre-provisioned. 
+ */
+typedef struct bcmolt_epon_link_link_speed_mismatch_data
+{
+    bcmolt_epon_link_rate previous_rate;    /**< PON rate link initially registered */
+    bcmolt_epon_link_rate current_rate;     /**< PON rate link is currently attempting to register at */
+} bcmolt_epon_link_link_speed_mismatch_data;
+
+/** Transport message definition for "link_speed_mismatch" group of "epon_link" 
+ * object. 
+ */
+typedef struct bcmolt_epon_link_link_speed_mismatch
+{
+    bcmolt_auto hdr;            /**< Transport header. */
+    bcmolt_epon_link_key key;   /**< Object key. */
+    bcmolt_epon_link_link_speed_mismatch_data data; /**< All properties that must be set by the user. */
+} bcmolt_epon_link_link_speed_mismatch;
+
+/** Transport message definition for "mpcp_deregistered" group of "epon_link" 
+ * object. 
+ */
+typedef struct bcmolt_epon_link_mpcp_deregistered
+{
+    bcmolt_auto hdr;            /**< Transport header. */
+    bcmolt_epon_link_key key;   /**< Object key. */
+} bcmolt_epon_link_mpcp_deregistered;
+
+/** Structure definition for the "mpcp_discovered" group of the "epon_link" 
+ * object. 
+ *
+ * A link has completed MPCP link registration. 
+ */
+typedef struct bcmolt_epon_link_mpcp_discovered_data
+{
+    bcmolt_epon_link_info link_info;    /**< Information associated with the discovered link. */
+} bcmolt_epon_link_mpcp_discovered_data;
+
+/** Transport message definition for "mpcp_discovered" group of "epon_link" 
+ * object. 
+ */
+typedef struct bcmolt_epon_link_mpcp_discovered
+{
+    bcmolt_auto hdr;            /**< Transport header. */
+    bcmolt_epon_link_key key;   /**< Object key. */
+    bcmolt_epon_link_mpcp_discovered_data data; /**< All properties that must be set by the user. */
+} bcmolt_epon_link_mpcp_discovered;
+
+/** Transport message definition for "mpcp_reg_ack_timeout" group of "epon_link" 
+ * object. 
+ */
+typedef struct bcmolt_epon_link_mpcp_reg_ack_timeout
+{
+    bcmolt_auto hdr;            /**< Transport header. */
+    bcmolt_epon_link_key key;   /**< Object key. */
+} bcmolt_epon_link_mpcp_reg_ack_timeout;
+
+/** Structure definition for the "mpcp_report_timeout" group of the "epon_link" 
+ * object. 
+ *
+ * The provisioned limit between reports for the specified link has been 
+ * exceeded.  This link will be de-registered, and the alarm_status set when 
+ * this occurs.  The alarm_status will be cleared when the link attempts to 
+ * register again. 
+ */
+typedef struct bcmolt_epon_link_mpcp_report_timeout_data
+{
+    bcmolt_status alarm_status; /**< Alarm Status. */
+} bcmolt_epon_link_mpcp_report_timeout_data;
+
+/** Transport message definition for "mpcp_report_timeout" group of "epon_link" 
+ * object. 
+ */
+typedef struct bcmolt_epon_link_mpcp_report_timeout
+{
+    bcmolt_auto hdr;            /**< Transport header. */
+    bcmolt_epon_link_key key;   /**< Object key. */
+    bcmolt_epon_link_mpcp_report_timeout_data data; /**< All properties that must be set by the user. */
+} bcmolt_epon_link_mpcp_report_timeout;
+
+/** Structure definition for the "oam_keepalive_timeout" group of the 
+ * "epon_link" object. 
+ *
+ * The provisioned time limit between receiving upstream info frames has been 
+ * exceeded.  Normally an ONU will reset its OAM state machine when this 
+ * occurrs and the host must re-negotiate OAM and reprovision the link. 
+ */
+typedef struct bcmolt_epon_link_oam_keepalive_timeout_data
+{
+    bcmolt_status alarm_status; /**< Alarm Status. */
+} bcmolt_epon_link_oam_keepalive_timeout_data;
+
+/** Transport message definition for "oam_keepalive_timeout" group of 
+ * "epon_link" object. 
+ */
+typedef struct bcmolt_epon_link_oam_keepalive_timeout
+{
+    bcmolt_auto hdr;            /**< Transport header. */
+    bcmolt_epon_link_key key;   /**< Object key. */
+    bcmolt_epon_link_oam_keepalive_timeout_data data;   /**< All properties that must be set by the user. */
+} bcmolt_epon_link_oam_keepalive_timeout;
+
+/** Transport message definition for "oam_keepalive_timer_started" group of 
+ * "epon_link" object. 
+ */
+typedef struct bcmolt_epon_link_oam_keepalive_timer_started
+{
+    bcmolt_auto hdr;            /**< Transport header. */
+    bcmolt_epon_link_key key;   /**< Object key. */
+} bcmolt_epon_link_oam_keepalive_timer_started;
+
+/** Transport message definition for "oam_keepalive_timer_stopped" group of 
+ * "epon_link" object. 
+ */
+typedef struct bcmolt_epon_link_oam_keepalive_timer_stopped
+{
+    bcmolt_auto hdr;            /**< Transport header. */
+    bcmolt_epon_link_key key;   /**< Object key. */
+} bcmolt_epon_link_oam_keepalive_timer_stopped;
+
+/** Structure definition for the "preprovisioned_link_created" group of the 
+ * "epon_link" object. 
+ *
+ * Raised after an 'add_link' operation on an EPON NI completes successfully 
+ */
+typedef struct bcmolt_epon_link_preprovisioned_link_created_data
+{
+    bcmolt_epon_link_info link_info;    /**< Information associated with the link. */
+} bcmolt_epon_link_preprovisioned_link_created_data;
+
+/** Transport message definition for "preprovisioned_link_created" group of 
+ * "epon_link" object. 
+ */
+typedef struct bcmolt_epon_link_preprovisioned_link_created
+{
+    bcmolt_auto hdr;            /**< Transport header. */
+    bcmolt_epon_link_key key;   /**< Object key. */
+    bcmolt_epon_link_preprovisioned_link_created_data data; /**< All properties that must be set by the user. */
+} bcmolt_epon_link_preprovisioned_link_created;
+
+/** Structure definition for the "protection_switch_occurred" group of the 
+ * "epon_link" object. 
+ *
+ * The link has undergone a protection switch event. 
+ */
+typedef struct bcmolt_epon_link_protection_switch_occurred_data
+{
+    bcmolt_epon_protection_state protection_status; /**< The link's post-switch role (working or standby). */
+    bcmolt_time_quanta range_value_tq;              /**< Current range value in time quanta. */
+} bcmolt_epon_link_protection_switch_occurred_data;
+
+/** Transport message definition for "protection_switch_occurred" group of 
+ * "epon_link" object. 
+ */
+typedef struct bcmolt_epon_link_protection_switch_occurred
+{
+    bcmolt_auto hdr;            /**< Transport header. */
+    bcmolt_epon_link_key key;   /**< Object key. */
+    bcmolt_epon_link_protection_switch_occurred_data data;  /**< All properties that must be set by the user. */
+} bcmolt_epon_link_protection_switch_occurred;
+
+/** Structure definition for the "range_value_changed" group of the "epon_link" 
+ * object. 
+ *
+ * Indication sent when a range value has been changed. 
+ */
+typedef struct bcmolt_epon_link_range_value_changed_data
+{
+    bcmolt_time_quanta range_value_tq;  /**< New range value. */
+} bcmolt_epon_link_range_value_changed_data;
+
+/** Transport message definition for "range_value_changed" group of "epon_link" 
+ * object. 
+ */
+typedef struct bcmolt_epon_link_range_value_changed
+{
+    bcmolt_auto hdr;            /**< Transport header. */
+    bcmolt_epon_link_key key;   /**< Object key. */
+    bcmolt_epon_link_range_value_changed_data data; /**< All properties that must be set by the user. */
+} bcmolt_epon_link_range_value_changed;
+
+/** Transport message definition for "rerange_failure" group of "epon_link" 
+ * object. 
+ */
+typedef struct bcmolt_epon_link_rerange_failure
+{
+    bcmolt_auto hdr;            /**< Transport header. */
+    bcmolt_epon_link_key key;   /**< Object key. */
+} bcmolt_epon_link_rerange_failure;
+
+/** Structure definition for the "stat_alarm_cleared" group of the "epon_link" 
+ * object. 
+ *
+ * Sent when a configured statistic alarm condition is no longer met. 
+ */
+typedef struct bcmolt_epon_link_stat_alarm_cleared_data
+{
+    bcmolt_epon_link_stat_id stat;  /**< Statistic identifier. */
+} bcmolt_epon_link_stat_alarm_cleared_data;
+
+/** Transport message definition for "stat_alarm_cleared" group of "epon_link" 
+ * object. 
+ */
+typedef struct bcmolt_epon_link_stat_alarm_cleared
+{
+    bcmolt_auto hdr;            /**< Transport header. */
+    bcmolt_epon_link_key key;   /**< Object key. */
+    bcmolt_epon_link_stat_alarm_cleared_data data;  /**< All properties that must be set by the user. */
+} bcmolt_epon_link_stat_alarm_cleared;
+
+/** Structure definition for the "stat_alarm_raised" group of the "epon_link" 
+ * object. 
+ *
+ * Sent when a configured statistic alarm condition has been met. 
+ */
+typedef struct bcmolt_epon_link_stat_alarm_raised_data
+{
+    bcmolt_epon_link_stat_id stat;  /**< Statistic identifier. */
+} bcmolt_epon_link_stat_alarm_raised_data;
+
+/** Transport message definition for "stat_alarm_raised" group of "epon_link" 
+ * object. 
+ */
+typedef struct bcmolt_epon_link_stat_alarm_raised
+{
+    bcmolt_auto hdr;            /**< Transport header. */
+    bcmolt_epon_link_key key;   /**< Object key. */
+    bcmolt_epon_link_stat_alarm_raised_data data;   /**< All properties that must be set by the user. */
+} bcmolt_epon_link_stat_alarm_raised;
+
+/** Transport message definition for "static_registration_done" group of 
+ * "epon_link" object. 
+ */
+typedef struct bcmolt_epon_link_static_registration_done
+{
+    bcmolt_auto hdr;            /**< Transport header. */
+    bcmolt_epon_link_key key;   /**< Object key. */
+} bcmolt_epon_link_static_registration_done;
+
+/** Structure definition for the "auto_cfg" group of the "epon_link" object. 
+ */
+typedef struct bcmolt_epon_link_auto_cfg_data
+{
+    bcmos_bool duplicate_mpcp_registration_request; /**< If true, indications of type "duplicate_mpcp_registration_request" will be generated. */
+    bcmos_bool encryption_enabled;                  /**< If true, indications of type "encryption_enabled" will be generated. */
+    bcmos_bool key_exchange_failure;                /**< If true, indications of type "key_exchange_failure" will be generated. */
+    bcmos_bool key_exchange_started;                /**< If true, indications of type "key_exchange_started" will be generated. */
+    bcmos_bool key_exchange_stopped;                /**< If true, indications of type "key_exchange_stopped" will be generated. */
+    bcmos_bool link_deleted;                        /**< If true, indications of type "link_deleted" will be generated. */
+    bcmos_bool link_speed_mismatch;                 /**< If true, indications of type "link_speed_mismatch" will be generated. */
+    bcmos_bool mpcp_deregistered;                   /**< If true, indications of type "mpcp_deregistered" will be generated. */
+    bcmos_bool mpcp_discovered;                     /**< If true, indications of type "mpcp_discovered" will be generated. */
+    bcmos_bool mpcp_reg_ack_timeout;                /**< If true, indications of type "mpcp_reg_ack_timeout" will be generated. */
+    bcmos_bool mpcp_report_timeout;                 /**< If true, indications of type "mpcp_report_timeout" will be generated. */
+    bcmos_bool oam_keepalive_timeout;               /**< If true, indications of type "oam_keepalive_timeout" will be generated. */
+    bcmos_bool oam_keepalive_timer_started;         /**< If true, indications of type "oam_keepalive_timer_started" will be generated. */
+    bcmos_bool oam_keepalive_timer_stopped;         /**< If true, indications of type "oam_keepalive_timer_stopped" will be generated. */
+    bcmos_bool preprovisioned_link_created;         /**< If true, indications of type "preprovisioned_link_created" will be generated. */
+    bcmos_bool protection_switch_occurred;          /**< If true, indications of type "protection_switch_occurred" will be generated. */
+    bcmos_bool range_value_changed;                 /**< If true, indications of type "range_value_changed" will be generated. */
+    bcmos_bool rerange_failure;                     /**< If true, indications of type "rerange_failure" will be generated. */
+    bcmos_bool stat_alarm_cleared;                  /**< If true, indications of type "stat_alarm_cleared" will be generated. */
+    bcmos_bool stat_alarm_raised;                   /**< If true, indications of type "stat_alarm_raised" will be generated. */
+    bcmos_bool static_registration_done;            /**< If true, indications of type "static_registration_done" will be generated. */
+} bcmolt_epon_link_auto_cfg_data;
+
+/** Transport message definition for "auto_cfg" group of "epon_link" object. 
+ */
+typedef struct bcmolt_epon_link_auto_cfg
+{
+    bcmolt_auto_cfg hdr;                    /**< Transport header. */
+    bcmolt_epon_link_key key;               /**< Object key. */
+    bcmolt_epon_link_auto_cfg_data data;    /**< All properties that must be set by the user. */
+} bcmolt_epon_link_auto_cfg;
+
+/** Transport message definition for "delete_link" group of "epon_link" object. 
+ */
+typedef struct bcmolt_epon_link_delete_link
+{
+    bcmolt_oper hdr;            /**< Transport header. */
+    bcmolt_epon_link_key key;   /**< Object key. */
+} bcmolt_epon_link_delete_link;
+
+/** Transport message definition for "force_rediscovery" group of "epon_link" 
+ * object. 
+ */
+typedef struct bcmolt_epon_link_force_rediscovery
+{
+    bcmolt_oper hdr;            /**< Transport header. */
+    bcmolt_epon_link_key key;   /**< Object key. */
+} bcmolt_epon_link_force_rediscovery;
+
+/** Structure definition for the "key_exchange_start" group of the "epon_link" 
+ * object. 
+ *
+ * Apply the corresponding provisioning for 'epon_link.key_exchange_config' 
+ * against this link and then start key exchange timer with the given period. 
+ */
+typedef struct bcmolt_epon_link_key_exchange_start_data
+{
+    uint16_t period;    /**< Key exchange period in seconds. */
+} bcmolt_epon_link_key_exchange_start_data;
+
+/** Transport message definition for "key_exchange_start" group of "epon_link" 
+ * object. 
+ */
+typedef struct bcmolt_epon_link_key_exchange_start
+{
+    bcmolt_oper hdr;            /**< Transport header. */
+    bcmolt_epon_link_key key;   /**< Object key. */
+    bcmolt_epon_link_key_exchange_start_data data;  /**< All properties that must be set by the user. */
+} bcmolt_epon_link_key_exchange_start;
+
+/** Transport message definition for "key_exchange_stop" group of "epon_link" 
+ * object. 
+ */
+typedef struct bcmolt_epon_link_key_exchange_stop
+{
+    bcmolt_oper hdr;            /**< Transport header. */
+    bcmolt_epon_link_key key;   /**< Object key. */
+} bcmolt_epon_link_key_exchange_stop;
+
+/** Structure definition for the "oam_keepalive_timer_start" group of the 
+ * "epon_link" object. 
+ *
+ * Start the OAM keepalive timer against this link. 
+ */
+typedef struct bcmolt_epon_link_oam_keepalive_timer_start_data
+{
+    uint16_t send_period;   /**< The period at which to send OAM info frames (in seconds). */
+} bcmolt_epon_link_oam_keepalive_timer_start_data;
+
+/** Transport message definition for "oam_keepalive_timer_start" group of 
+ * "epon_link" object. 
+ */
+typedef struct bcmolt_epon_link_oam_keepalive_timer_start
+{
+    bcmolt_oper hdr;            /**< Transport header. */
+    bcmolt_epon_link_key key;   /**< Object key. */
+    bcmolt_epon_link_oam_keepalive_timer_start_data data;   /**< All properties that must be set by the user. */
+} bcmolt_epon_link_oam_keepalive_timer_start;
+
+/** Transport message definition for "oam_keepalive_timer_stop" group of 
+ * "epon_link" object. 
+ */
+typedef struct bcmolt_epon_link_oam_keepalive_timer_stop
+{
+    bcmolt_oper hdr;            /**< Transport header. */
+    bcmolt_epon_link_key key;   /**< Object key. */
+} bcmolt_epon_link_oam_keepalive_timer_stop;
+
+/** Structure definition for the "static_registration" group of the "epon_link" 
+ * object. 
+ *
+ * Statically registers the logical link 
+ */
+typedef struct bcmolt_epon_link_static_registration_data
+{
+    bcmolt_time_quanta laseron_time_tq;     /**< Laser-on time in time quanta.\ */
+    bcmolt_time_quanta laseroff_time_tq;    /**< Laser-off time in time quanta. */
+    bcmolt_time_quanta range_value_tq;      /**< Range value used for this link - in time quanta. */
+    uint8_t pending_grants;                 /**< The number of pending grants. */
+} bcmolt_epon_link_static_registration_data;
+
+/** Transport message definition for "static_registration" group of "epon_link" 
+ * object. 
+ */
+typedef struct bcmolt_epon_link_static_registration
+{
+    bcmolt_oper hdr;            /**< Transport header. */
+    bcmolt_epon_link_key key;   /**< Object key. */
+    bcmolt_epon_link_static_registration_data data; /**< All properties that must be set by the user. */
+} bcmolt_epon_link_static_registration;
+
+/** Structure definition for the "inject_frame" group of the "epon_link" object. 
+ *
+ * Send an arbitrary frame across the specified link. 
+ */
+typedef struct bcmolt_epon_link_inject_frame_data
+{
+    bcmolt_ethernet_frame_unmasked frame;   /**< Complete contents of the frame beginning with the DA up through but not including the CRC. */
+} bcmolt_epon_link_inject_frame_data;
+
+/** Transport message definition for "inject_frame" group of "epon_link" object. 
+ */
+typedef struct bcmolt_epon_link_inject_frame
+{
+    bcmolt_proxy hdr;           /**< Transport header. */
+    bcmolt_epon_link_key key;   /**< Object key. */
+    bcmolt_epon_link_inject_frame_data data;    /**< All properties that must be set by the user. */
+} bcmolt_epon_link_inject_frame;
+
+/** Structure definition for the "frame_captured" group of the "epon_link" 
+ * object. 
+ *
+ * A frame matching host-specified criteria was received. 
+ */
+typedef struct bcmolt_epon_link_frame_captured_data
+{
+    bcmolt_u8_list_u32 frame;   /**< Contents of the frame. */
+} bcmolt_epon_link_frame_captured_data;
+
+/** Transport message definition for "frame_captured" group of "epon_link" 
+ * object. 
+ */
+typedef struct bcmolt_epon_link_frame_captured
+{
+    bcmolt_proxy_rx hdr;                        /**< Transport header. */
+    bcmolt_epon_link_key key;                   /**< Object key. */
+    bcmolt_epon_link_frame_captured_data data;  /**< All properties that must be set by the user. */
+} bcmolt_epon_link_frame_captured;
+
+/** Structure definition for the "key" group of the "epon_ni" object. 
+ */
+typedef struct bcmolt_epon_ni_key
+{
+    bcmolt_epon_ni epon_ni; /**< The index of a specific EPON NI instance as seen by the host. */
+} bcmolt_epon_ni_key;
+
+/** Structure definition for the "cfg" group of the "epon_ni" object. 
+ */
+typedef struct bcmolt_epon_ni_cfg_data
+{
+    bcmos_mac_address mac_address;      /**< The MAC address used for all frames generated by the OLT on the PON.  This value must be set before EPON_NI is first enabled, and cannot be changed while the EPON_NI is enabled. */
+    bcmolt_epon_ni_en_state epon_ni_en; /**< Indicates the enable state of the EPON NI. */
+    bcmolt_registration_behavior registration_behavior; /**< Determines how registration requests from unknown links are handled.  Set to 'Notify Unknown' to force all links to be pre-provisioned.  If in 'Notify Unknown' mode, MPCP Registration of an unknown link will be denied, and a 'White List Violation" will be sent to the host. If set to 'Automatic', the link registers fully without host interaction.  */
+    uint16_t mtu_1g;                        /**< Maximum frame size (including FCS) on the 1G path. This attribute cannot be changed on an enabled EPON_NI. This attribute cannot be an odd value. */
+    uint16_t mtu_10g;                       /**< Maximum frame size (including FCS) on the 10G path. This attribute cannot be changed on an enabled EPON_NI. This attribute cannot be an odd value. */
+    bcmolt_meters minimum_fiber_length;     /**< The minimum fiber length, in meters, at which we expect to find an ONU. Notes: The difference between the minimum and maximum fiber length cannot exceed 100 km. This attribute cannot be changed on an enabled EPON_NI. Some ONUs can register at distances that are less than the provisioned minimum. */
+    bcmolt_meters maximum_fiber_length;     /**< The maximum fiber length, in meters, at which we expect to find an ONU. Notes: The difference between the minimum and maximum fiber length cannot exceed 100 km. This attribute cannot be changed on an enabled EPON_NI. Some ONUs can register at distances that are greater than the provisioned maximum. */
+    bcmolt_time_quanta grant_spacing_tq;    /**< The dead time on the PON between upstream bursts.  This attribute cannot be changed on an enabled EPON_NI. */
+    bcmolt_epon_logical_link_options epon_logical_link_options; /**< Configuration related to EPON links registration and reporting. This value cannot be changed on an enabled EPON_NI. */
+    uint32_t mpcp_discovery_period_ms;              /**< Period of MPCP discovery windows.  In this time period, one discovery gate will be sent for every enabled RP.  The discovery gates will be spaced equally across the time period. */
+    bcmolt_epon_ni_alarm_state alarm_state;         /**< The state of the alarms on this EPON NI. */
+    bcmolt_macaddress_list_u32_max_2048 all_links;  /**< List of all links on the EPON NI. */
+    bcmolt_epon_ni_encryption_cfg encryption_cfg;   /**< Encryption configuration that applies to the EPON NI as a whole. */
+    bcmolt_epon_protection_switching_configuration protection_switching_cfg;    /**< Protection switching configuration. */
+    bcmolt_epon_clock_transport_configuration clock_transport_cfg;              /**< Clock transport configuration. */
+#define BCMOLT_EPON_NI_CFG_DATA_DROPDOWN_WEIGHTS_LEN    7
+    bcmolt_arr_u16_7 dropdown_weights;                  /**< The solicited scheduling drop down weights for priorities 0-6 (percentages relative to that priority). Priority 7 has no drop-down, as it is the lowest priority. The drop-down weights are how much bandwidth to allocate to solicited schedulers at the next lower priority level (even when elements at this level are still active).  This is NOT the percentage allocated to the drop down, it is the ratio between a priority and its dropdown */
+#define BCMOLT_EPON_NI_CFG_DATA_APPROXIMATE_SOLICITED_USAGE_LEN 8
+    bcmolt_arr_bounds_8 approximate_solicited_usage;    /**< The approximate percentage of the PON time necessary to schedule all elements at or above each priority. */
+    uint32_t approximate_tdm_usage;                     /**< The approximate percentage of the PON time necessary to accomodate all TDM grants. */
+    uint16_t no_reports_soak_time;                      /**< Period of time after last report received to send no reports alarm (in ms). */
+    bcmolt_pon_aggregate_shaper pon_aggregate_shaper;   /**< PON Aggregate Shaper. */
+#define BCMOLT_EPON_NI_CFG_DATA_ESTIMATED_PON_LATENCY_TQ_LEN    8
+    bcmolt_arr_bounds_8 estimated_pon_latency_tq;       /**< The estimated time between when the OLT receives a non-zero report from an ONU and when the OLT will generate a grant to that ONU for each priority level. */
+    bcmolt_epon_onu_upgrade_params onu_upgrade_params;  /**< ONU upgrade params. */
+    bcmos_bool auto_rogue_detect_10g_en;                /**< Enable 10G Autonomous Rogue Dection during discovery window */
+    bcmos_bool auto_rogue_detect_1g_en;                 /**< Enable 1G Autonomous Rogue Dection during discovery window */
+    uint8_t auto_rogue_detect_10g_threshold;            /**< Set threshold for number of SyncPatterns received without a Burst Delimiter to trigger the fault. */
+} bcmolt_epon_ni_cfg_data;
+
+/** Transport message definition for "cfg" group of "epon_ni" object. 
+ */
+typedef struct bcmolt_epon_ni_cfg
+{
+    bcmolt_cfg hdr;                 /**< Transport header. */
+    bcmolt_epon_ni_key key;         /**< Object key. */
+    bcmolt_epon_ni_cfg_data data;   /**< All properties that must be set by the user. */
+} bcmolt_epon_ni_cfg;
+
+/** Transport message definition for "auto_rogue_scan_10g_failure" group of 
+ * "epon_ni" object. 
+ */
+typedef struct bcmolt_epon_ni_auto_rogue_scan_10g_failure
+{
+    bcmolt_auto hdr;        /**< Transport header. */
+    bcmolt_epon_ni_key key; /**< Object key. */
+} bcmolt_epon_ni_auto_rogue_scan_10g_failure;
+
+/** Transport message definition for "auto_rogue_scan_1g_failure" group of 
+ * "epon_ni" object. 
+ */
+typedef struct bcmolt_epon_ni_auto_rogue_scan_1g_failure
+{
+    bcmolt_auto hdr;        /**< Transport header. */
+    bcmolt_epon_ni_key key; /**< Object key. */
+} bcmolt_epon_ni_auto_rogue_scan_1g_failure;
+
+/** Structure definition for the "llid_quarantined" group of the "epon_ni" 
+ * object. 
+ */
+typedef struct bcmolt_epon_ni_llid_quarantined_data
+{
+    bcmolt_epon_llid llid;              /**< LLID. */
+    bcmolt_epon_link_rate link_rate;    /**< Link Rate. */
+    bcmos_mac_address link_mac;         /**< Link MAC. */
+    bcmolt_time_quanta range_value_tq;  /**< Range value in time quanta. */
+} bcmolt_epon_ni_llid_quarantined_data;
+
+/** Transport message definition for "llid_quarantined" group of "epon_ni" 
+ * object. 
+ */
+typedef struct bcmolt_epon_ni_llid_quarantined
+{
+    bcmolt_auto hdr;        /**< Transport header. */
+    bcmolt_epon_ni_key key; /**< Object key. */
+    bcmolt_epon_ni_llid_quarantined_data data;  /**< All properties that must be set by the user. */
+} bcmolt_epon_ni_llid_quarantined;
+
+/** Structure definition for the "mpcp_timestamp_changed" group of the "epon_ni" 
+ * object. 
+ *
+ * A clock transport pulse was received at the given MPCP timestamp. 
+ */
+typedef struct bcmolt_epon_ni_mpcp_timestamp_changed_data
+{
+    uint32_t mpcp_timestamp;    /**< The MPCP time at which the pulse was received. */
+} bcmolt_epon_ni_mpcp_timestamp_changed_data;
+
+/** Transport message definition for "mpcp_timestamp_changed" group of "epon_ni" 
+ * object. 
+ */
+typedef struct bcmolt_epon_ni_mpcp_timestamp_changed
+{
+    bcmolt_auto hdr;        /**< Transport header. */
+    bcmolt_epon_ni_key key; /**< Object key. */
+    bcmolt_epon_ni_mpcp_timestamp_changed_data data;    /**< All properties that must be set by the user. */
+} bcmolt_epon_ni_mpcp_timestamp_changed;
+
+/** Structure definition for the "no_reports" group of the "epon_ni" object. 
+ *
+ * Loss of all reports on all links on the EPON NI 
+ */
+typedef struct bcmolt_epon_ni_no_reports_data
+{
+    bcmolt_status alarm_status; /**< Alarm Status. */
+} bcmolt_epon_ni_no_reports_data;
+
+/** Transport message definition for "no_reports" group of "epon_ni" object. 
+ */
+typedef struct bcmolt_epon_ni_no_reports
+{
+    bcmolt_auto hdr;                        /**< Transport header. */
+    bcmolt_epon_ni_key key;                 /**< Object key. */
+    bcmolt_epon_ni_no_reports_data data;    /**< All properties that must be set by the user. */
+} bcmolt_epon_ni_no_reports;
+
+/** Structure definition for the "onu_upgrade_complete" group of the "epon_ni" 
+ * object. 
+ */
+typedef struct bcmolt_epon_ni_onu_upgrade_complete_data
+{
+    bcmos_bool status;  /**< Success or failure.  Against entire upgrade process. */
+    bcmolt_epon_onu_upgrade_status_list_u32 list_of_failed_entities;    /**< List of ONU-IDs the upgrade failed for. */
+} bcmolt_epon_ni_onu_upgrade_complete_data;
+
+/** Transport message definition for "onu_upgrade_complete" group of "epon_ni" 
+ * object. 
+ */
+typedef struct bcmolt_epon_ni_onu_upgrade_complete
+{
+    bcmolt_auto hdr;        /**< Transport header. */
+    bcmolt_epon_ni_key key; /**< Object key. */
+    bcmolt_epon_ni_onu_upgrade_complete_data data;  /**< All properties that must be set by the user. */
+} bcmolt_epon_ni_onu_upgrade_complete;
+
+/** Transport message definition for "rerange_failure" group of "epon_ni" 
+ * object. 
+ */
+typedef struct bcmolt_epon_ni_rerange_failure
+{
+    bcmolt_auto hdr;        /**< Transport header. */
+    bcmolt_epon_ni_key key; /**< Object key. */
+} bcmolt_epon_ni_rerange_failure;
+
+/** Structure definition for the "rogue_scan_complete" group of the "epon_ni" 
+ * object. 
+ *
+ * Indciation that a scan is complete, any error is also returned.  
+ */
+typedef struct bcmolt_epon_ni_rogue_scan_complete_data
+{
+    bcmolt_rogue_scan_status return_ind_status; /**< Status of completed scan. */
+} bcmolt_epon_ni_rogue_scan_complete_data;
+
+/** Transport message definition for "rogue_scan_complete" group of "epon_ni" 
+ * object. 
+ */
+typedef struct bcmolt_epon_ni_rogue_scan_complete
+{
+    bcmolt_auto hdr;        /**< Transport header. */
+    bcmolt_epon_ni_key key; /**< Object key. */
+    bcmolt_epon_ni_rogue_scan_complete_data data;   /**< All properties that must be set by the user. */
+} bcmolt_epon_ni_rogue_scan_complete;
+
+/** Structure definition for the "rssi_measurement_completed" group of the 
+ * "epon_ni" object. 
+ */
+typedef struct bcmolt_epon_ni_rssi_measurement_completed_data
+{
+    bcmolt_result status;       /**< status. */
+    bcmolt_epon_llid llid;      /**< LLID. */
+    bcmos_mac_address link_mac; /**< Link MAC . */
+} bcmolt_epon_ni_rssi_measurement_completed_data;
+
+/** Transport message definition for "rssi_measurement_completed" group of 
+ * "epon_ni" object. 
+ */
+typedef struct bcmolt_epon_ni_rssi_measurement_completed
+{
+    bcmolt_auto hdr;        /**< Transport header. */
+    bcmolt_epon_ni_key key; /**< Object key. */
+    bcmolt_epon_ni_rssi_measurement_completed_data data;    /**< All properties that must be set by the user. */
+} bcmolt_epon_ni_rssi_measurement_completed;
+
+/** Structure definition for the "state_change_completed" group of the "epon_ni" 
+ * object. 
+ *
+ * Sent after a 'set_epon_ni_en_state' operation has completed. 
+ */
+typedef struct bcmolt_epon_ni_state_change_completed_data
+{
+    bcmolt_epon_ni_en_state new_state;  /**< New EPON NI enable state. */
+} bcmolt_epon_ni_state_change_completed_data;
+
+/** Transport message definition for "state_change_completed" group of "epon_ni" 
+ * object. 
+ */
+typedef struct bcmolt_epon_ni_state_change_completed
+{
+    bcmolt_auto hdr;        /**< Transport header. */
+    bcmolt_epon_ni_key key; /**< Object key. */
+    bcmolt_epon_ni_state_change_completed_data data;    /**< All properties that must be set by the user. */
+} bcmolt_epon_ni_state_change_completed;
+
+/** Structure definition for the "auto_cfg" group of the "epon_ni" object. 
+ */
+typedef struct bcmolt_epon_ni_auto_cfg_data
+{
+    bcmos_bool auto_rogue_scan_10g_failure; /**< If true, indications of type "auto_rogue_scan_10g_failure" will be generated. */
+    bcmos_bool auto_rogue_scan_1g_failure;  /**< If true, indications of type "auto_rogue_scan_1g_failure" will be generated. */
+    bcmos_bool llid_quarantined;            /**< If true, indications of type "llid_quarantined" will be generated. */
+    bcmos_bool mpcp_timestamp_changed;      /**< If true, indications of type "mpcp_timestamp_changed" will be generated. */
+    bcmos_bool no_reports;                  /**< If true, indications of type "no_reports" will be generated. */
+    bcmos_bool onu_upgrade_complete;        /**< If true, indications of type "onu_upgrade_complete" will be generated. */
+    bcmos_bool rerange_failure;             /**< If true, indications of type "rerange_failure" will be generated. */
+    bcmos_bool rogue_scan_complete;         /**< If true, indications of type "rogue_scan_complete" will be generated. */
+    bcmos_bool rssi_measurement_completed;  /**< If true, indications of type "rssi_measurement_completed" will be generated. */
+    bcmos_bool state_change_completed;      /**< If true, indications of type "state_change_completed" will be generated. */
+} bcmolt_epon_ni_auto_cfg_data;
+
+/** Transport message definition for "auto_cfg" group of "epon_ni" object. 
+ */
+typedef struct bcmolt_epon_ni_auto_cfg
+{
+    bcmolt_auto_cfg hdr;                /**< Transport header. */
+    bcmolt_epon_ni_key key;             /**< Object key. */
+    bcmolt_epon_ni_auto_cfg_data data;  /**< All properties that must be set by the user. */
+} bcmolt_epon_ni_auto_cfg;
+
+/** Structure definition for the "add_link" group of the "epon_ni" object. 
+ *
+ * Pre-provision an EPON link. 
+ */
+typedef struct bcmolt_epon_ni_add_link_data
+{
+    bcmos_mac_address mac_address;  /**< The MAC address of the EPON link. */
+    bcmolt_epon_link_rate rate;     /**< Rate of link to pre-provision. */
+} bcmolt_epon_ni_add_link_data;
+
+/** Transport message definition for "add_link" group of "epon_ni" object. 
+ */
+typedef struct bcmolt_epon_ni_add_link
+{
+    bcmolt_oper hdr;                    /**< Transport header. */
+    bcmolt_epon_ni_key key;             /**< Object key. */
+    bcmolt_epon_ni_add_link_data data;  /**< All properties that must be set by the user. */
+} bcmolt_epon_ni_add_link;
+
+/** Structure definition for the "add_multicast_link" group of the "epon_ni" 
+ * object. 
+ *
+ * Pre-provision an EPON multicast link. 
+ */
+typedef struct bcmolt_epon_ni_add_multicast_link_data
+{
+    bcmos_mac_address mac_address;  /**< The MAC address of the EPON link. */
+    bcmolt_epon_link_rate rate;     /**< Rate of link to pre-provision. */
+} bcmolt_epon_ni_add_multicast_link_data;
+
+/** Transport message definition for "add_multicast_link" group of "epon_ni" 
+ * object. 
+ */
+typedef struct bcmolt_epon_ni_add_multicast_link
+{
+    bcmolt_oper hdr;        /**< Transport header. */
+    bcmolt_epon_ni_key key; /**< Object key. */
+    bcmolt_epon_ni_add_multicast_link_data data;    /**< All properties that must be set by the user. */
+} bcmolt_epon_ni_add_multicast_link;
+
+/** Structure definition for the "add_protected_standby_link" group of the 
+ * "epon_ni" object. 
+ *
+ * Adds a protected standby link.  Once it has been created, the link is 
+ * considered "standby" for the puposes of protection switching. 
+ */
+typedef struct bcmolt_epon_ni_add_protected_standby_link_data
+{
+    bcmos_mac_address mac_address;              /**< The MAC address of the EPON link. */
+    bcmolt_epon_link_info working_link_info;    /**< Link info for the associated working link. */
+} bcmolt_epon_ni_add_protected_standby_link_data;
+
+/** Transport message definition for "add_protected_standby_link" group of 
+ * "epon_ni" object. 
+ */
+typedef struct bcmolt_epon_ni_add_protected_standby_link
+{
+    bcmolt_oper hdr;        /**< Transport header. */
+    bcmolt_epon_ni_key key; /**< Object key. */
+    bcmolt_epon_ni_add_protected_standby_link_data data;    /**< All properties that must be set by the user. */
+} bcmolt_epon_ni_add_protected_standby_link;
+
+/** Structure definition for the "issue_rssi_grant" group of the "epon_ni" 
+ * object. 
+ *
+ * Issues an RSSI grant to read RX Power 
+ */
+typedef struct bcmolt_epon_ni_issue_rssi_grant_data
+{
+    bcmos_mac_address granted_link; /**< Logical link to grant, which should either be associated with a particular unicast link of interest on the PON or, 0 for idle power measurement. 0 will use a link that will not result in upstream transmission by any device on the PON. */
+    uint16_t trigger_width;         /**< RSSI Trigger Width (Tw) in ns, Desired width of RSSI Trigger based on the Optical Module Specifications. */
+    uint16_t trigger_delay;         /**< RSSI Trigger Delay(Td), in ns, for this link to meet the (Td) delay timing requirement of the Optical Module Specifications. */
+    uint16_t sample_period;         /**< Sample period in us, internal I2C hold/prohibit time where access to device is not allowed. */
+} bcmolt_epon_ni_issue_rssi_grant_data;
+
+/** Transport message definition for "issue_rssi_grant" group of "epon_ni" 
+ * object. 
+ */
+typedef struct bcmolt_epon_ni_issue_rssi_grant
+{
+    bcmolt_oper hdr;        /**< Transport header. */
+    bcmolt_epon_ni_key key; /**< Object key. */
+    bcmolt_epon_ni_issue_rssi_grant_data data;  /**< All properties that must be set by the user. */
+} bcmolt_epon_ni_issue_rssi_grant;
+
+/** Structure definition for the "protection_switching_apply_rerange_delta" 
+ * group of the "epon_ni" object. 
+ */
+typedef struct bcmolt_epon_ni_protection_switching_apply_rerange_delta_data
+{
+    uint32_t rerange_delta; /**< Re-range delta. */
+} bcmolt_epon_ni_protection_switching_apply_rerange_delta_data;
+
+/** Transport message definition for "protection_switching_apply_rerange_delta" 
+ * group of "epon_ni" object. 
+ */
+typedef struct bcmolt_epon_ni_protection_switching_apply_rerange_delta
+{
+    bcmolt_oper hdr;        /**< Transport header. */
+    bcmolt_epon_ni_key key; /**< Object key. */
+    bcmolt_epon_ni_protection_switching_apply_rerange_delta_data data;  /**< All properties that must be set by the user. */
+} bcmolt_epon_ni_protection_switching_apply_rerange_delta;
+
+/** Structure definition for the "rogue_llid_scan" group of the "epon_ni" 
+ * object. 
+ *
+ * Issue a request to scan all LLIDs or a specific LLID on a PON 
+ */
+typedef struct bcmolt_epon_ni_rogue_llid_scan_data
+{
+    bcmos_bool mode;        /**< True = Scan all LLIDS on the PON */
+    bcmolt_epon_llid llid;  /**< Specific LLID to scan or 0 to scan all when mode is ALL */
+} bcmolt_epon_ni_rogue_llid_scan_data;
+
+/** Transport message definition for "rogue_llid_scan" group of "epon_ni" 
+ * object. 
+ */
+typedef struct bcmolt_epon_ni_rogue_llid_scan
+{
+    bcmolt_oper hdr;        /**< Transport header. */
+    bcmolt_epon_ni_key key; /**< Object key. */
+    bcmolt_epon_ni_rogue_llid_scan_data data;   /**< All properties that must be set by the user. */
+} bcmolt_epon_ni_rogue_llid_scan;
+
+/** Structure definition for the "set_epon_ni_en_state" group of the "epon_ni" 
+ * object. 
+ *
+ * Set the EPON NI enable state. 
+ */
+typedef struct bcmolt_epon_ni_set_epon_ni_en_state_data
+{
+    bcmolt_epon_ni_en_state new_state;  /**< New EPON NI enable state. */
+} bcmolt_epon_ni_set_epon_ni_en_state_data;
+
+/** Transport message definition for "set_epon_ni_en_state" group of "epon_ni" 
+ * object. 
+ */
+typedef struct bcmolt_epon_ni_set_epon_ni_en_state
+{
+    bcmolt_oper hdr;        /**< Transport header. */
+    bcmolt_epon_ni_key key; /**< Object key. */
+    bcmolt_epon_ni_set_epon_ni_en_state_data data;  /**< All properties that must be set by the user. */
+} bcmolt_epon_ni_set_epon_ni_en_state;
+
+/** Structure definition for the "start_onu_upgrade" group of the "epon_ni" 
+ * object. 
+ */
+typedef struct bcmolt_epon_ni_start_onu_upgrade_data
+{
+    bcmolt_macaddress_list_u32 list_of_onu_ids; /**< List of ONUs to upgrade the firmware. */
+} bcmolt_epon_ni_start_onu_upgrade_data;
+
+/** Transport message definition for "start_onu_upgrade" group of "epon_ni" 
+ * object. 
+ */
+typedef struct bcmolt_epon_ni_start_onu_upgrade
+{
+    bcmolt_oper hdr;        /**< Transport header. */
+    bcmolt_epon_ni_key key; /**< Object key. */
+    bcmolt_epon_ni_start_onu_upgrade_data data; /**< All properties that must be set by the user. */
+} bcmolt_epon_ni_start_onu_upgrade;
+
+/** Structure definition for the "key" group of the "epon_onu_10g_us" object. 
+ */
+typedef struct bcmolt_epon_onu_10g_us_key
+{
+    bcmolt_epon_ni epon_ni;     /**< EPON NI with which this ONU interface is associated. */
+    bcmolt_epon_onu_id onu_id;  /**< Unique identifier of the ONU interface within its EPON NI. */
+} bcmolt_epon_onu_10g_us_key;
+
+/** Structure definition for the "cfg" group of the "epon_onu_10g_us" object. 
+ */
+typedef struct bcmolt_epon_onu_10g_us_cfg_data
+{
+    bcmolt_macaddress_list_u32_max_2048 all_links;  /**< List of MAC Addresses for all links on the ONU Id. */
+} bcmolt_epon_onu_10g_us_cfg_data;
+
+/** Transport message definition for "cfg" group of "epon_onu_10g_us" object. 
+ */
+typedef struct bcmolt_epon_onu_10g_us_cfg
+{
+    bcmolt_cfg hdr;                 /**< Transport header. */
+    bcmolt_epon_onu_10g_us_key key; /**< Object key. */
+    bcmolt_epon_onu_10g_us_cfg_data data;   /**< All properties that must be set by the user. */
+} bcmolt_epon_onu_10g_us_cfg;
+
+/** Structure definition for the "stat" group of the "epon_onu_10g_us" object. 
+ */
+typedef struct bcmolt_epon_onu_10g_us_stat_data
+{
+    uint64_t fec_code_words_total;          /**< FEC stats code words total */
+    uint64_t fec_code_words_decode_fails;   /**< FEC stats code words decode fails */
+    uint64_t fec_zeroes_corrected;          /**< FEC stats zeros corrected */
+    uint64_t fec_ones_corrected;            /**< FEC stats ones corected */
+} bcmolt_epon_onu_10g_us_stat_data;
+
+/** Transport message definition for "stat" group of "epon_onu_10g_us" object. 
+ */
+typedef struct bcmolt_epon_onu_10g_us_stat
+{
+    bcmolt_stat hdr;                        /**< Transport header. */
+    bcmolt_epon_onu_10g_us_key key;         /**< Object key. */
+    bcmolt_epon_onu_10g_us_stat_data data;  /**< All properties that must be set by the user. */
+} bcmolt_epon_onu_10g_us_stat;
+
+/** Structure definition for the "stat_cfg" group of the "epon_onu_10g_us" 
+ * object. 
+ */
+typedef struct bcmolt_epon_onu_10g_us_stat_cfg_data
+{
+    bcmolt_stat_alarm_config cfg;   /**< Statistic alarm configuration. */
+} bcmolt_epon_onu_10g_us_stat_cfg_data;
+
+/** Transport message definition for "stat_cfg" group of "epon_onu_10g_us" 
+ * object. 
+ */
+typedef struct bcmolt_epon_onu_10g_us_stat_cfg
+{
+    bcmolt_stat_cfg hdr;            /**< Transport header. */
+    bcmolt_epon_onu_10g_us_key key; /**< Object key. */
+    bcmolt_epon_onu_10g_us_stat_cfg_data data;  /**< All properties that must be set by the user. */
+} bcmolt_epon_onu_10g_us_stat_cfg;
+
+/** Structure definition for the "stat_alarm_cleared" group of the 
+ * "epon_onu_10g_us" object. 
+ *
+ * Sent when a configured statistic alarm condition is no longer met. 
+ */
+typedef struct bcmolt_epon_onu_10g_us_stat_alarm_cleared_data
+{
+    bcmolt_epon_onu_10g_us_stat_id stat;    /**< Statistic identifier. */
+} bcmolt_epon_onu_10g_us_stat_alarm_cleared_data;
+
+/** Transport message definition for "stat_alarm_cleared" group of 
+ * "epon_onu_10g_us" object. 
+ */
+typedef struct bcmolt_epon_onu_10g_us_stat_alarm_cleared
+{
+    bcmolt_auto hdr;                /**< Transport header. */
+    bcmolt_epon_onu_10g_us_key key; /**< Object key. */
+    bcmolt_epon_onu_10g_us_stat_alarm_cleared_data data;    /**< All properties that must be set by the user. */
+} bcmolt_epon_onu_10g_us_stat_alarm_cleared;
+
+/** Structure definition for the "stat_alarm_raised" group of the 
+ * "epon_onu_10g_us" object. 
+ *
+ * Sent when a configured statistic alarm condition has been met. 
+ */
+typedef struct bcmolt_epon_onu_10g_us_stat_alarm_raised_data
+{
+    bcmolt_epon_onu_10g_us_stat_id stat;    /**< Statistic identifier. */
+} bcmolt_epon_onu_10g_us_stat_alarm_raised_data;
+
+/** Transport message definition for "stat_alarm_raised" group of 
+ * "epon_onu_10g_us" object. 
+ */
+typedef struct bcmolt_epon_onu_10g_us_stat_alarm_raised
+{
+    bcmolt_auto hdr;                /**< Transport header. */
+    bcmolt_epon_onu_10g_us_key key; /**< Object key. */
+    bcmolt_epon_onu_10g_us_stat_alarm_raised_data data; /**< All properties that must be set by the user. */
+} bcmolt_epon_onu_10g_us_stat_alarm_raised;
+
+/** Structure definition for the "auto_cfg" group of the "epon_onu_10g_us" 
+ * object. 
+ */
+typedef struct bcmolt_epon_onu_10g_us_auto_cfg_data
+{
+    bcmos_bool stat_alarm_cleared;  /**< If true, indications of type "stat_alarm_cleared" will be generated. */
+    bcmos_bool stat_alarm_raised;   /**< If true, indications of type "stat_alarm_raised" will be generated. */
+} bcmolt_epon_onu_10g_us_auto_cfg_data;
+
+/** Transport message definition for "auto_cfg" group of "epon_onu_10g_us" 
+ * object. 
+ */
+typedef struct bcmolt_epon_onu_10g_us_auto_cfg
+{
+    bcmolt_auto_cfg hdr;                        /**< Transport header. */
+    bcmolt_epon_onu_10g_us_key key;             /**< Object key. */
+    bcmolt_epon_onu_10g_us_auto_cfg_data data;  /**< All properties that must be set by the user. */
+} bcmolt_epon_onu_10g_us_auto_cfg;
+
+/** Structure definition for the "key" group of the "epon_onu_1g_us" object. 
+ */
+typedef struct bcmolt_epon_onu_1g_us_key
+{
+    bcmolt_epon_ni epon_ni;     /**< EPON NI with which this ONU interface is associated. */
+    bcmolt_epon_onu_id onu_id;  /**< Unique identifier of the ONU interface within its EPON NI. */
+} bcmolt_epon_onu_1g_us_key;
+
+/** Structure definition for the "cfg" group of the "epon_onu_1g_us" object. 
+ */
+typedef struct bcmolt_epon_onu_1g_us_cfg_data
+{
+    bcmolt_macaddress_list_u32 all_links;   /**< List of MAC Addresses for all links on the ONU Id. */
+} bcmolt_epon_onu_1g_us_cfg_data;
+
+/** Transport message definition for "cfg" group of "epon_onu_1g_us" object. 
+ */
+typedef struct bcmolt_epon_onu_1g_us_cfg
+{
+    bcmolt_cfg hdr;                 /**< Transport header. */
+    bcmolt_epon_onu_1g_us_key key;  /**< Object key. */
+    bcmolt_epon_onu_1g_us_cfg_data data;    /**< All properties that must be set by the user. */
+} bcmolt_epon_onu_1g_us_cfg;
+
+/** Structure definition for the "stat" group of the "epon_onu_1g_us" object. 
+ */
+typedef struct bcmolt_epon_onu_1g_us_stat_data
+{
+    uint64_t good_frames;           /**< Good Frame Count, including nonFEC and FEC */
+    uint64_t good_bytes;            /**< Good Byte Count, including nonFEC and FEC */
+    uint64_t oversz_frames;         /**< Oversized frame count (frames larger than 2000 bytes) */
+    uint64_t non_fec_good_frames;   /**< Non FEC Good Frame Count */
+    uint64_t non_fec_good_bytes;    /**< Non FEC Good Byte Count */
+    uint64_t fec_good_frames;       /**< FEC Good Frame Count */
+    uint64_t fec_good_bytes;        /**< FEC Good Byte Count */
+    uint64_t fec_frames_exc_errs;   /**< FEC Frames which exceeded 8 symbol errors */
+    uint64_t fec_blks_no_errs;      /**< FEC Blocks with no errors */
+    uint64_t fec_blks_corr_errs;    /**< FEC Blocks with correctable errors */
+    uint64_t fec_blks_uncorr_errs;  /**< FEC Blocks with uncorrectable errors */
+    uint64_t fec_corr_bytes;        /**< FEC Corrected Bytes/Symbols */
+    uint64_t fec_corr_zeroes;       /**< FEC Corrected Zeroes, 8b domain */
+    uint64_t fec_corr_ones;         /**< FEC Corrected Ones, 8b domain */
+    uint64_t undersz_frames;        /**< Undersize frame count (frames less than 64 bytes) */
+    uint64_t errorsz_frames;        /**< Errored frame  */
+} bcmolt_epon_onu_1g_us_stat_data;
+
+/** Transport message definition for "stat" group of "epon_onu_1g_us" object. 
+ */
+typedef struct bcmolt_epon_onu_1g_us_stat
+{
+    bcmolt_stat hdr;                        /**< Transport header. */
+    bcmolt_epon_onu_1g_us_key key;          /**< Object key. */
+    bcmolt_epon_onu_1g_us_stat_data data;   /**< All properties that must be set by the user. */
+} bcmolt_epon_onu_1g_us_stat;
+
+/** Structure definition for the "stat_cfg" group of the "epon_onu_1g_us" 
+ * object. 
+ */
+typedef struct bcmolt_epon_onu_1g_us_stat_cfg_data
+{
+    bcmolt_stat_alarm_config cfg;   /**< Statistic alarm configuration. */
+} bcmolt_epon_onu_1g_us_stat_cfg_data;
+
+/** Transport message definition for "stat_cfg" group of "epon_onu_1g_us" 
+ * object. 
+ */
+typedef struct bcmolt_epon_onu_1g_us_stat_cfg
+{
+    bcmolt_stat_cfg hdr;            /**< Transport header. */
+    bcmolt_epon_onu_1g_us_key key;  /**< Object key. */
+    bcmolt_epon_onu_1g_us_stat_cfg_data data;   /**< All properties that must be set by the user. */
+} bcmolt_epon_onu_1g_us_stat_cfg;
+
+/** Structure definition for the "stat_alarm_cleared" group of the 
+ * "epon_onu_1g_us" object. 
+ *
+ * Sent when a configured statistic alarm condition is no longer met. 
+ */
+typedef struct bcmolt_epon_onu_1g_us_stat_alarm_cleared_data
+{
+    bcmolt_epon_onu_1g_us_stat_id stat; /**< Statistic identifier. */
+} bcmolt_epon_onu_1g_us_stat_alarm_cleared_data;
+
+/** Transport message definition for "stat_alarm_cleared" group of 
+ * "epon_onu_1g_us" object. 
+ */
+typedef struct bcmolt_epon_onu_1g_us_stat_alarm_cleared
+{
+    bcmolt_auto hdr;                /**< Transport header. */
+    bcmolt_epon_onu_1g_us_key key;  /**< Object key. */
+    bcmolt_epon_onu_1g_us_stat_alarm_cleared_data data; /**< All properties that must be set by the user. */
+} bcmolt_epon_onu_1g_us_stat_alarm_cleared;
+
+/** Structure definition for the "stat_alarm_raised" group of the 
+ * "epon_onu_1g_us" object. 
+ *
+ * Sent when a configured statistic alarm condition has been met. 
+ */
+typedef struct bcmolt_epon_onu_1g_us_stat_alarm_raised_data
+{
+    bcmolt_epon_onu_1g_us_stat_id stat; /**< Statistic identifier. */
+} bcmolt_epon_onu_1g_us_stat_alarm_raised_data;
+
+/** Transport message definition for "stat_alarm_raised" group of 
+ * "epon_onu_1g_us" object. 
+ */
+typedef struct bcmolt_epon_onu_1g_us_stat_alarm_raised
+{
+    bcmolt_auto hdr;                /**< Transport header. */
+    bcmolt_epon_onu_1g_us_key key;  /**< Object key. */
+    bcmolt_epon_onu_1g_us_stat_alarm_raised_data data;  /**< All properties that must be set by the user. */
+} bcmolt_epon_onu_1g_us_stat_alarm_raised;
+
+/** Structure definition for the "auto_cfg" group of the "epon_onu_1g_us" 
+ * object. 
+ */
+typedef struct bcmolt_epon_onu_1g_us_auto_cfg_data
+{
+    bcmos_bool stat_alarm_cleared;  /**< If true, indications of type "stat_alarm_cleared" will be generated. */
+    bcmos_bool stat_alarm_raised;   /**< If true, indications of type "stat_alarm_raised" will be generated. */
+} bcmolt_epon_onu_1g_us_auto_cfg_data;
+
+/** Transport message definition for "auto_cfg" group of "epon_onu_1g_us" 
+ * object. 
+ */
+typedef struct bcmolt_epon_onu_1g_us_auto_cfg
+{
+    bcmolt_auto_cfg hdr;                        /**< Transport header. */
+    bcmolt_epon_onu_1g_us_key key;              /**< Object key. */
+    bcmolt_epon_onu_1g_us_auto_cfg_data data;   /**< All properties that must be set by the user. */
+} bcmolt_epon_onu_1g_us_auto_cfg;
+
+/** Structure definition for the "key" group of the "epon_path_10g_ds" object. 
+ */
+typedef struct bcmolt_epon_path_10g_ds_key
+{
+    bcmolt_epon_ni epon_ni; /**< EPON NI associated with this 10G downstream path. */
+} bcmolt_epon_path_10g_ds_key;
+
+/** Structure definition for the "cfg" group of the "epon_path_10g_ds" object. 
+ */
+typedef struct bcmolt_epon_path_10g_ds_cfg_data
+{
+    bcmolt_epon_fec_en_state fec_state; /**< FEC enable state for the 10G downstream path on this EPON NI.  This attribute cannot be changed while the EPON_NI is enabled. */
+    bcmolt_prbs_generator_config prbs_generator;    /**< DS PRBS generator configuration */
+} bcmolt_epon_path_10g_ds_cfg_data;
+
+/** Transport message definition for "cfg" group of "epon_path_10g_ds" object. 
+ */
+typedef struct bcmolt_epon_path_10g_ds_cfg
+{
+    bcmolt_cfg hdr;                     /**< Transport header. */
+    bcmolt_epon_path_10g_ds_key key;    /**< Object key. */
+    bcmolt_epon_path_10g_ds_cfg_data data;  /**< All properties that must be set by the user. */
+} bcmolt_epon_path_10g_ds_cfg;
+
+/** Structure definition for the "stat" group of the "epon_path_10g_ds" object. 
+ */
+typedef struct bcmolt_epon_path_10g_ds_stat_data
+{
+    uint64_t bytes;             /**< The number of bytes transmitted on this 10g downstream path. */
+    uint64_t frames;            /**< The number of frames transmitted on this 10g downstream path. */
+    uint64_t frames_64;         /**< The number of 64 byte frames transmitted on this 10g downstream path. */
+    uint64_t frames_65_127;     /**< The number of 65 to 127 byte frames transmitted on this 10g downstream path. */
+    uint64_t frames_128_255;    /**< The number of 128 to 255 byte frames transmitted on this 10g downstream path. */
+    uint64_t frames_256_511;    /**< The number of 256 to 511 byte frames transmitted on this 10g downstream path. */
+    uint64_t frames_512_1023;   /**< The number of 512 to 1023 byte frames transmitted on this 10g downstream path. */
+    uint64_t frames_1024_1518;  /**< The number of 1024 to 1518 byte frames transmitted on this 10g downstream path. */
+    uint64_t frames_1519_2047;  /**< The number of 1519 to 2047 byte frames transmitted on this 10g downstream path. */
+    uint64_t frames_2048_4095;  /**< The number of 2048 to 4095 byte frames transmitted on this 10g downstream path. */
+    uint64_t frames_4096_9216;  /**< The number of 4096 to 9216 byte frames transmitted on this 10g downstream path. */
+    uint64_t frames_9217_16383; /**< The number of 9217 to 16383 byte frames transmitted on this 10g downstream path. */
+    uint64_t broadcast_frames;  /**< The number of broadcast frames transmitted on this 10g downstream path. */
+    uint64_t data_bytes;        /**< The number of data bytes transmitted on this 10g downstream path. */
+    uint64_t multicast_frames;  /**< The number of multicast frames transmitted on this 10g downstream path. */
+    uint64_t unicast_frames;    /**< The number of unicast frames transmitted on this 10g downstream path. */
+    uint64_t oam_bytes;         /**< Number of OAM bytes transmitted on this 10g downstream path. */
+    uint64_t oam_frames;        /**< Number of OAM frames transmitted on this 10g downstream path. */
+    uint64_t gate_frames;       /**< Number of gate frames transmitted on this 10g downstream path. */
+    uint64_t mpcp_frames;       /**< Number of MPCP frames transmitted on this 10g downstream path. */
+    uint64_t abort_frames;      /**< Number of abort frames transmitted on this 10g downstream path. */
+} bcmolt_epon_path_10g_ds_stat_data;
+
+/** Transport message definition for "stat" group of "epon_path_10g_ds" object. 
+ */
+typedef struct bcmolt_epon_path_10g_ds_stat
+{
+    bcmolt_stat hdr;                    /**< Transport header. */
+    bcmolt_epon_path_10g_ds_key key;    /**< Object key. */
+    bcmolt_epon_path_10g_ds_stat_data data; /**< All properties that must be set by the user. */
+} bcmolt_epon_path_10g_ds_stat;
+
+/** Structure definition for the "stat_cfg" group of the "epon_path_10g_ds" 
+ * object. 
+ */
+typedef struct bcmolt_epon_path_10g_ds_stat_cfg_data
+{
+    bcmolt_stat_alarm_config cfg;   /**< Statistic alarm configuration. */
+} bcmolt_epon_path_10g_ds_stat_cfg_data;
+
+/** Transport message definition for "stat_cfg" group of "epon_path_10g_ds" 
+ * object. 
+ */
+typedef struct bcmolt_epon_path_10g_ds_stat_cfg
+{
+    bcmolt_stat_cfg hdr;                        /**< Transport header. */
+    bcmolt_epon_path_10g_ds_key key;            /**< Object key. */
+    bcmolt_epon_path_10g_ds_stat_cfg_data data; /**< All properties that must be set by the user. */
+} bcmolt_epon_path_10g_ds_stat_cfg;
+
+/** Structure definition for the "stat_alarm_cleared" group of the 
+ * "epon_path_10g_ds" object. 
+ *
+ * Sent when a configured statistic alarm condition is no longer met. 
+ */
+typedef struct bcmolt_epon_path_10g_ds_stat_alarm_cleared_data
+{
+    bcmolt_epon_path_10g_ds_stat_id stat;   /**< Statistic identifier. */
+} bcmolt_epon_path_10g_ds_stat_alarm_cleared_data;
+
+/** Transport message definition for "stat_alarm_cleared" group of 
+ * "epon_path_10g_ds" object. 
+ */
+typedef struct bcmolt_epon_path_10g_ds_stat_alarm_cleared
+{
+    bcmolt_auto hdr;                    /**< Transport header. */
+    bcmolt_epon_path_10g_ds_key key;    /**< Object key. */
+    bcmolt_epon_path_10g_ds_stat_alarm_cleared_data data;   /**< All properties that must be set by the user. */
+} bcmolt_epon_path_10g_ds_stat_alarm_cleared;
+
+/** Structure definition for the "stat_alarm_raised" group of the 
+ * "epon_path_10g_ds" object. 
+ *
+ * Sent when a configured statistic alarm condition has been met. 
+ */
+typedef struct bcmolt_epon_path_10g_ds_stat_alarm_raised_data
+{
+    bcmolt_epon_path_10g_ds_stat_id stat;   /**< Statistic identifier. */
+} bcmolt_epon_path_10g_ds_stat_alarm_raised_data;
+
+/** Transport message definition for "stat_alarm_raised" group of 
+ * "epon_path_10g_ds" object. 
+ */
+typedef struct bcmolt_epon_path_10g_ds_stat_alarm_raised
+{
+    bcmolt_auto hdr;                    /**< Transport header. */
+    bcmolt_epon_path_10g_ds_key key;    /**< Object key. */
+    bcmolt_epon_path_10g_ds_stat_alarm_raised_data data;    /**< All properties that must be set by the user. */
+} bcmolt_epon_path_10g_ds_stat_alarm_raised;
+
+/** Structure definition for the "auto_cfg" group of the "epon_path_10g_ds" 
+ * object. 
+ */
+typedef struct bcmolt_epon_path_10g_ds_auto_cfg_data
+{
+    bcmos_bool stat_alarm_cleared;  /**< If true, indications of type "stat_alarm_cleared" will be generated. */
+    bcmos_bool stat_alarm_raised;   /**< If true, indications of type "stat_alarm_raised" will be generated. */
+} bcmolt_epon_path_10g_ds_auto_cfg_data;
+
+/** Transport message definition for "auto_cfg" group of "epon_path_10g_ds" 
+ * object. 
+ */
+typedef struct bcmolt_epon_path_10g_ds_auto_cfg
+{
+    bcmolt_auto_cfg hdr;                        /**< Transport header. */
+    bcmolt_epon_path_10g_ds_key key;            /**< Object key. */
+    bcmolt_epon_path_10g_ds_auto_cfg_data data; /**< All properties that must be set by the user. */
+} bcmolt_epon_path_10g_ds_auto_cfg;
+
+/** Structure definition for the "key" group of the "epon_path_10g_us" object. 
+ */
+typedef struct bcmolt_epon_path_10g_us_key
+{
+    bcmolt_epon_ni epon_ni; /**< EPON NI associated with this 10G upstream path. */
+} bcmolt_epon_path_10g_us_key;
+
+/** Structure definition for the "cfg" group of the "epon_path_10g_us" object. 
+ */
+typedef struct bcmolt_epon_path_10g_us_cfg_data
+{
+    bcmolt_epon_fec_en_state fec_state;         /**< FEC enable state for the 10G upstream path on this EPON NI.  This attribute cannot be changed while the EPON_NI is enabled. */
+    bcmolt_time_quanta sync_time_tq;            /**< Time quanta of sync at start of US burst.  This attribute cannot be changed while the EPON_NI is enabled. */
+    bcmolt_prbs_checker_config prbs_checker;    /**< US PRBS checker configuration */
+    bcmolt_prbs_status prbs_status;             /**< Result of US PRBS checker */
+} bcmolt_epon_path_10g_us_cfg_data;
+
+/** Transport message definition for "cfg" group of "epon_path_10g_us" object. 
+ */
+typedef struct bcmolt_epon_path_10g_us_cfg
+{
+    bcmolt_cfg hdr;                     /**< Transport header. */
+    bcmolt_epon_path_10g_us_key key;    /**< Object key. */
+    bcmolt_epon_path_10g_us_cfg_data data;  /**< All properties that must be set by the user. */
+} bcmolt_epon_path_10g_us_cfg;
+
+/** Structure definition for the "stat" group of the "epon_path_10g_us" object. 
+ */
+typedef struct bcmolt_epon_path_10g_us_stat_data
+{
+    uint64_t bytes;             /**< The number of bytes received on this 10g upstream path. */
+    uint64_t frames;            /**< The number of frames received on this 10g upstream path. */
+    uint64_t frames_64;         /**< The number of 64 byte frames received on this 10g upstream path. */
+    uint64_t frames_65_127;     /**< The number of 65 to 127 byte frames received on this 10g upstream path. */
+    uint64_t frames_128_255;    /**< The number of 128 to 255 byte frames received on this 10g upstream path. */
+    uint64_t frames_256_511;    /**< The number of 256 to 511 byte frames received on this 10g upstream path. */
+    uint64_t frames_512_1023;   /**< The number of 512 to 1023 byte frames received on this 10g upstream path. */
+    uint64_t frames_1024_1518;  /**< The number of 1024 to 1518 byte frames received on this 10g upstream path. */
+    uint64_t frames_1519_2047;  /**< The number of 1519 to 2047 byte frames received on this 10g upstream path. */
+    uint64_t frames_2048_4095;  /**< The number of 2048 to 4095 byte frames received on this 10g upstream path. */
+    uint64_t frames_4096_9216;  /**< The number of 4096 to 9216 byte frames received on this 10g upstream path. */
+    uint64_t frames_9217_16383; /**< The number of 9217 to 16383 byte frames received on this 10g upstream path. */
+    uint64_t broadcast_frames;  /**< The number of broadcast frames received on this 10g upstream path. */
+    uint64_t data_bytes;        /**< The number of data bytes received on this 10g upstream path. */
+    uint64_t multicast_frames;  /**< The number of multicast frames received on this 10g upstream path. */
+    uint64_t unicast_frames;    /**< The number of unicast frames received on this 10g upstream path. */
+    uint64_t mpcp_frames;       /**< The number of MPCP frames received on this 10g upstream path. */
+    uint64_t oam_bytes;         /**< The number of OAM bytes received on this 10g upstream path. */
+    uint64_t oam_frames;        /**< The number of OAM frames received on this 10g upstream path. */
+    uint64_t report_frames;     /**< The number of report frames received on this 10g upstream path. */
+    uint64_t abort_frames;      /**< The number of abort frames received on this 10g upstream path. */
+    uint64_t fcs_error;         /**< The number of bad FCS errors received on this 10g upstream path. */
+    uint64_t crc_8_error;       /**< The number of CRC8 errors received on this 10g upstream path. */
+    uint64_t out_of_slot;       /**< The number of out of slot errors received on this 10g upstream path. */
+    uint64_t oversize_error;    /**< The number of oversize errors received on this 10g upstream path. */
+    uint64_t runt_error;        /**< The number of runt errors received on this 10g upstream path. */
+} bcmolt_epon_path_10g_us_stat_data;
+
+/** Transport message definition for "stat" group of "epon_path_10g_us" object. 
+ */
+typedef struct bcmolt_epon_path_10g_us_stat
+{
+    bcmolt_stat hdr;                    /**< Transport header. */
+    bcmolt_epon_path_10g_us_key key;    /**< Object key. */
+    bcmolt_epon_path_10g_us_stat_data data; /**< All properties that must be set by the user. */
+} bcmolt_epon_path_10g_us_stat;
+
+/** Structure definition for the "stat_cfg" group of the "epon_path_10g_us" 
+ * object. 
+ */
+typedef struct bcmolt_epon_path_10g_us_stat_cfg_data
+{
+    bcmolt_stat_alarm_config cfg;   /**< Statistic alarm configuration. */
+} bcmolt_epon_path_10g_us_stat_cfg_data;
+
+/** Transport message definition for "stat_cfg" group of "epon_path_10g_us" 
+ * object. 
+ */
+typedef struct bcmolt_epon_path_10g_us_stat_cfg
+{
+    bcmolt_stat_cfg hdr;                        /**< Transport header. */
+    bcmolt_epon_path_10g_us_key key;            /**< Object key. */
+    bcmolt_epon_path_10g_us_stat_cfg_data data; /**< All properties that must be set by the user. */
+} bcmolt_epon_path_10g_us_stat_cfg;
+
+/** Structure definition for the "stat_alarm_cleared" group of the 
+ * "epon_path_10g_us" object. 
+ *
+ * Sent when a configured statistic alarm condition is no longer met. 
+ */
+typedef struct bcmolt_epon_path_10g_us_stat_alarm_cleared_data
+{
+    bcmolt_epon_path_10g_us_stat_id stat;   /**< Statistic identifier. */
+} bcmolt_epon_path_10g_us_stat_alarm_cleared_data;
+
+/** Transport message definition for "stat_alarm_cleared" group of 
+ * "epon_path_10g_us" object. 
+ */
+typedef struct bcmolt_epon_path_10g_us_stat_alarm_cleared
+{
+    bcmolt_auto hdr;                    /**< Transport header. */
+    bcmolt_epon_path_10g_us_key key;    /**< Object key. */
+    bcmolt_epon_path_10g_us_stat_alarm_cleared_data data;   /**< All properties that must be set by the user. */
+} bcmolt_epon_path_10g_us_stat_alarm_cleared;
+
+/** Structure definition for the "stat_alarm_raised" group of the 
+ * "epon_path_10g_us" object. 
+ *
+ * Sent when a configured statistic alarm condition has been met. 
+ */
+typedef struct bcmolt_epon_path_10g_us_stat_alarm_raised_data
+{
+    bcmolt_epon_path_10g_us_stat_id stat;   /**< Statistic identifier. */
+} bcmolt_epon_path_10g_us_stat_alarm_raised_data;
+
+/** Transport message definition for "stat_alarm_raised" group of 
+ * "epon_path_10g_us" object. 
+ */
+typedef struct bcmolt_epon_path_10g_us_stat_alarm_raised
+{
+    bcmolt_auto hdr;                    /**< Transport header. */
+    bcmolt_epon_path_10g_us_key key;    /**< Object key. */
+    bcmolt_epon_path_10g_us_stat_alarm_raised_data data;    /**< All properties that must be set by the user. */
+} bcmolt_epon_path_10g_us_stat_alarm_raised;
+
+/** Structure definition for the "auto_cfg" group of the "epon_path_10g_us" 
+ * object. 
+ */
+typedef struct bcmolt_epon_path_10g_us_auto_cfg_data
+{
+    bcmos_bool stat_alarm_cleared;  /**< If true, indications of type "stat_alarm_cleared" will be generated. */
+    bcmos_bool stat_alarm_raised;   /**< If true, indications of type "stat_alarm_raised" will be generated. */
+} bcmolt_epon_path_10g_us_auto_cfg_data;
+
+/** Transport message definition for "auto_cfg" group of "epon_path_10g_us" 
+ * object. 
+ */
+typedef struct bcmolt_epon_path_10g_us_auto_cfg
+{
+    bcmolt_auto_cfg hdr;                        /**< Transport header. */
+    bcmolt_epon_path_10g_us_key key;            /**< Object key. */
+    bcmolt_epon_path_10g_us_auto_cfg_data data; /**< All properties that must be set by the user. */
+} bcmolt_epon_path_10g_us_auto_cfg;
+
+/** Structure definition for the "key" group of the "epon_path_1g_ds" object. 
+ */
+typedef struct bcmolt_epon_path_1g_ds_key
+{
+    bcmolt_epon_ni epon_ni; /**< EPON NI associated with this 1G downstream path. */
+} bcmolt_epon_path_1g_ds_key;
+
+/** Structure definition for the "cfg" group of the "epon_path_1g_ds" object. 
+ */
+typedef struct bcmolt_epon_path_1g_ds_cfg_data
+{
+    bcmolt_epon_fec_en_state default_fec_state; /**< Default FEC enable state for the 1G downstream path on this EPON NI.  This attribute cannot be changed while the EPON_NI is enabled. */
+    bcmolt_raman_mitigation_mode raman_mode;    /**< Raman mitigation mode for the 1G downstream path on this EPON NI.  Raman mitigation cannot coexist with turbo mode.  This attribute cannot be changed while the EPON_NI is enabled. */
+    bcmolt_epon_1g_turbo_mode turbo_2g_mode;    /**< Operate the 1G downstream path at the turbo 2G data rate on this EPON NI.  Raman mitigation cannot coexist with turbo mode.  This attribute cannot be changed while the EPON_NI is enabled. */
+    bcmolt_prbs_generator_config prbs_generator;    /**< DS PRBS generator configuration */
+} bcmolt_epon_path_1g_ds_cfg_data;
+
+/** Transport message definition for "cfg" group of "epon_path_1g_ds" object. 
+ */
+typedef struct bcmolt_epon_path_1g_ds_cfg
+{
+    bcmolt_cfg hdr;                 /**< Transport header. */
+    bcmolt_epon_path_1g_ds_key key; /**< Object key. */
+    bcmolt_epon_path_1g_ds_cfg_data data;   /**< All properties that must be set by the user. */
+} bcmolt_epon_path_1g_ds_cfg;
+
+/** Structure definition for the "stat" group of the "epon_path_1g_ds" object. 
+ */
+typedef struct bcmolt_epon_path_1g_ds_stat_data
+{
+    uint64_t bytes;             /**< The number of bytes transmitted on this 1g downstream path. */
+    uint64_t frames;            /**< The number of frames transmitted on this 1g downstream path. */
+    uint64_t frames_64;         /**< The number of 64 byte frames transmitted on this 1g downstream path. */
+    uint64_t frames_65_127;     /**< The number of 65 to 127 byte frames transmitted on this 1g downstream path. */
+    uint64_t frames_128_255;    /**< The number of 128 to 255 byte frames transmitted on this 1g downstream path. */
+    uint64_t frames_256_511;    /**< The number of 256 to 511 byte frames transmitted on this 1g downstream path. */
+    uint64_t frames_512_1023;   /**< The number of 512 to 1023 byte frames transmitted on this 1g downstream path. */
+    uint64_t frames_1024_1518;  /**< The number of 1024 to 1518 byte frames transmitted on this 1g downstream path. */
+    uint64_t frames_1519_2047;  /**< The number of 1519 to 2047 byte frames transmitted on this 1g downstream path. */
+    uint64_t frames_2048_4095;  /**< The number of 2048 to 4095 byte frames transmitted on this 1g downstream path. */
+    uint64_t frames_4096_9216;  /**< The number of 4096 to 9216 byte frames transmitted on this 1g downstream path. */
+    uint64_t frames_9217_16383; /**< The number of 9217 to 16383 byte frames transmitted on this 1g downstream path. */
+    uint64_t broadcast_frames;  /**< The number of broadcast frames transmitted on this 1g downstream path. */
+    uint64_t data_bytes;        /**< The number of data bytes transmitted on this 1g downstream path. */
+    uint64_t multicast_frames;  /**< The number of multicast frames transmitted on this 1g downstream path. */
+    uint64_t unicast_frames;    /**< The number of unicast frames transmitted on this 1g downstream path. */
+    uint64_t oam_bytes;         /**< Number of OAM bytes transmitted on this 1g downstream path. */
+    uint64_t oam_frames;        /**< Number of OAM frames transmitted on this 1g downstream path. */
+    uint64_t gate_frames;       /**< Number of gate frames transmitted on this 1g downstream path. */
+    uint64_t mpcp_frames;       /**< Number of MPCP frames transmitted on this 1g downstream path. */
+    uint64_t abort_frames;      /**< Number of abort frames transmitted on this 1g downstream path. */
+} bcmolt_epon_path_1g_ds_stat_data;
+
+/** Transport message definition for "stat" group of "epon_path_1g_ds" object. 
+ */
+typedef struct bcmolt_epon_path_1g_ds_stat
+{
+    bcmolt_stat hdr;                /**< Transport header. */
+    bcmolt_epon_path_1g_ds_key key; /**< Object key. */
+    bcmolt_epon_path_1g_ds_stat_data data;  /**< All properties that must be set by the user. */
+} bcmolt_epon_path_1g_ds_stat;
+
+/** Structure definition for the "stat_cfg" group of the "epon_path_1g_ds" 
+ * object. 
+ */
+typedef struct bcmolt_epon_path_1g_ds_stat_cfg_data
+{
+    bcmolt_stat_alarm_config cfg;   /**< Statistic alarm configuration. */
+} bcmolt_epon_path_1g_ds_stat_cfg_data;
+
+/** Transport message definition for "stat_cfg" group of "epon_path_1g_ds" 
+ * object. 
+ */
+typedef struct bcmolt_epon_path_1g_ds_stat_cfg
+{
+    bcmolt_stat_cfg hdr;                        /**< Transport header. */
+    bcmolt_epon_path_1g_ds_key key;             /**< Object key. */
+    bcmolt_epon_path_1g_ds_stat_cfg_data data;  /**< All properties that must be set by the user. */
+} bcmolt_epon_path_1g_ds_stat_cfg;
+
+/** Structure definition for the "stat_alarm_cleared" group of the 
+ * "epon_path_1g_ds" object. 
+ *
+ * Sent when a configured statistic alarm condition is no longer met. 
+ */
+typedef struct bcmolt_epon_path_1g_ds_stat_alarm_cleared_data
+{
+    bcmolt_epon_path_1g_ds_stat_id stat;    /**< Statistic identifier. */
+} bcmolt_epon_path_1g_ds_stat_alarm_cleared_data;
+
+/** Transport message definition for "stat_alarm_cleared" group of 
+ * "epon_path_1g_ds" object. 
+ */
+typedef struct bcmolt_epon_path_1g_ds_stat_alarm_cleared
+{
+    bcmolt_auto hdr;                /**< Transport header. */
+    bcmolt_epon_path_1g_ds_key key; /**< Object key. */
+    bcmolt_epon_path_1g_ds_stat_alarm_cleared_data data;    /**< All properties that must be set by the user. */
+} bcmolt_epon_path_1g_ds_stat_alarm_cleared;
+
+/** Structure definition for the "stat_alarm_raised" group of the 
+ * "epon_path_1g_ds" object. 
+ *
+ * Sent when a configured statistic alarm condition has been met. 
+ */
+typedef struct bcmolt_epon_path_1g_ds_stat_alarm_raised_data
+{
+    bcmolt_epon_path_1g_ds_stat_id stat;    /**< Statistic identifier. */
+} bcmolt_epon_path_1g_ds_stat_alarm_raised_data;
+
+/** Transport message definition for "stat_alarm_raised" group of 
+ * "epon_path_1g_ds" object. 
+ */
+typedef struct bcmolt_epon_path_1g_ds_stat_alarm_raised
+{
+    bcmolt_auto hdr;                /**< Transport header. */
+    bcmolt_epon_path_1g_ds_key key; /**< Object key. */
+    bcmolt_epon_path_1g_ds_stat_alarm_raised_data data; /**< All properties that must be set by the user. */
+} bcmolt_epon_path_1g_ds_stat_alarm_raised;
+
+/** Structure definition for the "auto_cfg" group of the "epon_path_1g_ds" 
+ * object. 
+ */
+typedef struct bcmolt_epon_path_1g_ds_auto_cfg_data
+{
+    bcmos_bool stat_alarm_cleared;  /**< If true, indications of type "stat_alarm_cleared" will be generated. */
+    bcmos_bool stat_alarm_raised;   /**< If true, indications of type "stat_alarm_raised" will be generated. */
+} bcmolt_epon_path_1g_ds_auto_cfg_data;
+
+/** Transport message definition for "auto_cfg" group of "epon_path_1g_ds" 
+ * object. 
+ */
+typedef struct bcmolt_epon_path_1g_ds_auto_cfg
+{
+    bcmolt_auto_cfg hdr;                        /**< Transport header. */
+    bcmolt_epon_path_1g_ds_key key;             /**< Object key. */
+    bcmolt_epon_path_1g_ds_auto_cfg_data data;  /**< All properties that must be set by the user. */
+} bcmolt_epon_path_1g_ds_auto_cfg;
+
+/** Structure definition for the "key" group of the "epon_path_1g_us" object. 
+ */
+typedef struct bcmolt_epon_path_1g_us_key
+{
+    bcmolt_epon_ni epon_ni; /**< EPON NI associated with this 1G upstream path. */
+} bcmolt_epon_path_1g_us_key;
+
+/** Structure definition for the "cfg" group of the "epon_path_1g_us" object. 
+ */
+typedef struct bcmolt_epon_path_1g_us_cfg_data
+{
+    bcmolt_epon_fec_en_state default_fec_state; /**< Default FEC enable state for the 1G upstream path on this EPON NI.  This attribute cannot be changed while the EPON_NI is enabled. */
+    bcmolt_time_quanta sync_time_tq;            /**< Time quanta of sync at start of US burst.  This attribute cannot be changed while the EPON_NI is enabled. */
+    bcmolt_prbs_checker_config prbs_checker;    /**< US PRBS checker configuration */
+    bcmolt_prbs_status prbs_status;             /**< Result of US PRBS checker */
+} bcmolt_epon_path_1g_us_cfg_data;
+
+/** Transport message definition for "cfg" group of "epon_path_1g_us" object. 
+ */
+typedef struct bcmolt_epon_path_1g_us_cfg
+{
+    bcmolt_cfg hdr;                 /**< Transport header. */
+    bcmolt_epon_path_1g_us_key key; /**< Object key. */
+    bcmolt_epon_path_1g_us_cfg_data data;   /**< All properties that must be set by the user. */
+} bcmolt_epon_path_1g_us_cfg;
+
+/** Structure definition for the "stat" group of the "epon_path_1g_us" object. 
+ */
+typedef struct bcmolt_epon_path_1g_us_stat_data
+{
+    uint64_t bytes;             /**< The number of bytes received on this 1g upstream path. */
+    uint64_t frames;            /**< The number of frames received on this 1g upstream path. */
+    uint64_t frames_64;         /**< The number of 64 byte frames received on this 1g upstream path. */
+    uint64_t frames_65_127;     /**< The number of 65 to 127 byte frames received on this 1g upstream path. */
+    uint64_t frames_128_255;    /**< The number of 128 to 255 byte frames received on this 1g upstream path. */
+    uint64_t frames_256_511;    /**< The number of 256 to 511 byte frames received on this 1g upstream path. */
+    uint64_t frames_512_1023;   /**< The number of 512 to 1023 byte frames received on this 1g upstream path. */
+    uint64_t frames_1024_1518;  /**< The number of 1024 to 1518 byte frames received on this 1g upstream path. */
+    uint64_t frames_1519_2047;  /**< The number of 1519 to 2047 byte frames received on this 1g upstream path. */
+    uint64_t frames_2048_4095;  /**< The number of 2048 to 4095 byte frames received on this 1g upstream path. */
+    uint64_t frames_4096_9216;  /**< The number of 4096 to 9216 byte frames received on this 1g upstream path. */
+    uint64_t frames_9217_16383; /**< The number of 9217 to 16383 byte frames received on this 1g upstream path. */
+    uint64_t broadcast_frames;  /**< The number of broadcast frames received on this 1g upstream path. */
+    uint64_t data_bytes;        /**< The number of data bytes received on this 1g upstream path. */
+    uint64_t multicast_frames;  /**< The number of multicast frames received on this 1g upstream path. */
+    uint64_t unicast_frames;    /**< The number of unicast frames received on this 1g upstream path. */
+    uint64_t mpcp_frames;       /**< The number of MPCP frames received on this 1g upstream path. */
+    uint64_t oam_bytes;         /**< The number of OAM bytes received on this 1g upstream path. */
+    uint64_t oam_frames;        /**< The number of OAM frames received on this 1g upstream path. */
+    uint64_t report_frames;     /**< The number of report frames received on this 1g upstream path. */
+    uint64_t abort_frames;      /**< The number of abort frames received on this 1g upstream path. */
+    uint64_t fcs_error;         /**< The number of bad FCS errors received on this 1g upstream path. */
+    uint64_t crc_8_error;       /**< The number of CRC8 errors received on this 1g upstream path. */
+    uint64_t out_of_slot;       /**< The number of out of slot errors received on this 1g upstream path. */
+    uint64_t oversize_error;    /**< The number of oversize errors received on this 1g upstream path. */
+    uint64_t runt_error;        /**< The number of runt errors received on this 1g upstream path. */
+} bcmolt_epon_path_1g_us_stat_data;
+
+/** Transport message definition for "stat" group of "epon_path_1g_us" object. 
+ */
+typedef struct bcmolt_epon_path_1g_us_stat
+{
+    bcmolt_stat hdr;                /**< Transport header. */
+    bcmolt_epon_path_1g_us_key key; /**< Object key. */
+    bcmolt_epon_path_1g_us_stat_data data;  /**< All properties that must be set by the user. */
+} bcmolt_epon_path_1g_us_stat;
+
+/** Structure definition for the "stat_cfg" group of the "epon_path_1g_us" 
+ * object. 
+ */
+typedef struct bcmolt_epon_path_1g_us_stat_cfg_data
+{
+    bcmolt_stat_alarm_config cfg;   /**< Statistic alarm configuration. */
+} bcmolt_epon_path_1g_us_stat_cfg_data;
+
+/** Transport message definition for "stat_cfg" group of "epon_path_1g_us" 
+ * object. 
+ */
+typedef struct bcmolt_epon_path_1g_us_stat_cfg
+{
+    bcmolt_stat_cfg hdr;                        /**< Transport header. */
+    bcmolt_epon_path_1g_us_key key;             /**< Object key. */
+    bcmolt_epon_path_1g_us_stat_cfg_data data;  /**< All properties that must be set by the user. */
+} bcmolt_epon_path_1g_us_stat_cfg;
+
+/** Structure definition for the "stat_alarm_cleared" group of the 
+ * "epon_path_1g_us" object. 
+ *
+ * Sent when a configured statistic alarm condition is no longer met. 
+ */
+typedef struct bcmolt_epon_path_1g_us_stat_alarm_cleared_data
+{
+    bcmolt_epon_path_1g_us_stat_id stat;    /**< Statistic identifier. */
+} bcmolt_epon_path_1g_us_stat_alarm_cleared_data;
+
+/** Transport message definition for "stat_alarm_cleared" group of 
+ * "epon_path_1g_us" object. 
+ */
+typedef struct bcmolt_epon_path_1g_us_stat_alarm_cleared
+{
+    bcmolt_auto hdr;                /**< Transport header. */
+    bcmolt_epon_path_1g_us_key key; /**< Object key. */
+    bcmolt_epon_path_1g_us_stat_alarm_cleared_data data;    /**< All properties that must be set by the user. */
+} bcmolt_epon_path_1g_us_stat_alarm_cleared;
+
+/** Structure definition for the "stat_alarm_raised" group of the 
+ * "epon_path_1g_us" object. 
+ *
+ * Sent when a configured statistic alarm condition has been met. 
+ */
+typedef struct bcmolt_epon_path_1g_us_stat_alarm_raised_data
+{
+    bcmolt_epon_path_1g_us_stat_id stat;    /**< Statistic identifier. */
+} bcmolt_epon_path_1g_us_stat_alarm_raised_data;
+
+/** Transport message definition for "stat_alarm_raised" group of 
+ * "epon_path_1g_us" object. 
+ */
+typedef struct bcmolt_epon_path_1g_us_stat_alarm_raised
+{
+    bcmolt_auto hdr;                /**< Transport header. */
+    bcmolt_epon_path_1g_us_key key; /**< Object key. */
+    bcmolt_epon_path_1g_us_stat_alarm_raised_data data; /**< All properties that must be set by the user. */
+} bcmolt_epon_path_1g_us_stat_alarm_raised;
+
+/** Structure definition for the "auto_cfg" group of the "epon_path_1g_us" 
+ * object. 
+ */
+typedef struct bcmolt_epon_path_1g_us_auto_cfg_data
+{
+    bcmos_bool stat_alarm_cleared;  /**< If true, indications of type "stat_alarm_cleared" will be generated. */
+    bcmos_bool stat_alarm_raised;   /**< If true, indications of type "stat_alarm_raised" will be generated. */
+} bcmolt_epon_path_1g_us_auto_cfg_data;
+
+/** Transport message definition for "auto_cfg" group of "epon_path_1g_us" 
+ * object. 
+ */
+typedef struct bcmolt_epon_path_1g_us_auto_cfg
+{
+    bcmolt_auto_cfg hdr;                        /**< Transport header. */
+    bcmolt_epon_path_1g_us_key key;             /**< Object key. */
+    bcmolt_epon_path_1g_us_auto_cfg_data data;  /**< All properties that must be set by the user. */
+} bcmolt_epon_path_1g_us_auto_cfg;
+
+/** Structure definition for the "key" group of the "epon_rp" object. 
+ */
+typedef struct bcmolt_epon_rp_key
+{
+    bcmolt_epon_ni epon_ni;             /**< EPON NI containing this RP. */
+    bcmolt_epon_link_rate link_rate;    /**< Link rate associated with this RP.  Must be one of 10/10, 10/1, or 1/1. */
+} bcmolt_epon_rp_key;
+
+/** Structure definition for the "cfg" group of the "epon_rp" object. 
+ */
+typedef struct bcmolt_epon_rp_cfg_data
+{
+    bcmolt_epon_llid base_llid;                 /**< Base (lowest) logical link identifier for this RP.  This attribute cannot be changed while the EPON_NI is enabled, nor while any non-system links exist.  The sum of this value and max_links for this RP must be 0x7eff or smaller. */
+    bcmos_bool mpcp_disc_en;                    /**< Governs whether discovery gates for this RP are issued  */
+    bcmolt_time_quanta mpcp_disc_gnt_len_tq;    /**< Length of discovery grants in time quanta for this RP. */
+    uint16_t mpcp_report_timeout;               /**< Number of ms before links are deregistered due to no report received. */
+    uint16_t max_mpcp_reg_per_disc_window;      /**< Maximum number of MPCP registrations per discovery window on this RP (0 indicates unlimited). */
+    uint16_t max_links; /**< Maximum number of links to register on this EPON_RP.  This attribute cannot be changed while the EPON_NI is enabled, nor while any non-system links exist.  The actual limit is dependent on the system mode. */
+    bcmolt_upstream_bandwidth_distribution default_upstream_bandwidth;  /**< Default upstream bandwidth for newly created links. */
+    double rate_of_refraction;  /**< These are magic numbers derived using the process defined in ITU-T G.984.3 Appendix VII (http://www.itu.int/rec/T-REC-G.984.3-200911-S!Amd2/en) and ITU-T G.987.3 Appendix II (http://www.itu.int/rec/T-REC-G.987.3-201010-S/en) */
+} bcmolt_epon_rp_cfg_data;
+
+/** Transport message definition for "cfg" group of "epon_rp" object. 
+ */
+typedef struct bcmolt_epon_rp_cfg
+{
+    bcmolt_cfg hdr;                 /**< Transport header. */
+    bcmolt_epon_rp_key key;         /**< Object key. */
+    bcmolt_epon_rp_cfg_data data;   /**< All properties that must be set by the user. */
+} bcmolt_epon_rp_cfg;
+
+/** Structure definition for the "key" group of the "gpio" object. 
+ */
+typedef struct bcmolt_gpio_key
+{
+    uint32_t reserved;          /**< Reserved (set to 0). */
+    bcmolt_gpio_pin gpio_id;    /**< GPIO ID. */
+} bcmolt_gpio_key;
+
+/** Structure definition for the "cfg" group of the "gpio" object. 
+ */
+typedef struct bcmolt_gpio_cfg_data
+{
+    bcmolt_gpio_pin_dir direction;  /**< GPIO PIN direction (input or output) */
+    bcmolt_gpio_value value;        /**< Value to write. */
+} bcmolt_gpio_cfg_data;
+
+/** Transport message definition for "cfg" group of "gpio" object. 
+ */
+typedef struct bcmolt_gpio_cfg
+{
+    bcmolt_cfg hdr;             /**< Transport header. */
+    bcmolt_gpio_key key;        /**< Object key. */
+    bcmolt_gpio_cfg_data data;  /**< All properties that must be set by the user. */
+} bcmolt_gpio_cfg;
+
+/** Structure definition for the "key" group of the "gpon_alloc" object. 
+ */
+typedef struct bcmolt_gpon_alloc_key
+{
+    bcmolt_gpon_ni pon_ni;          /**< PON network interface. */
+    bcmolt_gpon_alloc_id alloc_id;  /**< Alloc ID. */
+} bcmolt_gpon_alloc_key;
+
+/** Structure definition for the "cfg" group of the "gpon_alloc" object. 
+ */
+typedef struct bcmolt_gpon_alloc_cfg_data
+{
+    bcmolt_alloc_state state;   /**< Current Alloc ID state */
+    bcmolt_pon_alloc_sla sla;   /**< Alloc ID SLA */
+    bcmolt_gpon_onu_id onu_id;  /**< ONU ID the alloc ID is assigned to */
+    bcmos_bool collect_stats;   /**< Enable statistics collection for this alloc ID */
+} bcmolt_gpon_alloc_cfg_data;
+
+/** Transport message definition for "cfg" group of "gpon_alloc" object. 
+ */
+typedef struct bcmolt_gpon_alloc_cfg
+{
+    bcmolt_cfg hdr;                     /**< Transport header. */
+    bcmolt_gpon_alloc_key key;          /**< Object key. */
+    bcmolt_gpon_alloc_cfg_data data;    /**< All properties that must be set by the user. */
+} bcmolt_gpon_alloc_cfg;
+
+/** Structure definition for the "stat" group of the "gpon_alloc" object. 
+ */
+typedef struct bcmolt_gpon_alloc_stat_data
+{
+    uint64_t rx_bytes;  /**< Number of alloc ID received bytes. */
+} bcmolt_gpon_alloc_stat_data;
+
+/** Transport message definition for "stat" group of "gpon_alloc" object. 
+ */
+typedef struct bcmolt_gpon_alloc_stat
+{
+    bcmolt_stat hdr;                    /**< Transport header. */
+    bcmolt_gpon_alloc_key key;          /**< Object key. */
+    bcmolt_gpon_alloc_stat_data data;   /**< All properties that must be set by the user. */
+} bcmolt_gpon_alloc_stat;
+
+/** Structure definition for the "stat_cfg" group of the "gpon_alloc" object. 
+ */
+typedef struct bcmolt_gpon_alloc_stat_cfg_data
+{
+    bcmolt_stat_alarm_config cfg;   /**< Statistic alarm configuration. */
+} bcmolt_gpon_alloc_stat_cfg_data;
+
+/** Transport message definition for "stat_cfg" group of "gpon_alloc" object. 
+ */
+typedef struct bcmolt_gpon_alloc_stat_cfg
+{
+    bcmolt_stat_cfg hdr;        /**< Transport header. */
+    bcmolt_gpon_alloc_key key;  /**< Object key. */
+    bcmolt_gpon_alloc_stat_cfg_data data;   /**< All properties that must be set by the user. */
+} bcmolt_gpon_alloc_stat_cfg;
+
+/** Structure definition for the "configuration_completed" group of the 
+ * "gpon_alloc" object. 
+ */
+typedef struct bcmolt_gpon_alloc_configuration_completed_data
+{
+    bcmolt_result status;           /**< Status. */
+    bcmolt_alloc_state new_state;   /**< new state. */
+} bcmolt_gpon_alloc_configuration_completed_data;
+
+/** Transport message definition for "configuration_completed" group of 
+ * "gpon_alloc" object. 
+ */
+typedef struct bcmolt_gpon_alloc_configuration_completed
+{
+    bcmolt_auto hdr;            /**< Transport header. */
+    bcmolt_gpon_alloc_key key;  /**< Object key. */
+    bcmolt_gpon_alloc_configuration_completed_data data;    /**< All properties that must be set by the user. */
+} bcmolt_gpon_alloc_configuration_completed;
+
+/** Structure definition for the "get_alloc_stats_completed" group of the 
+ * "gpon_alloc" object. 
+ *
+ * Collected alloc ID statistics from get_stats operation 
+ */
+typedef struct bcmolt_gpon_alloc_get_alloc_stats_completed_data
+{
+    bcmolt_result status;           /**< status. */
+    uint32_t average_nsr_used;      /**< Average NSR used bytes. */
+    uint32_t average_nsr_allocated; /**< Average NSR allocated bytes. */
+    uint32_t average_sr_report;     /**< Average SR report. */
+} bcmolt_gpon_alloc_get_alloc_stats_completed_data;
+
+/** Transport message definition for "get_alloc_stats_completed" group of 
+ * "gpon_alloc" object. 
+ */
+typedef struct bcmolt_gpon_alloc_get_alloc_stats_completed
+{
+    bcmolt_auto hdr;            /**< Transport header. */
+    bcmolt_gpon_alloc_key key;  /**< Object key. */
+    bcmolt_gpon_alloc_get_alloc_stats_completed_data data;  /**< All properties that must be set by the user. */
+} bcmolt_gpon_alloc_get_alloc_stats_completed;
+
+/** Structure definition for the "stat_alarm_cleared" group of the "gpon_alloc" 
+ * object. 
+ *
+ * Sent when a configured statistic alarm condition is no longer met. 
+ */
+typedef struct bcmolt_gpon_alloc_stat_alarm_cleared_data
+{
+    bcmolt_gpon_alloc_stat_id stat; /**< Statistic identifier. */
+} bcmolt_gpon_alloc_stat_alarm_cleared_data;
+
+/** Transport message definition for "stat_alarm_cleared" group of "gpon_alloc" 
+ * object. 
+ */
+typedef struct bcmolt_gpon_alloc_stat_alarm_cleared
+{
+    bcmolt_auto hdr;            /**< Transport header. */
+    bcmolt_gpon_alloc_key key;  /**< Object key. */
+    bcmolt_gpon_alloc_stat_alarm_cleared_data data; /**< All properties that must be set by the user. */
+} bcmolt_gpon_alloc_stat_alarm_cleared;
+
+/** Structure definition for the "stat_alarm_raised" group of the "gpon_alloc" 
+ * object. 
+ *
+ * Sent when a configured statistic alarm condition has been met. 
+ */
+typedef struct bcmolt_gpon_alloc_stat_alarm_raised_data
+{
+    bcmolt_gpon_alloc_stat_id stat; /**< Statistic identifier. */
+} bcmolt_gpon_alloc_stat_alarm_raised_data;
+
+/** Transport message definition for "stat_alarm_raised" group of "gpon_alloc" 
+ * object. 
+ */
+typedef struct bcmolt_gpon_alloc_stat_alarm_raised
+{
+    bcmolt_auto hdr;            /**< Transport header. */
+    bcmolt_gpon_alloc_key key;  /**< Object key. */
+    bcmolt_gpon_alloc_stat_alarm_raised_data data;  /**< All properties that must be set by the user. */
+} bcmolt_gpon_alloc_stat_alarm_raised;
+
+/** Structure definition for the "auto_cfg" group of the "gpon_alloc" object. 
+ */
+typedef struct bcmolt_gpon_alloc_auto_cfg_data
+{
+    bcmos_bool configuration_completed;     /**< If true, indications of type "configuration_completed" will be generated. */
+    bcmos_bool get_alloc_stats_completed;   /**< If true, indications of type "get_alloc_stats_completed" will be generated. */
+    bcmos_bool stat_alarm_cleared;          /**< If true, indications of type "stat_alarm_cleared" will be generated. */
+    bcmos_bool stat_alarm_raised;           /**< If true, indications of type "stat_alarm_raised" will be generated. */
+} bcmolt_gpon_alloc_auto_cfg_data;
+
+/** Transport message definition for "auto_cfg" group of "gpon_alloc" object. 
+ */
+typedef struct bcmolt_gpon_alloc_auto_cfg
+{
+    bcmolt_auto_cfg hdr;                    /**< Transport header. */
+    bcmolt_gpon_alloc_key key;              /**< Object key. */
+    bcmolt_gpon_alloc_auto_cfg_data data;   /**< All properties that must be set by the user. */
+} bcmolt_gpon_alloc_auto_cfg;
+
+/** Structure definition for the "get_stats" group of the "gpon_alloc" object. 
+ *
+ * Run statistics collection for a given period of time 
+ */
+typedef struct bcmolt_gpon_alloc_get_stats_data
+{
+    uint32_t num_of_cycles; /**< The number of cycles to run statistics collection */
+} bcmolt_gpon_alloc_get_stats_data;
+
+/** Transport message definition for "get_stats" group of "gpon_alloc" object. 
+ */
+typedef struct bcmolt_gpon_alloc_get_stats
+{
+    bcmolt_oper hdr;                        /**< Transport header. */
+    bcmolt_gpon_alloc_key key;              /**< Object key. */
+    bcmolt_gpon_alloc_get_stats_data data;  /**< All properties that must be set by the user. */
+} bcmolt_gpon_alloc_get_stats;
+
+/** Structure definition for the "set_state" group of the "gpon_alloc" object. 
+ *
+ * Sets the alloc's activation state.  This is only used for protection 
+ * switching on an active-standby PON.  In normal operation, this isn't 
+ * necessary since allocs are activated/deactivated automatically along with 
+ * the ONU. 
+ */
+typedef struct bcmolt_gpon_alloc_set_state_data
+{
+    bcmolt_alloc_operation state;   /**< State. */
+} bcmolt_gpon_alloc_set_state_data;
+
+/** Transport message definition for "set_state" group of "gpon_alloc" object. 
+ */
+typedef struct bcmolt_gpon_alloc_set_state
+{
+    bcmolt_oper hdr;                        /**< Transport header. */
+    bcmolt_gpon_alloc_key key;              /**< Object key. */
+    bcmolt_gpon_alloc_set_state_data data;  /**< All properties that must be set by the user. */
+} bcmolt_gpon_alloc_set_state;
+
+/** Structure definition for the "key" group of the "gpon_gem_port" object. 
+ */
+typedef struct bcmolt_gpon_gem_port_key
+{
+    bcmolt_gpon_ni pon_ni;          /**< PON network interface. */
+    bcmolt_gpon_gem_id gem_port_id; /**< GEM Port ID. */
+} bcmolt_gpon_gem_port_key;
+
+/** Structure definition for the "cfg" group of the "gpon_gem_port" object. 
+ */
+typedef struct bcmolt_gpon_gem_port_cfg_data
+{
+    bcmolt_gem_port_configuration configuration;                /**< GEM port configuration parameters */
+    bcmolt_gpon_onu_id onu_id;                                  /**< ONU ID this GEM port is assigned to */
+    bcmolt_gpon_gem_port_state gem_port_state;                  /**< Current GEM port state */
+    bcmolt_control_state downstream_encryption_mode;            /**< Enable/Disable the downstream encryption mode of the GEM Port */
+    bcmolt_us_gem_port_destination upstream_destination_queue;  /**< The destination queue of the packets arriving on this GEM Port on the upstream direction */
+    bcmolt_control_state control;                       /**< Enable/Disable the GEM Port ID in the OLT */
+    bcmolt_gpon_debug_flow_config debug_flow_config;    /**< Traffic flow debug options */
+    uint16_t mac_table_entry_limit;                     /**< The maximum number of MAC table entries allowed for this GEM port (0 = no limit). */
+} bcmolt_gpon_gem_port_cfg_data;
+
+/** Transport message definition for "cfg" group of "gpon_gem_port" object. 
+ */
+typedef struct bcmolt_gpon_gem_port_cfg
+{
+    bcmolt_cfg hdr;                     /**< Transport header. */
+    bcmolt_gpon_gem_port_key key;       /**< Object key. */
+    bcmolt_gpon_gem_port_cfg_data data; /**< All properties that must be set by the user. */
+} bcmolt_gpon_gem_port_cfg;
+
+/** Structure definition for the "stat" group of the "gpon_gem_port" object. 
+ */
+typedef struct bcmolt_gpon_gem_port_stat_data
+{
+    uint64_t rx_packets;    /**< Received GEM frames. */
+    uint64_t rx_bytes;      /**< Received bytes. */
+    uint64_t tx_packets;    /**< Transmitted GEM frames. */
+    uint64_t tx_bytes;      /**< Transmitted bytes. */
+} bcmolt_gpon_gem_port_stat_data;
+
+/** Transport message definition for "stat" group of "gpon_gem_port" object. 
+ */
+typedef struct bcmolt_gpon_gem_port_stat
+{
+    bcmolt_stat hdr;                /**< Transport header. */
+    bcmolt_gpon_gem_port_key key;   /**< Object key. */
+    bcmolt_gpon_gem_port_stat_data data;    /**< All properties that must be set by the user. */
+} bcmolt_gpon_gem_port_stat;
+
+/** Structure definition for the "stat_cfg" group of the "gpon_gem_port" object. 
+ */
+typedef struct bcmolt_gpon_gem_port_stat_cfg_data
+{
+    bcmolt_stat_alarm_config cfg;   /**< Statistic alarm configuration. */
+} bcmolt_gpon_gem_port_stat_cfg_data;
+
+/** Transport message definition for "stat_cfg" group of "gpon_gem_port" object. 
+ */
+typedef struct bcmolt_gpon_gem_port_stat_cfg
+{
+    bcmolt_stat_cfg hdr;                        /**< Transport header. */
+    bcmolt_gpon_gem_port_key key;               /**< Object key. */
+    bcmolt_gpon_gem_port_stat_cfg_data data;    /**< All properties that must be set by the user. */
+} bcmolt_gpon_gem_port_stat_cfg;
+
+/** Structure definition for the "configuration_completed" group of the 
+ * "gpon_gem_port" object. 
+ */
+typedef struct bcmolt_gpon_gem_port_configuration_completed_data
+{
+    bcmolt_result status;                   /**< status. */
+    bcmolt_gpon_gem_port_state new_state;   /**< new state. */
+} bcmolt_gpon_gem_port_configuration_completed_data;
+
+/** Transport message definition for "configuration_completed" group of 
+ * "gpon_gem_port" object. 
+ */
+typedef struct bcmolt_gpon_gem_port_configuration_completed
+{
+    bcmolt_auto hdr;                /**< Transport header. */
+    bcmolt_gpon_gem_port_key key;   /**< Object key. */
+    bcmolt_gpon_gem_port_configuration_completed_data data; /**< All properties that must be set by the user. */
+} bcmolt_gpon_gem_port_configuration_completed;
+
+/** Structure definition for the "stat_alarm_cleared" group of the 
+ * "gpon_gem_port" object. 
+ *
+ * Sent when a configured statistic alarm condition is no longer met. 
+ */
+typedef struct bcmolt_gpon_gem_port_stat_alarm_cleared_data
+{
+    bcmolt_gpon_gem_port_stat_id stat;  /**< Statistic identifier. */
+} bcmolt_gpon_gem_port_stat_alarm_cleared_data;
+
+/** Transport message definition for "stat_alarm_cleared" group of 
+ * "gpon_gem_port" object. 
+ */
+typedef struct bcmolt_gpon_gem_port_stat_alarm_cleared
+{
+    bcmolt_auto hdr;                /**< Transport header. */
+    bcmolt_gpon_gem_port_key key;   /**< Object key. */
+    bcmolt_gpon_gem_port_stat_alarm_cleared_data data;  /**< All properties that must be set by the user. */
+} bcmolt_gpon_gem_port_stat_alarm_cleared;
+
+/** Structure definition for the "stat_alarm_raised" group of the 
+ * "gpon_gem_port" object. 
+ *
+ * Sent when a configured statistic alarm condition has been met. 
+ */
+typedef struct bcmolt_gpon_gem_port_stat_alarm_raised_data
+{
+    bcmolt_gpon_gem_port_stat_id stat;  /**< Statistic identifier. */
+} bcmolt_gpon_gem_port_stat_alarm_raised_data;
+
+/** Transport message definition for "stat_alarm_raised" group of 
+ * "gpon_gem_port" object. 
+ */
+typedef struct bcmolt_gpon_gem_port_stat_alarm_raised
+{
+    bcmolt_auto hdr;                /**< Transport header. */
+    bcmolt_gpon_gem_port_key key;   /**< Object key. */
+    bcmolt_gpon_gem_port_stat_alarm_raised_data data;   /**< All properties that must be set by the user. */
+} bcmolt_gpon_gem_port_stat_alarm_raised;
+
+/** Structure definition for the "auto_cfg" group of the "gpon_gem_port" object. 
+ */
+typedef struct bcmolt_gpon_gem_port_auto_cfg_data
+{
+    bcmos_bool configuration_completed; /**< If true, indications of type "configuration_completed" will be generated. */
+    bcmos_bool stat_alarm_cleared;      /**< If true, indications of type "stat_alarm_cleared" will be generated. */
+    bcmos_bool stat_alarm_raised;       /**< If true, indications of type "stat_alarm_raised" will be generated. */
+} bcmolt_gpon_gem_port_auto_cfg_data;
+
+/** Transport message definition for "auto_cfg" group of "gpon_gem_port" object. 
+ */
+typedef struct bcmolt_gpon_gem_port_auto_cfg
+{
+    bcmolt_auto_cfg hdr;                        /**< Transport header. */
+    bcmolt_gpon_gem_port_key key;               /**< Object key. */
+    bcmolt_gpon_gem_port_auto_cfg_data data;    /**< All properties that must be set by the user. */
+} bcmolt_gpon_gem_port_auto_cfg;
+
+/** Structure definition for the "set_state" group of the "gpon_gem_port" 
+ * object. 
+ *
+ * Sets the GEM port's activation state.  This is only used for protection 
+ * switching on an active-standby PON.  In normal operation, this isn't 
+ * necessary since GEM ports are activated/deactivated automatically along with 
+ * the ONU. 
+ */
+typedef struct bcmolt_gpon_gem_port_set_state_data
+{
+    bcmolt_gem_port_operation state;    /**< State. */
+} bcmolt_gpon_gem_port_set_state_data;
+
+/** Transport message definition for "set_state" group of "gpon_gem_port" 
+ * object. 
+ */
+typedef struct bcmolt_gpon_gem_port_set_state
+{
+    bcmolt_oper hdr;                /**< Transport header. */
+    bcmolt_gpon_gem_port_key key;   /**< Object key. */
+    bcmolt_gpon_gem_port_set_state_data data;   /**< All properties that must be set by the user. */
+} bcmolt_gpon_gem_port_set_state;
+
+/** Structure definition for the "key" group of the "gpon_iwf" object. 
+ */
+typedef struct bcmolt_gpon_iwf_key
+{
+    bcmolt_gpon_ni pon_ni;  /**< PON network interface. */
+} bcmolt_gpon_iwf_key;
+
+/** Structure definition for the "cfg" group of the "gpon_iwf" object. 
+ */
+typedef struct bcmolt_gpon_iwf_cfg_data
+{
+    bcmolt_iwf_mode iwf_mode;               /**< IWF mapping mode */
+#define BCMOLT_GPON_IWF_CFG_DATA_US_TPID_PER_FLOW_LEN   2
+    bcmolt_arr_u16_2_hex us_tpid_per_flow;  /**< TPID value of the VLAN tag added to upstream packet when IWF mode is set to per flow */
+    uint16_t us_otag_direct_tpid;           /**< TPID value of the VLAN tag added to upstream packet when IWF mode is set to direct mode */
+    uint8_t us_otag_direct_pbit;            /**< P-bit value of the VLAN tag added to upstream packet when IWF mode is set to direct mode */
+#define BCMOLT_GPON_IWF_CFG_DATA_DS_TPID_LEN    5
+    bcmolt_arr_u16_5_hex ds_tpid;           /**< Packets marked with one of the five configured DS TPID options will be forwarded, all the rest will be dropped */
+    bcmolt_mac_table_configuration mac_table_configuration;     /**< MAC table configuration */
+    bcmolt_gpon_iwf_debug_flow_config debug_flow_configuration; /**< MAC table configuration */
+    uint16_t mac_table_count;                       /**< Number of MAC table entries configured in the MAC table */
+    uint16_t forbidden_vlan_flow_gem_range_start;   /**< Forbidden range for Vlans, Flows and Gems start value */
+} bcmolt_gpon_iwf_cfg_data;
+
+/** Transport message definition for "cfg" group of "gpon_iwf" object. 
+ */
+typedef struct bcmolt_gpon_iwf_cfg
+{
+    bcmolt_cfg hdr;                 /**< Transport header. */
+    bcmolt_gpon_iwf_key key;        /**< Object key. */
+    bcmolt_gpon_iwf_cfg_data data;  /**< All properties that must be set by the user. */
+} bcmolt_gpon_iwf_cfg;
+
+/** Structure definition for the "stat" group of the "gpon_iwf" object. 
+ */
+typedef struct bcmolt_gpon_iwf_stat_data
+{
+    uint64_t ds_hit_event;              /**< DS hit event. */
+    uint64_t ds_miss_event;             /**< DS miss event. */
+    uint64_t ds_drop_due_to_miss_event; /**< DS drop due to miss event. */
+    uint64_t ds_drop_due_to_hit_event;  /**< DS drop due to hit event. */
+    uint64_t ds_drop_to_disabled_gem;   /**< DS drop to disabled GEM. */
+    uint64_t new_mac_discovered;        /**< New MAC discovered. */
+    uint64_t move_event;                /**< Move event. */
+    uint64_t new_mac_drop_due_to_fifo_full; /**< New MAC drop due to fifo full. */
+} bcmolt_gpon_iwf_stat_data;
+
+/** Transport message definition for "stat" group of "gpon_iwf" object. 
+ */
+typedef struct bcmolt_gpon_iwf_stat
+{
+    bcmolt_stat hdr;                /**< Transport header. */
+    bcmolt_gpon_iwf_key key;        /**< Object key. */
+    bcmolt_gpon_iwf_stat_data data; /**< All properties that must be set by the user. */
+} bcmolt_gpon_iwf_stat;
+
+/** Structure definition for the "stat_cfg" group of the "gpon_iwf" object. 
+ */
+typedef struct bcmolt_gpon_iwf_stat_cfg_data
+{
+    bcmolt_stat_alarm_config cfg;   /**< Statistic alarm configuration. */
+} bcmolt_gpon_iwf_stat_cfg_data;
+
+/** Transport message definition for "stat_cfg" group of "gpon_iwf" object. 
+ */
+typedef struct bcmolt_gpon_iwf_stat_cfg
+{
+    bcmolt_stat_cfg hdr;                /**< Transport header. */
+    bcmolt_gpon_iwf_key key;            /**< Object key. */
+    bcmolt_gpon_iwf_stat_cfg_data data; /**< All properties that must be set by the user. */
+} bcmolt_gpon_iwf_stat_cfg;
+
+/** Transport message definition for "flush_mac_table_completed" group of 
+ * "gpon_iwf" object. 
+ */
+typedef struct bcmolt_gpon_iwf_flush_mac_table_completed
+{
+    bcmolt_auto hdr;            /**< Transport header. */
+    bcmolt_gpon_iwf_key key;    /**< Object key. */
+} bcmolt_gpon_iwf_flush_mac_table_completed;
+
+/** Structure definition for the "scan_mac_table_completed" group of the 
+ * "gpon_iwf" object. 
+ *
+ * A MAC table scan initiated using the "scan_mac_table" operation is complete. 
+ */
+typedef struct bcmolt_gpon_iwf_scan_mac_table_completed_data
+{
+    bcmos_mac_address mac_address;  /**< Entry MAC address. */
+    bcmolt_gpon_mac_table_scan_result_list_u16 entries; /**< Scan results for this entry.  If this list is empty, the MAC address was not found in the table. */
+} bcmolt_gpon_iwf_scan_mac_table_completed_data;
+
+/** Transport message definition for "scan_mac_table_completed" group of 
+ * "gpon_iwf" object. 
+ */
+typedef struct bcmolt_gpon_iwf_scan_mac_table_completed
+{
+    bcmolt_auto hdr;            /**< Transport header. */
+    bcmolt_gpon_iwf_key key;    /**< Object key. */
+    bcmolt_gpon_iwf_scan_mac_table_completed_data data; /**< All properties that must be set by the user. */
+} bcmolt_gpon_iwf_scan_mac_table_completed;
+
+/** Structure definition for the "stat_alarm_cleared" group of the "gpon_iwf" 
+ * object. 
+ *
+ * Sent when a configured statistic alarm condition is no longer met. 
+ */
+typedef struct bcmolt_gpon_iwf_stat_alarm_cleared_data
+{
+    bcmolt_gpon_iwf_stat_id stat;   /**< Statistic identifier. */
+} bcmolt_gpon_iwf_stat_alarm_cleared_data;
+
+/** Transport message definition for "stat_alarm_cleared" group of "gpon_iwf" 
+ * object. 
+ */
+typedef struct bcmolt_gpon_iwf_stat_alarm_cleared
+{
+    bcmolt_auto hdr;            /**< Transport header. */
+    bcmolt_gpon_iwf_key key;    /**< Object key. */
+    bcmolt_gpon_iwf_stat_alarm_cleared_data data;   /**< All properties that must be set by the user. */
+} bcmolt_gpon_iwf_stat_alarm_cleared;
+
+/** Structure definition for the "stat_alarm_raised" group of the "gpon_iwf" 
+ * object. 
+ *
+ * Sent when a configured statistic alarm condition has been met. 
+ */
+typedef struct bcmolt_gpon_iwf_stat_alarm_raised_data
+{
+    bcmolt_gpon_iwf_stat_id stat;   /**< Statistic identifier. */
+} bcmolt_gpon_iwf_stat_alarm_raised_data;
+
+/** Transport message definition for "stat_alarm_raised" group of "gpon_iwf" 
+ * object. 
+ */
+typedef struct bcmolt_gpon_iwf_stat_alarm_raised
+{
+    bcmolt_auto hdr;            /**< Transport header. */
+    bcmolt_gpon_iwf_key key;    /**< Object key. */
+    bcmolt_gpon_iwf_stat_alarm_raised_data data;    /**< All properties that must be set by the user. */
+} bcmolt_gpon_iwf_stat_alarm_raised;
+
+/** Structure definition for the "auto_cfg" group of the "gpon_iwf" object. 
+ */
+typedef struct bcmolt_gpon_iwf_auto_cfg_data
+{
+    bcmos_bool flush_mac_table_completed;   /**< If true, indications of type "flush_mac_table_completed" will be generated. */
+    bcmos_bool scan_mac_table_completed;    /**< If true, indications of type "scan_mac_table_completed" will be generated. */
+    bcmos_bool stat_alarm_cleared;          /**< If true, indications of type "stat_alarm_cleared" will be generated. */
+    bcmos_bool stat_alarm_raised;           /**< If true, indications of type "stat_alarm_raised" will be generated. */
+} bcmolt_gpon_iwf_auto_cfg_data;
+
+/** Transport message definition for "auto_cfg" group of "gpon_iwf" object. 
+ */
+typedef struct bcmolt_gpon_iwf_auto_cfg
+{
+    bcmolt_auto_cfg hdr;                /**< Transport header. */
+    bcmolt_gpon_iwf_key key;            /**< Object key. */
+    bcmolt_gpon_iwf_auto_cfg_data data; /**< All properties that must be set by the user. */
+} bcmolt_gpon_iwf_auto_cfg;
+
+/** Structure definition for the "flush_mac_table" group of the "gpon_iwf" 
+ * object. 
+ */
+typedef struct bcmolt_gpon_iwf_flush_mac_table_data
+{
+    bcmolt_flush_mac_table_option control;  /**< control. */
+    bcmolt_vlan_id vid;                     /**< VID. */
+    bcmolt_flow_id flow_id;                 /**< FLOW ID. */
+} bcmolt_gpon_iwf_flush_mac_table_data;
+
+/** Transport message definition for "flush_mac_table" group of "gpon_iwf" 
+ * object. 
+ */
+typedef struct bcmolt_gpon_iwf_flush_mac_table
+{
+    bcmolt_oper hdr;            /**< Transport header. */
+    bcmolt_gpon_iwf_key key;    /**< Object key. */
+    bcmolt_gpon_iwf_flush_mac_table_data data;  /**< All properties that must be set by the user. */
+} bcmolt_gpon_iwf_flush_mac_table;
+
+/** Structure definition for the "scan_mac_table" group of the "gpon_iwf" 
+ * object. 
+ *
+ * Scans MAC table for a given MAC address then returns the associated 
+ * information 
+ */
+typedef struct bcmolt_gpon_iwf_scan_mac_table_data
+{
+    bcmos_mac_address mac_address;  /**< Entry MAC address. */
+} bcmolt_gpon_iwf_scan_mac_table_data;
+
+/** Transport message definition for "scan_mac_table" group of "gpon_iwf" 
+ * object. 
+ */
+typedef struct bcmolt_gpon_iwf_scan_mac_table
+{
+    bcmolt_oper hdr;            /**< Transport header. */
+    bcmolt_gpon_iwf_key key;    /**< Object key. */
+    bcmolt_gpon_iwf_scan_mac_table_data data;   /**< All properties that must be set by the user. */
+} bcmolt_gpon_iwf_scan_mac_table;
+
+/** Structure definition for the "key" group of the "gpon_iwf_ds_egress_flow" 
+ * object. 
+ */
+typedef struct bcmolt_gpon_iwf_ds_egress_flow_key
+{
+    bcmolt_gpon_ni pon_ni;  /**< PON network interface. */
+    bcmolt_flow_id flow_id; /**< Flow ID. */
+} bcmolt_gpon_iwf_ds_egress_flow_key;
+
+/** Structure definition for the "cfg" group of the "gpon_iwf_ds_egress_flow" 
+ * object. 
+ */
+typedef struct bcmolt_gpon_iwf_ds_egress_flow_cfg_data
+{
+    bcmolt_gpon_gem_id gem_port;    /**< GEM port ID */
+    bcmos_bool pbit_control;        /**< If enabled, the Pbits value is taken from the mapping VLAN tag (Inner/Outer) VLAN Pbits location and added to the configured GEM port ID value to create the Final GEM ID */
+} bcmolt_gpon_iwf_ds_egress_flow_cfg_data;
+
+/** Transport message definition for "cfg" group of "gpon_iwf_ds_egress_flow" 
+ * object. 
+ */
+typedef struct bcmolt_gpon_iwf_ds_egress_flow_cfg
+{
+    bcmolt_cfg hdr; /**< Transport header. */
+    bcmolt_gpon_iwf_ds_egress_flow_key key;         /**< Object key. */
+    bcmolt_gpon_iwf_ds_egress_flow_cfg_data data;   /**< All properties that must be set by the user. */
+} bcmolt_gpon_iwf_ds_egress_flow_cfg;
+
+/** Structure definition for the "key" group of the "gpon_iwf_ds_ingress_flow" 
+ * object. 
+ */
+typedef struct bcmolt_gpon_iwf_ds_ingress_flow_key
+{
+    bcmolt_gpon_ni pon_ni;  /**< PON network interface. */
+    bcmolt_vlan_id vlan_id; /**< vlan ID. */
+} bcmolt_gpon_iwf_ds_ingress_flow_key;
+
+/** Structure definition for the "cfg" group of the "gpon_iwf_ds_ingress_flow" 
+ * object. 
+ */
+typedef struct bcmolt_gpon_iwf_ds_ingress_flow_cfg_data
+{
+    bcmolt_vlan_to_flow_mapping_method mapping_method;  /**< The Mapping method defines how the flow ID will be determined */
+    bcmolt_mapping_tag_method mapping_tag;              /**< Define if the outer or the inner VLAN tag of the packet will determine the flow ID */
+    bcmolt_ds_vlan_action vlan_action;                  /**< Define the outer VLAN tag manipulation on the packet: transparent or remove */
+} bcmolt_gpon_iwf_ds_ingress_flow_cfg_data;
+
+/** Transport message definition for "cfg" group of "gpon_iwf_ds_ingress_flow" 
+ * object. 
+ */
+typedef struct bcmolt_gpon_iwf_ds_ingress_flow_cfg
+{
+    bcmolt_cfg hdr; /**< Transport header. */
+    bcmolt_gpon_iwf_ds_ingress_flow_key key;        /**< Object key. */
+    bcmolt_gpon_iwf_ds_ingress_flow_cfg_data data;  /**< All properties that must be set by the user. */
+} bcmolt_gpon_iwf_ds_ingress_flow_cfg;
+
+/** Structure definition for the "key" group of the "gpon_iwf_mac_table" object. 
+ */
+typedef struct bcmolt_gpon_iwf_mac_table_key
+{
+    bcmolt_gpon_ni pon_ni;          /**< PON network interface. */
+    bcmos_mac_address mac_address;  /**< MAC address. */
+    bcmolt_vlan_id vlan;            /**< VLAN. */
+} bcmolt_gpon_iwf_mac_table_key;
+
+/** Structure definition for the "cfg" group of the "gpon_iwf_mac_table" object. 
+ */
+typedef struct bcmolt_gpon_iwf_mac_table_cfg_data
+{
+    bcmolt_flow_id flow_id;         /**< The flow ID assigned to traffic that matches this MAC table entry. */
+    bcmos_bool stat;                /**< Whether or not the MAC entry is static.  Static entries don't age. */
+    bcmolt_gpon_gem_id gem_port_id; /**< The GEM port ID of the traffic that created this table entry.  This only applies to automatically-learned entries.  Manually-added entries will have the value BCMOLT_PON_GEM_PORT_ID_INVALID. */
+    bcmolt_gpon_onu_id onu_id;      /**< The ONU ID for the traffic that created this table entry.  This only valid if gem_port_id is valid.  Otherwise this will be set to BCMOLT_GPON_ONU_ID_INVALID. */
+} bcmolt_gpon_iwf_mac_table_cfg_data;
+
+/** Transport message definition for "cfg" group of "gpon_iwf_mac_table" object. 
+ */
+typedef struct bcmolt_gpon_iwf_mac_table_cfg
+{
+    bcmolt_cfg hdr;                     /**< Transport header. */
+    bcmolt_gpon_iwf_mac_table_key key;  /**< Object key. */
+    bcmolt_gpon_iwf_mac_table_cfg_data data;    /**< All properties that must be set by the user. */
+} bcmolt_gpon_iwf_mac_table_cfg;
+
+/** Transport message definition for "mac_aged" group of "gpon_iwf_mac_table" 
+ * object. 
+ */
+typedef struct bcmolt_gpon_iwf_mac_table_mac_aged
+{
+    bcmolt_auto hdr;                    /**< Transport header. */
+    bcmolt_gpon_iwf_mac_table_key key;  /**< Object key. */
+} bcmolt_gpon_iwf_mac_table_mac_aged;
+
+/** Structure definition for the "mac_dropped" group of the "gpon_iwf_mac_table" 
+ * object. 
+ *
+ * Sent when an entry cannot be learned since the MAC table is full. 
+ */
+typedef struct bcmolt_gpon_iwf_mac_table_mac_dropped_data
+{
+    bcmolt_flow_id flow_id; /**< The flow ID of the entry that was dropped. */
+} bcmolt_gpon_iwf_mac_table_mac_dropped_data;
+
+/** Transport message definition for "mac_dropped" group of "gpon_iwf_mac_table" 
+ * object. 
+ */
+typedef struct bcmolt_gpon_iwf_mac_table_mac_dropped
+{
+    bcmolt_auto hdr;                    /**< Transport header. */
+    bcmolt_gpon_iwf_mac_table_key key;  /**< Object key. */
+    bcmolt_gpon_iwf_mac_table_mac_dropped_data data;    /**< All properties that must be set by the user. */
+} bcmolt_gpon_iwf_mac_table_mac_dropped;
+
+/** Structure definition for the "mac_move" group of the "gpon_iwf_mac_table" 
+ * object. 
+ *
+ * Sent when the MAC table is in move mode and a packet is seen that matches on 
+ * MAC address / VID but doesn't match on flow ID. 
+ */
+typedef struct bcmolt_gpon_iwf_mac_table_mac_move_data
+{
+    bcmolt_flow_id old_flow_id; /**< The flow ID in the current MAC table entry. */
+    bcmolt_flow_id new_flow_id; /**< The flow ID seen in the traffic stream. */
+} bcmolt_gpon_iwf_mac_table_mac_move_data;
+
+/** Transport message definition for "mac_move" group of "gpon_iwf_mac_table" 
+ * object. 
+ */
+typedef struct bcmolt_gpon_iwf_mac_table_mac_move
+{
+    bcmolt_auto hdr;                    /**< Transport header. */
+    bcmolt_gpon_iwf_mac_table_key key;  /**< Object key. */
+    bcmolt_gpon_iwf_mac_table_mac_move_data data;   /**< All properties that must be set by the user. */
+} bcmolt_gpon_iwf_mac_table_mac_move;
+
+/** Structure definition for the "new_mac" group of the "gpon_iwf_mac_table" 
+ * object. 
+ *
+ * Sent when a new MAC address / VID combination is seen in the upstream 
+ * traffic stream. 
+ */
+typedef struct bcmolt_gpon_iwf_mac_table_new_mac_data
+{
+    bcmolt_flow_id flow_id; /**< The flow ID associated with the new entry. */
+} bcmolt_gpon_iwf_mac_table_new_mac_data;
+
+/** Transport message definition for "new_mac" group of "gpon_iwf_mac_table" 
+ * object. 
+ */
+typedef struct bcmolt_gpon_iwf_mac_table_new_mac
+{
+    bcmolt_auto hdr;                    /**< Transport header. */
+    bcmolt_gpon_iwf_mac_table_key key;  /**< Object key. */
+    bcmolt_gpon_iwf_mac_table_new_mac_data data;    /**< All properties that must be set by the user. */
+} bcmolt_gpon_iwf_mac_table_new_mac;
+
+/** Structure definition for the "auto_cfg" group of the "gpon_iwf_mac_table" 
+ * object. 
+ */
+typedef struct bcmolt_gpon_iwf_mac_table_auto_cfg_data
+{
+    bcmos_bool mac_aged;    /**< If true, indications of type "mac_aged" will be generated. */
+    bcmos_bool mac_dropped; /**< If true, indications of type "mac_dropped" will be generated. */
+    bcmos_bool mac_move;    /**< If true, indications of type "mac_move" will be generated. */
+    bcmos_bool new_mac;     /**< If true, indications of type "new_mac" will be generated. */
+} bcmolt_gpon_iwf_mac_table_auto_cfg_data;
+
+/** Transport message definition for "auto_cfg" group of "gpon_iwf_mac_table" 
+ * object. 
+ */
+typedef struct bcmolt_gpon_iwf_mac_table_auto_cfg
+{
+    bcmolt_auto_cfg hdr;                /**< Transport header. */
+    bcmolt_gpon_iwf_mac_table_key key;  /**< Object key. */
+    bcmolt_gpon_iwf_mac_table_auto_cfg_data data;   /**< All properties that must be set by the user. */
+} bcmolt_gpon_iwf_mac_table_auto_cfg;
+
+/** Structure definition for the "key" group of the "gpon_iwf_us_flow" object. 
+ */
+typedef struct bcmolt_gpon_iwf_us_flow_key
+{
+    bcmolt_gpon_ni pon_ni;          /**< PON network interface. */
+    bcmolt_gpon_gem_id gem_port_id; /**< GEM Port  ID. */
+} bcmolt_gpon_iwf_us_flow_key;
+
+/** Structure definition for the "cfg" group of the "gpon_iwf_us_flow" object. 
+ */
+typedef struct bcmolt_gpon_iwf_us_flow_cfg_data
+{
+    bcmolt_flow_id flow_id;             /**< Flow ID. */
+    bcmos_bool mac_learning;            /**< MAC learning. */
+    bcmolt_us_vlan_action vlan_action;  /**< VLAN action. */
+    bcmolt_vlan_tag vlan_tag;           /**< Vlan tag. */
+    uint8_t tpid_index;                 /**< TPID index. */
+} bcmolt_gpon_iwf_us_flow_cfg_data;
+
+/** Transport message definition for "cfg" group of "gpon_iwf_us_flow" object. 
+ */
+typedef struct bcmolt_gpon_iwf_us_flow_cfg
+{
+    bcmolt_cfg hdr;                     /**< Transport header. */
+    bcmolt_gpon_iwf_us_flow_key key;    /**< Object key. */
+    bcmolt_gpon_iwf_us_flow_cfg_data data;  /**< All properties that must be set by the user. */
+} bcmolt_gpon_iwf_us_flow_cfg;
+
+/** Structure definition for the "key" group of the "gpon_ni" object. 
+ */
+typedef struct bcmolt_gpon_ni_key
+{
+    bcmolt_gpon_ni pon_ni;  /**< PON network interface. */
+} bcmolt_gpon_ni_key;
+
+/** Structure definition for the "cfg" group of the "gpon_ni" object. 
+ */
+typedef struct bcmolt_gpon_ni_cfg_data
+{
+    bcmolt_pon_status pon_status;   /**< PON status parameters */
+    bcmolt_pon_available_bandwidth available_bandwidth; /**< PON available bandwidth parameters */
+    uint16_t number_of_active_onus;                     /**< Number of active ONUs on the PON */
+    uint16_t number_of_active_standby_onus;             /**< number of active standby onus. */
+    bcmolt_prbs_status prbs_status;                     /**< Result of US PRBS checker */
+    bcmolt_pon_distance pon_distance;                   /**< PON distance */
+    uint32_t ranging_window_size;                       /**< Ranging window size */
+    uint32_t preassigned_equalization_delay;            /**< ONU pre-assigned equalization delay */
+    uint32_t eqd_cycles_number;                     /**< How many ranging windows are opened during a single ONU activation process */
+    bcmolt_pon_power_level power_level;             /**< ONU power level configuration */
+    bcmolt_control_state ds_fec_mode;               /**< DS FEC mode */
+    bcmolt_pon_drift_control drift_control;         /**< Drift control process configuration */
+    bcmolt_ber_interval ds_ber_reporting_interval;  /**< DS BER reporting interval */
+    uint8_t los_alarm_threshold;                    /**< LOS alarm threshold */
+    bcmolt_status los_initial_value;                /**< LOS initial value following PON activation */
+    bcmolt_gpon_onu_alarms_thresholds onu_alarms_thresholds;    /**< ONU alarms thresholds configuration */
+    bcmolt_ber_monitor_params ber_monitor;                      /**< BER monitor process configuration */
+    uint16_t ploam_ack_timeout;                 /**< Timeout for receiving ACK ploam */
+    bcmolt_gpon_onu_activation onu_activation;  /**< ONU activation control parameters */
+    bcmolt_gpon_sn_acquisition sn_acquisition;  /**< Serial Number process configuration */
+    bcmolt_gpon_key_exchange key_exchange;      /**< Key Exchange process configuration */
+    bcmolt_pon_protection_switching protection_switching;       /**< Protection switching control */
+    bcmolt_cbr_rt_allocation_profile cbr_rt_allocation_profile; /**< CBR Real Time allocation profile */
+#define BCMOLT_GPON_NI_CFG_DATA_CBR_NRT_ALLOCATION_PROFILE_LEN  2
+    bcmolt_arr_u16_2 cbr_nrt_allocation_profile;                /**< CBR non Real Time allocation profile */
+    bcmolt_pon_dba dba; /**< DBA configuration */
+    bcmolt_onu_power_management_configuration power_management;             /**< ONU power management control */
+    bcmolt_rogue_onu_detection_process rogue_onu_detection_process;         /**< Rogue ONU detection process configuration */
+    bcmolt_periodic_standby_pon_monitoring periodic_standby_pon_monitoring; /**< Periodic Standby PON monitoring */
+    bcmolt_prbs_checker_config prbs_checker;                        /**< US PRBS checker configuration */
+    bcmolt_prbs_generator_config prbs_generator;                    /**< DS PRBS generator configuration */
+    bcmolt_gpon_alloc_id min_data_alloc_id;                         /**< Min data Alloc ID value */
+    bcmolt_automatic_onu_deactivation automatic_onu_deactivation;   /**< Option to disable the automatic deactivation of ONUs due to alarms */
+    uint32_t us_bandwidth_limit;    /**< Total PON upstream bandwidth limit in bytes per second. */
+    bcmolt_gpon_onu_with_state_list_u16_max_128 all_onus;                   /**< All ONUs currently provisioned on this PON. */
+    bcmolt_gpon_gem_port_with_state_list_u16_max_128 all_mcast_gem_ports;   /**< All multicast GEM ports currently provisioned on this PON. */
+    bcmolt_gpon_ni_debug debug; /**< PON NI debug parameters */
+    bcmolt_gpon_onu_upgrade_params onu_upgrade_params;  /**< ONU upgrade params. */
+    uint16_t ps_c_wait_before_deactivation_timeout;     /**< PS type C timeout in milliseconds */
+    bcmolt_control_state bip32_indication_control;      /**< Option to disable the bip32 indication when the value is zero */
+} bcmolt_gpon_ni_cfg_data;
+
+/** Transport message definition for "cfg" group of "gpon_ni" object. 
+ */
+typedef struct bcmolt_gpon_ni_cfg
+{
+    bcmolt_cfg hdr;                 /**< Transport header. */
+    bcmolt_gpon_ni_key key;         /**< Object key. */
+    bcmolt_gpon_ni_cfg_data data;   /**< All properties that must be set by the user. */
+} bcmolt_gpon_ni_cfg;
+
+/** Structure definition for the "stat" group of the "gpon_ni" object. 
+ */
+typedef struct bcmolt_gpon_ni_stat_data
+{
+    uint64_t fec_codewords;             /**< Received FEC codewords. */
+    uint64_t fec_codewords_uncorrected; /**< Received uncorrected FEC codewords. */
+    uint64_t bip8_bytes;                /**< Received bytes protected by bip8. */
+    uint64_t bip8_errors;               /**< Received bip8 errors. */
+    uint64_t rx_gem_packets;            /**< Received GEM frames. */
+    uint64_t rx_gem_dropped;            /**< Received dropped GEM ID packets. */
+    uint64_t rx_gem_idle;               /**< Received idle GEM frames. */
+    uint64_t rx_gem_corrected;          /**< Received corrected GEM frames. */
+    uint64_t rx_gem_illegal;            /**< Received illegal GEM frames. */
+    uint64_t rx_allocations_valid;      /**< Received valid allocations. */
+    uint64_t rx_allocations_invalid;    /**< Received invalid allocations. */
+    uint64_t rx_allocations_disabled;   /**< Received disabled allocations. */
+    uint64_t rx_ploams;                 /**< Received Ploams. */
+    uint64_t rx_ploams_non_idle;        /**< Received non idle Ploams. */
+    uint64_t rx_ploams_error;           /**< Received error Ploams. */
+    uint64_t rx_ploams_dropped;         /**< Received dropped Ploams. */
+    uint64_t rx_cpu;                    /**< Received CPU packets. */
+    uint64_t rx_omci;                   /**< Received OMCI packets. */
+    uint64_t rx_omci_packets_crc_error; /**< Received OMCI packets with CRC errors. */
+    uint64_t rx_dropped_too_short;      /**< Received packets dropped due to length too short. */
+    uint64_t rx_dropped_too_long;       /**< Received packet dropped due to length too long. */
+    uint64_t rx_crc_errors;             /**< Received packet dropped due to crc error. */
+    uint64_t rx_key_errors;             /**< Received packet dropped due to key error. */
+    uint64_t rx_fragments_errors;       /**< Received packet dropped due to fragmentation error. */
+    uint64_t rx_packets_dropped;        /**< Global dropped packets. */
+    uint64_t tx_gem;                    /**< Transmitted GEM frames. */
+    uint64_t tx_ploams;                 /**< Transmitted Ploams. */
+    uint64_t tx_gem_fragments;          /**< Transmitted GEM fragments. */
+    uint64_t tx_cpu;                    /**< Transmitted CPU packets. */
+    uint64_t tx_omci;                   /**< Transmitted OMCI packets. */
+    uint8_t tx_cpu_omci_packets_dropped;    /**< Transmit packets dropped due to illegal length. */
+    uint64_t tx_dropped_illegal_length;     /**< Transmitted packet dropped due to illegal length. */
+    uint64_t tx_dropped_tpid_miss;          /**< Dropped because of TPID miss. */
+    uint64_t tx_dropped_vid_miss;           /**< Dropped because of VID miss. */
+} bcmolt_gpon_ni_stat_data;
+
+/** Transport message definition for "stat" group of "gpon_ni" object. 
+ */
+typedef struct bcmolt_gpon_ni_stat
+{
+    bcmolt_stat hdr;                /**< Transport header. */
+    bcmolt_gpon_ni_key key;         /**< Object key. */
+    bcmolt_gpon_ni_stat_data data;  /**< All properties that must be set by the user. */
+} bcmolt_gpon_ni_stat;
+
+/** Structure definition for the "stat_cfg" group of the "gpon_ni" object. 
+ */
+typedef struct bcmolt_gpon_ni_stat_cfg_data
+{
+    bcmolt_stat_alarm_config cfg;   /**< Statistic alarm configuration. */
+} bcmolt_gpon_ni_stat_cfg_data;
+
+/** Transport message definition for "stat_cfg" group of "gpon_ni" object. 
+ */
+typedef struct bcmolt_gpon_ni_stat_cfg
+{
+    bcmolt_stat_cfg hdr;                /**< Transport header. */
+    bcmolt_gpon_ni_key key;             /**< Object key. */
+    bcmolt_gpon_ni_stat_cfg_data data;  /**< All properties that must be set by the user. */
+} bcmolt_gpon_ni_stat_cfg;
+
+/** Transport message definition for "activate_all_onus_completed" group of 
+ * "gpon_ni" object. 
+ */
+typedef struct bcmolt_gpon_ni_activate_all_onus_completed
+{
+    bcmolt_auto hdr;        /**< Transport header. */
+    bcmolt_gpon_ni_key key; /**< Object key. */
+} bcmolt_gpon_ni_activate_all_onus_completed;
+
+/** Structure definition for the "cpu_packets_failure" group of the "gpon_ni" 
+ * object. 
+ *
+ * A failure was encountered during the "cpu_packets" proxy operation. 
+ */
+typedef struct bcmolt_gpon_ni_cpu_packets_failure_data
+{
+    bcmolt_packet_injection_error error;    /**< The error that was encountered. */
+    bcmolt_gpon_gem_id gem_port_id;         /**< The GEM port that caused the error. */
+} bcmolt_gpon_ni_cpu_packets_failure_data;
+
+/** Transport message definition for "cpu_packets_failure" group of "gpon_ni" 
+ * object. 
+ */
+typedef struct bcmolt_gpon_ni_cpu_packets_failure
+{
+    bcmolt_auto hdr;        /**< Transport header. */
+    bcmolt_gpon_ni_key key; /**< Object key. */
+    bcmolt_gpon_ni_cpu_packets_failure_data data;   /**< All properties that must be set by the user. */
+} bcmolt_gpon_ni_cpu_packets_failure;
+
+/** Transport message definition for "deactivate_all_onus_completed" group of 
+ * "gpon_ni" object. 
+ */
+typedef struct bcmolt_gpon_ni_deactivate_all_onus_completed
+{
+    bcmolt_auto hdr;        /**< Transport header. */
+    bcmolt_gpon_ni_key key; /**< Object key. */
+} bcmolt_gpon_ni_deactivate_all_onus_completed;
+
+/** Transport message definition for "disable_all_onus_completed" group of 
+ * "gpon_ni" object. 
+ */
+typedef struct bcmolt_gpon_ni_disable_all_onus_completed
+{
+    bcmolt_auto hdr;        /**< Transport header. */
+    bcmolt_gpon_ni_key key; /**< Object key. */
+} bcmolt_gpon_ni_disable_all_onus_completed;
+
+/** Transport message definition for "enable_all_onus_completed" group of 
+ * "gpon_ni" object. 
+ */
+typedef struct bcmolt_gpon_ni_enable_all_onus_completed
+{
+    bcmolt_auto hdr;        /**< Transport header. */
+    bcmolt_gpon_ni_key key; /**< Object key. */
+} bcmolt_gpon_ni_enable_all_onus_completed;
+
+/** Structure definition for the "los" group of the "gpon_ni" object. 
+ */
+typedef struct bcmolt_gpon_ni_los_data
+{
+    bcmolt_status status;   /**< status. */
+} bcmolt_gpon_ni_los_data;
+
+/** Transport message definition for "los" group of "gpon_ni" object. 
+ */
+typedef struct bcmolt_gpon_ni_los
+{
+    bcmolt_auto hdr;                /**< Transport header. */
+    bcmolt_gpon_ni_key key;         /**< Object key. */
+    bcmolt_gpon_ni_los_data data;   /**< All properties that must be set by the user. */
+} bcmolt_gpon_ni_los;
+
+/** Structure definition for the "onu_discovered" group of the "gpon_ni" object. 
+ */
+typedef struct bcmolt_gpon_ni_onu_discovered_data
+{
+    bcmolt_serial_number serial_number; /**< serial number. */
+    uint32_t ranging_time;              /**< ranging time. */
+    bcmolt_gpon_onu_id onu_id;          /**< onu_id. */
+} bcmolt_gpon_ni_onu_discovered_data;
+
+/** Transport message definition for "onu_discovered" group of "gpon_ni" object. 
+ */
+typedef struct bcmolt_gpon_ni_onu_discovered
+{
+    bcmolt_auto hdr;        /**< Transport header. */
+    bcmolt_gpon_ni_key key; /**< Object key. */
+    bcmolt_gpon_ni_onu_discovered_data data;    /**< All properties that must be set by the user. */
+} bcmolt_gpon_ni_onu_discovered;
+
+/** Structure definition for the "onu_upgrade_complete" group of the "gpon_ni" 
+ * object. 
+ */
+typedef struct bcmolt_gpon_ni_onu_upgrade_complete_data
+{
+    bcmos_bool status;  /**< Success or failure.  Against entire upgrade process. */
+    bcmolt_gpon_onu_upgrade_status_list_u32 list_of_failed_entities;    /**< List of ONU-IDs the upgrade failed for. */
+} bcmolt_gpon_ni_onu_upgrade_complete_data;
+
+/** Transport message definition for "onu_upgrade_complete" group of "gpon_ni" 
+ * object. 
+ */
+typedef struct bcmolt_gpon_ni_onu_upgrade_complete
+{
+    bcmolt_auto hdr;        /**< Transport header. */
+    bcmolt_gpon_ni_key key; /**< Object key. */
+    bcmolt_gpon_ni_onu_upgrade_complete_data data;  /**< All properties that must be set by the user. */
+} bcmolt_gpon_ni_onu_upgrade_complete;
+
+/** Structure definition for the "protection_switching_onus_ranged" group of the 
+ * "gpon_ni" object. 
+ *
+ * After a switchover is complete and all ONU ranging times have stabilized, 
+ * this indication is sent to inform the host of all new ONU EQDs. 
+ */
+typedef struct bcmolt_gpon_ni_protection_switching_onus_ranged_data
+{
+    bcmolt_gpon_onu_eqd_list_u32 onus;  /**< ONUs. */
+} bcmolt_gpon_ni_protection_switching_onus_ranged_data;
+
+/** Transport message definition for "protection_switching_onus_ranged" group of 
+ * "gpon_ni" object. 
+ */
+typedef struct bcmolt_gpon_ni_protection_switching_onus_ranged
+{
+    bcmolt_auto hdr;        /**< Transport header. */
+    bcmolt_gpon_ni_key key; /**< Object key. */
+    bcmolt_gpon_ni_protection_switching_onus_ranged_data data;  /**< All properties that must be set by the user. */
+} bcmolt_gpon_ni_protection_switching_onus_ranged;
+
+/** Structure definition for the "protection_switching_switchover_completed" 
+ * group of the "gpon_ni" object. 
+ */
+typedef struct bcmolt_gpon_ni_protection_switching_switchover_completed_data
+{
+    bcmolt_result result;   /**< Result. */
+} bcmolt_gpon_ni_protection_switching_switchover_completed_data;
+
+/** Transport message definition for "protection_switching_switchover_completed" 
+ * group of "gpon_ni" object. 
+ */
+typedef struct bcmolt_gpon_ni_protection_switching_switchover_completed
+{
+    bcmolt_auto hdr;        /**< Transport header. */
+    bcmolt_gpon_ni_key key; /**< Object key. */
+    bcmolt_gpon_ni_protection_switching_switchover_completed_data data; /**< All properties that must be set by the user. */
+} bcmolt_gpon_ni_protection_switching_switchover_completed;
+
+/** Structure definition for the "protection_switching_traffic_resume" group of 
+ * the "gpon_ni" object. 
+ */
+typedef struct bcmolt_gpon_ni_protection_switching_traffic_resume_data
+{
+    bcmolt_traffic_resume_result result;    /**< Result. */
+} bcmolt_gpon_ni_protection_switching_traffic_resume_data;
+
+/** Transport message definition for "protection_switching_traffic_resume" group 
+ * of "gpon_ni" object. 
+ */
+typedef struct bcmolt_gpon_ni_protection_switching_traffic_resume
+{
+    bcmolt_auto hdr;        /**< Transport header. */
+    bcmolt_gpon_ni_key key; /**< Object key. */
+    bcmolt_gpon_ni_protection_switching_traffic_resume_data data;   /**< All properties that must be set by the user. */
+} bcmolt_gpon_ni_protection_switching_traffic_resume;
+
+/** Structure definition for the "rogue_detection_completed" group of the 
+ * "gpon_ni" object. 
+ */
+typedef struct bcmolt_gpon_ni_rogue_detection_completed_data
+{
+    bcmolt_rogue_detection_window window_type;          /**< Silent Window or Cut off Window */
+    bcmolt_rogue_measurement_result measurement_status; /**< Status of the rogue ONU detection result. */
+    bcmolt_gpon_alloc_id alloc_id;                      /**< Alloc-ID */
+    bcmolt_gpon_onu_id onu_id;                  /**< ONU-ID */
+    bcmos_bool is_delineation;                  /**< Burst Delineation detected during the rogue ONU detection. */
+    bcmos_bool is_ed;                           /**< Is ED. */
+    bcmolt_u8_list_u32 rx_data;                 /**< Captured PLOAMu message if the burst delinieation was detected. */
+    bcmolt_gpon_onu_id ploam_received_onu_id;   /**< ONU ID received in the ploam */
+    bcmos_bool ploam_received_crc_error;        /**< Crc error in the received ploam */
+} bcmolt_gpon_ni_rogue_detection_completed_data;
+
+/** Transport message definition for "rogue_detection_completed" group of 
+ * "gpon_ni" object. 
+ */
+typedef struct bcmolt_gpon_ni_rogue_detection_completed
+{
+    bcmolt_auto hdr;        /**< Transport header. */
+    bcmolt_gpon_ni_key key; /**< Object key. */
+    bcmolt_gpon_ni_rogue_detection_completed_data data; /**< All properties that must be set by the user. */
+} bcmolt_gpon_ni_rogue_detection_completed;
+
+/** Transport message definition for "rogue_onu_special_map_cycle_start" group 
+ * of "gpon_ni" object. 
+ */
+typedef struct bcmolt_gpon_ni_rogue_onu_special_map_cycle_start
+{
+    bcmolt_auto hdr;        /**< Transport header. */
+    bcmolt_gpon_ni_key key; /**< Object key. */
+} bcmolt_gpon_ni_rogue_onu_special_map_cycle_start;
+
+/** Transport message definition for "serial_number_acquisition_cycle_start" 
+ * group of "gpon_ni" object. 
+ */
+typedef struct bcmolt_gpon_ni_serial_number_acquisition_cycle_start
+{
+    bcmolt_auto hdr;        /**< Transport header. */
+    bcmolt_gpon_ni_key key; /**< Object key. */
+} bcmolt_gpon_ni_serial_number_acquisition_cycle_start;
+
+/** Structure definition for the "standby_pon_monitoring_cycle_completed" group 
+ * of the "gpon_ni" object. 
+ */
+typedef struct bcmolt_gpon_ni_standby_pon_monitoring_cycle_completed_data
+{
+    uint32_t number_of_detected_delimiter;  /**< number of detected delimiter. */
+    bcmolt_status energy_detect_signal;     /**< energy detect signal. */
+} bcmolt_gpon_ni_standby_pon_monitoring_cycle_completed_data;
+
+/** Transport message definition for "standby_pon_monitoring_cycle_completed" 
+ * group of "gpon_ni" object. 
+ */
+typedef struct bcmolt_gpon_ni_standby_pon_monitoring_cycle_completed
+{
+    bcmolt_auto hdr;        /**< Transport header. */
+    bcmolt_gpon_ni_key key; /**< Object key. */
+    bcmolt_gpon_ni_standby_pon_monitoring_cycle_completed_data data;    /**< All properties that must be set by the user. */
+} bcmolt_gpon_ni_standby_pon_monitoring_cycle_completed;
+
+/** Structure definition for the "stat_alarm_cleared" group of the "gpon_ni" 
+ * object. 
+ *
+ * Sent when a configured statistic alarm condition is no longer met. 
+ */
+typedef struct bcmolt_gpon_ni_stat_alarm_cleared_data
+{
+    bcmolt_gpon_ni_stat_id stat;    /**< Statistic identifier. */
+} bcmolt_gpon_ni_stat_alarm_cleared_data;
+
+/** Transport message definition for "stat_alarm_cleared" group of "gpon_ni" 
+ * object. 
+ */
+typedef struct bcmolt_gpon_ni_stat_alarm_cleared
+{
+    bcmolt_auto hdr;        /**< Transport header. */
+    bcmolt_gpon_ni_key key; /**< Object key. */
+    bcmolt_gpon_ni_stat_alarm_cleared_data data;    /**< All properties that must be set by the user. */
+} bcmolt_gpon_ni_stat_alarm_cleared;
+
+/** Structure definition for the "stat_alarm_raised" group of the "gpon_ni" 
+ * object. 
+ *
+ * Sent when a configured statistic alarm condition has been met. 
+ */
+typedef struct bcmolt_gpon_ni_stat_alarm_raised_data
+{
+    bcmolt_gpon_ni_stat_id stat;    /**< Statistic identifier. */
+} bcmolt_gpon_ni_stat_alarm_raised_data;
+
+/** Transport message definition for "stat_alarm_raised" group of "gpon_ni" 
+ * object. 
+ */
+typedef struct bcmolt_gpon_ni_stat_alarm_raised
+{
+    bcmolt_auto hdr;        /**< Transport header. */
+    bcmolt_gpon_ni_key key; /**< Object key. */
+    bcmolt_gpon_ni_stat_alarm_raised_data data; /**< All properties that must be set by the user. */
+} bcmolt_gpon_ni_stat_alarm_raised;
+
+/** Structure definition for the "state_change_completed" group of the "gpon_ni" 
+ * object. 
+ */
+typedef struct bcmolt_gpon_ni_state_change_completed_data
+{
+    bcmolt_result result;               /**< Result. */
+    bcmolt_pon_state previous_state;    /**< Previous state. */
+    bcmolt_pon_state new_state;         /**< New state. */
+} bcmolt_gpon_ni_state_change_completed_data;
+
+/** Transport message definition for "state_change_completed" group of "gpon_ni" 
+ * object. 
+ */
+typedef struct bcmolt_gpon_ni_state_change_completed
+{
+    bcmolt_auto hdr;        /**< Transport header. */
+    bcmolt_gpon_ni_key key; /**< Object key. */
+    bcmolt_gpon_ni_state_change_completed_data data;    /**< All properties that must be set by the user. */
+} bcmolt_gpon_ni_state_change_completed;
+
+/** Structure definition for the "tod_request_completed" group of the "gpon_ni" 
+ * object. 
+ */
+typedef struct bcmolt_gpon_ni_tod_request_completed_data
+{
+    bcmolt_str_64 tod_string;   /**< tod_string. */
+    uint32_t sfc;               /**< sfc. */
+    uint64_t rtc_offset_sec;    /**< rtc_offset_sec. */
+    uint32_t rtc_offset_nsec;   /**< rtc_offset_nsec. */
+    bcmolt_result status;       /**< status. */
+} bcmolt_gpon_ni_tod_request_completed_data;
+
+/** Transport message definition for "tod_request_completed" group of "gpon_ni" 
+ * object. 
+ */
+typedef struct bcmolt_gpon_ni_tod_request_completed
+{
+    bcmolt_auto hdr;        /**< Transport header. */
+    bcmolt_gpon_ni_key key; /**< Object key. */
+    bcmolt_gpon_ni_tod_request_completed_data data; /**< All properties that must be set by the user. */
+} bcmolt_gpon_ni_tod_request_completed;
+
+/** Structure definition for the "auto_cfg" group of the "gpon_ni" object. 
+ */
+typedef struct bcmolt_gpon_ni_auto_cfg_data
+{
+    bcmos_bool activate_all_onus_completed;     /**< If true, indications of type "activate_all_onus_completed" will be generated. */
+    bcmos_bool cpu_packets_failure;             /**< If true, indications of type "cpu_packets_failure" will be generated. */
+    bcmos_bool deactivate_all_onus_completed;   /**< If true, indications of type "deactivate_all_onus_completed" will be generated. */
+    bcmos_bool disable_all_onus_completed;      /**< If true, indications of type "disable_all_onus_completed" will be generated. */
+    bcmos_bool enable_all_onus_completed;       /**< If true, indications of type "enable_all_onus_completed" will be generated. */
+    bcmos_bool los;                     /**< If true, indications of type "los" will be generated. */
+    bcmos_bool onu_discovered;          /**< If true, indications of type "onu_discovered" will be generated. */
+    bcmos_bool onu_upgrade_complete;    /**< If true, indications of type "onu_upgrade_complete" will be generated. */
+    bcmos_bool protection_switching_onus_ranged;            /**< If true, indications of type "protection_switching_onus_ranged" will be generated. */
+    bcmos_bool protection_switching_switchover_completed;   /**< If true, indications of type "protection_switching_switchover_completed" will be generated. */
+    bcmos_bool protection_switching_traffic_resume;         /**< If true, indications of type "protection_switching_traffic_resume" will be generated. */
+    bcmos_bool rogue_detection_completed;                   /**< If true, indications of type "rogue_detection_completed" will be generated. */
+    bcmos_bool rogue_onu_special_map_cycle_start;           /**< If true, indications of type "rogue_onu_special_map_cycle_start" will be generated. */
+    bcmos_bool serial_number_acquisition_cycle_start;       /**< If true, indications of type "serial_number_acquisition_cycle_start" will be generated. */
+    bcmos_bool standby_pon_monitoring_cycle_completed;      /**< If true, indications of type "standby_pon_monitoring_cycle_completed" will be generated. */
+    bcmos_bool stat_alarm_cleared;      /**< If true, indications of type "stat_alarm_cleared" will be generated. */
+    bcmos_bool stat_alarm_raised;       /**< If true, indications of type "stat_alarm_raised" will be generated. */
+    bcmos_bool state_change_completed;  /**< If true, indications of type "state_change_completed" will be generated. */
+    bcmos_bool tod_request_completed;   /**< If true, indications of type "tod_request_completed" will be generated. */
+} bcmolt_gpon_ni_auto_cfg_data;
+
+/** Transport message definition for "auto_cfg" group of "gpon_ni" object. 
+ */
+typedef struct bcmolt_gpon_ni_auto_cfg
+{
+    bcmolt_auto_cfg hdr;                /**< Transport header. */
+    bcmolt_gpon_ni_key key;             /**< Object key. */
+    bcmolt_gpon_ni_auto_cfg_data data;  /**< All properties that must be set by the user. */
+} bcmolt_gpon_ni_auto_cfg;
+
+/** Structure definition for the "disable_serial_number" group of the "gpon_ni" 
+ * object. 
+ */
+typedef struct bcmolt_gpon_ni_disable_serial_number_data
+{
+    bcmolt_disable_serial_number_control control;   /**< control. */
+    bcmolt_serial_number serial_number;             /**< serial number. */
+} bcmolt_gpon_ni_disable_serial_number_data;
+
+/** Transport message definition for "disable_serial_number" group of "gpon_ni" 
+ * object. 
+ */
+typedef struct bcmolt_gpon_ni_disable_serial_number
+{
+    bcmolt_oper hdr;        /**< Transport header. */
+    bcmolt_gpon_ni_key key; /**< Object key. */
+    bcmolt_gpon_ni_disable_serial_number_data data; /**< All properties that must be set by the user. */
+} bcmolt_gpon_ni_disable_serial_number;
+
+/** Structure definition for the 
+ * "protection_switching_type_c_set_multiple_onu_state" group of the "gpon_ni" 
+ * object. 
+ */
+typedef struct bcmolt_gpon_ni_protection_switching_type_c_set_multiple_onu_state_data
+{
+    bcmolt_switch_over_type_c_onu_state onu_state;  /**< onu state. */
+    bcmolt_gpon_onu_id_list_u32_max_256 onu_list;   /**< onu list. */
+} bcmolt_gpon_ni_protection_switching_type_c_set_multiple_onu_state_data;
+
+/** Transport message definition for 
+ * "protection_switching_type_c_set_multiple_onu_state" group of "gpon_ni" 
+ * object. 
+ */
+typedef struct bcmolt_gpon_ni_protection_switching_type_c_set_multiple_onu_state
+{
+    bcmolt_oper hdr;        /**< Transport header. */
+    bcmolt_gpon_ni_key key; /**< Object key. */
+    bcmolt_gpon_ni_protection_switching_type_c_set_multiple_onu_state_data data;    /**< All properties that must be set by the user. */
+} bcmolt_gpon_ni_protection_switching_type_c_set_multiple_onu_state;
+
+/** Transport message definition for "reset" group of "gpon_ni" object. 
+ */
+typedef struct bcmolt_gpon_ni_reset
+{
+    bcmolt_oper hdr;        /**< Transport header. */
+    bcmolt_gpon_ni_key key; /**< Object key. */
+} bcmolt_gpon_ni_reset;
+
+/** Structure definition for the "rogue_detection_window" group of the "gpon_ni" 
+ * object. 
+ */
+typedef struct bcmolt_gpon_ni_rogue_detection_window_data
+{
+    bcmolt_rogue_detection_window window_type;  /**< Type of silent measurement to execute */
+    bcmolt_gpon_alloc_id alloc_id;              /**< ALLOC ID to scan */
+    bcmolt_gpon_onu_id onu_id;                  /**< ONU ID to scan */
+    bcmos_bool second_ranging_window;           /**< Not currently supported */
+} bcmolt_gpon_ni_rogue_detection_window_data;
+
+/** Transport message definition for "rogue_detection_window" group of "gpon_ni" 
+ * object. 
+ */
+typedef struct bcmolt_gpon_ni_rogue_detection_window
+{
+    bcmolt_oper hdr;        /**< Transport header. */
+    bcmolt_gpon_ni_key key; /**< Object key. */
+    bcmolt_gpon_ni_rogue_detection_window_data data;    /**< All properties that must be set by the user. */
+} bcmolt_gpon_ni_rogue_detection_window;
+
+/** Structure definition for the "set_onu_state" group of the "gpon_ni" object. 
+ *
+ * Set the operation state of all ONUs. 
+ */
+typedef struct bcmolt_gpon_ni_set_onu_state_data
+{
+    bcmolt_onu_operation onu_state; /**< New operation state of all ONUs.  The default operation may be configured by the GPON NI configuration object : gpon_ni.cfg.sn_acquisition. */
+} bcmolt_gpon_ni_set_onu_state_data;
+
+/** Transport message definition for "set_onu_state" group of "gpon_ni" object. 
+ */
+typedef struct bcmolt_gpon_ni_set_onu_state
+{
+    bcmolt_oper hdr;                        /**< Transport header. */
+    bcmolt_gpon_ni_key key;                 /**< Object key. */
+    bcmolt_gpon_ni_set_onu_state_data data; /**< All properties that must be set by the user. */
+} bcmolt_gpon_ni_set_onu_state;
+
+/** Structure definition for the "set_pon_state" group of the "gpon_ni" object. 
+ */
+typedef struct bcmolt_gpon_ni_set_pon_state_data
+{
+    bcmolt_pon_operation pon_state; /**< PON state. */
+} bcmolt_gpon_ni_set_pon_state_data;
+
+/** Transport message definition for "set_pon_state" group of "gpon_ni" object. 
+ */
+typedef struct bcmolt_gpon_ni_set_pon_state
+{
+    bcmolt_oper hdr;                        /**< Transport header. */
+    bcmolt_gpon_ni_key key;                 /**< Object key. */
+    bcmolt_gpon_ni_set_pon_state_data data; /**< All properties that must be set by the user. */
+} bcmolt_gpon_ni_set_pon_state;
+
+/** Transport message definition for "single_request_standby_pon_monitoring" 
+ * group of "gpon_ni" object. 
+ */
+typedef struct bcmolt_gpon_ni_single_request_standby_pon_monitoring
+{
+    bcmolt_oper hdr;        /**< Transport header. */
+    bcmolt_gpon_ni_key key; /**< Object key. */
+} bcmolt_gpon_ni_single_request_standby_pon_monitoring;
+
+/** Structure definition for the "start_onu_upgrade" group of the "gpon_ni" 
+ * object. 
+ *
+ * OLT to ONU firmware transfer 
+ */
+typedef struct bcmolt_gpon_ni_start_onu_upgrade_data
+{
+    bcmolt_pon_onu_id_list_u32 list_of_onu_ids; /**< List of ONU IDs to upgrade the firmware. */
+} bcmolt_gpon_ni_start_onu_upgrade_data;
+
+/** Transport message definition for "start_onu_upgrade" group of "gpon_ni" 
+ * object. 
+ */
+typedef struct bcmolt_gpon_ni_start_onu_upgrade
+{
+    bcmolt_oper hdr;        /**< Transport header. */
+    bcmolt_gpon_ni_key key; /**< Object key. */
+    bcmolt_gpon_ni_start_onu_upgrade_data data; /**< All properties that must be set by the user. */
+} bcmolt_gpon_ni_start_onu_upgrade;
+
+/** Transport message definition for "tod_request" group of "gpon_ni" object. 
+ */
+typedef struct bcmolt_gpon_ni_tod_request
+{
+    bcmolt_oper hdr;        /**< Transport header. */
+    bcmolt_gpon_ni_key key; /**< Object key. */
+} bcmolt_gpon_ni_tod_request;
+
+/** Structure definition for the "broadcast_ploam_packet" group of the "gpon_ni" 
+ * object. 
+ */
+typedef struct bcmolt_gpon_ni_broadcast_ploam_packet_data
+{
+#define BCMOLT_GPON_NI_BROADCAST_PLOAM_PACKET_DATA_PLOAM_LEN    12
+    bcmolt_arr_u8_12 ploam; /**< ploam. */
+} bcmolt_gpon_ni_broadcast_ploam_packet_data;
+
+/** Transport message definition for "broadcast_ploam_packet" group of "gpon_ni" 
+ * object. 
+ */
+typedef struct bcmolt_gpon_ni_broadcast_ploam_packet
+{
+    bcmolt_proxy hdr;       /**< Transport header. */
+    bcmolt_gpon_ni_key key; /**< Object key. */
+    bcmolt_gpon_ni_broadcast_ploam_packet_data data;    /**< All properties that must be set by the user. */
+} bcmolt_gpon_ni_broadcast_ploam_packet;
+
+/** Structure definition for the "cpu_packets" group of the "gpon_ni" object. 
+ */
+typedef struct bcmolt_gpon_ni_cpu_packets_data
+{
+    bcmolt_packet_type packet_type;                     /**< packet type. */
+    bcmos_bool calc_crc;                                /**< calc crc. */
+    bcmolt_gpon_gem_id_list_u8_max_16 gem_port_list;    /**< gem port list. */
+    bcmolt_u8_list_u32_max_2048 buffer;                 /**< buffer. */
+} bcmolt_gpon_ni_cpu_packets_data;
+
+/** Transport message definition for "cpu_packets" group of "gpon_ni" object. 
+ */
+typedef struct bcmolt_gpon_ni_cpu_packets
+{
+    bcmolt_proxy hdr;                       /**< Transport header. */
+    bcmolt_gpon_ni_key key;                 /**< Object key. */
+    bcmolt_gpon_ni_cpu_packets_data data;   /**< All properties that must be set by the user. */
+} bcmolt_gpon_ni_cpu_packets;
+
+/** Structure definition for the "key" group of the "gpon_onu" object. 
+ */
+typedef struct bcmolt_gpon_onu_key
+{
+    bcmolt_gpon_ni pon_ni;      /**< PON network interface. */
+    bcmolt_gpon_onu_id onu_id;  /**< ONU ID. */
+} bcmolt_gpon_onu_key;
+
+/** Structure definition for the "cfg" group of the "gpon_onu" object. 
+ */
+typedef struct bcmolt_gpon_onu_cfg_data
+{
+    bcmolt_onu_state onu_state;         /**< Current ONU state */
+    bcmolt_serial_number serial_number; /**< ONU serial number */
+#define BCMOLT_GPON_ONU_CFG_DATA_PASSWORD_LEN   10
+    bcmolt_arr_u8_10 password;          /**< ONU password */
+    bcmos_bool auto_password_learning;  /**< Enable\Disable automatic password learning */
+    bcmos_bool us_fec;                  /**< Enable\Disable US FEC for ONU */
+    bcmolt_gpon_gem_id omci_port_id;    /**< OMCI port ID  */
+    bcmolt_ber_interval ds_ber_reporting_interval;  /**< DS BER reporting interval */
+    bcmolt_aes_key aes_encryption_key;              /**< AES encryption key.  */
+    bcmolt_gpon_onu_alarm_state alarm_state;        /**< State of all ONU alarms.  This is normally read-only and can only be written when the PON is in active-standby mode to keep the ONU in sync. */
+    uint32_t ranging_time;                  /**< ONU ranging time.  This is normally read-only and can only be written when the PON is in active-standby mode to keep the ONU in sync. */
+    bcmolt_status disabled_after_discovery; /**< This ONU was disabled after SN discovery */
+    bcmolt_deactivation_reason deactivation_reason;                 /**< Reason for the last ONU deactivation */
+    bcmolt_gpon_gem_port_with_state_list_u16_max_256 all_gem_ports; /**< All unicast GEM ports currently provisioned on this ONU. */
+    bcmolt_gpon_alloc_with_state_list_u16_max_32 all_allocs;        /**< All alloc IDs currently provisioned on this ONU. */
+    bcmos_bool onu_ps_type_c;                       /**< onu protection switching type c. */
+    bcmolt_extended_guard_time extended_guard_time; /**< Additional guard time (in bytes) for this ONU. */
+} bcmolt_gpon_onu_cfg_data;
+
+/** Transport message definition for "cfg" group of "gpon_onu" object. 
+ */
+typedef struct bcmolt_gpon_onu_cfg
+{
+    bcmolt_cfg hdr;                 /**< Transport header. */
+    bcmolt_gpon_onu_key key;        /**< Object key. */
+    bcmolt_gpon_onu_cfg_data data;  /**< All properties that must be set by the user. */
+} bcmolt_gpon_onu_cfg;
+
+/** Structure definition for the "stat" group of the "gpon_onu" object. 
+ */
+typedef struct bcmolt_gpon_onu_stat_data
+{
+    uint64_t fec_codewords;             /**< Total received FEC codewords. */
+    uint64_t fec_bytes_corrected;       /**< FEC codewords corrected bytes. */
+    uint64_t fec_codewords_corrected;   /**< FEC corrected codewords error . */
+    uint64_t fec_codewords_uncorrected; /**< FEC not corrected codewords error. */
+    uint64_t bip8_bytes;                /**< Received bytes for BIP8. */
+    uint64_t bip8_errors;               /**< Bit error according to BIP8. */
+    uint64_t rx_ploams_crc_error;       /**< Received PLOAMs with CRC error. */
+    uint64_t rx_ploams_non_idle;        /**< Received non idle PLOAMs. */
+    uint64_t positive_drift;            /**< Positive drift. */
+    uint64_t negative_drift;            /**< Negative drift. */
+    uint64_t rx_omci;                   /**< Received OMCI packets. */
+    uint64_t rx_omci_packets_crc_error; /**< Received OMCI packets with CRC errors. */
+    uint64_t ber_reported;              /**< BER reported. */
+    uint64_t unreceived_burst;          /**< Unreceived burst. */
+    uint64_t lcdg_errors;               /**< LCDG errors. */
+    uint64_t rdi_errors;                /**< RDI errors. */
+    uint64_t rx_bytes;                  /**< rx bytes. */
+    uint64_t rx_packets;                /**< rx packets. */
+    uint64_t tx_bytes;                  /**< tx bytes. */
+    uint64_t tx_packets;                /**< tx packets. */
+} bcmolt_gpon_onu_stat_data;
+
+/** Transport message definition for "stat" group of "gpon_onu" object. 
+ */
+typedef struct bcmolt_gpon_onu_stat
+{
+    bcmolt_stat hdr;                /**< Transport header. */
+    bcmolt_gpon_onu_key key;        /**< Object key. */
+    bcmolt_gpon_onu_stat_data data; /**< All properties that must be set by the user. */
+} bcmolt_gpon_onu_stat;
+
+/** Structure definition for the "stat_cfg" group of the "gpon_onu" object. 
+ */
+typedef struct bcmolt_gpon_onu_stat_cfg_data
+{
+    bcmolt_stat_alarm_config cfg;   /**< Statistic alarm configuration. */
+} bcmolt_gpon_onu_stat_cfg_data;
+
+/** Transport message definition for "stat_cfg" group of "gpon_onu" object. 
+ */
+typedef struct bcmolt_gpon_onu_stat_cfg
+{
+    bcmolt_stat_cfg hdr;                /**< Transport header. */
+    bcmolt_gpon_onu_key key;            /**< Object key. */
+    bcmolt_gpon_onu_stat_cfg_data data; /**< All properties that must be set by the user. */
+} bcmolt_gpon_onu_stat_cfg;
+
+/** Structure definition for the "ber_interval_configuration_completed" group of 
+ * the "gpon_onu" object. 
+ */
+typedef struct bcmolt_gpon_onu_ber_interval_configuration_completed_data
+{
+    bcmolt_ber_interval ber_interval;   /**< BER interval in ms. */
+    bcmolt_result result;               /**< Result. */
+} bcmolt_gpon_onu_ber_interval_configuration_completed_data;
+
+/** Transport message definition for "ber_interval_configuration_completed" 
+ * group of "gpon_onu" object. 
+ */
+typedef struct bcmolt_gpon_onu_ber_interval_configuration_completed
+{
+    bcmolt_auto hdr;            /**< Transport header. */
+    bcmolt_gpon_onu_key key;    /**< Object key. */
+    bcmolt_gpon_onu_ber_interval_configuration_completed_data data; /**< All properties that must be set by the user. */
+} bcmolt_gpon_onu_ber_interval_configuration_completed;
+
+/** Structure definition for the "dfi" group of the "gpon_onu" object. 
+ */
+typedef struct bcmolt_gpon_onu_dfi_data
+{
+    bcmolt_status alarm_status; /**< alarm status. */
+} bcmolt_gpon_onu_dfi_data;
+
+/** Transport message definition for "dfi" group of "gpon_onu" object. 
+ */
+typedef struct bcmolt_gpon_onu_dfi
+{
+    bcmolt_auto hdr;                /**< Transport header. */
+    bcmolt_gpon_onu_key key;        /**< Object key. */
+    bcmolt_gpon_onu_dfi_data data;  /**< All properties that must be set by the user. */
+} bcmolt_gpon_onu_dfi;
+
+/** Structure definition for the "dgi" group of the "gpon_onu" object. 
+ */
+typedef struct bcmolt_gpon_onu_dgi_data
+{
+    bcmolt_status alarm_status; /**< alarm status. */
+} bcmolt_gpon_onu_dgi_data;
+
+/** Transport message definition for "dgi" group of "gpon_onu" object. 
+ */
+typedef struct bcmolt_gpon_onu_dgi
+{
+    bcmolt_auto hdr;                /**< Transport header. */
+    bcmolt_gpon_onu_key key;        /**< Object key. */
+    bcmolt_gpon_onu_dgi_data data;  /**< All properties that must be set by the user. */
+} bcmolt_gpon_onu_dgi;
+
+/** Structure definition for the "dowi" group of the "gpon_onu" object. 
+ */
+typedef struct bcmolt_gpon_onu_dowi_data
+{
+    bcmolt_status alarm_status; /**< Alarm status. */
+    int32_t drift_value;        /**< Calculated amount of drift (positive + negative as a signed value). */
+    uint32_t new_eqd;           /**< New EQD after drift is corrected (only valid if status is 'on'). */
+} bcmolt_gpon_onu_dowi_data;
+
+/** Transport message definition for "dowi" group of "gpon_onu" object. 
+ */
+typedef struct bcmolt_gpon_onu_dowi
+{
+    bcmolt_auto hdr;                /**< Transport header. */
+    bcmolt_gpon_onu_key key;        /**< Object key. */
+    bcmolt_gpon_onu_dowi_data data; /**< All properties that must be set by the user. */
+} bcmolt_gpon_onu_dowi;
+
+/** Structure definition for the "err" group of the "gpon_onu" object. 
+ */
+typedef struct bcmolt_gpon_onu_err_data
+{
+    uint8_t bip8_errors;    /**< BIP8 errors. */
+} bcmolt_gpon_onu_err_data;
+
+/** Transport message definition for "err" group of "gpon_onu" object. 
+ */
+typedef struct bcmolt_gpon_onu_err
+{
+    bcmolt_auto hdr;                /**< Transport header. */
+    bcmolt_gpon_onu_key key;        /**< Object key. */
+    bcmolt_gpon_onu_err_data data;  /**< All properties that must be set by the user. */
+} bcmolt_gpon_onu_err;
+
+/** Structure definition for the "invalid_dbru_report" group of the "gpon_onu" 
+ * object. 
+ */
+typedef struct bcmolt_gpon_onu_invalid_dbru_report_data
+{
+    bcmolt_gpon_alloc_id alloc_id;  /**< Alloc-ID. */
+} bcmolt_gpon_onu_invalid_dbru_report_data;
+
+/** Transport message definition for "invalid_dbru_report" group of "gpon_onu" 
+ * object. 
+ */
+typedef struct bcmolt_gpon_onu_invalid_dbru_report
+{
+    bcmolt_auto hdr;            /**< Transport header. */
+    bcmolt_gpon_onu_key key;    /**< Object key. */
+    bcmolt_gpon_onu_invalid_dbru_report_data data;  /**< All properties that must be set by the user. */
+} bcmolt_gpon_onu_invalid_dbru_report;
+
+/** Structure definition for the "key_exchange_completed" group of the 
+ * "gpon_onu" object. 
+ */
+typedef struct bcmolt_gpon_onu_key_exchange_completed_data
+{
+    bcmolt_aes_key new_key; /**< new key. */
+} bcmolt_gpon_onu_key_exchange_completed_data;
+
+/** Transport message definition for "key_exchange_completed" group of 
+ * "gpon_onu" object. 
+ */
+typedef struct bcmolt_gpon_onu_key_exchange_completed
+{
+    bcmolt_auto hdr;            /**< Transport header. */
+    bcmolt_gpon_onu_key key;    /**< Object key. */
+    bcmolt_gpon_onu_key_exchange_completed_data data;   /**< All properties that must be set by the user. */
+} bcmolt_gpon_onu_key_exchange_completed;
+
+/** Transport message definition for "key_exchange_cycle_skipped" group of 
+ * "gpon_onu" object. 
+ */
+typedef struct bcmolt_gpon_onu_key_exchange_cycle_skipped
+{
+    bcmolt_auto hdr;            /**< Transport header. */
+    bcmolt_gpon_onu_key key;    /**< Object key. */
+} bcmolt_gpon_onu_key_exchange_cycle_skipped;
+
+/** Structure definition for the "key_exchange_decrypt_required" group of the 
+ * "gpon_onu" object. 
+ */
+typedef struct bcmolt_gpon_onu_key_exchange_decrypt_required_data
+{
+    bcmolt_aes_key new_key; /**< new key. */
+} bcmolt_gpon_onu_key_exchange_decrypt_required_data;
+
+/** Transport message definition for "key_exchange_decrypt_required" group of 
+ * "gpon_onu" object. 
+ */
+typedef struct bcmolt_gpon_onu_key_exchange_decrypt_required
+{
+    bcmolt_auto hdr;            /**< Transport header. */
+    bcmolt_gpon_onu_key key;    /**< Object key. */
+    bcmolt_gpon_onu_key_exchange_decrypt_required_data data;    /**< All properties that must be set by the user. */
+} bcmolt_gpon_onu_key_exchange_decrypt_required;
+
+/** Structure definition for the "key_exchange_key_mismatch" group of the 
+ * "gpon_onu" object. 
+ */
+typedef struct bcmolt_gpon_onu_key_exchange_key_mismatch_data
+{
+    bcmolt_aes_key expected_key;    /**< expected key. */
+    bcmolt_aes_key received_key;    /**< received key. */
+} bcmolt_gpon_onu_key_exchange_key_mismatch_data;
+
+/** Transport message definition for "key_exchange_key_mismatch" group of 
+ * "gpon_onu" object. 
+ */
+typedef struct bcmolt_gpon_onu_key_exchange_key_mismatch
+{
+    bcmolt_auto hdr;            /**< Transport header. */
+    bcmolt_gpon_onu_key key;    /**< Object key. */
+    bcmolt_gpon_onu_key_exchange_key_mismatch_data data;    /**< All properties that must be set by the user. */
+} bcmolt_gpon_onu_key_exchange_key_mismatch;
+
+/** Transport message definition for "key_exchange_key_request_timeout" group of 
+ * "gpon_onu" object. 
+ */
+typedef struct bcmolt_gpon_onu_key_exchange_key_request_timeout
+{
+    bcmolt_auto hdr;            /**< Transport header. */
+    bcmolt_gpon_onu_key key;    /**< Object key. */
+} bcmolt_gpon_onu_key_exchange_key_request_timeout;
+
+/** Structure definition for the "key_exchange_unconsecutive_index" group of the 
+ * "gpon_onu" object. 
+ */
+typedef struct bcmolt_gpon_onu_key_exchange_unconsecutive_index_data
+{
+    uint32_t expected_index;    /**< expected index. */
+    uint32_t actual_index;      /**< actual index. */
+} bcmolt_gpon_onu_key_exchange_unconsecutive_index_data;
+
+/** Transport message definition for "key_exchange_unconsecutive_index" group of 
+ * "gpon_onu" object. 
+ */
+typedef struct bcmolt_gpon_onu_key_exchange_unconsecutive_index
+{
+    bcmolt_auto hdr;            /**< Transport header. */
+    bcmolt_gpon_onu_key key;    /**< Object key. */
+    bcmolt_gpon_onu_key_exchange_unconsecutive_index_data data; /**< All properties that must be set by the user. */
+} bcmolt_gpon_onu_key_exchange_unconsecutive_index;
+
+/** Structure definition for the "loai" group of the "gpon_onu" object. 
+ */
+typedef struct bcmolt_gpon_onu_loai_data
+{
+    bcmolt_status alarm_status; /**< alarm status. */
+} bcmolt_gpon_onu_loai_data;
+
+/** Transport message definition for "loai" group of "gpon_onu" object. 
+ */
+typedef struct bcmolt_gpon_onu_loai
+{
+    bcmolt_auto hdr;                /**< Transport header. */
+    bcmolt_gpon_onu_key key;        /**< Object key. */
+    bcmolt_gpon_onu_loai_data data; /**< All properties that must be set by the user. */
+} bcmolt_gpon_onu_loai;
+
+/** Structure definition for the "loki" group of the "gpon_onu" object. 
+ */
+typedef struct bcmolt_gpon_onu_loki_data
+{
+    bcmolt_status alarm_status; /**< alarm status. */
+} bcmolt_gpon_onu_loki_data;
+
+/** Transport message definition for "loki" group of "gpon_onu" object. 
+ */
+typedef struct bcmolt_gpon_onu_loki
+{
+    bcmolt_auto hdr;                /**< Transport header. */
+    bcmolt_gpon_onu_key key;        /**< Object key. */
+    bcmolt_gpon_onu_loki_data data; /**< All properties that must be set by the user. */
+} bcmolt_gpon_onu_loki;
+
+/** Structure definition for the "memi" group of the "gpon_onu" object. 
+ */
+typedef struct bcmolt_gpon_onu_memi_data
+{
+#define BCMOLT_GPON_ONU_MEMI_DATA_PLOAM_BUFFER_LEN  13
+    bcmolt_arr_u8_13 ploam_buffer;  /**< PLOAM buffer. */
+} bcmolt_gpon_onu_memi_data;
+
+/** Transport message definition for "memi" group of "gpon_onu" object. 
+ */
+typedef struct bcmolt_gpon_onu_memi
+{
+    bcmolt_auto hdr;                /**< Transport header. */
+    bcmolt_gpon_onu_key key;        /**< Object key. */
+    bcmolt_gpon_onu_memi_data data; /**< All properties that must be set by the user. */
+} bcmolt_gpon_onu_memi;
+
+/** Structure definition for the "omci_port_id_configuration_completed" group of 
+ * the "gpon_onu" object. 
+ */
+typedef struct bcmolt_gpon_onu_omci_port_id_configuration_completed_data
+{
+    bcmolt_gpon_gem_id gem_port;    /**< GEM Port ID. */
+    bcmolt_result status;           /**< status. */
+    bcmolt_omci_port_id_operation operation;    /**< Operation. */
+} bcmolt_gpon_onu_omci_port_id_configuration_completed_data;
+
+/** Transport message definition for "omci_port_id_configuration_completed" 
+ * group of "gpon_onu" object. 
+ */
+typedef struct bcmolt_gpon_onu_omci_port_id_configuration_completed
+{
+    bcmolt_auto hdr;            /**< Transport header. */
+    bcmolt_gpon_onu_key key;    /**< Object key. */
+    bcmolt_gpon_onu_omci_port_id_configuration_completed_data data; /**< All properties that must be set by the user. */
+} bcmolt_gpon_onu_omci_port_id_configuration_completed;
+
+/** Structure definition for the "onu_activation_completed" group of the 
+ * "gpon_onu" object. 
+ */
+typedef struct bcmolt_gpon_onu_onu_activation_completed_data
+{
+    bcmolt_result status;                       /**< status. */
+    bcmolt_activation_fail_reason fail_reason;  /**< fail reason. */
+} bcmolt_gpon_onu_onu_activation_completed_data;
+
+/** Transport message definition for "onu_activation_completed" group of 
+ * "gpon_onu" object. 
+ */
+typedef struct bcmolt_gpon_onu_onu_activation_completed
+{
+    bcmolt_auto hdr;            /**< Transport header. */
+    bcmolt_gpon_onu_key key;    /**< Object key. */
+    bcmolt_gpon_onu_onu_activation_completed_data data; /**< All properties that must be set by the user. */
+} bcmolt_gpon_onu_onu_activation_completed;
+
+/** Structure definition for the "onu_activation_standby_completed" group of the 
+ * "gpon_onu" object. 
+ */
+typedef struct bcmolt_gpon_onu_onu_activation_standby_completed_data
+{
+    bcmolt_result result;   /**< result. */
+} bcmolt_gpon_onu_onu_activation_standby_completed_data;
+
+/** Transport message definition for "onu_activation_standby_completed" group of 
+ * "gpon_onu" object. 
+ */
+typedef struct bcmolt_gpon_onu_onu_activation_standby_completed
+{
+    bcmolt_auto hdr;            /**< Transport header. */
+    bcmolt_gpon_onu_key key;    /**< Object key. */
+    bcmolt_gpon_onu_onu_activation_standby_completed_data data; /**< All properties that must be set by the user. */
+} bcmolt_gpon_onu_onu_activation_standby_completed;
+
+/** Structure definition for the "onu_alarm" group of the "gpon_onu" object. 
+ */
+typedef struct bcmolt_gpon_onu_onu_alarm_data
+{
+    bcmolt_gpon_onu_alarms onu_alarm;   /**< onu alarm. */
+} bcmolt_gpon_onu_onu_alarm_data;
+
+/** Transport message definition for "onu_alarm" group of "gpon_onu" object. 
+ */
+typedef struct bcmolt_gpon_onu_onu_alarm
+{
+    bcmolt_auto hdr;                        /**< Transport header. */
+    bcmolt_gpon_onu_key key;                /**< Object key. */
+    bcmolt_gpon_onu_onu_alarm_data data;    /**< All properties that must be set by the user. */
+} bcmolt_gpon_onu_onu_alarm;
+
+/** Structure definition for the "onu_deactivation_completed" group of the 
+ * "gpon_onu" object. 
+ */
+typedef struct bcmolt_gpon_onu_onu_deactivation_completed_data
+{
+    bcmolt_result status;   /**< status. */
+} bcmolt_gpon_onu_onu_deactivation_completed_data;
+
+/** Transport message definition for "onu_deactivation_completed" group of 
+ * "gpon_onu" object. 
+ */
+typedef struct bcmolt_gpon_onu_onu_deactivation_completed
+{
+    bcmolt_auto hdr;            /**< Transport header. */
+    bcmolt_gpon_onu_key key;    /**< Object key. */
+    bcmolt_gpon_onu_onu_deactivation_completed_data data;   /**< All properties that must be set by the user. */
+} bcmolt_gpon_onu_onu_deactivation_completed;
+
+/** Structure definition for the "onu_disable_completed" group of the "gpon_onu" 
+ * object. 
+ */
+typedef struct bcmolt_gpon_onu_onu_disable_completed_data
+{
+    bcmolt_serial_number serial_number; /**< serial number. */
+} bcmolt_gpon_onu_onu_disable_completed_data;
+
+/** Transport message definition for "onu_disable_completed" group of "gpon_onu" 
+ * object. 
+ */
+typedef struct bcmolt_gpon_onu_onu_disable_completed
+{
+    bcmolt_auto hdr;            /**< Transport header. */
+    bcmolt_gpon_onu_key key;    /**< Object key. */
+    bcmolt_gpon_onu_onu_disable_completed_data data;    /**< All properties that must be set by the user. */
+} bcmolt_gpon_onu_onu_disable_completed;
+
+/** Structure definition for the "onu_enable_completed" group of the "gpon_onu" 
+ * object. 
+ */
+typedef struct bcmolt_gpon_onu_onu_enable_completed_data
+{
+    bcmolt_serial_number serial_number; /**< serial number. */
+} bcmolt_gpon_onu_onu_enable_completed_data;
+
+/** Transport message definition for "onu_enable_completed" group of "gpon_onu" 
+ * object. 
+ */
+typedef struct bcmolt_gpon_onu_onu_enable_completed
+{
+    bcmolt_auto hdr;            /**< Transport header. */
+    bcmolt_gpon_onu_key key;    /**< Object key. */
+    bcmolt_gpon_onu_onu_enable_completed_data data; /**< All properties that must be set by the user. */
+} bcmolt_gpon_onu_onu_enable_completed;
+
+/** Transport message definition for "optical_reflection" group of "gpon_onu" 
+ * object. 
+ */
+typedef struct bcmolt_gpon_onu_optical_reflection
+{
+    bcmolt_auto hdr;            /**< Transport header. */
+    bcmolt_gpon_onu_key key;    /**< Object key. */
+} bcmolt_gpon_onu_optical_reflection;
+
+/** Structure definition for the "password_authentication_completed" group of 
+ * the "gpon_onu" object. 
+ */
+typedef struct bcmolt_gpon_onu_password_authentication_completed_data
+{
+    bcmolt_result status;   /**< status. */
+    bcmolt_password_authentication_fail_reason fail_reason; /**< fail reason. */
+#define BCMOLT_GPON_ONU_PASSWORD_AUTHENTICATION_COMPLETED_DATA_PASSWORD_LEN 10
+    bcmolt_arr_u8_10 password;  /**< password. */
+} bcmolt_gpon_onu_password_authentication_completed_data;
+
+/** Transport message definition for "password_authentication_completed" group 
+ * of "gpon_onu" object. 
+ */
+typedef struct bcmolt_gpon_onu_password_authentication_completed
+{
+    bcmolt_auto hdr;            /**< Transport header. */
+    bcmolt_gpon_onu_key key;    /**< Object key. */
+    bcmolt_gpon_onu_password_authentication_completed_data data;    /**< All properties that must be set by the user. */
+} bcmolt_gpon_onu_password_authentication_completed;
+
+/** Structure definition for the "pee" group of the "gpon_onu" object. 
+ */
+typedef struct bcmolt_gpon_onu_pee_data
+{
+    bcmolt_status alarm_status; /**< alarm status. */
+} bcmolt_gpon_onu_pee_data;
+
+/** Transport message definition for "pee" group of "gpon_onu" object. 
+ */
+typedef struct bcmolt_gpon_onu_pee
+{
+    bcmolt_auto hdr;                /**< Transport header. */
+    bcmolt_gpon_onu_key key;        /**< Object key. */
+    bcmolt_gpon_onu_pee_data data;  /**< All properties that must be set by the user. */
+} bcmolt_gpon_onu_pee;
+
+/** Structure definition for the "possible_drift" group of the "gpon_onu" 
+ * object. 
+ *
+ * An ONU in a low power state may be experiencing drift beyond the configured 
+ * threshold. The estimate may be inaccurate depending on ONU behavior. Actual 
+ * drift may be less than estimated. 
+ */
+typedef struct bcmolt_gpon_onu_possible_drift_data
+{
+    bcmolt_status alarm_status; /**< On: estimated drift has exceeded the configured threshold. */
+    int32_t estimated_drift;    /**< If status is on, the estimated drift value, otherwise zero (0). */
+} bcmolt_gpon_onu_possible_drift_data;
+
+/** Transport message definition for "possible_drift" group of "gpon_onu" 
+ * object. 
+ */
+typedef struct bcmolt_gpon_onu_possible_drift
+{
+    bcmolt_auto hdr;            /**< Transport header. */
+    bcmolt_gpon_onu_key key;    /**< Object key. */
+    bcmolt_gpon_onu_possible_drift_data data;   /**< All properties that must be set by the user. */
+} bcmolt_gpon_onu_possible_drift;
+
+/** Structure definition for the "power_management_state_change" group of the 
+ * "gpon_onu" object. 
+ *
+ * Notification that an ONUs power management state has changed. 
+ */
+typedef struct bcmolt_gpon_onu_power_management_state_change_data
+{
+    bcmolt_onu_state old_state; /**< The state the ONU was previously in. */
+    bcmolt_onu_state new_state; /**< The state the ONU is currently in. */
+    bcmolt_power_management_transition_reason reason;   /**< The reason for the state change. */
+} bcmolt_gpon_onu_power_management_state_change_data;
+
+/** Transport message definition for "power_management_state_change" group of 
+ * "gpon_onu" object. 
+ */
+typedef struct bcmolt_gpon_onu_power_management_state_change
+{
+    bcmolt_auto hdr;            /**< Transport header. */
+    bcmolt_gpon_onu_key key;    /**< Object key. */
+    bcmolt_gpon_onu_power_management_state_change_data data;    /**< All properties that must be set by the user. */
+} bcmolt_gpon_onu_power_management_state_change;
+
+/** Structure definition for the "pst" group of the "gpon_onu" object. 
+ */
+typedef struct bcmolt_gpon_onu_pst_data
+{
+    uint32_t link_number;   /**< link number. */
+    uint8_t k1;             /**< K1. */
+    uint8_t k2;             /**< K2. */
+} bcmolt_gpon_onu_pst_data;
+
+/** Transport message definition for "pst" group of "gpon_onu" object. 
+ */
+typedef struct bcmolt_gpon_onu_pst
+{
+    bcmolt_auto hdr;                /**< Transport header. */
+    bcmolt_gpon_onu_key key;        /**< Object key. */
+    bcmolt_gpon_onu_pst_data data;  /**< All properties that must be set by the user. */
+} bcmolt_gpon_onu_pst;
+
+/** Structure definition for the "ranging_completed" group of the "gpon_onu" 
+ * object. 
+ */
+typedef struct bcmolt_gpon_onu_ranging_completed_data
+{
+    bcmolt_result status;                   /**< status. */
+    bcmolt_ranging_fail_reason fail_reason; /**< fail reason. */
+    uint8_t number_of_ploams;               /**< number of PLOAMs. */
+    uint32_t eqd;           /**< EQD. */
+    uint8_t power_level;    /**< Power Level. */
+} bcmolt_gpon_onu_ranging_completed_data;
+
+/** Transport message definition for "ranging_completed" group of "gpon_onu" 
+ * object. 
+ */
+typedef struct bcmolt_gpon_onu_ranging_completed
+{
+    bcmolt_auto hdr;            /**< Transport header. */
+    bcmolt_gpon_onu_key key;    /**< Object key. */
+    bcmolt_gpon_onu_ranging_completed_data data;    /**< All properties that must be set by the user. */
+} bcmolt_gpon_onu_ranging_completed;
+
+/** Structure definition for the "rei" group of the "gpon_onu" object. 
+ */
+typedef struct bcmolt_gpon_onu_rei_data
+{
+    uint32_t bip8_errors;   /**< BIP8 errors. */
+} bcmolt_gpon_onu_rei_data;
+
+/** Transport message definition for "rei" group of "gpon_onu" object. 
+ */
+typedef struct bcmolt_gpon_onu_rei
+{
+    bcmolt_auto hdr;                /**< Transport header. */
+    bcmolt_gpon_onu_key key;        /**< Object key. */
+    bcmolt_gpon_onu_rei_data data;  /**< All properties that must be set by the user. */
+} bcmolt_gpon_onu_rei;
+
+/** Structure definition for the "rssi_measurement_completed" group of the 
+ * "gpon_onu" object. 
+ */
+typedef struct bcmolt_gpon_onu_rssi_measurement_completed_data
+{
+    bcmolt_result status;   /**< status. */
+    bcmolt_rssi_measurement_fail_reason fail_reason;    /**< fail reason. */
+} bcmolt_gpon_onu_rssi_measurement_completed_data;
+
+/** Transport message definition for "rssi_measurement_completed" group of 
+ * "gpon_onu" object. 
+ */
+typedef struct bcmolt_gpon_onu_rssi_measurement_completed
+{
+    bcmolt_auto hdr;            /**< Transport header. */
+    bcmolt_gpon_onu_key key;    /**< Object key. */
+    bcmolt_gpon_onu_rssi_measurement_completed_data data;   /**< All properties that must be set by the user. */
+} bcmolt_gpon_onu_rssi_measurement_completed;
+
+/** Structure definition for the "sdi" group of the "gpon_onu" object. 
+ */
+typedef struct bcmolt_gpon_onu_sdi_data
+{
+    bcmolt_status alarm_status; /**< alarm status. */
+    uint32_t ber;               /**< Inverse bit error rate (e.g. if this number is 1000, the BER is 1/1000). */
+} bcmolt_gpon_onu_sdi_data;
+
+/** Transport message definition for "sdi" group of "gpon_onu" object. 
+ */
+typedef struct bcmolt_gpon_onu_sdi
+{
+    bcmolt_auto hdr;                /**< Transport header. */
+    bcmolt_gpon_onu_key key;        /**< Object key. */
+    bcmolt_gpon_onu_sdi_data data;  /**< All properties that must be set by the user. */
+} bcmolt_gpon_onu_sdi;
+
+/** Structure definition for the "sfi" group of the "gpon_onu" object. 
+ */
+typedef struct bcmolt_gpon_onu_sfi_data
+{
+    bcmolt_status alarm_status; /**< alarm status. */
+    uint32_t ber;               /**< Inverse bit error rate (e.g. if this number is 1000, the BER is 1/1000). */
+} bcmolt_gpon_onu_sfi_data;
+
+/** Transport message definition for "sfi" group of "gpon_onu" object. 
+ */
+typedef struct bcmolt_gpon_onu_sfi
+{
+    bcmolt_auto hdr;                /**< Transport header. */
+    bcmolt_gpon_onu_key key;        /**< Object key. */
+    bcmolt_gpon_onu_sfi_data data;  /**< All properties that must be set by the user. */
+} bcmolt_gpon_onu_sfi;
+
+/** Structure definition for the "stat_alarm_cleared" group of the "gpon_onu" 
+ * object. 
+ *
+ * Sent when a configured statistic alarm condition is no longer met. 
+ */
+typedef struct bcmolt_gpon_onu_stat_alarm_cleared_data
+{
+    bcmolt_gpon_onu_stat_id stat;   /**< Statistic identifier. */
+} bcmolt_gpon_onu_stat_alarm_cleared_data;
+
+/** Transport message definition for "stat_alarm_cleared" group of "gpon_onu" 
+ * object. 
+ */
+typedef struct bcmolt_gpon_onu_stat_alarm_cleared
+{
+    bcmolt_auto hdr;            /**< Transport header. */
+    bcmolt_gpon_onu_key key;    /**< Object key. */
+    bcmolt_gpon_onu_stat_alarm_cleared_data data;   /**< All properties that must be set by the user. */
+} bcmolt_gpon_onu_stat_alarm_cleared;
+
+/** Structure definition for the "stat_alarm_raised" group of the "gpon_onu" 
+ * object. 
+ *
+ * Sent when a configured statistic alarm condition has been met. 
+ */
+typedef struct bcmolt_gpon_onu_stat_alarm_raised_data
+{
+    bcmolt_gpon_onu_stat_id stat;   /**< Statistic identifier. */
+} bcmolt_gpon_onu_stat_alarm_raised_data;
+
+/** Transport message definition for "stat_alarm_raised" group of "gpon_onu" 
+ * object. 
+ */
+typedef struct bcmolt_gpon_onu_stat_alarm_raised
+{
+    bcmolt_auto hdr;            /**< Transport header. */
+    bcmolt_gpon_onu_key key;    /**< Object key. */
+    bcmolt_gpon_onu_stat_alarm_raised_data data;    /**< All properties that must be set by the user. */
+} bcmolt_gpon_onu_stat_alarm_raised;
+
+/** Structure definition for the "sufi" group of the "gpon_onu" object. 
+ */
+typedef struct bcmolt_gpon_onu_sufi_data
+{
+    bcmolt_status alarm_status; /**< alarm status. */
+} bcmolt_gpon_onu_sufi_data;
+
+/** Transport message definition for "sufi" group of "gpon_onu" object. 
+ */
+typedef struct bcmolt_gpon_onu_sufi
+{
+    bcmolt_auto hdr;                /**< Transport header. */
+    bcmolt_gpon_onu_key key;        /**< Object key. */
+    bcmolt_gpon_onu_sufi_data data; /**< All properties that must be set by the user. */
+} bcmolt_gpon_onu_sufi;
+
+/** Structure definition for the "tiwi" group of the "gpon_onu" object. 
+ */
+typedef struct bcmolt_gpon_onu_tiwi_data
+{
+    bcmolt_status alarm_status; /**< Alarm status. */
+    int32_t drift_value;        /**< Calculated amount of drift (positive + negative as a signed value). */
+} bcmolt_gpon_onu_tiwi_data;
+
+/** Transport message definition for "tiwi" group of "gpon_onu" object. 
+ */
+typedef struct bcmolt_gpon_onu_tiwi
+{
+    bcmolt_auto hdr;                /**< Transport header. */
+    bcmolt_gpon_onu_key key;        /**< Object key. */
+    bcmolt_gpon_onu_tiwi_data data; /**< All properties that must be set by the user. */
+} bcmolt_gpon_onu_tiwi;
+
+/** Structure definition for the "auto_cfg" group of the "gpon_onu" object. 
+ */
+typedef struct bcmolt_gpon_onu_auto_cfg_data
+{
+    bcmos_bool ber_interval_configuration_completed;    /**< If true, indications of type "ber_interval_configuration_completed" will be generated. */
+    bcmos_bool dfi;                     /**< If true, indications of type "dfi" will be generated. */
+    bcmos_bool dgi;                     /**< If true, indications of type "dgi" will be generated. */
+    bcmos_bool dowi;                    /**< If true, indications of type "dowi" will be generated. */
+    bcmos_bool err;                     /**< If true, indications of type "err" will be generated. */
+    bcmos_bool invalid_dbru_report;     /**< If true, indications of type "invalid_dbru_report" will be generated. */
+    bcmos_bool key_exchange_completed;  /**< If true, indications of type "key_exchange_completed" will be generated. */
+    bcmos_bool key_exchange_cycle_skipped;          /**< If true, indications of type "key_exchange_cycle_skipped" will be generated. */
+    bcmos_bool key_exchange_decrypt_required;       /**< If true, indications of type "key_exchange_decrypt_required" will be generated. */
+    bcmos_bool key_exchange_key_mismatch;           /**< If true, indications of type "key_exchange_key_mismatch" will be generated. */
+    bcmos_bool key_exchange_key_request_timeout;    /**< If true, indications of type "key_exchange_key_request_timeout" will be generated. */
+    bcmos_bool key_exchange_unconsecutive_index;    /**< If true, indications of type "key_exchange_unconsecutive_index" will be generated. */
+    bcmos_bool loai;    /**< If true, indications of type "loai" will be generated. */
+    bcmos_bool loki;    /**< If true, indications of type "loki" will be generated. */
+    bcmos_bool memi;    /**< If true, indications of type "memi" will be generated. */
+    bcmos_bool omci_port_id_configuration_completed;    /**< If true, indications of type "omci_port_id_configuration_completed" will be generated. */
+    bcmos_bool onu_activation_completed;                /**< If true, indications of type "onu_activation_completed" will be generated. */
+    bcmos_bool onu_activation_standby_completed;        /**< If true, indications of type "onu_activation_standby_completed" will be generated. */
+    bcmos_bool onu_alarm;                   /**< If true, indications of type "onu_alarm" will be generated. */
+    bcmos_bool onu_deactivation_completed;  /**< If true, indications of type "onu_deactivation_completed" will be generated. */
+    bcmos_bool onu_disable_completed;       /**< If true, indications of type "onu_disable_completed" will be generated. */
+    bcmos_bool onu_enable_completed;        /**< If true, indications of type "onu_enable_completed" will be generated. */
+    bcmos_bool optical_reflection;          /**< If true, indications of type "optical_reflection" will be generated. */
+    bcmos_bool password_authentication_completed;   /**< If true, indications of type "password_authentication_completed" will be generated. */
+    bcmos_bool pee;             /**< If true, indications of type "pee" will be generated. */
+    bcmos_bool possible_drift;  /**< If true, indications of type "possible_drift" will be generated. */
+    bcmos_bool power_management_state_change;   /**< If true, indications of type "power_management_state_change" will be generated. */
+    bcmos_bool pst;                 /**< If true, indications of type "pst" will be generated. */
+    bcmos_bool ranging_completed;   /**< If true, indications of type "ranging_completed" will be generated. */
+    bcmos_bool rei;                 /**< If true, indications of type "rei" will be generated. */
+    bcmos_bool rssi_measurement_completed;  /**< If true, indications of type "rssi_measurement_completed" will be generated. */
+    bcmos_bool sdi;                 /**< If true, indications of type "sdi" will be generated. */
+    bcmos_bool sfi;                 /**< If true, indications of type "sfi" will be generated. */
+    bcmos_bool stat_alarm_cleared;  /**< If true, indications of type "stat_alarm_cleared" will be generated. */
+    bcmos_bool stat_alarm_raised;   /**< If true, indications of type "stat_alarm_raised" will be generated. */
+    bcmos_bool sufi;                /**< If true, indications of type "sufi" will be generated. */
+    bcmos_bool tiwi;                /**< If true, indications of type "tiwi" will be generated. */
+} bcmolt_gpon_onu_auto_cfg_data;
+
+/** Transport message definition for "auto_cfg" group of "gpon_onu" object. 
+ */
+typedef struct bcmolt_gpon_onu_auto_cfg
+{
+    bcmolt_auto_cfg hdr;                /**< Transport header. */
+    bcmolt_gpon_onu_key key;            /**< Object key. */
+    bcmolt_gpon_onu_auto_cfg_data data; /**< All properties that must be set by the user. */
+} bcmolt_gpon_onu_auto_cfg;
+
+/** Structure definition for the "change_power_level" group of the "gpon_onu" 
+ * object. 
+ */
+typedef struct bcmolt_gpon_onu_change_power_level_data
+{
+    bcmolt_onu_power_level power_level_action;  /**< power level action. */
+} bcmolt_gpon_onu_change_power_level_data;
+
+/** Transport message definition for "change_power_level" group of "gpon_onu" 
+ * object. 
+ */
+typedef struct bcmolt_gpon_onu_change_power_level
+{
+    bcmolt_oper hdr;            /**< Transport header. */
+    bcmolt_gpon_onu_key key;    /**< Object key. */
+    bcmolt_gpon_onu_change_power_level_data data;   /**< All properties that must be set by the user. */
+} bcmolt_gpon_onu_change_power_level;
+
+/** Transport message definition for "rssi_measurement" group of "gpon_onu" 
+ * object. 
+ */
+typedef struct bcmolt_gpon_onu_rssi_measurement
+{
+    bcmolt_oper hdr;            /**< Transport header. */
+    bcmolt_gpon_onu_key key;    /**< Object key. */
+} bcmolt_gpon_onu_rssi_measurement;
+
+/** Structure definition for the "set_onu_state" group of the "gpon_onu" object. 
+ */
+typedef struct bcmolt_gpon_onu_set_onu_state_data
+{
+    bcmolt_onu_operation onu_state; /**< ONU state. */
+} bcmolt_gpon_onu_set_onu_state_data;
+
+/** Transport message definition for "set_onu_state" group of "gpon_onu" object. 
+ */
+typedef struct bcmolt_gpon_onu_set_onu_state
+{
+    bcmolt_oper hdr;            /**< Transport header. */
+    bcmolt_gpon_onu_key key;    /**< Object key. */
+    bcmolt_gpon_onu_set_onu_state_data data;    /**< All properties that must be set by the user. */
+} bcmolt_gpon_onu_set_onu_state;
+
+/** Structure definition for the "cpu_packets" group of the "gpon_onu" object. 
+ */
+typedef struct bcmolt_gpon_onu_cpu_packets_data
+{
+    bcmolt_packet_type packet_type;     /**< packet type. */
+    bcmos_bool calc_crc;                /**< calc crc. */
+    uint8_t number_of_packets;          /**< number of packets. */
+    uint16_t packet_size;               /**< Single packet size. */
+    bcmolt_u8_list_u32_max_2048 buffer; /**< buffer. */
+} bcmolt_gpon_onu_cpu_packets_data;
+
+/** Transport message definition for "cpu_packets" group of "gpon_onu" object. 
+ */
+typedef struct bcmolt_gpon_onu_cpu_packets
+{
+    bcmolt_proxy hdr;                       /**< Transport header. */
+    bcmolt_gpon_onu_key key;                /**< Object key. */
+    bcmolt_gpon_onu_cpu_packets_data data;  /**< All properties that must be set by the user. */
+} bcmolt_gpon_onu_cpu_packets;
+
+/** Structure definition for the "ploam_packet" group of the "gpon_onu" object. 
+ */
+typedef struct bcmolt_gpon_onu_ploam_packet_data
+{
+#define BCMOLT_GPON_ONU_PLOAM_PACKET_DATA_PLOAM_LEN 12
+    bcmolt_arr_u8_12 ploam; /**< ploam. */
+} bcmolt_gpon_onu_ploam_packet_data;
+
+/** Transport message definition for "ploam_packet" group of "gpon_onu" object. 
+ */
+typedef struct bcmolt_gpon_onu_ploam_packet
+{
+    bcmolt_proxy hdr;                       /**< Transport header. */
+    bcmolt_gpon_onu_key key;                /**< Object key. */
+    bcmolt_gpon_onu_ploam_packet_data data; /**< All properties that must be set by the user. */
+} bcmolt_gpon_onu_ploam_packet;
+
+/** Structure definition for the "cpu_packet" group of the "gpon_onu" object. 
+ *
+ * Indicates CPU packet was received on the US from this ONU id 
+ */
+typedef struct bcmolt_gpon_onu_cpu_packet_data
+{
+    uint16_t port_id;           /**< port_id. */
+    bcmos_bool crc_ok;          /**< crc_ok. */
+    uint32_t packet_size;       /**< packet_size. */
+    bcmolt_u8_list_u32 buffer;  /**< buffer. */
+} bcmolt_gpon_onu_cpu_packet_data;
+
+/** Transport message definition for "cpu_packet" group of "gpon_onu" object. 
+ */
+typedef struct bcmolt_gpon_onu_cpu_packet
+{
+    bcmolt_proxy_rx hdr;                    /**< Transport header. */
+    bcmolt_gpon_onu_key key;                /**< Object key. */
+    bcmolt_gpon_onu_cpu_packet_data data;   /**< All properties that must be set by the user. */
+} bcmolt_gpon_onu_cpu_packet;
+
+/** Structure definition for the "omci_packet" group of the "gpon_onu" object. 
+ *
+ * Indicates OMCI packet was received on the US from this ONU id 
+ */
+typedef struct bcmolt_gpon_onu_omci_packet_data
+{
+    uint16_t port_id;           /**< port_id. */
+    bcmos_bool crc_ok;          /**< crc_ok. */
+    uint32_t packet_size;       /**< packet_size. */
+    bcmolt_u8_list_u32 buffer;  /**< buffer. */
+} bcmolt_gpon_onu_omci_packet_data;
+
+/** Transport message definition for "omci_packet" group of "gpon_onu" object. 
+ */
+typedef struct bcmolt_gpon_onu_omci_packet
+{
+    bcmolt_proxy_rx hdr;                    /**< Transport header. */
+    bcmolt_gpon_onu_key key;                /**< Object key. */
+    bcmolt_gpon_onu_omci_packet_data data;  /**< All properties that must be set by the user. */
+} bcmolt_gpon_onu_omci_packet;
+
+/** Structure definition for the "key" group of the "gpon_trx" object. 
+ */
+typedef struct bcmolt_gpon_trx_key
+{
+    bcmolt_gpon_ni pon_ni;  /**< PON network interface. */
+} bcmolt_gpon_trx_key;
+
+/** Structure definition for the "cfg" group of the "gpon_trx" object. 
+ */
+typedef struct bcmolt_gpon_trx_cfg_data
+{
+    bcmolt_trx_type transceiver_type;   /**< transceiver type. */
+    bcmolt_la_resync_pattern_configuration la_configuration;    /**< LA configuration. */
+    bcmolt_bcdr_resync_pattern_configuration bcdr;              /**< BCDR. */
+    bcmolt_resync_control la_ranging_after_no_ed_resync;        /**< LA ranging after no ed resync . */
+    bcmolt_resync_control bcdr_ranging_after_no_ed_resync;      /**< used in ranging mode after no ed found */
+    bcmolt_resync_control la_ranging_after_ed_resync;           /**< LA ranging after ed resync . */
+    bcmolt_resync_control bcdr_ranging_after_ed_resync;         /**< BCDR ranging after ed resync. */
+    bcmolt_polarity la_resync_polarity;     /**< la resync polarity. */
+    bcmolt_polarity bcdr_resync_polarity;   /**< BCDR resync polarity. */
+    bcmolt_ranging_resync_conditions bcdr_ranging_resync_conditions;            /**< bcdr ranging resync conditions. */
+    bcmolt_ranging_resync_conditions la_ranging_resync_conditions;              /**< la ranging resync conditions. */
+    bcmolt_trx_rx_configuration rx_configuration;                               /**< RX configuration. */
+    bcmolt_ranging_control_configuration ranging_control_stages_configuration;  /**< ranging control stages configuration. */
+    bcmolt_trx_energy_detect energy_detect;             /**< Energy Detect. */
+    bcmolt_resync_control end_of_burst_data_pattern;    /**< end of burst data pattern . */
+    bcmolt_resync_control end_of_burst_ranging_pattern; /**< end of burst ranging pattern. */
+    bcmolt_trx_preamble preamble;                       /**< Preamble. */
+    bcmolt_trx_delimiter delimiter;                     /**< Delimiter. */
+    uint32_t guard_bits;    /**< Guard bits. */
+    bcmolt_serdes_configuration serdes_configuration;   /**< serdes configuration. */
+    uint32_t plo_ranging;   /**< PLO for ranging. */
+    uint32_t plo_data;      /**< PLO for data. */
+    bcmolt_gpon_rssi_general_configuration rssi_normal_config;  /**< rssi normal config. */
+    bcmolt_ranging_rssi_control ranging_rssi_resync_control;    /**< ranging rssi resync control. */
+} bcmolt_gpon_trx_cfg_data;
+
+/** Transport message definition for "cfg" group of "gpon_trx" object. 
+ */
+typedef struct bcmolt_gpon_trx_cfg
+{
+    bcmolt_cfg hdr;                 /**< Transport header. */
+    bcmolt_gpon_trx_key key;        /**< Object key. */
+    bcmolt_gpon_trx_cfg_data data;  /**< All properties that must be set by the user. */
+} bcmolt_gpon_trx_cfg;
+
+/** Structure definition for the "key" group of the "log_entry" object. 
+ */
+typedef struct bcmolt_log_entry_key
+{
+    uint32_t log_id;        /**< log id. */
+    uint8_t reserved;       /**< reserved. */
+    bcmolt_str_100 name;    /**< name. */
+} bcmolt_log_entry_key;
+
+/** Structure definition for the "cfg" group of the "log_entry" object. 
+ */
+typedef struct bcmolt_log_entry_cfg_data
+{
+    bcmolt_log_level default_log_level; /**< default log level. */
+    bcmolt_log_type default_log_type;   /**< default log type. */
+    bcmolt_log_level log_level_print;   /**< log level print. */
+    bcmolt_log_level log_level_save;    /**< log level save. */
+    bcmolt_log_type log_type;           /**< log type. */
+    bcmolt_log_style log_style;         /**< log_style. */
+    bcmolt_str_100 log_name;            /**< log name. */
+} bcmolt_log_entry_cfg_data;
+
+/** Transport message definition for "cfg" group of "log_entry" object. 
+ */
+typedef struct bcmolt_log_entry_cfg
+{
+    bcmolt_cfg hdr;                 /**< Transport header. */
+    bcmolt_log_entry_key key;       /**< Object key. */
+    bcmolt_log_entry_cfg_data data; /**< All properties that must be set by the user. */
+} bcmolt_log_entry_cfg;
+
+/** Structure definition for the "stat" group of the "log_entry" object. 
+ */
+typedef struct bcmolt_log_entry_stat_data
+{
+#define BCMOLT_LOG_ENTRY_STAT_DATA_MSG_COUNT_LEN    6
+    bcmolt_arr_u32_6 msg_count; /**< msg count. */
+    uint32_t lost_msg_count;    /**< lost msg count. */
+} bcmolt_log_entry_stat_data;
+
+/** Transport message definition for "stat" group of "log_entry" object. 
+ */
+typedef struct bcmolt_log_entry_stat
+{
+    bcmolt_stat hdr;                    /**< Transport header. */
+    bcmolt_log_entry_key key;           /**< Object key. */
+    bcmolt_log_entry_stat_data data;    /**< All properties that must be set by the user. */
+} bcmolt_log_entry_stat;
+
+/** Structure definition for the "stat_cfg" group of the "log_entry" object. 
+ */
+typedef struct bcmolt_log_entry_stat_cfg_data
+{
+    bcmolt_stat_alarm_config cfg;   /**< Statistic alarm configuration. */
+} bcmolt_log_entry_stat_cfg_data;
+
+/** Transport message definition for "stat_cfg" group of "log_entry" object. 
+ */
+typedef struct bcmolt_log_entry_stat_cfg
+{
+    bcmolt_stat_cfg hdr;        /**< Transport header. */
+    bcmolt_log_entry_key key;   /**< Object key. */
+    bcmolt_log_entry_stat_cfg_data data;    /**< All properties that must be set by the user. */
+} bcmolt_log_entry_stat_cfg;
+
+/** Structure definition for the "stat_alarm_cleared" group of the "log_entry" 
+ * object. 
+ *
+ * Sent when a configured statistic alarm condition is no longer met. 
+ */
+typedef struct bcmolt_log_entry_stat_alarm_cleared_data
+{
+    bcmolt_log_entry_stat_id stat;  /**< Statistic identifier. */
+} bcmolt_log_entry_stat_alarm_cleared_data;
+
+/** Transport message definition for "stat_alarm_cleared" group of "log_entry" 
+ * object. 
+ */
+typedef struct bcmolt_log_entry_stat_alarm_cleared
+{
+    bcmolt_auto hdr;            /**< Transport header. */
+    bcmolt_log_entry_key key;   /**< Object key. */
+    bcmolt_log_entry_stat_alarm_cleared_data data;  /**< All properties that must be set by the user. */
+} bcmolt_log_entry_stat_alarm_cleared;
+
+/** Structure definition for the "stat_alarm_raised" group of the "log_entry" 
+ * object. 
+ *
+ * Sent when a configured statistic alarm condition has been met. 
+ */
+typedef struct bcmolt_log_entry_stat_alarm_raised_data
+{
+    bcmolt_log_entry_stat_id stat;  /**< Statistic identifier. */
+} bcmolt_log_entry_stat_alarm_raised_data;
+
+/** Transport message definition for "stat_alarm_raised" group of "log_entry" 
+ * object. 
+ */
+typedef struct bcmolt_log_entry_stat_alarm_raised
+{
+    bcmolt_auto hdr;            /**< Transport header. */
+    bcmolt_log_entry_key key;   /**< Object key. */
+    bcmolt_log_entry_stat_alarm_raised_data data;   /**< All properties that must be set by the user. */
+} bcmolt_log_entry_stat_alarm_raised;
+
+/** Structure definition for the "auto_cfg" group of the "log_entry" object. 
+ */
+typedef struct bcmolt_log_entry_auto_cfg_data
+{
+    bcmos_bool stat_alarm_cleared;  /**< If true, indications of type "stat_alarm_cleared" will be generated. */
+    bcmos_bool stat_alarm_raised;   /**< If true, indications of type "stat_alarm_raised" will be generated. */
+} bcmolt_log_entry_auto_cfg_data;
+
+/** Transport message definition for "auto_cfg" group of "log_entry" object. 
+ */
+typedef struct bcmolt_log_entry_auto_cfg
+{
+    bcmolt_auto_cfg hdr;                    /**< Transport header. */
+    bcmolt_log_entry_key key;               /**< Object key. */
+    bcmolt_log_entry_auto_cfg_data data;    /**< All properties that must be set by the user. */
+} bcmolt_log_entry_auto_cfg;
+
+/** Structure definition for the "key" group of the "logger" object. 
+ */
+typedef struct bcmolt_logger_key
+{
+    uint32_t reserved;          /**< reserved. */
+    bcmolt_log_file_id file_id; /**< should be 0 */
+} bcmolt_logger_key;
+
+/** Structure definition for the "cfg" group of the "logger" object. 
+ */
+typedef struct bcmolt_logger_cfg_data
+{
+    bcmolt_log_buffer buffer;       /**< Contains "next" log records read by "bcmolt_cfg_get() API */
+    bcmos_bool wrap_around;         /**< Log file wrap-around option. TRUE=wrap around when full. FALSE=stop when full */
+    bcmos_bool clear_after_read;    /**< Clear log after last record has been read */
+    bcmos_bool enable_log;          /**< Enable logger */
+    bcmolt_str_1000 log_names;      /**< log_names. */
+} bcmolt_logger_cfg_data;
+
+/** Transport message definition for "cfg" group of "logger" object. 
+ */
+typedef struct bcmolt_logger_cfg
+{
+    bcmolt_cfg hdr;                 /**< Transport header. */
+    bcmolt_logger_key key;          /**< Object key. */
+    bcmolt_logger_cfg_data data;    /**< All properties that must be set by the user. */
+} bcmolt_logger_cfg;
+
+/** Structure definition for the "stat" group of the "logger" object. 
+ */
+typedef struct bcmolt_logger_stat_data
+{
+    uint32_t lines_in_log;  /**< lines in log. */
+} bcmolt_logger_stat_data;
+
+/** Transport message definition for "stat" group of "logger" object. 
+ */
+typedef struct bcmolt_logger_stat
+{
+    bcmolt_stat hdr;                /**< Transport header. */
+    bcmolt_logger_key key;          /**< Object key. */
+    bcmolt_logger_stat_data data;   /**< All properties that must be set by the user. */
+} bcmolt_logger_stat;
+
+/** Structure definition for the "stat_cfg" group of the "logger" object. 
+ */
+typedef struct bcmolt_logger_stat_cfg_data
+{
+    bcmolt_stat_alarm_config cfg;   /**< Statistic alarm configuration. */
+} bcmolt_logger_stat_cfg_data;
+
+/** Transport message definition for "stat_cfg" group of "logger" object. 
+ */
+typedef struct bcmolt_logger_stat_cfg
+{
+    bcmolt_stat_cfg hdr;                /**< Transport header. */
+    bcmolt_logger_key key;              /**< Object key. */
+    bcmolt_logger_stat_cfg_data data;   /**< All properties that must be set by the user. */
+} bcmolt_logger_stat_cfg;
+
+/** Structure definition for the "stat_alarm_cleared" group of the "logger" 
+ * object. 
+ *
+ * Sent when a configured statistic alarm condition is no longer met. 
+ */
+typedef struct bcmolt_logger_stat_alarm_cleared_data
+{
+    bcmolt_logger_stat_id stat; /**< Statistic identifier. */
+} bcmolt_logger_stat_alarm_cleared_data;
+
+/** Transport message definition for "stat_alarm_cleared" group of "logger" 
+ * object. 
+ */
+typedef struct bcmolt_logger_stat_alarm_cleared
+{
+    bcmolt_auto hdr;        /**< Transport header. */
+    bcmolt_logger_key key;  /**< Object key. */
+    bcmolt_logger_stat_alarm_cleared_data data; /**< All properties that must be set by the user. */
+} bcmolt_logger_stat_alarm_cleared;
+
+/** Structure definition for the "stat_alarm_raised" group of the "logger" 
+ * object. 
+ *
+ * Sent when a configured statistic alarm condition has been met. 
+ */
+typedef struct bcmolt_logger_stat_alarm_raised_data
+{
+    bcmolt_logger_stat_id stat; /**< Statistic identifier. */
+} bcmolt_logger_stat_alarm_raised_data;
+
+/** Transport message definition for "stat_alarm_raised" group of "logger" 
+ * object. 
+ */
+typedef struct bcmolt_logger_stat_alarm_raised
+{
+    bcmolt_auto hdr;        /**< Transport header. */
+    bcmolt_logger_key key;  /**< Object key. */
+    bcmolt_logger_stat_alarm_raised_data data;  /**< All properties that must be set by the user. */
+} bcmolt_logger_stat_alarm_raised;
+
+/** Structure definition for the "auto_cfg" group of the "logger" object. 
+ */
+typedef struct bcmolt_logger_auto_cfg_data
+{
+    bcmos_bool stat_alarm_cleared;  /**< If true, indications of type "stat_alarm_cleared" will be generated. */
+    bcmos_bool stat_alarm_raised;   /**< If true, indications of type "stat_alarm_raised" will be generated. */
+} bcmolt_logger_auto_cfg_data;
+
+/** Transport message definition for "auto_cfg" group of "logger" object. 
+ */
+typedef struct bcmolt_logger_auto_cfg
+{
+    bcmolt_auto_cfg hdr;                /**< Transport header. */
+    bcmolt_logger_key key;              /**< Object key. */
+    bcmolt_logger_auto_cfg_data data;   /**< All properties that must be set by the user. */
+} bcmolt_logger_auto_cfg;
+
+/** Transport message definition for "clear_log" group of "logger" object. 
+ */
+typedef struct bcmolt_logger_clear_log
+{
+    bcmolt_oper hdr;        /**< Transport header. */
+    bcmolt_logger_key key;  /**< Object key. */
+} bcmolt_logger_clear_log;
+
+/** Structure definition for the "key" group of the "nni" object. 
+ */
+typedef struct bcmolt_nni_key
+{
+    bcmolt_pon_ni pon_ni;   /**< PON NI. */
+} bcmolt_nni_key;
+
+/** Structure definition for the "cfg" group of the "nni" object. 
+ */
+typedef struct bcmolt_nni_cfg_data
+{
+    bcmolt_control_state remote_loopback;   /**< Incoming packets coming from the PON (upstream) and going back to the PON (Downstream)  */
+    bcmolt_control_state line_loopback;     /**< Incoming packets coming from the NNI interface to the PM and going back towards the NNI interface */
+    bcmos_mac_address mac_address;          /**< Mac address to be used for this NNI. */
+    bcmolt_nni_link_status nni_status;      /**< NNI status */
+    bcmolt_nni_link_status nni_backup_status;   /**< Status of the backup NNI. */
+    bcmolt_nni_connection active_nni;           /**< Which NNI is currently active. */
+    uint32_t nni_status_polling_interval_ms;    /**< How often to check the status of the primary and backup NNIs (units: ms). Zero (0) disables status polling. */
+    bcmos_bool autoswitch;                      /**< Should firmware automatically switch between primary/backup NNIs when Loss of Link is detected? */
+    bcmolt_control_state flow_control;          /**< NNI Flow control. */
+} bcmolt_nni_cfg_data;
+
+/** Transport message definition for "cfg" group of "nni" object. 
+ */
+typedef struct bcmolt_nni_cfg
+{
+    bcmolt_cfg hdr;             /**< Transport header. */
+    bcmolt_nni_key key;         /**< Object key. */
+    bcmolt_nni_cfg_data data;   /**< All properties that must be set by the user. */
+} bcmolt_nni_cfg;
+
+/** Structure definition for the "stat" group of the "nni" object. 
+ */
+typedef struct bcmolt_nni_stat_data
+{
+    uint64_t rx_frames_64;              /**< The count of RX 64 byte frames on this NNI. */
+    uint64_t rx_frames_65_127;          /**< The count of RX 65 to 127 byte frames on this NNI. */
+    uint64_t rx_frames_128_255;         /**< The count of RX 128 to 255 byte frames on this NNI. */
+    uint64_t rx_frames_256_511;         /**< The count of RX 256 to 511 byte frames on this NNI. */
+    uint64_t rx_frames_512_1023;        /**< The count of RX 512 to 1023 byte frames on this NNI. */
+    uint64_t rx_frames_1024_1518;       /**< The count of RX 1024 to 1518 byte frames on this NNI. */
+    uint64_t rx_frames_1519_2047;       /**< The count of RX 1519 to 2047 byte frames on this NNI. */
+    uint64_t rx_frames_2048_4095;       /**< The count of RX 2048 to 4095 byte frames on this NNI. */
+    uint64_t rx_frames_4096_9216;       /**< The count of RX 4096 to 9216 byte frames on this NNI. */
+    uint64_t rx_frames_9217_16383;      /**< The count of RX 9217 to 16383 byte frames on this NNI. */
+    uint64_t rx_frames;                 /**< The number of received frames on this NNI. This includes all errored frames as well. */
+    uint64_t rx_bytes;                  /**< The number of received bytes on this NNI. This includes all errored frames as well. */
+    uint64_t rx_good_frames;            /**< The number of received good frames on this NNI. */
+    uint64_t rx_unicast_frames;         /**< The number of received unicast frames on this NNI. */
+    uint64_t rx_multicast_frames;       /**< The number of received multicast frames on this NNI. */
+    uint64_t rx_broadcast_frames;       /**< The number of received broadcast frames on this NNI. */
+    uint64_t rx_fcs_errors;             /**< The number of received FCS errors on this NNI. */
+    uint64_t rx_control_frames;         /**< The number of received control frames on this NNI. */
+    uint64_t rx_pause_frames;           /**< The number of received pause frames on this NNI. */
+    uint64_t rx_pfc_frames;             /**< The number of received PFC frames on this NNI. */
+    uint64_t rx_unsupported_opcode;     /**< The number of received Unsupported Opcode frames on this NNI. */
+    uint64_t rx_unsupported_da;         /**< The number of received unsupported DA frames on this NNI. */
+    uint64_t rx_alignment_errors;       /**< The number of received alignment errors on this NNI. */
+    uint64_t rx_length_out_of_range;    /**< The number of received length out of range errors on this NNI. */
+    uint64_t rx_code_errors;            /**< The number of received code errors on this NNI. */
+    uint64_t rx_oversized_frames;       /**< The number of received oversized frames on this NNI. */
+    uint64_t rx_jabber_frames;          /**< The number of received jabber frames on this NNI. these are oversized frames that also contain an invalid CRC, code error, or IEEE length check error. */
+    uint64_t rx_mtu_check_errors;       /**< The number of received MTU Check Errors on this NNI. */
+    uint64_t rx_promiscuous_frames;     /**< The number of received frames on this NNI that are not control packets and have a DA that is not matching with the RX SA. */
+    uint64_t rx_vlan_frames;            /**< The number of received VLAN tagged frames on this NNI (with TPID 8100). This counts both single and double tagged frames. */
+    uint64_t rx_double_vlan_frames;     /**< The number of received double VLAN tagged frames on this NNI (with TPID 8100).  */
+    uint64_t rx_truncated_frames;       /**< The number of received truncated frames on this NNI. This is likely due to RX FIFO Full.  */
+    uint64_t rx_undersize_frames;       /**< The number of received undersized frames on this NNI. */
+    uint64_t rx_fragmented_frames;      /**< The number of received fragmented frames on this NNI. */
+    uint64_t rx_runt_frames;            /**< The number of received runt frames on this NNI. */
+    uint64_t tx_frames_64;              /**< The count of TX 64 byte frames on this NNI. */
+    uint64_t tx_frames_65_127;          /**< The count of TX 65 to 127 byte frames on this NNI. */
+    uint64_t tx_frames_128_255;         /**< The count of TX 128 to 255 byte frames on this NNI. */
+    uint64_t tx_frames_256_511;         /**< The count of TX 256 to 511 byte frames on this NNI. */
+    uint64_t tx_frames_512_1023;        /**< The count of TX 512 to 1023 byte frames on this NNI. */
+    uint64_t tx_frames_1024_1518;       /**< The count of TX 1024 to 1518 byte frames on this NNI. */
+    uint64_t tx_frames_1519_2047;       /**< The count of TX 1519 to 2047 byte frames on this NNI. */
+    uint64_t tx_frames_2048_4095;       /**< The count of TX 2048 to 4095 byte frames on this NNI. */
+    uint64_t tx_frames_4096_9216;       /**< The count of TX 4096 to 9216 byte frames on this NNI. */
+    uint64_t tx_frames_9217_16383;      /**< The count of TX 9217 to 16383 byte frames on this NNI. */
+    uint64_t tx_frames;                 /**< The number of transmitted frames on this NNI. This includes all errored frames as well. */
+    uint64_t tx_bytes;                  /**< The number of transmitted bytes on this NNI. This includes all errored frames as well. */
+    uint64_t tx_good_frames;            /**< The number of transmitted good frames on this NNI. */
+    uint64_t tx_unicast_frames;         /**< The number of transmitted unicast frames on this NNI. */
+    uint64_t tx_multicast_frames;       /**< The number of transmitted multicast frames on this NNI. */
+    uint64_t tx_broadcast_frames;       /**< The number of transmitted broadcast frames on this NNI. */
+    uint64_t tx_pause_frames;           /**< The number of transmitted pause frames on this NNI. */
+    uint64_t tx_pfc_frames;             /**< The number of transmitted PFC frames on this NNI. */
+    uint64_t tx_jabber_frames;          /**< The number of transmitted jabber frames on this NNI. These are oversized frames that also contain an invalid FCS. */
+    uint64_t tx_fcs_errors;             /**< The number of transmitted FCS errors on this NNI.  */
+    uint64_t tx_control_frames;         /**< The number of transmitted control frames on this NNI.  */
+    uint64_t tx_oversize_frames;        /**< The number of transmitted oversized frames on this NNI.  */
+    uint64_t tx_fragmented_frames;      /**< The number of transmitted fragmented frames on this NNI.  */
+    uint64_t tx_error_frames;           /**< The number of transmitted errored frames on this NNI.  */
+    uint64_t tx_vlan_frames;            /**< The number of transmitted VLAN tagged frames on this NNI (with TPID 8100). This counts both single and double tagged frames. */
+    uint64_t tx_double_vlan_frames;     /**< The number of transmitted double VLAN tagged frames on this NNI (with TPID 8100).  */
+    uint64_t tx_runt_frames;            /**< The number of transmitted runt frames on this NNI.  */
+    uint64_t tx_underrun_frames;        /**< The number of transmitted underrun frames on this NNI. Thus happens when a frame encounters a MAC underrun (Tx Sync FIFO runs out of data before the end of packet). */
+} bcmolt_nni_stat_data;
+
+/** Transport message definition for "stat" group of "nni" object. 
+ */
+typedef struct bcmolt_nni_stat
+{
+    bcmolt_stat hdr;            /**< Transport header. */
+    bcmolt_nni_key key;         /**< Object key. */
+    bcmolt_nni_stat_data data;  /**< All properties that must be set by the user. */
+} bcmolt_nni_stat;
+
+/** Structure definition for the "stat_cfg" group of the "nni" object. 
+ */
+typedef struct bcmolt_nni_stat_cfg_data
+{
+    bcmolt_stat_alarm_config cfg;   /**< Statistic alarm configuration. */
+} bcmolt_nni_stat_cfg_data;
+
+/** Transport message definition for "stat_cfg" group of "nni" object. 
+ */
+typedef struct bcmolt_nni_stat_cfg
+{
+    bcmolt_stat_cfg hdr;            /**< Transport header. */
+    bcmolt_nni_key key;             /**< Object key. */
+    bcmolt_nni_stat_cfg_data data;  /**< All properties that must be set by the user. */
+} bcmolt_nni_stat_cfg;
+
+/** Structure definition for the "stat_alarm_cleared" group of the "nni" object. 
+ *
+ * Sent when a configured statistic alarm condition is no longer met. 
+ */
+typedef struct bcmolt_nni_stat_alarm_cleared_data
+{
+    bcmolt_nni_stat_id stat;    /**< Statistic identifier. */
+} bcmolt_nni_stat_alarm_cleared_data;
+
+/** Transport message definition for "stat_alarm_cleared" group of "nni" object. 
+ */
+typedef struct bcmolt_nni_stat_alarm_cleared
+{
+    bcmolt_auto hdr;    /**< Transport header. */
+    bcmolt_nni_key key; /**< Object key. */
+    bcmolt_nni_stat_alarm_cleared_data data;    /**< All properties that must be set by the user. */
+} bcmolt_nni_stat_alarm_cleared;
+
+/** Structure definition for the "stat_alarm_raised" group of the "nni" object. 
+ *
+ * Sent when a configured statistic alarm condition has been met. 
+ */
+typedef struct bcmolt_nni_stat_alarm_raised_data
+{
+    bcmolt_nni_stat_id stat;    /**< Statistic identifier. */
+} bcmolt_nni_stat_alarm_raised_data;
+
+/** Transport message definition for "stat_alarm_raised" group of "nni" object. 
+ */
+typedef struct bcmolt_nni_stat_alarm_raised
+{
+    bcmolt_auto hdr;                        /**< Transport header. */
+    bcmolt_nni_key key;                     /**< Object key. */
+    bcmolt_nni_stat_alarm_raised_data data; /**< All properties that must be set by the user. */
+} bcmolt_nni_stat_alarm_raised;
+
+/** Structure definition for the "status_changed" group of the "nni" object. 
+ *
+ * NNI Link status changed 
+ */
+typedef struct bcmolt_nni_status_changed_data
+{
+    bcmolt_status new_status;               /**< New NNI Link Status */
+    bcmolt_nni_connection link;             /**< Which NNI this indication pertains to. */
+    bcmolt_nni_connection previous_active;  /**< Which NNI was active before this status change. */
+    bcmolt_nni_connection new_active;       /**< Which NNI is now active after this status change. */
+} bcmolt_nni_status_changed_data;
+
+/** Transport message definition for "status_changed" group of "nni" object. 
+ */
+typedef struct bcmolt_nni_status_changed
+{
+    bcmolt_auto hdr;                        /**< Transport header. */
+    bcmolt_nni_key key;                     /**< Object key. */
+    bcmolt_nni_status_changed_data data;    /**< All properties that must be set by the user. */
+} bcmolt_nni_status_changed;
+
+/** Structure definition for the "auto_cfg" group of the "nni" object. 
+ */
+typedef struct bcmolt_nni_auto_cfg_data
+{
+    bcmos_bool stat_alarm_cleared;  /**< If true, indications of type "stat_alarm_cleared" will be generated. */
+    bcmos_bool stat_alarm_raised;   /**< If true, indications of type "stat_alarm_raised" will be generated. */
+    bcmos_bool status_changed;      /**< If true, indications of type "status_changed" will be generated. */
+} bcmolt_nni_auto_cfg_data;
+
+/** Transport message definition for "auto_cfg" group of "nni" object. 
+ */
+typedef struct bcmolt_nni_auto_cfg
+{
+    bcmolt_auto_cfg hdr;            /**< Transport header. */
+    bcmolt_nni_key key;             /**< Object key. */
+    bcmolt_nni_auto_cfg_data data;  /**< All properties that must be set by the user. */
+} bcmolt_nni_auto_cfg;
+
+/** Structure definition for the "key" group of the "nni_serdes" object. 
+ */
+typedef struct bcmolt_nni_serdes_key
+{
+    bcmolt_pon_ni pon_ni;               /**< PON NI. */
+    bcmolt_serdes_instance instance;    /**< SerDes instance.: 0 = Primary, 1 = Secondary. */
+} bcmolt_nni_serdes_key;
+
+/** Structure definition for the "cfg" group of the "nni_serdes" object. 
+ */
+typedef struct bcmolt_nni_serdes_cfg_data
+{
+    uint8_t rx_vga;     /**< Rx Vga. */
+    uint8_t rx_pf;      /**< Peaking Filter */
+    uint8_t rx_lfpf;    /**< Low Frequency Peaking Filter */
+    uint8_t rx_dfe1;    /**< Rx DFE1. */
+    int8_t rx_dfe2;     /**< Rx DFE2. */
+    int8_t rx_dfe3;     /**< Rx DFE3. */
+    int8_t rx_dfe4;     /**< Rx DFE4. */
+    int8_t rx_dfe5;     /**< Rx DFE5. */
+    uint8_t tx_pre;     /**< Tx Pre. */
+    uint8_t tx_main;    /**< Tx Main. */
+    uint8_t tx_post1;   /**< Tx Post1. */
+    int8_t tx_post2;    /**< Tx Post2. */
+    int8_t tx_post3;    /**< Tx Post3. */
+    uint8_t tx_amp;     /**< Tx Amp. */
+} bcmolt_nni_serdes_cfg_data;
+
+/** Transport message definition for "cfg" group of "nni_serdes" object. 
+ */
+typedef struct bcmolt_nni_serdes_cfg
+{
+    bcmolt_cfg hdr;                     /**< Transport header. */
+    bcmolt_nni_serdes_key key;          /**< Object key. */
+    bcmolt_nni_serdes_cfg_data data;    /**< All properties that must be set by the user. */
+} bcmolt_nni_serdes_cfg;
+
+/** Structure definition for the "key" group of the "software_error" object. 
+ */
+typedef struct bcmolt_software_error_key
+{
+    uint32_t reserved;  /**< Reserved (set to 0). */
+    uint32_t idx;       /**< Index. */
+} bcmolt_software_error_key;
+
+/** Structure definition for the "cfg" group of the "software_error" object. 
+ */
+typedef struct bcmolt_software_error_cfg_data
+{
+    bcmolt_sw_error entry;  /**< Entry. */
+} bcmolt_software_error_cfg_data;
+
+/** Transport message definition for "cfg" group of "software_error" object. 
+ */
+typedef struct bcmolt_software_error_cfg
+{
+    bcmolt_cfg hdr;                 /**< Transport header. */
+    bcmolt_software_error_key key;  /**< Object key. */
+    bcmolt_software_error_cfg_data data;    /**< All properties that must be set by the user. */
+} bcmolt_software_error_cfg;
+
+/** Structure definition for the "key" group of the "trx_calibration" object. 
+ */
+typedef struct bcmolt_trx_calibration_key
+{
+    uint32_t reserved;  /**< Reserved (set to 0) */
+} bcmolt_trx_calibration_key;
+
+/** Structure definition for the "capture_window_and_statistic_completed" group 
+ * of the "trx_calibration" object. 
+ */
+typedef struct bcmolt_trx_calibration_capture_window_and_statistic_completed_data
+{
+    bcmolt_u32_list_u32_max_500_hex data_window;    /**< data window. */
+    bcmolt_u32_list_u32_max_500_hex strobe_window;  /**< strobe window. */
+    uint64_t edge_rise_min_min;                     /**< edge rise min min. */
+    uint64_t edge_rise_min_max;                     /**< edge rise min max. */
+    uint64_t edge_rise_max_min;                     /**< edge rise max min. */
+    uint64_t edge_rise_max_max;                     /**< edge rise max max. */
+    uint64_t edge_fall_min_min;                     /**< edge fall min min . */
+    uint64_t edge_fall_min_max;                     /**< edge fall min max. */
+    uint64_t edge_fall_max_min;                     /**< edge fall max min. */
+    uint64_t edge_fall_max_max;                     /**< edge fall max max. */
+    bcmolt_result result;   /**< result. */
+} bcmolt_trx_calibration_capture_window_and_statistic_completed_data;
+
+/** Transport message definition for "capture_window_and_statistic_completed" 
+ * group of "trx_calibration" object. 
+ */
+typedef struct bcmolt_trx_calibration_capture_window_and_statistic_completed
+{
+    bcmolt_auto hdr;                /**< Transport header. */
+    bcmolt_trx_calibration_key key; /**< Object key. */
+    bcmolt_trx_calibration_capture_window_and_statistic_completed_data data;    /**< All properties that must be set by the user. */
+} bcmolt_trx_calibration_capture_window_and_statistic_completed;
+
+/** Structure definition for the "auto_cfg" group of the "trx_calibration" 
+ * object. 
+ */
+typedef struct bcmolt_trx_calibration_auto_cfg_data
+{
+    bcmos_bool capture_window_and_statistic_completed;  /**< If true, indications of type "capture_window_and_statistic_completed" will be generated. */
+} bcmolt_trx_calibration_auto_cfg_data;
+
+/** Transport message definition for "auto_cfg" group of "trx_calibration" 
+ * object. 
+ */
+typedef struct bcmolt_trx_calibration_auto_cfg
+{
+    bcmolt_auto_cfg hdr;                        /**< Transport header. */
+    bcmolt_trx_calibration_key key;             /**< Object key. */
+    bcmolt_trx_calibration_auto_cfg_data data;  /**< All properties that must be set by the user. */
+} bcmolt_trx_calibration_auto_cfg;
+
+/** Structure definition for the "start_capture_window" group of the 
+ * "trx_calibration" object. 
+ */
+typedef struct bcmolt_trx_calibration_start_capture_window_data
+{
+    uint8_t pon_ni; /**< pon_ni. */
+    bcmolt_trx_calibration_trigger trigger;         /**< trigger. */
+    bcmolt_capture_strobe_signal strobe;            /**< strobe. */
+    bcmolt_trx_calibration_window_mode window_mode; /**< window mode. */
+    uint16_t onu_id;    /**< onu id. */
+    bcmolt_trx_calibration_trigger_position trigger_position;   /**< trigger position. */
+    bcmos_bool stop_due_to_corrupt_strobe;                      /**< enable/disable corrupt strobe from MAC to terminate stat window */
+    uint16_t start_offset;      /**< start offset. */
+    uint16_t end_offset;        /**< end offset. */
+    uint8_t number_of_cycles;   /**< number of cycles. */
+} bcmolt_trx_calibration_start_capture_window_data;
+
+/** Transport message definition for "start_capture_window" group of 
+ * "trx_calibration" object. 
+ */
+typedef struct bcmolt_trx_calibration_start_capture_window
+{
+    bcmolt_oper hdr;                /**< Transport header. */
+    bcmolt_trx_calibration_key key; /**< Object key. */
+    bcmolt_trx_calibration_start_capture_window_data data;  /**< All properties that must be set by the user. */
+} bcmolt_trx_calibration_start_capture_window;
+
+/** Structure definition for the "stop_capture_window" group of the 
+ * "trx_calibration" object. 
+ */
+typedef struct bcmolt_trx_calibration_stop_capture_window_data
+{
+    uint8_t pon_ni; /**< pon_ni. */
+} bcmolt_trx_calibration_stop_capture_window_data;
+
+/** Transport message definition for "stop_capture_window" group of 
+ * "trx_calibration" object. 
+ */
+typedef struct bcmolt_trx_calibration_stop_capture_window
+{
+    bcmolt_oper hdr;                /**< Transport header. */
+    bcmolt_trx_calibration_key key; /**< Object key. */
+    bcmolt_trx_calibration_stop_capture_window_data data;   /**< All properties that must be set by the user. */
+} bcmolt_trx_calibration_stop_capture_window;
+
+/** Structure definition for the "key" group of the "xgpon_alloc" object. 
+ */
+typedef struct bcmolt_xgpon_alloc_key
+{
+    bcmolt_xgpon_ni pon_ni;         /**< PON network interface. */
+    bcmolt_xgpon_alloc_id alloc_id; /**< Alloc ID. */
+} bcmolt_xgpon_alloc_key;
+
+/** Structure definition for the "cfg" group of the "xgpon_alloc" object. 
+ */
+typedef struct bcmolt_xgpon_alloc_cfg_data
+{
+    bcmolt_alloc_state state;   /**< Current Alloc ID state */
+    bcmolt_pon_alloc_sla sla;   /**< Alloc ID SLA */
+    bcmolt_xgpon_onu_id onu_id; /**< ONU ID the alloc ID is assigned to */
+    bcmos_bool collect_stats;   /**< Enable statistics collection for this alloc ID */
+} bcmolt_xgpon_alloc_cfg_data;
+
+/** Transport message definition for "cfg" group of "xgpon_alloc" object. 
+ */
+typedef struct bcmolt_xgpon_alloc_cfg
+{
+    bcmolt_cfg hdr;                     /**< Transport header. */
+    bcmolt_xgpon_alloc_key key;         /**< Object key. */
+    bcmolt_xgpon_alloc_cfg_data data;   /**< All properties that must be set by the user. */
+} bcmolt_xgpon_alloc_cfg;
+
+/** Structure definition for the "stat" group of the "xgpon_alloc" object. 
+ */
+typedef struct bcmolt_xgpon_alloc_stat_data
+{
+    uint64_t rx_bytes;  /**< Number of alloc ID received bytes. */
+} bcmolt_xgpon_alloc_stat_data;
+
+/** Transport message definition for "stat" group of "xgpon_alloc" object. 
+ */
+typedef struct bcmolt_xgpon_alloc_stat
+{
+    bcmolt_stat hdr;                    /**< Transport header. */
+    bcmolt_xgpon_alloc_key key;         /**< Object key. */
+    bcmolt_xgpon_alloc_stat_data data;  /**< All properties that must be set by the user. */
+} bcmolt_xgpon_alloc_stat;
+
+/** Structure definition for the "stat_cfg" group of the "xgpon_alloc" object. 
+ */
+typedef struct bcmolt_xgpon_alloc_stat_cfg_data
+{
+    bcmolt_stat_alarm_config cfg;   /**< Statistic alarm configuration. */
+} bcmolt_xgpon_alloc_stat_cfg_data;
+
+/** Transport message definition for "stat_cfg" group of "xgpon_alloc" object. 
+ */
+typedef struct bcmolt_xgpon_alloc_stat_cfg
+{
+    bcmolt_stat_cfg hdr;        /**< Transport header. */
+    bcmolt_xgpon_alloc_key key; /**< Object key. */
+    bcmolt_xgpon_alloc_stat_cfg_data data;  /**< All properties that must be set by the user. */
+} bcmolt_xgpon_alloc_stat_cfg;
+
+/** Structure definition for the "configuration_completed" group of the 
+ * "xgpon_alloc" object. 
+ */
+typedef struct bcmolt_xgpon_alloc_configuration_completed_data
+{
+    bcmolt_result status;           /**< status. */
+    bcmolt_alloc_state new_state;   /**< new state. */
+} bcmolt_xgpon_alloc_configuration_completed_data;
+
+/** Transport message definition for "configuration_completed" group of 
+ * "xgpon_alloc" object. 
+ */
+typedef struct bcmolt_xgpon_alloc_configuration_completed
+{
+    bcmolt_auto hdr;            /**< Transport header. */
+    bcmolt_xgpon_alloc_key key; /**< Object key. */
+    bcmolt_xgpon_alloc_configuration_completed_data data;   /**< All properties that must be set by the user. */
+} bcmolt_xgpon_alloc_configuration_completed;
+
+/** Structure definition for the "get_alloc_stats_completed" group of the 
+ * "xgpon_alloc" object. 
+ *
+ * Collected alloc ID statistics from get_stats operation 
+ */
+typedef struct bcmolt_xgpon_alloc_get_alloc_stats_completed_data
+{
+    bcmolt_result status;           /**< status. */
+    uint32_t average_nsr_used;      /**< Average NSR used words. */
+    uint32_t average_nsr_allocated; /**< Average NSR allocated words. */
+    uint32_t average_sr_report;     /**< Average SR report. */
+} bcmolt_xgpon_alloc_get_alloc_stats_completed_data;
+
+/** Transport message definition for "get_alloc_stats_completed" group of 
+ * "xgpon_alloc" object. 
+ */
+typedef struct bcmolt_xgpon_alloc_get_alloc_stats_completed
+{
+    bcmolt_auto hdr;            /**< Transport header. */
+    bcmolt_xgpon_alloc_key key; /**< Object key. */
+    bcmolt_xgpon_alloc_get_alloc_stats_completed_data data; /**< All properties that must be set by the user. */
+} bcmolt_xgpon_alloc_get_alloc_stats_completed;
+
+/** Structure definition for the "stat_alarm_cleared" group of the "xgpon_alloc" 
+ * object. 
+ *
+ * Sent when a configured statistic alarm condition is no longer met. 
+ */
+typedef struct bcmolt_xgpon_alloc_stat_alarm_cleared_data
+{
+    bcmolt_xgpon_alloc_stat_id stat;    /**< Statistic identifier. */
+} bcmolt_xgpon_alloc_stat_alarm_cleared_data;
+
+/** Transport message definition for "stat_alarm_cleared" group of "xgpon_alloc" 
+ * object. 
+ */
+typedef struct bcmolt_xgpon_alloc_stat_alarm_cleared
+{
+    bcmolt_auto hdr;            /**< Transport header. */
+    bcmolt_xgpon_alloc_key key; /**< Object key. */
+    bcmolt_xgpon_alloc_stat_alarm_cleared_data data;    /**< All properties that must be set by the user. */
+} bcmolt_xgpon_alloc_stat_alarm_cleared;
+
+/** Structure definition for the "stat_alarm_raised" group of the "xgpon_alloc" 
+ * object. 
+ *
+ * Sent when a configured statistic alarm condition has been met. 
+ */
+typedef struct bcmolt_xgpon_alloc_stat_alarm_raised_data
+{
+    bcmolt_xgpon_alloc_stat_id stat;    /**< Statistic identifier. */
+} bcmolt_xgpon_alloc_stat_alarm_raised_data;
+
+/** Transport message definition for "stat_alarm_raised" group of "xgpon_alloc" 
+ * object. 
+ */
+typedef struct bcmolt_xgpon_alloc_stat_alarm_raised
+{
+    bcmolt_auto hdr;            /**< Transport header. */
+    bcmolt_xgpon_alloc_key key; /**< Object key. */
+    bcmolt_xgpon_alloc_stat_alarm_raised_data data; /**< All properties that must be set by the user. */
+} bcmolt_xgpon_alloc_stat_alarm_raised;
+
+/** Structure definition for the "auto_cfg" group of the "xgpon_alloc" object. 
+ */
+typedef struct bcmolt_xgpon_alloc_auto_cfg_data
+{
+    bcmos_bool configuration_completed;     /**< If true, indications of type "configuration_completed" will be generated. */
+    bcmos_bool get_alloc_stats_completed;   /**< If true, indications of type "get_alloc_stats_completed" will be generated. */
+    bcmos_bool stat_alarm_cleared;          /**< If true, indications of type "stat_alarm_cleared" will be generated. */
+    bcmos_bool stat_alarm_raised;           /**< If true, indications of type "stat_alarm_raised" will be generated. */
+} bcmolt_xgpon_alloc_auto_cfg_data;
+
+/** Transport message definition for "auto_cfg" group of "xgpon_alloc" object. 
+ */
+typedef struct bcmolt_xgpon_alloc_auto_cfg
+{
+    bcmolt_auto_cfg hdr;                    /**< Transport header. */
+    bcmolt_xgpon_alloc_key key;             /**< Object key. */
+    bcmolt_xgpon_alloc_auto_cfg_data data;  /**< All properties that must be set by the user. */
+} bcmolt_xgpon_alloc_auto_cfg;
+
+/** Structure definition for the "get_stats" group of the "xgpon_alloc" object. 
+ *
+ * Run statistics collection for a given period of time 
+ */
+typedef struct bcmolt_xgpon_alloc_get_stats_data
+{
+    uint32_t num_of_cycles; /**< The number of cycles to run statistics collection */
+} bcmolt_xgpon_alloc_get_stats_data;
+
+/** Transport message definition for "get_stats" group of "xgpon_alloc" object. 
+ */
+typedef struct bcmolt_xgpon_alloc_get_stats
+{
+    bcmolt_oper hdr;                        /**< Transport header. */
+    bcmolt_xgpon_alloc_key key;             /**< Object key. */
+    bcmolt_xgpon_alloc_get_stats_data data; /**< All properties that must be set by the user. */
+} bcmolt_xgpon_alloc_get_stats;
+
+/** Structure definition for the "set_state" group of the "xgpon_alloc" object. 
+ *
+ * Sets the alloc's activation state.  This is only used for protection 
+ * switching on an active-standby PON.  In normal operation, this isn't 
+ * necessary since allocs are activated/deactivated automatically along with 
+ * the ONU. 
+ */
+typedef struct bcmolt_xgpon_alloc_set_state_data
+{
+    bcmolt_alloc_operation state;   /**< State. */
+} bcmolt_xgpon_alloc_set_state_data;
+
+/** Transport message definition for "set_state" group of "xgpon_alloc" object. 
+ */
+typedef struct bcmolt_xgpon_alloc_set_state
+{
+    bcmolt_oper hdr;                        /**< Transport header. */
+    bcmolt_xgpon_alloc_key key;             /**< Object key. */
+    bcmolt_xgpon_alloc_set_state_data data; /**< All properties that must be set by the user. */
+} bcmolt_xgpon_alloc_set_state;
+
+/** Structure definition for the "key" group of the "xgpon_gem_port" object. 
+ */
+typedef struct bcmolt_xgpon_gem_port_key
+{
+    bcmolt_xgpon_ni pon_ni;             /**< PON network interface. */
+    bcmolt_xgpon_gem_id gem_port_id;    /**< GEM PORT ID. */
+} bcmolt_xgpon_gem_port_key;
+
+/** Structure definition for the "cfg" group of the "xgpon_gem_port" object. 
+ */
+typedef struct bcmolt_xgpon_gem_port_cfg_data
+{
+    bcmolt_gem_port_configuration configuration;                /**< GEM port configuration parameters */
+    bcmolt_xgpon_onu_id onu_id;                                 /**< ONU ID this GEM port is assigned to */
+    bcmolt_xgpon_gem_port_state gem_port_state;                 /**< Current GEM port state */
+    bcmolt_control_state encryption_mode;                       /**< Enable/Disable the downstream encryption mode of the GEM Port */
+    bcmolt_us_gem_port_destination upstream_destination_queue;  /**< The destination queue of the packets arriving on this GEM Port on the upstream direction */
+    bcmolt_control_state control;   /**< Enable/Disable the GEM Port ID in the OLT */
+} bcmolt_xgpon_gem_port_cfg_data;
+
+/** Transport message definition for "cfg" group of "xgpon_gem_port" object. 
+ */
+typedef struct bcmolt_xgpon_gem_port_cfg
+{
+    bcmolt_cfg hdr;                 /**< Transport header. */
+    bcmolt_xgpon_gem_port_key key;  /**< Object key. */
+    bcmolt_xgpon_gem_port_cfg_data data;    /**< All properties that must be set by the user. */
+} bcmolt_xgpon_gem_port_cfg;
+
+/** Structure definition for the "stat" group of the "xgpon_gem_port" object. 
+ */
+typedef struct bcmolt_xgpon_gem_port_stat_data
+{
+    uint64_t tx_bytes;      /**< TX bytes. */
+    uint64_t tx_packets;    /**< TX packets. */
+    uint64_t rx_packets;    /**< RX packets. */
+    uint64_t rx_bytes;      /**< RX bytes. */
+} bcmolt_xgpon_gem_port_stat_data;
+
+/** Transport message definition for "stat" group of "xgpon_gem_port" object. 
+ */
+typedef struct bcmolt_xgpon_gem_port_stat
+{
+    bcmolt_stat hdr;                        /**< Transport header. */
+    bcmolt_xgpon_gem_port_key key;          /**< Object key. */
+    bcmolt_xgpon_gem_port_stat_data data;   /**< All properties that must be set by the user. */
+} bcmolt_xgpon_gem_port_stat;
+
+/** Structure definition for the "stat_cfg" group of the "xgpon_gem_port" 
+ * object. 
+ */
+typedef struct bcmolt_xgpon_gem_port_stat_cfg_data
+{
+    bcmolt_stat_alarm_config cfg;   /**< Statistic alarm configuration. */
+} bcmolt_xgpon_gem_port_stat_cfg_data;
+
+/** Transport message definition for "stat_cfg" group of "xgpon_gem_port" 
+ * object. 
+ */
+typedef struct bcmolt_xgpon_gem_port_stat_cfg
+{
+    bcmolt_stat_cfg hdr;            /**< Transport header. */
+    bcmolt_xgpon_gem_port_key key;  /**< Object key. */
+    bcmolt_xgpon_gem_port_stat_cfg_data data;   /**< All properties that must be set by the user. */
+} bcmolt_xgpon_gem_port_stat_cfg;
+
+/** Structure definition for the "stat_alarm_cleared" group of the 
+ * "xgpon_gem_port" object. 
+ *
+ * Sent when a configured statistic alarm condition is no longer met. 
+ */
+typedef struct bcmolt_xgpon_gem_port_stat_alarm_cleared_data
+{
+    bcmolt_xgpon_gem_port_stat_id stat; /**< Statistic identifier. */
+} bcmolt_xgpon_gem_port_stat_alarm_cleared_data;
+
+/** Transport message definition for "stat_alarm_cleared" group of 
+ * "xgpon_gem_port" object. 
+ */
+typedef struct bcmolt_xgpon_gem_port_stat_alarm_cleared
+{
+    bcmolt_auto hdr;                /**< Transport header. */
+    bcmolt_xgpon_gem_port_key key;  /**< Object key. */
+    bcmolt_xgpon_gem_port_stat_alarm_cleared_data data; /**< All properties that must be set by the user. */
+} bcmolt_xgpon_gem_port_stat_alarm_cleared;
+
+/** Structure definition for the "stat_alarm_raised" group of the 
+ * "xgpon_gem_port" object. 
+ *
+ * Sent when a configured statistic alarm condition has been met. 
+ */
+typedef struct bcmolt_xgpon_gem_port_stat_alarm_raised_data
+{
+    bcmolt_xgpon_gem_port_stat_id stat; /**< Statistic identifier. */
+} bcmolt_xgpon_gem_port_stat_alarm_raised_data;
+
+/** Transport message definition for "stat_alarm_raised" group of 
+ * "xgpon_gem_port" object. 
+ */
+typedef struct bcmolt_xgpon_gem_port_stat_alarm_raised
+{
+    bcmolt_auto hdr;                /**< Transport header. */
+    bcmolt_xgpon_gem_port_key key;  /**< Object key. */
+    bcmolt_xgpon_gem_port_stat_alarm_raised_data data;  /**< All properties that must be set by the user. */
+} bcmolt_xgpon_gem_port_stat_alarm_raised;
+
+/** Structure definition for the "auto_cfg" group of the "xgpon_gem_port" 
+ * object. 
+ */
+typedef struct bcmolt_xgpon_gem_port_auto_cfg_data
+{
+    bcmos_bool stat_alarm_cleared;  /**< If true, indications of type "stat_alarm_cleared" will be generated. */
+    bcmos_bool stat_alarm_raised;   /**< If true, indications of type "stat_alarm_raised" will be generated. */
+} bcmolt_xgpon_gem_port_auto_cfg_data;
+
+/** Transport message definition for "auto_cfg" group of "xgpon_gem_port" 
+ * object. 
+ */
+typedef struct bcmolt_xgpon_gem_port_auto_cfg
+{
+    bcmolt_auto_cfg hdr;                        /**< Transport header. */
+    bcmolt_xgpon_gem_port_key key;              /**< Object key. */
+    bcmolt_xgpon_gem_port_auto_cfg_data data;   /**< All properties that must be set by the user. */
+} bcmolt_xgpon_gem_port_auto_cfg;
+
+/** Structure definition for the "key" group of the "xgpon_iwf" object. 
+ */
+typedef struct bcmolt_xgpon_iwf_key
+{
+    bcmolt_xgpon_ni pon_ni; /**< PON network interface. */
+} bcmolt_xgpon_iwf_key;
+
+/** Structure definition for the "cfg" group of the "xgpon_iwf" object. 
+ */
+typedef struct bcmolt_xgpon_iwf_cfg_data
+{
+    uint16_t us_otag_direct_tpid;   /**< TPID value of the VLAN tag added to upstream packet */
+#define BCMOLT_XGPON_IWF_CFG_DATA_DS_TPID_LEN   5
+    bcmolt_arr_u16_5_hex ds_tpid;   /**< Packets marked with one of the five configured DS TPID options will be forwarded, all the rest will be dropped */
+} bcmolt_xgpon_iwf_cfg_data;
+
+/** Transport message definition for "cfg" group of "xgpon_iwf" object. 
+ */
+typedef struct bcmolt_xgpon_iwf_cfg
+{
+    bcmolt_cfg hdr;                 /**< Transport header. */
+    bcmolt_xgpon_iwf_key key;       /**< Object key. */
+    bcmolt_xgpon_iwf_cfg_data data; /**< All properties that must be set by the user. */
+} bcmolt_xgpon_iwf_cfg;
+
+/** Structure definition for the "key" group of the "xgpon_ni" object. 
+ */
+typedef struct bcmolt_xgpon_ni_key
+{
+    bcmolt_xgpon_ni pon_ni; /**< PON network interface. */
+} bcmolt_xgpon_ni_key;
+
+/** Structure definition for the "cfg" group of the "xgpon_ni" object. 
+ */
+typedef struct bcmolt_xgpon_ni_cfg_data
+{
+    bcmolt_hw_pon_id hw_pon_id; /**< 51 bit PON identifier. This attribute is part of the downstream physical synchronization block (PSBd) */
+    bcmolt_pon_available_bandwidth available_bandwidth; /**< PON available bandwidth parameters */
+    uint16_t number_of_active_onus;                     /**< Number of active ONUs on the PON */
+    bcmolt_pon_status pon_status;                       /**< PON status parameters */
+    bcmolt_pon_distance pon_distance;                   /**< PON distance */
+    uint32_t ranging_window_size;                       /**< Ranging window size in BW units (4-byte words for 2.5G upstream, 16-byte blocks for 10G upstream) */
+    uint32_t eqd_cycles_number;             /**< How many ranging windows are opened during a single ONU activation process */
+    bcmolt_pon_drift_control drift_control; /**< Drift control process configuration */
+    uint8_t los_alarm_threshold;            /**< LOS alarm threshold */
+    bcmolt_status los_initial_value;        /**< LOS initial value following PON activation */
+    bcmolt_xgpon_onu_alarms_thresholds onu_alarms_thresholds;               /**< ONU alarms thresholds configuration */
+    bcmolt_ber_monitor_params ber_monitor;                                  /**< BER monitor process configuration */
+    bcmolt_xgpon_onu_activation onu_activation;                             /**< ONU activation control parameters */
+    bcmolt_xgpon_sn_acquisition sn_acquisition;                             /**< Serial Number process configuration */
+    bcmolt_xgpon_key_exchange key_exchange;                                 /**< Key Exchange process configuration */
+    bcmolt_xgpon_protection_switching protection_switching;                 /**< Protection switching control */
+    bcmolt_xgpon_protection_switching_debug protection_switching_debug;     /**< protection switching debug . */
+    bcmolt_cbr_rt_allocation_profile cbr_rt_allocation_profile;             /**< CBR Real Time allocation profile */
+#define BCMOLT_XGPON_NI_CFG_DATA_CBR_NRT_ALLOCATION_PROFILE_LEN 2
+    bcmolt_arr_u16_2 cbr_nrt_allocation_profile;                            /**< CBR non Real Time allocation profile */
+    bcmolt_onu_power_management_configuration power_management;             /**< ONU power management control */
+    bcmolt_rogue_onu_detection_process rogue_onu_detection_process;         /**< TBD */
+    bcmolt_periodic_standby_pon_monitoring periodic_standby_pon_monitoring; /**< Periodic Standby PON monitoring */
+    bcmolt_dba_mode dba_mode;                       /**< DBA mode */
+    bcmolt_xgpon_ploam_handling ploam_handling;     /**< Ploam handling configuration */
+    bcmolt_xgpon_alloc_id min_data_alloc_id;        /**< Min data Alloc ID value */
+    bcmolt_xgpon_gem_id min_data_gem_port_id;       /**< Min data XGEM port ID value */
+    bcmolt_xgpon_multicast_key multicast_key;       /**< Multicast XGEM ports encryption control */
+    bcmolt_prbs_checker_config prbs_checker;        /**< US PRBS checker configuration */
+    bcmolt_prbs_generator_config prbs_generator;    /**< DS PRBS generator configuration */
+    bcmolt_prbs_status prbs_status;                 /**< Result of US PRBS checker */
+    bcmolt_automatic_onu_deactivation automatic_onu_deactivation;   /**< Option to disable the automatic deactivation of ONUs due to alarms */
+    uint32_t us_bandwidth_limit;    /**< Total PON upstream bandwidth limit in bytes per second. */
+    bcmolt_xgpon_onu_with_state_list_u16_max_510 all_onus;                  /**< All ONUs currently provisioned on this PON. */
+    bcmolt_xgpon_gem_port_with_state_list_u16_max_128 all_mcast_gem_ports;  /**< All multicast GEM ports currently provisioned on this PON. */
+    bcmolt_xgpon_ni_debug debug;                        /**< PON NI debug parameters */
+    bcmolt_gpon_onu_upgrade_params onu_upgrade_params;  /**< ONU upgrade params. */
+    bcmolt_control_state ds_fec_mode;                   /**< DS FEC mode. */
+    bcmolt_dba_type dba_type;                   /**< DBA implementation type */
+    bcmolt_onu_tuning_configuration onu_tuning; /**< onu tuning. */
+} bcmolt_xgpon_ni_cfg_data;
+
+/** Transport message definition for "cfg" group of "xgpon_ni" object. 
+ */
+typedef struct bcmolt_xgpon_ni_cfg
+{
+    bcmolt_cfg hdr;                 /**< Transport header. */
+    bcmolt_xgpon_ni_key key;        /**< Object key. */
+    bcmolt_xgpon_ni_cfg_data data;  /**< All properties that must be set by the user. */
+} bcmolt_xgpon_ni_cfg;
+
+/** Structure definition for the "stat" group of the "xgpon_ni" object. 
+ */
+typedef struct bcmolt_xgpon_ni_stat_data
+{
+    uint64_t fec_codewords;             /**< Receive FEC codewords. */
+    uint64_t bip32_bytes;               /**< Received bytes protected by bip32. */
+    uint64_t bip32_errors;              /**< Received bip32 errors. */
+    uint64_t rx_xgtc_headers;           /**< Received valid XGTC headers. */
+    uint64_t rx_xgtc_corrected;         /**< Received corrected XGTC headers. */
+    uint64_t rx_xgtc_uncorrected;       /**< Received uncorrected XGTC headers. */
+    uint64_t rx_xgem;                   /**< Received valid XGEM frames. */
+    uint64_t rx_xgem_dropped;           /**< Received dropped XGEM ID frames. */
+    uint64_t rx_xgem_idle;              /**< Received idle XGEM frames. */
+    uint64_t rx_xgem_corrected;         /**< Received corrected XGEM frames. */
+    uint64_t rx_crc_error;              /**< Received packets with CRC error. */
+    uint64_t rx_fragment_error;         /**< Received fragment errors. */
+    uint64_t rx_packets_dropped;        /**< Global dropped packets. */
+    uint64_t rx_dropped_too_short;      /**< Received packets dropped due to length too short. */
+    uint64_t rx_dropped_too_long;       /**< Received packet dropped due to length too long. */
+    uint64_t rx_key_error;              /**< Received key errors. */
+    uint64_t tx_ploams;                 /**< Transmitted Ploams. */
+    uint64_t rx_ploams_dropped;         /**< Received dropped Ploams. */
+    uint64_t rx_allocations_valid;      /**< Received valid allocations. */
+    uint64_t rx_allocations_invalid;    /**< Received invalid allocations. */
+    uint64_t rx_allocations_disabled;   /**< Received disabled allocations. */
+    uint64_t rx_ploams;                 /**< Received Ploams. */
+    uint64_t rx_ploams_non_idle;        /**< Received non idle Ploams. */
+    uint64_t rx_ploams_error;           /**< Received error Ploams. */
+    uint64_t rx_cpu;                    /**< Received CPU packets. */
+    uint64_t rx_omci;                   /**< Received OMCI packets. */
+    uint64_t rx_omci_packets_crc_error; /**< Received OMCI packets with CRC errors. */
+    uint64_t tx_packets;                /**< Transmitted packets. */
+    uint64_t tx_xgem;                   /**< Transmitted XGEM fragments. */
+    uint64_t tx_cpu;                    /**< Transmitted CPU packets. */
+    uint64_t tx_omci;                   /**< Transmitted OMCI packets. */
+    uint8_t tx_cpu_omci_packets_dropped;    /**< Transmit packets dropped due to illegal length. */
+    uint64_t tx_dropped_illegal_length;     /**< Transmit packets dropped due to illegal length. */
+    uint64_t tx_dropped_tpid_miss;          /**< Transmit packets dropped due to TPID miss. */
+    uint64_t tx_dropped_vid_miss;           /**< Transmit packets droped due to VID miss. */
+} bcmolt_xgpon_ni_stat_data;
+
+/** Transport message definition for "stat" group of "xgpon_ni" object. 
+ */
+typedef struct bcmolt_xgpon_ni_stat
+{
+    bcmolt_stat hdr;                /**< Transport header. */
+    bcmolt_xgpon_ni_key key;        /**< Object key. */
+    bcmolt_xgpon_ni_stat_data data; /**< All properties that must be set by the user. */
+} bcmolt_xgpon_ni_stat;
+
+/** Structure definition for the "stat_cfg" group of the "xgpon_ni" object. 
+ */
+typedef struct bcmolt_xgpon_ni_stat_cfg_data
+{
+    bcmolt_stat_alarm_config cfg;   /**< Statistic alarm configuration. */
+} bcmolt_xgpon_ni_stat_cfg_data;
+
+/** Transport message definition for "stat_cfg" group of "xgpon_ni" object. 
+ */
+typedef struct bcmolt_xgpon_ni_stat_cfg
+{
+    bcmolt_stat_cfg hdr;                /**< Transport header. */
+    bcmolt_xgpon_ni_key key;            /**< Object key. */
+    bcmolt_xgpon_ni_stat_cfg_data data; /**< All properties that must be set by the user. */
+} bcmolt_xgpon_ni_stat_cfg;
+
+/** Transport message definition for "activate_all_onus_completed" group of 
+ * "xgpon_ni" object. 
+ */
+typedef struct bcmolt_xgpon_ni_activate_all_onus_completed
+{
+    bcmolt_auto hdr;            /**< Transport header. */
+    bcmolt_xgpon_ni_key key;    /**< Object key. */
+} bcmolt_xgpon_ni_activate_all_onus_completed;
+
+/** Structure definition for the "cpu_packets_failure" group of the "xgpon_ni" 
+ * object. 
+ *
+ * A failure was encountered during the "cpu_packets" proxy operation. 
+ */
+typedef struct bcmolt_xgpon_ni_cpu_packets_failure_data
+{
+    bcmolt_packet_injection_error error;    /**< The error that was encountered. */
+    bcmolt_xgpon_gem_id gem_port_id;        /**< The GEM port that caused the error. */
+} bcmolt_xgpon_ni_cpu_packets_failure_data;
+
+/** Transport message definition for "cpu_packets_failure" group of "xgpon_ni" 
+ * object. 
+ */
+typedef struct bcmolt_xgpon_ni_cpu_packets_failure
+{
+    bcmolt_auto hdr;            /**< Transport header. */
+    bcmolt_xgpon_ni_key key;    /**< Object key. */
+    bcmolt_xgpon_ni_cpu_packets_failure_data data;  /**< All properties that must be set by the user. */
+} bcmolt_xgpon_ni_cpu_packets_failure;
+
+/** Transport message definition for "deactivate_all_onus_completed" group of 
+ * "xgpon_ni" object. 
+ */
+typedef struct bcmolt_xgpon_ni_deactivate_all_onus_completed
+{
+    bcmolt_auto hdr;            /**< Transport header. */
+    bcmolt_xgpon_ni_key key;    /**< Object key. */
+} bcmolt_xgpon_ni_deactivate_all_onus_completed;
+
+/** Transport message definition for "disable_all_onus_completed" group of 
+ * "xgpon_ni" object. 
+ */
+typedef struct bcmolt_xgpon_ni_disable_all_onus_completed
+{
+    bcmolt_auto hdr;            /**< Transport header. */
+    bcmolt_xgpon_ni_key key;    /**< Object key. */
+} bcmolt_xgpon_ni_disable_all_onus_completed;
+
+/** Transport message definition for "enable_all_onus_completed" group of 
+ * "xgpon_ni" object. 
+ */
+typedef struct bcmolt_xgpon_ni_enable_all_onus_completed
+{
+    bcmolt_auto hdr;            /**< Transport header. */
+    bcmolt_xgpon_ni_key key;    /**< Object key. */
+} bcmolt_xgpon_ni_enable_all_onus_completed;
+
+/** Structure definition for the "los" group of the "xgpon_ni" object. 
+ */
+typedef struct bcmolt_xgpon_ni_los_data
+{
+    bcmolt_status status;   /**< status. */
+} bcmolt_xgpon_ni_los_data;
+
+/** Transport message definition for "los" group of "xgpon_ni" object. 
+ */
+typedef struct bcmolt_xgpon_ni_los
+{
+    bcmolt_auto hdr;                /**< Transport header. */
+    bcmolt_xgpon_ni_key key;        /**< Object key. */
+    bcmolt_xgpon_ni_los_data data;  /**< All properties that must be set by the user. */
+} bcmolt_xgpon_ni_los;
+
+/** Structure definition for the "onu_discovered" group of the "xgpon_ni" 
+ * object. 
+ */
+typedef struct bcmolt_xgpon_ni_onu_discovered_data
+{
+    bcmolt_serial_number serial_number; /**< serial number. */
+    uint32_t ranging_time;              /**< ranging time. */
+    bcmolt_xgpon_onu_id onu_id;         /**< onu_id. */
+    bcmolt_upstream_line_rate_capabilities upstream_line_rate_capabilities; /**< Upstream line rate capabilities */
+    uint8_t current_downstream_pon_id;                  /**< The PON-ID received by the ONU in its current downstream wavelength channel */
+    uint8_t current_upstream_pon_id;                    /**< The PON-ID of the Channel Profile containing the descriptor of the upstream wavelength channel in which the ONU is transmitting */
+#define BCMOLT_XGPON_NI_ONU_DISCOVERED_DATA_CALIBRATION_RECORD_LEN  8
+    bcmolt_arr_calibration_record_8 calibration_record; /**< Calibration record */
+    uint8_t tuning_granularity;             /**< The tuning granularity of the ONU transmitted expressed in units of 1Ghz. Value of 0 indicates that the ONU does not support fine tuning / dithering */
+    uint8_t step_tuning_time;               /**< The value of the tuning time for a single granularity step, expressed in unit of PHY frames. The value 0 indicates that the ONU does not support fine tuning / dithering */
+    uint8_t attenuation;                    /**< The ONU attenuation in steps of 3dB at the time of the message transmission as part of the power levelling report. Value of 0 represents un-attenuated transmission */
+    uint8_t power_levelling_capabilities;   /**< The ONU supports attenuation level in step of 3dB */
+} bcmolt_xgpon_ni_onu_discovered_data;
+
+/** Transport message definition for "onu_discovered" group of "xgpon_ni" 
+ * object. 
+ */
+typedef struct bcmolt_xgpon_ni_onu_discovered
+{
+    bcmolt_auto hdr;            /**< Transport header. */
+    bcmolt_xgpon_ni_key key;    /**< Object key. */
+    bcmolt_xgpon_ni_onu_discovered_data data;   /**< All properties that must be set by the user. */
+} bcmolt_xgpon_ni_onu_discovered;
+
+/** Structure definition for the "onu_upgrade_complete" group of the "xgpon_ni" 
+ * object. 
+ */
+typedef struct bcmolt_xgpon_ni_onu_upgrade_complete_data
+{
+    bcmos_bool status;  /**< Success or failure.  Against entire upgrade process.  This is added per Anat's request. */
+    bcmolt_gpon_onu_upgrade_status_list_u32 list_of_failed_entities;    /**< List of ONU-IDs the upgrade failed for. */
+} bcmolt_xgpon_ni_onu_upgrade_complete_data;
+
+/** Transport message definition for "onu_upgrade_complete" group of "xgpon_ni" 
+ * object. 
+ */
+typedef struct bcmolt_xgpon_ni_onu_upgrade_complete
+{
+    bcmolt_auto hdr;            /**< Transport header. */
+    bcmolt_xgpon_ni_key key;    /**< Object key. */
+    bcmolt_xgpon_ni_onu_upgrade_complete_data data; /**< All properties that must be set by the user. */
+} bcmolt_xgpon_ni_onu_upgrade_complete;
+
+/** Structure definition for the "protection_switching_onus_ranged" group of the 
+ * "xgpon_ni" object. 
+ *
+ * After a switchover is complete and all ONU ranging times have stabilized, 
+ * this indication is sent to inform the host of all new ONU EQDs. 
+ */
+typedef struct bcmolt_xgpon_ni_protection_switching_onus_ranged_data
+{
+    bcmolt_xgpon_onu_eqd_list_u32 onus; /**< ONUs. */
+} bcmolt_xgpon_ni_protection_switching_onus_ranged_data;
+
+/** Transport message definition for "protection_switching_onus_ranged" group of 
+ * "xgpon_ni" object. 
+ */
+typedef struct bcmolt_xgpon_ni_protection_switching_onus_ranged
+{
+    bcmolt_auto hdr;            /**< Transport header. */
+    bcmolt_xgpon_ni_key key;    /**< Object key. */
+    bcmolt_xgpon_ni_protection_switching_onus_ranged_data data; /**< All properties that must be set by the user. */
+} bcmolt_xgpon_ni_protection_switching_onus_ranged;
+
+/** Structure definition for the "protection_switching_switchover_completed" 
+ * group of the "xgpon_ni" object. 
+ */
+typedef struct bcmolt_xgpon_ni_protection_switching_switchover_completed_data
+{
+    bcmolt_result result;   /**< Result. */
+} bcmolt_xgpon_ni_protection_switching_switchover_completed_data;
+
+/** Transport message definition for "protection_switching_switchover_completed" 
+ * group of "xgpon_ni" object. 
+ */
+typedef struct bcmolt_xgpon_ni_protection_switching_switchover_completed
+{
+    bcmolt_auto hdr;            /**< Transport header. */
+    bcmolt_xgpon_ni_key key;    /**< Object key. */
+    bcmolt_xgpon_ni_protection_switching_switchover_completed_data data;    /**< All properties that must be set by the user. */
+} bcmolt_xgpon_ni_protection_switching_switchover_completed;
+
+/** Structure definition for the "protection_switching_traffic_resume" group of 
+ * the "xgpon_ni" object. 
+ */
+typedef struct bcmolt_xgpon_ni_protection_switching_traffic_resume_data
+{
+    bcmolt_traffic_resume_result result;    /**< Result. */
+} bcmolt_xgpon_ni_protection_switching_traffic_resume_data;
+
+/** Transport message definition for "protection_switching_traffic_resume" group 
+ * of "xgpon_ni" object. 
+ */
+typedef struct bcmolt_xgpon_ni_protection_switching_traffic_resume
+{
+    bcmolt_auto hdr;            /**< Transport header. */
+    bcmolt_xgpon_ni_key key;    /**< Object key. */
+    bcmolt_xgpon_ni_protection_switching_traffic_resume_data data;  /**< All properties that must be set by the user. */
+} bcmolt_xgpon_ni_protection_switching_traffic_resume;
+
+/** Structure definition for the "rogue_detection_completed" group of the 
+ * "xgpon_ni" object. 
+ */
+typedef struct bcmolt_xgpon_ni_rogue_detection_completed_data
+{
+    bcmolt_rogue_detection_window window_type;          /**< Silent Window or Cut off Window */
+    bcmolt_rogue_measurement_result measurement_status; /**< Status of the rogue ONU detection result. */
+    bcmolt_xgpon_alloc_id alloc_id;                     /**< Alloc-ID */
+    bcmolt_xgpon_onu_id onu_id;                 /**< ONU-ID */
+    bcmos_bool is_delineation;                  /**< Burst Delineation detected during the rogue ONU detection. */
+    bcmos_bool is_ed;                           /**< Is ED. */
+    bcmolt_u8_list_u32 rx_data;                 /**< Captured PLOAMu message if the burst delinieation was detected. */
+    bcmolt_xgpon_onu_id ploam_received_onu_id;  /**< ONU ID received in the ploam */
+    bcmos_bool ploam_received_mic_error;        /**< Mic error in the received ploam */
+} bcmolt_xgpon_ni_rogue_detection_completed_data;
+
+/** Transport message definition for "rogue_detection_completed" group of 
+ * "xgpon_ni" object. 
+ */
+typedef struct bcmolt_xgpon_ni_rogue_detection_completed
+{
+    bcmolt_auto hdr;            /**< Transport header. */
+    bcmolt_xgpon_ni_key key;    /**< Object key. */
+    bcmolt_xgpon_ni_rogue_detection_completed_data data;    /**< All properties that must be set by the user. */
+} bcmolt_xgpon_ni_rogue_detection_completed;
+
+/** Transport message definition for "rogue_onu_special_map_cycle_start" group 
+ * of "xgpon_ni" object. 
+ */
+typedef struct bcmolt_xgpon_ni_rogue_onu_special_map_cycle_start
+{
+    bcmolt_auto hdr;            /**< Transport header. */
+    bcmolt_xgpon_ni_key key;    /**< Object key. */
+} bcmolt_xgpon_ni_rogue_onu_special_map_cycle_start;
+
+/** Transport message definition for "serial_number_acquisition_cycle_start" 
+ * group of "xgpon_ni" object. 
+ */
+typedef struct bcmolt_xgpon_ni_serial_number_acquisition_cycle_start
+{
+    bcmolt_auto hdr;            /**< Transport header. */
+    bcmolt_xgpon_ni_key key;    /**< Object key. */
+} bcmolt_xgpon_ni_serial_number_acquisition_cycle_start;
+
+/** Structure definition for the "standby_pon_monitoring_cycle_completed" group 
+ * of the "xgpon_ni" object. 
+ */
+typedef struct bcmolt_xgpon_ni_standby_pon_monitoring_cycle_completed_data
+{
+    uint32_t number_of_detected_delimiter;  /**< number of detected delimiter. */
+    bcmolt_status energy_detect_signal;     /**< energy detect signal. */
+} bcmolt_xgpon_ni_standby_pon_monitoring_cycle_completed_data;
+
+/** Transport message definition for "standby_pon_monitoring_cycle_completed" 
+ * group of "xgpon_ni" object. 
+ */
+typedef struct bcmolt_xgpon_ni_standby_pon_monitoring_cycle_completed
+{
+    bcmolt_auto hdr;            /**< Transport header. */
+    bcmolt_xgpon_ni_key key;    /**< Object key. */
+    bcmolt_xgpon_ni_standby_pon_monitoring_cycle_completed_data data;   /**< All properties that must be set by the user. */
+} bcmolt_xgpon_ni_standby_pon_monitoring_cycle_completed;
+
+/** Structure definition for the "stat_alarm_cleared" group of the "xgpon_ni" 
+ * object. 
+ *
+ * Sent when a configured statistic alarm condition is no longer met. 
+ */
+typedef struct bcmolt_xgpon_ni_stat_alarm_cleared_data
+{
+    bcmolt_xgpon_ni_stat_id stat;   /**< Statistic identifier. */
+} bcmolt_xgpon_ni_stat_alarm_cleared_data;
+
+/** Transport message definition for "stat_alarm_cleared" group of "xgpon_ni" 
+ * object. 
+ */
+typedef struct bcmolt_xgpon_ni_stat_alarm_cleared
+{
+    bcmolt_auto hdr;            /**< Transport header. */
+    bcmolt_xgpon_ni_key key;    /**< Object key. */
+    bcmolt_xgpon_ni_stat_alarm_cleared_data data;   /**< All properties that must be set by the user. */
+} bcmolt_xgpon_ni_stat_alarm_cleared;
+
+/** Structure definition for the "stat_alarm_raised" group of the "xgpon_ni" 
+ * object. 
+ *
+ * Sent when a configured statistic alarm condition has been met. 
+ */
+typedef struct bcmolt_xgpon_ni_stat_alarm_raised_data
+{
+    bcmolt_xgpon_ni_stat_id stat;   /**< Statistic identifier. */
+} bcmolt_xgpon_ni_stat_alarm_raised_data;
+
+/** Transport message definition for "stat_alarm_raised" group of "xgpon_ni" 
+ * object. 
+ */
+typedef struct bcmolt_xgpon_ni_stat_alarm_raised
+{
+    bcmolt_auto hdr;            /**< Transport header. */
+    bcmolt_xgpon_ni_key key;    /**< Object key. */
+    bcmolt_xgpon_ni_stat_alarm_raised_data data;    /**< All properties that must be set by the user. */
+} bcmolt_xgpon_ni_stat_alarm_raised;
+
+/** Structure definition for the "state_change_completed" group of the 
+ * "xgpon_ni" object. 
+ */
+typedef struct bcmolt_xgpon_ni_state_change_completed_data
+{
+    bcmolt_result result;               /**< Result. */
+    bcmolt_pon_state previous_state;    /**< Previous state. */
+    bcmolt_pon_state new_state;         /**< new state. */
+} bcmolt_xgpon_ni_state_change_completed_data;
+
+/** Transport message definition for "state_change_completed" group of 
+ * "xgpon_ni" object. 
+ */
+typedef struct bcmolt_xgpon_ni_state_change_completed
+{
+    bcmolt_auto hdr;            /**< Transport header. */
+    bcmolt_xgpon_ni_key key;    /**< Object key. */
+    bcmolt_xgpon_ni_state_change_completed_data data;   /**< All properties that must be set by the user. */
+} bcmolt_xgpon_ni_state_change_completed;
+
+/** Structure definition for the "tod_request_completed" group of the "xgpon_ni" 
+ * object. 
+ */
+typedef struct bcmolt_xgpon_ni_tod_request_completed_data
+{
+    bcmolt_str_64 tod_string;   /**< tod_string. */
+    uint64_t sfc;               /**< sfc. */
+    uint64_t rtc_offset_sec;    /**< rtc_offset_sec. */
+    uint32_t rtc_offset_nsec;   /**< rtc_offset_nsec. */
+    bcmolt_result status;       /**< status. */
+} bcmolt_xgpon_ni_tod_request_completed_data;
+
+/** Transport message definition for "tod_request_completed" group of "xgpon_ni" 
+ * object. 
+ */
+typedef struct bcmolt_xgpon_ni_tod_request_completed
+{
+    bcmolt_auto hdr;            /**< Transport header. */
+    bcmolt_xgpon_ni_key key;    /**< Object key. */
+    bcmolt_xgpon_ni_tod_request_completed_data data;    /**< All properties that must be set by the user. */
+} bcmolt_xgpon_ni_tod_request_completed;
+
+/** Structure definition for the "auto_cfg" group of the "xgpon_ni" object. 
+ */
+typedef struct bcmolt_xgpon_ni_auto_cfg_data
+{
+    bcmos_bool activate_all_onus_completed;     /**< If true, indications of type "activate_all_onus_completed" will be generated. */
+    bcmos_bool cpu_packets_failure;             /**< If true, indications of type "cpu_packets_failure" will be generated. */
+    bcmos_bool deactivate_all_onus_completed;   /**< If true, indications of type "deactivate_all_onus_completed" will be generated. */
+    bcmos_bool disable_all_onus_completed;      /**< If true, indications of type "disable_all_onus_completed" will be generated. */
+    bcmos_bool enable_all_onus_completed;       /**< If true, indications of type "enable_all_onus_completed" will be generated. */
+    bcmos_bool los;                     /**< If true, indications of type "los" will be generated. */
+    bcmos_bool onu_discovered;          /**< If true, indications of type "onu_discovered" will be generated. */
+    bcmos_bool onu_upgrade_complete;    /**< If true, indications of type "onu_upgrade_complete" will be generated. */
+    bcmos_bool protection_switching_onus_ranged;            /**< If true, indications of type "protection_switching_onus_ranged" will be generated. */
+    bcmos_bool protection_switching_switchover_completed;   /**< If true, indications of type "protection_switching_switchover_completed" will be generated. */
+    bcmos_bool protection_switching_traffic_resume;         /**< If true, indications of type "protection_switching_traffic_resume" will be generated. */
+    bcmos_bool rogue_detection_completed;                   /**< If true, indications of type "rogue_detection_completed" will be generated. */
+    bcmos_bool rogue_onu_special_map_cycle_start;           /**< If true, indications of type "rogue_onu_special_map_cycle_start" will be generated. */
+    bcmos_bool serial_number_acquisition_cycle_start;       /**< If true, indications of type "serial_number_acquisition_cycle_start" will be generated. */
+    bcmos_bool standby_pon_monitoring_cycle_completed;      /**< If true, indications of type "standby_pon_monitoring_cycle_completed" will be generated. */
+    bcmos_bool stat_alarm_cleared;      /**< If true, indications of type "stat_alarm_cleared" will be generated. */
+    bcmos_bool stat_alarm_raised;       /**< If true, indications of type "stat_alarm_raised" will be generated. */
+    bcmos_bool state_change_completed;  /**< If true, indications of type "state_change_completed" will be generated. */
+    bcmos_bool tod_request_completed;   /**< If true, indications of type "tod_request_completed" will be generated. */
+} bcmolt_xgpon_ni_auto_cfg_data;
+
+/** Transport message definition for "auto_cfg" group of "xgpon_ni" object. 
+ */
+typedef struct bcmolt_xgpon_ni_auto_cfg
+{
+    bcmolt_auto_cfg hdr;                /**< Transport header. */
+    bcmolt_xgpon_ni_key key;            /**< Object key. */
+    bcmolt_xgpon_ni_auto_cfg_data data; /**< All properties that must be set by the user. */
+} bcmolt_xgpon_ni_auto_cfg;
+
+/** Structure definition for the "adjust_tx_wavelength" group of the "xgpon_ni" 
+ * object. 
+ *
+ * Instruct an unassigned ONU to adjust its upstream transmitter wavelength 
+ */
+typedef struct bcmolt_xgpon_ni_adjust_tx_wavelength_data
+{
+    bcmolt_serial_number serial_number; /**< Serial number */
+    bcmolt_frequency_adjustment_direction freqency_adjustment_direction;    /**< Frequency adjustment direction */
+    uint8_t frequency_adjustment_size;  /**< The size of the frequncy adjustment in units of 0.1 Ghz */
+} bcmolt_xgpon_ni_adjust_tx_wavelength_data;
+
+/** Transport message definition for "adjust_tx_wavelength" group of "xgpon_ni" 
+ * object. 
+ */
+typedef struct bcmolt_xgpon_ni_adjust_tx_wavelength
+{
+    bcmolt_oper hdr;            /**< Transport header. */
+    bcmolt_xgpon_ni_key key;    /**< Object key. */
+    bcmolt_xgpon_ni_adjust_tx_wavelength_data data; /**< All properties that must be set by the user. */
+} bcmolt_xgpon_ni_adjust_tx_wavelength;
+
+/** Structure definition for the "disable_serial_number" group of the "xgpon_ni" 
+ * object. 
+ */
+typedef struct bcmolt_xgpon_ni_disable_serial_number_data
+{
+    bcmolt_disable_serial_number_control control;   /**< control. */
+    bcmolt_serial_number serial_number;             /**< serial number. */
+} bcmolt_xgpon_ni_disable_serial_number_data;
+
+/** Transport message definition for "disable_serial_number" group of "xgpon_ni" 
+ * object. 
+ */
+typedef struct bcmolt_xgpon_ni_disable_serial_number
+{
+    bcmolt_oper hdr;            /**< Transport header. */
+    bcmolt_xgpon_ni_key key;    /**< Object key. */
+    bcmolt_xgpon_ni_disable_serial_number_data data;    /**< All properties that must be set by the user. */
+} bcmolt_xgpon_ni_disable_serial_number;
+
+/** Transport message definition for "reset" group of "xgpon_ni" object. 
+ */
+typedef struct bcmolt_xgpon_ni_reset
+{
+    bcmolt_oper hdr;            /**< Transport header. */
+    bcmolt_xgpon_ni_key key;    /**< Object key. */
+} bcmolt_xgpon_ni_reset;
+
+/** Structure definition for the "rogue_detection_window" group of the 
+ * "xgpon_ni" object. 
+ */
+typedef struct bcmolt_xgpon_ni_rogue_detection_window_data
+{
+    bcmolt_rogue_detection_window window_type;  /**< Type of silent measurement to execute */
+    bcmolt_xgpon_alloc_id alloc_id;             /**< ALLOC ID to scan */
+    bcmolt_xgpon_onu_id onu_id;                 /**< ONU ID to scan */
+    bcmos_bool second_ranging_window;           /**< Not currently supported */
+} bcmolt_xgpon_ni_rogue_detection_window_data;
+
+/** Transport message definition for "rogue_detection_window" group of 
+ * "xgpon_ni" object. 
+ */
+typedef struct bcmolt_xgpon_ni_rogue_detection_window
+{
+    bcmolt_oper hdr;            /**< Transport header. */
+    bcmolt_xgpon_ni_key key;    /**< Object key. */
+    bcmolt_xgpon_ni_rogue_detection_window_data data;   /**< All properties that must be set by the user. */
+} bcmolt_xgpon_ni_rogue_detection_window;
+
+/** Structure definition for the "run_special_bw_map" group of the "xgpon_ni" 
+ * object. 
+ */
+typedef struct bcmolt_xgpon_ni_run_special_bw_map_data
+{
+    uint8_t number_of_cycle;    /**< number of cycle. */
+    uint8_t allocation_number;  /**< allocation number. */
+    uint8_t bw_map_array;       /**< bw map array. */
+} bcmolt_xgpon_ni_run_special_bw_map_data;
+
+/** Transport message definition for "run_special_bw_map" group of "xgpon_ni" 
+ * object. 
+ */
+typedef struct bcmolt_xgpon_ni_run_special_bw_map
+{
+    bcmolt_oper hdr;            /**< Transport header. */
+    bcmolt_xgpon_ni_key key;    /**< Object key. */
+    bcmolt_xgpon_ni_run_special_bw_map_data data;   /**< All properties that must be set by the user. */
+} bcmolt_xgpon_ni_run_special_bw_map;
+
+/** Structure definition for the "set_onu_state" group of the "xgpon_ni" object. 
+ *
+ * Set the operation state of all ONUs. 
+ */
+typedef struct bcmolt_xgpon_ni_set_onu_state_data
+{
+    bcmolt_onu_operation onu_state; /**< New operation state of all ONUs.  The default operation may be configured by the XGPON NI configuration object : xgpon_ni.cfg.sn_acquisition. */
+} bcmolt_xgpon_ni_set_onu_state_data;
+
+/** Transport message definition for "set_onu_state" group of "xgpon_ni" object. 
+ */
+typedef struct bcmolt_xgpon_ni_set_onu_state
+{
+    bcmolt_oper hdr;            /**< Transport header. */
+    bcmolt_xgpon_ni_key key;    /**< Object key. */
+    bcmolt_xgpon_ni_set_onu_state_data data;    /**< All properties that must be set by the user. */
+} bcmolt_xgpon_ni_set_onu_state;
+
+/** Structure definition for the "set_pon_state" group of the "xgpon_ni" object. 
+ */
+typedef struct bcmolt_xgpon_ni_set_pon_state_data
+{
+    bcmolt_pon_operation pon_state; /**< PON state. */
+} bcmolt_xgpon_ni_set_pon_state_data;
+
+/** Transport message definition for "set_pon_state" group of "xgpon_ni" object. 
+ */
+typedef struct bcmolt_xgpon_ni_set_pon_state
+{
+    bcmolt_oper hdr;            /**< Transport header. */
+    bcmolt_xgpon_ni_key key;    /**< Object key. */
+    bcmolt_xgpon_ni_set_pon_state_data data;    /**< All properties that must be set by the user. */
+} bcmolt_xgpon_ni_set_pon_state;
+
+/** Transport message definition for "single_request_standby_pon_monitoring" 
+ * group of "xgpon_ni" object. 
+ */
+typedef struct bcmolt_xgpon_ni_single_request_standby_pon_monitoring
+{
+    bcmolt_oper hdr;            /**< Transport header. */
+    bcmolt_xgpon_ni_key key;    /**< Object key. */
+} bcmolt_xgpon_ni_single_request_standby_pon_monitoring;
+
+/** Structure definition for the "start_onu_upgrade" group of the "xgpon_ni" 
+ * object. 
+ *
+ * OLT to ONU firmware transfer 
+ */
+typedef struct bcmolt_xgpon_ni_start_onu_upgrade_data
+{
+    bcmolt_pon_onu_id_list_u32 list_of_onu_ids; /**< List of ONU IDs to upgrade the firmware. */
+} bcmolt_xgpon_ni_start_onu_upgrade_data;
+
+/** Transport message definition for "start_onu_upgrade" group of "xgpon_ni" 
+ * object. 
+ */
+typedef struct bcmolt_xgpon_ni_start_onu_upgrade
+{
+    bcmolt_oper hdr;            /**< Transport header. */
+    bcmolt_xgpon_ni_key key;    /**< Object key. */
+    bcmolt_xgpon_ni_start_onu_upgrade_data data;    /**< All properties that must be set by the user. */
+} bcmolt_xgpon_ni_start_onu_upgrade;
+
+/** Transport message definition for "tod_request" group of "xgpon_ni" object. 
+ */
+typedef struct bcmolt_xgpon_ni_tod_request
+{
+    bcmolt_oper hdr;            /**< Transport header. */
+    bcmolt_xgpon_ni_key key;    /**< Object key. */
+} bcmolt_xgpon_ni_tod_request;
+
+/** Structure definition for the "broadcast_ploam_packet" group of the 
+ * "xgpon_ni" object. 
+ */
+typedef struct bcmolt_xgpon_ni_broadcast_ploam_packet_data
+{
+#define BCMOLT_XGPON_NI_BROADCAST_PLOAM_PACKET_DATA_PLOAM_LEN   40
+    bcmolt_arr_u8_40 ploam; /**< ploam. */
+} bcmolt_xgpon_ni_broadcast_ploam_packet_data;
+
+/** Transport message definition for "broadcast_ploam_packet" group of 
+ * "xgpon_ni" object. 
+ */
+typedef struct bcmolt_xgpon_ni_broadcast_ploam_packet
+{
+    bcmolt_proxy hdr;           /**< Transport header. */
+    bcmolt_xgpon_ni_key key;    /**< Object key. */
+    bcmolt_xgpon_ni_broadcast_ploam_packet_data data;   /**< All properties that must be set by the user. */
+} bcmolt_xgpon_ni_broadcast_ploam_packet;
+
+/** Structure definition for the "cpu_packets" group of the "xgpon_ni" object. 
+ */
+typedef struct bcmolt_xgpon_ni_cpu_packets_data
+{
+    bcmolt_packet_type packet_type;                     /**< packet type. */
+    bcmos_bool calc_crc;                                /**< calc crc. */
+    bcmolt_xgpon_gem_id_list_u8_max_16 gem_port_list;   /**< gem port list. */
+    bcmolt_u8_list_u32_max_2048 buffer;                 /**< buffer. */
+} bcmolt_xgpon_ni_cpu_packets_data;
+
+/** Transport message definition for "cpu_packets" group of "xgpon_ni" object. 
+ */
+typedef struct bcmolt_xgpon_ni_cpu_packets
+{
+    bcmolt_proxy hdr;                       /**< Transport header. */
+    bcmolt_xgpon_ni_key key;                /**< Object key. */
+    bcmolt_xgpon_ni_cpu_packets_data data;  /**< All properties that must be set by the user. */
+} bcmolt_xgpon_ni_cpu_packets;
+
+/** Structure definition for the "key" group of the "xgpon_onu" object. 
+ */
+typedef struct bcmolt_xgpon_onu_key
+{
+    bcmolt_xgpon_ni pon_ni;     /**< PON network interface. */
+    bcmolt_xgpon_onu_id onu_id; /**< onu id. */
+} bcmolt_xgpon_onu_key;
+
+/** Structure definition for the "cfg" group of the "xgpon_onu" object. 
+ */
+typedef struct bcmolt_xgpon_onu_cfg_data
+{
+    bcmolt_onu_state onu_state;     /**< Current ONU state */
+    bcmolt_onu_state onu_old_state; /**< onu old state. */
+    bcmolt_xgpon_onu_alarm_state alarm_state;   /**< State of all ONU alarms.  This is normally read-only and can only be written when the PON is in active-standby mode to keep the ONU in sync. */
+    bcmolt_xgpon_onu_registration_keys registration_encryption_keys;    /**< AES encryption keys learned during ONU registration.  This is normally read-only and can only be written when the PON is in active-standby mode to keep the ONU in sync. */
+    bcmolt_xgpon_onu_aes_key current_encryption_key;                    /**< Current AES encryption key.  This is normally read-only and can only be written when the PON is in active-standby mode to keep the ONU in sync. */
+    bcmolt_serial_number serial_number;                 /**< ONU serial number */
+#define BCMOLT_XGPON_ONU_CFG_DATA_REGISTRATION_ID_LEN   36
+    bcmolt_arr_u8_36 registration_id;                   /**< ONU registration ID */
+    bcmos_bool registration_id_auto_learning;           /**< Enable\Disable automatic registration learning */
+    bcmolt_burst_profile_index ranging_burst_profile;   /**< Burst profile index for ranging allocations */
+    bcmolt_burst_profile_index data_burst_profile;      /**< Burst profile index for data allocations */
+    uint32_t ranging_time;                  /**< ONU ranging time.  This is normally read-only and can only be written when the PON is in active-standby mode to keep the ONU in sync. */
+    bcmolt_status disabled_after_discovery; /**< This ONU was disabled after SN discovery */
+    bcmolt_deactivation_reason deactivation_reason;                     /**< deactivation reason. */
+    bcmolt_xgpon_gem_port_with_state_list_u16_max_256 all_gem_ports;    /**< All unicast GEM ports currently provisioned on this ONU. */
+    bcmolt_xgpon_alloc_with_state_list_u16_max_32 all_allocs;           /**< All alloc IDs currently provisioned on this ONU. */
+    bcmolt_extended_guard_time extended_guard_time;                     /**< Additional guard time (in bytes) for this ONU. */
+    bcmolt_upstream_line_rate_capabilities us_line_rate;                /**< US line rate. */
+#define BCMOLT_XGPON_ONU_CFG_DATA_CALIBRATION_RECORD_LEN    8
+    bcmolt_arr_calibration_record_8 calibration_record;                 /**< Calibration record. */
+    uint8_t tuning_granularity;             /**< The tuning granularity of the ONU transmitted expressed in units of 1GHz. Value of 0 indicates that the ONU does not support fine tuning/dithering */
+    uint8_t step_tuning_time;               /**< The value of the tuning time for a single granularity step, expressed in units of PHY frames. */
+    uint8_t power_levelling_capabilities;   /**< Power levelling capabilities. */
+    bcmolt_request_registration_status request_registration_status; /**< This value indicate that the onu is in the middle of request registration process */
+} bcmolt_xgpon_onu_cfg_data;
+
+/** Transport message definition for "cfg" group of "xgpon_onu" object. 
+ */
+typedef struct bcmolt_xgpon_onu_cfg
+{
+    bcmolt_cfg hdr;                 /**< Transport header. */
+    bcmolt_xgpon_onu_key key;       /**< Object key. */
+    bcmolt_xgpon_onu_cfg_data data; /**< All properties that must be set by the user. */
+} bcmolt_xgpon_onu_cfg;
+
+/** Structure definition for the "stat" group of the "xgpon_onu" object. 
+ */
+typedef struct bcmolt_xgpon_onu_stat_data
+{
+    uint64_t positive_drift;            /**< positive drift. */
+    uint64_t negative_drift;            /**< negative drift. */
+    uint64_t delimiter_miss_detection;  /**< delimiter miss detection. */
+    uint64_t bip32_errors;              /**< bip32 errors. */
+    uint64_t rx_words;                  /**< Number of 4-byte words received (word size is 4 bytes regardless of upstream data rate). */
+    uint64_t fec_corrected_symbols;     /**< fec corrected symbols. */
+    uint64_t fec_corrected_codewords;   /**< fec corrected codewords. */
+    uint64_t fec_uncorrectable_codewords;   /**< fec uncorrectable codewords. */
+    uint64_t fec_codewords;                 /**< fec total codewords. */
+    uint64_t fec_corrected_bits;            /**< fec corrected bits. */
+    uint64_t xgem_key_errors;               /**< xgem key error. */
+    uint64_t xgem_loss;                     /**< xgem loss . */
+    uint64_t rx_ploams_mic_error;           /**< mic error ploam. */
+    uint64_t rx_ploams_non_idle;            /**< non idle ploam. */
+    uint64_t rx_omci;                       /**< Received OMCI packets. */
+    uint64_t rx_omci_packets_crc_error;     /**< Received OMCI packets with CRC errors. */
+    uint64_t rx_bytes;                      /**< rx bytes. */
+    uint64_t rx_packets;                    /**< rx packets. */
+    uint64_t tx_bytes;                      /**< tx bytes. */
+    uint64_t tx_packets;                    /**< tx packets. */
+} bcmolt_xgpon_onu_stat_data;
+
+/** Transport message definition for "stat" group of "xgpon_onu" object. 
+ */
+typedef struct bcmolt_xgpon_onu_stat
+{
+    bcmolt_stat hdr;                    /**< Transport header. */
+    bcmolt_xgpon_onu_key key;           /**< Object key. */
+    bcmolt_xgpon_onu_stat_data data;    /**< All properties that must be set by the user. */
+} bcmolt_xgpon_onu_stat;
+
+/** Structure definition for the "stat_cfg" group of the "xgpon_onu" object. 
+ */
+typedef struct bcmolt_xgpon_onu_stat_cfg_data
+{
+    bcmolt_stat_alarm_config cfg;   /**< Statistic alarm configuration. */
+} bcmolt_xgpon_onu_stat_cfg_data;
+
+/** Transport message definition for "stat_cfg" group of "xgpon_onu" object. 
+ */
+typedef struct bcmolt_xgpon_onu_stat_cfg
+{
+    bcmolt_stat_cfg hdr;                    /**< Transport header. */
+    bcmolt_xgpon_onu_key key;               /**< Object key. */
+    bcmolt_xgpon_onu_stat_cfg_data data;    /**< All properties that must be set by the user. */
+} bcmolt_xgpon_onu_stat_cfg;
+
+/** Structure definition for the "dfi" group of the "xgpon_onu" object. 
+ */
+typedef struct bcmolt_xgpon_onu_dfi_data
+{
+    bcmolt_status alarm_status; /**< alarm status. */
+} bcmolt_xgpon_onu_dfi_data;
+
+/** Transport message definition for "dfi" group of "xgpon_onu" object. 
+ */
+typedef struct bcmolt_xgpon_onu_dfi
+{
+    bcmolt_auto hdr;                /**< Transport header. */
+    bcmolt_xgpon_onu_key key;       /**< Object key. */
+    bcmolt_xgpon_onu_dfi_data data; /**< All properties that must be set by the user. */
+} bcmolt_xgpon_onu_dfi;
+
+/** Structure definition for the "dgi" group of the "xgpon_onu" object. 
+ */
+typedef struct bcmolt_xgpon_onu_dgi_data
+{
+    bcmolt_status alarm_status; /**< alarm status. */
+} bcmolt_xgpon_onu_dgi_data;
+
+/** Transport message definition for "dgi" group of "xgpon_onu" object. 
+ */
+typedef struct bcmolt_xgpon_onu_dgi
+{
+    bcmolt_auto hdr;                /**< Transport header. */
+    bcmolt_xgpon_onu_key key;       /**< Object key. */
+    bcmolt_xgpon_onu_dgi_data data; /**< All properties that must be set by the user. */
+} bcmolt_xgpon_onu_dgi;
+
+/** Structure definition for the "dowi" group of the "xgpon_onu" object. 
+ */
+typedef struct bcmolt_xgpon_onu_dowi_data
+{
+    bcmolt_status alarm_status; /**< Alarm status. */
+    int32_t drift_value;        /**< Calculated amount of drift (positive + negative as a signed value). */
+    uint32_t new_eqd;           /**< New EQD after drift is corrected (only valid if status is 'on'). */
+} bcmolt_xgpon_onu_dowi_data;
+
+/** Transport message definition for "dowi" group of "xgpon_onu" object. 
+ */
+typedef struct bcmolt_xgpon_onu_dowi
+{
+    bcmolt_auto hdr;                    /**< Transport header. */
+    bcmolt_xgpon_onu_key key;           /**< Object key. */
+    bcmolt_xgpon_onu_dowi_data data;    /**< All properties that must be set by the user. */
+} bcmolt_xgpon_onu_dowi;
+
+/** Structure definition for the "invalid_dbru_report" group of the "xgpon_onu" 
+ * object. 
+ */
+typedef struct bcmolt_xgpon_onu_invalid_dbru_report_data
+{
+    bcmolt_xgpon_alloc_id alloc_id; /**< Alloc-ID. */
+} bcmolt_xgpon_onu_invalid_dbru_report_data;
+
+/** Transport message definition for "invalid_dbru_report" group of "xgpon_onu" 
+ * object. 
+ */
+typedef struct bcmolt_xgpon_onu_invalid_dbru_report
+{
+    bcmolt_auto hdr;            /**< Transport header. */
+    bcmolt_xgpon_onu_key key;   /**< Object key. */
+    bcmolt_xgpon_onu_invalid_dbru_report_data data; /**< All properties that must be set by the user. */
+} bcmolt_xgpon_onu_invalid_dbru_report;
+
+/** Structure definition for the "key_exchange_completed" group of the 
+ * "xgpon_onu" object. 
+ */
+typedef struct bcmolt_xgpon_onu_key_exchange_completed_data
+{
+    bcmolt_xgpon_onu_aes_key new_key;   /**< new key. */
+} bcmolt_xgpon_onu_key_exchange_completed_data;
+
+/** Transport message definition for "key_exchange_completed" group of 
+ * "xgpon_onu" object. 
+ */
+typedef struct bcmolt_xgpon_onu_key_exchange_completed
+{
+    bcmolt_auto hdr;            /**< Transport header. */
+    bcmolt_xgpon_onu_key key;   /**< Object key. */
+    bcmolt_xgpon_onu_key_exchange_completed_data data;  /**< All properties that must be set by the user. */
+} bcmolt_xgpon_onu_key_exchange_completed;
+
+/** Transport message definition for "key_exchange_cycle_skipped" group of 
+ * "xgpon_onu" object. 
+ */
+typedef struct bcmolt_xgpon_onu_key_exchange_cycle_skipped
+{
+    bcmolt_auto hdr;            /**< Transport header. */
+    bcmolt_xgpon_onu_key key;   /**< Object key. */
+} bcmolt_xgpon_onu_key_exchange_cycle_skipped;
+
+/** Structure definition for the "key_exchange_key_mismatch" group of the 
+ * "xgpon_onu" object. 
+ */
+typedef struct bcmolt_xgpon_onu_key_exchange_key_mismatch_data
+{
+    bcmolt_aes_key expected_key;    /**< expected key. */
+    bcmolt_aes_key received_key;    /**< received key. */
+} bcmolt_xgpon_onu_key_exchange_key_mismatch_data;
+
+/** Transport message definition for "key_exchange_key_mismatch" group of 
+ * "xgpon_onu" object. 
+ */
+typedef struct bcmolt_xgpon_onu_key_exchange_key_mismatch
+{
+    bcmolt_auto hdr;            /**< Transport header. */
+    bcmolt_xgpon_onu_key key;   /**< Object key. */
+    bcmolt_xgpon_onu_key_exchange_key_mismatch_data data;   /**< All properties that must be set by the user. */
+} bcmolt_xgpon_onu_key_exchange_key_mismatch;
+
+/** Transport message definition for "key_exchange_key_request_timeout" group of 
+ * "xgpon_onu" object. 
+ */
+typedef struct bcmolt_xgpon_onu_key_exchange_key_request_timeout
+{
+    bcmolt_auto hdr;            /**< Transport header. */
+    bcmolt_xgpon_onu_key key;   /**< Object key. */
+} bcmolt_xgpon_onu_key_exchange_key_request_timeout;
+
+/** Structure definition for the "looci" group of the "xgpon_onu" object. 
+ */
+typedef struct bcmolt_xgpon_onu_looci_data
+{
+    bcmolt_status alarm_status; /**< alarm status. */
+} bcmolt_xgpon_onu_looci_data;
+
+/** Transport message definition for "looci" group of "xgpon_onu" object. 
+ */
+typedef struct bcmolt_xgpon_onu_looci
+{
+    bcmolt_auto hdr;                    /**< Transport header. */
+    bcmolt_xgpon_onu_key key;           /**< Object key. */
+    bcmolt_xgpon_onu_looci_data data;   /**< All properties that must be set by the user. */
+} bcmolt_xgpon_onu_looci;
+
+/** Structure definition for the "onu_activation_completed" group of the 
+ * "xgpon_onu" object. 
+ */
+typedef struct bcmolt_xgpon_onu_onu_activation_completed_data
+{
+    bcmolt_result status;   /**< status. */
+    bcmolt_activation_fail_reason fail_reason;  /**< fail reason. */
+#define BCMOLT_XGPON_ONU_ONU_ACTIVATION_COMPLETED_DATA_REGISTRATION_ID_LEN  36
+    bcmolt_arr_u8_36 registration_id;           /**< registration id. */
+    bcmolt_xgpon_onu_registration_keys registration_encryption_keys;    /**< registration encryption keys. */
+} bcmolt_xgpon_onu_onu_activation_completed_data;
+
+/** Transport message definition for "onu_activation_completed" group of 
+ * "xgpon_onu" object. 
+ */
+typedef struct bcmolt_xgpon_onu_onu_activation_completed
+{
+    bcmolt_auto hdr;            /**< Transport header. */
+    bcmolt_xgpon_onu_key key;   /**< Object key. */
+    bcmolt_xgpon_onu_onu_activation_completed_data data;    /**< All properties that must be set by the user. */
+} bcmolt_xgpon_onu_onu_activation_completed;
+
+/** Structure definition for the "onu_alarm" group of the "xgpon_onu" object. 
+ */
+typedef struct bcmolt_xgpon_onu_onu_alarm_data
+{
+    bcmolt_xgpon_onu_alarms onu_alarm;  /**< onu alarm. */
+} bcmolt_xgpon_onu_onu_alarm_data;
+
+/** Transport message definition for "onu_alarm" group of "xgpon_onu" object. 
+ */
+typedef struct bcmolt_xgpon_onu_onu_alarm
+{
+    bcmolt_auto hdr;                        /**< Transport header. */
+    bcmolt_xgpon_onu_key key;               /**< Object key. */
+    bcmolt_xgpon_onu_onu_alarm_data data;   /**< All properties that must be set by the user. */
+} bcmolt_xgpon_onu_onu_alarm;
+
+/** Structure definition for the "onu_deactivation_completed" group of the 
+ * "xgpon_onu" object. 
+ */
+typedef struct bcmolt_xgpon_onu_onu_deactivation_completed_data
+{
+    bcmolt_result status;   /**< Status. */
+} bcmolt_xgpon_onu_onu_deactivation_completed_data;
+
+/** Transport message definition for "onu_deactivation_completed" group of 
+ * "xgpon_onu" object. 
+ */
+typedef struct bcmolt_xgpon_onu_onu_deactivation_completed
+{
+    bcmolt_auto hdr;            /**< Transport header. */
+    bcmolt_xgpon_onu_key key;   /**< Object key. */
+    bcmolt_xgpon_onu_onu_deactivation_completed_data data;  /**< All properties that must be set by the user. */
+} bcmolt_xgpon_onu_onu_deactivation_completed;
+
+/** Structure definition for the "onu_disable_completed" group of the 
+ * "xgpon_onu" object. 
+ */
+typedef struct bcmolt_xgpon_onu_onu_disable_completed_data
+{
+    bcmolt_serial_number serial_number; /**< serial number. */
+} bcmolt_xgpon_onu_onu_disable_completed_data;
+
+/** Transport message definition for "onu_disable_completed" group of 
+ * "xgpon_onu" object. 
+ */
+typedef struct bcmolt_xgpon_onu_onu_disable_completed
+{
+    bcmolt_auto hdr;            /**< Transport header. */
+    bcmolt_xgpon_onu_key key;   /**< Object key. */
+    bcmolt_xgpon_onu_onu_disable_completed_data data;   /**< All properties that must be set by the user. */
+} bcmolt_xgpon_onu_onu_disable_completed;
+
+/** Structure definition for the "onu_enable_completed" group of the "xgpon_onu" 
+ * object. 
+ */
+typedef struct bcmolt_xgpon_onu_onu_enable_completed_data
+{
+    bcmolt_serial_number serial_number; /**< serial number. */
+} bcmolt_xgpon_onu_onu_enable_completed_data;
+
+/** Transport message definition for "onu_enable_completed" group of "xgpon_onu" 
+ * object. 
+ */
+typedef struct bcmolt_xgpon_onu_onu_enable_completed
+{
+    bcmolt_auto hdr;            /**< Transport header. */
+    bcmolt_xgpon_onu_key key;   /**< Object key. */
+    bcmolt_xgpon_onu_onu_enable_completed_data data;    /**< All properties that must be set by the user. */
+} bcmolt_xgpon_onu_onu_enable_completed;
+
+/** Structure definition for the "onu_tuning_in_completed" group of the 
+ * "xgpon_onu" object. 
+ */
+typedef struct bcmolt_xgpon_onu_onu_tuning_in_completed_data
+{
+    bcmolt_result result;                   /**< result. */
+    bcmolt_tune_in_fail_reason fail_reason; /**< fail reason. */
+} bcmolt_xgpon_onu_onu_tuning_in_completed_data;
+
+/** Transport message definition for "onu_tuning_in_completed" group of 
+ * "xgpon_onu" object. 
+ */
+typedef struct bcmolt_xgpon_onu_onu_tuning_in_completed
+{
+    bcmolt_auto hdr;            /**< Transport header. */
+    bcmolt_xgpon_onu_key key;   /**< Object key. */
+    bcmolt_xgpon_onu_onu_tuning_in_completed_data data; /**< All properties that must be set by the user. */
+} bcmolt_xgpon_onu_onu_tuning_in_completed;
+
+/** Structure definition for the "onu_tuning_out_completed" group of the 
+ * "xgpon_onu" object. 
+ */
+typedef struct bcmolt_xgpon_onu_onu_tuning_out_completed_data
+{
+    bcmolt_result result;                       /**< result. */
+    bcmolt_tune_out_fail_reason fail_reason;    /**< fail reason. */
+} bcmolt_xgpon_onu_onu_tuning_out_completed_data;
+
+/** Transport message definition for "onu_tuning_out_completed" group of 
+ * "xgpon_onu" object. 
+ */
+typedef struct bcmolt_xgpon_onu_onu_tuning_out_completed
+{
+    bcmolt_auto hdr;            /**< Transport header. */
+    bcmolt_xgpon_onu_key key;   /**< Object key. */
+    bcmolt_xgpon_onu_onu_tuning_out_completed_data data;    /**< All properties that must be set by the user. */
+} bcmolt_xgpon_onu_onu_tuning_out_completed;
+
+/** Transport message definition for "optical_reflection" group of "xgpon_onu" 
+ * object. 
+ */
+typedef struct bcmolt_xgpon_onu_optical_reflection
+{
+    bcmolt_auto hdr;            /**< Transport header. */
+    bcmolt_xgpon_onu_key key;   /**< Object key. */
+} bcmolt_xgpon_onu_optical_reflection;
+
+/** Structure definition for the "possible_drift" group of the "xgpon_onu" 
+ * object. 
+ *
+ * An ONU in a low power state may be experiencing drift beyond the configured 
+ * threshold. The estimate may be inaccurate depending on ONU behavior. Actual 
+ * drift may be less than estimated. 
+ */
+typedef struct bcmolt_xgpon_onu_possible_drift_data
+{
+    bcmolt_status alarm_status; /**< On: estimated drift has exceeded the configured threshold. */
+    int32_t estimated_drift;    /**< If status is on, the estimated drift value, otherwise zero (0). */
+} bcmolt_xgpon_onu_possible_drift_data;
+
+/** Transport message definition for "possible_drift" group of "xgpon_onu" 
+ * object. 
+ */
+typedef struct bcmolt_xgpon_onu_possible_drift
+{
+    bcmolt_auto hdr;            /**< Transport header. */
+    bcmolt_xgpon_onu_key key;   /**< Object key. */
+    bcmolt_xgpon_onu_possible_drift_data data;  /**< All properties that must be set by the user. */
+} bcmolt_xgpon_onu_possible_drift;
+
+/** Structure definition for the "power_consumption_report" group of the 
+ * "xgpon_onu" object. 
+ *
+ * Power consumption report 
+ */
+typedef struct bcmolt_xgpon_onu_power_consumption_report_data
+{
+#define BCMOLT_XGPON_ONU_POWER_CONSUMPTION_REPORT_DATA_POWER_CONSUMPTION_REPORT_LEN 8
+    bcmolt_arr_power_consumption_channel_report_8 power_consumption_report; /**< power consumption report. */
+} bcmolt_xgpon_onu_power_consumption_report_data;
+
+/** Transport message definition for "power_consumption_report" group of 
+ * "xgpon_onu" object. 
+ */
+typedef struct bcmolt_xgpon_onu_power_consumption_report
+{
+    bcmolt_auto hdr;            /**< Transport header. */
+    bcmolt_xgpon_onu_key key;   /**< Object key. */
+    bcmolt_xgpon_onu_power_consumption_report_data data;    /**< All properties that must be set by the user. */
+} bcmolt_xgpon_onu_power_consumption_report;
+
+/** Structure definition for the "power_level_report" group of the "xgpon_onu" 
+ * object. 
+ *
+ * Power level report 
+ */
+typedef struct bcmolt_xgpon_onu_power_level_report_data
+{
+    uint8_t attenuation;                /**< Attenuation. */
+    uint8_t power_levelling_capability; /**< Power levelling capability. */
+} bcmolt_xgpon_onu_power_level_report_data;
+
+/** Transport message definition for "power_level_report" group of "xgpon_onu" 
+ * object. 
+ */
+typedef struct bcmolt_xgpon_onu_power_level_report
+{
+    bcmolt_auto hdr;            /**< Transport header. */
+    bcmolt_xgpon_onu_key key;   /**< Object key. */
+    bcmolt_xgpon_onu_power_level_report_data data;  /**< All properties that must be set by the user. */
+} bcmolt_xgpon_onu_power_level_report;
+
+/** Structure definition for the "power_management_state_change" group of the 
+ * "xgpon_onu" object. 
+ *
+ * Notification that an ONUs power management state has changed. 
+ */
+typedef struct bcmolt_xgpon_onu_power_management_state_change_data
+{
+    bcmolt_onu_state old_state; /**< The state the ONU was previously in. */
+    bcmolt_onu_state new_state; /**< The state the ONU is currently in. */
+    bcmolt_power_management_transition_reason reason;   /**< The reason for the state change. */
+} bcmolt_xgpon_onu_power_management_state_change_data;
+
+/** Transport message definition for "power_management_state_change" group of 
+ * "xgpon_onu" object. 
+ */
+typedef struct bcmolt_xgpon_onu_power_management_state_change
+{
+    bcmolt_auto hdr;            /**< Transport header. */
+    bcmolt_xgpon_onu_key key;   /**< Object key. */
+    bcmolt_xgpon_onu_power_management_state_change_data data;   /**< All properties that must be set by the user. */
+} bcmolt_xgpon_onu_power_management_state_change;
+
+/** Structure definition for the "pqsi" group of the "xgpon_onu" object. 
+ */
+typedef struct bcmolt_xgpon_onu_pqsi_data
+{
+    bcmolt_status alarm_status; /**< alarm status. */
+} bcmolt_xgpon_onu_pqsi_data;
+
+/** Transport message definition for "pqsi" group of "xgpon_onu" object. 
+ */
+typedef struct bcmolt_xgpon_onu_pqsi
+{
+    bcmolt_auto hdr;                    /**< Transport header. */
+    bcmolt_xgpon_onu_key key;           /**< Object key. */
+    bcmolt_xgpon_onu_pqsi_data data;    /**< All properties that must be set by the user. */
+} bcmolt_xgpon_onu_pqsi;
+
+/** Structure definition for the "ranging_completed" group of the "xgpon_onu" 
+ * object. 
+ */
+typedef struct bcmolt_xgpon_onu_ranging_completed_data
+{
+    bcmolt_result status;                   /**< status. */
+    bcmolt_ranging_fail_reason fail_reason; /**< fail reason. */
+    uint32_t eqd;               /**< EQD. */
+    uint8_t number_of_ploams;   /**< number of ploams. */
+    uint8_t power_level;        /**< power level. */
+} bcmolt_xgpon_onu_ranging_completed_data;
+
+/** Transport message definition for "ranging_completed" group of "xgpon_onu" 
+ * object. 
+ */
+typedef struct bcmolt_xgpon_onu_ranging_completed
+{
+    bcmolt_auto hdr;            /**< Transport header. */
+    bcmolt_xgpon_onu_key key;   /**< Object key. */
+    bcmolt_xgpon_onu_ranging_completed_data data;   /**< All properties that must be set by the user. */
+} bcmolt_xgpon_onu_ranging_completed;
+
+/** Structure definition for the "registration_id" group of the "xgpon_onu" 
+ * object. 
+ *
+ * Registration ID 
+ */
+typedef struct bcmolt_xgpon_onu_registration_id_data
+{
+#define BCMOLT_XGPON_ONU_REGISTRATION_ID_DATA_REGISTRATION_ID_LEN   36
+    bcmolt_arr_u8_36 registration_id;           /**< Registration ID. */
+    bcmolt_result request_registration_status;  /**< request registration status. */
+    bcmolt_request_registration_fail_reason request_registration_fail_reason;   /**< request registration fail reason. */
+} bcmolt_xgpon_onu_registration_id_data;
+
+/** Transport message definition for "registration_id" group of "xgpon_onu" 
+ * object. 
+ */
+typedef struct bcmolt_xgpon_onu_registration_id
+{
+    bcmolt_auto hdr;            /**< Transport header. */
+    bcmolt_xgpon_onu_key key;   /**< Object key. */
+    bcmolt_xgpon_onu_registration_id_data data; /**< All properties that must be set by the user. */
+} bcmolt_xgpon_onu_registration_id;
+
+/** Structure definition for the "rssi_measurement_completed" group of the 
+ * "xgpon_onu" object. 
+ */
+typedef struct bcmolt_xgpon_onu_rssi_measurement_completed_data
+{
+    bcmolt_result status;   /**< status. */
+    bcmolt_rssi_measurement_fail_reason fail_reason;    /**< fail reason. */
+} bcmolt_xgpon_onu_rssi_measurement_completed_data;
+
+/** Transport message definition for "rssi_measurement_completed" group of 
+ * "xgpon_onu" object. 
+ */
+typedef struct bcmolt_xgpon_onu_rssi_measurement_completed
+{
+    bcmolt_auto hdr;            /**< Transport header. */
+    bcmolt_xgpon_onu_key key;   /**< Object key. */
+    bcmolt_xgpon_onu_rssi_measurement_completed_data data;  /**< All properties that must be set by the user. */
+} bcmolt_xgpon_onu_rssi_measurement_completed;
+
+/** Structure definition for the "sdi" group of the "xgpon_onu" object. 
+ */
+typedef struct bcmolt_xgpon_onu_sdi_data
+{
+    bcmolt_status alarm_status; /**< alarm status. */
+    uint32_t ber;               /**< Inverse bit error rate (e.g. if this number is 1000, the BER is 1/1000). */
+} bcmolt_xgpon_onu_sdi_data;
+
+/** Transport message definition for "sdi" group of "xgpon_onu" object. 
+ */
+typedef struct bcmolt_xgpon_onu_sdi
+{
+    bcmolt_auto hdr;                /**< Transport header. */
+    bcmolt_xgpon_onu_key key;       /**< Object key. */
+    bcmolt_xgpon_onu_sdi_data data; /**< All properties that must be set by the user. */
+} bcmolt_xgpon_onu_sdi;
+
+/** Structure definition for the "secure_mutual_authentication_failure" group of 
+ * the "xgpon_onu" object. 
+ *
+ * Failure of secure mutual authentication due to MIC error 
+ */
+typedef struct bcmolt_xgpon_onu_secure_mutual_authentication_failure_data
+{
+    bcmolt_result status;   /**< status. */
+    bcmolt_secure_mutual_authentication_fail_reason fail_reason;    /**< secure mutual authentication fail reason. */
+} bcmolt_xgpon_onu_secure_mutual_authentication_failure_data;
+
+/** Transport message definition for "secure_mutual_authentication_failure" 
+ * group of "xgpon_onu" object. 
+ */
+typedef struct bcmolt_xgpon_onu_secure_mutual_authentication_failure
+{
+    bcmolt_auto hdr;            /**< Transport header. */
+    bcmolt_xgpon_onu_key key;   /**< Object key. */
+    bcmolt_xgpon_onu_secure_mutual_authentication_failure_data data;    /**< All properties that must be set by the user. */
+} bcmolt_xgpon_onu_secure_mutual_authentication_failure;
+
+/** Structure definition for the "sfi" group of the "xgpon_onu" object. 
+ */
+typedef struct bcmolt_xgpon_onu_sfi_data
+{
+    bcmolt_status alarm_status; /**< alarm status. */
+    uint32_t ber;               /**< Inverse bit error rate (e.g. if this number is 1000, the BER is 1/1000). */
+} bcmolt_xgpon_onu_sfi_data;
+
+/** Transport message definition for "sfi" group of "xgpon_onu" object. 
+ */
+typedef struct bcmolt_xgpon_onu_sfi
+{
+    bcmolt_auto hdr;                /**< Transport header. */
+    bcmolt_xgpon_onu_key key;       /**< Object key. */
+    bcmolt_xgpon_onu_sfi_data data; /**< All properties that must be set by the user. */
+} bcmolt_xgpon_onu_sfi;
+
+/** Structure definition for the "stat_alarm_cleared" group of the "xgpon_onu" 
+ * object. 
+ *
+ * Sent when a configured statistic alarm condition is no longer met. 
+ */
+typedef struct bcmolt_xgpon_onu_stat_alarm_cleared_data
+{
+    bcmolt_xgpon_onu_stat_id stat;  /**< Statistic identifier. */
+} bcmolt_xgpon_onu_stat_alarm_cleared_data;
+
+/** Transport message definition for "stat_alarm_cleared" group of "xgpon_onu" 
+ * object. 
+ */
+typedef struct bcmolt_xgpon_onu_stat_alarm_cleared
+{
+    bcmolt_auto hdr;            /**< Transport header. */
+    bcmolt_xgpon_onu_key key;   /**< Object key. */
+    bcmolt_xgpon_onu_stat_alarm_cleared_data data;  /**< All properties that must be set by the user. */
+} bcmolt_xgpon_onu_stat_alarm_cleared;
+
+/** Structure definition for the "stat_alarm_raised" group of the "xgpon_onu" 
+ * object. 
+ *
+ * Sent when a configured statistic alarm condition has been met. 
+ */
+typedef struct bcmolt_xgpon_onu_stat_alarm_raised_data
+{
+    bcmolt_xgpon_onu_stat_id stat;  /**< Statistic identifier. */
+} bcmolt_xgpon_onu_stat_alarm_raised_data;
+
+/** Transport message definition for "stat_alarm_raised" group of "xgpon_onu" 
+ * object. 
+ */
+typedef struct bcmolt_xgpon_onu_stat_alarm_raised
+{
+    bcmolt_auto hdr;            /**< Transport header. */
+    bcmolt_xgpon_onu_key key;   /**< Object key. */
+    bcmolt_xgpon_onu_stat_alarm_raised_data data;   /**< All properties that must be set by the user. */
+} bcmolt_xgpon_onu_stat_alarm_raised;
+
+/** Structure definition for the "sufi" group of the "xgpon_onu" object. 
+ */
+typedef struct bcmolt_xgpon_onu_sufi_data
+{
+    bcmolt_status alarm_status; /**< alarm status. */
+} bcmolt_xgpon_onu_sufi_data;
+
+/** Transport message definition for "sufi" group of "xgpon_onu" object. 
+ */
+typedef struct bcmolt_xgpon_onu_sufi
+{
+    bcmolt_auto hdr;                    /**< Transport header. */
+    bcmolt_xgpon_onu_key key;           /**< Object key. */
+    bcmolt_xgpon_onu_sufi_data data;    /**< All properties that must be set by the user. */
+} bcmolt_xgpon_onu_sufi;
+
+/** Structure definition for the "tiwi" group of the "xgpon_onu" object. 
+ */
+typedef struct bcmolt_xgpon_onu_tiwi_data
+{
+    bcmolt_status alarm_status; /**< Alarm status. */
+    int32_t drift_value;        /**< Calculated amount of drift (positive + negative as a signed value). */
+} bcmolt_xgpon_onu_tiwi_data;
+
+/** Transport message definition for "tiwi" group of "xgpon_onu" object. 
+ */
+typedef struct bcmolt_xgpon_onu_tiwi
+{
+    bcmolt_auto hdr;                    /**< Transport header. */
+    bcmolt_xgpon_onu_key key;           /**< Object key. */
+    bcmolt_xgpon_onu_tiwi_data data;    /**< All properties that must be set by the user. */
+} bcmolt_xgpon_onu_tiwi;
+
+/** Structure definition for the "tuning_response" group of the "xgpon_onu" 
+ * object. 
+ */
+typedef struct bcmolt_xgpon_onu_tuning_response_data
+{
+    bcmos_bool ack;         /**< is tuning response received with ack or nack */
+    bcmolt_result result;   /**< result. */
+} bcmolt_xgpon_onu_tuning_response_data;
+
+/** Transport message definition for "tuning_response" group of "xgpon_onu" 
+ * object. 
+ */
+typedef struct bcmolt_xgpon_onu_tuning_response
+{
+    bcmolt_auto hdr;            /**< Transport header. */
+    bcmolt_xgpon_onu_key key;   /**< Object key. */
+    bcmolt_xgpon_onu_tuning_response_data data; /**< All properties that must be set by the user. */
+} bcmolt_xgpon_onu_tuning_response;
+
+/** Structure definition for the "auto_cfg" group of the "xgpon_onu" object. 
+ */
+typedef struct bcmolt_xgpon_onu_auto_cfg_data
+{
+    bcmos_bool dfi;                     /**< If true, indications of type "dfi" will be generated. */
+    bcmos_bool dgi;                     /**< If true, indications of type "dgi" will be generated. */
+    bcmos_bool dowi;                    /**< If true, indications of type "dowi" will be generated. */
+    bcmos_bool invalid_dbru_report;     /**< If true, indications of type "invalid_dbru_report" will be generated. */
+    bcmos_bool key_exchange_completed;  /**< If true, indications of type "key_exchange_completed" will be generated. */
+    bcmos_bool key_exchange_cycle_skipped;          /**< If true, indications of type "key_exchange_cycle_skipped" will be generated. */
+    bcmos_bool key_exchange_key_mismatch;           /**< If true, indications of type "key_exchange_key_mismatch" will be generated. */
+    bcmos_bool key_exchange_key_request_timeout;    /**< If true, indications of type "key_exchange_key_request_timeout" will be generated. */
+    bcmos_bool looci;                       /**< If true, indications of type "looci" will be generated. */
+    bcmos_bool onu_activation_completed;    /**< If true, indications of type "onu_activation_completed" will be generated. */
+    bcmos_bool onu_alarm;                   /**< If true, indications of type "onu_alarm" will be generated. */
+    bcmos_bool onu_deactivation_completed;  /**< If true, indications of type "onu_deactivation_completed" will be generated. */
+    bcmos_bool onu_disable_completed;       /**< If true, indications of type "onu_disable_completed" will be generated. */
+    bcmos_bool onu_enable_completed;        /**< If true, indications of type "onu_enable_completed" will be generated. */
+    bcmos_bool onu_tuning_in_completed;     /**< If true, indications of type "onu_tuning_in_completed" will be generated. */
+    bcmos_bool onu_tuning_out_completed;    /**< If true, indications of type "onu_tuning_out_completed" will be generated. */
+    bcmos_bool optical_reflection;          /**< If true, indications of type "optical_reflection" will be generated. */
+    bcmos_bool possible_drift;              /**< If true, indications of type "possible_drift" will be generated. */
+    bcmos_bool power_consumption_report;    /**< If true, indications of type "power_consumption_report" will be generated. */
+    bcmos_bool power_level_report;          /**< If true, indications of type "power_level_report" will be generated. */
+    bcmos_bool power_management_state_change;   /**< If true, indications of type "power_management_state_change" will be generated. */
+    bcmos_bool pqsi;                        /**< If true, indications of type "pqsi" will be generated. */
+    bcmos_bool ranging_completed;           /**< If true, indications of type "ranging_completed" will be generated. */
+    bcmos_bool registration_id;             /**< If true, indications of type "registration_id" will be generated. */
+    bcmos_bool rssi_measurement_completed;  /**< If true, indications of type "rssi_measurement_completed" will be generated. */
+    bcmos_bool sdi; /**< If true, indications of type "sdi" will be generated. */
+    bcmos_bool secure_mutual_authentication_failure;    /**< If true, indications of type "secure_mutual_authentication_failure" will be generated. */
+    bcmos_bool sfi;                 /**< If true, indications of type "sfi" will be generated. */
+    bcmos_bool stat_alarm_cleared;  /**< If true, indications of type "stat_alarm_cleared" will be generated. */
+    bcmos_bool stat_alarm_raised;   /**< If true, indications of type "stat_alarm_raised" will be generated. */
+    bcmos_bool sufi;                /**< If true, indications of type "sufi" will be generated. */
+    bcmos_bool tiwi;                /**< If true, indications of type "tiwi" will be generated. */
+    bcmos_bool tuning_response;     /**< If true, indications of type "tuning_response" will be generated. */
+} bcmolt_xgpon_onu_auto_cfg_data;
+
+/** Transport message definition for "auto_cfg" group of "xgpon_onu" object. 
+ */
+typedef struct bcmolt_xgpon_onu_auto_cfg
+{
+    bcmolt_auto_cfg hdr;        /**< Transport header. */
+    bcmolt_xgpon_onu_key key;   /**< Object key. */
+    bcmolt_xgpon_onu_auto_cfg_data data;    /**< All properties that must be set by the user. */
+} bcmolt_xgpon_onu_auto_cfg;
+
+/** Structure definition for the "adjust_tx_wavelength" group of the "xgpon_onu" 
+ * object. 
+ *
+ * Instruct the ONU to adjust its upstream transmitter wavelength 
+ */
+typedef struct bcmolt_xgpon_onu_adjust_tx_wavelength_data
+{
+    bcmolt_frequency_adjustment_direction frequency_adjustment_direction;   /**< Frequency adjustment direction. */
+    uint8_t frequency_adjustment_size;  /**< The size of the frequency adjustment in units of 0.1GHz */
+} bcmolt_xgpon_onu_adjust_tx_wavelength_data;
+
+/** Transport message definition for "adjust_tx_wavelength" group of "xgpon_onu" 
+ * object. 
+ */
+typedef struct bcmolt_xgpon_onu_adjust_tx_wavelength
+{
+    bcmolt_oper hdr;            /**< Transport header. */
+    bcmolt_xgpon_onu_key key;   /**< Object key. */
+    bcmolt_xgpon_onu_adjust_tx_wavelength_data data;    /**< All properties that must be set by the user. */
+} bcmolt_xgpon_onu_adjust_tx_wavelength;
+
+/** Structure definition for the "change_power_levelling" group of the 
+ * "xgpon_onu" object. 
+ *
+ * Change power levelling 
+ */
+typedef struct bcmolt_xgpon_onu_change_power_levelling_data
+{
+    bcmolt_power_levelling_control control; /**< control. */
+    uint8_t attenuation;                    /**< The requested attenuation in steps of 3dB as part of power levelling instruction */
+} bcmolt_xgpon_onu_change_power_levelling_data;
+
+/** Transport message definition for "change_power_levelling" group of 
+ * "xgpon_onu" object. 
+ */
+typedef struct bcmolt_xgpon_onu_change_power_levelling
+{
+    bcmolt_oper hdr;            /**< Transport header. */
+    bcmolt_xgpon_onu_key key;   /**< Object key. */
+    bcmolt_xgpon_onu_change_power_levelling_data data;  /**< All properties that must be set by the user. */
+} bcmolt_xgpon_onu_change_power_levelling;
+
+/** Transport message definition for "get_power_consumption" group of 
+ * "xgpon_onu" object. 
+ */
+typedef struct bcmolt_xgpon_onu_get_power_consumption
+{
+    bcmolt_oper hdr;            /**< Transport header. */
+    bcmolt_xgpon_onu_key key;   /**< Object key. */
+} bcmolt_xgpon_onu_get_power_consumption;
+
+/** Transport message definition for "get_power_level" group of "xgpon_onu" 
+ * object. 
+ */
+typedef struct bcmolt_xgpon_onu_get_power_level
+{
+    bcmolt_oper hdr;            /**< Transport header. */
+    bcmolt_xgpon_onu_key key;   /**< Object key. */
+} bcmolt_xgpon_onu_get_power_level;
+
+/** Transport message definition for "onu_tuning_in" group of "xgpon_onu" 
+ * object. 
+ */
+typedef struct bcmolt_xgpon_onu_onu_tuning_in
+{
+    bcmolt_oper hdr;            /**< Transport header. */
+    bcmolt_xgpon_onu_key key;   /**< Object key. */
+} bcmolt_xgpon_onu_onu_tuning_in;
+
+/** Structure definition for the "onu_tuning_out" group of the "xgpon_onu" 
+ * object. 
+ */
+typedef struct bcmolt_xgpon_onu_onu_tuning_out_data
+{
+    bcmolt_pon_id target_ds_pon_id; /**< target ds pon id. */
+    bcmolt_pon_id target_us_pon_id; /**< target us pon id. */
+    uint32_t time_to_switch;        /**< Time to switch in ms */
+    bcmos_bool rollback;            /**< rollback. */
+    bcmolt_status status;           /**< on- to start tuning out off- to stop tuning out */
+} bcmolt_xgpon_onu_onu_tuning_out_data;
+
+/** Transport message definition for "onu_tuning_out" group of "xgpon_onu" 
+ * object. 
+ */
+typedef struct bcmolt_xgpon_onu_onu_tuning_out
+{
+    bcmolt_oper hdr;            /**< Transport header. */
+    bcmolt_xgpon_onu_key key;   /**< Object key. */
+    bcmolt_xgpon_onu_onu_tuning_out_data data;  /**< All properties that must be set by the user. */
+} bcmolt_xgpon_onu_onu_tuning_out;
+
+/** Structure definition for the "request_registration" group of the "xgpon_onu" 
+ * object. 
+ *
+ * Request the ONU to send its Registration ID 
+ */
+typedef struct bcmolt_xgpon_onu_request_registration_data
+{
+    bcmos_bool sma_flag;    /**< Is the request registration process is part of the SMA process */
+} bcmolt_xgpon_onu_request_registration_data;
+
+/** Transport message definition for "request_registration" group of "xgpon_onu" 
+ * object. 
+ */
+typedef struct bcmolt_xgpon_onu_request_registration
+{
+    bcmolt_oper hdr;            /**< Transport header. */
+    bcmolt_xgpon_onu_key key;   /**< Object key. */
+    bcmolt_xgpon_onu_request_registration_data data;    /**< All properties that must be set by the user. */
+} bcmolt_xgpon_onu_request_registration;
+
+/** Transport message definition for "rssi_measurement" group of "xgpon_onu" 
+ * object. 
+ */
+typedef struct bcmolt_xgpon_onu_rssi_measurement
+{
+    bcmolt_oper hdr;            /**< Transport header. */
+    bcmolt_xgpon_onu_key key;   /**< Object key. */
+} bcmolt_xgpon_onu_rssi_measurement;
+
+/** Structure definition for the "secure_mutual_authentication" group of the 
+ * "xgpon_onu" object. 
+ *
+ * OMCI base secure mutual authentication 
+ */
+typedef struct bcmolt_xgpon_onu_secure_mutual_authentication_data
+{
+    bcmolt_aes_key master_key;          /**< master key. */
+    bcmolt_u8_list_u32_max_2048 buffer; /**< OMCI data buffer. */
+    uint32_t mic;                       /**< mic. */
+} bcmolt_xgpon_onu_secure_mutual_authentication_data;
+
+/** Transport message definition for "secure_mutual_authentication" group of 
+ * "xgpon_onu" object. 
+ */
+typedef struct bcmolt_xgpon_onu_secure_mutual_authentication
+{
+    bcmolt_oper hdr;            /**< Transport header. */
+    bcmolt_xgpon_onu_key key;   /**< Object key. */
+    bcmolt_xgpon_onu_secure_mutual_authentication_data data;    /**< All properties that must be set by the user. */
+} bcmolt_xgpon_onu_secure_mutual_authentication;
+
+/** Structure definition for the "set_onu_state" group of the "xgpon_onu" 
+ * object. 
+ */
+typedef struct bcmolt_xgpon_onu_set_onu_state_data
+{
+    bcmolt_onu_operation onu_state; /**< ONU state. */
+} bcmolt_xgpon_onu_set_onu_state_data;
+
+/** Transport message definition for "set_onu_state" group of "xgpon_onu" 
+ * object. 
+ */
+typedef struct bcmolt_xgpon_onu_set_onu_state
+{
+    bcmolt_oper hdr;            /**< Transport header. */
+    bcmolt_xgpon_onu_key key;   /**< Object key. */
+    bcmolt_xgpon_onu_set_onu_state_data data;   /**< All properties that must be set by the user. */
+} bcmolt_xgpon_onu_set_onu_state;
+
+/** Structure definition for the "cpu_packets" group of the "xgpon_onu" object. 
+ */
+typedef struct bcmolt_xgpon_onu_cpu_packets_data
+{
+    bcmolt_packet_type packet_type;     /**< packet type. */
+    bcmos_bool calc_crc;                /**< calc crc. */
+    uint8_t number_of_packets;          /**< number of packets. */
+    uint16_t packet_size;               /**< Single packet size. */
+    bcmolt_u8_list_u32_max_2048 buffer; /**< buffer. */
+} bcmolt_xgpon_onu_cpu_packets_data;
+
+/** Transport message definition for "cpu_packets" group of "xgpon_onu" object. 
+ */
+typedef struct bcmolt_xgpon_onu_cpu_packets
+{
+    bcmolt_proxy hdr;                       /**< Transport header. */
+    bcmolt_xgpon_onu_key key;               /**< Object key. */
+    bcmolt_xgpon_onu_cpu_packets_data data; /**< All properties that must be set by the user. */
+} bcmolt_xgpon_onu_cpu_packets;
+
+/** Structure definition for the "ploam_packet" group of the "xgpon_onu" object. 
+ */
+typedef struct bcmolt_xgpon_onu_ploam_packet_data
+{
+    bcmos_bool default_key; /**< default key. */
+#define BCMOLT_XGPON_ONU_PLOAM_PACKET_DATA_PLOAM_LEN    40
+    bcmolt_arr_u8_40 ploam; /**< ploam. */
+} bcmolt_xgpon_onu_ploam_packet_data;
+
+/** Transport message definition for "ploam_packet" group of "xgpon_onu" object. 
+ */
+typedef struct bcmolt_xgpon_onu_ploam_packet
+{
+    bcmolt_proxy hdr;           /**< Transport header. */
+    bcmolt_xgpon_onu_key key;   /**< Object key. */
+    bcmolt_xgpon_onu_ploam_packet_data data;    /**< All properties that must be set by the user. */
+} bcmolt_xgpon_onu_ploam_packet;
+
+/** Structure definition for the "cpu_packet" group of the "xgpon_onu" object. 
+ *
+ * Indicates CPU packet was received on the US from this ONU id 
+ */
+typedef struct bcmolt_xgpon_onu_cpu_packet_data
+{
+    uint16_t port_id;           /**< port id. */
+    bcmos_bool crc_ok;          /**< crc ok. */
+    uint32_t packet_size;       /**< packet size. */
+    bcmolt_u8_list_u32 buffer;  /**< buffer. */
+} bcmolt_xgpon_onu_cpu_packet_data;
+
+/** Transport message definition for "cpu_packet" group of "xgpon_onu" object. 
+ */
+typedef struct bcmolt_xgpon_onu_cpu_packet
+{
+    bcmolt_proxy_rx hdr;                    /**< Transport header. */
+    bcmolt_xgpon_onu_key key;               /**< Object key. */
+    bcmolt_xgpon_onu_cpu_packet_data data;  /**< All properties that must be set by the user. */
+} bcmolt_xgpon_onu_cpu_packet;
+
+/** Structure definition for the "omci_packet" group of the "xgpon_onu" object. 
+ *
+ * Indicates OMCI packet was received on the US from this ONU id 
+ */
+typedef struct bcmolt_xgpon_onu_omci_packet_data
+{
+    uint16_t port_id;           /**< port id. */
+    bcmos_bool crc_ok;          /**< crc ok. */
+    uint32_t packet_size;       /**< packet size. */
+    bcmolt_u8_list_u32 buffer;  /**< buffer. */
+} bcmolt_xgpon_onu_omci_packet_data;
+
+/** Transport message definition for "omci_packet" group of "xgpon_onu" object. 
+ */
+typedef struct bcmolt_xgpon_onu_omci_packet
+{
+    bcmolt_proxy_rx hdr;                    /**< Transport header. */
+    bcmolt_xgpon_onu_key key;               /**< Object key. */
+    bcmolt_xgpon_onu_omci_packet_data data; /**< All properties that must be set by the user. */
+} bcmolt_xgpon_onu_omci_packet;
+
+/** Structure definition for the "key" group of the "xgpon_trx" object. 
+ */
+typedef struct bcmolt_xgpon_trx_key
+{
+    bcmolt_xgpon_ni pon_ni; /**< PON network interface. */
+} bcmolt_xgpon_trx_key;
+
+/** Structure definition for the "cfg" group of the "xgpon_trx" object. 
+ */
+typedef struct bcmolt_xgpon_trx_cfg_data
+{
+#define BCMOLT_XGPON_TRX_CFG_DATA_BURST_PROFILE_LEN 4
+    bcmolt_arr_xgpon_burst_profile_4 burst_profile;             /**< burst profile. */
+#define BCMOLT_XGPON_TRX_CFG_DATA_TRANSCEIVER_CONFIG_LEN    4
+    bcmolt_arr_xgpon_trx_configuration_4 transceiver_config;    /**< transceiver config. */
+    bcmolt_xgpon_trx_type transceiver_type;                     /**< trx type. */
+    bcmolt_xgpon_trx_debug debug;                       /**< debug. */
+    bcmolt_xgpon_rssi_normal_config rssi_normal_config; /**< rssi normal config. */
+    bcmolt_xgpon_rssi_ranging_config rssi_ranging_config;               /**< rssi ranging config. */
+    bcmolt_xgpon_serdes_configuration serdes_configuration;             /**< serdes configuration. */
+#define BCMOLT_XGPON_TRX_CFG_DATA_BURST_PROFILE_DELIMITER_MAX_ERRORS_LEN    4
+    bcmolt_arr_u8_4 burst_profile_delimiter_max_errors;                 /**< burst profile delimiter max errors. */
+    bcmolt_xgpon_rx_ranging_sm_pattern ranging_sm_patterns_at_init;     /**< Reset patterns used at Init of Ranging-Window and after Access */
+    bcmolt_xgpon_rx_ranging_sm_pattern ranging_sm_patterns_ed_failure;  /**< ranging sm patterns ED failure. */
+    bcmos_bool reset_on_del_miss;   /**< reset on del miss. */
+    bcmolt_xgpon_ed_state ed_state; /**< ed state. */
+    bcmos_bool invert_ed;           /**< invert ED. */
+    bcmos_bool end_of_burst_reset;  /**< end of burst reset. */
+    bcmos_bool trx_rst_polarity;    /**< TRX reset polarity. */
+} bcmolt_xgpon_trx_cfg_data;
+
+/** Transport message definition for "cfg" group of "xgpon_trx" object. 
+ */
+typedef struct bcmolt_xgpon_trx_cfg
+{
+    bcmolt_cfg hdr;                 /**< Transport header. */
+    bcmolt_xgpon_trx_key key;       /**< Object key. */
+    bcmolt_xgpon_trx_cfg_data data; /**< All properties that must be set by the user. */
+} bcmolt_xgpon_trx_cfg;
+
+/** Structure definition for the "key" group of the "xpon_serdes" object. 
+ */
+typedef struct bcmolt_xpon_serdes_key
+{
+    bcmolt_pon_ni pon_ni;               /**< PON NI. */
+    bcmolt_serdes_instance instance;    /**< SerDes instance: */
+} bcmolt_xpon_serdes_key;
+
+/** Structure definition for the "cfg" group of the "xpon_serdes" object. 
+ */
+typedef struct bcmolt_xpon_serdes_cfg_data
+{
+    uint8_t rx_vga;     /**< Rx Vga. */
+    uint8_t rx_pf;      /**< Peaking Filter */
+    uint8_t rx_lfpf;    /**< Low Frequency Peaking Filter */
+    uint8_t rx_dfe1;    /**< Rx DFE1. */
+    int8_t rx_dfe2;     /**< Rx DFE2. */
+    int8_t rx_dfe3;     /**< Rx DFE3. */
+    int8_t rx_dfe4;     /**< Rx DFE4. */
+    int8_t rx_dfe5;     /**< Rx DFE5. */
+    uint8_t tx_pre;     /**< Tx Pre. */
+    uint8_t tx_main;    /**< Tx Main. */
+    uint8_t tx_post1;   /**< Tx Post1. */
+    int8_t tx_post2;    /**< Tx Post2. */
+    int8_t tx_post3;    /**< Tx Post3. */
+    uint8_t tx_amp;     /**< Tx Amp. */
+} bcmolt_xpon_serdes_cfg_data;
+
+/** Transport message definition for "cfg" group of "xpon_serdes" object. 
+ */
+typedef struct bcmolt_xpon_serdes_cfg
+{
+    bcmolt_cfg hdr;                     /**< Transport header. */
+    bcmolt_xpon_serdes_key key;         /**< Object key. */
+    bcmolt_xpon_serdes_cfg_data data;   /**< All properties that must be set by the user. */
+} bcmolt_xpon_serdes_cfg;
+
+/** @} */
+
+/** Packs a bcmolt_activation_fail_reason to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_activation_fail_reason_pack(bcmolt_activation_fail_reason this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_activation_fail_reason from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_activation_fail_reason_unpack(bcmolt_activation_fail_reason *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_additional_bw_eligibility to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_additional_bw_eligibility_pack(bcmolt_additional_bw_eligibility this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_additional_bw_eligibility from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_additional_bw_eligibility_unpack(bcmolt_additional_bw_eligibility *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_ae_ni_cfg_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_ae_ni_cfg_id_pack(bcmolt_ae_ni_cfg_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_ae_ni_cfg_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_ae_ni_cfg_id_unpack(bcmolt_ae_ni_cfg_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_ae_ni_en_state to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_ae_ni_en_state_pack(bcmolt_ae_ni_en_state this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_ae_ni_en_state from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_ae_ni_en_state_unpack(bcmolt_ae_ni_en_state *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_ae_ni_key_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_ae_ni_key_id_pack(bcmolt_ae_ni_key_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_ae_ni_key_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_ae_ni_key_id_unpack(bcmolt_ae_ni_key_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_ae_ni_set_ae_ni_en_state_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_ae_ni_set_ae_ni_en_state_id_pack(bcmolt_ae_ni_set_ae_ni_en_state_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_ae_ni_set_ae_ni_en_state_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_ae_ni_set_ae_ni_en_state_id_unpack(bcmolt_ae_ni_set_ae_ni_en_state_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_ae_path_ds_auto_cfg_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_ae_path_ds_auto_cfg_id_pack(bcmolt_ae_path_ds_auto_cfg_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_ae_path_ds_auto_cfg_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_ae_path_ds_auto_cfg_id_unpack(bcmolt_ae_path_ds_auto_cfg_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_ae_path_ds_key_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_ae_path_ds_key_id_pack(bcmolt_ae_path_ds_key_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_ae_path_ds_key_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_ae_path_ds_key_id_unpack(bcmolt_ae_path_ds_key_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_ae_path_ds_stat_alarm_cleared_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_ae_path_ds_stat_alarm_cleared_id_pack(bcmolt_ae_path_ds_stat_alarm_cleared_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_ae_path_ds_stat_alarm_cleared_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_ae_path_ds_stat_alarm_cleared_id_unpack(bcmolt_ae_path_ds_stat_alarm_cleared_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_ae_path_ds_stat_alarm_raised_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_ae_path_ds_stat_alarm_raised_id_pack(bcmolt_ae_path_ds_stat_alarm_raised_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_ae_path_ds_stat_alarm_raised_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_ae_path_ds_stat_alarm_raised_id_unpack(bcmolt_ae_path_ds_stat_alarm_raised_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_ae_path_ds_stat_cfg_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_ae_path_ds_stat_cfg_id_pack(bcmolt_ae_path_ds_stat_cfg_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_ae_path_ds_stat_cfg_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_ae_path_ds_stat_cfg_id_unpack(bcmolt_ae_path_ds_stat_cfg_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_ae_path_ds_stat_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_ae_path_ds_stat_id_pack(bcmolt_ae_path_ds_stat_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_ae_path_ds_stat_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_ae_path_ds_stat_id_unpack(bcmolt_ae_path_ds_stat_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_ae_path_us_auto_cfg_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_ae_path_us_auto_cfg_id_pack(bcmolt_ae_path_us_auto_cfg_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_ae_path_us_auto_cfg_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_ae_path_us_auto_cfg_id_unpack(bcmolt_ae_path_us_auto_cfg_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_ae_path_us_key_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_ae_path_us_key_id_pack(bcmolt_ae_path_us_key_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_ae_path_us_key_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_ae_path_us_key_id_unpack(bcmolt_ae_path_us_key_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_ae_path_us_stat_alarm_cleared_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_ae_path_us_stat_alarm_cleared_id_pack(bcmolt_ae_path_us_stat_alarm_cleared_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_ae_path_us_stat_alarm_cleared_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_ae_path_us_stat_alarm_cleared_id_unpack(bcmolt_ae_path_us_stat_alarm_cleared_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_ae_path_us_stat_alarm_raised_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_ae_path_us_stat_alarm_raised_id_pack(bcmolt_ae_path_us_stat_alarm_raised_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_ae_path_us_stat_alarm_raised_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_ae_path_us_stat_alarm_raised_id_unpack(bcmolt_ae_path_us_stat_alarm_raised_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_ae_path_us_stat_cfg_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_ae_path_us_stat_cfg_id_pack(bcmolt_ae_path_us_stat_cfg_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_ae_path_us_stat_cfg_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_ae_path_us_stat_cfg_id_unpack(bcmolt_ae_path_us_stat_cfg_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_ae_path_us_stat_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_ae_path_us_stat_id_pack(bcmolt_ae_path_us_stat_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_ae_path_us_stat_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_ae_path_us_stat_id_unpack(bcmolt_ae_path_us_stat_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_alloc_operation to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_alloc_operation_pack(bcmolt_alloc_operation this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_alloc_operation from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_alloc_operation_unpack(bcmolt_alloc_operation *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_alloc_state to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_alloc_state_pack(bcmolt_alloc_state this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_alloc_state from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_alloc_state_unpack(bcmolt_alloc_state *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_alloc_type to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_alloc_type_pack(bcmolt_alloc_type this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_alloc_type from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_alloc_type_unpack(bcmolt_alloc_type *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_alloc_type_to_scan to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_alloc_type_to_scan_pack(bcmolt_alloc_type_to_scan this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_alloc_type_to_scan from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_alloc_type_to_scan_unpack(bcmolt_alloc_type_to_scan *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_api_capture_buffer_mode to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_api_capture_buffer_mode_pack(bcmolt_api_capture_buffer_mode this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_api_capture_buffer_mode from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_api_capture_buffer_mode_unpack(bcmolt_api_capture_buffer_mode *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_api_capture_location to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_api_capture_location_pack(bcmolt_api_capture_location this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_api_capture_location from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_api_capture_location_unpack(bcmolt_api_capture_location *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_calibration_record to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_calibration_record_pack(bcmolt_calibration_record this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_calibration_record from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_calibration_record_unpack(bcmolt_calibration_record *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_sign to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_sign_pack(bcmolt_sign this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_sign from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_sign_unpack(bcmolt_sign *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_upstream_line_rate_capabilities to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_upstream_line_rate_capabilities_pack(bcmolt_upstream_line_rate_capabilities this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_upstream_line_rate_capabilities from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_upstream_line_rate_capabilities_unpack(bcmolt_upstream_line_rate_capabilities *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_link_type to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_link_type_pack(bcmolt_link_type this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_link_type from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_link_type_unpack(bcmolt_link_type *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_capture_strobe_signal to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_capture_strobe_signal_pack(bcmolt_capture_strobe_signal this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_capture_strobe_signal from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_capture_strobe_signal_unpack(bcmolt_capture_strobe_signal *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_channel_cfg_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_channel_cfg_id_pack(bcmolt_channel_cfg_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_channel_cfg_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_channel_cfg_id_unpack(bcmolt_channel_cfg_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_channel_key_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_channel_key_id_pack(bcmolt_channel_key_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_channel_key_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_channel_key_id_unpack(bcmolt_channel_key_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_console_redirection to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_console_redirection_pack(bcmolt_console_redirection this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_console_redirection from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_console_redirection_unpack(bcmolt_console_redirection *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_control_state to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_control_state_pack(bcmolt_control_state this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_control_state from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_control_state_unpack(bcmolt_control_state *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_dba_mode to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_dba_mode_pack(bcmolt_dba_mode this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_dba_mode from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_dba_mode_unpack(bcmolt_dba_mode *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_dba_ram to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_dba_ram_pack(bcmolt_dba_ram this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_dba_ram from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_dba_ram_unpack(bcmolt_dba_ram *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_dba_type to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_dba_type_pack(bcmolt_dba_type this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_dba_type from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_dba_type_unpack(bcmolt_dba_type *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_ddr_test_status to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_ddr_test_status_pack(bcmolt_ddr_test_status this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_ddr_test_status from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_ddr_test_status_unpack(bcmolt_ddr_test_status *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_ddr_test_result to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_ddr_test_result_pack(bcmolt_ddr_test_result this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_ddr_test_result from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_ddr_test_result_unpack(bcmolt_ddr_test_result *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_host_connection_fail_reason to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_host_connection_fail_reason_pack(bcmolt_host_connection_fail_reason this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_host_connection_fail_reason from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_host_connection_fail_reason_unpack(bcmolt_host_connection_fail_reason *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_deactivation_reason to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_deactivation_reason_pack(bcmolt_deactivation_reason this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_deactivation_reason from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_deactivation_reason_unpack(bcmolt_deactivation_reason *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_debug_auto_cfg_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_debug_auto_cfg_id_pack(bcmolt_debug_auto_cfg_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_debug_auto_cfg_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_debug_auto_cfg_id_unpack(bcmolt_debug_auto_cfg_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_debug_cfg_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_debug_cfg_id_pack(bcmolt_debug_cfg_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_debug_cfg_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_debug_cfg_id_unpack(bcmolt_debug_cfg_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_debug_cli_input_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_debug_cli_input_id_pack(bcmolt_debug_cli_input_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_debug_cli_input_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_debug_cli_input_id_unpack(bcmolt_debug_cli_input_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_debug_cli_output_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_debug_cli_output_id_pack(bcmolt_debug_cli_output_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_debug_cli_output_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_debug_cli_output_id_unpack(bcmolt_debug_cli_output_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_debug_file_almost_full_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_debug_file_almost_full_id_pack(bcmolt_debug_file_almost_full_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_debug_file_almost_full_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_debug_file_almost_full_id_unpack(bcmolt_debug_file_almost_full_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_debug_key_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_debug_key_id_pack(bcmolt_debug_key_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_debug_key_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_debug_key_id_unpack(bcmolt_debug_key_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_debug_reset_api_capture_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_debug_reset_api_capture_id_pack(bcmolt_debug_reset_api_capture_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_debug_reset_api_capture_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_debug_reset_api_capture_id_unpack(bcmolt_debug_reset_api_capture_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_debug_start_api_capture_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_debug_start_api_capture_id_pack(bcmolt_debug_start_api_capture_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_debug_start_api_capture_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_debug_start_api_capture_id_unpack(bcmolt_debug_start_api_capture_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_debug_stop_api_capture_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_debug_stop_api_capture_id_pack(bcmolt_debug_stop_api_capture_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_debug_stop_api_capture_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_debug_stop_api_capture_id_unpack(bcmolt_debug_stop_api_capture_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_device_auto_cfg_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_device_auto_cfg_id_pack(bcmolt_device_auto_cfg_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_device_auto_cfg_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_device_auto_cfg_id_unpack(bcmolt_device_auto_cfg_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_device_cfg_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_device_cfg_id_pack(bcmolt_device_cfg_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_device_cfg_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_device_cfg_id_unpack(bcmolt_device_cfg_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_device_chip_revision to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_device_chip_revision_pack(bcmolt_device_chip_revision this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_device_chip_revision from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_device_chip_revision_unpack(bcmolt_device_chip_revision *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_device_connect_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_device_connect_id_pack(bcmolt_device_connect_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_device_connect_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_device_connect_id_unpack(bcmolt_device_connect_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_device_connection_complete_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_device_connection_complete_id_pack(bcmolt_device_connection_complete_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_device_connection_complete_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_device_connection_complete_id_unpack(bcmolt_device_connection_complete_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_device_connection_established_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_device_connection_established_id_pack(bcmolt_device_connection_established_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_device_connection_established_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_device_connection_established_id_unpack(bcmolt_device_connection_established_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_device_connection_failure_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_device_connection_failure_id_pack(bcmolt_device_connection_failure_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_device_connection_failure_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_device_connection_failure_id_unpack(bcmolt_device_connection_failure_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_device_ddr_test_complete_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_device_ddr_test_complete_id_pack(bcmolt_device_ddr_test_complete_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_device_ddr_test_complete_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_device_ddr_test_complete_id_unpack(bcmolt_device_ddr_test_complete_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_device_device_keep_alive_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_device_device_keep_alive_id_pack(bcmolt_device_device_keep_alive_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_device_device_keep_alive_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_device_device_keep_alive_id_unpack(bcmolt_device_device_keep_alive_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_device_device_ready_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_device_device_ready_id_pack(bcmolt_device_device_ready_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_device_device_ready_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_device_device_ready_id_unpack(bcmolt_device_device_ready_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_device_disconnect_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_device_disconnect_id_pack(bcmolt_device_disconnect_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_device_disconnect_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_device_disconnect_id_unpack(bcmolt_device_disconnect_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_device_disconnection_complete_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_device_disconnection_complete_id_pack(bcmolt_device_disconnection_complete_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_device_disconnection_complete_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_device_disconnection_complete_id_unpack(bcmolt_device_disconnection_complete_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_device_host_keep_alive_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_device_host_keep_alive_id_pack(bcmolt_device_host_keep_alive_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_device_host_keep_alive_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_device_host_keep_alive_id_unpack(bcmolt_device_host_keep_alive_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_device_image_transfer_complete_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_device_image_transfer_complete_id_pack(bcmolt_device_image_transfer_complete_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_device_image_transfer_complete_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_device_image_transfer_complete_id_unpack(bcmolt_device_image_transfer_complete_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_device_image_transfer_data_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_device_image_transfer_data_id_pack(bcmolt_device_image_transfer_data_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_device_image_transfer_data_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_device_image_transfer_data_id_unpack(bcmolt_device_image_transfer_data_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_device_image_transfer_start_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_device_image_transfer_start_id_pack(bcmolt_device_image_transfer_start_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_device_image_transfer_start_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_device_image_transfer_start_id_unpack(bcmolt_device_image_transfer_start_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_device_image_type to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_device_image_type_pack(bcmolt_device_image_type this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_device_image_type from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_device_image_type_unpack(bcmolt_device_image_type *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_device_indications_dropped_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_device_indications_dropped_id_pack(bcmolt_device_indications_dropped_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_device_indications_dropped_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_device_indications_dropped_id_unpack(bcmolt_device_indications_dropped_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_device_key_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_device_key_id_pack(bcmolt_device_key_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_device_key_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_device_key_id_unpack(bcmolt_device_key_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_nni_speed to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_nni_speed_pack(bcmolt_nni_speed this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_nni_speed from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_nni_speed_unpack(bcmolt_nni_speed *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_device_reset_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_device_reset_id_pack(bcmolt_device_reset_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_device_reset_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_device_reset_id_unpack(bcmolt_device_reset_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_device_reset_mode to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_device_reset_mode_pack(bcmolt_device_reset_mode this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_device_reset_mode from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_device_reset_mode_unpack(bcmolt_device_reset_mode *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_device_run_ddr_test_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_device_run_ddr_test_id_pack(bcmolt_device_run_ddr_test_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_device_run_ddr_test_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_device_run_ddr_test_id_unpack(bcmolt_device_run_ddr_test_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_device_state to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_device_state_pack(bcmolt_device_state this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_device_state from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_device_state_unpack(bcmolt_device_state *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_device_sw_error_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_device_sw_error_id_pack(bcmolt_device_sw_error_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_device_sw_error_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_device_sw_error_id_unpack(bcmolt_device_sw_error_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_device_sw_exception_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_device_sw_exception_id_pack(bcmolt_device_sw_exception_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_device_sw_exception_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_device_sw_exception_id_unpack(bcmolt_device_sw_exception_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_device_sw_upgrade_activate_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_device_sw_upgrade_activate_id_pack(bcmolt_device_sw_upgrade_activate_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_device_sw_upgrade_activate_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_device_sw_upgrade_activate_id_unpack(bcmolt_device_sw_upgrade_activate_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_disable_serial_number_control to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_disable_serial_number_control_pack(bcmolt_disable_serial_number_control this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_disable_serial_number_control from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_disable_serial_number_control_unpack(bcmolt_disable_serial_number_control *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_drv_icf_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_drv_icf_id_pack(bcmolt_drv_icf_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_drv_icf_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_drv_icf_id_unpack(bcmolt_drv_icf_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_drv_sgb_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_drv_sgb_id_pack(bcmolt_drv_sgb_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_drv_sgb_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_drv_sgb_id_unpack(bcmolt_drv_sgb_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_ds_vlan_action to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_ds_vlan_action_pack(bcmolt_ds_vlan_action this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_ds_vlan_action from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_ds_vlan_action_unpack(bcmolt_ds_vlan_action *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_tfb_trap_behavior to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_tfb_trap_behavior_pack(bcmolt_tfb_trap_behavior this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_tfb_trap_behavior from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_tfb_trap_behavior_unpack(bcmolt_tfb_trap_behavior *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_tfb_mode to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_tfb_mode_pack(bcmolt_tfb_mode this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_tfb_mode from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_tfb_mode_unpack(bcmolt_tfb_mode *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_lim_sec_mode_up to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_lim_sec_mode_up_pack(bcmolt_lim_sec_mode_up this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_lim_sec_mode_up from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_lim_sec_mode_up_unpack(bcmolt_lim_sec_mode_up *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_lim_sec_mode_dn to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_lim_sec_mode_dn_pack(bcmolt_lim_sec_mode_dn this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_lim_sec_mode_dn from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_lim_sec_mode_dn_unpack(bcmolt_lim_sec_mode_dn *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_xim_sec_mode to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_xim_sec_mode_pack(bcmolt_xim_sec_mode this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_xim_sec_mode from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_xim_sec_mode_unpack(bcmolt_xim_sec_mode *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_hsc_ram to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_hsc_ram_pack(bcmolt_hsc_ram this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_hsc_ram from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_hsc_ram_unpack(bcmolt_hsc_ram *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_lim_ram to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_lim_ram_pack(bcmolt_lim_ram this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_lim_ram from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_lim_ram_unpack(bcmolt_lim_ram *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_lky_ram to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_lky_ram_pack(bcmolt_lky_ram this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_lky_ram from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_lky_ram_unpack(bcmolt_lky_ram *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_mic_ram to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_mic_ram_pack(bcmolt_mic_ram this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_mic_ram from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_mic_ram_unpack(bcmolt_mic_ram *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_xpcsrm_ram to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_xpcsrm_ram_pack(bcmolt_xpcsrm_ram this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_xpcsrm_ram from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_xpcsrm_ram_unpack(bcmolt_xpcsrm_ram *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_embedded_image_transfer_status to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_embedded_image_transfer_status_pack(bcmolt_embedded_image_transfer_status this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_embedded_image_transfer_status from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_embedded_image_transfer_status_unpack(bcmolt_embedded_image_transfer_status *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_epon_encryption_information_format to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_epon_encryption_information_format_pack(bcmolt_epon_encryption_information_format this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_epon_encryption_information_format from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_epon_encryption_information_format_unpack(bcmolt_epon_encryption_information_format *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_energy_detect_source to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_energy_detect_source_pack(bcmolt_energy_detect_source this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_energy_detect_source from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_energy_detect_source_unpack(bcmolt_energy_detect_source *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_epon_1g_turbo_mode to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_epon_1g_turbo_mode_pack(bcmolt_epon_1g_turbo_mode this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_epon_1g_turbo_mode from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_epon_1g_turbo_mode_unpack(bcmolt_epon_1g_turbo_mode *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_epon_clock_transport_mode to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_epon_clock_transport_mode_pack(bcmolt_epon_clock_transport_mode this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_epon_clock_transport_mode from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_epon_clock_transport_mode_unpack(bcmolt_epon_clock_transport_mode *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_epon_dba_reporting_mode to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_epon_dba_reporting_mode_pack(bcmolt_epon_dba_reporting_mode this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_epon_dba_reporting_mode from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_epon_dba_reporting_mode_unpack(bcmolt_epon_dba_reporting_mode *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_epon_link_rate to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_epon_link_rate_pack(bcmolt_epon_link_rate this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_epon_link_rate from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_epon_link_rate_unpack(bcmolt_epon_link_rate *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_status to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_status_pack(bcmolt_status this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_status from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_status_unpack(bcmolt_status *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_epon_denied_link_auto_cfg_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_epon_denied_link_auto_cfg_id_pack(bcmolt_epon_denied_link_auto_cfg_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_epon_denied_link_auto_cfg_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_epon_denied_link_auto_cfg_id_unpack(bcmolt_epon_denied_link_auto_cfg_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_epon_denied_link_cfg_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_epon_denied_link_cfg_id_pack(bcmolt_epon_denied_link_cfg_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_epon_denied_link_cfg_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_epon_denied_link_cfg_id_unpack(bcmolt_epon_denied_link_cfg_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_epon_denied_link_key_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_epon_denied_link_key_id_pack(bcmolt_epon_denied_link_key_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_epon_denied_link_key_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_epon_denied_link_key_id_unpack(bcmolt_epon_denied_link_key_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_epon_denied_link_laser_on_off_violation_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_epon_denied_link_laser_on_off_violation_id_pack(bcmolt_epon_denied_link_laser_on_off_violation_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_epon_denied_link_laser_on_off_violation_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_epon_denied_link_laser_on_off_violation_id_unpack(bcmolt_epon_denied_link_laser_on_off_violation_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_epon_denied_link_llid_pool_empty_violation_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_epon_denied_link_llid_pool_empty_violation_id_pack(bcmolt_epon_denied_link_llid_pool_empty_violation_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_epon_denied_link_llid_pool_empty_violation_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_epon_denied_link_llid_pool_empty_violation_id_unpack(bcmolt_epon_denied_link_llid_pool_empty_violation_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_epon_denied_link_max_link_violation_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_epon_denied_link_max_link_violation_id_pack(bcmolt_epon_denied_link_max_link_violation_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_epon_denied_link_max_link_violation_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_epon_denied_link_max_link_violation_id_unpack(bcmolt_epon_denied_link_max_link_violation_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_epon_denied_link_overhead_profile_violation_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_epon_denied_link_overhead_profile_violation_id_pack(bcmolt_epon_denied_link_overhead_profile_violation_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_epon_denied_link_overhead_profile_violation_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_epon_denied_link_overhead_profile_violation_id_unpack(bcmolt_epon_denied_link_overhead_profile_violation_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_epon_denied_link_range_violation_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_epon_denied_link_range_violation_id_pack(bcmolt_epon_denied_link_range_violation_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_epon_denied_link_range_violation_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_epon_denied_link_range_violation_id_unpack(bcmolt_epon_denied_link_range_violation_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_epon_denied_link_rogue_violation_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_epon_denied_link_rogue_violation_id_pack(bcmolt_epon_denied_link_rogue_violation_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_epon_denied_link_rogue_violation_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_epon_denied_link_rogue_violation_id_unpack(bcmolt_epon_denied_link_rogue_violation_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_epon_denied_link_system_resource_violation_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_epon_denied_link_system_resource_violation_id_pack(bcmolt_epon_denied_link_system_resource_violation_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_epon_denied_link_system_resource_violation_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_epon_denied_link_system_resource_violation_id_unpack(bcmolt_epon_denied_link_system_resource_violation_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_epon_denied_link_tdm_channels_exhausted_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_epon_denied_link_tdm_channels_exhausted_id_pack(bcmolt_epon_denied_link_tdm_channels_exhausted_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_epon_denied_link_tdm_channels_exhausted_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_epon_denied_link_tdm_channels_exhausted_id_unpack(bcmolt_epon_denied_link_tdm_channels_exhausted_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_epon_denied_link_unknown_link_violation_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_epon_denied_link_unknown_link_violation_id_pack(bcmolt_epon_denied_link_unknown_link_violation_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_epon_denied_link_unknown_link_violation_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_epon_denied_link_unknown_link_violation_id_unpack(bcmolt_epon_denied_link_unknown_link_violation_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_epon_denied_link_upstream_bandwidth_violation_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_epon_denied_link_upstream_bandwidth_violation_id_pack(bcmolt_epon_denied_link_upstream_bandwidth_violation_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_epon_denied_link_upstream_bandwidth_violation_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_epon_denied_link_upstream_bandwidth_violation_id_unpack(bcmolt_epon_denied_link_upstream_bandwidth_violation_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_epon_encryption_mode to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_epon_encryption_mode_pack(bcmolt_epon_encryption_mode this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_epon_encryption_mode from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_epon_encryption_mode_unpack(bcmolt_epon_encryption_mode *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_epon_key_choice to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_epon_key_choice_pack(bcmolt_epon_key_choice this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_epon_key_choice from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_epon_key_choice_unpack(bcmolt_epon_key_choice *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_epon_encryption_direction to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_epon_encryption_direction_pack(bcmolt_epon_encryption_direction this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_epon_encryption_direction from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_epon_encryption_direction_unpack(bcmolt_epon_encryption_direction *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_epon_fec_en_state to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_epon_fec_en_state_pack(bcmolt_epon_fec_en_state this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_epon_fec_en_state from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_epon_fec_en_state_unpack(bcmolt_epon_fec_en_state *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_epon_oam_type to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_epon_oam_type_pack(bcmolt_epon_oam_type this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_epon_oam_type from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_epon_oam_type_unpack(bcmolt_epon_oam_type *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_epon_link_auto_cfg_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_epon_link_auto_cfg_id_pack(bcmolt_epon_link_auto_cfg_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_epon_link_auto_cfg_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_epon_link_auto_cfg_id_unpack(bcmolt_epon_link_auto_cfg_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_epon_link_cfg_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_epon_link_cfg_id_pack(bcmolt_epon_link_cfg_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_epon_link_cfg_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_epon_link_cfg_id_unpack(bcmolt_epon_link_cfg_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_epon_link_delete_link_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_epon_link_delete_link_id_pack(bcmolt_epon_link_delete_link_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_epon_link_delete_link_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_epon_link_delete_link_id_unpack(bcmolt_epon_link_delete_link_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_epon_link_duplicate_mpcp_registration_request_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_epon_link_duplicate_mpcp_registration_request_id_pack(bcmolt_epon_link_duplicate_mpcp_registration_request_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_epon_link_duplicate_mpcp_registration_request_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_epon_link_duplicate_mpcp_registration_request_id_unpack(bcmolt_epon_link_duplicate_mpcp_registration_request_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_epon_link_encryption_enabled_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_epon_link_encryption_enabled_id_pack(bcmolt_epon_link_encryption_enabled_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_epon_link_encryption_enabled_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_epon_link_encryption_enabled_id_unpack(bcmolt_epon_link_encryption_enabled_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_epon_link_fec_state to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_epon_link_fec_state_pack(bcmolt_epon_link_fec_state this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_epon_link_fec_state from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_epon_link_fec_state_unpack(bcmolt_epon_link_fec_state *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_epon_link_force_rediscovery_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_epon_link_force_rediscovery_id_pack(bcmolt_epon_link_force_rediscovery_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_epon_link_force_rediscovery_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_epon_link_force_rediscovery_id_unpack(bcmolt_epon_link_force_rediscovery_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_epon_link_frame_captured_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_epon_link_frame_captured_id_pack(bcmolt_epon_link_frame_captured_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_epon_link_frame_captured_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_epon_link_frame_captured_id_unpack(bcmolt_epon_link_frame_captured_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_epon_link_status to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_epon_link_status_pack(bcmolt_epon_link_status this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_epon_link_status from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_epon_link_status_unpack(bcmolt_epon_link_status *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_mpcp_discovery_info to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_mpcp_discovery_info_pack(bcmolt_mpcp_discovery_info this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_mpcp_discovery_info from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_mpcp_discovery_info_unpack(bcmolt_mpcp_discovery_info *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_epon_link_inject_frame_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_epon_link_inject_frame_id_pack(bcmolt_epon_link_inject_frame_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_epon_link_inject_frame_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_epon_link_inject_frame_id_unpack(bcmolt_epon_link_inject_frame_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_epon_link_key_exchange_failure_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_epon_link_key_exchange_failure_id_pack(bcmolt_epon_link_key_exchange_failure_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_epon_link_key_exchange_failure_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_epon_link_key_exchange_failure_id_unpack(bcmolt_epon_link_key_exchange_failure_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_epon_link_key_exchange_start_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_epon_link_key_exchange_start_id_pack(bcmolt_epon_link_key_exchange_start_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_epon_link_key_exchange_start_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_epon_link_key_exchange_start_id_unpack(bcmolt_epon_link_key_exchange_start_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_epon_link_key_exchange_started_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_epon_link_key_exchange_started_id_pack(bcmolt_epon_link_key_exchange_started_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_epon_link_key_exchange_started_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_epon_link_key_exchange_started_id_unpack(bcmolt_epon_link_key_exchange_started_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_epon_link_key_exchange_stop_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_epon_link_key_exchange_stop_id_pack(bcmolt_epon_link_key_exchange_stop_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_epon_link_key_exchange_stop_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_epon_link_key_exchange_stop_id_unpack(bcmolt_epon_link_key_exchange_stop_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_epon_link_key_exchange_stopped_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_epon_link_key_exchange_stopped_id_pack(bcmolt_epon_link_key_exchange_stopped_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_epon_link_key_exchange_stopped_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_epon_link_key_exchange_stopped_id_unpack(bcmolt_epon_link_key_exchange_stopped_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_epon_link_key_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_epon_link_key_id_pack(bcmolt_epon_link_key_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_epon_link_key_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_epon_link_key_id_unpack(bcmolt_epon_link_key_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_epon_link_link_deleted_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_epon_link_link_deleted_id_pack(bcmolt_epon_link_link_deleted_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_epon_link_link_deleted_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_epon_link_link_deleted_id_unpack(bcmolt_epon_link_link_deleted_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_epon_link_link_speed_mismatch_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_epon_link_link_speed_mismatch_id_pack(bcmolt_epon_link_link_speed_mismatch_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_epon_link_link_speed_mismatch_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_epon_link_link_speed_mismatch_id_unpack(bcmolt_epon_link_link_speed_mismatch_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_epon_link_mpcp_deregistered_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_epon_link_mpcp_deregistered_id_pack(bcmolt_epon_link_mpcp_deregistered_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_epon_link_mpcp_deregistered_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_epon_link_mpcp_deregistered_id_unpack(bcmolt_epon_link_mpcp_deregistered_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_epon_link_mpcp_discovered_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_epon_link_mpcp_discovered_id_pack(bcmolt_epon_link_mpcp_discovered_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_epon_link_mpcp_discovered_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_epon_link_mpcp_discovered_id_unpack(bcmolt_epon_link_mpcp_discovered_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_epon_link_mpcp_reg_ack_timeout_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_epon_link_mpcp_reg_ack_timeout_id_pack(bcmolt_epon_link_mpcp_reg_ack_timeout_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_epon_link_mpcp_reg_ack_timeout_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_epon_link_mpcp_reg_ack_timeout_id_unpack(bcmolt_epon_link_mpcp_reg_ack_timeout_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_epon_link_mpcp_report_timeout_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_epon_link_mpcp_report_timeout_id_pack(bcmolt_epon_link_mpcp_report_timeout_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_epon_link_mpcp_report_timeout_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_epon_link_mpcp_report_timeout_id_unpack(bcmolt_epon_link_mpcp_report_timeout_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_epon_link_oam_keepalive_timeout_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_epon_link_oam_keepalive_timeout_id_pack(bcmolt_epon_link_oam_keepalive_timeout_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_epon_link_oam_keepalive_timeout_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_epon_link_oam_keepalive_timeout_id_unpack(bcmolt_epon_link_oam_keepalive_timeout_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_epon_link_oam_keepalive_timer_start_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_epon_link_oam_keepalive_timer_start_id_pack(bcmolt_epon_link_oam_keepalive_timer_start_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_epon_link_oam_keepalive_timer_start_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_epon_link_oam_keepalive_timer_start_id_unpack(bcmolt_epon_link_oam_keepalive_timer_start_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_epon_link_oam_keepalive_timer_started_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_epon_link_oam_keepalive_timer_started_id_pack(bcmolt_epon_link_oam_keepalive_timer_started_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_epon_link_oam_keepalive_timer_started_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_epon_link_oam_keepalive_timer_started_id_unpack(bcmolt_epon_link_oam_keepalive_timer_started_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_epon_link_oam_keepalive_timer_stop_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_epon_link_oam_keepalive_timer_stop_id_pack(bcmolt_epon_link_oam_keepalive_timer_stop_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_epon_link_oam_keepalive_timer_stop_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_epon_link_oam_keepalive_timer_stop_id_unpack(bcmolt_epon_link_oam_keepalive_timer_stop_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_epon_link_oam_keepalive_timer_stopped_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_epon_link_oam_keepalive_timer_stopped_id_pack(bcmolt_epon_link_oam_keepalive_timer_stopped_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_epon_link_oam_keepalive_timer_stopped_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_epon_link_oam_keepalive_timer_stopped_id_unpack(bcmolt_epon_link_oam_keepalive_timer_stopped_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_epon_link_preprovisioned_link_created_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_epon_link_preprovisioned_link_created_id_pack(bcmolt_epon_link_preprovisioned_link_created_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_epon_link_preprovisioned_link_created_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_epon_link_preprovisioned_link_created_id_unpack(bcmolt_epon_link_preprovisioned_link_created_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_epon_link_protection_switch_occurred_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_epon_link_protection_switch_occurred_id_pack(bcmolt_epon_link_protection_switch_occurred_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_epon_link_protection_switch_occurred_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_epon_link_protection_switch_occurred_id_unpack(bcmolt_epon_link_protection_switch_occurred_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_epon_link_range_value_changed_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_epon_link_range_value_changed_id_pack(bcmolt_epon_link_range_value_changed_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_epon_link_range_value_changed_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_epon_link_range_value_changed_id_unpack(bcmolt_epon_link_range_value_changed_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_epon_link_rerange_failure_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_epon_link_rerange_failure_id_pack(bcmolt_epon_link_rerange_failure_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_epon_link_rerange_failure_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_epon_link_rerange_failure_id_unpack(bcmolt_epon_link_rerange_failure_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_epon_link_stat_alarm_cleared_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_epon_link_stat_alarm_cleared_id_pack(bcmolt_epon_link_stat_alarm_cleared_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_epon_link_stat_alarm_cleared_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_epon_link_stat_alarm_cleared_id_unpack(bcmolt_epon_link_stat_alarm_cleared_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_epon_link_stat_alarm_raised_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_epon_link_stat_alarm_raised_id_pack(bcmolt_epon_link_stat_alarm_raised_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_epon_link_stat_alarm_raised_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_epon_link_stat_alarm_raised_id_unpack(bcmolt_epon_link_stat_alarm_raised_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_epon_link_stat_cfg_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_epon_link_stat_cfg_id_pack(bcmolt_epon_link_stat_cfg_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_epon_link_stat_cfg_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_epon_link_stat_cfg_id_unpack(bcmolt_epon_link_stat_cfg_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_epon_link_stat_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_epon_link_stat_id_pack(bcmolt_epon_link_stat_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_epon_link_stat_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_epon_link_stat_id_unpack(bcmolt_epon_link_stat_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_epon_link_state_flags to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_epon_link_state_flags_pack(bcmolt_epon_link_state_flags this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_epon_link_state_flags from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_epon_link_state_flags_unpack(bcmolt_epon_link_state_flags *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_epon_link_static_registration_done_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_epon_link_static_registration_done_id_pack(bcmolt_epon_link_static_registration_done_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_epon_link_static_registration_done_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_epon_link_static_registration_done_id_unpack(bcmolt_epon_link_static_registration_done_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_epon_link_static_registration_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_epon_link_static_registration_id_pack(bcmolt_epon_link_static_registration_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_epon_link_static_registration_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_epon_link_static_registration_id_unpack(bcmolt_epon_link_static_registration_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_epon_link_type to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_epon_link_type_pack(bcmolt_epon_link_type this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_epon_link_type from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_epon_link_type_unpack(bcmolt_epon_link_type *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_mpcp_gate_mode to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_mpcp_gate_mode_pack(bcmolt_mpcp_gate_mode this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_mpcp_gate_mode from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_mpcp_gate_mode_unpack(bcmolt_mpcp_gate_mode *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_mpcp_registration_gate_flags to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_mpcp_registration_gate_flags_pack(bcmolt_mpcp_registration_gate_flags this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_mpcp_registration_gate_flags from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_mpcp_registration_gate_flags_unpack(bcmolt_mpcp_registration_gate_flags *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_epon_ni_add_link_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_epon_ni_add_link_id_pack(bcmolt_epon_ni_add_link_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_epon_ni_add_link_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_epon_ni_add_link_id_unpack(bcmolt_epon_ni_add_link_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_epon_ni_add_multicast_link_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_epon_ni_add_multicast_link_id_pack(bcmolt_epon_ni_add_multicast_link_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_epon_ni_add_multicast_link_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_epon_ni_add_multicast_link_id_unpack(bcmolt_epon_ni_add_multicast_link_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_epon_ni_add_protected_standby_link_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_epon_ni_add_protected_standby_link_id_pack(bcmolt_epon_ni_add_protected_standby_link_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_epon_ni_add_protected_standby_link_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_epon_ni_add_protected_standby_link_id_unpack(bcmolt_epon_ni_add_protected_standby_link_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_epon_ni_auto_cfg_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_epon_ni_auto_cfg_id_pack(bcmolt_epon_ni_auto_cfg_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_epon_ni_auto_cfg_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_epon_ni_auto_cfg_id_unpack(bcmolt_epon_ni_auto_cfg_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_epon_ni_auto_rogue_scan_10g_failure_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_epon_ni_auto_rogue_scan_10g_failure_id_pack(bcmolt_epon_ni_auto_rogue_scan_10g_failure_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_epon_ni_auto_rogue_scan_10g_failure_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_epon_ni_auto_rogue_scan_10g_failure_id_unpack(bcmolt_epon_ni_auto_rogue_scan_10g_failure_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_epon_ni_auto_rogue_scan_1g_failure_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_epon_ni_auto_rogue_scan_1g_failure_id_pack(bcmolt_epon_ni_auto_rogue_scan_1g_failure_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_epon_ni_auto_rogue_scan_1g_failure_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_epon_ni_auto_rogue_scan_1g_failure_id_unpack(bcmolt_epon_ni_auto_rogue_scan_1g_failure_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_epon_ni_cfg_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_epon_ni_cfg_id_pack(bcmolt_epon_ni_cfg_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_epon_ni_cfg_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_epon_ni_cfg_id_unpack(bcmolt_epon_ni_cfg_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_epon_ni_en_state to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_epon_ni_en_state_pack(bcmolt_epon_ni_en_state this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_epon_ni_en_state from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_epon_ni_en_state_unpack(bcmolt_epon_ni_en_state *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_epon_ni_issue_rssi_grant_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_epon_ni_issue_rssi_grant_id_pack(bcmolt_epon_ni_issue_rssi_grant_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_epon_ni_issue_rssi_grant_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_epon_ni_issue_rssi_grant_id_unpack(bcmolt_epon_ni_issue_rssi_grant_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_epon_ni_key_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_epon_ni_key_id_pack(bcmolt_epon_ni_key_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_epon_ni_key_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_epon_ni_key_id_unpack(bcmolt_epon_ni_key_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_epon_ni_llid_quarantined_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_epon_ni_llid_quarantined_id_pack(bcmolt_epon_ni_llid_quarantined_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_epon_ni_llid_quarantined_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_epon_ni_llid_quarantined_id_unpack(bcmolt_epon_ni_llid_quarantined_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_epon_ni_mpcp_timestamp_changed_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_epon_ni_mpcp_timestamp_changed_id_pack(bcmolt_epon_ni_mpcp_timestamp_changed_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_epon_ni_mpcp_timestamp_changed_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_epon_ni_mpcp_timestamp_changed_id_unpack(bcmolt_epon_ni_mpcp_timestamp_changed_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_epon_ni_no_reports_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_epon_ni_no_reports_id_pack(bcmolt_epon_ni_no_reports_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_epon_ni_no_reports_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_epon_ni_no_reports_id_unpack(bcmolt_epon_ni_no_reports_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_epon_ni_onu_upgrade_complete_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_epon_ni_onu_upgrade_complete_id_pack(bcmolt_epon_ni_onu_upgrade_complete_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_epon_ni_onu_upgrade_complete_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_epon_ni_onu_upgrade_complete_id_unpack(bcmolt_epon_ni_onu_upgrade_complete_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_epon_ni_protection_switching_apply_rerange_delta_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_epon_ni_protection_switching_apply_rerange_delta_id_pack(bcmolt_epon_ni_protection_switching_apply_rerange_delta_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_epon_ni_protection_switching_apply_rerange_delta_id from 
+ * bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_epon_ni_protection_switching_apply_rerange_delta_id_unpack(bcmolt_epon_ni_protection_switching_apply_rerange_delta_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_epon_ni_rerange_failure_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_epon_ni_rerange_failure_id_pack(bcmolt_epon_ni_rerange_failure_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_epon_ni_rerange_failure_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_epon_ni_rerange_failure_id_unpack(bcmolt_epon_ni_rerange_failure_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_epon_ni_rogue_llid_scan_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_epon_ni_rogue_llid_scan_id_pack(bcmolt_epon_ni_rogue_llid_scan_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_epon_ni_rogue_llid_scan_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_epon_ni_rogue_llid_scan_id_unpack(bcmolt_epon_ni_rogue_llid_scan_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_epon_ni_rogue_scan_complete_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_epon_ni_rogue_scan_complete_id_pack(bcmolt_epon_ni_rogue_scan_complete_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_epon_ni_rogue_scan_complete_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_epon_ni_rogue_scan_complete_id_unpack(bcmolt_epon_ni_rogue_scan_complete_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_epon_ni_rssi_measurement_completed_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_epon_ni_rssi_measurement_completed_id_pack(bcmolt_epon_ni_rssi_measurement_completed_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_epon_ni_rssi_measurement_completed_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_epon_ni_rssi_measurement_completed_id_unpack(bcmolt_epon_ni_rssi_measurement_completed_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_epon_ni_set_epon_ni_en_state_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_epon_ni_set_epon_ni_en_state_id_pack(bcmolt_epon_ni_set_epon_ni_en_state_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_epon_ni_set_epon_ni_en_state_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_epon_ni_set_epon_ni_en_state_id_unpack(bcmolt_epon_ni_set_epon_ni_en_state_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_epon_ni_start_onu_upgrade_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_epon_ni_start_onu_upgrade_id_pack(bcmolt_epon_ni_start_onu_upgrade_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_epon_ni_start_onu_upgrade_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_epon_ni_start_onu_upgrade_id_unpack(bcmolt_epon_ni_start_onu_upgrade_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_epon_ni_state_change_completed_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_epon_ni_state_change_completed_id_pack(bcmolt_epon_ni_state_change_completed_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_epon_ni_state_change_completed_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_epon_ni_state_change_completed_id_unpack(bcmolt_epon_ni_state_change_completed_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_epon_oam_extension_type to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_epon_oam_extension_type_pack(bcmolt_epon_oam_extension_type this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_epon_oam_extension_type from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_epon_oam_extension_type_unpack(bcmolt_epon_oam_extension_type *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_epon_onu_10g_us_auto_cfg_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_epon_onu_10g_us_auto_cfg_id_pack(bcmolt_epon_onu_10g_us_auto_cfg_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_epon_onu_10g_us_auto_cfg_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_epon_onu_10g_us_auto_cfg_id_unpack(bcmolt_epon_onu_10g_us_auto_cfg_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_epon_onu_10g_us_cfg_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_epon_onu_10g_us_cfg_id_pack(bcmolt_epon_onu_10g_us_cfg_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_epon_onu_10g_us_cfg_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_epon_onu_10g_us_cfg_id_unpack(bcmolt_epon_onu_10g_us_cfg_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_epon_onu_10g_us_key_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_epon_onu_10g_us_key_id_pack(bcmolt_epon_onu_10g_us_key_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_epon_onu_10g_us_key_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_epon_onu_10g_us_key_id_unpack(bcmolt_epon_onu_10g_us_key_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_epon_onu_10g_us_stat_alarm_cleared_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_epon_onu_10g_us_stat_alarm_cleared_id_pack(bcmolt_epon_onu_10g_us_stat_alarm_cleared_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_epon_onu_10g_us_stat_alarm_cleared_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_epon_onu_10g_us_stat_alarm_cleared_id_unpack(bcmolt_epon_onu_10g_us_stat_alarm_cleared_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_epon_onu_10g_us_stat_alarm_raised_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_epon_onu_10g_us_stat_alarm_raised_id_pack(bcmolt_epon_onu_10g_us_stat_alarm_raised_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_epon_onu_10g_us_stat_alarm_raised_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_epon_onu_10g_us_stat_alarm_raised_id_unpack(bcmolt_epon_onu_10g_us_stat_alarm_raised_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_epon_onu_10g_us_stat_cfg_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_epon_onu_10g_us_stat_cfg_id_pack(bcmolt_epon_onu_10g_us_stat_cfg_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_epon_onu_10g_us_stat_cfg_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_epon_onu_10g_us_stat_cfg_id_unpack(bcmolt_epon_onu_10g_us_stat_cfg_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_epon_onu_10g_us_stat_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_epon_onu_10g_us_stat_id_pack(bcmolt_epon_onu_10g_us_stat_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_epon_onu_10g_us_stat_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_epon_onu_10g_us_stat_id_unpack(bcmolt_epon_onu_10g_us_stat_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_epon_onu_1g_us_auto_cfg_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_epon_onu_1g_us_auto_cfg_id_pack(bcmolt_epon_onu_1g_us_auto_cfg_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_epon_onu_1g_us_auto_cfg_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_epon_onu_1g_us_auto_cfg_id_unpack(bcmolt_epon_onu_1g_us_auto_cfg_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_epon_onu_1g_us_cfg_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_epon_onu_1g_us_cfg_id_pack(bcmolt_epon_onu_1g_us_cfg_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_epon_onu_1g_us_cfg_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_epon_onu_1g_us_cfg_id_unpack(bcmolt_epon_onu_1g_us_cfg_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_epon_onu_1g_us_key_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_epon_onu_1g_us_key_id_pack(bcmolt_epon_onu_1g_us_key_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_epon_onu_1g_us_key_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_epon_onu_1g_us_key_id_unpack(bcmolt_epon_onu_1g_us_key_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_epon_onu_1g_us_stat_alarm_cleared_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_epon_onu_1g_us_stat_alarm_cleared_id_pack(bcmolt_epon_onu_1g_us_stat_alarm_cleared_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_epon_onu_1g_us_stat_alarm_cleared_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_epon_onu_1g_us_stat_alarm_cleared_id_unpack(bcmolt_epon_onu_1g_us_stat_alarm_cleared_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_epon_onu_1g_us_stat_alarm_raised_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_epon_onu_1g_us_stat_alarm_raised_id_pack(bcmolt_epon_onu_1g_us_stat_alarm_raised_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_epon_onu_1g_us_stat_alarm_raised_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_epon_onu_1g_us_stat_alarm_raised_id_unpack(bcmolt_epon_onu_1g_us_stat_alarm_raised_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_epon_onu_1g_us_stat_cfg_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_epon_onu_1g_us_stat_cfg_id_pack(bcmolt_epon_onu_1g_us_stat_cfg_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_epon_onu_1g_us_stat_cfg_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_epon_onu_1g_us_stat_cfg_id_unpack(bcmolt_epon_onu_1g_us_stat_cfg_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_epon_onu_1g_us_stat_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_epon_onu_1g_us_stat_id_pack(bcmolt_epon_onu_1g_us_stat_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_epon_onu_1g_us_stat_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_epon_onu_1g_us_stat_id_unpack(bcmolt_epon_onu_1g_us_stat_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_epon_onu_upgrade_onu_response_code to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_epon_onu_upgrade_onu_response_code_pack(bcmolt_epon_onu_upgrade_onu_response_code this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_epon_onu_upgrade_onu_response_code from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_epon_onu_upgrade_onu_response_code_unpack(bcmolt_epon_onu_upgrade_onu_response_code *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_epon_onu_upgrade_return_code to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_epon_onu_upgrade_return_code_pack(bcmolt_epon_onu_upgrade_return_code this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_epon_onu_upgrade_return_code from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_epon_onu_upgrade_return_code_unpack(bcmolt_epon_onu_upgrade_return_code *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_epon_path_10g_ds_auto_cfg_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_epon_path_10g_ds_auto_cfg_id_pack(bcmolt_epon_path_10g_ds_auto_cfg_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_epon_path_10g_ds_auto_cfg_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_epon_path_10g_ds_auto_cfg_id_unpack(bcmolt_epon_path_10g_ds_auto_cfg_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_epon_path_10g_ds_cfg_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_epon_path_10g_ds_cfg_id_pack(bcmolt_epon_path_10g_ds_cfg_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_epon_path_10g_ds_cfg_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_epon_path_10g_ds_cfg_id_unpack(bcmolt_epon_path_10g_ds_cfg_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_epon_path_10g_ds_key_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_epon_path_10g_ds_key_id_pack(bcmolt_epon_path_10g_ds_key_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_epon_path_10g_ds_key_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_epon_path_10g_ds_key_id_unpack(bcmolt_epon_path_10g_ds_key_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_epon_path_10g_ds_stat_alarm_cleared_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_epon_path_10g_ds_stat_alarm_cleared_id_pack(bcmolt_epon_path_10g_ds_stat_alarm_cleared_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_epon_path_10g_ds_stat_alarm_cleared_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_epon_path_10g_ds_stat_alarm_cleared_id_unpack(bcmolt_epon_path_10g_ds_stat_alarm_cleared_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_epon_path_10g_ds_stat_alarm_raised_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_epon_path_10g_ds_stat_alarm_raised_id_pack(bcmolt_epon_path_10g_ds_stat_alarm_raised_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_epon_path_10g_ds_stat_alarm_raised_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_epon_path_10g_ds_stat_alarm_raised_id_unpack(bcmolt_epon_path_10g_ds_stat_alarm_raised_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_epon_path_10g_ds_stat_cfg_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_epon_path_10g_ds_stat_cfg_id_pack(bcmolt_epon_path_10g_ds_stat_cfg_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_epon_path_10g_ds_stat_cfg_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_epon_path_10g_ds_stat_cfg_id_unpack(bcmolt_epon_path_10g_ds_stat_cfg_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_epon_path_10g_ds_stat_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_epon_path_10g_ds_stat_id_pack(bcmolt_epon_path_10g_ds_stat_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_epon_path_10g_ds_stat_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_epon_path_10g_ds_stat_id_unpack(bcmolt_epon_path_10g_ds_stat_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_epon_path_10g_us_auto_cfg_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_epon_path_10g_us_auto_cfg_id_pack(bcmolt_epon_path_10g_us_auto_cfg_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_epon_path_10g_us_auto_cfg_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_epon_path_10g_us_auto_cfg_id_unpack(bcmolt_epon_path_10g_us_auto_cfg_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_epon_path_10g_us_cfg_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_epon_path_10g_us_cfg_id_pack(bcmolt_epon_path_10g_us_cfg_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_epon_path_10g_us_cfg_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_epon_path_10g_us_cfg_id_unpack(bcmolt_epon_path_10g_us_cfg_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_epon_path_10g_us_key_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_epon_path_10g_us_key_id_pack(bcmolt_epon_path_10g_us_key_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_epon_path_10g_us_key_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_epon_path_10g_us_key_id_unpack(bcmolt_epon_path_10g_us_key_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_epon_path_10g_us_stat_alarm_cleared_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_epon_path_10g_us_stat_alarm_cleared_id_pack(bcmolt_epon_path_10g_us_stat_alarm_cleared_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_epon_path_10g_us_stat_alarm_cleared_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_epon_path_10g_us_stat_alarm_cleared_id_unpack(bcmolt_epon_path_10g_us_stat_alarm_cleared_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_epon_path_10g_us_stat_alarm_raised_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_epon_path_10g_us_stat_alarm_raised_id_pack(bcmolt_epon_path_10g_us_stat_alarm_raised_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_epon_path_10g_us_stat_alarm_raised_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_epon_path_10g_us_stat_alarm_raised_id_unpack(bcmolt_epon_path_10g_us_stat_alarm_raised_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_epon_path_10g_us_stat_cfg_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_epon_path_10g_us_stat_cfg_id_pack(bcmolt_epon_path_10g_us_stat_cfg_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_epon_path_10g_us_stat_cfg_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_epon_path_10g_us_stat_cfg_id_unpack(bcmolt_epon_path_10g_us_stat_cfg_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_epon_path_10g_us_stat_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_epon_path_10g_us_stat_id_pack(bcmolt_epon_path_10g_us_stat_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_epon_path_10g_us_stat_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_epon_path_10g_us_stat_id_unpack(bcmolt_epon_path_10g_us_stat_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_epon_path_1g_ds_auto_cfg_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_epon_path_1g_ds_auto_cfg_id_pack(bcmolt_epon_path_1g_ds_auto_cfg_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_epon_path_1g_ds_auto_cfg_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_epon_path_1g_ds_auto_cfg_id_unpack(bcmolt_epon_path_1g_ds_auto_cfg_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_epon_path_1g_ds_cfg_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_epon_path_1g_ds_cfg_id_pack(bcmolt_epon_path_1g_ds_cfg_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_epon_path_1g_ds_cfg_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_epon_path_1g_ds_cfg_id_unpack(bcmolt_epon_path_1g_ds_cfg_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_epon_path_1g_ds_key_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_epon_path_1g_ds_key_id_pack(bcmolt_epon_path_1g_ds_key_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_epon_path_1g_ds_key_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_epon_path_1g_ds_key_id_unpack(bcmolt_epon_path_1g_ds_key_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_epon_path_1g_ds_stat_alarm_cleared_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_epon_path_1g_ds_stat_alarm_cleared_id_pack(bcmolt_epon_path_1g_ds_stat_alarm_cleared_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_epon_path_1g_ds_stat_alarm_cleared_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_epon_path_1g_ds_stat_alarm_cleared_id_unpack(bcmolt_epon_path_1g_ds_stat_alarm_cleared_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_epon_path_1g_ds_stat_alarm_raised_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_epon_path_1g_ds_stat_alarm_raised_id_pack(bcmolt_epon_path_1g_ds_stat_alarm_raised_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_epon_path_1g_ds_stat_alarm_raised_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_epon_path_1g_ds_stat_alarm_raised_id_unpack(bcmolt_epon_path_1g_ds_stat_alarm_raised_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_epon_path_1g_ds_stat_cfg_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_epon_path_1g_ds_stat_cfg_id_pack(bcmolt_epon_path_1g_ds_stat_cfg_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_epon_path_1g_ds_stat_cfg_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_epon_path_1g_ds_stat_cfg_id_unpack(bcmolt_epon_path_1g_ds_stat_cfg_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_epon_path_1g_ds_stat_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_epon_path_1g_ds_stat_id_pack(bcmolt_epon_path_1g_ds_stat_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_epon_path_1g_ds_stat_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_epon_path_1g_ds_stat_id_unpack(bcmolt_epon_path_1g_ds_stat_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_epon_path_1g_us_auto_cfg_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_epon_path_1g_us_auto_cfg_id_pack(bcmolt_epon_path_1g_us_auto_cfg_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_epon_path_1g_us_auto_cfg_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_epon_path_1g_us_auto_cfg_id_unpack(bcmolt_epon_path_1g_us_auto_cfg_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_epon_path_1g_us_cfg_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_epon_path_1g_us_cfg_id_pack(bcmolt_epon_path_1g_us_cfg_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_epon_path_1g_us_cfg_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_epon_path_1g_us_cfg_id_unpack(bcmolt_epon_path_1g_us_cfg_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_epon_path_1g_us_key_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_epon_path_1g_us_key_id_pack(bcmolt_epon_path_1g_us_key_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_epon_path_1g_us_key_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_epon_path_1g_us_key_id_unpack(bcmolt_epon_path_1g_us_key_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_epon_path_1g_us_stat_alarm_cleared_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_epon_path_1g_us_stat_alarm_cleared_id_pack(bcmolt_epon_path_1g_us_stat_alarm_cleared_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_epon_path_1g_us_stat_alarm_cleared_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_epon_path_1g_us_stat_alarm_cleared_id_unpack(bcmolt_epon_path_1g_us_stat_alarm_cleared_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_epon_path_1g_us_stat_alarm_raised_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_epon_path_1g_us_stat_alarm_raised_id_pack(bcmolt_epon_path_1g_us_stat_alarm_raised_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_epon_path_1g_us_stat_alarm_raised_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_epon_path_1g_us_stat_alarm_raised_id_unpack(bcmolt_epon_path_1g_us_stat_alarm_raised_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_epon_path_1g_us_stat_cfg_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_epon_path_1g_us_stat_cfg_id_pack(bcmolt_epon_path_1g_us_stat_cfg_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_epon_path_1g_us_stat_cfg_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_epon_path_1g_us_stat_cfg_id_unpack(bcmolt_epon_path_1g_us_stat_cfg_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_epon_path_1g_us_stat_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_epon_path_1g_us_stat_id_pack(bcmolt_epon_path_1g_us_stat_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_epon_path_1g_us_stat_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_epon_path_1g_us_stat_id_unpack(bcmolt_epon_path_1g_us_stat_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_epon_protection_state to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_epon_protection_state_pack(bcmolt_epon_protection_state this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_epon_protection_state from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_epon_protection_state_unpack(bcmolt_epon_protection_state *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_epon_protection_switching_type to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_epon_protection_switching_type_pack(bcmolt_epon_protection_switching_type this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_epon_protection_switching_type from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_epon_protection_switching_type_unpack(bcmolt_epon_protection_switching_type *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_protection_switching_detection_options to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_protection_switching_detection_options_pack(bcmolt_protection_switching_detection_options this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_protection_switching_detection_options from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_protection_switching_detection_options_unpack(bcmolt_protection_switching_detection_options *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_epon_protection_switching_reranging_options to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_epon_protection_switching_reranging_options_pack(bcmolt_epon_protection_switching_reranging_options this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_epon_protection_switching_reranging_options from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_epon_protection_switching_reranging_options_unpack(bcmolt_epon_protection_switching_reranging_options *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_gpio_pin to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_gpio_pin_pack(bcmolt_gpio_pin this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_gpio_pin from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_gpio_pin_unpack(bcmolt_gpio_pin *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_gpio_polarity to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_gpio_polarity_pack(bcmolt_gpio_polarity this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_gpio_polarity from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_gpio_polarity_unpack(bcmolt_gpio_polarity *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_epon_rp_cfg_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_epon_rp_cfg_id_pack(bcmolt_epon_rp_cfg_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_epon_rp_cfg_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_epon_rp_cfg_id_unpack(bcmolt_epon_rp_cfg_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_epon_rp_key_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_epon_rp_key_id_pack(bcmolt_epon_rp_key_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_epon_rp_key_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_epon_rp_key_id_unpack(bcmolt_epon_rp_key_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_ext_irq to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_ext_irq_pack(bcmolt_ext_irq this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_ext_irq from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_ext_irq_unpack(bcmolt_ext_irq *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_flush_mac_table_option to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_flush_mac_table_option_pack(bcmolt_flush_mac_table_option this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_flush_mac_table_option from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_flush_mac_table_option_unpack(bcmolt_flush_mac_table_option *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_frequency_adjustment_direction to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_frequency_adjustment_direction_pack(bcmolt_frequency_adjustment_direction this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_frequency_adjustment_direction from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_frequency_adjustment_direction_unpack(bcmolt_frequency_adjustment_direction *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_gem_port_direction to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_gem_port_direction_pack(bcmolt_gem_port_direction this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_gem_port_direction from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_gem_port_direction_unpack(bcmolt_gem_port_direction *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_gem_port_type to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_gem_port_type_pack(bcmolt_gem_port_type this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_gem_port_type from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_gem_port_type_unpack(bcmolt_gem_port_type *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_gem_port_operation to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_gem_port_operation_pack(bcmolt_gem_port_operation this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_gem_port_operation from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_gem_port_operation_unpack(bcmolt_gem_port_operation *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_gpio_cfg_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_gpio_cfg_id_pack(bcmolt_gpio_cfg_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_gpio_cfg_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_gpio_cfg_id_unpack(bcmolt_gpio_cfg_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_gpio_key_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_gpio_key_id_pack(bcmolt_gpio_key_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_gpio_key_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_gpio_key_id_unpack(bcmolt_gpio_key_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_gpio_pin_dir to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_gpio_pin_dir_pack(bcmolt_gpio_pin_dir this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_gpio_pin_dir from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_gpio_pin_dir_unpack(bcmolt_gpio_pin_dir *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_gpio_value to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_gpio_value_pack(bcmolt_gpio_value this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_gpio_value from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_gpio_value_unpack(bcmolt_gpio_value *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_gpon_alloc_auto_cfg_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_gpon_alloc_auto_cfg_id_pack(bcmolt_gpon_alloc_auto_cfg_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_gpon_alloc_auto_cfg_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_gpon_alloc_auto_cfg_id_unpack(bcmolt_gpon_alloc_auto_cfg_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_gpon_alloc_cfg_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_gpon_alloc_cfg_id_pack(bcmolt_gpon_alloc_cfg_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_gpon_alloc_cfg_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_gpon_alloc_cfg_id_unpack(bcmolt_gpon_alloc_cfg_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_gpon_alloc_configuration_completed_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_gpon_alloc_configuration_completed_id_pack(bcmolt_gpon_alloc_configuration_completed_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_gpon_alloc_configuration_completed_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_gpon_alloc_configuration_completed_id_unpack(bcmolt_gpon_alloc_configuration_completed_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_gpon_alloc_get_alloc_stats_completed_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_gpon_alloc_get_alloc_stats_completed_id_pack(bcmolt_gpon_alloc_get_alloc_stats_completed_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_gpon_alloc_get_alloc_stats_completed_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_gpon_alloc_get_alloc_stats_completed_id_unpack(bcmolt_gpon_alloc_get_alloc_stats_completed_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_gpon_alloc_get_stats_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_gpon_alloc_get_stats_id_pack(bcmolt_gpon_alloc_get_stats_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_gpon_alloc_get_stats_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_gpon_alloc_get_stats_id_unpack(bcmolt_gpon_alloc_get_stats_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_gpon_alloc_key_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_gpon_alloc_key_id_pack(bcmolt_gpon_alloc_key_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_gpon_alloc_key_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_gpon_alloc_key_id_unpack(bcmolt_gpon_alloc_key_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_gpon_alloc_set_state_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_gpon_alloc_set_state_id_pack(bcmolt_gpon_alloc_set_state_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_gpon_alloc_set_state_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_gpon_alloc_set_state_id_unpack(bcmolt_gpon_alloc_set_state_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_gpon_alloc_stat_alarm_cleared_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_gpon_alloc_stat_alarm_cleared_id_pack(bcmolt_gpon_alloc_stat_alarm_cleared_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_gpon_alloc_stat_alarm_cleared_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_gpon_alloc_stat_alarm_cleared_id_unpack(bcmolt_gpon_alloc_stat_alarm_cleared_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_gpon_alloc_stat_alarm_raised_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_gpon_alloc_stat_alarm_raised_id_pack(bcmolt_gpon_alloc_stat_alarm_raised_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_gpon_alloc_stat_alarm_raised_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_gpon_alloc_stat_alarm_raised_id_unpack(bcmolt_gpon_alloc_stat_alarm_raised_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_gpon_alloc_stat_cfg_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_gpon_alloc_stat_cfg_id_pack(bcmolt_gpon_alloc_stat_cfg_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_gpon_alloc_stat_cfg_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_gpon_alloc_stat_cfg_id_unpack(bcmolt_gpon_alloc_stat_cfg_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_gpon_alloc_stat_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_gpon_alloc_stat_id_pack(bcmolt_gpon_alloc_stat_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_gpon_alloc_stat_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_gpon_alloc_stat_id_unpack(bcmolt_gpon_alloc_stat_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_gpon_gem_port_auto_cfg_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_gpon_gem_port_auto_cfg_id_pack(bcmolt_gpon_gem_port_auto_cfg_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_gpon_gem_port_auto_cfg_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_gpon_gem_port_auto_cfg_id_unpack(bcmolt_gpon_gem_port_auto_cfg_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_gpon_gem_port_cfg_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_gpon_gem_port_cfg_id_pack(bcmolt_gpon_gem_port_cfg_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_gpon_gem_port_cfg_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_gpon_gem_port_cfg_id_unpack(bcmolt_gpon_gem_port_cfg_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_gpon_gem_port_configuration_completed_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_gpon_gem_port_configuration_completed_id_pack(bcmolt_gpon_gem_port_configuration_completed_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_gpon_gem_port_configuration_completed_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_gpon_gem_port_configuration_completed_id_unpack(bcmolt_gpon_gem_port_configuration_completed_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_gpon_gem_port_key_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_gpon_gem_port_key_id_pack(bcmolt_gpon_gem_port_key_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_gpon_gem_port_key_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_gpon_gem_port_key_id_unpack(bcmolt_gpon_gem_port_key_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_gpon_gem_port_set_state_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_gpon_gem_port_set_state_id_pack(bcmolt_gpon_gem_port_set_state_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_gpon_gem_port_set_state_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_gpon_gem_port_set_state_id_unpack(bcmolt_gpon_gem_port_set_state_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_gpon_gem_port_stat_alarm_cleared_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_gpon_gem_port_stat_alarm_cleared_id_pack(bcmolt_gpon_gem_port_stat_alarm_cleared_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_gpon_gem_port_stat_alarm_cleared_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_gpon_gem_port_stat_alarm_cleared_id_unpack(bcmolt_gpon_gem_port_stat_alarm_cleared_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_gpon_gem_port_stat_alarm_raised_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_gpon_gem_port_stat_alarm_raised_id_pack(bcmolt_gpon_gem_port_stat_alarm_raised_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_gpon_gem_port_stat_alarm_raised_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_gpon_gem_port_stat_alarm_raised_id_unpack(bcmolt_gpon_gem_port_stat_alarm_raised_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_gpon_gem_port_stat_cfg_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_gpon_gem_port_stat_cfg_id_pack(bcmolt_gpon_gem_port_stat_cfg_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_gpon_gem_port_stat_cfg_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_gpon_gem_port_stat_cfg_id_unpack(bcmolt_gpon_gem_port_stat_cfg_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_gpon_gem_port_stat_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_gpon_gem_port_stat_id_pack(bcmolt_gpon_gem_port_stat_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_gpon_gem_port_stat_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_gpon_gem_port_stat_id_unpack(bcmolt_gpon_gem_port_stat_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_gpon_gem_port_state to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_gpon_gem_port_state_pack(bcmolt_gpon_gem_port_state this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_gpon_gem_port_state from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_gpon_gem_port_state_unpack(bcmolt_gpon_gem_port_state *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_gpon_iwf_auto_cfg_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_gpon_iwf_auto_cfg_id_pack(bcmolt_gpon_iwf_auto_cfg_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_gpon_iwf_auto_cfg_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_gpon_iwf_auto_cfg_id_unpack(bcmolt_gpon_iwf_auto_cfg_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_gpon_iwf_cfg_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_gpon_iwf_cfg_id_pack(bcmolt_gpon_iwf_cfg_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_gpon_iwf_cfg_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_gpon_iwf_cfg_id_unpack(bcmolt_gpon_iwf_cfg_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_gpon_iwf_ds_egress_flow_cfg_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_gpon_iwf_ds_egress_flow_cfg_id_pack(bcmolt_gpon_iwf_ds_egress_flow_cfg_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_gpon_iwf_ds_egress_flow_cfg_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_gpon_iwf_ds_egress_flow_cfg_id_unpack(bcmolt_gpon_iwf_ds_egress_flow_cfg_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_gpon_iwf_ds_egress_flow_key_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_gpon_iwf_ds_egress_flow_key_id_pack(bcmolt_gpon_iwf_ds_egress_flow_key_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_gpon_iwf_ds_egress_flow_key_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_gpon_iwf_ds_egress_flow_key_id_unpack(bcmolt_gpon_iwf_ds_egress_flow_key_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_gpon_iwf_ds_ingress_flow_cfg_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_gpon_iwf_ds_ingress_flow_cfg_id_pack(bcmolt_gpon_iwf_ds_ingress_flow_cfg_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_gpon_iwf_ds_ingress_flow_cfg_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_gpon_iwf_ds_ingress_flow_cfg_id_unpack(bcmolt_gpon_iwf_ds_ingress_flow_cfg_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_gpon_iwf_ds_ingress_flow_key_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_gpon_iwf_ds_ingress_flow_key_id_pack(bcmolt_gpon_iwf_ds_ingress_flow_key_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_gpon_iwf_ds_ingress_flow_key_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_gpon_iwf_ds_ingress_flow_key_id_unpack(bcmolt_gpon_iwf_ds_ingress_flow_key_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_gpon_iwf_flush_mac_table_completed_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_gpon_iwf_flush_mac_table_completed_id_pack(bcmolt_gpon_iwf_flush_mac_table_completed_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_gpon_iwf_flush_mac_table_completed_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_gpon_iwf_flush_mac_table_completed_id_unpack(bcmolt_gpon_iwf_flush_mac_table_completed_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_gpon_iwf_flush_mac_table_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_gpon_iwf_flush_mac_table_id_pack(bcmolt_gpon_iwf_flush_mac_table_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_gpon_iwf_flush_mac_table_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_gpon_iwf_flush_mac_table_id_unpack(bcmolt_gpon_iwf_flush_mac_table_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_gpon_iwf_key_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_gpon_iwf_key_id_pack(bcmolt_gpon_iwf_key_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_gpon_iwf_key_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_gpon_iwf_key_id_unpack(bcmolt_gpon_iwf_key_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_gpon_iwf_mac_table_auto_cfg_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_gpon_iwf_mac_table_auto_cfg_id_pack(bcmolt_gpon_iwf_mac_table_auto_cfg_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_gpon_iwf_mac_table_auto_cfg_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_gpon_iwf_mac_table_auto_cfg_id_unpack(bcmolt_gpon_iwf_mac_table_auto_cfg_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_gpon_iwf_mac_table_cfg_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_gpon_iwf_mac_table_cfg_id_pack(bcmolt_gpon_iwf_mac_table_cfg_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_gpon_iwf_mac_table_cfg_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_gpon_iwf_mac_table_cfg_id_unpack(bcmolt_gpon_iwf_mac_table_cfg_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_gpon_iwf_mac_table_key_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_gpon_iwf_mac_table_key_id_pack(bcmolt_gpon_iwf_mac_table_key_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_gpon_iwf_mac_table_key_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_gpon_iwf_mac_table_key_id_unpack(bcmolt_gpon_iwf_mac_table_key_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_gpon_iwf_mac_table_mac_aged_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_gpon_iwf_mac_table_mac_aged_id_pack(bcmolt_gpon_iwf_mac_table_mac_aged_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_gpon_iwf_mac_table_mac_aged_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_gpon_iwf_mac_table_mac_aged_id_unpack(bcmolt_gpon_iwf_mac_table_mac_aged_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_gpon_iwf_mac_table_mac_dropped_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_gpon_iwf_mac_table_mac_dropped_id_pack(bcmolt_gpon_iwf_mac_table_mac_dropped_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_gpon_iwf_mac_table_mac_dropped_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_gpon_iwf_mac_table_mac_dropped_id_unpack(bcmolt_gpon_iwf_mac_table_mac_dropped_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_gpon_iwf_mac_table_mac_move_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_gpon_iwf_mac_table_mac_move_id_pack(bcmolt_gpon_iwf_mac_table_mac_move_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_gpon_iwf_mac_table_mac_move_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_gpon_iwf_mac_table_mac_move_id_unpack(bcmolt_gpon_iwf_mac_table_mac_move_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_gpon_iwf_mac_table_new_mac_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_gpon_iwf_mac_table_new_mac_id_pack(bcmolt_gpon_iwf_mac_table_new_mac_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_gpon_iwf_mac_table_new_mac_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_gpon_iwf_mac_table_new_mac_id_unpack(bcmolt_gpon_iwf_mac_table_new_mac_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_gpon_iwf_scan_mac_table_completed_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_gpon_iwf_scan_mac_table_completed_id_pack(bcmolt_gpon_iwf_scan_mac_table_completed_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_gpon_iwf_scan_mac_table_completed_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_gpon_iwf_scan_mac_table_completed_id_unpack(bcmolt_gpon_iwf_scan_mac_table_completed_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_gpon_iwf_scan_mac_table_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_gpon_iwf_scan_mac_table_id_pack(bcmolt_gpon_iwf_scan_mac_table_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_gpon_iwf_scan_mac_table_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_gpon_iwf_scan_mac_table_id_unpack(bcmolt_gpon_iwf_scan_mac_table_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_gpon_iwf_stat_alarm_cleared_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_gpon_iwf_stat_alarm_cleared_id_pack(bcmolt_gpon_iwf_stat_alarm_cleared_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_gpon_iwf_stat_alarm_cleared_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_gpon_iwf_stat_alarm_cleared_id_unpack(bcmolt_gpon_iwf_stat_alarm_cleared_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_gpon_iwf_stat_alarm_raised_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_gpon_iwf_stat_alarm_raised_id_pack(bcmolt_gpon_iwf_stat_alarm_raised_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_gpon_iwf_stat_alarm_raised_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_gpon_iwf_stat_alarm_raised_id_unpack(bcmolt_gpon_iwf_stat_alarm_raised_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_gpon_iwf_stat_cfg_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_gpon_iwf_stat_cfg_id_pack(bcmolt_gpon_iwf_stat_cfg_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_gpon_iwf_stat_cfg_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_gpon_iwf_stat_cfg_id_unpack(bcmolt_gpon_iwf_stat_cfg_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_gpon_iwf_stat_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_gpon_iwf_stat_id_pack(bcmolt_gpon_iwf_stat_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_gpon_iwf_stat_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_gpon_iwf_stat_id_unpack(bcmolt_gpon_iwf_stat_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_gpon_iwf_us_flow_cfg_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_gpon_iwf_us_flow_cfg_id_pack(bcmolt_gpon_iwf_us_flow_cfg_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_gpon_iwf_us_flow_cfg_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_gpon_iwf_us_flow_cfg_id_unpack(bcmolt_gpon_iwf_us_flow_cfg_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_gpon_iwf_us_flow_key_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_gpon_iwf_us_flow_key_id_pack(bcmolt_gpon_iwf_us_flow_key_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_gpon_iwf_us_flow_key_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_gpon_iwf_us_flow_key_id_unpack(bcmolt_gpon_iwf_us_flow_key_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_key_exchange_mode to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_key_exchange_mode_pack(bcmolt_key_exchange_mode this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_key_exchange_mode from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_key_exchange_mode_unpack(bcmolt_key_exchange_mode *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_gpon_ni_activate_all_onus_completed_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_gpon_ni_activate_all_onus_completed_id_pack(bcmolt_gpon_ni_activate_all_onus_completed_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_gpon_ni_activate_all_onus_completed_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_gpon_ni_activate_all_onus_completed_id_unpack(bcmolt_gpon_ni_activate_all_onus_completed_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_gpon_ni_auto_cfg_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_gpon_ni_auto_cfg_id_pack(bcmolt_gpon_ni_auto_cfg_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_gpon_ni_auto_cfg_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_gpon_ni_auto_cfg_id_unpack(bcmolt_gpon_ni_auto_cfg_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_gpon_ni_broadcast_ploam_packet_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_gpon_ni_broadcast_ploam_packet_id_pack(bcmolt_gpon_ni_broadcast_ploam_packet_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_gpon_ni_broadcast_ploam_packet_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_gpon_ni_broadcast_ploam_packet_id_unpack(bcmolt_gpon_ni_broadcast_ploam_packet_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_gpon_ni_cfg_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_gpon_ni_cfg_id_pack(bcmolt_gpon_ni_cfg_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_gpon_ni_cfg_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_gpon_ni_cfg_id_unpack(bcmolt_gpon_ni_cfg_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_gpon_ni_cpu_packets_failure_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_gpon_ni_cpu_packets_failure_id_pack(bcmolt_gpon_ni_cpu_packets_failure_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_gpon_ni_cpu_packets_failure_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_gpon_ni_cpu_packets_failure_id_unpack(bcmolt_gpon_ni_cpu_packets_failure_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_gpon_ni_cpu_packets_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_gpon_ni_cpu_packets_id_pack(bcmolt_gpon_ni_cpu_packets_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_gpon_ni_cpu_packets_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_gpon_ni_cpu_packets_id_unpack(bcmolt_gpon_ni_cpu_packets_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_gpon_ni_deactivate_all_onus_completed_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_gpon_ni_deactivate_all_onus_completed_id_pack(bcmolt_gpon_ni_deactivate_all_onus_completed_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_gpon_ni_deactivate_all_onus_completed_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_gpon_ni_deactivate_all_onus_completed_id_unpack(bcmolt_gpon_ni_deactivate_all_onus_completed_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_gpon_ni_disable_all_onus_completed_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_gpon_ni_disable_all_onus_completed_id_pack(bcmolt_gpon_ni_disable_all_onus_completed_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_gpon_ni_disable_all_onus_completed_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_gpon_ni_disable_all_onus_completed_id_unpack(bcmolt_gpon_ni_disable_all_onus_completed_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_gpon_ni_disable_serial_number_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_gpon_ni_disable_serial_number_id_pack(bcmolt_gpon_ni_disable_serial_number_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_gpon_ni_disable_serial_number_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_gpon_ni_disable_serial_number_id_unpack(bcmolt_gpon_ni_disable_serial_number_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_gpon_ni_enable_all_onus_completed_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_gpon_ni_enable_all_onus_completed_id_pack(bcmolt_gpon_ni_enable_all_onus_completed_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_gpon_ni_enable_all_onus_completed_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_gpon_ni_enable_all_onus_completed_id_unpack(bcmolt_gpon_ni_enable_all_onus_completed_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_gpon_ni_key_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_gpon_ni_key_id_pack(bcmolt_gpon_ni_key_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_gpon_ni_key_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_gpon_ni_key_id_unpack(bcmolt_gpon_ni_key_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_gpon_ni_los_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_gpon_ni_los_id_pack(bcmolt_gpon_ni_los_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_gpon_ni_los_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_gpon_ni_los_id_unpack(bcmolt_gpon_ni_los_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_gpon_ni_onu_discovered_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_gpon_ni_onu_discovered_id_pack(bcmolt_gpon_ni_onu_discovered_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_gpon_ni_onu_discovered_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_gpon_ni_onu_discovered_id_unpack(bcmolt_gpon_ni_onu_discovered_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_gpon_ni_onu_upgrade_complete_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_gpon_ni_onu_upgrade_complete_id_pack(bcmolt_gpon_ni_onu_upgrade_complete_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_gpon_ni_onu_upgrade_complete_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_gpon_ni_onu_upgrade_complete_id_unpack(bcmolt_gpon_ni_onu_upgrade_complete_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_gpon_ni_protection_switching_onus_ranged_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_gpon_ni_protection_switching_onus_ranged_id_pack(bcmolt_gpon_ni_protection_switching_onus_ranged_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_gpon_ni_protection_switching_onus_ranged_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_gpon_ni_protection_switching_onus_ranged_id_unpack(bcmolt_gpon_ni_protection_switching_onus_ranged_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_gpon_ni_protection_switching_switchover_completed_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_gpon_ni_protection_switching_switchover_completed_id_pack(bcmolt_gpon_ni_protection_switching_switchover_completed_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_gpon_ni_protection_switching_switchover_completed_id from 
+ * bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_gpon_ni_protection_switching_switchover_completed_id_unpack(bcmolt_gpon_ni_protection_switching_switchover_completed_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_gpon_ni_protection_switching_traffic_resume_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_gpon_ni_protection_switching_traffic_resume_id_pack(bcmolt_gpon_ni_protection_switching_traffic_resume_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_gpon_ni_protection_switching_traffic_resume_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_gpon_ni_protection_switching_traffic_resume_id_unpack(bcmolt_gpon_ni_protection_switching_traffic_resume_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_gpon_ni_protection_switching_type_c_set_multiple_onu_state_id 
+ * to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_gpon_ni_protection_switching_type_c_set_multiple_onu_state_id_pack(bcmolt_gpon_ni_protection_switching_type_c_set_multiple_onu_state_id this, bcmolt_buf *buf);
+
+/** Unpacks a 
+ * bcmolt_gpon_ni_protection_switching_type_c_set_multiple_onu_state_id from 
+ * bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_gpon_ni_protection_switching_type_c_set_multiple_onu_state_id_unpack(bcmolt_gpon_ni_protection_switching_type_c_set_multiple_onu_state_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_gpon_ni_reset_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_gpon_ni_reset_id_pack(bcmolt_gpon_ni_reset_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_gpon_ni_reset_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_gpon_ni_reset_id_unpack(bcmolt_gpon_ni_reset_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_gpon_ni_rogue_detection_completed_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_gpon_ni_rogue_detection_completed_id_pack(bcmolt_gpon_ni_rogue_detection_completed_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_gpon_ni_rogue_detection_completed_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_gpon_ni_rogue_detection_completed_id_unpack(bcmolt_gpon_ni_rogue_detection_completed_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_gpon_ni_rogue_detection_window_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_gpon_ni_rogue_detection_window_id_pack(bcmolt_gpon_ni_rogue_detection_window_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_gpon_ni_rogue_detection_window_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_gpon_ni_rogue_detection_window_id_unpack(bcmolt_gpon_ni_rogue_detection_window_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_gpon_ni_rogue_onu_special_map_cycle_start_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_gpon_ni_rogue_onu_special_map_cycle_start_id_pack(bcmolt_gpon_ni_rogue_onu_special_map_cycle_start_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_gpon_ni_rogue_onu_special_map_cycle_start_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_gpon_ni_rogue_onu_special_map_cycle_start_id_unpack(bcmolt_gpon_ni_rogue_onu_special_map_cycle_start_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_gpon_ni_serial_number_acquisition_cycle_start_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_gpon_ni_serial_number_acquisition_cycle_start_id_pack(bcmolt_gpon_ni_serial_number_acquisition_cycle_start_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_gpon_ni_serial_number_acquisition_cycle_start_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_gpon_ni_serial_number_acquisition_cycle_start_id_unpack(bcmolt_gpon_ni_serial_number_acquisition_cycle_start_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_gpon_ni_set_onu_state_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_gpon_ni_set_onu_state_id_pack(bcmolt_gpon_ni_set_onu_state_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_gpon_ni_set_onu_state_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_gpon_ni_set_onu_state_id_unpack(bcmolt_gpon_ni_set_onu_state_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_gpon_ni_set_pon_state_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_gpon_ni_set_pon_state_id_pack(bcmolt_gpon_ni_set_pon_state_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_gpon_ni_set_pon_state_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_gpon_ni_set_pon_state_id_unpack(bcmolt_gpon_ni_set_pon_state_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_gpon_ni_single_request_standby_pon_monitoring_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_gpon_ni_single_request_standby_pon_monitoring_id_pack(bcmolt_gpon_ni_single_request_standby_pon_monitoring_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_gpon_ni_single_request_standby_pon_monitoring_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_gpon_ni_single_request_standby_pon_monitoring_id_unpack(bcmolt_gpon_ni_single_request_standby_pon_monitoring_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_gpon_ni_standby_pon_monitoring_cycle_completed_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_gpon_ni_standby_pon_monitoring_cycle_completed_id_pack(bcmolt_gpon_ni_standby_pon_monitoring_cycle_completed_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_gpon_ni_standby_pon_monitoring_cycle_completed_id from 
+ * bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_gpon_ni_standby_pon_monitoring_cycle_completed_id_unpack(bcmolt_gpon_ni_standby_pon_monitoring_cycle_completed_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_gpon_ni_start_onu_upgrade_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_gpon_ni_start_onu_upgrade_id_pack(bcmolt_gpon_ni_start_onu_upgrade_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_gpon_ni_start_onu_upgrade_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_gpon_ni_start_onu_upgrade_id_unpack(bcmolt_gpon_ni_start_onu_upgrade_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_gpon_ni_stat_alarm_cleared_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_gpon_ni_stat_alarm_cleared_id_pack(bcmolt_gpon_ni_stat_alarm_cleared_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_gpon_ni_stat_alarm_cleared_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_gpon_ni_stat_alarm_cleared_id_unpack(bcmolt_gpon_ni_stat_alarm_cleared_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_gpon_ni_stat_alarm_raised_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_gpon_ni_stat_alarm_raised_id_pack(bcmolt_gpon_ni_stat_alarm_raised_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_gpon_ni_stat_alarm_raised_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_gpon_ni_stat_alarm_raised_id_unpack(bcmolt_gpon_ni_stat_alarm_raised_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_gpon_ni_stat_cfg_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_gpon_ni_stat_cfg_id_pack(bcmolt_gpon_ni_stat_cfg_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_gpon_ni_stat_cfg_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_gpon_ni_stat_cfg_id_unpack(bcmolt_gpon_ni_stat_cfg_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_gpon_ni_stat_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_gpon_ni_stat_id_pack(bcmolt_gpon_ni_stat_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_gpon_ni_stat_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_gpon_ni_stat_id_unpack(bcmolt_gpon_ni_stat_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_gpon_ni_state_change_completed_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_gpon_ni_state_change_completed_id_pack(bcmolt_gpon_ni_state_change_completed_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_gpon_ni_state_change_completed_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_gpon_ni_state_change_completed_id_unpack(bcmolt_gpon_ni_state_change_completed_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_gpon_ni_tod_request_completed_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_gpon_ni_tod_request_completed_id_pack(bcmolt_gpon_ni_tod_request_completed_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_gpon_ni_tod_request_completed_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_gpon_ni_tod_request_completed_id_unpack(bcmolt_gpon_ni_tod_request_completed_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_gpon_ni_tod_request_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_gpon_ni_tod_request_id_pack(bcmolt_gpon_ni_tod_request_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_gpon_ni_tod_request_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_gpon_ni_tod_request_id_unpack(bcmolt_gpon_ni_tod_request_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_gpon_onu_auto_cfg_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_gpon_onu_auto_cfg_id_pack(bcmolt_gpon_onu_auto_cfg_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_gpon_onu_auto_cfg_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_gpon_onu_auto_cfg_id_unpack(bcmolt_gpon_onu_auto_cfg_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_gpon_onu_ber_interval_configuration_completed_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_gpon_onu_ber_interval_configuration_completed_id_pack(bcmolt_gpon_onu_ber_interval_configuration_completed_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_gpon_onu_ber_interval_configuration_completed_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_gpon_onu_ber_interval_configuration_completed_id_unpack(bcmolt_gpon_onu_ber_interval_configuration_completed_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_gpon_onu_cfg_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_gpon_onu_cfg_id_pack(bcmolt_gpon_onu_cfg_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_gpon_onu_cfg_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_gpon_onu_cfg_id_unpack(bcmolt_gpon_onu_cfg_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_gpon_onu_change_power_level_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_gpon_onu_change_power_level_id_pack(bcmolt_gpon_onu_change_power_level_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_gpon_onu_change_power_level_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_gpon_onu_change_power_level_id_unpack(bcmolt_gpon_onu_change_power_level_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_gpon_onu_cpu_packet_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_gpon_onu_cpu_packet_id_pack(bcmolt_gpon_onu_cpu_packet_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_gpon_onu_cpu_packet_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_gpon_onu_cpu_packet_id_unpack(bcmolt_gpon_onu_cpu_packet_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_gpon_onu_cpu_packets_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_gpon_onu_cpu_packets_id_pack(bcmolt_gpon_onu_cpu_packets_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_gpon_onu_cpu_packets_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_gpon_onu_cpu_packets_id_unpack(bcmolt_gpon_onu_cpu_packets_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_gpon_onu_dfi_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_gpon_onu_dfi_id_pack(bcmolt_gpon_onu_dfi_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_gpon_onu_dfi_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_gpon_onu_dfi_id_unpack(bcmolt_gpon_onu_dfi_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_gpon_onu_dgi_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_gpon_onu_dgi_id_pack(bcmolt_gpon_onu_dgi_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_gpon_onu_dgi_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_gpon_onu_dgi_id_unpack(bcmolt_gpon_onu_dgi_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_gpon_onu_dowi_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_gpon_onu_dowi_id_pack(bcmolt_gpon_onu_dowi_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_gpon_onu_dowi_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_gpon_onu_dowi_id_unpack(bcmolt_gpon_onu_dowi_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_gpon_onu_err_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_gpon_onu_err_id_pack(bcmolt_gpon_onu_err_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_gpon_onu_err_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_gpon_onu_err_id_unpack(bcmolt_gpon_onu_err_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_gpon_onu_invalid_dbru_report_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_gpon_onu_invalid_dbru_report_id_pack(bcmolt_gpon_onu_invalid_dbru_report_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_gpon_onu_invalid_dbru_report_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_gpon_onu_invalid_dbru_report_id_unpack(bcmolt_gpon_onu_invalid_dbru_report_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_gpon_onu_key_exchange_completed_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_gpon_onu_key_exchange_completed_id_pack(bcmolt_gpon_onu_key_exchange_completed_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_gpon_onu_key_exchange_completed_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_gpon_onu_key_exchange_completed_id_unpack(bcmolt_gpon_onu_key_exchange_completed_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_gpon_onu_key_exchange_cycle_skipped_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_gpon_onu_key_exchange_cycle_skipped_id_pack(bcmolt_gpon_onu_key_exchange_cycle_skipped_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_gpon_onu_key_exchange_cycle_skipped_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_gpon_onu_key_exchange_cycle_skipped_id_unpack(bcmolt_gpon_onu_key_exchange_cycle_skipped_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_gpon_onu_key_exchange_decrypt_required_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_gpon_onu_key_exchange_decrypt_required_id_pack(bcmolt_gpon_onu_key_exchange_decrypt_required_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_gpon_onu_key_exchange_decrypt_required_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_gpon_onu_key_exchange_decrypt_required_id_unpack(bcmolt_gpon_onu_key_exchange_decrypt_required_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_gpon_onu_key_exchange_key_mismatch_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_gpon_onu_key_exchange_key_mismatch_id_pack(bcmolt_gpon_onu_key_exchange_key_mismatch_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_gpon_onu_key_exchange_key_mismatch_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_gpon_onu_key_exchange_key_mismatch_id_unpack(bcmolt_gpon_onu_key_exchange_key_mismatch_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_gpon_onu_key_exchange_key_request_timeout_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_gpon_onu_key_exchange_key_request_timeout_id_pack(bcmolt_gpon_onu_key_exchange_key_request_timeout_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_gpon_onu_key_exchange_key_request_timeout_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_gpon_onu_key_exchange_key_request_timeout_id_unpack(bcmolt_gpon_onu_key_exchange_key_request_timeout_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_gpon_onu_key_exchange_unconsecutive_index_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_gpon_onu_key_exchange_unconsecutive_index_id_pack(bcmolt_gpon_onu_key_exchange_unconsecutive_index_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_gpon_onu_key_exchange_unconsecutive_index_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_gpon_onu_key_exchange_unconsecutive_index_id_unpack(bcmolt_gpon_onu_key_exchange_unconsecutive_index_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_gpon_onu_key_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_gpon_onu_key_id_pack(bcmolt_gpon_onu_key_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_gpon_onu_key_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_gpon_onu_key_id_unpack(bcmolt_gpon_onu_key_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_gpon_onu_loai_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_gpon_onu_loai_id_pack(bcmolt_gpon_onu_loai_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_gpon_onu_loai_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_gpon_onu_loai_id_unpack(bcmolt_gpon_onu_loai_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_gpon_onu_loki_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_gpon_onu_loki_id_pack(bcmolt_gpon_onu_loki_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_gpon_onu_loki_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_gpon_onu_loki_id_unpack(bcmolt_gpon_onu_loki_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_gpon_onu_memi_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_gpon_onu_memi_id_pack(bcmolt_gpon_onu_memi_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_gpon_onu_memi_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_gpon_onu_memi_id_unpack(bcmolt_gpon_onu_memi_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_gpon_onu_omci_packet_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_gpon_onu_omci_packet_id_pack(bcmolt_gpon_onu_omci_packet_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_gpon_onu_omci_packet_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_gpon_onu_omci_packet_id_unpack(bcmolt_gpon_onu_omci_packet_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_gpon_onu_omci_port_id_configuration_completed_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_gpon_onu_omci_port_id_configuration_completed_id_pack(bcmolt_gpon_onu_omci_port_id_configuration_completed_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_gpon_onu_omci_port_id_configuration_completed_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_gpon_onu_omci_port_id_configuration_completed_id_unpack(bcmolt_gpon_onu_omci_port_id_configuration_completed_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_gpon_onu_onu_activation_completed_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_gpon_onu_onu_activation_completed_id_pack(bcmolt_gpon_onu_onu_activation_completed_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_gpon_onu_onu_activation_completed_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_gpon_onu_onu_activation_completed_id_unpack(bcmolt_gpon_onu_onu_activation_completed_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_gpon_onu_onu_activation_standby_completed_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_gpon_onu_onu_activation_standby_completed_id_pack(bcmolt_gpon_onu_onu_activation_standby_completed_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_gpon_onu_onu_activation_standby_completed_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_gpon_onu_onu_activation_standby_completed_id_unpack(bcmolt_gpon_onu_onu_activation_standby_completed_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_gpon_onu_onu_alarm_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_gpon_onu_onu_alarm_id_pack(bcmolt_gpon_onu_onu_alarm_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_gpon_onu_onu_alarm_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_gpon_onu_onu_alarm_id_unpack(bcmolt_gpon_onu_onu_alarm_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_gpon_onu_onu_deactivation_completed_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_gpon_onu_onu_deactivation_completed_id_pack(bcmolt_gpon_onu_onu_deactivation_completed_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_gpon_onu_onu_deactivation_completed_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_gpon_onu_onu_deactivation_completed_id_unpack(bcmolt_gpon_onu_onu_deactivation_completed_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_gpon_onu_onu_disable_completed_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_gpon_onu_onu_disable_completed_id_pack(bcmolt_gpon_onu_onu_disable_completed_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_gpon_onu_onu_disable_completed_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_gpon_onu_onu_disable_completed_id_unpack(bcmolt_gpon_onu_onu_disable_completed_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_gpon_onu_onu_enable_completed_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_gpon_onu_onu_enable_completed_id_pack(bcmolt_gpon_onu_onu_enable_completed_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_gpon_onu_onu_enable_completed_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_gpon_onu_onu_enable_completed_id_unpack(bcmolt_gpon_onu_onu_enable_completed_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_gpon_onu_optical_reflection_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_gpon_onu_optical_reflection_id_pack(bcmolt_gpon_onu_optical_reflection_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_gpon_onu_optical_reflection_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_gpon_onu_optical_reflection_id_unpack(bcmolt_gpon_onu_optical_reflection_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_gpon_onu_password_authentication_completed_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_gpon_onu_password_authentication_completed_id_pack(bcmolt_gpon_onu_password_authentication_completed_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_gpon_onu_password_authentication_completed_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_gpon_onu_password_authentication_completed_id_unpack(bcmolt_gpon_onu_password_authentication_completed_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_gpon_onu_pee_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_gpon_onu_pee_id_pack(bcmolt_gpon_onu_pee_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_gpon_onu_pee_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_gpon_onu_pee_id_unpack(bcmolt_gpon_onu_pee_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_gpon_onu_ploam_packet_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_gpon_onu_ploam_packet_id_pack(bcmolt_gpon_onu_ploam_packet_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_gpon_onu_ploam_packet_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_gpon_onu_ploam_packet_id_unpack(bcmolt_gpon_onu_ploam_packet_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_gpon_onu_possible_drift_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_gpon_onu_possible_drift_id_pack(bcmolt_gpon_onu_possible_drift_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_gpon_onu_possible_drift_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_gpon_onu_possible_drift_id_unpack(bcmolt_gpon_onu_possible_drift_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_gpon_onu_power_management_state_change_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_gpon_onu_power_management_state_change_id_pack(bcmolt_gpon_onu_power_management_state_change_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_gpon_onu_power_management_state_change_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_gpon_onu_power_management_state_change_id_unpack(bcmolt_gpon_onu_power_management_state_change_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_gpon_onu_pst_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_gpon_onu_pst_id_pack(bcmolt_gpon_onu_pst_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_gpon_onu_pst_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_gpon_onu_pst_id_unpack(bcmolt_gpon_onu_pst_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_gpon_onu_ranging_completed_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_gpon_onu_ranging_completed_id_pack(bcmolt_gpon_onu_ranging_completed_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_gpon_onu_ranging_completed_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_gpon_onu_ranging_completed_id_unpack(bcmolt_gpon_onu_ranging_completed_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_gpon_onu_rei_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_gpon_onu_rei_id_pack(bcmolt_gpon_onu_rei_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_gpon_onu_rei_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_gpon_onu_rei_id_unpack(bcmolt_gpon_onu_rei_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_gpon_onu_rssi_measurement_completed_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_gpon_onu_rssi_measurement_completed_id_pack(bcmolt_gpon_onu_rssi_measurement_completed_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_gpon_onu_rssi_measurement_completed_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_gpon_onu_rssi_measurement_completed_id_unpack(bcmolt_gpon_onu_rssi_measurement_completed_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_gpon_onu_rssi_measurement_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_gpon_onu_rssi_measurement_id_pack(bcmolt_gpon_onu_rssi_measurement_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_gpon_onu_rssi_measurement_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_gpon_onu_rssi_measurement_id_unpack(bcmolt_gpon_onu_rssi_measurement_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_gpon_onu_sdi_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_gpon_onu_sdi_id_pack(bcmolt_gpon_onu_sdi_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_gpon_onu_sdi_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_gpon_onu_sdi_id_unpack(bcmolt_gpon_onu_sdi_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_gpon_onu_set_onu_state_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_gpon_onu_set_onu_state_id_pack(bcmolt_gpon_onu_set_onu_state_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_gpon_onu_set_onu_state_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_gpon_onu_set_onu_state_id_unpack(bcmolt_gpon_onu_set_onu_state_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_gpon_onu_sfi_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_gpon_onu_sfi_id_pack(bcmolt_gpon_onu_sfi_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_gpon_onu_sfi_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_gpon_onu_sfi_id_unpack(bcmolt_gpon_onu_sfi_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_gpon_onu_stat_alarm_cleared_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_gpon_onu_stat_alarm_cleared_id_pack(bcmolt_gpon_onu_stat_alarm_cleared_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_gpon_onu_stat_alarm_cleared_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_gpon_onu_stat_alarm_cleared_id_unpack(bcmolt_gpon_onu_stat_alarm_cleared_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_gpon_onu_stat_alarm_raised_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_gpon_onu_stat_alarm_raised_id_pack(bcmolt_gpon_onu_stat_alarm_raised_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_gpon_onu_stat_alarm_raised_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_gpon_onu_stat_alarm_raised_id_unpack(bcmolt_gpon_onu_stat_alarm_raised_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_gpon_onu_stat_cfg_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_gpon_onu_stat_cfg_id_pack(bcmolt_gpon_onu_stat_cfg_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_gpon_onu_stat_cfg_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_gpon_onu_stat_cfg_id_unpack(bcmolt_gpon_onu_stat_cfg_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_gpon_onu_stat_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_gpon_onu_stat_id_pack(bcmolt_gpon_onu_stat_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_gpon_onu_stat_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_gpon_onu_stat_id_unpack(bcmolt_gpon_onu_stat_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_gpon_onu_sufi_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_gpon_onu_sufi_id_pack(bcmolt_gpon_onu_sufi_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_gpon_onu_sufi_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_gpon_onu_sufi_id_unpack(bcmolt_gpon_onu_sufi_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_gpon_onu_tiwi_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_gpon_onu_tiwi_id_pack(bcmolt_gpon_onu_tiwi_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_gpon_onu_tiwi_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_gpon_onu_tiwi_id_unpack(bcmolt_gpon_onu_tiwi_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_omci_device_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_omci_device_id_pack(bcmolt_omci_device_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_omci_device_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_omci_device_id_unpack(bcmolt_omci_device_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_gpon_onu_upgrade_return_code to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_gpon_onu_upgrade_return_code_pack(bcmolt_gpon_onu_upgrade_return_code this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_gpon_onu_upgrade_return_code from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_gpon_onu_upgrade_return_code_unpack(bcmolt_gpon_onu_upgrade_return_code *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_omci_result_code to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_omci_result_code_pack(bcmolt_omci_result_code this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_omci_result_code from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_omci_result_code_unpack(bcmolt_omci_result_code *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_onu_state to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_onu_state_pack(bcmolt_onu_state this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_onu_state from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_onu_state_unpack(bcmolt_onu_state *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_rssi_location_sign to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_rssi_location_sign_pack(bcmolt_rssi_location_sign this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_rssi_location_sign from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_rssi_location_sign_unpack(bcmolt_rssi_location_sign *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_onu_post_discovery_mode to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_onu_post_discovery_mode_pack(bcmolt_onu_post_discovery_mode this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_onu_post_discovery_mode from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_onu_post_discovery_mode_unpack(bcmolt_onu_post_discovery_mode *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_gpon_trx_cfg_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_gpon_trx_cfg_id_pack(bcmolt_gpon_trx_cfg_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_gpon_trx_cfg_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_gpon_trx_cfg_id_unpack(bcmolt_gpon_trx_cfg_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_gpon_trx_key_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_gpon_trx_key_id_pack(bcmolt_gpon_trx_key_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_gpon_trx_key_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_gpon_trx_key_id_unpack(bcmolt_gpon_trx_key_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_image_transfer_status to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_image_transfer_status_pack(bcmolt_image_transfer_status this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_image_transfer_status from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_image_transfer_status_unpack(bcmolt_image_transfer_status *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_iwf_mode to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_iwf_mode_pack(bcmolt_iwf_mode this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_iwf_mode from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_iwf_mode_unpack(bcmolt_iwf_mode *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_log_entry_auto_cfg_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_log_entry_auto_cfg_id_pack(bcmolt_log_entry_auto_cfg_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_log_entry_auto_cfg_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_log_entry_auto_cfg_id_unpack(bcmolt_log_entry_auto_cfg_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_log_entry_cfg_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_log_entry_cfg_id_pack(bcmolt_log_entry_cfg_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_log_entry_cfg_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_log_entry_cfg_id_unpack(bcmolt_log_entry_cfg_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_log_entry_key_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_log_entry_key_id_pack(bcmolt_log_entry_key_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_log_entry_key_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_log_entry_key_id_unpack(bcmolt_log_entry_key_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_log_entry_stat_alarm_cleared_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_log_entry_stat_alarm_cleared_id_pack(bcmolt_log_entry_stat_alarm_cleared_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_log_entry_stat_alarm_cleared_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_log_entry_stat_alarm_cleared_id_unpack(bcmolt_log_entry_stat_alarm_cleared_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_log_entry_stat_alarm_raised_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_log_entry_stat_alarm_raised_id_pack(bcmolt_log_entry_stat_alarm_raised_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_log_entry_stat_alarm_raised_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_log_entry_stat_alarm_raised_id_unpack(bcmolt_log_entry_stat_alarm_raised_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_log_entry_stat_cfg_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_log_entry_stat_cfg_id_pack(bcmolt_log_entry_stat_cfg_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_log_entry_stat_cfg_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_log_entry_stat_cfg_id_unpack(bcmolt_log_entry_stat_cfg_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_log_entry_stat_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_log_entry_stat_id_pack(bcmolt_log_entry_stat_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_log_entry_stat_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_log_entry_stat_id_unpack(bcmolt_log_entry_stat_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_log_file_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_log_file_id_pack(bcmolt_log_file_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_log_file_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_log_file_id_unpack(bcmolt_log_file_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_log_level to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_log_level_pack(bcmolt_log_level this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_log_level from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_log_level_unpack(bcmolt_log_level *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_log_style to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_log_style_pack(bcmolt_log_style this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_log_style from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_log_style_unpack(bcmolt_log_style *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_log_type to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_log_type_pack(bcmolt_log_type this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_log_type from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_log_type_unpack(bcmolt_log_type *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_logger_auto_cfg_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_logger_auto_cfg_id_pack(bcmolt_logger_auto_cfg_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_logger_auto_cfg_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_logger_auto_cfg_id_unpack(bcmolt_logger_auto_cfg_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_logger_cfg_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_logger_cfg_id_pack(bcmolt_logger_cfg_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_logger_cfg_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_logger_cfg_id_unpack(bcmolt_logger_cfg_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_logger_clear_log_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_logger_clear_log_id_pack(bcmolt_logger_clear_log_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_logger_clear_log_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_logger_clear_log_id_unpack(bcmolt_logger_clear_log_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_logger_key_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_logger_key_id_pack(bcmolt_logger_key_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_logger_key_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_logger_key_id_unpack(bcmolt_logger_key_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_logger_stat_alarm_cleared_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_logger_stat_alarm_cleared_id_pack(bcmolt_logger_stat_alarm_cleared_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_logger_stat_alarm_cleared_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_logger_stat_alarm_cleared_id_unpack(bcmolt_logger_stat_alarm_cleared_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_logger_stat_alarm_raised_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_logger_stat_alarm_raised_id_pack(bcmolt_logger_stat_alarm_raised_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_logger_stat_alarm_raised_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_logger_stat_alarm_raised_id_unpack(bcmolt_logger_stat_alarm_raised_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_logger_stat_cfg_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_logger_stat_cfg_id_pack(bcmolt_logger_stat_cfg_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_logger_stat_cfg_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_logger_stat_cfg_id_unpack(bcmolt_logger_stat_cfg_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_logger_stat_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_logger_stat_id_pack(bcmolt_logger_stat_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_logger_stat_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_logger_stat_id_unpack(bcmolt_logger_stat_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_mac_table_miss_fallback to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_mac_table_miss_fallback_pack(bcmolt_mac_table_miss_fallback this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_mac_table_miss_fallback from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_mac_table_miss_fallback_unpack(bcmolt_mac_table_miss_fallback *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_mac_table_learning_mode to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_mac_table_learning_mode_pack(bcmolt_mac_table_learning_mode this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_mac_table_learning_mode from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_mac_table_learning_mode_unpack(bcmolt_mac_table_learning_mode *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_mapping_tag_method to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_mapping_tag_method_pack(bcmolt_mapping_tag_method this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_mapping_tag_method from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_mapping_tag_method_unpack(bcmolt_mapping_tag_method *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_nni_auto_cfg_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_nni_auto_cfg_id_pack(bcmolt_nni_auto_cfg_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_nni_auto_cfg_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_nni_auto_cfg_id_unpack(bcmolt_nni_auto_cfg_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_nni_cfg_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_nni_cfg_id_pack(bcmolt_nni_cfg_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_nni_cfg_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_nni_cfg_id_unpack(bcmolt_nni_cfg_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_nni_connection to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_nni_connection_pack(bcmolt_nni_connection this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_nni_connection from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_nni_connection_unpack(bcmolt_nni_connection *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_nni_key_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_nni_key_id_pack(bcmolt_nni_key_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_nni_key_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_nni_key_id_unpack(bcmolt_nni_key_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_trivalent to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_trivalent_pack(bcmolt_trivalent this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_trivalent from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_trivalent_unpack(bcmolt_trivalent *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_nni_serdes_cfg_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_nni_serdes_cfg_id_pack(bcmolt_nni_serdes_cfg_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_nni_serdes_cfg_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_nni_serdes_cfg_id_unpack(bcmolt_nni_serdes_cfg_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_nni_serdes_key_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_nni_serdes_key_id_pack(bcmolt_nni_serdes_key_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_nni_serdes_key_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_nni_serdes_key_id_unpack(bcmolt_nni_serdes_key_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_nni_stat_alarm_cleared_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_nni_stat_alarm_cleared_id_pack(bcmolt_nni_stat_alarm_cleared_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_nni_stat_alarm_cleared_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_nni_stat_alarm_cleared_id_unpack(bcmolt_nni_stat_alarm_cleared_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_nni_stat_alarm_raised_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_nni_stat_alarm_raised_id_pack(bcmolt_nni_stat_alarm_raised_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_nni_stat_alarm_raised_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_nni_stat_alarm_raised_id_unpack(bcmolt_nni_stat_alarm_raised_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_nni_stat_cfg_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_nni_stat_cfg_id_pack(bcmolt_nni_stat_cfg_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_nni_stat_cfg_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_nni_stat_cfg_id_unpack(bcmolt_nni_stat_cfg_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_nni_stat_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_nni_stat_id_pack(bcmolt_nni_stat_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_nni_stat_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_nni_stat_id_unpack(bcmolt_nni_stat_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_nni_status_changed_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_nni_status_changed_id_pack(bcmolt_nni_status_changed_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_nni_status_changed_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_nni_status_changed_id_unpack(bcmolt_nni_status_changed_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_odn_class to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_odn_class_pack(bcmolt_odn_class this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_odn_class from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_odn_class_unpack(bcmolt_odn_class *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_omci_port_id_operation to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_omci_port_id_operation_pack(bcmolt_omci_port_id_operation this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_omci_port_id_operation from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_omci_port_id_operation_unpack(bcmolt_omci_port_id_operation *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_onu_operation to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_onu_operation_pack(bcmolt_onu_operation this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_onu_operation from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_onu_operation_unpack(bcmolt_onu_operation *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_onu_power_level to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_onu_power_level_pack(bcmolt_onu_power_level this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_onu_power_level from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_onu_power_level_unpack(bcmolt_onu_power_level *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_tc_protocol to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_tc_protocol_pack(bcmolt_tc_protocol this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_tc_protocol from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_tc_protocol_unpack(bcmolt_tc_protocol *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_packet_injection_error to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_packet_injection_error_pack(bcmolt_packet_injection_error this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_packet_injection_error from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_packet_injection_error_unpack(bcmolt_packet_injection_error *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_packet_type to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_packet_type_pack(bcmolt_packet_type this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_packet_type from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_packet_type_unpack(bcmolt_packet_type *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_password_authentication_fail_reason to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_password_authentication_fail_reason_pack(bcmolt_password_authentication_fail_reason this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_password_authentication_fail_reason from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_password_authentication_fail_reason_unpack(bcmolt_password_authentication_fail_reason *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_polarity to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_polarity_pack(bcmolt_polarity this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_polarity from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_polarity_unpack(bcmolt_polarity *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_polling_interval to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_polling_interval_pack(bcmolt_polling_interval this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_polling_interval from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_polling_interval_unpack(bcmolt_polling_interval *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_pon_operation to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_pon_operation_pack(bcmolt_pon_operation this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_pon_operation from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_pon_operation_unpack(bcmolt_pon_operation *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_pon_protection_switching_options to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_pon_protection_switching_options_pack(bcmolt_pon_protection_switching_options this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_pon_protection_switching_options from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_pon_protection_switching_options_unpack(bcmolt_pon_protection_switching_options *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_pon_state to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_pon_state_pack(bcmolt_pon_state this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_pon_state from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_pon_state_unpack(bcmolt_pon_state *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_power_levelling_control to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_power_levelling_control_pack(bcmolt_power_levelling_control this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_power_levelling_control from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_power_levelling_control_unpack(bcmolt_power_levelling_control *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_power_management_transition_reason to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_power_management_transition_reason_pack(bcmolt_power_management_transition_reason this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_power_management_transition_reason from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_power_management_transition_reason_unpack(bcmolt_power_management_transition_reason *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_prbs_polynomial to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_prbs_polynomial_pack(bcmolt_prbs_polynomial this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_prbs_polynomial from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_prbs_polynomial_unpack(bcmolt_prbs_polynomial *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_prbs_checker_mode to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_prbs_checker_mode_pack(bcmolt_prbs_checker_mode this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_prbs_checker_mode from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_prbs_checker_mode_unpack(bcmolt_prbs_checker_mode *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_prbs_lock_state to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_prbs_lock_state_pack(bcmolt_prbs_lock_state this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_prbs_lock_state from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_prbs_lock_state_unpack(bcmolt_prbs_lock_state *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_raman_mitigation_mode to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_raman_mitigation_mode_pack(bcmolt_raman_mitigation_mode this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_raman_mitigation_mode from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_raman_mitigation_mode_unpack(bcmolt_raman_mitigation_mode *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_ranging_fail_reason to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_ranging_fail_reason_pack(bcmolt_ranging_fail_reason this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_ranging_fail_reason from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_ranging_fail_reason_unpack(bcmolt_ranging_fail_reason *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_registration_behavior to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_registration_behavior_pack(bcmolt_registration_behavior this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_registration_behavior from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_registration_behavior_unpack(bcmolt_registration_behavior *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_request_registration_fail_reason to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_request_registration_fail_reason_pack(bcmolt_request_registration_fail_reason this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_request_registration_fail_reason from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_request_registration_fail_reason_unpack(bcmolt_request_registration_fail_reason *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_result to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_result_pack(bcmolt_result this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_result from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_result_unpack(bcmolt_result *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_rogue_detection_algorithm_type to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_rogue_detection_algorithm_type_pack(bcmolt_rogue_detection_algorithm_type this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_rogue_detection_algorithm_type from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_rogue_detection_algorithm_type_unpack(bcmolt_rogue_detection_algorithm_type *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_rogue_detection_window to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_rogue_detection_window_pack(bcmolt_rogue_detection_window this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_rogue_detection_window from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_rogue_detection_window_unpack(bcmolt_rogue_detection_window *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_rogue_measurement_result to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_rogue_measurement_result_pack(bcmolt_rogue_measurement_result this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_rogue_measurement_result from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_rogue_measurement_result_unpack(bcmolt_rogue_measurement_result *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_rogue_scan_status to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_rogue_scan_status_pack(bcmolt_rogue_scan_status this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_rogue_scan_status from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_rogue_scan_status_unpack(bcmolt_rogue_scan_status *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_rssi_measurement_fail_reason to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_rssi_measurement_fail_reason_pack(bcmolt_rssi_measurement_fail_reason this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_rssi_measurement_fail_reason from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_rssi_measurement_fail_reason_unpack(bcmolt_rssi_measurement_fail_reason *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_secure_mutual_authentication_fail_reason to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_secure_mutual_authentication_fail_reason_pack(bcmolt_secure_mutual_authentication_fail_reason this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_secure_mutual_authentication_fail_reason from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_secure_mutual_authentication_fail_reason_unpack(bcmolt_secure_mutual_authentication_fail_reason *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_serdes_ranging_mode to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_serdes_ranging_mode_pack(bcmolt_serdes_ranging_mode this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_serdes_ranging_mode from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_serdes_ranging_mode_unpack(bcmolt_serdes_ranging_mode *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_serdes_instance to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_serdes_instance_pack(bcmolt_serdes_instance this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_serdes_instance from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_serdes_instance_unpack(bcmolt_serdes_instance *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_shaper_mode to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_shaper_mode_pack(bcmolt_shaper_mode this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_shaper_mode from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_shaper_mode_unpack(bcmolt_shaper_mode *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_software_error_cfg_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_software_error_cfg_id_pack(bcmolt_software_error_cfg_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_software_error_cfg_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_software_error_cfg_id_unpack(bcmolt_software_error_cfg_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_software_error_key_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_software_error_key_id_pack(bcmolt_software_error_key_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_software_error_key_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_software_error_key_id_unpack(bcmolt_software_error_key_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_stat_condition_type to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_stat_condition_type_pack(bcmolt_stat_condition_type this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_stat_condition_type from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_stat_condition_type_unpack(bcmolt_stat_condition_type *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_switch_over_type_c_onu_state to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_switch_over_type_c_onu_state_pack(bcmolt_switch_over_type_c_onu_state this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_switch_over_type_c_onu_state from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_switch_over_type_c_onu_state_unpack(bcmolt_switch_over_type_c_onu_state *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_system_mode to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_system_mode_pack(bcmolt_system_mode this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_system_mode from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_system_mode_unpack(bcmolt_system_mode *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_us_operating_wavelength_bands to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_us_operating_wavelength_bands_pack(bcmolt_us_operating_wavelength_bands this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_us_operating_wavelength_bands from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_us_operating_wavelength_bands_unpack(bcmolt_us_operating_wavelength_bands *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_traffic_resume_result to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_traffic_resume_result_pack(bcmolt_traffic_resume_result this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_traffic_resume_result from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_traffic_resume_result_unpack(bcmolt_traffic_resume_result *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_trx_calibration_auto_cfg_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_trx_calibration_auto_cfg_id_pack(bcmolt_trx_calibration_auto_cfg_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_trx_calibration_auto_cfg_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_trx_calibration_auto_cfg_id_unpack(bcmolt_trx_calibration_auto_cfg_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_trx_calibration_capture_window_and_statistic_completed_id to 
+ * bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_trx_calibration_capture_window_and_statistic_completed_id_pack(bcmolt_trx_calibration_capture_window_and_statistic_completed_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_trx_calibration_capture_window_and_statistic_completed_id 
+ * from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_trx_calibration_capture_window_and_statistic_completed_id_unpack(bcmolt_trx_calibration_capture_window_and_statistic_completed_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_trx_calibration_key_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_trx_calibration_key_id_pack(bcmolt_trx_calibration_key_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_trx_calibration_key_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_trx_calibration_key_id_unpack(bcmolt_trx_calibration_key_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_trx_calibration_start_capture_window_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_trx_calibration_start_capture_window_id_pack(bcmolt_trx_calibration_start_capture_window_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_trx_calibration_start_capture_window_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_trx_calibration_start_capture_window_id_unpack(bcmolt_trx_calibration_start_capture_window_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_trx_calibration_stop_capture_window_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_trx_calibration_stop_capture_window_id_pack(bcmolt_trx_calibration_stop_capture_window_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_trx_calibration_stop_capture_window_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_trx_calibration_stop_capture_window_id_unpack(bcmolt_trx_calibration_stop_capture_window_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_trx_calibration_trigger to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_trx_calibration_trigger_pack(bcmolt_trx_calibration_trigger this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_trx_calibration_trigger from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_trx_calibration_trigger_unpack(bcmolt_trx_calibration_trigger *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_trx_calibration_trigger_position to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_trx_calibration_trigger_position_pack(bcmolt_trx_calibration_trigger_position this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_trx_calibration_trigger_position from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_trx_calibration_trigger_position_unpack(bcmolt_trx_calibration_trigger_position *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_trx_calibration_window_mode to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_trx_calibration_window_mode_pack(bcmolt_trx_calibration_window_mode this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_trx_calibration_window_mode from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_trx_calibration_window_mode_unpack(bcmolt_trx_calibration_window_mode *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_trx_type to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_trx_type_pack(bcmolt_trx_type this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_trx_type from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_trx_type_unpack(bcmolt_trx_type *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_tune_in_fail_reason to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_tune_in_fail_reason_pack(bcmolt_tune_in_fail_reason this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_tune_in_fail_reason from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_tune_in_fail_reason_unpack(bcmolt_tune_in_fail_reason *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_tune_out_fail_reason to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_tune_out_fail_reason_pack(bcmolt_tune_out_fail_reason this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_tune_out_fail_reason from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_tune_out_fail_reason_unpack(bcmolt_tune_out_fail_reason *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_uart_baudrate to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_uart_baudrate_pack(bcmolt_uart_baudrate this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_uart_baudrate from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_uart_baudrate_unpack(bcmolt_uart_baudrate *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_us_gem_port_destination to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_us_gem_port_destination_pack(bcmolt_us_gem_port_destination this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_us_gem_port_destination from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_us_gem_port_destination_unpack(bcmolt_us_gem_port_destination *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_us_vlan_action to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_us_vlan_action_pack(bcmolt_us_vlan_action this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_us_vlan_action from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_us_vlan_action_unpack(bcmolt_us_vlan_action *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_vlan_to_flow_mapping_method to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_vlan_to_flow_mapping_method_pack(bcmolt_vlan_to_flow_mapping_method this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_vlan_to_flow_mapping_method from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_vlan_to_flow_mapping_method_unpack(bcmolt_vlan_to_flow_mapping_method *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_xgpon_alloc_auto_cfg_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_xgpon_alloc_auto_cfg_id_pack(bcmolt_xgpon_alloc_auto_cfg_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_xgpon_alloc_auto_cfg_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_xgpon_alloc_auto_cfg_id_unpack(bcmolt_xgpon_alloc_auto_cfg_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_xgpon_alloc_cfg_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_xgpon_alloc_cfg_id_pack(bcmolt_xgpon_alloc_cfg_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_xgpon_alloc_cfg_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_xgpon_alloc_cfg_id_unpack(bcmolt_xgpon_alloc_cfg_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_xgpon_alloc_configuration_completed_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_xgpon_alloc_configuration_completed_id_pack(bcmolt_xgpon_alloc_configuration_completed_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_xgpon_alloc_configuration_completed_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_xgpon_alloc_configuration_completed_id_unpack(bcmolt_xgpon_alloc_configuration_completed_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_xgpon_alloc_get_alloc_stats_completed_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_xgpon_alloc_get_alloc_stats_completed_id_pack(bcmolt_xgpon_alloc_get_alloc_stats_completed_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_xgpon_alloc_get_alloc_stats_completed_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_xgpon_alloc_get_alloc_stats_completed_id_unpack(bcmolt_xgpon_alloc_get_alloc_stats_completed_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_xgpon_alloc_get_stats_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_xgpon_alloc_get_stats_id_pack(bcmolt_xgpon_alloc_get_stats_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_xgpon_alloc_get_stats_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_xgpon_alloc_get_stats_id_unpack(bcmolt_xgpon_alloc_get_stats_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_xgpon_alloc_key_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_xgpon_alloc_key_id_pack(bcmolt_xgpon_alloc_key_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_xgpon_alloc_key_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_xgpon_alloc_key_id_unpack(bcmolt_xgpon_alloc_key_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_xgpon_alloc_set_state_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_xgpon_alloc_set_state_id_pack(bcmolt_xgpon_alloc_set_state_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_xgpon_alloc_set_state_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_xgpon_alloc_set_state_id_unpack(bcmolt_xgpon_alloc_set_state_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_xgpon_alloc_stat_alarm_cleared_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_xgpon_alloc_stat_alarm_cleared_id_pack(bcmolt_xgpon_alloc_stat_alarm_cleared_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_xgpon_alloc_stat_alarm_cleared_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_xgpon_alloc_stat_alarm_cleared_id_unpack(bcmolt_xgpon_alloc_stat_alarm_cleared_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_xgpon_alloc_stat_alarm_raised_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_xgpon_alloc_stat_alarm_raised_id_pack(bcmolt_xgpon_alloc_stat_alarm_raised_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_xgpon_alloc_stat_alarm_raised_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_xgpon_alloc_stat_alarm_raised_id_unpack(bcmolt_xgpon_alloc_stat_alarm_raised_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_xgpon_alloc_stat_cfg_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_xgpon_alloc_stat_cfg_id_pack(bcmolt_xgpon_alloc_stat_cfg_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_xgpon_alloc_stat_cfg_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_xgpon_alloc_stat_cfg_id_unpack(bcmolt_xgpon_alloc_stat_cfg_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_xgpon_alloc_stat_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_xgpon_alloc_stat_id_pack(bcmolt_xgpon_alloc_stat_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_xgpon_alloc_stat_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_xgpon_alloc_stat_id_unpack(bcmolt_xgpon_alloc_stat_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_xgpon_gem_port_auto_cfg_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_xgpon_gem_port_auto_cfg_id_pack(bcmolt_xgpon_gem_port_auto_cfg_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_xgpon_gem_port_auto_cfg_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_xgpon_gem_port_auto_cfg_id_unpack(bcmolt_xgpon_gem_port_auto_cfg_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_xgpon_gem_port_cfg_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_xgpon_gem_port_cfg_id_pack(bcmolt_xgpon_gem_port_cfg_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_xgpon_gem_port_cfg_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_xgpon_gem_port_cfg_id_unpack(bcmolt_xgpon_gem_port_cfg_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_xgpon_gem_port_key_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_xgpon_gem_port_key_id_pack(bcmolt_xgpon_gem_port_key_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_xgpon_gem_port_key_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_xgpon_gem_port_key_id_unpack(bcmolt_xgpon_gem_port_key_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_xgpon_gem_port_stat_alarm_cleared_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_xgpon_gem_port_stat_alarm_cleared_id_pack(bcmolt_xgpon_gem_port_stat_alarm_cleared_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_xgpon_gem_port_stat_alarm_cleared_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_xgpon_gem_port_stat_alarm_cleared_id_unpack(bcmolt_xgpon_gem_port_stat_alarm_cleared_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_xgpon_gem_port_stat_alarm_raised_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_xgpon_gem_port_stat_alarm_raised_id_pack(bcmolt_xgpon_gem_port_stat_alarm_raised_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_xgpon_gem_port_stat_alarm_raised_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_xgpon_gem_port_stat_alarm_raised_id_unpack(bcmolt_xgpon_gem_port_stat_alarm_raised_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_xgpon_gem_port_stat_cfg_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_xgpon_gem_port_stat_cfg_id_pack(bcmolt_xgpon_gem_port_stat_cfg_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_xgpon_gem_port_stat_cfg_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_xgpon_gem_port_stat_cfg_id_unpack(bcmolt_xgpon_gem_port_stat_cfg_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_xgpon_gem_port_stat_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_xgpon_gem_port_stat_id_pack(bcmolt_xgpon_gem_port_stat_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_xgpon_gem_port_stat_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_xgpon_gem_port_stat_id_unpack(bcmolt_xgpon_gem_port_stat_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_xgpon_gem_port_state to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_xgpon_gem_port_state_pack(bcmolt_xgpon_gem_port_state this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_xgpon_gem_port_state from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_xgpon_gem_port_state_unpack(bcmolt_xgpon_gem_port_state *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_xgpon_iwf_cfg_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_xgpon_iwf_cfg_id_pack(bcmolt_xgpon_iwf_cfg_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_xgpon_iwf_cfg_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_xgpon_iwf_cfg_id_unpack(bcmolt_xgpon_iwf_cfg_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_xgpon_iwf_key_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_xgpon_iwf_key_id_pack(bcmolt_xgpon_iwf_key_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_xgpon_iwf_key_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_xgpon_iwf_key_id_unpack(bcmolt_xgpon_iwf_key_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_xgpon_ni_activate_all_onus_completed_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_xgpon_ni_activate_all_onus_completed_id_pack(bcmolt_xgpon_ni_activate_all_onus_completed_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_xgpon_ni_activate_all_onus_completed_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_xgpon_ni_activate_all_onus_completed_id_unpack(bcmolt_xgpon_ni_activate_all_onus_completed_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_xgpon_ni_adjust_tx_wavelength_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_xgpon_ni_adjust_tx_wavelength_id_pack(bcmolt_xgpon_ni_adjust_tx_wavelength_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_xgpon_ni_adjust_tx_wavelength_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_xgpon_ni_adjust_tx_wavelength_id_unpack(bcmolt_xgpon_ni_adjust_tx_wavelength_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_xgpon_ni_auto_cfg_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_xgpon_ni_auto_cfg_id_pack(bcmolt_xgpon_ni_auto_cfg_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_xgpon_ni_auto_cfg_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_xgpon_ni_auto_cfg_id_unpack(bcmolt_xgpon_ni_auto_cfg_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_xgpon_ni_broadcast_ploam_packet_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_xgpon_ni_broadcast_ploam_packet_id_pack(bcmolt_xgpon_ni_broadcast_ploam_packet_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_xgpon_ni_broadcast_ploam_packet_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_xgpon_ni_broadcast_ploam_packet_id_unpack(bcmolt_xgpon_ni_broadcast_ploam_packet_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_xgpon_ni_cfg_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_xgpon_ni_cfg_id_pack(bcmolt_xgpon_ni_cfg_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_xgpon_ni_cfg_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_xgpon_ni_cfg_id_unpack(bcmolt_xgpon_ni_cfg_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_xgpon_ni_cpu_packets_failure_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_xgpon_ni_cpu_packets_failure_id_pack(bcmolt_xgpon_ni_cpu_packets_failure_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_xgpon_ni_cpu_packets_failure_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_xgpon_ni_cpu_packets_failure_id_unpack(bcmolt_xgpon_ni_cpu_packets_failure_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_xgpon_ni_cpu_packets_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_xgpon_ni_cpu_packets_id_pack(bcmolt_xgpon_ni_cpu_packets_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_xgpon_ni_cpu_packets_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_xgpon_ni_cpu_packets_id_unpack(bcmolt_xgpon_ni_cpu_packets_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_xgpon_ni_deactivate_all_onus_completed_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_xgpon_ni_deactivate_all_onus_completed_id_pack(bcmolt_xgpon_ni_deactivate_all_onus_completed_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_xgpon_ni_deactivate_all_onus_completed_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_xgpon_ni_deactivate_all_onus_completed_id_unpack(bcmolt_xgpon_ni_deactivate_all_onus_completed_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_xgpon_ni_disable_all_onus_completed_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_xgpon_ni_disable_all_onus_completed_id_pack(bcmolt_xgpon_ni_disable_all_onus_completed_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_xgpon_ni_disable_all_onus_completed_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_xgpon_ni_disable_all_onus_completed_id_unpack(bcmolt_xgpon_ni_disable_all_onus_completed_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_xgpon_ni_disable_serial_number_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_xgpon_ni_disable_serial_number_id_pack(bcmolt_xgpon_ni_disable_serial_number_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_xgpon_ni_disable_serial_number_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_xgpon_ni_disable_serial_number_id_unpack(bcmolt_xgpon_ni_disable_serial_number_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_xgpon_ni_enable_all_onus_completed_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_xgpon_ni_enable_all_onus_completed_id_pack(bcmolt_xgpon_ni_enable_all_onus_completed_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_xgpon_ni_enable_all_onus_completed_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_xgpon_ni_enable_all_onus_completed_id_unpack(bcmolt_xgpon_ni_enable_all_onus_completed_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_xgpon_ni_key_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_xgpon_ni_key_id_pack(bcmolt_xgpon_ni_key_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_xgpon_ni_key_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_xgpon_ni_key_id_unpack(bcmolt_xgpon_ni_key_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_xgpon_ni_los_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_xgpon_ni_los_id_pack(bcmolt_xgpon_ni_los_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_xgpon_ni_los_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_xgpon_ni_los_id_unpack(bcmolt_xgpon_ni_los_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_xgpon_ni_onu_discovered_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_xgpon_ni_onu_discovered_id_pack(bcmolt_xgpon_ni_onu_discovered_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_xgpon_ni_onu_discovered_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_xgpon_ni_onu_discovered_id_unpack(bcmolt_xgpon_ni_onu_discovered_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_xgpon_ni_onu_upgrade_complete_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_xgpon_ni_onu_upgrade_complete_id_pack(bcmolt_xgpon_ni_onu_upgrade_complete_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_xgpon_ni_onu_upgrade_complete_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_xgpon_ni_onu_upgrade_complete_id_unpack(bcmolt_xgpon_ni_onu_upgrade_complete_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_xgpon_ni_protection_switching_onus_ranged_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_xgpon_ni_protection_switching_onus_ranged_id_pack(bcmolt_xgpon_ni_protection_switching_onus_ranged_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_xgpon_ni_protection_switching_onus_ranged_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_xgpon_ni_protection_switching_onus_ranged_id_unpack(bcmolt_xgpon_ni_protection_switching_onus_ranged_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_xgpon_ni_protection_switching_switchover_completed_id to 
+ * bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_xgpon_ni_protection_switching_switchover_completed_id_pack(bcmolt_xgpon_ni_protection_switching_switchover_completed_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_xgpon_ni_protection_switching_switchover_completed_id from 
+ * bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_xgpon_ni_protection_switching_switchover_completed_id_unpack(bcmolt_xgpon_ni_protection_switching_switchover_completed_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_xgpon_ni_protection_switching_traffic_resume_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_xgpon_ni_protection_switching_traffic_resume_id_pack(bcmolt_xgpon_ni_protection_switching_traffic_resume_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_xgpon_ni_protection_switching_traffic_resume_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_xgpon_ni_protection_switching_traffic_resume_id_unpack(bcmolt_xgpon_ni_protection_switching_traffic_resume_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_xgpon_ni_reset_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_xgpon_ni_reset_id_pack(bcmolt_xgpon_ni_reset_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_xgpon_ni_reset_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_xgpon_ni_reset_id_unpack(bcmolt_xgpon_ni_reset_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_xgpon_ni_rogue_detection_completed_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_xgpon_ni_rogue_detection_completed_id_pack(bcmolt_xgpon_ni_rogue_detection_completed_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_xgpon_ni_rogue_detection_completed_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_xgpon_ni_rogue_detection_completed_id_unpack(bcmolt_xgpon_ni_rogue_detection_completed_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_xgpon_ni_rogue_detection_window_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_xgpon_ni_rogue_detection_window_id_pack(bcmolt_xgpon_ni_rogue_detection_window_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_xgpon_ni_rogue_detection_window_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_xgpon_ni_rogue_detection_window_id_unpack(bcmolt_xgpon_ni_rogue_detection_window_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_xgpon_ni_rogue_onu_special_map_cycle_start_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_xgpon_ni_rogue_onu_special_map_cycle_start_id_pack(bcmolt_xgpon_ni_rogue_onu_special_map_cycle_start_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_xgpon_ni_rogue_onu_special_map_cycle_start_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_xgpon_ni_rogue_onu_special_map_cycle_start_id_unpack(bcmolt_xgpon_ni_rogue_onu_special_map_cycle_start_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_xgpon_ni_run_special_bw_map_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_xgpon_ni_run_special_bw_map_id_pack(bcmolt_xgpon_ni_run_special_bw_map_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_xgpon_ni_run_special_bw_map_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_xgpon_ni_run_special_bw_map_id_unpack(bcmolt_xgpon_ni_run_special_bw_map_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_xgpon_ni_serial_number_acquisition_cycle_start_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_xgpon_ni_serial_number_acquisition_cycle_start_id_pack(bcmolt_xgpon_ni_serial_number_acquisition_cycle_start_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_xgpon_ni_serial_number_acquisition_cycle_start_id from 
+ * bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_xgpon_ni_serial_number_acquisition_cycle_start_id_unpack(bcmolt_xgpon_ni_serial_number_acquisition_cycle_start_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_xgpon_ni_set_onu_state_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_xgpon_ni_set_onu_state_id_pack(bcmolt_xgpon_ni_set_onu_state_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_xgpon_ni_set_onu_state_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_xgpon_ni_set_onu_state_id_unpack(bcmolt_xgpon_ni_set_onu_state_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_xgpon_ni_set_pon_state_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_xgpon_ni_set_pon_state_id_pack(bcmolt_xgpon_ni_set_pon_state_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_xgpon_ni_set_pon_state_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_xgpon_ni_set_pon_state_id_unpack(bcmolt_xgpon_ni_set_pon_state_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_xgpon_ni_single_request_standby_pon_monitoring_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_xgpon_ni_single_request_standby_pon_monitoring_id_pack(bcmolt_xgpon_ni_single_request_standby_pon_monitoring_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_xgpon_ni_single_request_standby_pon_monitoring_id from 
+ * bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_xgpon_ni_single_request_standby_pon_monitoring_id_unpack(bcmolt_xgpon_ni_single_request_standby_pon_monitoring_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_xgpon_ni_standby_pon_monitoring_cycle_completed_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_xgpon_ni_standby_pon_monitoring_cycle_completed_id_pack(bcmolt_xgpon_ni_standby_pon_monitoring_cycle_completed_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_xgpon_ni_standby_pon_monitoring_cycle_completed_id from 
+ * bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_xgpon_ni_standby_pon_monitoring_cycle_completed_id_unpack(bcmolt_xgpon_ni_standby_pon_monitoring_cycle_completed_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_xgpon_ni_start_onu_upgrade_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_xgpon_ni_start_onu_upgrade_id_pack(bcmolt_xgpon_ni_start_onu_upgrade_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_xgpon_ni_start_onu_upgrade_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_xgpon_ni_start_onu_upgrade_id_unpack(bcmolt_xgpon_ni_start_onu_upgrade_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_xgpon_ni_stat_alarm_cleared_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_xgpon_ni_stat_alarm_cleared_id_pack(bcmolt_xgpon_ni_stat_alarm_cleared_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_xgpon_ni_stat_alarm_cleared_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_xgpon_ni_stat_alarm_cleared_id_unpack(bcmolt_xgpon_ni_stat_alarm_cleared_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_xgpon_ni_stat_alarm_raised_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_xgpon_ni_stat_alarm_raised_id_pack(bcmolt_xgpon_ni_stat_alarm_raised_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_xgpon_ni_stat_alarm_raised_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_xgpon_ni_stat_alarm_raised_id_unpack(bcmolt_xgpon_ni_stat_alarm_raised_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_xgpon_ni_stat_cfg_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_xgpon_ni_stat_cfg_id_pack(bcmolt_xgpon_ni_stat_cfg_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_xgpon_ni_stat_cfg_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_xgpon_ni_stat_cfg_id_unpack(bcmolt_xgpon_ni_stat_cfg_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_xgpon_ni_stat_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_xgpon_ni_stat_id_pack(bcmolt_xgpon_ni_stat_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_xgpon_ni_stat_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_xgpon_ni_stat_id_unpack(bcmolt_xgpon_ni_stat_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_xgpon_ni_state_change_completed_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_xgpon_ni_state_change_completed_id_pack(bcmolt_xgpon_ni_state_change_completed_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_xgpon_ni_state_change_completed_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_xgpon_ni_state_change_completed_id_unpack(bcmolt_xgpon_ni_state_change_completed_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_xgpon_ni_tod_request_completed_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_xgpon_ni_tod_request_completed_id_pack(bcmolt_xgpon_ni_tod_request_completed_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_xgpon_ni_tod_request_completed_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_xgpon_ni_tod_request_completed_id_unpack(bcmolt_xgpon_ni_tod_request_completed_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_xgpon_ni_tod_request_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_xgpon_ni_tod_request_id_pack(bcmolt_xgpon_ni_tod_request_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_xgpon_ni_tod_request_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_xgpon_ni_tod_request_id_unpack(bcmolt_xgpon_ni_tod_request_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_xgpon_num_of_onus to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_xgpon_num_of_onus_pack(bcmolt_xgpon_num_of_onus this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_xgpon_num_of_onus from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_xgpon_num_of_onus_unpack(bcmolt_xgpon_num_of_onus *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_xgpon_onu_adjust_tx_wavelength_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_xgpon_onu_adjust_tx_wavelength_id_pack(bcmolt_xgpon_onu_adjust_tx_wavelength_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_xgpon_onu_adjust_tx_wavelength_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_xgpon_onu_adjust_tx_wavelength_id_unpack(bcmolt_xgpon_onu_adjust_tx_wavelength_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_xgpon_onu_auto_cfg_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_xgpon_onu_auto_cfg_id_pack(bcmolt_xgpon_onu_auto_cfg_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_xgpon_onu_auto_cfg_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_xgpon_onu_auto_cfg_id_unpack(bcmolt_xgpon_onu_auto_cfg_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_xgpon_onu_cfg_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_xgpon_onu_cfg_id_pack(bcmolt_xgpon_onu_cfg_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_xgpon_onu_cfg_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_xgpon_onu_cfg_id_unpack(bcmolt_xgpon_onu_cfg_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_xgpon_onu_change_power_levelling_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_xgpon_onu_change_power_levelling_id_pack(bcmolt_xgpon_onu_change_power_levelling_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_xgpon_onu_change_power_levelling_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_xgpon_onu_change_power_levelling_id_unpack(bcmolt_xgpon_onu_change_power_levelling_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_xgpon_onu_cpu_packet_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_xgpon_onu_cpu_packet_id_pack(bcmolt_xgpon_onu_cpu_packet_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_xgpon_onu_cpu_packet_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_xgpon_onu_cpu_packet_id_unpack(bcmolt_xgpon_onu_cpu_packet_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_xgpon_onu_cpu_packets_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_xgpon_onu_cpu_packets_id_pack(bcmolt_xgpon_onu_cpu_packets_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_xgpon_onu_cpu_packets_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_xgpon_onu_cpu_packets_id_unpack(bcmolt_xgpon_onu_cpu_packets_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_xgpon_onu_dfi_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_xgpon_onu_dfi_id_pack(bcmolt_xgpon_onu_dfi_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_xgpon_onu_dfi_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_xgpon_onu_dfi_id_unpack(bcmolt_xgpon_onu_dfi_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_xgpon_onu_dgi_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_xgpon_onu_dgi_id_pack(bcmolt_xgpon_onu_dgi_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_xgpon_onu_dgi_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_xgpon_onu_dgi_id_unpack(bcmolt_xgpon_onu_dgi_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_xgpon_onu_dowi_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_xgpon_onu_dowi_id_pack(bcmolt_xgpon_onu_dowi_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_xgpon_onu_dowi_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_xgpon_onu_dowi_id_unpack(bcmolt_xgpon_onu_dowi_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_xgpon_onu_get_power_consumption_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_xgpon_onu_get_power_consumption_id_pack(bcmolt_xgpon_onu_get_power_consumption_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_xgpon_onu_get_power_consumption_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_xgpon_onu_get_power_consumption_id_unpack(bcmolt_xgpon_onu_get_power_consumption_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_xgpon_onu_get_power_level_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_xgpon_onu_get_power_level_id_pack(bcmolt_xgpon_onu_get_power_level_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_xgpon_onu_get_power_level_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_xgpon_onu_get_power_level_id_unpack(bcmolt_xgpon_onu_get_power_level_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_xgpon_onu_invalid_dbru_report_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_xgpon_onu_invalid_dbru_report_id_pack(bcmolt_xgpon_onu_invalid_dbru_report_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_xgpon_onu_invalid_dbru_report_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_xgpon_onu_invalid_dbru_report_id_unpack(bcmolt_xgpon_onu_invalid_dbru_report_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_xgpon_onu_key_exchange_completed_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_xgpon_onu_key_exchange_completed_id_pack(bcmolt_xgpon_onu_key_exchange_completed_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_xgpon_onu_key_exchange_completed_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_xgpon_onu_key_exchange_completed_id_unpack(bcmolt_xgpon_onu_key_exchange_completed_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_xgpon_onu_key_exchange_cycle_skipped_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_xgpon_onu_key_exchange_cycle_skipped_id_pack(bcmolt_xgpon_onu_key_exchange_cycle_skipped_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_xgpon_onu_key_exchange_cycle_skipped_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_xgpon_onu_key_exchange_cycle_skipped_id_unpack(bcmolt_xgpon_onu_key_exchange_cycle_skipped_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_xgpon_onu_key_exchange_key_mismatch_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_xgpon_onu_key_exchange_key_mismatch_id_pack(bcmolt_xgpon_onu_key_exchange_key_mismatch_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_xgpon_onu_key_exchange_key_mismatch_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_xgpon_onu_key_exchange_key_mismatch_id_unpack(bcmolt_xgpon_onu_key_exchange_key_mismatch_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_xgpon_onu_key_exchange_key_request_timeout_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_xgpon_onu_key_exchange_key_request_timeout_id_pack(bcmolt_xgpon_onu_key_exchange_key_request_timeout_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_xgpon_onu_key_exchange_key_request_timeout_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_xgpon_onu_key_exchange_key_request_timeout_id_unpack(bcmolt_xgpon_onu_key_exchange_key_request_timeout_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_xgpon_onu_key_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_xgpon_onu_key_id_pack(bcmolt_xgpon_onu_key_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_xgpon_onu_key_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_xgpon_onu_key_id_unpack(bcmolt_xgpon_onu_key_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_xgpon_onu_looci_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_xgpon_onu_looci_id_pack(bcmolt_xgpon_onu_looci_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_xgpon_onu_looci_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_xgpon_onu_looci_id_unpack(bcmolt_xgpon_onu_looci_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_xgpon_onu_omci_packet_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_xgpon_onu_omci_packet_id_pack(bcmolt_xgpon_onu_omci_packet_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_xgpon_onu_omci_packet_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_xgpon_onu_omci_packet_id_unpack(bcmolt_xgpon_onu_omci_packet_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_xgpon_onu_onu_activation_completed_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_xgpon_onu_onu_activation_completed_id_pack(bcmolt_xgpon_onu_onu_activation_completed_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_xgpon_onu_onu_activation_completed_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_xgpon_onu_onu_activation_completed_id_unpack(bcmolt_xgpon_onu_onu_activation_completed_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_xgpon_onu_onu_alarm_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_xgpon_onu_onu_alarm_id_pack(bcmolt_xgpon_onu_onu_alarm_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_xgpon_onu_onu_alarm_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_xgpon_onu_onu_alarm_id_unpack(bcmolt_xgpon_onu_onu_alarm_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_xgpon_onu_onu_deactivation_completed_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_xgpon_onu_onu_deactivation_completed_id_pack(bcmolt_xgpon_onu_onu_deactivation_completed_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_xgpon_onu_onu_deactivation_completed_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_xgpon_onu_onu_deactivation_completed_id_unpack(bcmolt_xgpon_onu_onu_deactivation_completed_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_xgpon_onu_onu_disable_completed_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_xgpon_onu_onu_disable_completed_id_pack(bcmolt_xgpon_onu_onu_disable_completed_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_xgpon_onu_onu_disable_completed_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_xgpon_onu_onu_disable_completed_id_unpack(bcmolt_xgpon_onu_onu_disable_completed_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_xgpon_onu_onu_enable_completed_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_xgpon_onu_onu_enable_completed_id_pack(bcmolt_xgpon_onu_onu_enable_completed_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_xgpon_onu_onu_enable_completed_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_xgpon_onu_onu_enable_completed_id_unpack(bcmolt_xgpon_onu_onu_enable_completed_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_xgpon_onu_onu_tuning_in_completed_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_xgpon_onu_onu_tuning_in_completed_id_pack(bcmolt_xgpon_onu_onu_tuning_in_completed_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_xgpon_onu_onu_tuning_in_completed_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_xgpon_onu_onu_tuning_in_completed_id_unpack(bcmolt_xgpon_onu_onu_tuning_in_completed_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_xgpon_onu_onu_tuning_in_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_xgpon_onu_onu_tuning_in_id_pack(bcmolt_xgpon_onu_onu_tuning_in_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_xgpon_onu_onu_tuning_in_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_xgpon_onu_onu_tuning_in_id_unpack(bcmolt_xgpon_onu_onu_tuning_in_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_xgpon_onu_onu_tuning_out_completed_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_xgpon_onu_onu_tuning_out_completed_id_pack(bcmolt_xgpon_onu_onu_tuning_out_completed_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_xgpon_onu_onu_tuning_out_completed_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_xgpon_onu_onu_tuning_out_completed_id_unpack(bcmolt_xgpon_onu_onu_tuning_out_completed_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_xgpon_onu_onu_tuning_out_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_xgpon_onu_onu_tuning_out_id_pack(bcmolt_xgpon_onu_onu_tuning_out_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_xgpon_onu_onu_tuning_out_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_xgpon_onu_onu_tuning_out_id_unpack(bcmolt_xgpon_onu_onu_tuning_out_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_xgpon_onu_optical_reflection_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_xgpon_onu_optical_reflection_id_pack(bcmolt_xgpon_onu_optical_reflection_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_xgpon_onu_optical_reflection_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_xgpon_onu_optical_reflection_id_unpack(bcmolt_xgpon_onu_optical_reflection_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_xgpon_onu_ploam_packet_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_xgpon_onu_ploam_packet_id_pack(bcmolt_xgpon_onu_ploam_packet_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_xgpon_onu_ploam_packet_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_xgpon_onu_ploam_packet_id_unpack(bcmolt_xgpon_onu_ploam_packet_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_xgpon_onu_possible_drift_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_xgpon_onu_possible_drift_id_pack(bcmolt_xgpon_onu_possible_drift_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_xgpon_onu_possible_drift_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_xgpon_onu_possible_drift_id_unpack(bcmolt_xgpon_onu_possible_drift_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_xgpon_onu_power_consumption_report_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_xgpon_onu_power_consumption_report_id_pack(bcmolt_xgpon_onu_power_consumption_report_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_xgpon_onu_power_consumption_report_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_xgpon_onu_power_consumption_report_id_unpack(bcmolt_xgpon_onu_power_consumption_report_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_xgpon_onu_power_level_report_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_xgpon_onu_power_level_report_id_pack(bcmolt_xgpon_onu_power_level_report_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_xgpon_onu_power_level_report_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_xgpon_onu_power_level_report_id_unpack(bcmolt_xgpon_onu_power_level_report_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_xgpon_onu_power_management_state_change_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_xgpon_onu_power_management_state_change_id_pack(bcmolt_xgpon_onu_power_management_state_change_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_xgpon_onu_power_management_state_change_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_xgpon_onu_power_management_state_change_id_unpack(bcmolt_xgpon_onu_power_management_state_change_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_xgpon_onu_pqsi_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_xgpon_onu_pqsi_id_pack(bcmolt_xgpon_onu_pqsi_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_xgpon_onu_pqsi_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_xgpon_onu_pqsi_id_unpack(bcmolt_xgpon_onu_pqsi_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_xgpon_onu_ranging_completed_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_xgpon_onu_ranging_completed_id_pack(bcmolt_xgpon_onu_ranging_completed_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_xgpon_onu_ranging_completed_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_xgpon_onu_ranging_completed_id_unpack(bcmolt_xgpon_onu_ranging_completed_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_xgpon_onu_registration_id_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_xgpon_onu_registration_id_id_pack(bcmolt_xgpon_onu_registration_id_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_xgpon_onu_registration_id_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_xgpon_onu_registration_id_id_unpack(bcmolt_xgpon_onu_registration_id_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_xgpon_onu_request_registration_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_xgpon_onu_request_registration_id_pack(bcmolt_xgpon_onu_request_registration_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_xgpon_onu_request_registration_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_xgpon_onu_request_registration_id_unpack(bcmolt_xgpon_onu_request_registration_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_xgpon_onu_rssi_measurement_completed_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_xgpon_onu_rssi_measurement_completed_id_pack(bcmolt_xgpon_onu_rssi_measurement_completed_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_xgpon_onu_rssi_measurement_completed_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_xgpon_onu_rssi_measurement_completed_id_unpack(bcmolt_xgpon_onu_rssi_measurement_completed_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_xgpon_onu_rssi_measurement_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_xgpon_onu_rssi_measurement_id_pack(bcmolt_xgpon_onu_rssi_measurement_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_xgpon_onu_rssi_measurement_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_xgpon_onu_rssi_measurement_id_unpack(bcmolt_xgpon_onu_rssi_measurement_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_xgpon_onu_sdi_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_xgpon_onu_sdi_id_pack(bcmolt_xgpon_onu_sdi_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_xgpon_onu_sdi_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_xgpon_onu_sdi_id_unpack(bcmolt_xgpon_onu_sdi_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_xgpon_onu_secure_mutual_authentication_failure_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_xgpon_onu_secure_mutual_authentication_failure_id_pack(bcmolt_xgpon_onu_secure_mutual_authentication_failure_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_xgpon_onu_secure_mutual_authentication_failure_id from 
+ * bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_xgpon_onu_secure_mutual_authentication_failure_id_unpack(bcmolt_xgpon_onu_secure_mutual_authentication_failure_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_xgpon_onu_secure_mutual_authentication_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_xgpon_onu_secure_mutual_authentication_id_pack(bcmolt_xgpon_onu_secure_mutual_authentication_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_xgpon_onu_secure_mutual_authentication_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_xgpon_onu_secure_mutual_authentication_id_unpack(bcmolt_xgpon_onu_secure_mutual_authentication_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_xgpon_onu_set_onu_state_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_xgpon_onu_set_onu_state_id_pack(bcmolt_xgpon_onu_set_onu_state_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_xgpon_onu_set_onu_state_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_xgpon_onu_set_onu_state_id_unpack(bcmolt_xgpon_onu_set_onu_state_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_xgpon_onu_sfi_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_xgpon_onu_sfi_id_pack(bcmolt_xgpon_onu_sfi_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_xgpon_onu_sfi_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_xgpon_onu_sfi_id_unpack(bcmolt_xgpon_onu_sfi_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_xgpon_onu_stat_alarm_cleared_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_xgpon_onu_stat_alarm_cleared_id_pack(bcmolt_xgpon_onu_stat_alarm_cleared_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_xgpon_onu_stat_alarm_cleared_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_xgpon_onu_stat_alarm_cleared_id_unpack(bcmolt_xgpon_onu_stat_alarm_cleared_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_xgpon_onu_stat_alarm_raised_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_xgpon_onu_stat_alarm_raised_id_pack(bcmolt_xgpon_onu_stat_alarm_raised_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_xgpon_onu_stat_alarm_raised_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_xgpon_onu_stat_alarm_raised_id_unpack(bcmolt_xgpon_onu_stat_alarm_raised_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_xgpon_onu_stat_cfg_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_xgpon_onu_stat_cfg_id_pack(bcmolt_xgpon_onu_stat_cfg_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_xgpon_onu_stat_cfg_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_xgpon_onu_stat_cfg_id_unpack(bcmolt_xgpon_onu_stat_cfg_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_xgpon_onu_stat_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_xgpon_onu_stat_id_pack(bcmolt_xgpon_onu_stat_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_xgpon_onu_stat_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_xgpon_onu_stat_id_unpack(bcmolt_xgpon_onu_stat_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_xgpon_onu_sufi_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_xgpon_onu_sufi_id_pack(bcmolt_xgpon_onu_sufi_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_xgpon_onu_sufi_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_xgpon_onu_sufi_id_unpack(bcmolt_xgpon_onu_sufi_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_xgpon_onu_tiwi_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_xgpon_onu_tiwi_id_pack(bcmolt_xgpon_onu_tiwi_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_xgpon_onu_tiwi_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_xgpon_onu_tiwi_id_unpack(bcmolt_xgpon_onu_tiwi_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_xgpon_onu_tuning_response_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_xgpon_onu_tuning_response_id_pack(bcmolt_xgpon_onu_tuning_response_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_xgpon_onu_tuning_response_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_xgpon_onu_tuning_response_id_unpack(bcmolt_xgpon_onu_tuning_response_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_xgpon_serdes_ranging_mode to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_xgpon_serdes_ranging_mode_pack(bcmolt_xgpon_serdes_ranging_mode this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_xgpon_serdes_ranging_mode from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_xgpon_serdes_ranging_mode_unpack(bcmolt_xgpon_serdes_ranging_mode *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_xgpon_trx_cfg_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_xgpon_trx_cfg_id_pack(bcmolt_xgpon_trx_cfg_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_xgpon_trx_cfg_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_xgpon_trx_cfg_id_unpack(bcmolt_xgpon_trx_cfg_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_xgpon_trx_key_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_xgpon_trx_key_id_pack(bcmolt_xgpon_trx_key_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_xgpon_trx_key_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_xgpon_trx_key_id_unpack(bcmolt_xgpon_trx_key_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_xgpon_trx_type to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_xgpon_trx_type_pack(bcmolt_xgpon_trx_type this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_xgpon_trx_type from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_xgpon_trx_type_unpack(bcmolt_xgpon_trx_type *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_xpon_serdes_cfg_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_xpon_serdes_cfg_id_pack(bcmolt_xpon_serdes_cfg_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_xpon_serdes_cfg_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_xpon_serdes_cfg_id_unpack(bcmolt_xpon_serdes_cfg_id *this, bcmolt_buf *buf);
+
+/** Packs a bcmolt_xpon_serdes_key_id to bytes 
+ *
+ * \param this The enumeration to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the pack was successful 
+ */
+bcmos_bool bcmolt_xpon_serdes_key_id_pack(bcmolt_xpon_serdes_key_id this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_xpon_serdes_key_id from bytes 
+ *
+ * \param this Pointer to the enumeration to unpack 
+ * \param buf Pointer to the buffer to write to 
+ * \return Whether or not the unpack was successful 
+ */
+bcmos_bool bcmolt_xpon_serdes_key_id_unpack(bcmolt_xpon_serdes_key_id *this, bcmolt_buf *buf);
+
+/** Initializes a bcmolt_actual_schedulershaper struct.  This sets all fields to 
+ * default values. 
+ *
+ * \param this Pointer to the structure 
+ */
+void bcmolt_actual_schedulershaper_set_default(bcmolt_actual_schedulershaper *this);
+
+/** Packs a bcmolt_actual_schedulershaper to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_actual_schedulershaper_pack(const bcmolt_actual_schedulershaper *this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_actual_schedulershaper from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_actual_schedulershaper_unpack(bcmolt_actual_schedulershaper *this, bcmolt_buf *buf, void **extra_mem);
+
+/** Scans past a packed bcmolt_actual_schedulershaper struct and collects memory 
+ * requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_actual_schedulershaper_scan(bcmolt_buf *packed, uint32_t *extra_mem);
+
+/** Checks if any field in the bcmolt_actual_schedulershaper is out of bounds 
+ *
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_actual_schedulershaper_bounds_check(const bcmolt_actual_schedulershaper *this);
+
+/** Initializes a bcmolt_aes_key struct.  This sets all fields to default 
+ * values. 
+ *
+ * \param this Pointer to the structure 
+ */
+void bcmolt_aes_key_set_default(bcmolt_aes_key *this);
+
+/** Packs a bcmolt_aes_key to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_aes_key_pack(const bcmolt_aes_key *this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_aes_key from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_aes_key_unpack(bcmolt_aes_key *this, bcmolt_buf *buf, void **extra_mem);
+
+/** Scans past a packed bcmolt_aes_key struct and collects memory requirements 
+ * above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_aes_key_scan(bcmolt_buf *packed, uint32_t *extra_mem);
+
+/** Checks if any field in the bcmolt_aes_key is out of bounds 
+ *
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_aes_key_bounds_check(const bcmolt_aes_key *this);
+
+/** Initializes a bcmolt_api_capture_buffer_reader struct.  This sets all fields 
+ * to default values. 
+ *
+ * \param this Pointer to the structure 
+ */
+void bcmolt_api_capture_buffer_reader_set_default(bcmolt_api_capture_buffer_reader *this);
+
+/** Packs a bcmolt_api_capture_buffer_reader to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_api_capture_buffer_reader_pack(const bcmolt_api_capture_buffer_reader *this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_api_capture_buffer_reader from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_api_capture_buffer_reader_unpack(bcmolt_api_capture_buffer_reader *this, bcmolt_buf *buf, void **extra_mem);
+
+/** Scans past a packed bcmolt_api_capture_buffer_reader struct and collects 
+ * memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_api_capture_buffer_reader_scan(bcmolt_buf *packed, uint32_t *extra_mem);
+
+/** Checks if any field in the bcmolt_api_capture_buffer_reader is out of bounds 
+ *
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_api_capture_buffer_reader_bounds_check(const bcmolt_api_capture_buffer_reader *this);
+
+/** Initializes a bcmolt_api_capture_config struct.  This sets all fields to 
+ * default values. 
+ *
+ * \param this Pointer to the structure 
+ */
+void bcmolt_api_capture_config_set_default(bcmolt_api_capture_config *this);
+
+/** Packs a bcmolt_api_capture_config to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_api_capture_config_pack(const bcmolt_api_capture_config *this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_api_capture_config from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_api_capture_config_unpack(bcmolt_api_capture_config *this, bcmolt_buf *buf, void **extra_mem);
+
+/** Scans past a packed bcmolt_api_capture_config struct and collects memory 
+ * requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_api_capture_config_scan(bcmolt_buf *packed, uint32_t *extra_mem);
+
+/** Checks if any field in the bcmolt_api_capture_config is out of bounds 
+ *
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_api_capture_config_bounds_check(const bcmolt_api_capture_config *this);
+
+/** Initializes a bcmolt_api_capture_stats struct.  This sets all fields to 
+ * default values. 
+ *
+ * \param this Pointer to the structure 
+ */
+void bcmolt_api_capture_stats_set_default(bcmolt_api_capture_stats *this);
+
+/** Packs a bcmolt_api_capture_stats to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_api_capture_stats_pack(const bcmolt_api_capture_stats *this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_api_capture_stats from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_api_capture_stats_unpack(bcmolt_api_capture_stats *this, bcmolt_buf *buf, void **extra_mem);
+
+/** Scans past a packed bcmolt_api_capture_stats struct and collects memory 
+ * requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_api_capture_stats_scan(bcmolt_buf *packed, uint32_t *extra_mem);
+
+/** Checks if any field in the bcmolt_api_capture_stats is out of bounds 
+ *
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_api_capture_stats_bounds_check(const bcmolt_api_capture_stats *this);
+
+/** Initializes a bcmolt_bounds struct.  This sets all fields to default values. 
+ *
+ * \param this Pointer to the structure 
+ */
+void bcmolt_bounds_set_default(bcmolt_bounds *this);
+
+/** Packs a bcmolt_bounds to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_bounds_pack(const bcmolt_bounds *this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_bounds from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_bounds_unpack(bcmolt_bounds *this, bcmolt_buf *buf, void **extra_mem);
+
+/** Scans past a packed bcmolt_bounds struct and collects memory requirements 
+ * above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_bounds_scan(bcmolt_buf *packed, uint32_t *extra_mem);
+
+/** Checks if any field in the bcmolt_bounds is out of bounds 
+ *
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_bounds_bounds_check(const bcmolt_bounds *this);
+
+/** Initializes a bcmolt_arr_bounds_8 struct.  This sets all fields to default 
+ * values. 
+ *
+ * \param this Pointer to the structure 
+ */
+void bcmolt_arr_bounds_8_set_default(bcmolt_arr_bounds_8 *this);
+
+/** Packs a bcmolt_arr_bounds_8 to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_arr_bounds_8_pack(const bcmolt_arr_bounds_8 *this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_arr_bounds_8 from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_arr_bounds_8_unpack(bcmolt_arr_bounds_8 *this, bcmolt_buf *buf, void **extra_mem);
+
+/** Scans past a packed bcmolt_arr_bounds_8 struct and collects memory 
+ * requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_arr_bounds_8_scan(bcmolt_buf *packed, uint32_t *extra_mem);
+
+/** Checks if any field in the bcmolt_arr_bounds_8 is out of bounds 
+ *
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_arr_bounds_8_bounds_check(const bcmolt_arr_bounds_8 *this);
+
+/** Initializes a bcmolt_arr_calibration_record_8 struct.  This sets all fields 
+ * to default values. 
+ *
+ * \param this Pointer to the structure 
+ */
+void bcmolt_arr_calibration_record_8_set_default(bcmolt_arr_calibration_record_8 *this);
+
+/** Packs a bcmolt_arr_calibration_record_8 to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_arr_calibration_record_8_pack(const bcmolt_arr_calibration_record_8 *this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_arr_calibration_record_8 from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_arr_calibration_record_8_unpack(bcmolt_arr_calibration_record_8 *this, bcmolt_buf *buf, void **extra_mem);
+
+/** Scans past a packed bcmolt_arr_calibration_record_8 struct and collects 
+ * memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_arr_calibration_record_8_scan(bcmolt_buf *packed, uint32_t *extra_mem);
+
+/** Checks if any field in the bcmolt_arr_calibration_record_8 is out of bounds 
+ *
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_arr_calibration_record_8_bounds_check(const bcmolt_arr_calibration_record_8 *this);
+
+/** Initializes a bcmolt_ds_frequency_offset struct.  This sets all fields to 
+ * default values. 
+ *
+ * \param this Pointer to the structure 
+ */
+void bcmolt_ds_frequency_offset_set_default(bcmolt_ds_frequency_offset *this);
+
+/** Packs a bcmolt_ds_frequency_offset to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_ds_frequency_offset_pack(const bcmolt_ds_frequency_offset *this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_ds_frequency_offset from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_ds_frequency_offset_unpack(bcmolt_ds_frequency_offset *this, bcmolt_buf *buf, void **extra_mem);
+
+/** Scans past a packed bcmolt_ds_frequency_offset struct and collects memory 
+ * requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_ds_frequency_offset_scan(bcmolt_buf *packed, uint32_t *extra_mem);
+
+/** Checks if any field in the bcmolt_ds_frequency_offset is out of bounds 
+ *
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_ds_frequency_offset_bounds_check(const bcmolt_ds_frequency_offset *this);
+
+/** Initializes a bcmolt_channel_profile struct.  This sets all fields to 
+ * default values. 
+ *
+ * \param this Pointer to the structure 
+ */
+void bcmolt_channel_profile_set_default(bcmolt_channel_profile *this);
+
+/** Packs a bcmolt_channel_profile to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_channel_profile_pack(const bcmolt_channel_profile *this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_channel_profile from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_channel_profile_unpack(bcmolt_channel_profile *this, bcmolt_buf *buf, void **extra_mem);
+
+/** Scans past a packed bcmolt_channel_profile struct and collects memory 
+ * requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_channel_profile_scan(bcmolt_buf *packed, uint32_t *extra_mem);
+
+/** Checks if any field in the bcmolt_channel_profile is out of bounds 
+ *
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_channel_profile_bounds_check(const bcmolt_channel_profile *this);
+
+/** Initializes a bcmolt_arr_channel_profile_8 struct.  This sets all fields to 
+ * default values. 
+ *
+ * \param this Pointer to the structure 
+ */
+void bcmolt_arr_channel_profile_8_set_default(bcmolt_arr_channel_profile_8 *this);
+
+/** Packs a bcmolt_arr_channel_profile_8 to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_arr_channel_profile_8_pack(const bcmolt_arr_channel_profile_8 *this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_arr_channel_profile_8 from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_arr_channel_profile_8_unpack(bcmolt_arr_channel_profile_8 *this, bcmolt_buf *buf, void **extra_mem);
+
+/** Scans past a packed bcmolt_arr_channel_profile_8 struct and collects memory 
+ * requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_arr_channel_profile_8_scan(bcmolt_buf *packed, uint32_t *extra_mem);
+
+/** Checks if any field in the bcmolt_arr_channel_profile_8 is out of bounds 
+ *
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_arr_channel_profile_8_bounds_check(const bcmolt_arr_channel_profile_8 *this);
+
+/** Initializes a bcmolt_power_consumption_channel_report struct.  This sets all 
+ * fields to default values. 
+ *
+ * \param this Pointer to the structure 
+ */
+void bcmolt_power_consumption_channel_report_set_default(bcmolt_power_consumption_channel_report *this);
+
+/** Packs a bcmolt_power_consumption_channel_report to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_power_consumption_channel_report_pack(const bcmolt_power_consumption_channel_report *this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_power_consumption_channel_report from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_power_consumption_channel_report_unpack(bcmolt_power_consumption_channel_report *this, bcmolt_buf *buf, void **extra_mem);
+
+/** Scans past a packed bcmolt_power_consumption_channel_report struct and 
+ * collects memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_power_consumption_channel_report_scan(bcmolt_buf *packed, uint32_t *extra_mem);
+
+/** Checks if any field in the bcmolt_power_consumption_channel_report is out of 
+ * bounds 
+ *
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_power_consumption_channel_report_bounds_check(const bcmolt_power_consumption_channel_report *this);
+
+/** Initializes a bcmolt_arr_power_consumption_channel_report_8 struct.  This 
+ * sets all fields to default values. 
+ *
+ * \param this Pointer to the structure 
+ */
+void bcmolt_arr_power_consumption_channel_report_8_set_default(bcmolt_arr_power_consumption_channel_report_8 *this);
+
+/** Packs a bcmolt_arr_power_consumption_channel_report_8 to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_arr_power_consumption_channel_report_8_pack(const bcmolt_arr_power_consumption_channel_report_8 *this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_arr_power_consumption_channel_report_8 from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_arr_power_consumption_channel_report_8_unpack(bcmolt_arr_power_consumption_channel_report_8 *this, bcmolt_buf *buf, void **extra_mem);
+
+/** Scans past a packed bcmolt_arr_power_consumption_channel_report_8 struct and 
+ * collects memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_arr_power_consumption_channel_report_8_scan(bcmolt_buf *packed, uint32_t *extra_mem);
+
+/** Checks if any field in the bcmolt_arr_power_consumption_channel_report_8 is 
+ * out of bounds 
+ *
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_arr_power_consumption_channel_report_8_bounds_check(const bcmolt_arr_power_consumption_channel_report_8 *this);
+
+/** Initializes a bcmolt_arr_u16_2 struct.  This sets all fields to default 
+ * values. 
+ *
+ * \param this Pointer to the structure 
+ */
+void bcmolt_arr_u16_2_set_default(bcmolt_arr_u16_2 *this);
+
+/** Packs a bcmolt_arr_u16_2 to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_arr_u16_2_pack(const bcmolt_arr_u16_2 *this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_arr_u16_2 from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_arr_u16_2_unpack(bcmolt_arr_u16_2 *this, bcmolt_buf *buf, void **extra_mem);
+
+/** Scans past a packed bcmolt_arr_u16_2 struct and collects memory requirements 
+ * above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_arr_u16_2_scan(bcmolt_buf *packed, uint32_t *extra_mem);
+
+/** Checks if any field in the bcmolt_arr_u16_2 is out of bounds 
+ *
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_arr_u16_2_bounds_check(const bcmolt_arr_u16_2 *this);
+
+/** Initializes a bcmolt_arr_u16_2_hex struct.  This sets all fields to default 
+ * values. 
+ *
+ * \param this Pointer to the structure 
+ */
+void bcmolt_arr_u16_2_hex_set_default(bcmolt_arr_u16_2_hex *this);
+
+/** Packs a bcmolt_arr_u16_2_hex to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_arr_u16_2_hex_pack(const bcmolt_arr_u16_2_hex *this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_arr_u16_2_hex from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_arr_u16_2_hex_unpack(bcmolt_arr_u16_2_hex *this, bcmolt_buf *buf, void **extra_mem);
+
+/** Scans past a packed bcmolt_arr_u16_2_hex struct and collects memory 
+ * requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_arr_u16_2_hex_scan(bcmolt_buf *packed, uint32_t *extra_mem);
+
+/** Checks if any field in the bcmolt_arr_u16_2_hex is out of bounds 
+ *
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_arr_u16_2_hex_bounds_check(const bcmolt_arr_u16_2_hex *this);
+
+/** Initializes a bcmolt_arr_u16_5_hex struct.  This sets all fields to default 
+ * values. 
+ *
+ * \param this Pointer to the structure 
+ */
+void bcmolt_arr_u16_5_hex_set_default(bcmolt_arr_u16_5_hex *this);
+
+/** Packs a bcmolt_arr_u16_5_hex to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_arr_u16_5_hex_pack(const bcmolt_arr_u16_5_hex *this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_arr_u16_5_hex from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_arr_u16_5_hex_unpack(bcmolt_arr_u16_5_hex *this, bcmolt_buf *buf, void **extra_mem);
+
+/** Scans past a packed bcmolt_arr_u16_5_hex struct and collects memory 
+ * requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_arr_u16_5_hex_scan(bcmolt_buf *packed, uint32_t *extra_mem);
+
+/** Checks if any field in the bcmolt_arr_u16_5_hex is out of bounds 
+ *
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_arr_u16_5_hex_bounds_check(const bcmolt_arr_u16_5_hex *this);
+
+/** Initializes a bcmolt_arr_u16_7 struct.  This sets all fields to default 
+ * values. 
+ *
+ * \param this Pointer to the structure 
+ */
+void bcmolt_arr_u16_7_set_default(bcmolt_arr_u16_7 *this);
+
+/** Packs a bcmolt_arr_u16_7 to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_arr_u16_7_pack(const bcmolt_arr_u16_7 *this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_arr_u16_7 from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_arr_u16_7_unpack(bcmolt_arr_u16_7 *this, bcmolt_buf *buf, void **extra_mem);
+
+/** Scans past a packed bcmolt_arr_u16_7 struct and collects memory requirements 
+ * above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_arr_u16_7_scan(bcmolt_buf *packed, uint32_t *extra_mem);
+
+/** Checks if any field in the bcmolt_arr_u16_7 is out of bounds 
+ *
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_arr_u16_7_bounds_check(const bcmolt_arr_u16_7 *this);
+
+/** Initializes a bcmolt_arr_u32_6 struct.  This sets all fields to default 
+ * values. 
+ *
+ * \param this Pointer to the structure 
+ */
+void bcmolt_arr_u32_6_set_default(bcmolt_arr_u32_6 *this);
+
+/** Packs a bcmolt_arr_u32_6 to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_arr_u32_6_pack(const bcmolt_arr_u32_6 *this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_arr_u32_6 from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_arr_u32_6_unpack(bcmolt_arr_u32_6 *this, bcmolt_buf *buf, void **extra_mem);
+
+/** Scans past a packed bcmolt_arr_u32_6 struct and collects memory requirements 
+ * above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_arr_u32_6_scan(bcmolt_buf *packed, uint32_t *extra_mem);
+
+/** Checks if any field in the bcmolt_arr_u32_6 is out of bounds 
+ *
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_arr_u32_6_bounds_check(const bcmolt_arr_u32_6 *this);
+
+/** Initializes a bcmolt_arr_u8_10 struct.  This sets all fields to default 
+ * values. 
+ *
+ * \param this Pointer to the structure 
+ */
+void bcmolt_arr_u8_10_set_default(bcmolt_arr_u8_10 *this);
+
+/** Packs a bcmolt_arr_u8_10 to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_arr_u8_10_pack(const bcmolt_arr_u8_10 *this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_arr_u8_10 from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_arr_u8_10_unpack(bcmolt_arr_u8_10 *this, bcmolt_buf *buf, void **extra_mem);
+
+/** Scans past a packed bcmolt_arr_u8_10 struct and collects memory requirements 
+ * above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_arr_u8_10_scan(bcmolt_buf *packed, uint32_t *extra_mem);
+
+/** Checks if any field in the bcmolt_arr_u8_10 is out of bounds 
+ *
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_arr_u8_10_bounds_check(const bcmolt_arr_u8_10 *this);
+
+/** Initializes a bcmolt_arr_u8_12 struct.  This sets all fields to default 
+ * values. 
+ *
+ * \param this Pointer to the structure 
+ */
+void bcmolt_arr_u8_12_set_default(bcmolt_arr_u8_12 *this);
+
+/** Packs a bcmolt_arr_u8_12 to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_arr_u8_12_pack(const bcmolt_arr_u8_12 *this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_arr_u8_12 from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_arr_u8_12_unpack(bcmolt_arr_u8_12 *this, bcmolt_buf *buf, void **extra_mem);
+
+/** Scans past a packed bcmolt_arr_u8_12 struct and collects memory requirements 
+ * above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_arr_u8_12_scan(bcmolt_buf *packed, uint32_t *extra_mem);
+
+/** Checks if any field in the bcmolt_arr_u8_12 is out of bounds 
+ *
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_arr_u8_12_bounds_check(const bcmolt_arr_u8_12 *this);
+
+/** Initializes a bcmolt_arr_u8_13 struct.  This sets all fields to default 
+ * values. 
+ *
+ * \param this Pointer to the structure 
+ */
+void bcmolt_arr_u8_13_set_default(bcmolt_arr_u8_13 *this);
+
+/** Packs a bcmolt_arr_u8_13 to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_arr_u8_13_pack(const bcmolt_arr_u8_13 *this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_arr_u8_13 from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_arr_u8_13_unpack(bcmolt_arr_u8_13 *this, bcmolt_buf *buf, void **extra_mem);
+
+/** Scans past a packed bcmolt_arr_u8_13 struct and collects memory requirements 
+ * above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_arr_u8_13_scan(bcmolt_buf *packed, uint32_t *extra_mem);
+
+/** Checks if any field in the bcmolt_arr_u8_13 is out of bounds 
+ *
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_arr_u8_13_bounds_check(const bcmolt_arr_u8_13 *this);
+
+/** Initializes a bcmolt_arr_u8_36 struct.  This sets all fields to default 
+ * values. 
+ *
+ * \param this Pointer to the structure 
+ */
+void bcmolt_arr_u8_36_set_default(bcmolt_arr_u8_36 *this);
+
+/** Packs a bcmolt_arr_u8_36 to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_arr_u8_36_pack(const bcmolt_arr_u8_36 *this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_arr_u8_36 from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_arr_u8_36_unpack(bcmolt_arr_u8_36 *this, bcmolt_buf *buf, void **extra_mem);
+
+/** Scans past a packed bcmolt_arr_u8_36 struct and collects memory requirements 
+ * above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_arr_u8_36_scan(bcmolt_buf *packed, uint32_t *extra_mem);
+
+/** Checks if any field in the bcmolt_arr_u8_36 is out of bounds 
+ *
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_arr_u8_36_bounds_check(const bcmolt_arr_u8_36 *this);
+
+/** Initializes a bcmolt_arr_u8_4 struct.  This sets all fields to default 
+ * values. 
+ *
+ * \param this Pointer to the structure 
+ */
+void bcmolt_arr_u8_4_set_default(bcmolt_arr_u8_4 *this);
+
+/** Packs a bcmolt_arr_u8_4 to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_arr_u8_4_pack(const bcmolt_arr_u8_4 *this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_arr_u8_4 from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_arr_u8_4_unpack(bcmolt_arr_u8_4 *this, bcmolt_buf *buf, void **extra_mem);
+
+/** Scans past a packed bcmolt_arr_u8_4 struct and collects memory requirements 
+ * above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_arr_u8_4_scan(bcmolt_buf *packed, uint32_t *extra_mem);
+
+/** Checks if any field in the bcmolt_arr_u8_4 is out of bounds 
+ *
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_arr_u8_4_bounds_check(const bcmolt_arr_u8_4 *this);
+
+/** Initializes a bcmolt_arr_u8_40 struct.  This sets all fields to default 
+ * values. 
+ *
+ * \param this Pointer to the structure 
+ */
+void bcmolt_arr_u8_40_set_default(bcmolt_arr_u8_40 *this);
+
+/** Packs a bcmolt_arr_u8_40 to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_arr_u8_40_pack(const bcmolt_arr_u8_40 *this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_arr_u8_40 from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_arr_u8_40_unpack(bcmolt_arr_u8_40 *this, bcmolt_buf *buf, void **extra_mem);
+
+/** Scans past a packed bcmolt_arr_u8_40 struct and collects memory requirements 
+ * above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_arr_u8_40_scan(bcmolt_buf *packed, uint32_t *extra_mem);
+
+/** Checks if any field in the bcmolt_arr_u8_40 is out of bounds 
+ *
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_arr_u8_40_bounds_check(const bcmolt_arr_u8_40 *this);
+
+/** Initializes a bcmolt_xgpon_burst_profile struct.  This sets all fields to 
+ * default values. 
+ *
+ * \param this Pointer to the structure 
+ */
+void bcmolt_xgpon_burst_profile_set_default(bcmolt_xgpon_burst_profile *this);
+
+/** Packs a bcmolt_xgpon_burst_profile to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_burst_profile_pack(const bcmolt_xgpon_burst_profile *this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_xgpon_burst_profile from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_burst_profile_unpack(bcmolt_xgpon_burst_profile *this, bcmolt_buf *buf, void **extra_mem);
+
+/** Scans past a packed bcmolt_xgpon_burst_profile struct and collects memory 
+ * requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_xgpon_burst_profile_scan(bcmolt_buf *packed, uint32_t *extra_mem);
+
+/** Checks if any field in the bcmolt_xgpon_burst_profile is out of bounds 
+ *
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_burst_profile_bounds_check(const bcmolt_xgpon_burst_profile *this);
+
+/** Initializes a bcmolt_arr_xgpon_burst_profile_4 struct.  This sets all fields 
+ * to default values. 
+ *
+ * \param this Pointer to the structure 
+ */
+void bcmolt_arr_xgpon_burst_profile_4_set_default(bcmolt_arr_xgpon_burst_profile_4 *this);
+
+/** Packs a bcmolt_arr_xgpon_burst_profile_4 to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_arr_xgpon_burst_profile_4_pack(const bcmolt_arr_xgpon_burst_profile_4 *this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_arr_xgpon_burst_profile_4 from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_arr_xgpon_burst_profile_4_unpack(bcmolt_arr_xgpon_burst_profile_4 *this, bcmolt_buf *buf, void **extra_mem);
+
+/** Scans past a packed bcmolt_arr_xgpon_burst_profile_4 struct and collects 
+ * memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_arr_xgpon_burst_profile_4_scan(bcmolt_buf *packed, uint32_t *extra_mem);
+
+/** Checks if any field in the bcmolt_arr_xgpon_burst_profile_4 is out of bounds 
+ *
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_arr_xgpon_burst_profile_4_bounds_check(const bcmolt_arr_xgpon_burst_profile_4 *this);
+
+/** Initializes a bcmolt_xgpon_trx_configuration struct.  This sets all fields 
+ * to default values. 
+ *
+ * \param this Pointer to the structure 
+ */
+void bcmolt_xgpon_trx_configuration_set_default(bcmolt_xgpon_trx_configuration *this);
+
+/** Packs a bcmolt_xgpon_trx_configuration to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_trx_configuration_pack(const bcmolt_xgpon_trx_configuration *this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_xgpon_trx_configuration from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_trx_configuration_unpack(bcmolt_xgpon_trx_configuration *this, bcmolt_buf *buf, void **extra_mem);
+
+/** Scans past a packed bcmolt_xgpon_trx_configuration struct and collects 
+ * memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_xgpon_trx_configuration_scan(bcmolt_buf *packed, uint32_t *extra_mem);
+
+/** Checks if any field in the bcmolt_xgpon_trx_configuration is out of bounds 
+ *
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_trx_configuration_bounds_check(const bcmolt_xgpon_trx_configuration *this);
+
+/** Initializes a bcmolt_arr_xgpon_trx_configuration_4 struct.  This sets all 
+ * fields to default values. 
+ *
+ * \param this Pointer to the structure 
+ */
+void bcmolt_arr_xgpon_trx_configuration_4_set_default(bcmolt_arr_xgpon_trx_configuration_4 *this);
+
+/** Packs a bcmolt_arr_xgpon_trx_configuration_4 to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_arr_xgpon_trx_configuration_4_pack(const bcmolt_arr_xgpon_trx_configuration_4 *this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_arr_xgpon_trx_configuration_4 from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_arr_xgpon_trx_configuration_4_unpack(bcmolt_arr_xgpon_trx_configuration_4 *this, bcmolt_buf *buf, void **extra_mem);
+
+/** Scans past a packed bcmolt_arr_xgpon_trx_configuration_4 struct and collects 
+ * memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_arr_xgpon_trx_configuration_4_scan(bcmolt_buf *packed, uint32_t *extra_mem);
+
+/** Checks if any field in the bcmolt_arr_xgpon_trx_configuration_4 is out of 
+ * bounds 
+ *
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_arr_xgpon_trx_configuration_4_bounds_check(const bcmolt_arr_xgpon_trx_configuration_4 *this);
+
+/** Initializes a bcmolt_automatic_onu_deactivation struct.  This sets all 
+ * fields to default values. 
+ *
+ * \param this Pointer to the structure 
+ */
+void bcmolt_automatic_onu_deactivation_set_default(bcmolt_automatic_onu_deactivation *this);
+
+/** Packs a bcmolt_automatic_onu_deactivation to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_automatic_onu_deactivation_pack(const bcmolt_automatic_onu_deactivation *this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_automatic_onu_deactivation from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_automatic_onu_deactivation_unpack(bcmolt_automatic_onu_deactivation *this, bcmolt_buf *buf, void **extra_mem);
+
+/** Scans past a packed bcmolt_automatic_onu_deactivation struct and collects 
+ * memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_automatic_onu_deactivation_scan(bcmolt_buf *packed, uint32_t *extra_mem);
+
+/** Checks if any field in the bcmolt_automatic_onu_deactivation is out of 
+ * bounds 
+ *
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_automatic_onu_deactivation_bounds_check(const bcmolt_automatic_onu_deactivation *this);
+
+/** Initializes a bcmolt_resync_control struct.  This sets all fields to default 
+ * values. 
+ *
+ * \param this Pointer to the structure 
+ */
+void bcmolt_resync_control_set_default(bcmolt_resync_control *this);
+
+/** Packs a bcmolt_resync_control to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_resync_control_pack(const bcmolt_resync_control *this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_resync_control from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_resync_control_unpack(bcmolt_resync_control *this, bcmolt_buf *buf, void **extra_mem);
+
+/** Scans past a packed bcmolt_resync_control struct and collects memory 
+ * requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_resync_control_scan(bcmolt_buf *packed, uint32_t *extra_mem);
+
+/** Checks if any field in the bcmolt_resync_control is out of bounds 
+ *
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_resync_control_bounds_check(const bcmolt_resync_control *this);
+
+/** Initializes a bcmolt_bcdr_resync_pattern_configuration struct.  This sets 
+ * all fields to default values. 
+ *
+ * \param this Pointer to the structure 
+ */
+void bcmolt_bcdr_resync_pattern_configuration_set_default(bcmolt_bcdr_resync_pattern_configuration *this);
+
+/** Packs a bcmolt_bcdr_resync_pattern_configuration to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_bcdr_resync_pattern_configuration_pack(const bcmolt_bcdr_resync_pattern_configuration *this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_bcdr_resync_pattern_configuration from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_bcdr_resync_pattern_configuration_unpack(bcmolt_bcdr_resync_pattern_configuration *this, bcmolt_buf *buf, void **extra_mem);
+
+/** Scans past a packed bcmolt_bcdr_resync_pattern_configuration struct and 
+ * collects memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_bcdr_resync_pattern_configuration_scan(bcmolt_buf *packed, uint32_t *extra_mem);
+
+/** Checks if any field in the bcmolt_bcdr_resync_pattern_configuration is out 
+ * of bounds 
+ *
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_bcdr_resync_pattern_configuration_bounds_check(const bcmolt_bcdr_resync_pattern_configuration *this);
+
+/** Initializes a bcmolt_ber_monitor_params struct.  This sets all fields to 
+ * default values. 
+ *
+ * \param this Pointer to the structure 
+ */
+void bcmolt_ber_monitor_params_set_default(bcmolt_ber_monitor_params *this);
+
+/** Packs a bcmolt_ber_monitor_params to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_ber_monitor_params_pack(const bcmolt_ber_monitor_params *this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_ber_monitor_params from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_ber_monitor_params_unpack(bcmolt_ber_monitor_params *this, bcmolt_buf *buf, void **extra_mem);
+
+/** Scans past a packed bcmolt_ber_monitor_params struct and collects memory 
+ * requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_ber_monitor_params_scan(bcmolt_buf *packed, uint32_t *extra_mem);
+
+/** Checks if any field in the bcmolt_ber_monitor_params is out of bounds 
+ *
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_ber_monitor_params_bounds_check(const bcmolt_ber_monitor_params *this);
+
+/** Initializes a bcmolt_cbr_rt_allocation_profile struct.  This sets all fields 
+ * to default values. 
+ *
+ * \param this Pointer to the structure 
+ */
+void bcmolt_cbr_rt_allocation_profile_set_default(bcmolt_cbr_rt_allocation_profile *this);
+
+/** Packs a bcmolt_cbr_rt_allocation_profile to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_cbr_rt_allocation_profile_pack(const bcmolt_cbr_rt_allocation_profile *this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_cbr_rt_allocation_profile from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_cbr_rt_allocation_profile_unpack(bcmolt_cbr_rt_allocation_profile *this, bcmolt_buf *buf, void **extra_mem);
+
+/** Scans past a packed bcmolt_cbr_rt_allocation_profile struct and collects 
+ * memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_cbr_rt_allocation_profile_scan(bcmolt_buf *packed, uint32_t *extra_mem);
+
+/** Checks if any field in the bcmolt_cbr_rt_allocation_profile is out of bounds 
+ *
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_cbr_rt_allocation_profile_bounds_check(const bcmolt_cbr_rt_allocation_profile *this);
+
+/** Initializes a bcmolt_ddr_test_completed struct.  This sets all fields to 
+ * default values. 
+ *
+ * \param this Pointer to the structure 
+ */
+void bcmolt_ddr_test_completed_set_default(bcmolt_ddr_test_completed *this);
+
+/** Packs a bcmolt_ddr_test_completed to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_ddr_test_completed_pack(const bcmolt_ddr_test_completed *this, bcmolt_buf *buf);
+
+/** Gets the number of bytes that a bcmolt_ddr_test_completed would occupy on 
+ * the wire 
+ *
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_ddr_test_completed_get_packed_length(const bcmolt_ddr_test_completed *this);
+
+/** Unpacks a bcmolt_ddr_test_completed from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_ddr_test_completed_unpack(bcmolt_ddr_test_completed *this, bcmolt_buf *buf, void **extra_mem);
+
+/** Scans past a packed bcmolt_ddr_test_completed struct and collects memory 
+ * requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_ddr_test_completed_scan(bcmolt_buf *packed, uint32_t *extra_mem);
+
+/** Checks if any field in the bcmolt_ddr_test_completed is out of bounds 
+ *
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_ddr_test_completed_bounds_check(const bcmolt_ddr_test_completed *this);
+
+/** Initializes a bcmolt_debug_device_cfg struct.  This sets all fields to 
+ * default values. 
+ *
+ * \param this Pointer to the structure 
+ */
+void bcmolt_debug_device_cfg_set_default(bcmolt_debug_device_cfg *this);
+
+/** Packs a bcmolt_debug_device_cfg to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_debug_device_cfg_pack(const bcmolt_debug_device_cfg *this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_debug_device_cfg from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_debug_device_cfg_unpack(bcmolt_debug_device_cfg *this, bcmolt_buf *buf, void **extra_mem);
+
+/** Scans past a packed bcmolt_debug_device_cfg struct and collects memory 
+ * requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_debug_device_cfg_scan(bcmolt_buf *packed, uint32_t *extra_mem);
+
+/** Checks if any field in the bcmolt_debug_device_cfg is out of bounds 
+ *
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_debug_device_cfg_bounds_check(const bcmolt_debug_device_cfg *this);
+
+/** Initializes a bcmolt_device_nni_speed struct.  This sets all fields to 
+ * default values. 
+ *
+ * \param this Pointer to the structure 
+ */
+void bcmolt_device_nni_speed_set_default(bcmolt_device_nni_speed *this);
+
+/** Packs a bcmolt_device_nni_speed to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_device_nni_speed_pack(const bcmolt_device_nni_speed *this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_device_nni_speed from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_device_nni_speed_unpack(bcmolt_device_nni_speed *this, bcmolt_buf *buf, void **extra_mem);
+
+/** Scans past a packed bcmolt_device_nni_speed struct and collects memory 
+ * requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_device_nni_speed_scan(bcmolt_buf *packed, uint32_t *extra_mem);
+
+/** Checks if any field in the bcmolt_device_nni_speed is out of bounds 
+ *
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_device_nni_speed_bounds_check(const bcmolt_device_nni_speed *this);
+
+/* \cond UNDOCUMENTED_SYMBOLS */
+
+/** Initializes a bcmolt_dummy_struct_for_embedded_types struct.  This sets all 
+ * fields to default values. 
+ *
+ * \param this Pointer to the structure 
+ */
+void bcmolt_dummy_struct_for_embedded_types_set_default(bcmolt_dummy_struct_for_embedded_types *this);
+
+/** Packs a bcmolt_dummy_struct_for_embedded_types to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_dummy_struct_for_embedded_types_pack(const bcmolt_dummy_struct_for_embedded_types *this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_dummy_struct_for_embedded_types from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_dummy_struct_for_embedded_types_unpack(bcmolt_dummy_struct_for_embedded_types *this, bcmolt_buf *buf, void **extra_mem);
+
+/** Scans past a packed bcmolt_dummy_struct_for_embedded_types struct and 
+ * collects memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_dummy_struct_for_embedded_types_scan(bcmolt_buf *packed, uint32_t *extra_mem);
+
+/** Checks if any field in the bcmolt_dummy_struct_for_embedded_types is out of 
+ * bounds 
+ *
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_dummy_struct_for_embedded_types_bounds_check(const bcmolt_dummy_struct_for_embedded_types *this);
+
+/* \endcond */
+
+/** Initializes a bcmolt_embedded_image_entry struct.  This sets all fields to 
+ * default values. 
+ *
+ * \param this Pointer to the structure 
+ */
+void bcmolt_embedded_image_entry_set_default(bcmolt_embedded_image_entry *this);
+
+/** Packs a bcmolt_embedded_image_entry to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_embedded_image_entry_pack(const bcmolt_embedded_image_entry *this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_embedded_image_entry from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_embedded_image_entry_unpack(bcmolt_embedded_image_entry *this, bcmolt_buf *buf, void **extra_mem);
+
+/** Scans past a packed bcmolt_embedded_image_entry struct and collects memory 
+ * requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_embedded_image_entry_scan(bcmolt_buf *packed, uint32_t *extra_mem);
+
+/** Checks if any field in the bcmolt_embedded_image_entry is out of bounds 
+ *
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_embedded_image_entry_bounds_check(const bcmolt_embedded_image_entry *this);
+
+/** Initializes a bcmolt_embedded_image_entry_list_u8 struct.  This sets all 
+ * fields to default values. 
+ *
+ * \param this Pointer to the structure 
+ */
+void bcmolt_embedded_image_entry_list_u8_set_default(bcmolt_embedded_image_entry_list_u8 *this);
+
+/** Packs a bcmolt_embedded_image_entry_list_u8 to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_embedded_image_entry_list_u8_pack(const bcmolt_embedded_image_entry_list_u8 *this, bcmolt_buf *buf);
+
+/** Gets the number of bytes that a bcmolt_embedded_image_entry_list_u8 would 
+ * occupy on the wire 
+ *
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_embedded_image_entry_list_u8_get_packed_length(const bcmolt_embedded_image_entry_list_u8 *this);
+
+/** Unpacks a bcmolt_embedded_image_entry_list_u8 from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_embedded_image_entry_list_u8_unpack(bcmolt_embedded_image_entry_list_u8 *this, bcmolt_buf *buf, void **extra_mem);
+
+/** Scans past a packed bcmolt_embedded_image_entry_list_u8 struct and collects 
+ * memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_embedded_image_entry_list_u8_scan(bcmolt_buf *packed, uint32_t *extra_mem);
+
+/** Checks if any field in the bcmolt_embedded_image_entry_list_u8 is out of 
+ * bounds 
+ *
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_embedded_image_entry_list_u8_bounds_check(const bcmolt_embedded_image_entry_list_u8 *this);
+
+/** Initializes a bcmolt_encryption_information_container struct.  This sets all 
+ * fields to default values. 
+ *
+ * \param this Pointer to the structure 
+ */
+void bcmolt_encryption_information_container_set_default(bcmolt_encryption_information_container *this);
+
+/** Packs a bcmolt_encryption_information_container to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_encryption_information_container_pack(const bcmolt_encryption_information_container *this, bcmolt_buf *buf);
+
+/** Gets the number of bytes that a bcmolt_encryption_information_container 
+ * would occupy on the wire 
+ *
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_encryption_information_container_get_packed_length(const bcmolt_encryption_information_container *this);
+
+/** Unpacks a bcmolt_encryption_information_container from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_encryption_information_container_unpack(bcmolt_encryption_information_container *this, bcmolt_buf *buf, void **extra_mem);
+
+/** Scans past a packed bcmolt_encryption_information_container struct and 
+ * collects memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_encryption_information_container_scan(bcmolt_buf *packed, uint32_t *extra_mem);
+
+/** Checks if any field in the bcmolt_encryption_information_container is out of 
+ * bounds 
+ *
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_encryption_information_container_bounds_check(const bcmolt_encryption_information_container *this);
+
+/** Initializes a bcmolt_epon_clock_transport_configuration struct.  This sets 
+ * all fields to default values. 
+ *
+ * \param this Pointer to the structure 
+ */
+void bcmolt_epon_clock_transport_configuration_set_default(bcmolt_epon_clock_transport_configuration *this);
+
+/** Packs a bcmolt_epon_clock_transport_configuration to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_clock_transport_configuration_pack(const bcmolt_epon_clock_transport_configuration *this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_epon_clock_transport_configuration from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_clock_transport_configuration_unpack(bcmolt_epon_clock_transport_configuration *this, bcmolt_buf *buf, void **extra_mem);
+
+/** Scans past a packed bcmolt_epon_clock_transport_configuration struct and 
+ * collects memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_epon_clock_transport_configuration_scan(bcmolt_buf *packed, uint32_t *extra_mem);
+
+/** Checks if any field in the bcmolt_epon_clock_transport_configuration is out 
+ * of bounds 
+ *
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_clock_transport_configuration_bounds_check(const bcmolt_epon_clock_transport_configuration *this);
+
+/** Initializes a bcmolt_unknown_link_status struct.  This sets all fields to 
+ * default values. 
+ *
+ * \param this Pointer to the structure 
+ */
+void bcmolt_unknown_link_status_set_default(bcmolt_unknown_link_status *this);
+
+/** Packs a bcmolt_unknown_link_status to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_unknown_link_status_pack(const bcmolt_unknown_link_status *this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_unknown_link_status from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_unknown_link_status_unpack(bcmolt_unknown_link_status *this, bcmolt_buf *buf, void **extra_mem);
+
+/** Scans past a packed bcmolt_unknown_link_status struct and collects memory 
+ * requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_unknown_link_status_scan(bcmolt_buf *packed, uint32_t *extra_mem);
+
+/** Checks if any field in the bcmolt_unknown_link_status is out of bounds 
+ *
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_unknown_link_status_bounds_check(const bcmolt_unknown_link_status *this);
+
+/** Initializes a bcmolt_laser_on_off_status struct.  This sets all fields to 
+ * default values. 
+ *
+ * \param this Pointer to the structure 
+ */
+void bcmolt_laser_on_off_status_set_default(bcmolt_laser_on_off_status *this);
+
+/** Packs a bcmolt_laser_on_off_status to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_laser_on_off_status_pack(const bcmolt_laser_on_off_status *this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_laser_on_off_status from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_laser_on_off_status_unpack(bcmolt_laser_on_off_status *this, bcmolt_buf *buf, void **extra_mem);
+
+/** Scans past a packed bcmolt_laser_on_off_status struct and collects memory 
+ * requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_laser_on_off_status_scan(bcmolt_buf *packed, uint32_t *extra_mem);
+
+/** Checks if any field in the bcmolt_laser_on_off_status is out of bounds 
+ *
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_laser_on_off_status_bounds_check(const bcmolt_laser_on_off_status *this);
+
+/** Initializes a bcmolt_range_status struct.  This sets all fields to default 
+ * values. 
+ *
+ * \param this Pointer to the structure 
+ */
+void bcmolt_range_status_set_default(bcmolt_range_status *this);
+
+/** Packs a bcmolt_range_status to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_range_status_pack(const bcmolt_range_status *this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_range_status from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_range_status_unpack(bcmolt_range_status *this, bcmolt_buf *buf, void **extra_mem);
+
+/** Scans past a packed bcmolt_range_status struct and collects memory 
+ * requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_range_status_scan(bcmolt_buf *packed, uint32_t *extra_mem);
+
+/** Checks if any field in the bcmolt_range_status is out of bounds 
+ *
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_range_status_bounds_check(const bcmolt_range_status *this);
+
+/** Initializes a bcmolt_rogue_status struct.  This sets all fields to default 
+ * values. 
+ *
+ * \param this Pointer to the structure 
+ */
+void bcmolt_rogue_status_set_default(bcmolt_rogue_status *this);
+
+/** Packs a bcmolt_rogue_status to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_rogue_status_pack(const bcmolt_rogue_status *this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_rogue_status from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_rogue_status_unpack(bcmolt_rogue_status *this, bcmolt_buf *buf, void **extra_mem);
+
+/** Scans past a packed bcmolt_rogue_status struct and collects memory 
+ * requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_rogue_status_scan(bcmolt_buf *packed, uint32_t *extra_mem);
+
+/** Checks if any field in the bcmolt_rogue_status is out of bounds 
+ *
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_rogue_status_bounds_check(const bcmolt_rogue_status *this);
+
+/** Initializes a bcmolt_epon_denied_link_alarm_state struct.  This sets all 
+ * fields to default values. 
+ *
+ * \param this Pointer to the structure 
+ */
+void bcmolt_epon_denied_link_alarm_state_set_default(bcmolt_epon_denied_link_alarm_state *this);
+
+/** Packs a bcmolt_epon_denied_link_alarm_state to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_denied_link_alarm_state_pack(const bcmolt_epon_denied_link_alarm_state *this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_epon_denied_link_alarm_state from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_denied_link_alarm_state_unpack(bcmolt_epon_denied_link_alarm_state *this, bcmolt_buf *buf, void **extra_mem);
+
+/** Scans past a packed bcmolt_epon_denied_link_alarm_state struct and collects 
+ * memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_epon_denied_link_alarm_state_scan(bcmolt_buf *packed, uint32_t *extra_mem);
+
+/** Checks if any field in the bcmolt_epon_denied_link_alarm_state is out of 
+ * bounds 
+ *
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_denied_link_alarm_state_bounds_check(const bcmolt_epon_denied_link_alarm_state *this);
+
+/** Initializes a bcmolt_epon_encryption_config struct.  This sets all fields to 
+ * default values. 
+ *
+ * \param this Pointer to the structure 
+ */
+void bcmolt_epon_encryption_config_set_default(bcmolt_epon_encryption_config *this);
+
+/** Packs a bcmolt_epon_encryption_config to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_encryption_config_pack(const bcmolt_epon_encryption_config *this, bcmolt_buf *buf);
+
+/** Gets the number of bytes that a bcmolt_epon_encryption_config would occupy 
+ * on the wire 
+ *
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_epon_encryption_config_get_packed_length(const bcmolt_epon_encryption_config *this);
+
+/** Unpacks a bcmolt_epon_encryption_config from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_encryption_config_unpack(bcmolt_epon_encryption_config *this, bcmolt_buf *buf, void **extra_mem);
+
+/** Scans past a packed bcmolt_epon_encryption_config struct and collects memory 
+ * requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_epon_encryption_config_scan(bcmolt_buf *packed, uint32_t *extra_mem);
+
+/** Checks if any field in the bcmolt_epon_encryption_config is out of bounds 
+ *
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_encryption_config_bounds_check(const bcmolt_epon_encryption_config *this);
+
+/** Initializes a bcmolt_epon_key_exchange_config struct.  This sets all fields 
+ * to default values. 
+ *
+ * \param this Pointer to the structure 
+ */
+void bcmolt_epon_key_exchange_config_set_default(bcmolt_epon_key_exchange_config *this);
+
+/** Packs a bcmolt_epon_key_exchange_config to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_key_exchange_config_pack(const bcmolt_epon_key_exchange_config *this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_epon_key_exchange_config from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_key_exchange_config_unpack(bcmolt_epon_key_exchange_config *this, bcmolt_buf *buf, void **extra_mem);
+
+/** Scans past a packed bcmolt_epon_key_exchange_config struct and collects 
+ * memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_epon_key_exchange_config_scan(bcmolt_buf *packed, uint32_t *extra_mem);
+
+/** Checks if any field in the bcmolt_epon_key_exchange_config is out of bounds 
+ *
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_key_exchange_config_bounds_check(const bcmolt_epon_key_exchange_config *this);
+
+/** Initializes a bcmolt_epon_laser_overhead_parameters struct.  This sets all 
+ * fields to default values. 
+ *
+ * \param this Pointer to the structure 
+ */
+void bcmolt_epon_laser_overhead_parameters_set_default(bcmolt_epon_laser_overhead_parameters *this);
+
+/** Packs a bcmolt_epon_laser_overhead_parameters to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_laser_overhead_parameters_pack(const bcmolt_epon_laser_overhead_parameters *this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_epon_laser_overhead_parameters from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_laser_overhead_parameters_unpack(bcmolt_epon_laser_overhead_parameters *this, bcmolt_buf *buf, void **extra_mem);
+
+/** Scans past a packed bcmolt_epon_laser_overhead_parameters struct and 
+ * collects memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_epon_laser_overhead_parameters_scan(bcmolt_buf *packed, uint32_t *extra_mem);
+
+/** Checks if any field in the bcmolt_epon_laser_overhead_parameters is out of 
+ * bounds 
+ *
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_laser_overhead_parameters_bounds_check(const bcmolt_epon_laser_overhead_parameters *this);
+
+/** Initializes a bcmolt_epon_link_alarm_state struct.  This sets all fields to 
+ * default values. 
+ *
+ * \param this Pointer to the structure 
+ */
+void bcmolt_epon_link_alarm_state_set_default(bcmolt_epon_link_alarm_state *this);
+
+/** Packs a bcmolt_epon_link_alarm_state to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_link_alarm_state_pack(const bcmolt_epon_link_alarm_state *this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_epon_link_alarm_state from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_link_alarm_state_unpack(bcmolt_epon_link_alarm_state *this, bcmolt_buf *buf, void **extra_mem);
+
+/** Scans past a packed bcmolt_epon_link_alarm_state struct and collects memory 
+ * requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_epon_link_alarm_state_scan(bcmolt_buf *packed, uint32_t *extra_mem);
+
+/** Checks if any field in the bcmolt_epon_link_alarm_state is out of bounds 
+ *
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_link_alarm_state_bounds_check(const bcmolt_epon_link_alarm_state *this);
+
+/** Initializes a bcmolt_epon_link_fec_en struct.  This sets all fields to 
+ * default values. 
+ *
+ * \param this Pointer to the structure 
+ */
+void bcmolt_epon_link_fec_en_set_default(bcmolt_epon_link_fec_en *this);
+
+/** Packs a bcmolt_epon_link_fec_en to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_link_fec_en_pack(const bcmolt_epon_link_fec_en *this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_epon_link_fec_en from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_link_fec_en_unpack(bcmolt_epon_link_fec_en *this, bcmolt_buf *buf, void **extra_mem);
+
+/** Scans past a packed bcmolt_epon_link_fec_en struct and collects memory 
+ * requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_epon_link_fec_en_scan(bcmolt_buf *packed, uint32_t *extra_mem);
+
+/** Checks if any field in the bcmolt_epon_link_fec_en is out of bounds 
+ *
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_link_fec_en_bounds_check(const bcmolt_epon_link_fec_en *this);
+
+/** Initializes a bcmolt_epon_link_info struct.  This sets all fields to default 
+ * values. 
+ *
+ * \param this Pointer to the structure 
+ */
+void bcmolt_epon_link_info_set_default(bcmolt_epon_link_info *this);
+
+/** Packs a bcmolt_epon_link_info to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_link_info_pack(const bcmolt_epon_link_info *this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_epon_link_info from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_link_info_unpack(bcmolt_epon_link_info *this, bcmolt_buf *buf, void **extra_mem);
+
+/** Scans past a packed bcmolt_epon_link_info struct and collects memory 
+ * requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_epon_link_info_scan(bcmolt_buf *packed, uint32_t *extra_mem);
+
+/** Checks if any field in the bcmolt_epon_link_info is out of bounds 
+ *
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_link_info_bounds_check(const bcmolt_epon_link_info *this);
+
+/** Initializes a bcmolt_gate_parameters struct.  This sets all fields to 
+ * default values. 
+ *
+ * \param this Pointer to the structure 
+ */
+void bcmolt_gate_parameters_set_default(bcmolt_gate_parameters *this);
+
+/** Packs a bcmolt_gate_parameters to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gate_parameters_pack(const bcmolt_gate_parameters *this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_gate_parameters from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gate_parameters_unpack(bcmolt_gate_parameters *this, bcmolt_buf *buf, void **extra_mem);
+
+/** Scans past a packed bcmolt_gate_parameters struct and collects memory 
+ * requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_gate_parameters_scan(bcmolt_buf *packed, uint32_t *extra_mem);
+
+/** Checks if any field in the bcmolt_gate_parameters is out of bounds 
+ *
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gate_parameters_bounds_check(const bcmolt_gate_parameters *this);
+
+/** Initializes a bcmolt_gate_parameters_list_u32 struct.  This sets all fields 
+ * to default values. 
+ *
+ * \param this Pointer to the structure 
+ */
+void bcmolt_gate_parameters_list_u32_set_default(bcmolt_gate_parameters_list_u32 *this);
+
+/** Packs a bcmolt_gate_parameters_list_u32 to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gate_parameters_list_u32_pack(const bcmolt_gate_parameters_list_u32 *this, bcmolt_buf *buf);
+
+/** Gets the number of bytes that a bcmolt_gate_parameters_list_u32 would occupy 
+ * on the wire 
+ *
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_gate_parameters_list_u32_get_packed_length(const bcmolt_gate_parameters_list_u32 *this);
+
+/** Unpacks a bcmolt_gate_parameters_list_u32 from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gate_parameters_list_u32_unpack(bcmolt_gate_parameters_list_u32 *this, bcmolt_buf *buf, void **extra_mem);
+
+/** Scans past a packed bcmolt_gate_parameters_list_u32 struct and collects 
+ * memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_gate_parameters_list_u32_scan(bcmolt_buf *packed, uint32_t *extra_mem);
+
+/** Checks if any field in the bcmolt_gate_parameters_list_u32 is out of bounds 
+ *
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gate_parameters_list_u32_bounds_check(const bcmolt_gate_parameters_list_u32 *this);
+
+/** Initializes a bcmolt_epon_registration_gate_mode struct.  This sets all 
+ * fields to default values. 
+ *
+ * \param this Pointer to the structure 
+ */
+void bcmolt_epon_registration_gate_mode_set_default(bcmolt_epon_registration_gate_mode *this);
+
+/** Packs a bcmolt_epon_registration_gate_mode to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_registration_gate_mode_pack(const bcmolt_epon_registration_gate_mode *this, bcmolt_buf *buf);
+
+/** Gets the number of bytes that a bcmolt_epon_registration_gate_mode would 
+ * occupy on the wire 
+ *
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_epon_registration_gate_mode_get_packed_length(const bcmolt_epon_registration_gate_mode *this);
+
+/** Unpacks a bcmolt_epon_registration_gate_mode from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_registration_gate_mode_unpack(bcmolt_epon_registration_gate_mode *this, bcmolt_buf *buf, void **extra_mem);
+
+/** Scans past a packed bcmolt_epon_registration_gate_mode struct and collects 
+ * memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_epon_registration_gate_mode_scan(bcmolt_buf *packed, uint32_t *extra_mem);
+
+/** Checks if any field in the bcmolt_epon_registration_gate_mode is out of 
+ * bounds 
+ *
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_registration_gate_mode_bounds_check(const bcmolt_epon_registration_gate_mode *this);
+
+/** Initializes a bcmolt_epon_logical_link_options struct.  This sets all fields 
+ * to default values. 
+ *
+ * \param this Pointer to the structure 
+ */
+void bcmolt_epon_logical_link_options_set_default(bcmolt_epon_logical_link_options *this);
+
+/** Packs a bcmolt_epon_logical_link_options to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_logical_link_options_pack(const bcmolt_epon_logical_link_options *this, bcmolt_buf *buf);
+
+/** Gets the number of bytes that a bcmolt_epon_logical_link_options would 
+ * occupy on the wire 
+ *
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_epon_logical_link_options_get_packed_length(const bcmolt_epon_logical_link_options *this);
+
+/** Unpacks a bcmolt_epon_logical_link_options from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_logical_link_options_unpack(bcmolt_epon_logical_link_options *this, bcmolt_buf *buf, void **extra_mem);
+
+/** Scans past a packed bcmolt_epon_logical_link_options struct and collects 
+ * memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_epon_logical_link_options_scan(bcmolt_buf *packed, uint32_t *extra_mem);
+
+/** Checks if any field in the bcmolt_epon_logical_link_options is out of bounds 
+ *
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_logical_link_options_bounds_check(const bcmolt_epon_logical_link_options *this);
+
+/** Initializes a bcmolt_epon_ni_alarm_state struct.  This sets all fields to 
+ * default values. 
+ *
+ * \param this Pointer to the structure 
+ */
+void bcmolt_epon_ni_alarm_state_set_default(bcmolt_epon_ni_alarm_state *this);
+
+/** Packs a bcmolt_epon_ni_alarm_state to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_ni_alarm_state_pack(const bcmolt_epon_ni_alarm_state *this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_epon_ni_alarm_state from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_ni_alarm_state_unpack(bcmolt_epon_ni_alarm_state *this, bcmolt_buf *buf, void **extra_mem);
+
+/** Scans past a packed bcmolt_epon_ni_alarm_state struct and collects memory 
+ * requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_epon_ni_alarm_state_scan(bcmolt_buf *packed, uint32_t *extra_mem);
+
+/** Checks if any field in the bcmolt_epon_ni_alarm_state is out of bounds 
+ *
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_ni_alarm_state_bounds_check(const bcmolt_epon_ni_alarm_state *this);
+
+/** Initializes a bcmolt_epon_ni_encryption_cfg struct.  This sets all fields to 
+ * default values. 
+ *
+ * \param this Pointer to the structure 
+ */
+void bcmolt_epon_ni_encryption_cfg_set_default(bcmolt_epon_ni_encryption_cfg *this);
+
+/** Packs a bcmolt_epon_ni_encryption_cfg to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_ni_encryption_cfg_pack(const bcmolt_epon_ni_encryption_cfg *this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_epon_ni_encryption_cfg from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_ni_encryption_cfg_unpack(bcmolt_epon_ni_encryption_cfg *this, bcmolt_buf *buf, void **extra_mem);
+
+/** Scans past a packed bcmolt_epon_ni_encryption_cfg struct and collects memory 
+ * requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_epon_ni_encryption_cfg_scan(bcmolt_buf *packed, uint32_t *extra_mem);
+
+/** Checks if any field in the bcmolt_epon_ni_encryption_cfg is out of bounds 
+ *
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_ni_encryption_cfg_bounds_check(const bcmolt_epon_ni_encryption_cfg *this);
+
+/** Initializes a bcmolt_epon_onu_upgrade_params struct.  This sets all fields 
+ * to default values. 
+ *
+ * \param this Pointer to the structure 
+ */
+void bcmolt_epon_onu_upgrade_params_set_default(bcmolt_epon_onu_upgrade_params *this);
+
+/** Packs a bcmolt_epon_onu_upgrade_params to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_onu_upgrade_params_pack(const bcmolt_epon_onu_upgrade_params *this, bcmolt_buf *buf);
+
+/** Gets the number of bytes that a bcmolt_epon_onu_upgrade_params would occupy 
+ * on the wire 
+ *
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_epon_onu_upgrade_params_get_packed_length(const bcmolt_epon_onu_upgrade_params *this);
+
+/** Unpacks a bcmolt_epon_onu_upgrade_params from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_onu_upgrade_params_unpack(bcmolt_epon_onu_upgrade_params *this, bcmolt_buf *buf, void **extra_mem);
+
+/** Scans past a packed bcmolt_epon_onu_upgrade_params struct and collects 
+ * memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_epon_onu_upgrade_params_scan(bcmolt_buf *packed, uint32_t *extra_mem);
+
+/** Checks if any field in the bcmolt_epon_onu_upgrade_params is out of bounds 
+ *
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_onu_upgrade_params_bounds_check(const bcmolt_epon_onu_upgrade_params *this);
+
+/** Initializes a bcmolt_epon_onu_upgrade_status struct.  This sets all fields 
+ * to default values. 
+ *
+ * \param this Pointer to the structure 
+ */
+void bcmolt_epon_onu_upgrade_status_set_default(bcmolt_epon_onu_upgrade_status *this);
+
+/** Packs a bcmolt_epon_onu_upgrade_status to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_onu_upgrade_status_pack(const bcmolt_epon_onu_upgrade_status *this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_epon_onu_upgrade_status from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_onu_upgrade_status_unpack(bcmolt_epon_onu_upgrade_status *this, bcmolt_buf *buf, void **extra_mem);
+
+/** Scans past a packed bcmolt_epon_onu_upgrade_status struct and collects 
+ * memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_epon_onu_upgrade_status_scan(bcmolt_buf *packed, uint32_t *extra_mem);
+
+/** Checks if any field in the bcmolt_epon_onu_upgrade_status is out of bounds 
+ *
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_onu_upgrade_status_bounds_check(const bcmolt_epon_onu_upgrade_status *this);
+
+/** Initializes a bcmolt_epon_onu_upgrade_status_list_u32 struct.  This sets all 
+ * fields to default values. 
+ *
+ * \param this Pointer to the structure 
+ */
+void bcmolt_epon_onu_upgrade_status_list_u32_set_default(bcmolt_epon_onu_upgrade_status_list_u32 *this);
+
+/** Packs a bcmolt_epon_onu_upgrade_status_list_u32 to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_onu_upgrade_status_list_u32_pack(const bcmolt_epon_onu_upgrade_status_list_u32 *this, bcmolt_buf *buf);
+
+/** Gets the number of bytes that a bcmolt_epon_onu_upgrade_status_list_u32 
+ * would occupy on the wire 
+ *
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_epon_onu_upgrade_status_list_u32_get_packed_length(const bcmolt_epon_onu_upgrade_status_list_u32 *this);
+
+/** Unpacks a bcmolt_epon_onu_upgrade_status_list_u32 from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_onu_upgrade_status_list_u32_unpack(bcmolt_epon_onu_upgrade_status_list_u32 *this, bcmolt_buf *buf, void **extra_mem);
+
+/** Scans past a packed bcmolt_epon_onu_upgrade_status_list_u32 struct and 
+ * collects memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_epon_onu_upgrade_status_list_u32_scan(bcmolt_buf *packed, uint32_t *extra_mem);
+
+/** Checks if any field in the bcmolt_epon_onu_upgrade_status_list_u32 is out of 
+ * bounds 
+ *
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_onu_upgrade_status_list_u32_bounds_check(const bcmolt_epon_onu_upgrade_status_list_u32 *this);
+
+/** Initializes a bcmolt_epon_protection_switching_configuration struct.  This 
+ * sets all fields to default values. 
+ *
+ * \param this Pointer to the structure 
+ */
+void bcmolt_epon_protection_switching_configuration_set_default(bcmolt_epon_protection_switching_configuration *this);
+
+/** Packs a bcmolt_epon_protection_switching_configuration to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_protection_switching_configuration_pack(const bcmolt_epon_protection_switching_configuration *this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_epon_protection_switching_configuration from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_protection_switching_configuration_unpack(bcmolt_epon_protection_switching_configuration *this, bcmolt_buf *buf, void **extra_mem);
+
+/** Scans past a packed bcmolt_epon_protection_switching_configuration struct 
+ * and collects memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_epon_protection_switching_configuration_scan(bcmolt_buf *packed, uint32_t *extra_mem);
+
+/** Checks if any field in the bcmolt_epon_protection_switching_configuration is 
+ * out of bounds 
+ *
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_protection_switching_configuration_bounds_check(const bcmolt_epon_protection_switching_configuration *this);
+
+/** Initializes a bcmolt_u8_list_u16 struct.  This sets all fields to default 
+ * values. 
+ *
+ * \param this Pointer to the structure 
+ */
+void bcmolt_u8_list_u16_set_default(bcmolt_u8_list_u16 *this);
+
+/** Packs a bcmolt_u8_list_u16 to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_u8_list_u16_pack(const bcmolt_u8_list_u16 *this, bcmolt_buf *buf);
+
+/** Gets the number of bytes that a bcmolt_u8_list_u16 would occupy on the wire 
+ *
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_u8_list_u16_get_packed_length(const bcmolt_u8_list_u16 *this);
+
+/** Unpacks a bcmolt_u8_list_u16 from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_u8_list_u16_unpack(bcmolt_u8_list_u16 *this, bcmolt_buf *buf, void **extra_mem);
+
+/** Scans past a packed bcmolt_u8_list_u16 struct and collects memory 
+ * requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_u8_list_u16_scan(bcmolt_buf *packed, uint32_t *extra_mem);
+
+/** Checks if any field in the bcmolt_u8_list_u16 is out of bounds 
+ *
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_u8_list_u16_bounds_check(const bcmolt_u8_list_u16 *this);
+
+/** Initializes a bcmolt_ethernet_frame_masked struct.  This sets all fields to 
+ * default values. 
+ *
+ * \param this Pointer to the structure 
+ */
+void bcmolt_ethernet_frame_masked_set_default(bcmolt_ethernet_frame_masked *this);
+
+/** Packs a bcmolt_ethernet_frame_masked to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_ethernet_frame_masked_pack(const bcmolt_ethernet_frame_masked *this, bcmolt_buf *buf);
+
+/** Gets the number of bytes that a bcmolt_ethernet_frame_masked would occupy on 
+ * the wire 
+ *
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_ethernet_frame_masked_get_packed_length(const bcmolt_ethernet_frame_masked *this);
+
+/** Unpacks a bcmolt_ethernet_frame_masked from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_ethernet_frame_masked_unpack(bcmolt_ethernet_frame_masked *this, bcmolt_buf *buf, void **extra_mem);
+
+/** Scans past a packed bcmolt_ethernet_frame_masked struct and collects memory 
+ * requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_ethernet_frame_masked_scan(bcmolt_buf *packed, uint32_t *extra_mem);
+
+/** Checks if any field in the bcmolt_ethernet_frame_masked is out of bounds 
+ *
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_ethernet_frame_masked_bounds_check(const bcmolt_ethernet_frame_masked *this);
+
+/** Initializes a bcmolt_ethernet_frame_unmasked struct.  This sets all fields 
+ * to default values. 
+ *
+ * \param this Pointer to the structure 
+ */
+void bcmolt_ethernet_frame_unmasked_set_default(bcmolt_ethernet_frame_unmasked *this);
+
+/** Packs a bcmolt_ethernet_frame_unmasked to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_ethernet_frame_unmasked_pack(const bcmolt_ethernet_frame_unmasked *this, bcmolt_buf *buf);
+
+/** Gets the number of bytes that a bcmolt_ethernet_frame_unmasked would occupy 
+ * on the wire 
+ *
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_ethernet_frame_unmasked_get_packed_length(const bcmolt_ethernet_frame_unmasked *this);
+
+/** Unpacks a bcmolt_ethernet_frame_unmasked from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_ethernet_frame_unmasked_unpack(bcmolt_ethernet_frame_unmasked *this, bcmolt_buf *buf, void **extra_mem);
+
+/** Scans past a packed bcmolt_ethernet_frame_unmasked struct and collects 
+ * memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_ethernet_frame_unmasked_scan(bcmolt_buf *packed, uint32_t *extra_mem);
+
+/** Checks if any field in the bcmolt_ethernet_frame_unmasked is out of bounds 
+ *
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_ethernet_frame_unmasked_bounds_check(const bcmolt_ethernet_frame_unmasked *this);
+
+/** Initializes a bcmolt_extended_guard_time struct.  This sets all fields to 
+ * default values. 
+ *
+ * \param this Pointer to the structure 
+ */
+void bcmolt_extended_guard_time_set_default(bcmolt_extended_guard_time *this);
+
+/** Packs a bcmolt_extended_guard_time to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_extended_guard_time_pack(const bcmolt_extended_guard_time *this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_extended_guard_time from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_extended_guard_time_unpack(bcmolt_extended_guard_time *this, bcmolt_buf *buf, void **extra_mem);
+
+/** Scans past a packed bcmolt_extended_guard_time struct and collects memory 
+ * requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_extended_guard_time_scan(bcmolt_buf *packed, uint32_t *extra_mem);
+
+/** Checks if any field in the bcmolt_extended_guard_time is out of bounds 
+ *
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_extended_guard_time_bounds_check(const bcmolt_extended_guard_time *this);
+
+/** Initializes a bcmolt_firmware_sw_version struct.  This sets all fields to 
+ * default values. 
+ *
+ * \param this Pointer to the structure 
+ */
+void bcmolt_firmware_sw_version_set_default(bcmolt_firmware_sw_version *this);
+
+/** Packs a bcmolt_firmware_sw_version to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_firmware_sw_version_pack(const bcmolt_firmware_sw_version *this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_firmware_sw_version from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_firmware_sw_version_unpack(bcmolt_firmware_sw_version *this, bcmolt_buf *buf, void **extra_mem);
+
+/** Scans past a packed bcmolt_firmware_sw_version struct and collects memory 
+ * requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_firmware_sw_version_scan(bcmolt_buf *packed, uint32_t *extra_mem);
+
+/** Checks if any field in the bcmolt_firmware_sw_version is out of bounds 
+ *
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_firmware_sw_version_bounds_check(const bcmolt_firmware_sw_version *this);
+
+/** Initializes a bcmolt_gem_port_configuration struct.  This sets all fields to 
+ * default values. 
+ *
+ * \param this Pointer to the structure 
+ */
+void bcmolt_gem_port_configuration_set_default(bcmolt_gem_port_configuration *this);
+
+/** Packs a bcmolt_gem_port_configuration to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gem_port_configuration_pack(const bcmolt_gem_port_configuration *this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_gem_port_configuration from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gem_port_configuration_unpack(bcmolt_gem_port_configuration *this, bcmolt_buf *buf, void **extra_mem);
+
+/** Scans past a packed bcmolt_gem_port_configuration struct and collects memory 
+ * requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_gem_port_configuration_scan(bcmolt_buf *packed, uint32_t *extra_mem);
+
+/** Checks if any field in the bcmolt_gem_port_configuration is out of bounds 
+ *
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gem_port_configuration_bounds_check(const bcmolt_gem_port_configuration *this);
+
+/** Initializes a bcmolt_gpon_alloc_with_state struct.  This sets all fields to 
+ * default values. 
+ *
+ * \param this Pointer to the structure 
+ */
+void bcmolt_gpon_alloc_with_state_set_default(bcmolt_gpon_alloc_with_state *this);
+
+/** Packs a bcmolt_gpon_alloc_with_state to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_alloc_with_state_pack(const bcmolt_gpon_alloc_with_state *this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_gpon_alloc_with_state from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_alloc_with_state_unpack(bcmolt_gpon_alloc_with_state *this, bcmolt_buf *buf, void **extra_mem);
+
+/** Scans past a packed bcmolt_gpon_alloc_with_state struct and collects memory 
+ * requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_gpon_alloc_with_state_scan(bcmolt_buf *packed, uint32_t *extra_mem);
+
+/** Checks if any field in the bcmolt_gpon_alloc_with_state is out of bounds 
+ *
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_alloc_with_state_bounds_check(const bcmolt_gpon_alloc_with_state *this);
+
+/** Initializes a bcmolt_gpon_alloc_with_state_list_u16_max_32 struct.  This 
+ * sets all fields to default values. 
+ *
+ * \param this Pointer to the structure 
+ */
+void bcmolt_gpon_alloc_with_state_list_u16_max_32_set_default(bcmolt_gpon_alloc_with_state_list_u16_max_32 *this);
+
+/** Packs a bcmolt_gpon_alloc_with_state_list_u16_max_32 to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_alloc_with_state_list_u16_max_32_pack(const bcmolt_gpon_alloc_with_state_list_u16_max_32 *this, bcmolt_buf *buf);
+
+/** Gets the number of bytes that a bcmolt_gpon_alloc_with_state_list_u16_max_32 
+ * would occupy on the wire 
+ *
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_gpon_alloc_with_state_list_u16_max_32_get_packed_length(const bcmolt_gpon_alloc_with_state_list_u16_max_32 *this);
+
+/** Unpacks a bcmolt_gpon_alloc_with_state_list_u16_max_32 from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_alloc_with_state_list_u16_max_32_unpack(bcmolt_gpon_alloc_with_state_list_u16_max_32 *this, bcmolt_buf *buf, void **extra_mem);
+
+/** Scans past a packed bcmolt_gpon_alloc_with_state_list_u16_max_32 struct and 
+ * collects memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_gpon_alloc_with_state_list_u16_max_32_scan(bcmolt_buf *packed, uint32_t *extra_mem);
+
+/** Checks if any field in the bcmolt_gpon_alloc_with_state_list_u16_max_32 is 
+ * out of bounds 
+ *
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_alloc_with_state_list_u16_max_32_bounds_check(const bcmolt_gpon_alloc_with_state_list_u16_max_32 *this);
+
+/** Initializes a bcmolt_gpon_debug_flow_config struct.  This sets all fields to 
+ * default values. 
+ *
+ * \param this Pointer to the structure 
+ */
+void bcmolt_gpon_debug_flow_config_set_default(bcmolt_gpon_debug_flow_config *this);
+
+/** Packs a bcmolt_gpon_debug_flow_config to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_debug_flow_config_pack(const bcmolt_gpon_debug_flow_config *this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_gpon_debug_flow_config from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_debug_flow_config_unpack(bcmolt_gpon_debug_flow_config *this, bcmolt_buf *buf, void **extra_mem);
+
+/** Scans past a packed bcmolt_gpon_debug_flow_config struct and collects memory 
+ * requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_gpon_debug_flow_config_scan(bcmolt_buf *packed, uint32_t *extra_mem);
+
+/** Checks if any field in the bcmolt_gpon_debug_flow_config is out of bounds 
+ *
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_debug_flow_config_bounds_check(const bcmolt_gpon_debug_flow_config *this);
+
+/** Initializes a bcmolt_gpon_gem_id_list_u8_max_16 struct.  This sets all 
+ * fields to default values. 
+ *
+ * \param this Pointer to the structure 
+ */
+void bcmolt_gpon_gem_id_list_u8_max_16_set_default(bcmolt_gpon_gem_id_list_u8_max_16 *this);
+
+/** Packs a bcmolt_gpon_gem_id_list_u8_max_16 to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_gem_id_list_u8_max_16_pack(const bcmolt_gpon_gem_id_list_u8_max_16 *this, bcmolt_buf *buf);
+
+/** Gets the number of bytes that a bcmolt_gpon_gem_id_list_u8_max_16 would 
+ * occupy on the wire 
+ *
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_gpon_gem_id_list_u8_max_16_get_packed_length(const bcmolt_gpon_gem_id_list_u8_max_16 *this);
+
+/** Unpacks a bcmolt_gpon_gem_id_list_u8_max_16 from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_gem_id_list_u8_max_16_unpack(bcmolt_gpon_gem_id_list_u8_max_16 *this, bcmolt_buf *buf, void **extra_mem);
+
+/** Scans past a packed bcmolt_gpon_gem_id_list_u8_max_16 struct and collects 
+ * memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_gpon_gem_id_list_u8_max_16_scan(bcmolt_buf *packed, uint32_t *extra_mem);
+
+/** Checks if any field in the bcmolt_gpon_gem_id_list_u8_max_16 is out of 
+ * bounds 
+ *
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_gem_id_list_u8_max_16_bounds_check(const bcmolt_gpon_gem_id_list_u8_max_16 *this);
+
+/** Initializes a bcmolt_gpon_gem_port_with_state struct.  This sets all fields 
+ * to default values. 
+ *
+ * \param this Pointer to the structure 
+ */
+void bcmolt_gpon_gem_port_with_state_set_default(bcmolt_gpon_gem_port_with_state *this);
+
+/** Packs a bcmolt_gpon_gem_port_with_state to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_gem_port_with_state_pack(const bcmolt_gpon_gem_port_with_state *this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_gpon_gem_port_with_state from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_gem_port_with_state_unpack(bcmolt_gpon_gem_port_with_state *this, bcmolt_buf *buf, void **extra_mem);
+
+/** Scans past a packed bcmolt_gpon_gem_port_with_state struct and collects 
+ * memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_gpon_gem_port_with_state_scan(bcmolt_buf *packed, uint32_t *extra_mem);
+
+/** Checks if any field in the bcmolt_gpon_gem_port_with_state is out of bounds 
+ *
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_gem_port_with_state_bounds_check(const bcmolt_gpon_gem_port_with_state *this);
+
+/** Initializes a bcmolt_gpon_gem_port_with_state_list_u16_max_128 struct.  This 
+ * sets all fields to default values. 
+ *
+ * \param this Pointer to the structure 
+ */
+void bcmolt_gpon_gem_port_with_state_list_u16_max_128_set_default(bcmolt_gpon_gem_port_with_state_list_u16_max_128 *this);
+
+/** Packs a bcmolt_gpon_gem_port_with_state_list_u16_max_128 to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_gem_port_with_state_list_u16_max_128_pack(const bcmolt_gpon_gem_port_with_state_list_u16_max_128 *this, bcmolt_buf *buf);
+
+/** Gets the number of bytes that a 
+ * bcmolt_gpon_gem_port_with_state_list_u16_max_128 would occupy on the wire 
+ *
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_gpon_gem_port_with_state_list_u16_max_128_get_packed_length(const bcmolt_gpon_gem_port_with_state_list_u16_max_128 *this);
+
+/** Unpacks a bcmolt_gpon_gem_port_with_state_list_u16_max_128 from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_gem_port_with_state_list_u16_max_128_unpack(bcmolt_gpon_gem_port_with_state_list_u16_max_128 *this, bcmolt_buf *buf, void **extra_mem);
+
+/** Scans past a packed bcmolt_gpon_gem_port_with_state_list_u16_max_128 struct 
+ * and collects memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_gpon_gem_port_with_state_list_u16_max_128_scan(bcmolt_buf *packed, uint32_t *extra_mem);
+
+/** Checks if any field in the bcmolt_gpon_gem_port_with_state_list_u16_max_128 
+ * is out of bounds 
+ *
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_gem_port_with_state_list_u16_max_128_bounds_check(const bcmolt_gpon_gem_port_with_state_list_u16_max_128 *this);
+
+/** Initializes a bcmolt_gpon_gem_port_with_state_list_u16_max_256 struct.  This 
+ * sets all fields to default values. 
+ *
+ * \param this Pointer to the structure 
+ */
+void bcmolt_gpon_gem_port_with_state_list_u16_max_256_set_default(bcmolt_gpon_gem_port_with_state_list_u16_max_256 *this);
+
+/** Packs a bcmolt_gpon_gem_port_with_state_list_u16_max_256 to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_gem_port_with_state_list_u16_max_256_pack(const bcmolt_gpon_gem_port_with_state_list_u16_max_256 *this, bcmolt_buf *buf);
+
+/** Gets the number of bytes that a 
+ * bcmolt_gpon_gem_port_with_state_list_u16_max_256 would occupy on the wire 
+ *
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_gpon_gem_port_with_state_list_u16_max_256_get_packed_length(const bcmolt_gpon_gem_port_with_state_list_u16_max_256 *this);
+
+/** Unpacks a bcmolt_gpon_gem_port_with_state_list_u16_max_256 from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_gem_port_with_state_list_u16_max_256_unpack(bcmolt_gpon_gem_port_with_state_list_u16_max_256 *this, bcmolt_buf *buf, void **extra_mem);
+
+/** Scans past a packed bcmolt_gpon_gem_port_with_state_list_u16_max_256 struct 
+ * and collects memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_gpon_gem_port_with_state_list_u16_max_256_scan(bcmolt_buf *packed, uint32_t *extra_mem);
+
+/** Checks if any field in the bcmolt_gpon_gem_port_with_state_list_u16_max_256 
+ * is out of bounds 
+ *
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_gem_port_with_state_list_u16_max_256_bounds_check(const bcmolt_gpon_gem_port_with_state_list_u16_max_256 *this);
+
+/** Initializes a bcmolt_gpon_iwf_debug_flow_config struct.  This sets all 
+ * fields to default values. 
+ *
+ * \param this Pointer to the structure 
+ */
+void bcmolt_gpon_iwf_debug_flow_config_set_default(bcmolt_gpon_iwf_debug_flow_config *this);
+
+/** Packs a bcmolt_gpon_iwf_debug_flow_config to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_iwf_debug_flow_config_pack(const bcmolt_gpon_iwf_debug_flow_config *this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_gpon_iwf_debug_flow_config from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_iwf_debug_flow_config_unpack(bcmolt_gpon_iwf_debug_flow_config *this, bcmolt_buf *buf, void **extra_mem);
+
+/** Scans past a packed bcmolt_gpon_iwf_debug_flow_config struct and collects 
+ * memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_gpon_iwf_debug_flow_config_scan(bcmolt_buf *packed, uint32_t *extra_mem);
+
+/** Checks if any field in the bcmolt_gpon_iwf_debug_flow_config is out of 
+ * bounds 
+ *
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_iwf_debug_flow_config_bounds_check(const bcmolt_gpon_iwf_debug_flow_config *this);
+
+/** Initializes a bcmolt_gpon_key_exchange struct.  This sets all fields to 
+ * default values. 
+ *
+ * \param this Pointer to the structure 
+ */
+void bcmolt_gpon_key_exchange_set_default(bcmolt_gpon_key_exchange *this);
+
+/** Packs a bcmolt_gpon_key_exchange to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_key_exchange_pack(const bcmolt_gpon_key_exchange *this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_gpon_key_exchange from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_key_exchange_unpack(bcmolt_gpon_key_exchange *this, bcmolt_buf *buf, void **extra_mem);
+
+/** Scans past a packed bcmolt_gpon_key_exchange struct and collects memory 
+ * requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_gpon_key_exchange_scan(bcmolt_buf *packed, uint32_t *extra_mem);
+
+/** Checks if any field in the bcmolt_gpon_key_exchange is out of bounds 
+ *
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_key_exchange_bounds_check(const bcmolt_gpon_key_exchange *this);
+
+/** Initializes a bcmolt_gpon_mac_table_scan_result struct.  This sets all 
+ * fields to default values. 
+ *
+ * \param this Pointer to the structure 
+ */
+void bcmolt_gpon_mac_table_scan_result_set_default(bcmolt_gpon_mac_table_scan_result *this);
+
+/** Packs a bcmolt_gpon_mac_table_scan_result to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_mac_table_scan_result_pack(const bcmolt_gpon_mac_table_scan_result *this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_gpon_mac_table_scan_result from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_mac_table_scan_result_unpack(bcmolt_gpon_mac_table_scan_result *this, bcmolt_buf *buf, void **extra_mem);
+
+/** Scans past a packed bcmolt_gpon_mac_table_scan_result struct and collects 
+ * memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_gpon_mac_table_scan_result_scan(bcmolt_buf *packed, uint32_t *extra_mem);
+
+/** Checks if any field in the bcmolt_gpon_mac_table_scan_result is out of 
+ * bounds 
+ *
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_mac_table_scan_result_bounds_check(const bcmolt_gpon_mac_table_scan_result *this);
+
+/** Initializes a bcmolt_gpon_mac_table_scan_result_list_u16 struct.  This sets 
+ * all fields to default values. 
+ *
+ * \param this Pointer to the structure 
+ */
+void bcmolt_gpon_mac_table_scan_result_list_u16_set_default(bcmolt_gpon_mac_table_scan_result_list_u16 *this);
+
+/** Packs a bcmolt_gpon_mac_table_scan_result_list_u16 to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_mac_table_scan_result_list_u16_pack(const bcmolt_gpon_mac_table_scan_result_list_u16 *this, bcmolt_buf *buf);
+
+/** Gets the number of bytes that a bcmolt_gpon_mac_table_scan_result_list_u16 
+ * would occupy on the wire 
+ *
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_gpon_mac_table_scan_result_list_u16_get_packed_length(const bcmolt_gpon_mac_table_scan_result_list_u16 *this);
+
+/** Unpacks a bcmolt_gpon_mac_table_scan_result_list_u16 from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_mac_table_scan_result_list_u16_unpack(bcmolt_gpon_mac_table_scan_result_list_u16 *this, bcmolt_buf *buf, void **extra_mem);
+
+/** Scans past a packed bcmolt_gpon_mac_table_scan_result_list_u16 struct and 
+ * collects memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_gpon_mac_table_scan_result_list_u16_scan(bcmolt_buf *packed, uint32_t *extra_mem);
+
+/** Checks if any field in the bcmolt_gpon_mac_table_scan_result_list_u16 is out 
+ * of bounds 
+ *
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_mac_table_scan_result_list_u16_bounds_check(const bcmolt_gpon_mac_table_scan_result_list_u16 *this);
+
+/** Initializes a bcmolt_gpon_ni_debug struct.  This sets all fields to default 
+ * values. 
+ *
+ * \param this Pointer to the structure 
+ */
+void bcmolt_gpon_ni_debug_set_default(bcmolt_gpon_ni_debug *this);
+
+/** Packs a bcmolt_gpon_ni_debug to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_ni_debug_pack(const bcmolt_gpon_ni_debug *this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_gpon_ni_debug from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_ni_debug_unpack(bcmolt_gpon_ni_debug *this, bcmolt_buf *buf, void **extra_mem);
+
+/** Scans past a packed bcmolt_gpon_ni_debug struct and collects memory 
+ * requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_gpon_ni_debug_scan(bcmolt_buf *packed, uint32_t *extra_mem);
+
+/** Checks if any field in the bcmolt_gpon_ni_debug is out of bounds 
+ *
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_ni_debug_bounds_check(const bcmolt_gpon_ni_debug *this);
+
+/** Initializes a bcmolt_gpon_onu_activation struct.  This sets all fields to 
+ * default values. 
+ *
+ * \param this Pointer to the structure 
+ */
+void bcmolt_gpon_onu_activation_set_default(bcmolt_gpon_onu_activation *this);
+
+/** Packs a bcmolt_gpon_onu_activation to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_onu_activation_pack(const bcmolt_gpon_onu_activation *this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_gpon_onu_activation from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_onu_activation_unpack(bcmolt_gpon_onu_activation *this, bcmolt_buf *buf, void **extra_mem);
+
+/** Scans past a packed bcmolt_gpon_onu_activation struct and collects memory 
+ * requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_gpon_onu_activation_scan(bcmolt_buf *packed, uint32_t *extra_mem);
+
+/** Checks if any field in the bcmolt_gpon_onu_activation is out of bounds 
+ *
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_onu_activation_bounds_check(const bcmolt_gpon_onu_activation *this);
+
+/** Initializes a bcmolt_gpon_onu_alarm_state struct.  This sets all fields to 
+ * default values. 
+ *
+ * \param this Pointer to the structure 
+ */
+void bcmolt_gpon_onu_alarm_state_set_default(bcmolt_gpon_onu_alarm_state *this);
+
+/** Packs a bcmolt_gpon_onu_alarm_state to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_onu_alarm_state_pack(const bcmolt_gpon_onu_alarm_state *this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_gpon_onu_alarm_state from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_onu_alarm_state_unpack(bcmolt_gpon_onu_alarm_state *this, bcmolt_buf *buf, void **extra_mem);
+
+/** Scans past a packed bcmolt_gpon_onu_alarm_state struct and collects memory 
+ * requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_gpon_onu_alarm_state_scan(bcmolt_buf *packed, uint32_t *extra_mem);
+
+/** Checks if any field in the bcmolt_gpon_onu_alarm_state is out of bounds 
+ *
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_onu_alarm_state_bounds_check(const bcmolt_gpon_onu_alarm_state *this);
+
+/** Initializes a bcmolt_gpon_onu_alarms struct.  This sets all fields to 
+ * default values. 
+ *
+ * \param this Pointer to the structure 
+ */
+void bcmolt_gpon_onu_alarms_set_default(bcmolt_gpon_onu_alarms *this);
+
+/** Packs a bcmolt_gpon_onu_alarms to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_onu_alarms_pack(const bcmolt_gpon_onu_alarms *this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_gpon_onu_alarms from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_onu_alarms_unpack(bcmolt_gpon_onu_alarms *this, bcmolt_buf *buf, void **extra_mem);
+
+/** Scans past a packed bcmolt_gpon_onu_alarms struct and collects memory 
+ * requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_gpon_onu_alarms_scan(bcmolt_buf *packed, uint32_t *extra_mem);
+
+/** Checks if any field in the bcmolt_gpon_onu_alarms is out of bounds 
+ *
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_onu_alarms_bounds_check(const bcmolt_gpon_onu_alarms *this);
+
+/** Initializes a bcmolt_gpon_onu_alarms_thresholds struct.  This sets all 
+ * fields to default values. 
+ *
+ * \param this Pointer to the structure 
+ */
+void bcmolt_gpon_onu_alarms_thresholds_set_default(bcmolt_gpon_onu_alarms_thresholds *this);
+
+/** Packs a bcmolt_gpon_onu_alarms_thresholds to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_onu_alarms_thresholds_pack(const bcmolt_gpon_onu_alarms_thresholds *this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_gpon_onu_alarms_thresholds from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_onu_alarms_thresholds_unpack(bcmolt_gpon_onu_alarms_thresholds *this, bcmolt_buf *buf, void **extra_mem);
+
+/** Scans past a packed bcmolt_gpon_onu_alarms_thresholds struct and collects 
+ * memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_gpon_onu_alarms_thresholds_scan(bcmolt_buf *packed, uint32_t *extra_mem);
+
+/** Checks if any field in the bcmolt_gpon_onu_alarms_thresholds is out of 
+ * bounds 
+ *
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_onu_alarms_thresholds_bounds_check(const bcmolt_gpon_onu_alarms_thresholds *this);
+
+/** Initializes a bcmolt_gpon_onu_eqd struct.  This sets all fields to default 
+ * values. 
+ *
+ * \param this Pointer to the structure 
+ */
+void bcmolt_gpon_onu_eqd_set_default(bcmolt_gpon_onu_eqd *this);
+
+/** Packs a bcmolt_gpon_onu_eqd to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_onu_eqd_pack(const bcmolt_gpon_onu_eqd *this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_gpon_onu_eqd from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_onu_eqd_unpack(bcmolt_gpon_onu_eqd *this, bcmolt_buf *buf, void **extra_mem);
+
+/** Scans past a packed bcmolt_gpon_onu_eqd struct and collects memory 
+ * requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_gpon_onu_eqd_scan(bcmolt_buf *packed, uint32_t *extra_mem);
+
+/** Checks if any field in the bcmolt_gpon_onu_eqd is out of bounds 
+ *
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_onu_eqd_bounds_check(const bcmolt_gpon_onu_eqd *this);
+
+/** Initializes a bcmolt_gpon_onu_eqd_list_u32 struct.  This sets all fields to 
+ * default values. 
+ *
+ * \param this Pointer to the structure 
+ */
+void bcmolt_gpon_onu_eqd_list_u32_set_default(bcmolt_gpon_onu_eqd_list_u32 *this);
+
+/** Packs a bcmolt_gpon_onu_eqd_list_u32 to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_onu_eqd_list_u32_pack(const bcmolt_gpon_onu_eqd_list_u32 *this, bcmolt_buf *buf);
+
+/** Gets the number of bytes that a bcmolt_gpon_onu_eqd_list_u32 would occupy on 
+ * the wire 
+ *
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_gpon_onu_eqd_list_u32_get_packed_length(const bcmolt_gpon_onu_eqd_list_u32 *this);
+
+/** Unpacks a bcmolt_gpon_onu_eqd_list_u32 from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_onu_eqd_list_u32_unpack(bcmolt_gpon_onu_eqd_list_u32 *this, bcmolt_buf *buf, void **extra_mem);
+
+/** Scans past a packed bcmolt_gpon_onu_eqd_list_u32 struct and collects memory 
+ * requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_gpon_onu_eqd_list_u32_scan(bcmolt_buf *packed, uint32_t *extra_mem);
+
+/** Checks if any field in the bcmolt_gpon_onu_eqd_list_u32 is out of bounds 
+ *
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_onu_eqd_list_u32_bounds_check(const bcmolt_gpon_onu_eqd_list_u32 *this);
+
+/** Initializes a bcmolt_gpon_onu_id_list_u32_max_256 struct.  This sets all 
+ * fields to default values. 
+ *
+ * \param this Pointer to the structure 
+ */
+void bcmolt_gpon_onu_id_list_u32_max_256_set_default(bcmolt_gpon_onu_id_list_u32_max_256 *this);
+
+/** Packs a bcmolt_gpon_onu_id_list_u32_max_256 to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_onu_id_list_u32_max_256_pack(const bcmolt_gpon_onu_id_list_u32_max_256 *this, bcmolt_buf *buf);
+
+/** Gets the number of bytes that a bcmolt_gpon_onu_id_list_u32_max_256 would 
+ * occupy on the wire 
+ *
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_gpon_onu_id_list_u32_max_256_get_packed_length(const bcmolt_gpon_onu_id_list_u32_max_256 *this);
+
+/** Unpacks a bcmolt_gpon_onu_id_list_u32_max_256 from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_onu_id_list_u32_max_256_unpack(bcmolt_gpon_onu_id_list_u32_max_256 *this, bcmolt_buf *buf, void **extra_mem);
+
+/** Scans past a packed bcmolt_gpon_onu_id_list_u32_max_256 struct and collects 
+ * memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_gpon_onu_id_list_u32_max_256_scan(bcmolt_buf *packed, uint32_t *extra_mem);
+
+/** Checks if any field in the bcmolt_gpon_onu_id_list_u32_max_256 is out of 
+ * bounds 
+ *
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_onu_id_list_u32_max_256_bounds_check(const bcmolt_gpon_onu_id_list_u32_max_256 *this);
+
+/** Initializes a bcmolt_gpon_onu_upgrade_params struct.  This sets all fields 
+ * to default values. 
+ *
+ * \param this Pointer to the structure 
+ */
+void bcmolt_gpon_onu_upgrade_params_set_default(bcmolt_gpon_onu_upgrade_params *this);
+
+/** Packs a bcmolt_gpon_onu_upgrade_params to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_onu_upgrade_params_pack(const bcmolt_gpon_onu_upgrade_params *this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_gpon_onu_upgrade_params from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_onu_upgrade_params_unpack(bcmolt_gpon_onu_upgrade_params *this, bcmolt_buf *buf, void **extra_mem);
+
+/** Scans past a packed bcmolt_gpon_onu_upgrade_params struct and collects 
+ * memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_gpon_onu_upgrade_params_scan(bcmolt_buf *packed, uint32_t *extra_mem);
+
+/** Checks if any field in the bcmolt_gpon_onu_upgrade_params is out of bounds 
+ *
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_onu_upgrade_params_bounds_check(const bcmolt_gpon_onu_upgrade_params *this);
+
+/** Initializes a bcmolt_gpon_onu_upgrade_status struct.  This sets all fields 
+ * to default values. 
+ *
+ * \param this Pointer to the structure 
+ */
+void bcmolt_gpon_onu_upgrade_status_set_default(bcmolt_gpon_onu_upgrade_status *this);
+
+/** Packs a bcmolt_gpon_onu_upgrade_status to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_onu_upgrade_status_pack(const bcmolt_gpon_onu_upgrade_status *this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_gpon_onu_upgrade_status from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_onu_upgrade_status_unpack(bcmolt_gpon_onu_upgrade_status *this, bcmolt_buf *buf, void **extra_mem);
+
+/** Scans past a packed bcmolt_gpon_onu_upgrade_status struct and collects 
+ * memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_gpon_onu_upgrade_status_scan(bcmolt_buf *packed, uint32_t *extra_mem);
+
+/** Checks if any field in the bcmolt_gpon_onu_upgrade_status is out of bounds 
+ *
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_onu_upgrade_status_bounds_check(const bcmolt_gpon_onu_upgrade_status *this);
+
+/** Initializes a bcmolt_gpon_onu_upgrade_status_list_u32 struct.  This sets all 
+ * fields to default values. 
+ *
+ * \param this Pointer to the structure 
+ */
+void bcmolt_gpon_onu_upgrade_status_list_u32_set_default(bcmolt_gpon_onu_upgrade_status_list_u32 *this);
+
+/** Packs a bcmolt_gpon_onu_upgrade_status_list_u32 to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_onu_upgrade_status_list_u32_pack(const bcmolt_gpon_onu_upgrade_status_list_u32 *this, bcmolt_buf *buf);
+
+/** Gets the number of bytes that a bcmolt_gpon_onu_upgrade_status_list_u32 
+ * would occupy on the wire 
+ *
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_gpon_onu_upgrade_status_list_u32_get_packed_length(const bcmolt_gpon_onu_upgrade_status_list_u32 *this);
+
+/** Unpacks a bcmolt_gpon_onu_upgrade_status_list_u32 from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_onu_upgrade_status_list_u32_unpack(bcmolt_gpon_onu_upgrade_status_list_u32 *this, bcmolt_buf *buf, void **extra_mem);
+
+/** Scans past a packed bcmolt_gpon_onu_upgrade_status_list_u32 struct and 
+ * collects memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_gpon_onu_upgrade_status_list_u32_scan(bcmolt_buf *packed, uint32_t *extra_mem);
+
+/** Checks if any field in the bcmolt_gpon_onu_upgrade_status_list_u32 is out of 
+ * bounds 
+ *
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_onu_upgrade_status_list_u32_bounds_check(const bcmolt_gpon_onu_upgrade_status_list_u32 *this);
+
+/** Initializes a bcmolt_gpon_onu_with_state struct.  This sets all fields to 
+ * default values. 
+ *
+ * \param this Pointer to the structure 
+ */
+void bcmolt_gpon_onu_with_state_set_default(bcmolt_gpon_onu_with_state *this);
+
+/** Packs a bcmolt_gpon_onu_with_state to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_onu_with_state_pack(const bcmolt_gpon_onu_with_state *this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_gpon_onu_with_state from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_onu_with_state_unpack(bcmolt_gpon_onu_with_state *this, bcmolt_buf *buf, void **extra_mem);
+
+/** Scans past a packed bcmolt_gpon_onu_with_state struct and collects memory 
+ * requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_gpon_onu_with_state_scan(bcmolt_buf *packed, uint32_t *extra_mem);
+
+/** Checks if any field in the bcmolt_gpon_onu_with_state is out of bounds 
+ *
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_onu_with_state_bounds_check(const bcmolt_gpon_onu_with_state *this);
+
+/** Initializes a bcmolt_gpon_onu_with_state_list_u16_max_128 struct.  This sets 
+ * all fields to default values. 
+ *
+ * \param this Pointer to the structure 
+ */
+void bcmolt_gpon_onu_with_state_list_u16_max_128_set_default(bcmolt_gpon_onu_with_state_list_u16_max_128 *this);
+
+/** Packs a bcmolt_gpon_onu_with_state_list_u16_max_128 to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_onu_with_state_list_u16_max_128_pack(const bcmolt_gpon_onu_with_state_list_u16_max_128 *this, bcmolt_buf *buf);
+
+/** Gets the number of bytes that a bcmolt_gpon_onu_with_state_list_u16_max_128 
+ * would occupy on the wire 
+ *
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_gpon_onu_with_state_list_u16_max_128_get_packed_length(const bcmolt_gpon_onu_with_state_list_u16_max_128 *this);
+
+/** Unpacks a bcmolt_gpon_onu_with_state_list_u16_max_128 from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_onu_with_state_list_u16_max_128_unpack(bcmolt_gpon_onu_with_state_list_u16_max_128 *this, bcmolt_buf *buf, void **extra_mem);
+
+/** Scans past a packed bcmolt_gpon_onu_with_state_list_u16_max_128 struct and 
+ * collects memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_gpon_onu_with_state_list_u16_max_128_scan(bcmolt_buf *packed, uint32_t *extra_mem);
+
+/** Checks if any field in the bcmolt_gpon_onu_with_state_list_u16_max_128 is 
+ * out of bounds 
+ *
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_onu_with_state_list_u16_max_128_bounds_check(const bcmolt_gpon_onu_with_state_list_u16_max_128 *this);
+
+/** Initializes a bcmolt_gpon_rssi_general_configuration struct.  This sets all 
+ * fields to default values. 
+ *
+ * \param this Pointer to the structure 
+ */
+void bcmolt_gpon_rssi_general_configuration_set_default(bcmolt_gpon_rssi_general_configuration *this);
+
+/** Packs a bcmolt_gpon_rssi_general_configuration to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_rssi_general_configuration_pack(const bcmolt_gpon_rssi_general_configuration *this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_gpon_rssi_general_configuration from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_rssi_general_configuration_unpack(bcmolt_gpon_rssi_general_configuration *this, bcmolt_buf *buf, void **extra_mem);
+
+/** Scans past a packed bcmolt_gpon_rssi_general_configuration struct and 
+ * collects memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_gpon_rssi_general_configuration_scan(bcmolt_buf *packed, uint32_t *extra_mem);
+
+/** Checks if any field in the bcmolt_gpon_rssi_general_configuration is out of 
+ * bounds 
+ *
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_rssi_general_configuration_bounds_check(const bcmolt_gpon_rssi_general_configuration *this);
+
+/** Initializes a bcmolt_gpon_sn_acquisition struct.  This sets all fields to 
+ * default values. 
+ *
+ * \param this Pointer to the structure 
+ */
+void bcmolt_gpon_sn_acquisition_set_default(bcmolt_gpon_sn_acquisition *this);
+
+/** Packs a bcmolt_gpon_sn_acquisition to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_sn_acquisition_pack(const bcmolt_gpon_sn_acquisition *this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_gpon_sn_acquisition from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_sn_acquisition_unpack(bcmolt_gpon_sn_acquisition *this, bcmolt_buf *buf, void **extra_mem);
+
+/** Scans past a packed bcmolt_gpon_sn_acquisition struct and collects memory 
+ * requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_gpon_sn_acquisition_scan(bcmolt_buf *packed, uint32_t *extra_mem);
+
+/** Checks if any field in the bcmolt_gpon_sn_acquisition is out of bounds 
+ *
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_sn_acquisition_bounds_check(const bcmolt_gpon_sn_acquisition *this);
+
+/** Initializes a bcmolt_host_sw_version struct.  This sets all fields to 
+ * default values. 
+ *
+ * \param this Pointer to the structure 
+ */
+void bcmolt_host_sw_version_set_default(bcmolt_host_sw_version *this);
+
+/** Packs a bcmolt_host_sw_version to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_host_sw_version_pack(const bcmolt_host_sw_version *this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_host_sw_version from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_host_sw_version_unpack(bcmolt_host_sw_version *this, bcmolt_buf *buf, void **extra_mem);
+
+/** Scans past a packed bcmolt_host_sw_version struct and collects memory 
+ * requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_host_sw_version_scan(bcmolt_buf *packed, uint32_t *extra_mem);
+
+/** Checks if any field in the bcmolt_host_sw_version is out of bounds 
+ *
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_host_sw_version_bounds_check(const bcmolt_host_sw_version *this);
+
+/** Initializes a bcmolt_hw_pon_id struct.  This sets all fields to default 
+ * values. 
+ *
+ * \param this Pointer to the structure 
+ */
+void bcmolt_hw_pon_id_set_default(bcmolt_hw_pon_id *this);
+
+/** Packs a bcmolt_hw_pon_id to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_hw_pon_id_pack(const bcmolt_hw_pon_id *this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_hw_pon_id from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_hw_pon_id_unpack(bcmolt_hw_pon_id *this, bcmolt_buf *buf, void **extra_mem);
+
+/** Scans past a packed bcmolt_hw_pon_id struct and collects memory requirements 
+ * above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_hw_pon_id_scan(bcmolt_buf *packed, uint32_t *extra_mem);
+
+/** Checks if any field in the bcmolt_hw_pon_id is out of bounds 
+ *
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_hw_pon_id_bounds_check(const bcmolt_hw_pon_id *this);
+
+/** Initializes a bcmolt_ieee_8021as_port_identity struct.  This sets all fields 
+ * to default values. 
+ *
+ * \param this Pointer to the structure 
+ */
+void bcmolt_ieee_8021as_port_identity_set_default(bcmolt_ieee_8021as_port_identity *this);
+
+/** Packs a bcmolt_ieee_8021as_port_identity to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_ieee_8021as_port_identity_pack(const bcmolt_ieee_8021as_port_identity *this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_ieee_8021as_port_identity from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_ieee_8021as_port_identity_unpack(bcmolt_ieee_8021as_port_identity *this, bcmolt_buf *buf, void **extra_mem);
+
+/** Scans past a packed bcmolt_ieee_8021as_port_identity struct and collects 
+ * memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_ieee_8021as_port_identity_scan(bcmolt_buf *packed, uint32_t *extra_mem);
+
+/** Checks if any field in the bcmolt_ieee_8021as_port_identity is out of bounds 
+ *
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_ieee_8021as_port_identity_bounds_check(const bcmolt_ieee_8021as_port_identity *this);
+
+/** Initializes a bcmolt_ieee_8021as_timestamp struct.  This sets all fields to 
+ * default values. 
+ *
+ * \param this Pointer to the structure 
+ */
+void bcmolt_ieee_8021as_timestamp_set_default(bcmolt_ieee_8021as_timestamp *this);
+
+/** Packs a bcmolt_ieee_8021as_timestamp to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_ieee_8021as_timestamp_pack(const bcmolt_ieee_8021as_timestamp *this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_ieee_8021as_timestamp from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_ieee_8021as_timestamp_unpack(bcmolt_ieee_8021as_timestamp *this, bcmolt_buf *buf, void **extra_mem);
+
+/** Scans past a packed bcmolt_ieee_8021as_timestamp struct and collects memory 
+ * requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_ieee_8021as_timestamp_scan(bcmolt_buf *packed, uint32_t *extra_mem);
+
+/** Checks if any field in the bcmolt_ieee_8021as_timestamp is out of bounds 
+ *
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_ieee_8021as_timestamp_bounds_check(const bcmolt_ieee_8021as_timestamp *this);
+
+/** Initializes a bcmolt_ieee_8021as_time_sync struct.  This sets all fields to 
+ * default values. 
+ *
+ * \param this Pointer to the structure 
+ */
+void bcmolt_ieee_8021as_time_sync_set_default(bcmolt_ieee_8021as_time_sync *this);
+
+/** Packs a bcmolt_ieee_8021as_time_sync to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_ieee_8021as_time_sync_pack(const bcmolt_ieee_8021as_time_sync *this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_ieee_8021as_time_sync from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_ieee_8021as_time_sync_unpack(bcmolt_ieee_8021as_time_sync *this, bcmolt_buf *buf, void **extra_mem);
+
+/** Scans past a packed bcmolt_ieee_8021as_time_sync struct and collects memory 
+ * requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_ieee_8021as_time_sync_scan(bcmolt_buf *packed, uint32_t *extra_mem);
+
+/** Checks if any field in the bcmolt_ieee_8021as_time_sync is out of bounds 
+ *
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_ieee_8021as_time_sync_bounds_check(const bcmolt_ieee_8021as_time_sync *this);
+
+/** Initializes a bcmolt_indication_shaping struct.  This sets all fields to 
+ * default values. 
+ *
+ * \param this Pointer to the structure 
+ */
+void bcmolt_indication_shaping_set_default(bcmolt_indication_shaping *this);
+
+/** Packs a bcmolt_indication_shaping to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_indication_shaping_pack(const bcmolt_indication_shaping *this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_indication_shaping from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_indication_shaping_unpack(bcmolt_indication_shaping *this, bcmolt_buf *buf, void **extra_mem);
+
+/** Scans past a packed bcmolt_indication_shaping struct and collects memory 
+ * requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_indication_shaping_scan(bcmolt_buf *packed, uint32_t *extra_mem);
+
+/** Checks if any field in the bcmolt_indication_shaping is out of bounds 
+ *
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_indication_shaping_bounds_check(const bcmolt_indication_shaping *this);
+
+/** Initializes a bcmolt_la_resync_pattern_configuration struct.  This sets all 
+ * fields to default values. 
+ *
+ * \param this Pointer to the structure 
+ */
+void bcmolt_la_resync_pattern_configuration_set_default(bcmolt_la_resync_pattern_configuration *this);
+
+/** Packs a bcmolt_la_resync_pattern_configuration to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_la_resync_pattern_configuration_pack(const bcmolt_la_resync_pattern_configuration *this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_la_resync_pattern_configuration from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_la_resync_pattern_configuration_unpack(bcmolt_la_resync_pattern_configuration *this, bcmolt_buf *buf, void **extra_mem);
+
+/** Scans past a packed bcmolt_la_resync_pattern_configuration struct and 
+ * collects memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_la_resync_pattern_configuration_scan(bcmolt_buf *packed, uint32_t *extra_mem);
+
+/** Checks if any field in the bcmolt_la_resync_pattern_configuration is out of 
+ * bounds 
+ *
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_la_resync_pattern_configuration_bounds_check(const bcmolt_la_resync_pattern_configuration *this);
+
+/** Initializes a bcmolt_log_buffer struct.  This sets all fields to default 
+ * values. 
+ *
+ * \param this Pointer to the structure 
+ */
+void bcmolt_log_buffer_set_default(bcmolt_log_buffer *this);
+
+/** Packs a bcmolt_log_buffer to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_log_buffer_pack(const bcmolt_log_buffer *this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_log_buffer from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_log_buffer_unpack(bcmolt_log_buffer *this, bcmolt_buf *buf, void **extra_mem);
+
+/** Scans past a packed bcmolt_log_buffer struct and collects memory 
+ * requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_log_buffer_scan(bcmolt_buf *packed, uint32_t *extra_mem);
+
+/** Checks if any field in the bcmolt_log_buffer is out of bounds 
+ *
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_log_buffer_bounds_check(const bcmolt_log_buffer *this);
+
+/** Initializes a bcmolt_mac_table_configuration struct.  This sets all fields 
+ * to default values. 
+ *
+ * \param this Pointer to the structure 
+ */
+void bcmolt_mac_table_configuration_set_default(bcmolt_mac_table_configuration *this);
+
+/** Packs a bcmolt_mac_table_configuration to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_mac_table_configuration_pack(const bcmolt_mac_table_configuration *this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_mac_table_configuration from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_mac_table_configuration_unpack(bcmolt_mac_table_configuration *this, bcmolt_buf *buf, void **extra_mem);
+
+/** Scans past a packed bcmolt_mac_table_configuration struct and collects 
+ * memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_mac_table_configuration_scan(bcmolt_buf *packed, uint32_t *extra_mem);
+
+/** Checks if any field in the bcmolt_mac_table_configuration is out of bounds 
+ *
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_mac_table_configuration_bounds_check(const bcmolt_mac_table_configuration *this);
+
+/** Initializes a bcmolt_macaddress_list_u32 struct.  This sets all fields to 
+ * default values. 
+ *
+ * \param this Pointer to the structure 
+ */
+void bcmolt_macaddress_list_u32_set_default(bcmolt_macaddress_list_u32 *this);
+
+/** Packs a bcmolt_macaddress_list_u32 to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_macaddress_list_u32_pack(const bcmolt_macaddress_list_u32 *this, bcmolt_buf *buf);
+
+/** Gets the number of bytes that a bcmolt_macaddress_list_u32 would occupy on 
+ * the wire 
+ *
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_macaddress_list_u32_get_packed_length(const bcmolt_macaddress_list_u32 *this);
+
+/** Unpacks a bcmolt_macaddress_list_u32 from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_macaddress_list_u32_unpack(bcmolt_macaddress_list_u32 *this, bcmolt_buf *buf, void **extra_mem);
+
+/** Scans past a packed bcmolt_macaddress_list_u32 struct and collects memory 
+ * requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_macaddress_list_u32_scan(bcmolt_buf *packed, uint32_t *extra_mem);
+
+/** Checks if any field in the bcmolt_macaddress_list_u32 is out of bounds 
+ *
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_macaddress_list_u32_bounds_check(const bcmolt_macaddress_list_u32 *this);
+
+/** Initializes a bcmolt_macaddress_list_u32_max_2048 struct.  This sets all 
+ * fields to default values. 
+ *
+ * \param this Pointer to the structure 
+ */
+void bcmolt_macaddress_list_u32_max_2048_set_default(bcmolt_macaddress_list_u32_max_2048 *this);
+
+/** Packs a bcmolt_macaddress_list_u32_max_2048 to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_macaddress_list_u32_max_2048_pack(const bcmolt_macaddress_list_u32_max_2048 *this, bcmolt_buf *buf);
+
+/** Gets the number of bytes that a bcmolt_macaddress_list_u32_max_2048 would 
+ * occupy on the wire 
+ *
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_macaddress_list_u32_max_2048_get_packed_length(const bcmolt_macaddress_list_u32_max_2048 *this);
+
+/** Unpacks a bcmolt_macaddress_list_u32_max_2048 from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_macaddress_list_u32_max_2048_unpack(bcmolt_macaddress_list_u32_max_2048 *this, bcmolt_buf *buf, void **extra_mem);
+
+/** Scans past a packed bcmolt_macaddress_list_u32_max_2048 struct and collects 
+ * memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_macaddress_list_u32_max_2048_scan(bcmolt_buf *packed, uint32_t *extra_mem);
+
+/** Checks if any field in the bcmolt_macaddress_list_u32_max_2048 is out of 
+ * bounds 
+ *
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_macaddress_list_u32_max_2048_bounds_check(const bcmolt_macaddress_list_u32_max_2048 *this);
+
+/** Initializes a bcmolt_nni_link_status struct.  This sets all fields to 
+ * default values. 
+ *
+ * \param this Pointer to the structure 
+ */
+void bcmolt_nni_link_status_set_default(bcmolt_nni_link_status *this);
+
+/** Packs a bcmolt_nni_link_status to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_nni_link_status_pack(const bcmolt_nni_link_status *this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_nni_link_status from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_nni_link_status_unpack(bcmolt_nni_link_status *this, bcmolt_buf *buf, void **extra_mem);
+
+/** Scans past a packed bcmolt_nni_link_status struct and collects memory 
+ * requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_nni_link_status_scan(bcmolt_buf *packed, uint32_t *extra_mem);
+
+/** Checks if any field in the bcmolt_nni_link_status is out of bounds 
+ *
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_nni_link_status_bounds_check(const bcmolt_nni_link_status *this);
+
+/** Initializes a bcmolt_oam_heartbeat_config struct.  This sets all fields to 
+ * default values. 
+ *
+ * \param this Pointer to the structure 
+ */
+void bcmolt_oam_heartbeat_config_set_default(bcmolt_oam_heartbeat_config *this);
+
+/** Packs a bcmolt_oam_heartbeat_config to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_oam_heartbeat_config_pack(const bcmolt_oam_heartbeat_config *this, bcmolt_buf *buf);
+
+/** Gets the number of bytes that a bcmolt_oam_heartbeat_config would occupy on 
+ * the wire 
+ *
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_oam_heartbeat_config_get_packed_length(const bcmolt_oam_heartbeat_config *this);
+
+/** Unpacks a bcmolt_oam_heartbeat_config from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_oam_heartbeat_config_unpack(bcmolt_oam_heartbeat_config *this, bcmolt_buf *buf, void **extra_mem);
+
+/** Scans past a packed bcmolt_oam_heartbeat_config struct and collects memory 
+ * requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_oam_heartbeat_config_scan(bcmolt_buf *packed, uint32_t *extra_mem);
+
+/** Checks if any field in the bcmolt_oam_heartbeat_config is out of bounds 
+ *
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_oam_heartbeat_config_bounds_check(const bcmolt_oam_heartbeat_config *this);
+
+/** Initializes a bcmolt_onu_power_management_configuration struct.  This sets 
+ * all fields to default values. 
+ *
+ * \param this Pointer to the structure 
+ */
+void bcmolt_onu_power_management_configuration_set_default(bcmolt_onu_power_management_configuration *this);
+
+/** Packs a bcmolt_onu_power_management_configuration to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_onu_power_management_configuration_pack(const bcmolt_onu_power_management_configuration *this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_onu_power_management_configuration from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_onu_power_management_configuration_unpack(bcmolt_onu_power_management_configuration *this, bcmolt_buf *buf, void **extra_mem);
+
+/** Scans past a packed bcmolt_onu_power_management_configuration struct and 
+ * collects memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_onu_power_management_configuration_scan(bcmolt_buf *packed, uint32_t *extra_mem);
+
+/** Checks if any field in the bcmolt_onu_power_management_configuration is out 
+ * of bounds 
+ *
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_onu_power_management_configuration_bounds_check(const bcmolt_onu_power_management_configuration *this);
+
+/** Initializes a bcmolt_onu_tuning_configuration struct.  This sets all fields 
+ * to default values. 
+ *
+ * \param this Pointer to the structure 
+ */
+void bcmolt_onu_tuning_configuration_set_default(bcmolt_onu_tuning_configuration *this);
+
+/** Packs a bcmolt_onu_tuning_configuration to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_onu_tuning_configuration_pack(const bcmolt_onu_tuning_configuration *this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_onu_tuning_configuration from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_onu_tuning_configuration_unpack(bcmolt_onu_tuning_configuration *this, bcmolt_buf *buf, void **extra_mem);
+
+/** Scans past a packed bcmolt_onu_tuning_configuration struct and collects 
+ * memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_onu_tuning_configuration_scan(bcmolt_buf *packed, uint32_t *extra_mem);
+
+/** Checks if any field in the bcmolt_onu_tuning_configuration is out of bounds 
+ *
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_onu_tuning_configuration_bounds_check(const bcmolt_onu_tuning_configuration *this);
+
+/** Initializes a bcmolt_pon_id struct.  This sets all fields to default values. 
+ *
+ * \param this Pointer to the structure 
+ */
+void bcmolt_pon_id_set_default(bcmolt_pon_id *this);
+
+/** Packs a bcmolt_pon_id to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_pon_id_pack(const bcmolt_pon_id *this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_pon_id from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_pon_id_unpack(bcmolt_pon_id *this, bcmolt_buf *buf, void **extra_mem);
+
+/** Scans past a packed bcmolt_pon_id struct and collects memory requirements 
+ * above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_pon_id_scan(bcmolt_buf *packed, uint32_t *extra_mem);
+
+/** Checks if any field in the bcmolt_pon_id is out of bounds 
+ *
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_pon_id_bounds_check(const bcmolt_pon_id *this);
+
+/** Initializes a bcmolt_operation_control struct.  This sets all fields to 
+ * default values. 
+ *
+ * \param this Pointer to the structure 
+ */
+void bcmolt_operation_control_set_default(bcmolt_operation_control *this);
+
+/** Packs a bcmolt_operation_control to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_operation_control_pack(const bcmolt_operation_control *this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_operation_control from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_operation_control_unpack(bcmolt_operation_control *this, bcmolt_buf *buf, void **extra_mem);
+
+/** Scans past a packed bcmolt_operation_control struct and collects memory 
+ * requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_operation_control_scan(bcmolt_buf *packed, uint32_t *extra_mem);
+
+/** Checks if any field in the bcmolt_operation_control is out of bounds 
+ *
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_operation_control_bounds_check(const bcmolt_operation_control *this);
+
+/** Initializes a bcmolt_periodic_standby_pon_monitoring struct.  This sets all 
+ * fields to default values. 
+ *
+ * \param this Pointer to the structure 
+ */
+void bcmolt_periodic_standby_pon_monitoring_set_default(bcmolt_periodic_standby_pon_monitoring *this);
+
+/** Packs a bcmolt_periodic_standby_pon_monitoring to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_periodic_standby_pon_monitoring_pack(const bcmolt_periodic_standby_pon_monitoring *this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_periodic_standby_pon_monitoring from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_periodic_standby_pon_monitoring_unpack(bcmolt_periodic_standby_pon_monitoring *this, bcmolt_buf *buf, void **extra_mem);
+
+/** Scans past a packed bcmolt_periodic_standby_pon_monitoring struct and 
+ * collects memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_periodic_standby_pon_monitoring_scan(bcmolt_buf *packed, uint32_t *extra_mem);
+
+/** Checks if any field in the bcmolt_periodic_standby_pon_monitoring is out of 
+ * bounds 
+ *
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_periodic_standby_pon_monitoring_bounds_check(const bcmolt_periodic_standby_pon_monitoring *this);
+
+/** Initializes a bcmolt_pon_aggregate_shaper struct.  This sets all fields to 
+ * default values. 
+ *
+ * \param this Pointer to the structure 
+ */
+void bcmolt_pon_aggregate_shaper_set_default(bcmolt_pon_aggregate_shaper *this);
+
+/** Packs a bcmolt_pon_aggregate_shaper to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_pon_aggregate_shaper_pack(const bcmolt_pon_aggregate_shaper *this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_pon_aggregate_shaper from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_pon_aggregate_shaper_unpack(bcmolt_pon_aggregate_shaper *this, bcmolt_buf *buf, void **extra_mem);
+
+/** Scans past a packed bcmolt_pon_aggregate_shaper struct and collects memory 
+ * requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_pon_aggregate_shaper_scan(bcmolt_buf *packed, uint32_t *extra_mem);
+
+/** Checks if any field in the bcmolt_pon_aggregate_shaper is out of bounds 
+ *
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_pon_aggregate_shaper_bounds_check(const bcmolt_pon_aggregate_shaper *this);
+
+/** Initializes a bcmolt_pon_alloc_sla struct.  This sets all fields to default 
+ * values. 
+ *
+ * \param this Pointer to the structure 
+ */
+void bcmolt_pon_alloc_sla_set_default(bcmolt_pon_alloc_sla *this);
+
+/** Packs a bcmolt_pon_alloc_sla to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_pon_alloc_sla_pack(const bcmolt_pon_alloc_sla *this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_pon_alloc_sla from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_pon_alloc_sla_unpack(bcmolt_pon_alloc_sla *this, bcmolt_buf *buf, void **extra_mem);
+
+/** Scans past a packed bcmolt_pon_alloc_sla struct and collects memory 
+ * requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_pon_alloc_sla_scan(bcmolt_buf *packed, uint32_t *extra_mem);
+
+/** Checks if any field in the bcmolt_pon_alloc_sla is out of bounds 
+ *
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_pon_alloc_sla_bounds_check(const bcmolt_pon_alloc_sla *this);
+
+/** Initializes a bcmolt_pon_available_bandwidth struct.  This sets all fields 
+ * to default values. 
+ *
+ * \param this Pointer to the structure 
+ */
+void bcmolt_pon_available_bandwidth_set_default(bcmolt_pon_available_bandwidth *this);
+
+/** Packs a bcmolt_pon_available_bandwidth to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_pon_available_bandwidth_pack(const bcmolt_pon_available_bandwidth *this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_pon_available_bandwidth from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_pon_available_bandwidth_unpack(bcmolt_pon_available_bandwidth *this, bcmolt_buf *buf, void **extra_mem);
+
+/** Scans past a packed bcmolt_pon_available_bandwidth struct and collects 
+ * memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_pon_available_bandwidth_scan(bcmolt_buf *packed, uint32_t *extra_mem);
+
+/** Checks if any field in the bcmolt_pon_available_bandwidth is out of bounds 
+ *
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_pon_available_bandwidth_bounds_check(const bcmolt_pon_available_bandwidth *this);
+
+/** Initializes a bcmolt_pon_dba struct.  This sets all fields to default 
+ * values. 
+ *
+ * \param this Pointer to the structure 
+ */
+void bcmolt_pon_dba_set_default(bcmolt_pon_dba *this);
+
+/** Packs a bcmolt_pon_dba to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_pon_dba_pack(const bcmolt_pon_dba *this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_pon_dba from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_pon_dba_unpack(bcmolt_pon_dba *this, bcmolt_buf *buf, void **extra_mem);
+
+/** Scans past a packed bcmolt_pon_dba struct and collects memory requirements 
+ * above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_pon_dba_scan(bcmolt_buf *packed, uint32_t *extra_mem);
+
+/** Checks if any field in the bcmolt_pon_dba is out of bounds 
+ *
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_pon_dba_bounds_check(const bcmolt_pon_dba *this);
+
+/** Initializes a bcmolt_pon_distance struct.  This sets all fields to default 
+ * values. 
+ *
+ * \param this Pointer to the structure 
+ */
+void bcmolt_pon_distance_set_default(bcmolt_pon_distance *this);
+
+/** Packs a bcmolt_pon_distance to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_pon_distance_pack(const bcmolt_pon_distance *this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_pon_distance from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_pon_distance_unpack(bcmolt_pon_distance *this, bcmolt_buf *buf, void **extra_mem);
+
+/** Scans past a packed bcmolt_pon_distance struct and collects memory 
+ * requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_pon_distance_scan(bcmolt_buf *packed, uint32_t *extra_mem);
+
+/** Checks if any field in the bcmolt_pon_distance is out of bounds 
+ *
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_pon_distance_bounds_check(const bcmolt_pon_distance *this);
+
+/** Initializes a bcmolt_pon_drift_control struct.  This sets all fields to 
+ * default values. 
+ *
+ * \param this Pointer to the structure 
+ */
+void bcmolt_pon_drift_control_set_default(bcmolt_pon_drift_control *this);
+
+/** Packs a bcmolt_pon_drift_control to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_pon_drift_control_pack(const bcmolt_pon_drift_control *this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_pon_drift_control from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_pon_drift_control_unpack(bcmolt_pon_drift_control *this, bcmolt_buf *buf, void **extra_mem);
+
+/** Scans past a packed bcmolt_pon_drift_control struct and collects memory 
+ * requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_pon_drift_control_scan(bcmolt_buf *packed, uint32_t *extra_mem);
+
+/** Checks if any field in the bcmolt_pon_drift_control is out of bounds 
+ *
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_pon_drift_control_bounds_check(const bcmolt_pon_drift_control *this);
+
+/** Initializes a bcmolt_pon_onu_id_list_u32 struct.  This sets all fields to 
+ * default values. 
+ *
+ * \param this Pointer to the structure 
+ */
+void bcmolt_pon_onu_id_list_u32_set_default(bcmolt_pon_onu_id_list_u32 *this);
+
+/** Packs a bcmolt_pon_onu_id_list_u32 to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_pon_onu_id_list_u32_pack(const bcmolt_pon_onu_id_list_u32 *this, bcmolt_buf *buf);
+
+/** Gets the number of bytes that a bcmolt_pon_onu_id_list_u32 would occupy on 
+ * the wire 
+ *
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_pon_onu_id_list_u32_get_packed_length(const bcmolt_pon_onu_id_list_u32 *this);
+
+/** Unpacks a bcmolt_pon_onu_id_list_u32 from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_pon_onu_id_list_u32_unpack(bcmolt_pon_onu_id_list_u32 *this, bcmolt_buf *buf, void **extra_mem);
+
+/** Scans past a packed bcmolt_pon_onu_id_list_u32 struct and collects memory 
+ * requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_pon_onu_id_list_u32_scan(bcmolt_buf *packed, uint32_t *extra_mem);
+
+/** Checks if any field in the bcmolt_pon_onu_id_list_u32 is out of bounds 
+ *
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_pon_onu_id_list_u32_bounds_check(const bcmolt_pon_onu_id_list_u32 *this);
+
+/** Initializes a bcmolt_pon_power_level struct.  This sets all fields to 
+ * default values. 
+ *
+ * \param this Pointer to the structure 
+ */
+void bcmolt_pon_power_level_set_default(bcmolt_pon_power_level *this);
+
+/** Packs a bcmolt_pon_power_level to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_pon_power_level_pack(const bcmolt_pon_power_level *this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_pon_power_level from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_pon_power_level_unpack(bcmolt_pon_power_level *this, bcmolt_buf *buf, void **extra_mem);
+
+/** Scans past a packed bcmolt_pon_power_level struct and collects memory 
+ * requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_pon_power_level_scan(bcmolt_buf *packed, uint32_t *extra_mem);
+
+/** Checks if any field in the bcmolt_pon_power_level is out of bounds 
+ *
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_pon_power_level_bounds_check(const bcmolt_pon_power_level *this);
+
+/** Initializes a bcmolt_pon_protection_switching struct.  This sets all fields 
+ * to default values. 
+ *
+ * \param this Pointer to the structure 
+ */
+void bcmolt_pon_protection_switching_set_default(bcmolt_pon_protection_switching *this);
+
+/** Packs a bcmolt_pon_protection_switching to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_pon_protection_switching_pack(const bcmolt_pon_protection_switching *this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_pon_protection_switching from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_pon_protection_switching_unpack(bcmolt_pon_protection_switching *this, bcmolt_buf *buf, void **extra_mem);
+
+/** Scans past a packed bcmolt_pon_protection_switching struct and collects 
+ * memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_pon_protection_switching_scan(bcmolt_buf *packed, uint32_t *extra_mem);
+
+/** Checks if any field in the bcmolt_pon_protection_switching is out of bounds 
+ *
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_pon_protection_switching_bounds_check(const bcmolt_pon_protection_switching *this);
+
+/** Initializes a bcmolt_pon_status struct.  This sets all fields to default 
+ * values. 
+ *
+ * \param this Pointer to the structure 
+ */
+void bcmolt_pon_status_set_default(bcmolt_pon_status *this);
+
+/** Packs a bcmolt_pon_status to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_pon_status_pack(const bcmolt_pon_status *this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_pon_status from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_pon_status_unpack(bcmolt_pon_status *this, bcmolt_buf *buf, void **extra_mem);
+
+/** Scans past a packed bcmolt_pon_status struct and collects memory 
+ * requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_pon_status_scan(bcmolt_buf *packed, uint32_t *extra_mem);
+
+/** Checks if any field in the bcmolt_pon_status is out of bounds 
+ *
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_pon_status_bounds_check(const bcmolt_pon_status *this);
+
+/** Initializes a bcmolt_prbs_checker_config struct.  This sets all fields to 
+ * default values. 
+ *
+ * \param this Pointer to the structure 
+ */
+void bcmolt_prbs_checker_config_set_default(bcmolt_prbs_checker_config *this);
+
+/** Packs a bcmolt_prbs_checker_config to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_prbs_checker_config_pack(const bcmolt_prbs_checker_config *this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_prbs_checker_config from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_prbs_checker_config_unpack(bcmolt_prbs_checker_config *this, bcmolt_buf *buf, void **extra_mem);
+
+/** Scans past a packed bcmolt_prbs_checker_config struct and collects memory 
+ * requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_prbs_checker_config_scan(bcmolt_buf *packed, uint32_t *extra_mem);
+
+/** Checks if any field in the bcmolt_prbs_checker_config is out of bounds 
+ *
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_prbs_checker_config_bounds_check(const bcmolt_prbs_checker_config *this);
+
+/** Initializes a bcmolt_prbs_generator_config struct.  This sets all fields to 
+ * default values. 
+ *
+ * \param this Pointer to the structure 
+ */
+void bcmolt_prbs_generator_config_set_default(bcmolt_prbs_generator_config *this);
+
+/** Packs a bcmolt_prbs_generator_config to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_prbs_generator_config_pack(const bcmolt_prbs_generator_config *this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_prbs_generator_config from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_prbs_generator_config_unpack(bcmolt_prbs_generator_config *this, bcmolt_buf *buf, void **extra_mem);
+
+/** Scans past a packed bcmolt_prbs_generator_config struct and collects memory 
+ * requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_prbs_generator_config_scan(bcmolt_buf *packed, uint32_t *extra_mem);
+
+/** Checks if any field in the bcmolt_prbs_generator_config is out of bounds 
+ *
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_prbs_generator_config_bounds_check(const bcmolt_prbs_generator_config *this);
+
+/** Initializes a bcmolt_prbs_status struct.  This sets all fields to default 
+ * values. 
+ *
+ * \param this Pointer to the structure 
+ */
+void bcmolt_prbs_status_set_default(bcmolt_prbs_status *this);
+
+/** Packs a bcmolt_prbs_status to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_prbs_status_pack(const bcmolt_prbs_status *this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_prbs_status from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_prbs_status_unpack(bcmolt_prbs_status *this, bcmolt_buf *buf, void **extra_mem);
+
+/** Scans past a packed bcmolt_prbs_status struct and collects memory 
+ * requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_prbs_status_scan(bcmolt_buf *packed, uint32_t *extra_mem);
+
+/** Checks if any field in the bcmolt_prbs_status is out of bounds 
+ *
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_prbs_status_bounds_check(const bcmolt_prbs_status *this);
+
+/** Initializes a bcmolt_ranging_control_configuration struct.  This sets all 
+ * fields to default values. 
+ *
+ * \param this Pointer to the structure 
+ */
+void bcmolt_ranging_control_configuration_set_default(bcmolt_ranging_control_configuration *this);
+
+/** Packs a bcmolt_ranging_control_configuration to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_ranging_control_configuration_pack(const bcmolt_ranging_control_configuration *this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_ranging_control_configuration from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_ranging_control_configuration_unpack(bcmolt_ranging_control_configuration *this, bcmolt_buf *buf, void **extra_mem);
+
+/** Scans past a packed bcmolt_ranging_control_configuration struct and collects 
+ * memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_ranging_control_configuration_scan(bcmolt_buf *packed, uint32_t *extra_mem);
+
+/** Checks if any field in the bcmolt_ranging_control_configuration is out of 
+ * bounds 
+ *
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_ranging_control_configuration_bounds_check(const bcmolt_ranging_control_configuration *this);
+
+/** Initializes a bcmolt_ranging_resync_conditions struct.  This sets all fields 
+ * to default values. 
+ *
+ * \param this Pointer to the structure 
+ */
+void bcmolt_ranging_resync_conditions_set_default(bcmolt_ranging_resync_conditions *this);
+
+/** Packs a bcmolt_ranging_resync_conditions to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_ranging_resync_conditions_pack(const bcmolt_ranging_resync_conditions *this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_ranging_resync_conditions from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_ranging_resync_conditions_unpack(bcmolt_ranging_resync_conditions *this, bcmolt_buf *buf, void **extra_mem);
+
+/** Scans past a packed bcmolt_ranging_resync_conditions struct and collects 
+ * memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_ranging_resync_conditions_scan(bcmolt_buf *packed, uint32_t *extra_mem);
+
+/** Checks if any field in the bcmolt_ranging_resync_conditions is out of bounds 
+ *
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_ranging_resync_conditions_bounds_check(const bcmolt_ranging_resync_conditions *this);
+
+/** Initializes a bcmolt_ranging_rssi_control struct.  This sets all fields to 
+ * default values. 
+ *
+ * \param this Pointer to the structure 
+ */
+void bcmolt_ranging_rssi_control_set_default(bcmolt_ranging_rssi_control *this);
+
+/** Packs a bcmolt_ranging_rssi_control to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_ranging_rssi_control_pack(const bcmolt_ranging_rssi_control *this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_ranging_rssi_control from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_ranging_rssi_control_unpack(bcmolt_ranging_rssi_control *this, bcmolt_buf *buf, void **extra_mem);
+
+/** Scans past a packed bcmolt_ranging_rssi_control struct and collects memory 
+ * requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_ranging_rssi_control_scan(bcmolt_buf *packed, uint32_t *extra_mem);
+
+/** Checks if any field in the bcmolt_ranging_rssi_control is out of bounds 
+ *
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_ranging_rssi_control_bounds_check(const bcmolt_ranging_rssi_control *this);
+
+/** Initializes a bcmolt_request_registration_status struct.  This sets all 
+ * fields to default values. 
+ *
+ * \param this Pointer to the structure 
+ */
+void bcmolt_request_registration_status_set_default(bcmolt_request_registration_status *this);
+
+/** Packs a bcmolt_request_registration_status to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_request_registration_status_pack(const bcmolt_request_registration_status *this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_request_registration_status from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_request_registration_status_unpack(bcmolt_request_registration_status *this, bcmolt_buf *buf, void **extra_mem);
+
+/** Scans past a packed bcmolt_request_registration_status struct and collects 
+ * memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_request_registration_status_scan(bcmolt_buf *packed, uint32_t *extra_mem);
+
+/** Checks if any field in the bcmolt_request_registration_status is out of 
+ * bounds 
+ *
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_request_registration_status_bounds_check(const bcmolt_request_registration_status *this);
+
+/** Initializes a bcmolt_rogue_detection_special_map struct.  This sets all 
+ * fields to default values. 
+ *
+ * \param this Pointer to the structure 
+ */
+void bcmolt_rogue_detection_special_map_set_default(bcmolt_rogue_detection_special_map *this);
+
+/** Packs a bcmolt_rogue_detection_special_map to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_rogue_detection_special_map_pack(const bcmolt_rogue_detection_special_map *this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_rogue_detection_special_map from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_rogue_detection_special_map_unpack(bcmolt_rogue_detection_special_map *this, bcmolt_buf *buf, void **extra_mem);
+
+/** Scans past a packed bcmolt_rogue_detection_special_map struct and collects 
+ * memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_rogue_detection_special_map_scan(bcmolt_buf *packed, uint32_t *extra_mem);
+
+/** Checks if any field in the bcmolt_rogue_detection_special_map is out of 
+ * bounds 
+ *
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_rogue_detection_special_map_bounds_check(const bcmolt_rogue_detection_special_map *this);
+
+/** Initializes a bcmolt_rogue_detection_special_map_list_u32_max_8 struct.  
+ * This sets all fields to default values. 
+ *
+ * \param this Pointer to the structure 
+ */
+void bcmolt_rogue_detection_special_map_list_u32_max_8_set_default(bcmolt_rogue_detection_special_map_list_u32_max_8 *this);
+
+/** Packs a bcmolt_rogue_detection_special_map_list_u32_max_8 to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_rogue_detection_special_map_list_u32_max_8_pack(const bcmolt_rogue_detection_special_map_list_u32_max_8 *this, bcmolt_buf *buf);
+
+/** Gets the number of bytes that a 
+ * bcmolt_rogue_detection_special_map_list_u32_max_8 would occupy on the wire 
+ *
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_rogue_detection_special_map_list_u32_max_8_get_packed_length(const bcmolt_rogue_detection_special_map_list_u32_max_8 *this);
+
+/** Unpacks a bcmolt_rogue_detection_special_map_list_u32_max_8 from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_rogue_detection_special_map_list_u32_max_8_unpack(bcmolt_rogue_detection_special_map_list_u32_max_8 *this, bcmolt_buf *buf, void **extra_mem);
+
+/** Scans past a packed bcmolt_rogue_detection_special_map_list_u32_max_8 struct 
+ * and collects memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_rogue_detection_special_map_list_u32_max_8_scan(bcmolt_buf *packed, uint32_t *extra_mem);
+
+/** Checks if any field in the bcmolt_rogue_detection_special_map_list_u32_max_8 
+ * is out of bounds 
+ *
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_rogue_detection_special_map_list_u32_max_8_bounds_check(const bcmolt_rogue_detection_special_map_list_u32_max_8 *this);
+
+/** Initializes a bcmolt_rogue_detection_algorithm struct.  This sets all fields 
+ * to default values. 
+ *
+ * \param this Pointer to the structure 
+ */
+void bcmolt_rogue_detection_algorithm_set_default(bcmolt_rogue_detection_algorithm *this);
+
+/** Packs a bcmolt_rogue_detection_algorithm to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_rogue_detection_algorithm_pack(const bcmolt_rogue_detection_algorithm *this, bcmolt_buf *buf);
+
+/** Gets the number of bytes that a bcmolt_rogue_detection_algorithm would 
+ * occupy on the wire 
+ *
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_rogue_detection_algorithm_get_packed_length(const bcmolt_rogue_detection_algorithm *this);
+
+/** Unpacks a bcmolt_rogue_detection_algorithm from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_rogue_detection_algorithm_unpack(bcmolt_rogue_detection_algorithm *this, bcmolt_buf *buf, void **extra_mem);
+
+/** Scans past a packed bcmolt_rogue_detection_algorithm struct and collects 
+ * memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_rogue_detection_algorithm_scan(bcmolt_buf *packed, uint32_t *extra_mem);
+
+/** Checks if any field in the bcmolt_rogue_detection_algorithm is out of bounds 
+ *
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_rogue_detection_algorithm_bounds_check(const bcmolt_rogue_detection_algorithm *this);
+
+/** Initializes a bcmolt_rogue_onu_detection_process struct.  This sets all 
+ * fields to default values. 
+ *
+ * \param this Pointer to the structure 
+ */
+void bcmolt_rogue_onu_detection_process_set_default(bcmolt_rogue_onu_detection_process *this);
+
+/** Packs a bcmolt_rogue_onu_detection_process to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_rogue_onu_detection_process_pack(const bcmolt_rogue_onu_detection_process *this, bcmolt_buf *buf);
+
+/** Gets the number of bytes that a bcmolt_rogue_onu_detection_process would 
+ * occupy on the wire 
+ *
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_rogue_onu_detection_process_get_packed_length(const bcmolt_rogue_onu_detection_process *this);
+
+/** Unpacks a bcmolt_rogue_onu_detection_process from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_rogue_onu_detection_process_unpack(bcmolt_rogue_onu_detection_process *this, bcmolt_buf *buf, void **extra_mem);
+
+/** Scans past a packed bcmolt_rogue_onu_detection_process struct and collects 
+ * memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_rogue_onu_detection_process_scan(bcmolt_buf *packed, uint32_t *extra_mem);
+
+/** Checks if any field in the bcmolt_rogue_onu_detection_process is out of 
+ * bounds 
+ *
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_rogue_onu_detection_process_bounds_check(const bcmolt_rogue_onu_detection_process *this);
+
+/** Initializes a bcmolt_serdes_configuration struct.  This sets all fields to 
+ * default values. 
+ *
+ * \param this Pointer to the structure 
+ */
+void bcmolt_serdes_configuration_set_default(bcmolt_serdes_configuration *this);
+
+/** Packs a bcmolt_serdes_configuration to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_serdes_configuration_pack(const bcmolt_serdes_configuration *this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_serdes_configuration from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_serdes_configuration_unpack(bcmolt_serdes_configuration *this, bcmolt_buf *buf, void **extra_mem);
+
+/** Scans past a packed bcmolt_serdes_configuration struct and collects memory 
+ * requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_serdes_configuration_scan(bcmolt_buf *packed, uint32_t *extra_mem);
+
+/** Checks if any field in the bcmolt_serdes_configuration is out of bounds 
+ *
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_serdes_configuration_bounds_check(const bcmolt_serdes_configuration *this);
+
+/** Initializes a bcmolt_serial_number struct.  This sets all fields to default 
+ * values. 
+ *
+ * \param this Pointer to the structure 
+ */
+void bcmolt_serial_number_set_default(bcmolt_serial_number *this);
+
+/** Packs a bcmolt_serial_number to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_serial_number_pack(const bcmolt_serial_number *this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_serial_number from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_serial_number_unpack(bcmolt_serial_number *this, bcmolt_buf *buf, void **extra_mem);
+
+/** Scans past a packed bcmolt_serial_number struct and collects memory 
+ * requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_serial_number_scan(bcmolt_buf *packed, uint32_t *extra_mem);
+
+/** Checks if any field in the bcmolt_serial_number is out of bounds 
+ *
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_serial_number_bounds_check(const bcmolt_serial_number *this);
+
+/** Initializes a bcmolt_solicited_scheduler struct.  This sets all fields to 
+ * default values. 
+ *
+ * \param this Pointer to the structure 
+ */
+void bcmolt_solicited_scheduler_set_default(bcmolt_solicited_scheduler *this);
+
+/** Packs a bcmolt_solicited_scheduler to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_solicited_scheduler_pack(const bcmolt_solicited_scheduler *this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_solicited_scheduler from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_solicited_scheduler_unpack(bcmolt_solicited_scheduler *this, bcmolt_buf *buf, void **extra_mem);
+
+/** Scans past a packed bcmolt_solicited_scheduler struct and collects memory 
+ * requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_solicited_scheduler_scan(bcmolt_buf *packed, uint32_t *extra_mem);
+
+/** Checks if any field in the bcmolt_solicited_scheduler is out of bounds 
+ *
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_solicited_scheduler_bounds_check(const bcmolt_solicited_scheduler *this);
+
+/** Initializes a bcmolt_stat_alarm_trigger_config struct.  This sets all fields 
+ * to default values. 
+ *
+ * \param this Pointer to the structure 
+ */
+void bcmolt_stat_alarm_trigger_config_set_default(bcmolt_stat_alarm_trigger_config *this);
+
+/** Packs a bcmolt_stat_alarm_trigger_config to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_stat_alarm_trigger_config_pack(const bcmolt_stat_alarm_trigger_config *this, bcmolt_buf *buf);
+
+/** Gets the number of bytes that a bcmolt_stat_alarm_trigger_config would 
+ * occupy on the wire 
+ *
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_stat_alarm_trigger_config_get_packed_length(const bcmolt_stat_alarm_trigger_config *this);
+
+/** Unpacks a bcmolt_stat_alarm_trigger_config from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_stat_alarm_trigger_config_unpack(bcmolt_stat_alarm_trigger_config *this, bcmolt_buf *buf, void **extra_mem);
+
+/** Scans past a packed bcmolt_stat_alarm_trigger_config struct and collects 
+ * memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_stat_alarm_trigger_config_scan(bcmolt_buf *packed, uint32_t *extra_mem);
+
+/** Checks if any field in the bcmolt_stat_alarm_trigger_config is out of bounds 
+ *
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_stat_alarm_trigger_config_bounds_check(const bcmolt_stat_alarm_trigger_config *this);
+
+/** Initializes a bcmolt_stat_alarm_soak_config struct.  This sets all fields to 
+ * default values. 
+ *
+ * \param this Pointer to the structure 
+ */
+void bcmolt_stat_alarm_soak_config_set_default(bcmolt_stat_alarm_soak_config *this);
+
+/** Packs a bcmolt_stat_alarm_soak_config to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_stat_alarm_soak_config_pack(const bcmolt_stat_alarm_soak_config *this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_stat_alarm_soak_config from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_stat_alarm_soak_config_unpack(bcmolt_stat_alarm_soak_config *this, bcmolt_buf *buf, void **extra_mem);
+
+/** Scans past a packed bcmolt_stat_alarm_soak_config struct and collects memory 
+ * requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_stat_alarm_soak_config_scan(bcmolt_buf *packed, uint32_t *extra_mem);
+
+/** Checks if any field in the bcmolt_stat_alarm_soak_config is out of bounds 
+ *
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_stat_alarm_soak_config_bounds_check(const bcmolt_stat_alarm_soak_config *this);
+
+/** Initializes a bcmolt_stat_alarm_config struct.  This sets all fields to 
+ * default values. 
+ *
+ * \param this Pointer to the structure 
+ */
+void bcmolt_stat_alarm_config_set_default(bcmolt_stat_alarm_config *this);
+
+/** Packs a bcmolt_stat_alarm_config to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_stat_alarm_config_pack(const bcmolt_stat_alarm_config *this, bcmolt_buf *buf);
+
+/** Gets the number of bytes that a bcmolt_stat_alarm_config would occupy on the 
+ * wire 
+ *
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_stat_alarm_config_get_packed_length(const bcmolt_stat_alarm_config *this);
+
+/** Unpacks a bcmolt_stat_alarm_config from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_stat_alarm_config_unpack(bcmolt_stat_alarm_config *this, bcmolt_buf *buf, void **extra_mem);
+
+/** Scans past a packed bcmolt_stat_alarm_config struct and collects memory 
+ * requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_stat_alarm_config_scan(bcmolt_buf *packed, uint32_t *extra_mem);
+
+/** Checks if any field in the bcmolt_stat_alarm_config is out of bounds 
+ *
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_stat_alarm_config_bounds_check(const bcmolt_stat_alarm_config *this);
+
+/** Initializes a bcmolt_str_100 struct.  This sets all fields to default 
+ * values. 
+ *
+ * \param this Pointer to the structure 
+ */
+void bcmolt_str_100_set_default(bcmolt_str_100 *this);
+
+/** Packs a bcmolt_str_100 to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_str_100_pack(const bcmolt_str_100 *this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_str_100 from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_str_100_unpack(bcmolt_str_100 *this, bcmolt_buf *buf, void **extra_mem);
+
+/** Scans past a packed bcmolt_str_100 struct and collects memory requirements 
+ * above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_str_100_scan(bcmolt_buf *packed, uint32_t *extra_mem);
+
+/** Checks if any field in the bcmolt_str_100 is out of bounds 
+ *
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_str_100_bounds_check(const bcmolt_str_100 *this);
+
+/** Initializes a bcmolt_str_1000 struct.  This sets all fields to default 
+ * values. 
+ *
+ * \param this Pointer to the structure 
+ */
+void bcmolt_str_1000_set_default(bcmolt_str_1000 *this);
+
+/** Packs a bcmolt_str_1000 to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_str_1000_pack(const bcmolt_str_1000 *this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_str_1000 from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_str_1000_unpack(bcmolt_str_1000 *this, bcmolt_buf *buf, void **extra_mem);
+
+/** Scans past a packed bcmolt_str_1000 struct and collects memory requirements 
+ * above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_str_1000_scan(bcmolt_buf *packed, uint32_t *extra_mem);
+
+/** Checks if any field in the bcmolt_str_1000 is out of bounds 
+ *
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_str_1000_bounds_check(const bcmolt_str_1000 *this);
+
+/** Initializes a bcmolt_str_2000 struct.  This sets all fields to default 
+ * values. 
+ *
+ * \param this Pointer to the structure 
+ */
+void bcmolt_str_2000_set_default(bcmolt_str_2000 *this);
+
+/** Packs a bcmolt_str_2000 to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_str_2000_pack(const bcmolt_str_2000 *this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_str_2000 from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_str_2000_unpack(bcmolt_str_2000 *this, bcmolt_buf *buf, void **extra_mem);
+
+/** Scans past a packed bcmolt_str_2000 struct and collects memory requirements 
+ * above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_str_2000_scan(bcmolt_buf *packed, uint32_t *extra_mem);
+
+/** Checks if any field in the bcmolt_str_2000 is out of bounds 
+ *
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_str_2000_bounds_check(const bcmolt_str_2000 *this);
+
+/** Initializes a bcmolt_str_256 struct.  This sets all fields to default 
+ * values. 
+ *
+ * \param this Pointer to the structure 
+ */
+void bcmolt_str_256_set_default(bcmolt_str_256 *this);
+
+/** Packs a bcmolt_str_256 to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_str_256_pack(const bcmolt_str_256 *this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_str_256 from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_str_256_unpack(bcmolt_str_256 *this, bcmolt_buf *buf, void **extra_mem);
+
+/** Scans past a packed bcmolt_str_256 struct and collects memory requirements 
+ * above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_str_256_scan(bcmolt_buf *packed, uint32_t *extra_mem);
+
+/** Checks if any field in the bcmolt_str_256 is out of bounds 
+ *
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_str_256_bounds_check(const bcmolt_str_256 *this);
+
+/** Initializes a bcmolt_str_64 struct.  This sets all fields to default values. 
+ *
+ * \param this Pointer to the structure 
+ */
+void bcmolt_str_64_set_default(bcmolt_str_64 *this);
+
+/** Packs a bcmolt_str_64 to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_str_64_pack(const bcmolt_str_64 *this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_str_64 from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_str_64_unpack(bcmolt_str_64 *this, bcmolt_buf *buf, void **extra_mem);
+
+/** Scans past a packed bcmolt_str_64 struct and collects memory requirements 
+ * above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_str_64_scan(bcmolt_buf *packed, uint32_t *extra_mem);
+
+/** Checks if any field in the bcmolt_str_64 is out of bounds 
+ *
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_str_64_bounds_check(const bcmolt_str_64 *this);
+
+/** Initializes a bcmolt_sw_error struct.  This sets all fields to default 
+ * values. 
+ *
+ * \param this Pointer to the structure 
+ */
+void bcmolt_sw_error_set_default(bcmolt_sw_error *this);
+
+/** Packs a bcmolt_sw_error to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_sw_error_pack(const bcmolt_sw_error *this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_sw_error from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_sw_error_unpack(bcmolt_sw_error *this, bcmolt_buf *buf, void **extra_mem);
+
+/** Scans past a packed bcmolt_sw_error struct and collects memory requirements 
+ * above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_sw_error_scan(bcmolt_buf *packed, uint32_t *extra_mem);
+
+/** Checks if any field in the bcmolt_sw_error is out of bounds 
+ *
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_sw_error_bounds_check(const bcmolt_sw_error *this);
+
+/** Initializes a bcmolt_system_profile struct.  This sets all fields to default 
+ * values. 
+ *
+ * \param this Pointer to the structure 
+ */
+void bcmolt_system_profile_set_default(bcmolt_system_profile *this);
+
+/** Packs a bcmolt_system_profile to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_system_profile_pack(const bcmolt_system_profile *this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_system_profile from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_system_profile_unpack(bcmolt_system_profile *this, bcmolt_buf *buf, void **extra_mem);
+
+/** Scans past a packed bcmolt_system_profile struct and collects memory 
+ * requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_system_profile_scan(bcmolt_buf *packed, uint32_t *extra_mem);
+
+/** Checks if any field in the bcmolt_system_profile is out of bounds 
+ *
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_system_profile_bounds_check(const bcmolt_system_profile *this);
+
+/** Initializes a bcmolt_trx_delimiter struct.  This sets all fields to default 
+ * values. 
+ *
+ * \param this Pointer to the structure 
+ */
+void bcmolt_trx_delimiter_set_default(bcmolt_trx_delimiter *this);
+
+/** Packs a bcmolt_trx_delimiter to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_trx_delimiter_pack(const bcmolt_trx_delimiter *this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_trx_delimiter from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_trx_delimiter_unpack(bcmolt_trx_delimiter *this, bcmolt_buf *buf, void **extra_mem);
+
+/** Scans past a packed bcmolt_trx_delimiter struct and collects memory 
+ * requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_trx_delimiter_scan(bcmolt_buf *packed, uint32_t *extra_mem);
+
+/** Checks if any field in the bcmolt_trx_delimiter is out of bounds 
+ *
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_trx_delimiter_bounds_check(const bcmolt_trx_delimiter *this);
+
+/** Initializes a bcmolt_trx_energy_detect struct.  This sets all fields to 
+ * default values. 
+ *
+ * \param this Pointer to the structure 
+ */
+void bcmolt_trx_energy_detect_set_default(bcmolt_trx_energy_detect *this);
+
+/** Packs a bcmolt_trx_energy_detect to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_trx_energy_detect_pack(const bcmolt_trx_energy_detect *this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_trx_energy_detect from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_trx_energy_detect_unpack(bcmolt_trx_energy_detect *this, bcmolt_buf *buf, void **extra_mem);
+
+/** Scans past a packed bcmolt_trx_energy_detect struct and collects memory 
+ * requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_trx_energy_detect_scan(bcmolt_buf *packed, uint32_t *extra_mem);
+
+/** Checks if any field in the bcmolt_trx_energy_detect is out of bounds 
+ *
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_trx_energy_detect_bounds_check(const bcmolt_trx_energy_detect *this);
+
+/** Initializes a bcmolt_trx_preamble struct.  This sets all fields to default 
+ * values. 
+ *
+ * \param this Pointer to the structure 
+ */
+void bcmolt_trx_preamble_set_default(bcmolt_trx_preamble *this);
+
+/** Packs a bcmolt_trx_preamble to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_trx_preamble_pack(const bcmolt_trx_preamble *this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_trx_preamble from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_trx_preamble_unpack(bcmolt_trx_preamble *this, bcmolt_buf *buf, void **extra_mem);
+
+/** Scans past a packed bcmolt_trx_preamble struct and collects memory 
+ * requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_trx_preamble_scan(bcmolt_buf *packed, uint32_t *extra_mem);
+
+/** Checks if any field in the bcmolt_trx_preamble is out of bounds 
+ *
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_trx_preamble_bounds_check(const bcmolt_trx_preamble *this);
+
+/** Initializes a bcmolt_trx_rx_configuration struct.  This sets all fields to 
+ * default values. 
+ *
+ * \param this Pointer to the structure 
+ */
+void bcmolt_trx_rx_configuration_set_default(bcmolt_trx_rx_configuration *this);
+
+/** Packs a bcmolt_trx_rx_configuration to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_trx_rx_configuration_pack(const bcmolt_trx_rx_configuration *this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_trx_rx_configuration from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_trx_rx_configuration_unpack(bcmolt_trx_rx_configuration *this, bcmolt_buf *buf, void **extra_mem);
+
+/** Scans past a packed bcmolt_trx_rx_configuration struct and collects memory 
+ * requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_trx_rx_configuration_scan(bcmolt_buf *packed, uint32_t *extra_mem);
+
+/** Checks if any field in the bcmolt_trx_rx_configuration is out of bounds 
+ *
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_trx_rx_configuration_bounds_check(const bcmolt_trx_rx_configuration *this);
+
+/** Initializes a bcmolt_u32_list_u32_max_500_hex struct.  This sets all fields 
+ * to default values. 
+ *
+ * \param this Pointer to the structure 
+ */
+void bcmolt_u32_list_u32_max_500_hex_set_default(bcmolt_u32_list_u32_max_500_hex *this);
+
+/** Packs a bcmolt_u32_list_u32_max_500_hex to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_u32_list_u32_max_500_hex_pack(const bcmolt_u32_list_u32_max_500_hex *this, bcmolt_buf *buf);
+
+/** Gets the number of bytes that a bcmolt_u32_list_u32_max_500_hex would occupy 
+ * on the wire 
+ *
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_u32_list_u32_max_500_hex_get_packed_length(const bcmolt_u32_list_u32_max_500_hex *this);
+
+/** Unpacks a bcmolt_u32_list_u32_max_500_hex from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_u32_list_u32_max_500_hex_unpack(bcmolt_u32_list_u32_max_500_hex *this, bcmolt_buf *buf, void **extra_mem);
+
+/** Scans past a packed bcmolt_u32_list_u32_max_500_hex struct and collects 
+ * memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_u32_list_u32_max_500_hex_scan(bcmolt_buf *packed, uint32_t *extra_mem);
+
+/** Checks if any field in the bcmolt_u32_list_u32_max_500_hex is out of bounds 
+ *
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_u32_list_u32_max_500_hex_bounds_check(const bcmolt_u32_list_u32_max_500_hex *this);
+
+/** Initializes a bcmolt_u8_list_u16_hex struct.  This sets all fields to 
+ * default values. 
+ *
+ * \param this Pointer to the structure 
+ */
+void bcmolt_u8_list_u16_hex_set_default(bcmolt_u8_list_u16_hex *this);
+
+/** Packs a bcmolt_u8_list_u16_hex to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_u8_list_u16_hex_pack(const bcmolt_u8_list_u16_hex *this, bcmolt_buf *buf);
+
+/** Gets the number of bytes that a bcmolt_u8_list_u16_hex would occupy on the 
+ * wire 
+ *
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_u8_list_u16_hex_get_packed_length(const bcmolt_u8_list_u16_hex *this);
+
+/** Unpacks a bcmolt_u8_list_u16_hex from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_u8_list_u16_hex_unpack(bcmolt_u8_list_u16_hex *this, bcmolt_buf *buf, void **extra_mem);
+
+/** Scans past a packed bcmolt_u8_list_u16_hex struct and collects memory 
+ * requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_u8_list_u16_hex_scan(bcmolt_buf *packed, uint32_t *extra_mem);
+
+/** Checks if any field in the bcmolt_u8_list_u16_hex is out of bounds 
+ *
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_u8_list_u16_hex_bounds_check(const bcmolt_u8_list_u16_hex *this);
+
+/** Initializes a bcmolt_u8_list_u32 struct.  This sets all fields to default 
+ * values. 
+ *
+ * \param this Pointer to the structure 
+ */
+void bcmolt_u8_list_u32_set_default(bcmolt_u8_list_u32 *this);
+
+/** Packs a bcmolt_u8_list_u32 to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_u8_list_u32_pack(const bcmolt_u8_list_u32 *this, bcmolt_buf *buf);
+
+/** Gets the number of bytes that a bcmolt_u8_list_u32 would occupy on the wire 
+ *
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_u8_list_u32_get_packed_length(const bcmolt_u8_list_u32 *this);
+
+/** Unpacks a bcmolt_u8_list_u32 from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_u8_list_u32_unpack(bcmolt_u8_list_u32 *this, bcmolt_buf *buf, void **extra_mem);
+
+/** Scans past a packed bcmolt_u8_list_u32 struct and collects memory 
+ * requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_u8_list_u32_scan(bcmolt_buf *packed, uint32_t *extra_mem);
+
+/** Checks if any field in the bcmolt_u8_list_u32 is out of bounds 
+ *
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_u8_list_u32_bounds_check(const bcmolt_u8_list_u32 *this);
+
+/** Initializes a bcmolt_u8_list_u32_max_2048 struct.  This sets all fields to 
+ * default values. 
+ *
+ * \param this Pointer to the structure 
+ */
+void bcmolt_u8_list_u32_max_2048_set_default(bcmolt_u8_list_u32_max_2048 *this);
+
+/** Packs a bcmolt_u8_list_u32_max_2048 to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_u8_list_u32_max_2048_pack(const bcmolt_u8_list_u32_max_2048 *this, bcmolt_buf *buf);
+
+/** Gets the number of bytes that a bcmolt_u8_list_u32_max_2048 would occupy on 
+ * the wire 
+ *
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_u8_list_u32_max_2048_get_packed_length(const bcmolt_u8_list_u32_max_2048 *this);
+
+/** Unpacks a bcmolt_u8_list_u32_max_2048 from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_u8_list_u32_max_2048_unpack(bcmolt_u8_list_u32_max_2048 *this, bcmolt_buf *buf, void **extra_mem);
+
+/** Scans past a packed bcmolt_u8_list_u32_max_2048 struct and collects memory 
+ * requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_u8_list_u32_max_2048_scan(bcmolt_buf *packed, uint32_t *extra_mem);
+
+/** Checks if any field in the bcmolt_u8_list_u32_max_2048 is out of bounds 
+ *
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_u8_list_u32_max_2048_bounds_check(const bcmolt_u8_list_u32_max_2048 *this);
+
+/** Initializes a bcmolt_ubd_info struct.  This sets all fields to default 
+ * values. 
+ *
+ * \param this Pointer to the structure 
+ */
+void bcmolt_ubd_info_set_default(bcmolt_ubd_info *this);
+
+/** Packs a bcmolt_ubd_info to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_ubd_info_pack(const bcmolt_ubd_info *this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_ubd_info from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_ubd_info_unpack(bcmolt_ubd_info *this, bcmolt_buf *buf, void **extra_mem);
+
+/** Scans past a packed bcmolt_ubd_info struct and collects memory requirements 
+ * above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_ubd_info_scan(bcmolt_buf *packed, uint32_t *extra_mem);
+
+/** Checks if any field in the bcmolt_ubd_info is out of bounds 
+ *
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_ubd_info_bounds_check(const bcmolt_ubd_info *this);
+
+/** Initializes a bcmolt_upstream_bandwidth_distribution struct.  This sets all 
+ * fields to default values. 
+ *
+ * \param this Pointer to the structure 
+ */
+void bcmolt_upstream_bandwidth_distribution_set_default(bcmolt_upstream_bandwidth_distribution *this);
+
+/** Packs a bcmolt_upstream_bandwidth_distribution to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_upstream_bandwidth_distribution_pack(const bcmolt_upstream_bandwidth_distribution *this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_upstream_bandwidth_distribution from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_upstream_bandwidth_distribution_unpack(bcmolt_upstream_bandwidth_distribution *this, bcmolt_buf *buf, void **extra_mem);
+
+/** Scans past a packed bcmolt_upstream_bandwidth_distribution struct and 
+ * collects memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_upstream_bandwidth_distribution_scan(bcmolt_buf *packed, uint32_t *extra_mem);
+
+/** Checks if any field in the bcmolt_upstream_bandwidth_distribution is out of 
+ * bounds 
+ *
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_upstream_bandwidth_distribution_bounds_check(const bcmolt_upstream_bandwidth_distribution *this);
+
+/** Initializes a bcmolt_vlan_tag struct.  This sets all fields to default 
+ * values. 
+ *
+ * \param this Pointer to the structure 
+ */
+void bcmolt_vlan_tag_set_default(bcmolt_vlan_tag *this);
+
+/** Packs a bcmolt_vlan_tag to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_vlan_tag_pack(const bcmolt_vlan_tag *this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_vlan_tag from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_vlan_tag_unpack(bcmolt_vlan_tag *this, bcmolt_buf *buf, void **extra_mem);
+
+/** Scans past a packed bcmolt_vlan_tag struct and collects memory requirements 
+ * above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_vlan_tag_scan(bcmolt_buf *packed, uint32_t *extra_mem);
+
+/** Checks if any field in the bcmolt_vlan_tag is out of bounds 
+ *
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_vlan_tag_bounds_check(const bcmolt_vlan_tag *this);
+
+/** Initializes a bcmolt_xgpon_alloc_with_state struct.  This sets all fields to 
+ * default values. 
+ *
+ * \param this Pointer to the structure 
+ */
+void bcmolt_xgpon_alloc_with_state_set_default(bcmolt_xgpon_alloc_with_state *this);
+
+/** Packs a bcmolt_xgpon_alloc_with_state to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_alloc_with_state_pack(const bcmolt_xgpon_alloc_with_state *this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_xgpon_alloc_with_state from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_alloc_with_state_unpack(bcmolt_xgpon_alloc_with_state *this, bcmolt_buf *buf, void **extra_mem);
+
+/** Scans past a packed bcmolt_xgpon_alloc_with_state struct and collects memory 
+ * requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_xgpon_alloc_with_state_scan(bcmolt_buf *packed, uint32_t *extra_mem);
+
+/** Checks if any field in the bcmolt_xgpon_alloc_with_state is out of bounds 
+ *
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_alloc_with_state_bounds_check(const bcmolt_xgpon_alloc_with_state *this);
+
+/** Initializes a bcmolt_xgpon_alloc_with_state_list_u16_max_32 struct.  This 
+ * sets all fields to default values. 
+ *
+ * \param this Pointer to the structure 
+ */
+void bcmolt_xgpon_alloc_with_state_list_u16_max_32_set_default(bcmolt_xgpon_alloc_with_state_list_u16_max_32 *this);
+
+/** Packs a bcmolt_xgpon_alloc_with_state_list_u16_max_32 to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_alloc_with_state_list_u16_max_32_pack(const bcmolt_xgpon_alloc_with_state_list_u16_max_32 *this, bcmolt_buf *buf);
+
+/** Gets the number of bytes that a 
+ * bcmolt_xgpon_alloc_with_state_list_u16_max_32 would occupy on the wire 
+ *
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_xgpon_alloc_with_state_list_u16_max_32_get_packed_length(const bcmolt_xgpon_alloc_with_state_list_u16_max_32 *this);
+
+/** Unpacks a bcmolt_xgpon_alloc_with_state_list_u16_max_32 from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_alloc_with_state_list_u16_max_32_unpack(bcmolt_xgpon_alloc_with_state_list_u16_max_32 *this, bcmolt_buf *buf, void **extra_mem);
+
+/** Scans past a packed bcmolt_xgpon_alloc_with_state_list_u16_max_32 struct and 
+ * collects memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_xgpon_alloc_with_state_list_u16_max_32_scan(bcmolt_buf *packed, uint32_t *extra_mem);
+
+/** Checks if any field in the bcmolt_xgpon_alloc_with_state_list_u16_max_32 is 
+ * out of bounds 
+ *
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_alloc_with_state_list_u16_max_32_bounds_check(const bcmolt_xgpon_alloc_with_state_list_u16_max_32 *this);
+
+/** Initializes a bcmolt_xgpon_ed_state struct.  This sets all fields to default 
+ * values. 
+ *
+ * \param this Pointer to the structure 
+ */
+void bcmolt_xgpon_ed_state_set_default(bcmolt_xgpon_ed_state *this);
+
+/** Packs a bcmolt_xgpon_ed_state to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_ed_state_pack(const bcmolt_xgpon_ed_state *this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_xgpon_ed_state from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_ed_state_unpack(bcmolt_xgpon_ed_state *this, bcmolt_buf *buf, void **extra_mem);
+
+/** Scans past a packed bcmolt_xgpon_ed_state struct and collects memory 
+ * requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_xgpon_ed_state_scan(bcmolt_buf *packed, uint32_t *extra_mem);
+
+/** Checks if any field in the bcmolt_xgpon_ed_state is out of bounds 
+ *
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_ed_state_bounds_check(const bcmolt_xgpon_ed_state *this);
+
+/** Initializes a bcmolt_xgpon_gem_id_list_u8_max_16 struct.  This sets all 
+ * fields to default values. 
+ *
+ * \param this Pointer to the structure 
+ */
+void bcmolt_xgpon_gem_id_list_u8_max_16_set_default(bcmolt_xgpon_gem_id_list_u8_max_16 *this);
+
+/** Packs a bcmolt_xgpon_gem_id_list_u8_max_16 to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_gem_id_list_u8_max_16_pack(const bcmolt_xgpon_gem_id_list_u8_max_16 *this, bcmolt_buf *buf);
+
+/** Gets the number of bytes that a bcmolt_xgpon_gem_id_list_u8_max_16 would 
+ * occupy on the wire 
+ *
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_xgpon_gem_id_list_u8_max_16_get_packed_length(const bcmolt_xgpon_gem_id_list_u8_max_16 *this);
+
+/** Unpacks a bcmolt_xgpon_gem_id_list_u8_max_16 from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_gem_id_list_u8_max_16_unpack(bcmolt_xgpon_gem_id_list_u8_max_16 *this, bcmolt_buf *buf, void **extra_mem);
+
+/** Scans past a packed bcmolt_xgpon_gem_id_list_u8_max_16 struct and collects 
+ * memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_xgpon_gem_id_list_u8_max_16_scan(bcmolt_buf *packed, uint32_t *extra_mem);
+
+/** Checks if any field in the bcmolt_xgpon_gem_id_list_u8_max_16 is out of 
+ * bounds 
+ *
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_gem_id_list_u8_max_16_bounds_check(const bcmolt_xgpon_gem_id_list_u8_max_16 *this);
+
+/** Initializes a bcmolt_xgpon_gem_port_with_state struct.  This sets all fields 
+ * to default values. 
+ *
+ * \param this Pointer to the structure 
+ */
+void bcmolt_xgpon_gem_port_with_state_set_default(bcmolt_xgpon_gem_port_with_state *this);
+
+/** Packs a bcmolt_xgpon_gem_port_with_state to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_gem_port_with_state_pack(const bcmolt_xgpon_gem_port_with_state *this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_xgpon_gem_port_with_state from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_gem_port_with_state_unpack(bcmolt_xgpon_gem_port_with_state *this, bcmolt_buf *buf, void **extra_mem);
+
+/** Scans past a packed bcmolt_xgpon_gem_port_with_state struct and collects 
+ * memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_xgpon_gem_port_with_state_scan(bcmolt_buf *packed, uint32_t *extra_mem);
+
+/** Checks if any field in the bcmolt_xgpon_gem_port_with_state is out of bounds 
+ *
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_gem_port_with_state_bounds_check(const bcmolt_xgpon_gem_port_with_state *this);
+
+/** Initializes a bcmolt_xgpon_gem_port_with_state_list_u16_max_128 struct.  
+ * This sets all fields to default values. 
+ *
+ * \param this Pointer to the structure 
+ */
+void bcmolt_xgpon_gem_port_with_state_list_u16_max_128_set_default(bcmolt_xgpon_gem_port_with_state_list_u16_max_128 *this);
+
+/** Packs a bcmolt_xgpon_gem_port_with_state_list_u16_max_128 to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_gem_port_with_state_list_u16_max_128_pack(const bcmolt_xgpon_gem_port_with_state_list_u16_max_128 *this, bcmolt_buf *buf);
+
+/** Gets the number of bytes that a 
+ * bcmolt_xgpon_gem_port_with_state_list_u16_max_128 would occupy on the wire 
+ *
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_xgpon_gem_port_with_state_list_u16_max_128_get_packed_length(const bcmolt_xgpon_gem_port_with_state_list_u16_max_128 *this);
+
+/** Unpacks a bcmolt_xgpon_gem_port_with_state_list_u16_max_128 from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_gem_port_with_state_list_u16_max_128_unpack(bcmolt_xgpon_gem_port_with_state_list_u16_max_128 *this, bcmolt_buf *buf, void **extra_mem);
+
+/** Scans past a packed bcmolt_xgpon_gem_port_with_state_list_u16_max_128 struct 
+ * and collects memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_xgpon_gem_port_with_state_list_u16_max_128_scan(bcmolt_buf *packed, uint32_t *extra_mem);
+
+/** Checks if any field in the bcmolt_xgpon_gem_port_with_state_list_u16_max_128 
+ * is out of bounds 
+ *
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_gem_port_with_state_list_u16_max_128_bounds_check(const bcmolt_xgpon_gem_port_with_state_list_u16_max_128 *this);
+
+/** Initializes a bcmolt_xgpon_gem_port_with_state_list_u16_max_256 struct.  
+ * This sets all fields to default values. 
+ *
+ * \param this Pointer to the structure 
+ */
+void bcmolt_xgpon_gem_port_with_state_list_u16_max_256_set_default(bcmolt_xgpon_gem_port_with_state_list_u16_max_256 *this);
+
+/** Packs a bcmolt_xgpon_gem_port_with_state_list_u16_max_256 to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_gem_port_with_state_list_u16_max_256_pack(const bcmolt_xgpon_gem_port_with_state_list_u16_max_256 *this, bcmolt_buf *buf);
+
+/** Gets the number of bytes that a 
+ * bcmolt_xgpon_gem_port_with_state_list_u16_max_256 would occupy on the wire 
+ *
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_xgpon_gem_port_with_state_list_u16_max_256_get_packed_length(const bcmolt_xgpon_gem_port_with_state_list_u16_max_256 *this);
+
+/** Unpacks a bcmolt_xgpon_gem_port_with_state_list_u16_max_256 from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_gem_port_with_state_list_u16_max_256_unpack(bcmolt_xgpon_gem_port_with_state_list_u16_max_256 *this, bcmolt_buf *buf, void **extra_mem);
+
+/** Scans past a packed bcmolt_xgpon_gem_port_with_state_list_u16_max_256 struct 
+ * and collects memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_xgpon_gem_port_with_state_list_u16_max_256_scan(bcmolt_buf *packed, uint32_t *extra_mem);
+
+/** Checks if any field in the bcmolt_xgpon_gem_port_with_state_list_u16_max_256 
+ * is out of bounds 
+ *
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_gem_port_with_state_list_u16_max_256_bounds_check(const bcmolt_xgpon_gem_port_with_state_list_u16_max_256 *this);
+
+/** Initializes a bcmolt_xgpon_key_exchange struct.  This sets all fields to 
+ * default values. 
+ *
+ * \param this Pointer to the structure 
+ */
+void bcmolt_xgpon_key_exchange_set_default(bcmolt_xgpon_key_exchange *this);
+
+/** Packs a bcmolt_xgpon_key_exchange to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_key_exchange_pack(const bcmolt_xgpon_key_exchange *this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_xgpon_key_exchange from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_key_exchange_unpack(bcmolt_xgpon_key_exchange *this, bcmolt_buf *buf, void **extra_mem);
+
+/** Scans past a packed bcmolt_xgpon_key_exchange struct and collects memory 
+ * requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_xgpon_key_exchange_scan(bcmolt_buf *packed, uint32_t *extra_mem);
+
+/** Checks if any field in the bcmolt_xgpon_key_exchange is out of bounds 
+ *
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_key_exchange_bounds_check(const bcmolt_xgpon_key_exchange *this);
+
+/** Initializes a bcmolt_xgpon_multicast_key struct.  This sets all fields to 
+ * default values. 
+ *
+ * \param this Pointer to the structure 
+ */
+void bcmolt_xgpon_multicast_key_set_default(bcmolt_xgpon_multicast_key *this);
+
+/** Packs a bcmolt_xgpon_multicast_key to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_multicast_key_pack(const bcmolt_xgpon_multicast_key *this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_xgpon_multicast_key from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_multicast_key_unpack(bcmolt_xgpon_multicast_key *this, bcmolt_buf *buf, void **extra_mem);
+
+/** Scans past a packed bcmolt_xgpon_multicast_key struct and collects memory 
+ * requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_xgpon_multicast_key_scan(bcmolt_buf *packed, uint32_t *extra_mem);
+
+/** Checks if any field in the bcmolt_xgpon_multicast_key is out of bounds 
+ *
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_multicast_key_bounds_check(const bcmolt_xgpon_multicast_key *this);
+
+/** Initializes a bcmolt_xgpon_ni_debug struct.  This sets all fields to default 
+ * values. 
+ *
+ * \param this Pointer to the structure 
+ */
+void bcmolt_xgpon_ni_debug_set_default(bcmolt_xgpon_ni_debug *this);
+
+/** Packs a bcmolt_xgpon_ni_debug to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_ni_debug_pack(const bcmolt_xgpon_ni_debug *this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_xgpon_ni_debug from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_ni_debug_unpack(bcmolt_xgpon_ni_debug *this, bcmolt_buf *buf, void **extra_mem);
+
+/** Scans past a packed bcmolt_xgpon_ni_debug struct and collects memory 
+ * requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_xgpon_ni_debug_scan(bcmolt_buf *packed, uint32_t *extra_mem);
+
+/** Checks if any field in the bcmolt_xgpon_ni_debug is out of bounds 
+ *
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_ni_debug_bounds_check(const bcmolt_xgpon_ni_debug *this);
+
+/** Initializes a bcmolt_xgpon_onu_activation struct.  This sets all fields to 
+ * default values. 
+ *
+ * \param this Pointer to the structure 
+ */
+void bcmolt_xgpon_onu_activation_set_default(bcmolt_xgpon_onu_activation *this);
+
+/** Packs a bcmolt_xgpon_onu_activation to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_onu_activation_pack(const bcmolt_xgpon_onu_activation *this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_xgpon_onu_activation from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_onu_activation_unpack(bcmolt_xgpon_onu_activation *this, bcmolt_buf *buf, void **extra_mem);
+
+/** Scans past a packed bcmolt_xgpon_onu_activation struct and collects memory 
+ * requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_xgpon_onu_activation_scan(bcmolt_buf *packed, uint32_t *extra_mem);
+
+/** Checks if any field in the bcmolt_xgpon_onu_activation is out of bounds 
+ *
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_onu_activation_bounds_check(const bcmolt_xgpon_onu_activation *this);
+
+/** Initializes a bcmolt_xgpon_onu_aes_key struct.  This sets all fields to 
+ * default values. 
+ *
+ * \param this Pointer to the structure 
+ */
+void bcmolt_xgpon_onu_aes_key_set_default(bcmolt_xgpon_onu_aes_key *this);
+
+/** Packs a bcmolt_xgpon_onu_aes_key to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_onu_aes_key_pack(const bcmolt_xgpon_onu_aes_key *this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_xgpon_onu_aes_key from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_onu_aes_key_unpack(bcmolt_xgpon_onu_aes_key *this, bcmolt_buf *buf, void **extra_mem);
+
+/** Scans past a packed bcmolt_xgpon_onu_aes_key struct and collects memory 
+ * requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_xgpon_onu_aes_key_scan(bcmolt_buf *packed, uint32_t *extra_mem);
+
+/** Checks if any field in the bcmolt_xgpon_onu_aes_key is out of bounds 
+ *
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_onu_aes_key_bounds_check(const bcmolt_xgpon_onu_aes_key *this);
+
+/** Initializes a bcmolt_xgpon_onu_alarm_state struct.  This sets all fields to 
+ * default values. 
+ *
+ * \param this Pointer to the structure 
+ */
+void bcmolt_xgpon_onu_alarm_state_set_default(bcmolt_xgpon_onu_alarm_state *this);
+
+/** Packs a bcmolt_xgpon_onu_alarm_state to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_onu_alarm_state_pack(const bcmolt_xgpon_onu_alarm_state *this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_xgpon_onu_alarm_state from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_onu_alarm_state_unpack(bcmolt_xgpon_onu_alarm_state *this, bcmolt_buf *buf, void **extra_mem);
+
+/** Scans past a packed bcmolt_xgpon_onu_alarm_state struct and collects memory 
+ * requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_xgpon_onu_alarm_state_scan(bcmolt_buf *packed, uint32_t *extra_mem);
+
+/** Checks if any field in the bcmolt_xgpon_onu_alarm_state is out of bounds 
+ *
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_onu_alarm_state_bounds_check(const bcmolt_xgpon_onu_alarm_state *this);
+
+/** Initializes a bcmolt_xgpon_onu_alarms struct.  This sets all fields to 
+ * default values. 
+ *
+ * \param this Pointer to the structure 
+ */
+void bcmolt_xgpon_onu_alarms_set_default(bcmolt_xgpon_onu_alarms *this);
+
+/** Packs a bcmolt_xgpon_onu_alarms to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_onu_alarms_pack(const bcmolt_xgpon_onu_alarms *this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_xgpon_onu_alarms from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_onu_alarms_unpack(bcmolt_xgpon_onu_alarms *this, bcmolt_buf *buf, void **extra_mem);
+
+/** Scans past a packed bcmolt_xgpon_onu_alarms struct and collects memory 
+ * requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_xgpon_onu_alarms_scan(bcmolt_buf *packed, uint32_t *extra_mem);
+
+/** Checks if any field in the bcmolt_xgpon_onu_alarms is out of bounds 
+ *
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_onu_alarms_bounds_check(const bcmolt_xgpon_onu_alarms *this);
+
+/** Initializes a bcmolt_xgpon_onu_alarms_thresholds struct.  This sets all 
+ * fields to default values. 
+ *
+ * \param this Pointer to the structure 
+ */
+void bcmolt_xgpon_onu_alarms_thresholds_set_default(bcmolt_xgpon_onu_alarms_thresholds *this);
+
+/** Packs a bcmolt_xgpon_onu_alarms_thresholds to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_onu_alarms_thresholds_pack(const bcmolt_xgpon_onu_alarms_thresholds *this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_xgpon_onu_alarms_thresholds from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_onu_alarms_thresholds_unpack(bcmolt_xgpon_onu_alarms_thresholds *this, bcmolt_buf *buf, void **extra_mem);
+
+/** Scans past a packed bcmolt_xgpon_onu_alarms_thresholds struct and collects 
+ * memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_xgpon_onu_alarms_thresholds_scan(bcmolt_buf *packed, uint32_t *extra_mem);
+
+/** Checks if any field in the bcmolt_xgpon_onu_alarms_thresholds is out of 
+ * bounds 
+ *
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_onu_alarms_thresholds_bounds_check(const bcmolt_xgpon_onu_alarms_thresholds *this);
+
+/** Initializes a bcmolt_xgpon_onu_eqd struct.  This sets all fields to default 
+ * values. 
+ *
+ * \param this Pointer to the structure 
+ */
+void bcmolt_xgpon_onu_eqd_set_default(bcmolt_xgpon_onu_eqd *this);
+
+/** Packs a bcmolt_xgpon_onu_eqd to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_onu_eqd_pack(const bcmolt_xgpon_onu_eqd *this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_xgpon_onu_eqd from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_onu_eqd_unpack(bcmolt_xgpon_onu_eqd *this, bcmolt_buf *buf, void **extra_mem);
+
+/** Scans past a packed bcmolt_xgpon_onu_eqd struct and collects memory 
+ * requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_xgpon_onu_eqd_scan(bcmolt_buf *packed, uint32_t *extra_mem);
+
+/** Checks if any field in the bcmolt_xgpon_onu_eqd is out of bounds 
+ *
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_onu_eqd_bounds_check(const bcmolt_xgpon_onu_eqd *this);
+
+/** Initializes a bcmolt_xgpon_onu_eqd_list_u32 struct.  This sets all fields to 
+ * default values. 
+ *
+ * \param this Pointer to the structure 
+ */
+void bcmolt_xgpon_onu_eqd_list_u32_set_default(bcmolt_xgpon_onu_eqd_list_u32 *this);
+
+/** Packs a bcmolt_xgpon_onu_eqd_list_u32 to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_onu_eqd_list_u32_pack(const bcmolt_xgpon_onu_eqd_list_u32 *this, bcmolt_buf *buf);
+
+/** Gets the number of bytes that a bcmolt_xgpon_onu_eqd_list_u32 would occupy 
+ * on the wire 
+ *
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_xgpon_onu_eqd_list_u32_get_packed_length(const bcmolt_xgpon_onu_eqd_list_u32 *this);
+
+/** Unpacks a bcmolt_xgpon_onu_eqd_list_u32 from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_onu_eqd_list_u32_unpack(bcmolt_xgpon_onu_eqd_list_u32 *this, bcmolt_buf *buf, void **extra_mem);
+
+/** Scans past a packed bcmolt_xgpon_onu_eqd_list_u32 struct and collects memory 
+ * requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_xgpon_onu_eqd_list_u32_scan(bcmolt_buf *packed, uint32_t *extra_mem);
+
+/** Checks if any field in the bcmolt_xgpon_onu_eqd_list_u32 is out of bounds 
+ *
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_onu_eqd_list_u32_bounds_check(const bcmolt_xgpon_onu_eqd_list_u32 *this);
+
+/** Initializes a bcmolt_xgpon_onu_registration_keys struct.  This sets all 
+ * fields to default values. 
+ *
+ * \param this Pointer to the structure 
+ */
+void bcmolt_xgpon_onu_registration_keys_set_default(bcmolt_xgpon_onu_registration_keys *this);
+
+/** Packs a bcmolt_xgpon_onu_registration_keys to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_onu_registration_keys_pack(const bcmolt_xgpon_onu_registration_keys *this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_xgpon_onu_registration_keys from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_onu_registration_keys_unpack(bcmolt_xgpon_onu_registration_keys *this, bcmolt_buf *buf, void **extra_mem);
+
+/** Scans past a packed bcmolt_xgpon_onu_registration_keys struct and collects 
+ * memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_xgpon_onu_registration_keys_scan(bcmolt_buf *packed, uint32_t *extra_mem);
+
+/** Checks if any field in the bcmolt_xgpon_onu_registration_keys is out of 
+ * bounds 
+ *
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_onu_registration_keys_bounds_check(const bcmolt_xgpon_onu_registration_keys *this);
+
+/** Initializes a bcmolt_xgpon_onu_with_state struct.  This sets all fields to 
+ * default values. 
+ *
+ * \param this Pointer to the structure 
+ */
+void bcmolt_xgpon_onu_with_state_set_default(bcmolt_xgpon_onu_with_state *this);
+
+/** Packs a bcmolt_xgpon_onu_with_state to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_onu_with_state_pack(const bcmolt_xgpon_onu_with_state *this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_xgpon_onu_with_state from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_onu_with_state_unpack(bcmolt_xgpon_onu_with_state *this, bcmolt_buf *buf, void **extra_mem);
+
+/** Scans past a packed bcmolt_xgpon_onu_with_state struct and collects memory 
+ * requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_xgpon_onu_with_state_scan(bcmolt_buf *packed, uint32_t *extra_mem);
+
+/** Checks if any field in the bcmolt_xgpon_onu_with_state is out of bounds 
+ *
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_onu_with_state_bounds_check(const bcmolt_xgpon_onu_with_state *this);
+
+/** Initializes a bcmolt_xgpon_onu_with_state_list_u16_max_510 struct.  This 
+ * sets all fields to default values. 
+ *
+ * \param this Pointer to the structure 
+ */
+void bcmolt_xgpon_onu_with_state_list_u16_max_510_set_default(bcmolt_xgpon_onu_with_state_list_u16_max_510 *this);
+
+/** Packs a bcmolt_xgpon_onu_with_state_list_u16_max_510 to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_onu_with_state_list_u16_max_510_pack(const bcmolt_xgpon_onu_with_state_list_u16_max_510 *this, bcmolt_buf *buf);
+
+/** Gets the number of bytes that a bcmolt_xgpon_onu_with_state_list_u16_max_510 
+ * would occupy on the wire 
+ *
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_xgpon_onu_with_state_list_u16_max_510_get_packed_length(const bcmolt_xgpon_onu_with_state_list_u16_max_510 *this);
+
+/** Unpacks a bcmolt_xgpon_onu_with_state_list_u16_max_510 from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_onu_with_state_list_u16_max_510_unpack(bcmolt_xgpon_onu_with_state_list_u16_max_510 *this, bcmolt_buf *buf, void **extra_mem);
+
+/** Scans past a packed bcmolt_xgpon_onu_with_state_list_u16_max_510 struct and 
+ * collects memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_xgpon_onu_with_state_list_u16_max_510_scan(bcmolt_buf *packed, uint32_t *extra_mem);
+
+/** Checks if any field in the bcmolt_xgpon_onu_with_state_list_u16_max_510 is 
+ * out of bounds 
+ *
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_onu_with_state_list_u16_max_510_bounds_check(const bcmolt_xgpon_onu_with_state_list_u16_max_510 *this);
+
+/** Initializes a bcmolt_xgpon_ploam_handling struct.  This sets all fields to 
+ * default values. 
+ *
+ * \param this Pointer to the structure 
+ */
+void bcmolt_xgpon_ploam_handling_set_default(bcmolt_xgpon_ploam_handling *this);
+
+/** Packs a bcmolt_xgpon_ploam_handling to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_ploam_handling_pack(const bcmolt_xgpon_ploam_handling *this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_xgpon_ploam_handling from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_ploam_handling_unpack(bcmolt_xgpon_ploam_handling *this, bcmolt_buf *buf, void **extra_mem);
+
+/** Scans past a packed bcmolt_xgpon_ploam_handling struct and collects memory 
+ * requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_xgpon_ploam_handling_scan(bcmolt_buf *packed, uint32_t *extra_mem);
+
+/** Checks if any field in the bcmolt_xgpon_ploam_handling is out of bounds 
+ *
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_ploam_handling_bounds_check(const bcmolt_xgpon_ploam_handling *this);
+
+/** Initializes a bcmolt_xgpon_protection_switching struct.  This sets all 
+ * fields to default values. 
+ *
+ * \param this Pointer to the structure 
+ */
+void bcmolt_xgpon_protection_switching_set_default(bcmolt_xgpon_protection_switching *this);
+
+/** Packs a bcmolt_xgpon_protection_switching to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_protection_switching_pack(const bcmolt_xgpon_protection_switching *this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_xgpon_protection_switching from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_protection_switching_unpack(bcmolt_xgpon_protection_switching *this, bcmolt_buf *buf, void **extra_mem);
+
+/** Scans past a packed bcmolt_xgpon_protection_switching struct and collects 
+ * memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_xgpon_protection_switching_scan(bcmolt_buf *packed, uint32_t *extra_mem);
+
+/** Checks if any field in the bcmolt_xgpon_protection_switching is out of 
+ * bounds 
+ *
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_protection_switching_bounds_check(const bcmolt_xgpon_protection_switching *this);
+
+/** Initializes a bcmolt_xgpon_protection_switching_debug struct.  This sets all 
+ * fields to default values. 
+ *
+ * \param this Pointer to the structure 
+ */
+void bcmolt_xgpon_protection_switching_debug_set_default(bcmolt_xgpon_protection_switching_debug *this);
+
+/** Packs a bcmolt_xgpon_protection_switching_debug to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_protection_switching_debug_pack(const bcmolt_xgpon_protection_switching_debug *this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_xgpon_protection_switching_debug from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_protection_switching_debug_unpack(bcmolt_xgpon_protection_switching_debug *this, bcmolt_buf *buf, void **extra_mem);
+
+/** Scans past a packed bcmolt_xgpon_protection_switching_debug struct and 
+ * collects memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_xgpon_protection_switching_debug_scan(bcmolt_buf *packed, uint32_t *extra_mem);
+
+/** Checks if any field in the bcmolt_xgpon_protection_switching_debug is out of 
+ * bounds 
+ *
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_protection_switching_debug_bounds_check(const bcmolt_xgpon_protection_switching_debug *this);
+
+/** Initializes a bcmolt_xgpon_rssi_normal_config struct.  This sets all fields 
+ * to default values. 
+ *
+ * \param this Pointer to the structure 
+ */
+void bcmolt_xgpon_rssi_normal_config_set_default(bcmolt_xgpon_rssi_normal_config *this);
+
+/** Packs a bcmolt_xgpon_rssi_normal_config to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_rssi_normal_config_pack(const bcmolt_xgpon_rssi_normal_config *this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_xgpon_rssi_normal_config from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_rssi_normal_config_unpack(bcmolt_xgpon_rssi_normal_config *this, bcmolt_buf *buf, void **extra_mem);
+
+/** Scans past a packed bcmolt_xgpon_rssi_normal_config struct and collects 
+ * memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_xgpon_rssi_normal_config_scan(bcmolt_buf *packed, uint32_t *extra_mem);
+
+/** Checks if any field in the bcmolt_xgpon_rssi_normal_config is out of bounds 
+ *
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_rssi_normal_config_bounds_check(const bcmolt_xgpon_rssi_normal_config *this);
+
+/** Initializes a bcmolt_xgpon_rssi_ranging_config struct.  This sets all fields 
+ * to default values. 
+ *
+ * \param this Pointer to the structure 
+ */
+void bcmolt_xgpon_rssi_ranging_config_set_default(bcmolt_xgpon_rssi_ranging_config *this);
+
+/** Packs a bcmolt_xgpon_rssi_ranging_config to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_rssi_ranging_config_pack(const bcmolt_xgpon_rssi_ranging_config *this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_xgpon_rssi_ranging_config from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_rssi_ranging_config_unpack(bcmolt_xgpon_rssi_ranging_config *this, bcmolt_buf *buf, void **extra_mem);
+
+/** Scans past a packed bcmolt_xgpon_rssi_ranging_config struct and collects 
+ * memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_xgpon_rssi_ranging_config_scan(bcmolt_buf *packed, uint32_t *extra_mem);
+
+/** Checks if any field in the bcmolt_xgpon_rssi_ranging_config is out of bounds 
+ *
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_rssi_ranging_config_bounds_check(const bcmolt_xgpon_rssi_ranging_config *this);
+
+/** Initializes a bcmolt_xgpon_rx_ranging_sm_pattern struct.  This sets all 
+ * fields to default values. 
+ *
+ * \param this Pointer to the structure 
+ */
+void bcmolt_xgpon_rx_ranging_sm_pattern_set_default(bcmolt_xgpon_rx_ranging_sm_pattern *this);
+
+/** Packs a bcmolt_xgpon_rx_ranging_sm_pattern to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_rx_ranging_sm_pattern_pack(const bcmolt_xgpon_rx_ranging_sm_pattern *this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_xgpon_rx_ranging_sm_pattern from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_rx_ranging_sm_pattern_unpack(bcmolt_xgpon_rx_ranging_sm_pattern *this, bcmolt_buf *buf, void **extra_mem);
+
+/** Scans past a packed bcmolt_xgpon_rx_ranging_sm_pattern struct and collects 
+ * memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_xgpon_rx_ranging_sm_pattern_scan(bcmolt_buf *packed, uint32_t *extra_mem);
+
+/** Checks if any field in the bcmolt_xgpon_rx_ranging_sm_pattern is out of 
+ * bounds 
+ *
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_rx_ranging_sm_pattern_bounds_check(const bcmolt_xgpon_rx_ranging_sm_pattern *this);
+
+/** Initializes a bcmolt_xgpon_serdes_configuration struct.  This sets all 
+ * fields to default values. 
+ *
+ * \param this Pointer to the structure 
+ */
+void bcmolt_xgpon_serdes_configuration_set_default(bcmolt_xgpon_serdes_configuration *this);
+
+/** Packs a bcmolt_xgpon_serdes_configuration to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_serdes_configuration_pack(const bcmolt_xgpon_serdes_configuration *this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_xgpon_serdes_configuration from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_serdes_configuration_unpack(bcmolt_xgpon_serdes_configuration *this, bcmolt_buf *buf, void **extra_mem);
+
+/** Scans past a packed bcmolt_xgpon_serdes_configuration struct and collects 
+ * memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_xgpon_serdes_configuration_scan(bcmolt_buf *packed, uint32_t *extra_mem);
+
+/** Checks if any field in the bcmolt_xgpon_serdes_configuration is out of 
+ * bounds 
+ *
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_serdes_configuration_bounds_check(const bcmolt_xgpon_serdes_configuration *this);
+
+/** Initializes a bcmolt_xgpon_sn_acquisition struct.  This sets all fields to 
+ * default values. 
+ *
+ * \param this Pointer to the structure 
+ */
+void bcmolt_xgpon_sn_acquisition_set_default(bcmolt_xgpon_sn_acquisition *this);
+
+/** Packs a bcmolt_xgpon_sn_acquisition to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_sn_acquisition_pack(const bcmolt_xgpon_sn_acquisition *this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_xgpon_sn_acquisition from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_sn_acquisition_unpack(bcmolt_xgpon_sn_acquisition *this, bcmolt_buf *buf, void **extra_mem);
+
+/** Scans past a packed bcmolt_xgpon_sn_acquisition struct and collects memory 
+ * requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_xgpon_sn_acquisition_scan(bcmolt_buf *packed, uint32_t *extra_mem);
+
+/** Checks if any field in the bcmolt_xgpon_sn_acquisition is out of bounds 
+ *
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_sn_acquisition_bounds_check(const bcmolt_xgpon_sn_acquisition *this);
+
+/** Initializes a bcmolt_xgpon_trx_debug struct.  This sets all fields to 
+ * default values. 
+ *
+ * \param this Pointer to the structure 
+ */
+void bcmolt_xgpon_trx_debug_set_default(bcmolt_xgpon_trx_debug *this);
+
+/** Packs a bcmolt_xgpon_trx_debug to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_trx_debug_pack(const bcmolt_xgpon_trx_debug *this, bcmolt_buf *buf);
+
+/** Unpacks a bcmolt_xgpon_trx_debug from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_trx_debug_unpack(bcmolt_xgpon_trx_debug *this, bcmolt_buf *buf, void **extra_mem);
+
+/** Scans past a packed bcmolt_xgpon_trx_debug struct and collects memory 
+ * requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_xgpon_trx_debug_scan(bcmolt_buf *packed, uint32_t *extra_mem);
+
+/** Checks if any field in the bcmolt_xgpon_trx_debug is out of bounds 
+ *
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_trx_debug_bounds_check(const bcmolt_xgpon_trx_debug *this);
+
+/** Initializes a bcmolt_ae_ni_key struct.  This sets all fields to default 
+ * values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_ae_ni_key_set_default(bcmolt_ae_ni_key *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_ae_ni_key to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_ae_ni_key_pack(const bcmolt_ae_ni_key *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_ae_ni_key would occupy on the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_ae_ni_key_get_packed_length(const bcmolt_ae_ni_key *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_ae_ni_key from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_ae_ni_key_unpack(bcmolt_ae_ni_key *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_ae_ni_key struct and collects memory requirements 
+ * above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_ae_ni_key_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_ae_ni_key is out of bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_ae_ni_key_bounds_check(const bcmolt_ae_ni_key *this, bcmolt_presence_mask fields_present, bcmolt_ae_ni_key_id *failed_prop);
+
+/** Initializes a bcmolt_ae_ni_cfg_data struct.  This sets all fields to default 
+ * values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_ae_ni_cfg_data_set_default(bcmolt_ae_ni_cfg_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_ae_ni_cfg_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_ae_ni_cfg_data_pack(const bcmolt_ae_ni_cfg_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_ae_ni_cfg_data would occupy on the 
+ * wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_ae_ni_cfg_data_get_packed_length(const bcmolt_ae_ni_cfg_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_ae_ni_cfg_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_ae_ni_cfg_data_unpack(bcmolt_ae_ni_cfg_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_ae_ni_cfg_data struct and collects memory 
+ * requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_ae_ni_cfg_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_ae_ni_cfg_data is out of bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_ae_ni_cfg_data_bounds_check(const bcmolt_ae_ni_cfg_data *this, bcmolt_presence_mask fields_present, bcmolt_ae_ni_cfg_id *failed_prop);
+
+/** Initializes a bcmolt_ae_ni_set_ae_ni_en_state_data struct.  This sets all 
+ * fields to default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_ae_ni_set_ae_ni_en_state_data_set_default(bcmolt_ae_ni_set_ae_ni_en_state_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_ae_ni_set_ae_ni_en_state_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_ae_ni_set_ae_ni_en_state_data_pack(const bcmolt_ae_ni_set_ae_ni_en_state_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_ae_ni_set_ae_ni_en_state_data would 
+ * occupy on the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_ae_ni_set_ae_ni_en_state_data_get_packed_length(const bcmolt_ae_ni_set_ae_ni_en_state_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_ae_ni_set_ae_ni_en_state_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_ae_ni_set_ae_ni_en_state_data_unpack(bcmolt_ae_ni_set_ae_ni_en_state_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_ae_ni_set_ae_ni_en_state_data struct and collects 
+ * memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_ae_ni_set_ae_ni_en_state_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_ae_ni_set_ae_ni_en_state_data is out of 
+ * bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_ae_ni_set_ae_ni_en_state_data_bounds_check(const bcmolt_ae_ni_set_ae_ni_en_state_data *this, bcmolt_presence_mask fields_present, bcmolt_ae_ni_set_ae_ni_en_state_id *failed_prop);
+
+/** Initializes a bcmolt_ae_path_ds_key struct.  This sets all fields to default 
+ * values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_ae_path_ds_key_set_default(bcmolt_ae_path_ds_key *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_ae_path_ds_key to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_ae_path_ds_key_pack(const bcmolt_ae_path_ds_key *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_ae_path_ds_key would occupy on the 
+ * wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_ae_path_ds_key_get_packed_length(const bcmolt_ae_path_ds_key *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_ae_path_ds_key from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_ae_path_ds_key_unpack(bcmolt_ae_path_ds_key *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_ae_path_ds_key struct and collects memory 
+ * requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_ae_path_ds_key_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_ae_path_ds_key is out of bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_ae_path_ds_key_bounds_check(const bcmolt_ae_path_ds_key *this, bcmolt_presence_mask fields_present, bcmolt_ae_path_ds_key_id *failed_prop);
+
+/** Initializes a bcmolt_ae_path_ds_stat_data struct.  This sets all fields to 
+ * default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_ae_path_ds_stat_data_set_default(bcmolt_ae_path_ds_stat_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_ae_path_ds_stat_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_ae_path_ds_stat_data_pack(const bcmolt_ae_path_ds_stat_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_ae_path_ds_stat_data would occupy on 
+ * the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_ae_path_ds_stat_data_get_packed_length(const bcmolt_ae_path_ds_stat_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_ae_path_ds_stat_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_ae_path_ds_stat_data_unpack(bcmolt_ae_path_ds_stat_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_ae_path_ds_stat_data struct and collects memory 
+ * requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_ae_path_ds_stat_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_ae_path_ds_stat_data is out of bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_ae_path_ds_stat_data_bounds_check(const bcmolt_ae_path_ds_stat_data *this, bcmolt_presence_mask fields_present, bcmolt_ae_path_ds_stat_id *failed_prop);
+
+/** Initializes a bcmolt_ae_path_ds_stat_cfg_data struct.  This sets all fields 
+ * to default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_ae_path_ds_stat_cfg_data_set_default(bcmolt_ae_path_ds_stat_cfg_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_ae_path_ds_stat_cfg_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_ae_path_ds_stat_cfg_data_pack(const bcmolt_ae_path_ds_stat_cfg_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_ae_path_ds_stat_cfg_data would occupy 
+ * on the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_ae_path_ds_stat_cfg_data_get_packed_length(const bcmolt_ae_path_ds_stat_cfg_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_ae_path_ds_stat_cfg_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_ae_path_ds_stat_cfg_data_unpack(bcmolt_ae_path_ds_stat_cfg_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_ae_path_ds_stat_cfg_data struct and collects 
+ * memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_ae_path_ds_stat_cfg_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_ae_path_ds_stat_cfg_data is out of bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_ae_path_ds_stat_cfg_data_bounds_check(const bcmolt_ae_path_ds_stat_cfg_data *this, bcmolt_presence_mask fields_present, bcmolt_ae_path_ds_stat_cfg_id *failed_prop);
+
+/** Initializes a bcmolt_ae_path_ds_stat_alarm_cleared_data struct.  This sets 
+ * all fields to default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_ae_path_ds_stat_alarm_cleared_data_set_default(bcmolt_ae_path_ds_stat_alarm_cleared_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_ae_path_ds_stat_alarm_cleared_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_ae_path_ds_stat_alarm_cleared_data_pack(const bcmolt_ae_path_ds_stat_alarm_cleared_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_ae_path_ds_stat_alarm_cleared_data 
+ * would occupy on the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_ae_path_ds_stat_alarm_cleared_data_get_packed_length(const bcmolt_ae_path_ds_stat_alarm_cleared_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_ae_path_ds_stat_alarm_cleared_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_ae_path_ds_stat_alarm_cleared_data_unpack(bcmolt_ae_path_ds_stat_alarm_cleared_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_ae_path_ds_stat_alarm_cleared_data struct and 
+ * collects memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_ae_path_ds_stat_alarm_cleared_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_ae_path_ds_stat_alarm_cleared_data is out 
+ * of bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_ae_path_ds_stat_alarm_cleared_data_bounds_check(const bcmolt_ae_path_ds_stat_alarm_cleared_data *this, bcmolt_presence_mask fields_present, bcmolt_ae_path_ds_stat_alarm_cleared_id *failed_prop);
+
+/** Initializes a bcmolt_ae_path_ds_stat_alarm_raised_data struct.  This sets 
+ * all fields to default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_ae_path_ds_stat_alarm_raised_data_set_default(bcmolt_ae_path_ds_stat_alarm_raised_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_ae_path_ds_stat_alarm_raised_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_ae_path_ds_stat_alarm_raised_data_pack(const bcmolt_ae_path_ds_stat_alarm_raised_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_ae_path_ds_stat_alarm_raised_data 
+ * would occupy on the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_ae_path_ds_stat_alarm_raised_data_get_packed_length(const bcmolt_ae_path_ds_stat_alarm_raised_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_ae_path_ds_stat_alarm_raised_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_ae_path_ds_stat_alarm_raised_data_unpack(bcmolt_ae_path_ds_stat_alarm_raised_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_ae_path_ds_stat_alarm_raised_data struct and 
+ * collects memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_ae_path_ds_stat_alarm_raised_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_ae_path_ds_stat_alarm_raised_data is out 
+ * of bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_ae_path_ds_stat_alarm_raised_data_bounds_check(const bcmolt_ae_path_ds_stat_alarm_raised_data *this, bcmolt_presence_mask fields_present, bcmolt_ae_path_ds_stat_alarm_raised_id *failed_prop);
+
+/** Initializes a bcmolt_ae_path_ds_auto_cfg_data struct.  This sets all fields 
+ * to default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_ae_path_ds_auto_cfg_data_set_default(bcmolt_ae_path_ds_auto_cfg_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_ae_path_ds_auto_cfg_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_ae_path_ds_auto_cfg_data_pack(const bcmolt_ae_path_ds_auto_cfg_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_ae_path_ds_auto_cfg_data would occupy 
+ * on the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_ae_path_ds_auto_cfg_data_get_packed_length(const bcmolt_ae_path_ds_auto_cfg_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_ae_path_ds_auto_cfg_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_ae_path_ds_auto_cfg_data_unpack(bcmolt_ae_path_ds_auto_cfg_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_ae_path_ds_auto_cfg_data struct and collects 
+ * memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_ae_path_ds_auto_cfg_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_ae_path_ds_auto_cfg_data is out of bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_ae_path_ds_auto_cfg_data_bounds_check(const bcmolt_ae_path_ds_auto_cfg_data *this, bcmolt_presence_mask fields_present, bcmolt_ae_path_ds_auto_cfg_id *failed_prop);
+
+/** Initializes a bcmolt_ae_path_us_key struct.  This sets all fields to default 
+ * values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_ae_path_us_key_set_default(bcmolt_ae_path_us_key *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_ae_path_us_key to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_ae_path_us_key_pack(const bcmolt_ae_path_us_key *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_ae_path_us_key would occupy on the 
+ * wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_ae_path_us_key_get_packed_length(const bcmolt_ae_path_us_key *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_ae_path_us_key from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_ae_path_us_key_unpack(bcmolt_ae_path_us_key *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_ae_path_us_key struct and collects memory 
+ * requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_ae_path_us_key_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_ae_path_us_key is out of bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_ae_path_us_key_bounds_check(const bcmolt_ae_path_us_key *this, bcmolt_presence_mask fields_present, bcmolt_ae_path_us_key_id *failed_prop);
+
+/** Initializes a bcmolt_ae_path_us_stat_data struct.  This sets all fields to 
+ * default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_ae_path_us_stat_data_set_default(bcmolt_ae_path_us_stat_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_ae_path_us_stat_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_ae_path_us_stat_data_pack(const bcmolt_ae_path_us_stat_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_ae_path_us_stat_data would occupy on 
+ * the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_ae_path_us_stat_data_get_packed_length(const bcmolt_ae_path_us_stat_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_ae_path_us_stat_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_ae_path_us_stat_data_unpack(bcmolt_ae_path_us_stat_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_ae_path_us_stat_data struct and collects memory 
+ * requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_ae_path_us_stat_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_ae_path_us_stat_data is out of bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_ae_path_us_stat_data_bounds_check(const bcmolt_ae_path_us_stat_data *this, bcmolt_presence_mask fields_present, bcmolt_ae_path_us_stat_id *failed_prop);
+
+/** Initializes a bcmolt_ae_path_us_stat_cfg_data struct.  This sets all fields 
+ * to default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_ae_path_us_stat_cfg_data_set_default(bcmolt_ae_path_us_stat_cfg_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_ae_path_us_stat_cfg_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_ae_path_us_stat_cfg_data_pack(const bcmolt_ae_path_us_stat_cfg_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_ae_path_us_stat_cfg_data would occupy 
+ * on the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_ae_path_us_stat_cfg_data_get_packed_length(const bcmolt_ae_path_us_stat_cfg_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_ae_path_us_stat_cfg_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_ae_path_us_stat_cfg_data_unpack(bcmolt_ae_path_us_stat_cfg_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_ae_path_us_stat_cfg_data struct and collects 
+ * memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_ae_path_us_stat_cfg_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_ae_path_us_stat_cfg_data is out of bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_ae_path_us_stat_cfg_data_bounds_check(const bcmolt_ae_path_us_stat_cfg_data *this, bcmolt_presence_mask fields_present, bcmolt_ae_path_us_stat_cfg_id *failed_prop);
+
+/** Initializes a bcmolt_ae_path_us_stat_alarm_cleared_data struct.  This sets 
+ * all fields to default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_ae_path_us_stat_alarm_cleared_data_set_default(bcmolt_ae_path_us_stat_alarm_cleared_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_ae_path_us_stat_alarm_cleared_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_ae_path_us_stat_alarm_cleared_data_pack(const bcmolt_ae_path_us_stat_alarm_cleared_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_ae_path_us_stat_alarm_cleared_data 
+ * would occupy on the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_ae_path_us_stat_alarm_cleared_data_get_packed_length(const bcmolt_ae_path_us_stat_alarm_cleared_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_ae_path_us_stat_alarm_cleared_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_ae_path_us_stat_alarm_cleared_data_unpack(bcmolt_ae_path_us_stat_alarm_cleared_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_ae_path_us_stat_alarm_cleared_data struct and 
+ * collects memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_ae_path_us_stat_alarm_cleared_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_ae_path_us_stat_alarm_cleared_data is out 
+ * of bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_ae_path_us_stat_alarm_cleared_data_bounds_check(const bcmolt_ae_path_us_stat_alarm_cleared_data *this, bcmolt_presence_mask fields_present, bcmolt_ae_path_us_stat_alarm_cleared_id *failed_prop);
+
+/** Initializes a bcmolt_ae_path_us_stat_alarm_raised_data struct.  This sets 
+ * all fields to default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_ae_path_us_stat_alarm_raised_data_set_default(bcmolt_ae_path_us_stat_alarm_raised_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_ae_path_us_stat_alarm_raised_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_ae_path_us_stat_alarm_raised_data_pack(const bcmolt_ae_path_us_stat_alarm_raised_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_ae_path_us_stat_alarm_raised_data 
+ * would occupy on the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_ae_path_us_stat_alarm_raised_data_get_packed_length(const bcmolt_ae_path_us_stat_alarm_raised_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_ae_path_us_stat_alarm_raised_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_ae_path_us_stat_alarm_raised_data_unpack(bcmolt_ae_path_us_stat_alarm_raised_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_ae_path_us_stat_alarm_raised_data struct and 
+ * collects memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_ae_path_us_stat_alarm_raised_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_ae_path_us_stat_alarm_raised_data is out 
+ * of bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_ae_path_us_stat_alarm_raised_data_bounds_check(const bcmolt_ae_path_us_stat_alarm_raised_data *this, bcmolt_presence_mask fields_present, bcmolt_ae_path_us_stat_alarm_raised_id *failed_prop);
+
+/** Initializes a bcmolt_ae_path_us_auto_cfg_data struct.  This sets all fields 
+ * to default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_ae_path_us_auto_cfg_data_set_default(bcmolt_ae_path_us_auto_cfg_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_ae_path_us_auto_cfg_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_ae_path_us_auto_cfg_data_pack(const bcmolt_ae_path_us_auto_cfg_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_ae_path_us_auto_cfg_data would occupy 
+ * on the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_ae_path_us_auto_cfg_data_get_packed_length(const bcmolt_ae_path_us_auto_cfg_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_ae_path_us_auto_cfg_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_ae_path_us_auto_cfg_data_unpack(bcmolt_ae_path_us_auto_cfg_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_ae_path_us_auto_cfg_data struct and collects 
+ * memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_ae_path_us_auto_cfg_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_ae_path_us_auto_cfg_data is out of bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_ae_path_us_auto_cfg_data_bounds_check(const bcmolt_ae_path_us_auto_cfg_data *this, bcmolt_presence_mask fields_present, bcmolt_ae_path_us_auto_cfg_id *failed_prop);
+
+/** Initializes a bcmolt_channel_key struct.  This sets all fields to default 
+ * values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_channel_key_set_default(bcmolt_channel_key *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_channel_key to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_channel_key_pack(const bcmolt_channel_key *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_channel_key would occupy on the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_channel_key_get_packed_length(const bcmolt_channel_key *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_channel_key from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_channel_key_unpack(bcmolt_channel_key *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_channel_key struct and collects memory 
+ * requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_channel_key_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_channel_key is out of bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_channel_key_bounds_check(const bcmolt_channel_key *this, bcmolt_presence_mask fields_present, bcmolt_channel_key_id *failed_prop);
+
+/** Initializes a bcmolt_channel_cfg_data struct.  This sets all fields to 
+ * default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_channel_cfg_data_set_default(bcmolt_channel_cfg_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_channel_cfg_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_channel_cfg_data_pack(const bcmolt_channel_cfg_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_channel_cfg_data would occupy on the 
+ * wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_channel_cfg_data_get_packed_length(const bcmolt_channel_cfg_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_channel_cfg_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_channel_cfg_data_unpack(bcmolt_channel_cfg_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_channel_cfg_data struct and collects memory 
+ * requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_channel_cfg_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_channel_cfg_data is out of bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_channel_cfg_data_bounds_check(const bcmolt_channel_cfg_data *this, bcmolt_presence_mask fields_present, bcmolt_channel_cfg_id *failed_prop);
+
+/** Initializes a bcmolt_debug_key struct.  This sets all fields to default 
+ * values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_debug_key_set_default(bcmolt_debug_key *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_debug_key to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_debug_key_pack(const bcmolt_debug_key *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_debug_key would occupy on the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_debug_key_get_packed_length(const bcmolt_debug_key *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_debug_key from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_debug_key_unpack(bcmolt_debug_key *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_debug_key struct and collects memory requirements 
+ * above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_debug_key_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_debug_key is out of bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_debug_key_bounds_check(const bcmolt_debug_key *this, bcmolt_presence_mask fields_present, bcmolt_debug_key_id *failed_prop);
+
+/** Initializes a bcmolt_debug_cfg_data struct.  This sets all fields to default 
+ * values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_debug_cfg_data_set_default(bcmolt_debug_cfg_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_debug_cfg_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_debug_cfg_data_pack(const bcmolt_debug_cfg_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_debug_cfg_data would occupy on the 
+ * wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_debug_cfg_data_get_packed_length(const bcmolt_debug_cfg_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_debug_cfg_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_debug_cfg_data_unpack(bcmolt_debug_cfg_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_debug_cfg_data struct and collects memory 
+ * requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_debug_cfg_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_debug_cfg_data is out of bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_debug_cfg_data_bounds_check(const bcmolt_debug_cfg_data *this, bcmolt_presence_mask fields_present, bcmolt_debug_cfg_id *failed_prop);
+
+/** Initializes a bcmolt_debug_cli_output_data struct.  This sets all fields to 
+ * default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_debug_cli_output_data_set_default(bcmolt_debug_cli_output_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_debug_cli_output_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_debug_cli_output_data_pack(const bcmolt_debug_cli_output_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_debug_cli_output_data would occupy on 
+ * the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_debug_cli_output_data_get_packed_length(const bcmolt_debug_cli_output_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_debug_cli_output_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_debug_cli_output_data_unpack(bcmolt_debug_cli_output_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_debug_cli_output_data struct and collects memory 
+ * requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_debug_cli_output_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_debug_cli_output_data is out of bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_debug_cli_output_data_bounds_check(const bcmolt_debug_cli_output_data *this, bcmolt_presence_mask fields_present, bcmolt_debug_cli_output_id *failed_prop);
+
+/** Initializes a bcmolt_debug_auto_cfg_data struct.  This sets all fields to 
+ * default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_debug_auto_cfg_data_set_default(bcmolt_debug_auto_cfg_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_debug_auto_cfg_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_debug_auto_cfg_data_pack(const bcmolt_debug_auto_cfg_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_debug_auto_cfg_data would occupy on 
+ * the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_debug_auto_cfg_data_get_packed_length(const bcmolt_debug_auto_cfg_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_debug_auto_cfg_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_debug_auto_cfg_data_unpack(bcmolt_debug_auto_cfg_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_debug_auto_cfg_data struct and collects memory 
+ * requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_debug_auto_cfg_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_debug_auto_cfg_data is out of bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_debug_auto_cfg_data_bounds_check(const bcmolt_debug_auto_cfg_data *this, bcmolt_presence_mask fields_present, bcmolt_debug_auto_cfg_id *failed_prop);
+
+/** Initializes a bcmolt_debug_cli_input_data struct.  This sets all fields to 
+ * default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_debug_cli_input_data_set_default(bcmolt_debug_cli_input_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_debug_cli_input_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_debug_cli_input_data_pack(const bcmolt_debug_cli_input_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_debug_cli_input_data would occupy on 
+ * the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_debug_cli_input_data_get_packed_length(const bcmolt_debug_cli_input_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_debug_cli_input_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_debug_cli_input_data_unpack(bcmolt_debug_cli_input_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_debug_cli_input_data struct and collects memory 
+ * requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_debug_cli_input_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_debug_cli_input_data is out of bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_debug_cli_input_data_bounds_check(const bcmolt_debug_cli_input_data *this, bcmolt_presence_mask fields_present, bcmolt_debug_cli_input_id *failed_prop);
+
+/** Initializes a bcmolt_device_key struct.  This sets all fields to default 
+ * values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_device_key_set_default(bcmolt_device_key *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_device_key to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_device_key_pack(const bcmolt_device_key *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_device_key would occupy on the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_device_key_get_packed_length(const bcmolt_device_key *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_device_key from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_device_key_unpack(bcmolt_device_key *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_device_key struct and collects memory 
+ * requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_device_key_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_device_key is out of bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_device_key_bounds_check(const bcmolt_device_key *this, bcmolt_presence_mask fields_present, bcmolt_device_key_id *failed_prop);
+
+/** Initializes a bcmolt_device_cfg_data struct.  This sets all fields to 
+ * default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_device_cfg_data_set_default(bcmolt_device_cfg_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_device_cfg_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_device_cfg_data_pack(const bcmolt_device_cfg_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_device_cfg_data would occupy on the 
+ * wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_device_cfg_data_get_packed_length(const bcmolt_device_cfg_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_device_cfg_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_device_cfg_data_unpack(bcmolt_device_cfg_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_device_cfg_data struct and collects memory 
+ * requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_device_cfg_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_device_cfg_data is out of bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_device_cfg_data_bounds_check(const bcmolt_device_cfg_data *this, bcmolt_presence_mask fields_present, bcmolt_device_cfg_id *failed_prop);
+
+/** Initializes a bcmolt_device_connection_complete_data struct.  This sets all 
+ * fields to default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_device_connection_complete_data_set_default(bcmolt_device_connection_complete_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_device_connection_complete_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_device_connection_complete_data_pack(const bcmolt_device_connection_complete_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_device_connection_complete_data would 
+ * occupy on the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_device_connection_complete_data_get_packed_length(const bcmolt_device_connection_complete_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_device_connection_complete_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_device_connection_complete_data_unpack(bcmolt_device_connection_complete_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_device_connection_complete_data struct and 
+ * collects memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_device_connection_complete_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_device_connection_complete_data is out of 
+ * bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_device_connection_complete_data_bounds_check(const bcmolt_device_connection_complete_data *this, bcmolt_presence_mask fields_present, bcmolt_device_connection_complete_id *failed_prop);
+
+/** Initializes a bcmolt_device_connection_failure_data struct.  This sets all 
+ * fields to default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_device_connection_failure_data_set_default(bcmolt_device_connection_failure_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_device_connection_failure_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_device_connection_failure_data_pack(const bcmolt_device_connection_failure_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_device_connection_failure_data would 
+ * occupy on the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_device_connection_failure_data_get_packed_length(const bcmolt_device_connection_failure_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_device_connection_failure_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_device_connection_failure_data_unpack(bcmolt_device_connection_failure_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_device_connection_failure_data struct and 
+ * collects memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_device_connection_failure_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_device_connection_failure_data is out of 
+ * bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_device_connection_failure_data_bounds_check(const bcmolt_device_connection_failure_data *this, bcmolt_presence_mask fields_present, bcmolt_device_connection_failure_id *failed_prop);
+
+/** Initializes a bcmolt_device_ddr_test_complete_data struct.  This sets all 
+ * fields to default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_device_ddr_test_complete_data_set_default(bcmolt_device_ddr_test_complete_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_device_ddr_test_complete_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_device_ddr_test_complete_data_pack(const bcmolt_device_ddr_test_complete_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_device_ddr_test_complete_data would 
+ * occupy on the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_device_ddr_test_complete_data_get_packed_length(const bcmolt_device_ddr_test_complete_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_device_ddr_test_complete_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_device_ddr_test_complete_data_unpack(bcmolt_device_ddr_test_complete_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_device_ddr_test_complete_data struct and collects 
+ * memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_device_ddr_test_complete_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_device_ddr_test_complete_data is out of 
+ * bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_device_ddr_test_complete_data_bounds_check(const bcmolt_device_ddr_test_complete_data *this, bcmolt_presence_mask fields_present, bcmolt_device_ddr_test_complete_id *failed_prop);
+
+/** Initializes a bcmolt_device_device_keep_alive_data struct.  This sets all 
+ * fields to default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_device_device_keep_alive_data_set_default(bcmolt_device_device_keep_alive_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_device_device_keep_alive_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_device_device_keep_alive_data_pack(const bcmolt_device_device_keep_alive_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_device_device_keep_alive_data would 
+ * occupy on the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_device_device_keep_alive_data_get_packed_length(const bcmolt_device_device_keep_alive_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_device_device_keep_alive_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_device_device_keep_alive_data_unpack(bcmolt_device_device_keep_alive_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_device_device_keep_alive_data struct and collects 
+ * memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_device_device_keep_alive_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_device_device_keep_alive_data is out of 
+ * bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_device_device_keep_alive_data_bounds_check(const bcmolt_device_device_keep_alive_data *this, bcmolt_presence_mask fields_present, bcmolt_device_device_keep_alive_id *failed_prop);
+
+/** Initializes a bcmolt_device_device_ready_data struct.  This sets all fields 
+ * to default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_device_device_ready_data_set_default(bcmolt_device_device_ready_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_device_device_ready_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_device_device_ready_data_pack(const bcmolt_device_device_ready_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_device_device_ready_data would occupy 
+ * on the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_device_device_ready_data_get_packed_length(const bcmolt_device_device_ready_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_device_device_ready_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_device_device_ready_data_unpack(bcmolt_device_device_ready_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_device_device_ready_data struct and collects 
+ * memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_device_device_ready_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_device_device_ready_data is out of bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_device_device_ready_data_bounds_check(const bcmolt_device_device_ready_data *this, bcmolt_presence_mask fields_present, bcmolt_device_device_ready_id *failed_prop);
+
+/** Initializes a bcmolt_device_image_transfer_complete_data struct.  This sets 
+ * all fields to default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_device_image_transfer_complete_data_set_default(bcmolt_device_image_transfer_complete_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_device_image_transfer_complete_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_device_image_transfer_complete_data_pack(const bcmolt_device_image_transfer_complete_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_device_image_transfer_complete_data 
+ * would occupy on the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_device_image_transfer_complete_data_get_packed_length(const bcmolt_device_image_transfer_complete_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_device_image_transfer_complete_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_device_image_transfer_complete_data_unpack(bcmolt_device_image_transfer_complete_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_device_image_transfer_complete_data struct and 
+ * collects memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_device_image_transfer_complete_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_device_image_transfer_complete_data is out 
+ * of bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_device_image_transfer_complete_data_bounds_check(const bcmolt_device_image_transfer_complete_data *this, bcmolt_presence_mask fields_present, bcmolt_device_image_transfer_complete_id *failed_prop);
+
+/** Initializes a bcmolt_device_indications_dropped_data struct.  This sets all 
+ * fields to default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_device_indications_dropped_data_set_default(bcmolt_device_indications_dropped_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_device_indications_dropped_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_device_indications_dropped_data_pack(const bcmolt_device_indications_dropped_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_device_indications_dropped_data would 
+ * occupy on the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_device_indications_dropped_data_get_packed_length(const bcmolt_device_indications_dropped_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_device_indications_dropped_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_device_indications_dropped_data_unpack(bcmolt_device_indications_dropped_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_device_indications_dropped_data struct and 
+ * collects memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_device_indications_dropped_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_device_indications_dropped_data is out of 
+ * bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_device_indications_dropped_data_bounds_check(const bcmolt_device_indications_dropped_data *this, bcmolt_presence_mask fields_present, bcmolt_device_indications_dropped_id *failed_prop);
+
+/** Initializes a bcmolt_device_sw_error_data struct.  This sets all fields to 
+ * default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_device_sw_error_data_set_default(bcmolt_device_sw_error_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_device_sw_error_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_device_sw_error_data_pack(const bcmolt_device_sw_error_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_device_sw_error_data would occupy on 
+ * the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_device_sw_error_data_get_packed_length(const bcmolt_device_sw_error_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_device_sw_error_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_device_sw_error_data_unpack(bcmolt_device_sw_error_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_device_sw_error_data struct and collects memory 
+ * requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_device_sw_error_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_device_sw_error_data is out of bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_device_sw_error_data_bounds_check(const bcmolt_device_sw_error_data *this, bcmolt_presence_mask fields_present, bcmolt_device_sw_error_id *failed_prop);
+
+/** Initializes a bcmolt_device_sw_exception_data struct.  This sets all fields 
+ * to default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_device_sw_exception_data_set_default(bcmolt_device_sw_exception_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_device_sw_exception_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_device_sw_exception_data_pack(const bcmolt_device_sw_exception_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_device_sw_exception_data would occupy 
+ * on the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_device_sw_exception_data_get_packed_length(const bcmolt_device_sw_exception_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_device_sw_exception_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_device_sw_exception_data_unpack(bcmolt_device_sw_exception_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_device_sw_exception_data struct and collects 
+ * memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_device_sw_exception_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_device_sw_exception_data is out of bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_device_sw_exception_data_bounds_check(const bcmolt_device_sw_exception_data *this, bcmolt_presence_mask fields_present, bcmolt_device_sw_exception_id *failed_prop);
+
+/** Initializes a bcmolt_device_auto_cfg_data struct.  This sets all fields to 
+ * default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_device_auto_cfg_data_set_default(bcmolt_device_auto_cfg_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_device_auto_cfg_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_device_auto_cfg_data_pack(const bcmolt_device_auto_cfg_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_device_auto_cfg_data would occupy on 
+ * the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_device_auto_cfg_data_get_packed_length(const bcmolt_device_auto_cfg_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_device_auto_cfg_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_device_auto_cfg_data_unpack(bcmolt_device_auto_cfg_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_device_auto_cfg_data struct and collects memory 
+ * requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_device_auto_cfg_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_device_auto_cfg_data is out of bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_device_auto_cfg_data_bounds_check(const bcmolt_device_auto_cfg_data *this, bcmolt_presence_mask fields_present, bcmolt_device_auto_cfg_id *failed_prop);
+
+/** Initializes a bcmolt_device_host_keep_alive_data struct.  This sets all 
+ * fields to default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_device_host_keep_alive_data_set_default(bcmolt_device_host_keep_alive_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_device_host_keep_alive_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_device_host_keep_alive_data_pack(const bcmolt_device_host_keep_alive_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_device_host_keep_alive_data would 
+ * occupy on the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_device_host_keep_alive_data_get_packed_length(const bcmolt_device_host_keep_alive_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_device_host_keep_alive_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_device_host_keep_alive_data_unpack(bcmolt_device_host_keep_alive_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_device_host_keep_alive_data struct and collects 
+ * memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_device_host_keep_alive_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_device_host_keep_alive_data is out of 
+ * bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_device_host_keep_alive_data_bounds_check(const bcmolt_device_host_keep_alive_data *this, bcmolt_presence_mask fields_present, bcmolt_device_host_keep_alive_id *failed_prop);
+
+/** Initializes a bcmolt_device_image_transfer_data_data struct.  This sets all 
+ * fields to default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_device_image_transfer_data_data_set_default(bcmolt_device_image_transfer_data_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_device_image_transfer_data_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_device_image_transfer_data_data_pack(const bcmolt_device_image_transfer_data_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_device_image_transfer_data_data would 
+ * occupy on the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_device_image_transfer_data_data_get_packed_length(const bcmolt_device_image_transfer_data_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_device_image_transfer_data_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_device_image_transfer_data_data_unpack(bcmolt_device_image_transfer_data_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_device_image_transfer_data_data struct and 
+ * collects memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_device_image_transfer_data_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_device_image_transfer_data_data is out of 
+ * bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_device_image_transfer_data_data_bounds_check(const bcmolt_device_image_transfer_data_data *this, bcmolt_presence_mask fields_present, bcmolt_device_image_transfer_data_id *failed_prop);
+
+/** Initializes a bcmolt_device_image_transfer_start_data struct.  This sets all 
+ * fields to default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_device_image_transfer_start_data_set_default(bcmolt_device_image_transfer_start_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_device_image_transfer_start_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_device_image_transfer_start_data_pack(const bcmolt_device_image_transfer_start_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_device_image_transfer_start_data 
+ * would occupy on the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_device_image_transfer_start_data_get_packed_length(const bcmolt_device_image_transfer_start_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_device_image_transfer_start_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_device_image_transfer_start_data_unpack(bcmolt_device_image_transfer_start_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_device_image_transfer_start_data struct and 
+ * collects memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_device_image_transfer_start_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_device_image_transfer_start_data is out of 
+ * bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_device_image_transfer_start_data_bounds_check(const bcmolt_device_image_transfer_start_data *this, bcmolt_presence_mask fields_present, bcmolt_device_image_transfer_start_id *failed_prop);
+
+/** Initializes a bcmolt_device_reset_data struct.  This sets all fields to 
+ * default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_device_reset_data_set_default(bcmolt_device_reset_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_device_reset_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_device_reset_data_pack(const bcmolt_device_reset_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_device_reset_data would occupy on the 
+ * wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_device_reset_data_get_packed_length(const bcmolt_device_reset_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_device_reset_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_device_reset_data_unpack(bcmolt_device_reset_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_device_reset_data struct and collects memory 
+ * requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_device_reset_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_device_reset_data is out of bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_device_reset_data_bounds_check(const bcmolt_device_reset_data *this, bcmolt_presence_mask fields_present, bcmolt_device_reset_id *failed_prop);
+
+/** Initializes a bcmolt_device_run_ddr_test_data struct.  This sets all fields 
+ * to default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_device_run_ddr_test_data_set_default(bcmolt_device_run_ddr_test_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_device_run_ddr_test_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_device_run_ddr_test_data_pack(const bcmolt_device_run_ddr_test_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_device_run_ddr_test_data would occupy 
+ * on the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_device_run_ddr_test_data_get_packed_length(const bcmolt_device_run_ddr_test_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_device_run_ddr_test_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_device_run_ddr_test_data_unpack(bcmolt_device_run_ddr_test_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_device_run_ddr_test_data struct and collects 
+ * memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_device_run_ddr_test_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_device_run_ddr_test_data is out of bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_device_run_ddr_test_data_bounds_check(const bcmolt_device_run_ddr_test_data *this, bcmolt_presence_mask fields_present, bcmolt_device_run_ddr_test_id *failed_prop);
+
+/** Initializes a bcmolt_epon_denied_link_key struct.  This sets all fields to 
+ * default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_epon_denied_link_key_set_default(bcmolt_epon_denied_link_key *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_epon_denied_link_key to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_denied_link_key_pack(const bcmolt_epon_denied_link_key *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_epon_denied_link_key would occupy on 
+ * the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_epon_denied_link_key_get_packed_length(const bcmolt_epon_denied_link_key *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_epon_denied_link_key from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_denied_link_key_unpack(bcmolt_epon_denied_link_key *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_epon_denied_link_key struct and collects memory 
+ * requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_epon_denied_link_key_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_epon_denied_link_key is out of bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_denied_link_key_bounds_check(const bcmolt_epon_denied_link_key *this, bcmolt_presence_mask fields_present, bcmolt_epon_denied_link_key_id *failed_prop);
+
+/** Initializes a bcmolt_epon_denied_link_cfg_data struct.  This sets all fields 
+ * to default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_epon_denied_link_cfg_data_set_default(bcmolt_epon_denied_link_cfg_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_epon_denied_link_cfg_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_denied_link_cfg_data_pack(const bcmolt_epon_denied_link_cfg_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_epon_denied_link_cfg_data would 
+ * occupy on the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_epon_denied_link_cfg_data_get_packed_length(const bcmolt_epon_denied_link_cfg_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_epon_denied_link_cfg_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_denied_link_cfg_data_unpack(bcmolt_epon_denied_link_cfg_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_epon_denied_link_cfg_data struct and collects 
+ * memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_epon_denied_link_cfg_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_epon_denied_link_cfg_data is out of bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_denied_link_cfg_data_bounds_check(const bcmolt_epon_denied_link_cfg_data *this, bcmolt_presence_mask fields_present, bcmolt_epon_denied_link_cfg_id *failed_prop);
+
+/** Initializes a bcmolt_epon_denied_link_laser_on_off_violation_data struct.  
+ * This sets all fields to default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_epon_denied_link_laser_on_off_violation_data_set_default(bcmolt_epon_denied_link_laser_on_off_violation_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_epon_denied_link_laser_on_off_violation_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_denied_link_laser_on_off_violation_data_pack(const bcmolt_epon_denied_link_laser_on_off_violation_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a 
+ * bcmolt_epon_denied_link_laser_on_off_violation_data would occupy on the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_epon_denied_link_laser_on_off_violation_data_get_packed_length(const bcmolt_epon_denied_link_laser_on_off_violation_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_epon_denied_link_laser_on_off_violation_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_denied_link_laser_on_off_violation_data_unpack(bcmolt_epon_denied_link_laser_on_off_violation_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_epon_denied_link_laser_on_off_violation_data 
+ * struct and collects memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_epon_denied_link_laser_on_off_violation_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the 
+ * bcmolt_epon_denied_link_laser_on_off_violation_data is out of bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_denied_link_laser_on_off_violation_data_bounds_check(const bcmolt_epon_denied_link_laser_on_off_violation_data *this, bcmolt_presence_mask fields_present, bcmolt_epon_denied_link_laser_on_off_violation_id *failed_prop);
+
+/** Initializes a bcmolt_epon_denied_link_llid_pool_empty_violation_data struct. 
+ *  This sets all fields to default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_epon_denied_link_llid_pool_empty_violation_data_set_default(bcmolt_epon_denied_link_llid_pool_empty_violation_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_epon_denied_link_llid_pool_empty_violation_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_denied_link_llid_pool_empty_violation_data_pack(const bcmolt_epon_denied_link_llid_pool_empty_violation_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a 
+ * bcmolt_epon_denied_link_llid_pool_empty_violation_data would occupy on the 
+ * wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_epon_denied_link_llid_pool_empty_violation_data_get_packed_length(const bcmolt_epon_denied_link_llid_pool_empty_violation_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_epon_denied_link_llid_pool_empty_violation_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_denied_link_llid_pool_empty_violation_data_unpack(bcmolt_epon_denied_link_llid_pool_empty_violation_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_epon_denied_link_llid_pool_empty_violation_data 
+ * struct and collects memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_epon_denied_link_llid_pool_empty_violation_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the 
+ * bcmolt_epon_denied_link_llid_pool_empty_violation_data is out of bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_denied_link_llid_pool_empty_violation_data_bounds_check(const bcmolt_epon_denied_link_llid_pool_empty_violation_data *this, bcmolt_presence_mask fields_present, bcmolt_epon_denied_link_llid_pool_empty_violation_id *failed_prop);
+
+/** Initializes a bcmolt_epon_denied_link_max_link_violation_data struct.  This 
+ * sets all fields to default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_epon_denied_link_max_link_violation_data_set_default(bcmolt_epon_denied_link_max_link_violation_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_epon_denied_link_max_link_violation_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_denied_link_max_link_violation_data_pack(const bcmolt_epon_denied_link_max_link_violation_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a 
+ * bcmolt_epon_denied_link_max_link_violation_data would occupy on the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_epon_denied_link_max_link_violation_data_get_packed_length(const bcmolt_epon_denied_link_max_link_violation_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_epon_denied_link_max_link_violation_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_denied_link_max_link_violation_data_unpack(bcmolt_epon_denied_link_max_link_violation_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_epon_denied_link_max_link_violation_data struct 
+ * and collects memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_epon_denied_link_max_link_violation_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_epon_denied_link_max_link_violation_data 
+ * is out of bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_denied_link_max_link_violation_data_bounds_check(const bcmolt_epon_denied_link_max_link_violation_data *this, bcmolt_presence_mask fields_present, bcmolt_epon_denied_link_max_link_violation_id *failed_prop);
+
+/** Initializes a bcmolt_epon_denied_link_overhead_profile_violation_data 
+ * struct.  This sets all fields to default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_epon_denied_link_overhead_profile_violation_data_set_default(bcmolt_epon_denied_link_overhead_profile_violation_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_epon_denied_link_overhead_profile_violation_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_denied_link_overhead_profile_violation_data_pack(const bcmolt_epon_denied_link_overhead_profile_violation_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a 
+ * bcmolt_epon_denied_link_overhead_profile_violation_data would occupy on the 
+ * wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_epon_denied_link_overhead_profile_violation_data_get_packed_length(const bcmolt_epon_denied_link_overhead_profile_violation_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_epon_denied_link_overhead_profile_violation_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_denied_link_overhead_profile_violation_data_unpack(bcmolt_epon_denied_link_overhead_profile_violation_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_epon_denied_link_overhead_profile_violation_data 
+ * struct and collects memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_epon_denied_link_overhead_profile_violation_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the 
+ * bcmolt_epon_denied_link_overhead_profile_violation_data is out of bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_denied_link_overhead_profile_violation_data_bounds_check(const bcmolt_epon_denied_link_overhead_profile_violation_data *this, bcmolt_presence_mask fields_present, bcmolt_epon_denied_link_overhead_profile_violation_id *failed_prop);
+
+/** Initializes a bcmolt_epon_denied_link_range_violation_data struct.  This 
+ * sets all fields to default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_epon_denied_link_range_violation_data_set_default(bcmolt_epon_denied_link_range_violation_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_epon_denied_link_range_violation_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_denied_link_range_violation_data_pack(const bcmolt_epon_denied_link_range_violation_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_epon_denied_link_range_violation_data 
+ * would occupy on the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_epon_denied_link_range_violation_data_get_packed_length(const bcmolt_epon_denied_link_range_violation_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_epon_denied_link_range_violation_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_denied_link_range_violation_data_unpack(bcmolt_epon_denied_link_range_violation_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_epon_denied_link_range_violation_data struct and 
+ * collects memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_epon_denied_link_range_violation_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_epon_denied_link_range_violation_data is 
+ * out of bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_denied_link_range_violation_data_bounds_check(const bcmolt_epon_denied_link_range_violation_data *this, bcmolt_presence_mask fields_present, bcmolt_epon_denied_link_range_violation_id *failed_prop);
+
+/** Initializes a bcmolt_epon_denied_link_rogue_violation_data struct.  This 
+ * sets all fields to default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_epon_denied_link_rogue_violation_data_set_default(bcmolt_epon_denied_link_rogue_violation_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_epon_denied_link_rogue_violation_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_denied_link_rogue_violation_data_pack(const bcmolt_epon_denied_link_rogue_violation_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_epon_denied_link_rogue_violation_data 
+ * would occupy on the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_epon_denied_link_rogue_violation_data_get_packed_length(const bcmolt_epon_denied_link_rogue_violation_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_epon_denied_link_rogue_violation_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_denied_link_rogue_violation_data_unpack(bcmolt_epon_denied_link_rogue_violation_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_epon_denied_link_rogue_violation_data struct and 
+ * collects memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_epon_denied_link_rogue_violation_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_epon_denied_link_rogue_violation_data is 
+ * out of bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_denied_link_rogue_violation_data_bounds_check(const bcmolt_epon_denied_link_rogue_violation_data *this, bcmolt_presence_mask fields_present, bcmolt_epon_denied_link_rogue_violation_id *failed_prop);
+
+/** Initializes a bcmolt_epon_denied_link_system_resource_violation_data struct. 
+ *  This sets all fields to default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_epon_denied_link_system_resource_violation_data_set_default(bcmolt_epon_denied_link_system_resource_violation_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_epon_denied_link_system_resource_violation_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_denied_link_system_resource_violation_data_pack(const bcmolt_epon_denied_link_system_resource_violation_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a 
+ * bcmolt_epon_denied_link_system_resource_violation_data would occupy on the 
+ * wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_epon_denied_link_system_resource_violation_data_get_packed_length(const bcmolt_epon_denied_link_system_resource_violation_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_epon_denied_link_system_resource_violation_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_denied_link_system_resource_violation_data_unpack(bcmolt_epon_denied_link_system_resource_violation_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_epon_denied_link_system_resource_violation_data 
+ * struct and collects memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_epon_denied_link_system_resource_violation_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the 
+ * bcmolt_epon_denied_link_system_resource_violation_data is out of bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_denied_link_system_resource_violation_data_bounds_check(const bcmolt_epon_denied_link_system_resource_violation_data *this, bcmolt_presence_mask fields_present, bcmolt_epon_denied_link_system_resource_violation_id *failed_prop);
+
+/** Initializes a bcmolt_epon_denied_link_tdm_channels_exhausted_data struct.  
+ * This sets all fields to default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_epon_denied_link_tdm_channels_exhausted_data_set_default(bcmolt_epon_denied_link_tdm_channels_exhausted_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_epon_denied_link_tdm_channels_exhausted_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_denied_link_tdm_channels_exhausted_data_pack(const bcmolt_epon_denied_link_tdm_channels_exhausted_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a 
+ * bcmolt_epon_denied_link_tdm_channels_exhausted_data would occupy on the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_epon_denied_link_tdm_channels_exhausted_data_get_packed_length(const bcmolt_epon_denied_link_tdm_channels_exhausted_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_epon_denied_link_tdm_channels_exhausted_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_denied_link_tdm_channels_exhausted_data_unpack(bcmolt_epon_denied_link_tdm_channels_exhausted_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_epon_denied_link_tdm_channels_exhausted_data 
+ * struct and collects memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_epon_denied_link_tdm_channels_exhausted_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the 
+ * bcmolt_epon_denied_link_tdm_channels_exhausted_data is out of bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_denied_link_tdm_channels_exhausted_data_bounds_check(const bcmolt_epon_denied_link_tdm_channels_exhausted_data *this, bcmolt_presence_mask fields_present, bcmolt_epon_denied_link_tdm_channels_exhausted_id *failed_prop);
+
+/** Initializes a bcmolt_epon_denied_link_unknown_link_violation_data struct.  
+ * This sets all fields to default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_epon_denied_link_unknown_link_violation_data_set_default(bcmolt_epon_denied_link_unknown_link_violation_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_epon_denied_link_unknown_link_violation_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_denied_link_unknown_link_violation_data_pack(const bcmolt_epon_denied_link_unknown_link_violation_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a 
+ * bcmolt_epon_denied_link_unknown_link_violation_data would occupy on the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_epon_denied_link_unknown_link_violation_data_get_packed_length(const bcmolt_epon_denied_link_unknown_link_violation_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_epon_denied_link_unknown_link_violation_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_denied_link_unknown_link_violation_data_unpack(bcmolt_epon_denied_link_unknown_link_violation_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_epon_denied_link_unknown_link_violation_data 
+ * struct and collects memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_epon_denied_link_unknown_link_violation_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the 
+ * bcmolt_epon_denied_link_unknown_link_violation_data is out of bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_denied_link_unknown_link_violation_data_bounds_check(const bcmolt_epon_denied_link_unknown_link_violation_data *this, bcmolt_presence_mask fields_present, bcmolt_epon_denied_link_unknown_link_violation_id *failed_prop);
+
+/** Initializes a bcmolt_epon_denied_link_upstream_bandwidth_violation_data 
+ * struct.  This sets all fields to default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_epon_denied_link_upstream_bandwidth_violation_data_set_default(bcmolt_epon_denied_link_upstream_bandwidth_violation_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_epon_denied_link_upstream_bandwidth_violation_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_denied_link_upstream_bandwidth_violation_data_pack(const bcmolt_epon_denied_link_upstream_bandwidth_violation_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a 
+ * bcmolt_epon_denied_link_upstream_bandwidth_violation_data would occupy on 
+ * the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_epon_denied_link_upstream_bandwidth_violation_data_get_packed_length(const bcmolt_epon_denied_link_upstream_bandwidth_violation_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_epon_denied_link_upstream_bandwidth_violation_data from 
+ * bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_denied_link_upstream_bandwidth_violation_data_unpack(bcmolt_epon_denied_link_upstream_bandwidth_violation_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed 
+ * bcmolt_epon_denied_link_upstream_bandwidth_violation_data struct and 
+ * collects memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_epon_denied_link_upstream_bandwidth_violation_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the 
+ * bcmolt_epon_denied_link_upstream_bandwidth_violation_data is out of bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_denied_link_upstream_bandwidth_violation_data_bounds_check(const bcmolt_epon_denied_link_upstream_bandwidth_violation_data *this, bcmolt_presence_mask fields_present, bcmolt_epon_denied_link_upstream_bandwidth_violation_id *failed_prop);
+
+/** Initializes a bcmolt_epon_denied_link_auto_cfg_data struct.  This sets all 
+ * fields to default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_epon_denied_link_auto_cfg_data_set_default(bcmolt_epon_denied_link_auto_cfg_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_epon_denied_link_auto_cfg_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_denied_link_auto_cfg_data_pack(const bcmolt_epon_denied_link_auto_cfg_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_epon_denied_link_auto_cfg_data would 
+ * occupy on the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_epon_denied_link_auto_cfg_data_get_packed_length(const bcmolt_epon_denied_link_auto_cfg_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_epon_denied_link_auto_cfg_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_denied_link_auto_cfg_data_unpack(bcmolt_epon_denied_link_auto_cfg_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_epon_denied_link_auto_cfg_data struct and 
+ * collects memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_epon_denied_link_auto_cfg_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_epon_denied_link_auto_cfg_data is out of 
+ * bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_denied_link_auto_cfg_data_bounds_check(const bcmolt_epon_denied_link_auto_cfg_data *this, bcmolt_presence_mask fields_present, bcmolt_epon_denied_link_auto_cfg_id *failed_prop);
+
+/** Initializes a bcmolt_epon_link_key struct.  This sets all fields to default 
+ * values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_epon_link_key_set_default(bcmolt_epon_link_key *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_epon_link_key to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_link_key_pack(const bcmolt_epon_link_key *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_epon_link_key would occupy on the 
+ * wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_epon_link_key_get_packed_length(const bcmolt_epon_link_key *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_epon_link_key from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_link_key_unpack(bcmolt_epon_link_key *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_epon_link_key struct and collects memory 
+ * requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_epon_link_key_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_epon_link_key is out of bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_link_key_bounds_check(const bcmolt_epon_link_key *this, bcmolt_presence_mask fields_present, bcmolt_epon_link_key_id *failed_prop);
+
+/** Initializes a bcmolt_epon_link_cfg_data struct.  This sets all fields to 
+ * default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_epon_link_cfg_data_set_default(bcmolt_epon_link_cfg_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_epon_link_cfg_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_link_cfg_data_pack(const bcmolt_epon_link_cfg_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_epon_link_cfg_data would occupy on 
+ * the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_epon_link_cfg_data_get_packed_length(const bcmolt_epon_link_cfg_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_epon_link_cfg_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_link_cfg_data_unpack(bcmolt_epon_link_cfg_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_epon_link_cfg_data struct and collects memory 
+ * requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_epon_link_cfg_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_epon_link_cfg_data is out of bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_link_cfg_data_bounds_check(const bcmolt_epon_link_cfg_data *this, bcmolt_presence_mask fields_present, bcmolt_epon_link_cfg_id *failed_prop);
+
+/** Initializes a bcmolt_epon_link_stat_data struct.  This sets all fields to 
+ * default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_epon_link_stat_data_set_default(bcmolt_epon_link_stat_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_epon_link_stat_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_link_stat_data_pack(const bcmolt_epon_link_stat_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_epon_link_stat_data would occupy on 
+ * the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_epon_link_stat_data_get_packed_length(const bcmolt_epon_link_stat_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_epon_link_stat_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_link_stat_data_unpack(bcmolt_epon_link_stat_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_epon_link_stat_data struct and collects memory 
+ * requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_epon_link_stat_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_epon_link_stat_data is out of bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_link_stat_data_bounds_check(const bcmolt_epon_link_stat_data *this, bcmolt_presence_mask fields_present, bcmolt_epon_link_stat_id *failed_prop);
+
+/** Initializes a bcmolt_epon_link_stat_cfg_data struct.  This sets all fields 
+ * to default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_epon_link_stat_cfg_data_set_default(bcmolt_epon_link_stat_cfg_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_epon_link_stat_cfg_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_link_stat_cfg_data_pack(const bcmolt_epon_link_stat_cfg_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_epon_link_stat_cfg_data would occupy 
+ * on the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_epon_link_stat_cfg_data_get_packed_length(const bcmolt_epon_link_stat_cfg_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_epon_link_stat_cfg_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_link_stat_cfg_data_unpack(bcmolt_epon_link_stat_cfg_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_epon_link_stat_cfg_data struct and collects 
+ * memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_epon_link_stat_cfg_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_epon_link_stat_cfg_data is out of bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_link_stat_cfg_data_bounds_check(const bcmolt_epon_link_stat_cfg_data *this, bcmolt_presence_mask fields_present, bcmolt_epon_link_stat_cfg_id *failed_prop);
+
+/** Initializes a bcmolt_epon_link_duplicate_mpcp_registration_request_data 
+ * struct.  This sets all fields to default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_epon_link_duplicate_mpcp_registration_request_data_set_default(bcmolt_epon_link_duplicate_mpcp_registration_request_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_epon_link_duplicate_mpcp_registration_request_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_link_duplicate_mpcp_registration_request_data_pack(const bcmolt_epon_link_duplicate_mpcp_registration_request_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a 
+ * bcmolt_epon_link_duplicate_mpcp_registration_request_data would occupy on 
+ * the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_epon_link_duplicate_mpcp_registration_request_data_get_packed_length(const bcmolt_epon_link_duplicate_mpcp_registration_request_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_epon_link_duplicate_mpcp_registration_request_data from 
+ * bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_link_duplicate_mpcp_registration_request_data_unpack(bcmolt_epon_link_duplicate_mpcp_registration_request_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed 
+ * bcmolt_epon_link_duplicate_mpcp_registration_request_data struct and 
+ * collects memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_epon_link_duplicate_mpcp_registration_request_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the 
+ * bcmolt_epon_link_duplicate_mpcp_registration_request_data is out of bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_link_duplicate_mpcp_registration_request_data_bounds_check(const bcmolt_epon_link_duplicate_mpcp_registration_request_data *this, bcmolt_presence_mask fields_present, bcmolt_epon_link_duplicate_mpcp_registration_request_id *failed_prop);
+
+/** Initializes a bcmolt_epon_link_key_exchange_failure_data struct.  This sets 
+ * all fields to default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_epon_link_key_exchange_failure_data_set_default(bcmolt_epon_link_key_exchange_failure_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_epon_link_key_exchange_failure_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_link_key_exchange_failure_data_pack(const bcmolt_epon_link_key_exchange_failure_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_epon_link_key_exchange_failure_data 
+ * would occupy on the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_epon_link_key_exchange_failure_data_get_packed_length(const bcmolt_epon_link_key_exchange_failure_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_epon_link_key_exchange_failure_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_link_key_exchange_failure_data_unpack(bcmolt_epon_link_key_exchange_failure_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_epon_link_key_exchange_failure_data struct and 
+ * collects memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_epon_link_key_exchange_failure_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_epon_link_key_exchange_failure_data is out 
+ * of bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_link_key_exchange_failure_data_bounds_check(const bcmolt_epon_link_key_exchange_failure_data *this, bcmolt_presence_mask fields_present, bcmolt_epon_link_key_exchange_failure_id *failed_prop);
+
+/** Initializes a bcmolt_epon_link_link_speed_mismatch_data struct.  This sets 
+ * all fields to default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_epon_link_link_speed_mismatch_data_set_default(bcmolt_epon_link_link_speed_mismatch_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_epon_link_link_speed_mismatch_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_link_link_speed_mismatch_data_pack(const bcmolt_epon_link_link_speed_mismatch_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_epon_link_link_speed_mismatch_data 
+ * would occupy on the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_epon_link_link_speed_mismatch_data_get_packed_length(const bcmolt_epon_link_link_speed_mismatch_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_epon_link_link_speed_mismatch_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_link_link_speed_mismatch_data_unpack(bcmolt_epon_link_link_speed_mismatch_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_epon_link_link_speed_mismatch_data struct and 
+ * collects memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_epon_link_link_speed_mismatch_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_epon_link_link_speed_mismatch_data is out 
+ * of bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_link_link_speed_mismatch_data_bounds_check(const bcmolt_epon_link_link_speed_mismatch_data *this, bcmolt_presence_mask fields_present, bcmolt_epon_link_link_speed_mismatch_id *failed_prop);
+
+/** Initializes a bcmolt_epon_link_mpcp_discovered_data struct.  This sets all 
+ * fields to default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_epon_link_mpcp_discovered_data_set_default(bcmolt_epon_link_mpcp_discovered_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_epon_link_mpcp_discovered_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_link_mpcp_discovered_data_pack(const bcmolt_epon_link_mpcp_discovered_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_epon_link_mpcp_discovered_data would 
+ * occupy on the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_epon_link_mpcp_discovered_data_get_packed_length(const bcmolt_epon_link_mpcp_discovered_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_epon_link_mpcp_discovered_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_link_mpcp_discovered_data_unpack(bcmolt_epon_link_mpcp_discovered_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_epon_link_mpcp_discovered_data struct and 
+ * collects memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_epon_link_mpcp_discovered_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_epon_link_mpcp_discovered_data is out of 
+ * bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_link_mpcp_discovered_data_bounds_check(const bcmolt_epon_link_mpcp_discovered_data *this, bcmolt_presence_mask fields_present, bcmolt_epon_link_mpcp_discovered_id *failed_prop);
+
+/** Initializes a bcmolt_epon_link_mpcp_report_timeout_data struct.  This sets 
+ * all fields to default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_epon_link_mpcp_report_timeout_data_set_default(bcmolt_epon_link_mpcp_report_timeout_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_epon_link_mpcp_report_timeout_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_link_mpcp_report_timeout_data_pack(const bcmolt_epon_link_mpcp_report_timeout_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_epon_link_mpcp_report_timeout_data 
+ * would occupy on the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_epon_link_mpcp_report_timeout_data_get_packed_length(const bcmolt_epon_link_mpcp_report_timeout_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_epon_link_mpcp_report_timeout_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_link_mpcp_report_timeout_data_unpack(bcmolt_epon_link_mpcp_report_timeout_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_epon_link_mpcp_report_timeout_data struct and 
+ * collects memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_epon_link_mpcp_report_timeout_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_epon_link_mpcp_report_timeout_data is out 
+ * of bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_link_mpcp_report_timeout_data_bounds_check(const bcmolt_epon_link_mpcp_report_timeout_data *this, bcmolt_presence_mask fields_present, bcmolt_epon_link_mpcp_report_timeout_id *failed_prop);
+
+/** Initializes a bcmolt_epon_link_oam_keepalive_timeout_data struct.  This sets 
+ * all fields to default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_epon_link_oam_keepalive_timeout_data_set_default(bcmolt_epon_link_oam_keepalive_timeout_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_epon_link_oam_keepalive_timeout_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_link_oam_keepalive_timeout_data_pack(const bcmolt_epon_link_oam_keepalive_timeout_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_epon_link_oam_keepalive_timeout_data 
+ * would occupy on the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_epon_link_oam_keepalive_timeout_data_get_packed_length(const bcmolt_epon_link_oam_keepalive_timeout_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_epon_link_oam_keepalive_timeout_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_link_oam_keepalive_timeout_data_unpack(bcmolt_epon_link_oam_keepalive_timeout_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_epon_link_oam_keepalive_timeout_data struct and 
+ * collects memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_epon_link_oam_keepalive_timeout_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_epon_link_oam_keepalive_timeout_data is 
+ * out of bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_link_oam_keepalive_timeout_data_bounds_check(const bcmolt_epon_link_oam_keepalive_timeout_data *this, bcmolt_presence_mask fields_present, bcmolt_epon_link_oam_keepalive_timeout_id *failed_prop);
+
+/** Initializes a bcmolt_epon_link_preprovisioned_link_created_data struct.  
+ * This sets all fields to default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_epon_link_preprovisioned_link_created_data_set_default(bcmolt_epon_link_preprovisioned_link_created_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_epon_link_preprovisioned_link_created_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_link_preprovisioned_link_created_data_pack(const bcmolt_epon_link_preprovisioned_link_created_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a 
+ * bcmolt_epon_link_preprovisioned_link_created_data would occupy on the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_epon_link_preprovisioned_link_created_data_get_packed_length(const bcmolt_epon_link_preprovisioned_link_created_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_epon_link_preprovisioned_link_created_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_link_preprovisioned_link_created_data_unpack(bcmolt_epon_link_preprovisioned_link_created_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_epon_link_preprovisioned_link_created_data struct 
+ * and collects memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_epon_link_preprovisioned_link_created_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_epon_link_preprovisioned_link_created_data 
+ * is out of bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_link_preprovisioned_link_created_data_bounds_check(const bcmolt_epon_link_preprovisioned_link_created_data *this, bcmolt_presence_mask fields_present, bcmolt_epon_link_preprovisioned_link_created_id *failed_prop);
+
+/** Initializes a bcmolt_epon_link_protection_switch_occurred_data struct.  This 
+ * sets all fields to default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_epon_link_protection_switch_occurred_data_set_default(bcmolt_epon_link_protection_switch_occurred_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_epon_link_protection_switch_occurred_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_link_protection_switch_occurred_data_pack(const bcmolt_epon_link_protection_switch_occurred_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a 
+ * bcmolt_epon_link_protection_switch_occurred_data would occupy on the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_epon_link_protection_switch_occurred_data_get_packed_length(const bcmolt_epon_link_protection_switch_occurred_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_epon_link_protection_switch_occurred_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_link_protection_switch_occurred_data_unpack(bcmolt_epon_link_protection_switch_occurred_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_epon_link_protection_switch_occurred_data struct 
+ * and collects memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_epon_link_protection_switch_occurred_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_epon_link_protection_switch_occurred_data 
+ * is out of bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_link_protection_switch_occurred_data_bounds_check(const bcmolt_epon_link_protection_switch_occurred_data *this, bcmolt_presence_mask fields_present, bcmolt_epon_link_protection_switch_occurred_id *failed_prop);
+
+/** Initializes a bcmolt_epon_link_range_value_changed_data struct.  This sets 
+ * all fields to default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_epon_link_range_value_changed_data_set_default(bcmolt_epon_link_range_value_changed_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_epon_link_range_value_changed_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_link_range_value_changed_data_pack(const bcmolt_epon_link_range_value_changed_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_epon_link_range_value_changed_data 
+ * would occupy on the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_epon_link_range_value_changed_data_get_packed_length(const bcmolt_epon_link_range_value_changed_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_epon_link_range_value_changed_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_link_range_value_changed_data_unpack(bcmolt_epon_link_range_value_changed_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_epon_link_range_value_changed_data struct and 
+ * collects memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_epon_link_range_value_changed_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_epon_link_range_value_changed_data is out 
+ * of bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_link_range_value_changed_data_bounds_check(const bcmolt_epon_link_range_value_changed_data *this, bcmolt_presence_mask fields_present, bcmolt_epon_link_range_value_changed_id *failed_prop);
+
+/** Initializes a bcmolt_epon_link_stat_alarm_cleared_data struct.  This sets 
+ * all fields to default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_epon_link_stat_alarm_cleared_data_set_default(bcmolt_epon_link_stat_alarm_cleared_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_epon_link_stat_alarm_cleared_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_link_stat_alarm_cleared_data_pack(const bcmolt_epon_link_stat_alarm_cleared_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_epon_link_stat_alarm_cleared_data 
+ * would occupy on the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_epon_link_stat_alarm_cleared_data_get_packed_length(const bcmolt_epon_link_stat_alarm_cleared_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_epon_link_stat_alarm_cleared_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_link_stat_alarm_cleared_data_unpack(bcmolt_epon_link_stat_alarm_cleared_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_epon_link_stat_alarm_cleared_data struct and 
+ * collects memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_epon_link_stat_alarm_cleared_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_epon_link_stat_alarm_cleared_data is out 
+ * of bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_link_stat_alarm_cleared_data_bounds_check(const bcmolt_epon_link_stat_alarm_cleared_data *this, bcmolt_presence_mask fields_present, bcmolt_epon_link_stat_alarm_cleared_id *failed_prop);
+
+/** Initializes a bcmolt_epon_link_stat_alarm_raised_data struct.  This sets all 
+ * fields to default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_epon_link_stat_alarm_raised_data_set_default(bcmolt_epon_link_stat_alarm_raised_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_epon_link_stat_alarm_raised_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_link_stat_alarm_raised_data_pack(const bcmolt_epon_link_stat_alarm_raised_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_epon_link_stat_alarm_raised_data 
+ * would occupy on the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_epon_link_stat_alarm_raised_data_get_packed_length(const bcmolt_epon_link_stat_alarm_raised_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_epon_link_stat_alarm_raised_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_link_stat_alarm_raised_data_unpack(bcmolt_epon_link_stat_alarm_raised_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_epon_link_stat_alarm_raised_data struct and 
+ * collects memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_epon_link_stat_alarm_raised_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_epon_link_stat_alarm_raised_data is out of 
+ * bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_link_stat_alarm_raised_data_bounds_check(const bcmolt_epon_link_stat_alarm_raised_data *this, bcmolt_presence_mask fields_present, bcmolt_epon_link_stat_alarm_raised_id *failed_prop);
+
+/** Initializes a bcmolt_epon_link_auto_cfg_data struct.  This sets all fields 
+ * to default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_epon_link_auto_cfg_data_set_default(bcmolt_epon_link_auto_cfg_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_epon_link_auto_cfg_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_link_auto_cfg_data_pack(const bcmolt_epon_link_auto_cfg_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_epon_link_auto_cfg_data would occupy 
+ * on the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_epon_link_auto_cfg_data_get_packed_length(const bcmolt_epon_link_auto_cfg_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_epon_link_auto_cfg_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_link_auto_cfg_data_unpack(bcmolt_epon_link_auto_cfg_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_epon_link_auto_cfg_data struct and collects 
+ * memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_epon_link_auto_cfg_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_epon_link_auto_cfg_data is out of bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_link_auto_cfg_data_bounds_check(const bcmolt_epon_link_auto_cfg_data *this, bcmolt_presence_mask fields_present, bcmolt_epon_link_auto_cfg_id *failed_prop);
+
+/** Initializes a bcmolt_epon_link_key_exchange_start_data struct.  This sets 
+ * all fields to default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_epon_link_key_exchange_start_data_set_default(bcmolt_epon_link_key_exchange_start_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_epon_link_key_exchange_start_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_link_key_exchange_start_data_pack(const bcmolt_epon_link_key_exchange_start_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_epon_link_key_exchange_start_data 
+ * would occupy on the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_epon_link_key_exchange_start_data_get_packed_length(const bcmolt_epon_link_key_exchange_start_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_epon_link_key_exchange_start_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_link_key_exchange_start_data_unpack(bcmolt_epon_link_key_exchange_start_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_epon_link_key_exchange_start_data struct and 
+ * collects memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_epon_link_key_exchange_start_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_epon_link_key_exchange_start_data is out 
+ * of bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_link_key_exchange_start_data_bounds_check(const bcmolt_epon_link_key_exchange_start_data *this, bcmolt_presence_mask fields_present, bcmolt_epon_link_key_exchange_start_id *failed_prop);
+
+/** Initializes a bcmolt_epon_link_oam_keepalive_timer_start_data struct.  This 
+ * sets all fields to default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_epon_link_oam_keepalive_timer_start_data_set_default(bcmolt_epon_link_oam_keepalive_timer_start_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_epon_link_oam_keepalive_timer_start_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_link_oam_keepalive_timer_start_data_pack(const bcmolt_epon_link_oam_keepalive_timer_start_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a 
+ * bcmolt_epon_link_oam_keepalive_timer_start_data would occupy on the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_epon_link_oam_keepalive_timer_start_data_get_packed_length(const bcmolt_epon_link_oam_keepalive_timer_start_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_epon_link_oam_keepalive_timer_start_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_link_oam_keepalive_timer_start_data_unpack(bcmolt_epon_link_oam_keepalive_timer_start_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_epon_link_oam_keepalive_timer_start_data struct 
+ * and collects memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_epon_link_oam_keepalive_timer_start_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_epon_link_oam_keepalive_timer_start_data 
+ * is out of bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_link_oam_keepalive_timer_start_data_bounds_check(const bcmolt_epon_link_oam_keepalive_timer_start_data *this, bcmolt_presence_mask fields_present, bcmolt_epon_link_oam_keepalive_timer_start_id *failed_prop);
+
+/** Initializes a bcmolt_epon_link_static_registration_data struct.  This sets 
+ * all fields to default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_epon_link_static_registration_data_set_default(bcmolt_epon_link_static_registration_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_epon_link_static_registration_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_link_static_registration_data_pack(const bcmolt_epon_link_static_registration_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_epon_link_static_registration_data 
+ * would occupy on the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_epon_link_static_registration_data_get_packed_length(const bcmolt_epon_link_static_registration_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_epon_link_static_registration_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_link_static_registration_data_unpack(bcmolt_epon_link_static_registration_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_epon_link_static_registration_data struct and 
+ * collects memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_epon_link_static_registration_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_epon_link_static_registration_data is out 
+ * of bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_link_static_registration_data_bounds_check(const bcmolt_epon_link_static_registration_data *this, bcmolt_presence_mask fields_present, bcmolt_epon_link_static_registration_id *failed_prop);
+
+/** Initializes a bcmolt_epon_link_inject_frame_data struct.  This sets all 
+ * fields to default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_epon_link_inject_frame_data_set_default(bcmolt_epon_link_inject_frame_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_epon_link_inject_frame_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_link_inject_frame_data_pack(const bcmolt_epon_link_inject_frame_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_epon_link_inject_frame_data would 
+ * occupy on the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_epon_link_inject_frame_data_get_packed_length(const bcmolt_epon_link_inject_frame_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_epon_link_inject_frame_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_link_inject_frame_data_unpack(bcmolt_epon_link_inject_frame_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_epon_link_inject_frame_data struct and collects 
+ * memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_epon_link_inject_frame_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_epon_link_inject_frame_data is out of 
+ * bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_link_inject_frame_data_bounds_check(const bcmolt_epon_link_inject_frame_data *this, bcmolt_presence_mask fields_present, bcmolt_epon_link_inject_frame_id *failed_prop);
+
+/** Initializes a bcmolt_epon_link_frame_captured_data struct.  This sets all 
+ * fields to default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_epon_link_frame_captured_data_set_default(bcmolt_epon_link_frame_captured_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_epon_link_frame_captured_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_link_frame_captured_data_pack(const bcmolt_epon_link_frame_captured_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_epon_link_frame_captured_data would 
+ * occupy on the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_epon_link_frame_captured_data_get_packed_length(const bcmolt_epon_link_frame_captured_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_epon_link_frame_captured_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_link_frame_captured_data_unpack(bcmolt_epon_link_frame_captured_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_epon_link_frame_captured_data struct and collects 
+ * memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_epon_link_frame_captured_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_epon_link_frame_captured_data is out of 
+ * bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_link_frame_captured_data_bounds_check(const bcmolt_epon_link_frame_captured_data *this, bcmolt_presence_mask fields_present, bcmolt_epon_link_frame_captured_id *failed_prop);
+
+/** Initializes a bcmolt_epon_ni_key struct.  This sets all fields to default 
+ * values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_epon_ni_key_set_default(bcmolt_epon_ni_key *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_epon_ni_key to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_ni_key_pack(const bcmolt_epon_ni_key *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_epon_ni_key would occupy on the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_epon_ni_key_get_packed_length(const bcmolt_epon_ni_key *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_epon_ni_key from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_ni_key_unpack(bcmolt_epon_ni_key *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_epon_ni_key struct and collects memory 
+ * requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_epon_ni_key_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_epon_ni_key is out of bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_ni_key_bounds_check(const bcmolt_epon_ni_key *this, bcmolt_presence_mask fields_present, bcmolt_epon_ni_key_id *failed_prop);
+
+/** Initializes a bcmolt_epon_ni_cfg_data struct.  This sets all fields to 
+ * default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_epon_ni_cfg_data_set_default(bcmolt_epon_ni_cfg_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_epon_ni_cfg_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_ni_cfg_data_pack(const bcmolt_epon_ni_cfg_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_epon_ni_cfg_data would occupy on the 
+ * wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_epon_ni_cfg_data_get_packed_length(const bcmolt_epon_ni_cfg_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_epon_ni_cfg_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_ni_cfg_data_unpack(bcmolt_epon_ni_cfg_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_epon_ni_cfg_data struct and collects memory 
+ * requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_epon_ni_cfg_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_epon_ni_cfg_data is out of bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_ni_cfg_data_bounds_check(const bcmolt_epon_ni_cfg_data *this, bcmolt_presence_mask fields_present, bcmolt_epon_ni_cfg_id *failed_prop);
+
+/** Initializes a bcmolt_epon_ni_llid_quarantined_data struct.  This sets all 
+ * fields to default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_epon_ni_llid_quarantined_data_set_default(bcmolt_epon_ni_llid_quarantined_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_epon_ni_llid_quarantined_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_ni_llid_quarantined_data_pack(const bcmolt_epon_ni_llid_quarantined_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_epon_ni_llid_quarantined_data would 
+ * occupy on the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_epon_ni_llid_quarantined_data_get_packed_length(const bcmolt_epon_ni_llid_quarantined_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_epon_ni_llid_quarantined_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_ni_llid_quarantined_data_unpack(bcmolt_epon_ni_llid_quarantined_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_epon_ni_llid_quarantined_data struct and collects 
+ * memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_epon_ni_llid_quarantined_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_epon_ni_llid_quarantined_data is out of 
+ * bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_ni_llid_quarantined_data_bounds_check(const bcmolt_epon_ni_llid_quarantined_data *this, bcmolt_presence_mask fields_present, bcmolt_epon_ni_llid_quarantined_id *failed_prop);
+
+/** Initializes a bcmolt_epon_ni_mpcp_timestamp_changed_data struct.  This sets 
+ * all fields to default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_epon_ni_mpcp_timestamp_changed_data_set_default(bcmolt_epon_ni_mpcp_timestamp_changed_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_epon_ni_mpcp_timestamp_changed_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_ni_mpcp_timestamp_changed_data_pack(const bcmolt_epon_ni_mpcp_timestamp_changed_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_epon_ni_mpcp_timestamp_changed_data 
+ * would occupy on the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_epon_ni_mpcp_timestamp_changed_data_get_packed_length(const bcmolt_epon_ni_mpcp_timestamp_changed_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_epon_ni_mpcp_timestamp_changed_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_ni_mpcp_timestamp_changed_data_unpack(bcmolt_epon_ni_mpcp_timestamp_changed_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_epon_ni_mpcp_timestamp_changed_data struct and 
+ * collects memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_epon_ni_mpcp_timestamp_changed_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_epon_ni_mpcp_timestamp_changed_data is out 
+ * of bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_ni_mpcp_timestamp_changed_data_bounds_check(const bcmolt_epon_ni_mpcp_timestamp_changed_data *this, bcmolt_presence_mask fields_present, bcmolt_epon_ni_mpcp_timestamp_changed_id *failed_prop);
+
+/** Initializes a bcmolt_epon_ni_no_reports_data struct.  This sets all fields 
+ * to default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_epon_ni_no_reports_data_set_default(bcmolt_epon_ni_no_reports_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_epon_ni_no_reports_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_ni_no_reports_data_pack(const bcmolt_epon_ni_no_reports_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_epon_ni_no_reports_data would occupy 
+ * on the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_epon_ni_no_reports_data_get_packed_length(const bcmolt_epon_ni_no_reports_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_epon_ni_no_reports_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_ni_no_reports_data_unpack(bcmolt_epon_ni_no_reports_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_epon_ni_no_reports_data struct and collects 
+ * memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_epon_ni_no_reports_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_epon_ni_no_reports_data is out of bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_ni_no_reports_data_bounds_check(const bcmolt_epon_ni_no_reports_data *this, bcmolt_presence_mask fields_present, bcmolt_epon_ni_no_reports_id *failed_prop);
+
+/** Initializes a bcmolt_epon_ni_onu_upgrade_complete_data struct.  This sets 
+ * all fields to default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_epon_ni_onu_upgrade_complete_data_set_default(bcmolt_epon_ni_onu_upgrade_complete_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_epon_ni_onu_upgrade_complete_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_ni_onu_upgrade_complete_data_pack(const bcmolt_epon_ni_onu_upgrade_complete_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_epon_ni_onu_upgrade_complete_data 
+ * would occupy on the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_epon_ni_onu_upgrade_complete_data_get_packed_length(const bcmolt_epon_ni_onu_upgrade_complete_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_epon_ni_onu_upgrade_complete_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_ni_onu_upgrade_complete_data_unpack(bcmolt_epon_ni_onu_upgrade_complete_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_epon_ni_onu_upgrade_complete_data struct and 
+ * collects memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_epon_ni_onu_upgrade_complete_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_epon_ni_onu_upgrade_complete_data is out 
+ * of bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_ni_onu_upgrade_complete_data_bounds_check(const bcmolt_epon_ni_onu_upgrade_complete_data *this, bcmolt_presence_mask fields_present, bcmolt_epon_ni_onu_upgrade_complete_id *failed_prop);
+
+/** Initializes a bcmolt_epon_ni_rogue_scan_complete_data struct.  This sets all 
+ * fields to default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_epon_ni_rogue_scan_complete_data_set_default(bcmolt_epon_ni_rogue_scan_complete_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_epon_ni_rogue_scan_complete_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_ni_rogue_scan_complete_data_pack(const bcmolt_epon_ni_rogue_scan_complete_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_epon_ni_rogue_scan_complete_data 
+ * would occupy on the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_epon_ni_rogue_scan_complete_data_get_packed_length(const bcmolt_epon_ni_rogue_scan_complete_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_epon_ni_rogue_scan_complete_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_ni_rogue_scan_complete_data_unpack(bcmolt_epon_ni_rogue_scan_complete_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_epon_ni_rogue_scan_complete_data struct and 
+ * collects memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_epon_ni_rogue_scan_complete_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_epon_ni_rogue_scan_complete_data is out of 
+ * bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_ni_rogue_scan_complete_data_bounds_check(const bcmolt_epon_ni_rogue_scan_complete_data *this, bcmolt_presence_mask fields_present, bcmolt_epon_ni_rogue_scan_complete_id *failed_prop);
+
+/** Initializes a bcmolt_epon_ni_rssi_measurement_completed_data struct.  This 
+ * sets all fields to default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_epon_ni_rssi_measurement_completed_data_set_default(bcmolt_epon_ni_rssi_measurement_completed_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_epon_ni_rssi_measurement_completed_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_ni_rssi_measurement_completed_data_pack(const bcmolt_epon_ni_rssi_measurement_completed_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a 
+ * bcmolt_epon_ni_rssi_measurement_completed_data would occupy on the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_epon_ni_rssi_measurement_completed_data_get_packed_length(const bcmolt_epon_ni_rssi_measurement_completed_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_epon_ni_rssi_measurement_completed_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_ni_rssi_measurement_completed_data_unpack(bcmolt_epon_ni_rssi_measurement_completed_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_epon_ni_rssi_measurement_completed_data struct 
+ * and collects memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_epon_ni_rssi_measurement_completed_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_epon_ni_rssi_measurement_completed_data is 
+ * out of bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_ni_rssi_measurement_completed_data_bounds_check(const bcmolt_epon_ni_rssi_measurement_completed_data *this, bcmolt_presence_mask fields_present, bcmolt_epon_ni_rssi_measurement_completed_id *failed_prop);
+
+/** Initializes a bcmolt_epon_ni_state_change_completed_data struct.  This sets 
+ * all fields to default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_epon_ni_state_change_completed_data_set_default(bcmolt_epon_ni_state_change_completed_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_epon_ni_state_change_completed_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_ni_state_change_completed_data_pack(const bcmolt_epon_ni_state_change_completed_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_epon_ni_state_change_completed_data 
+ * would occupy on the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_epon_ni_state_change_completed_data_get_packed_length(const bcmolt_epon_ni_state_change_completed_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_epon_ni_state_change_completed_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_ni_state_change_completed_data_unpack(bcmolt_epon_ni_state_change_completed_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_epon_ni_state_change_completed_data struct and 
+ * collects memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_epon_ni_state_change_completed_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_epon_ni_state_change_completed_data is out 
+ * of bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_ni_state_change_completed_data_bounds_check(const bcmolt_epon_ni_state_change_completed_data *this, bcmolt_presence_mask fields_present, bcmolt_epon_ni_state_change_completed_id *failed_prop);
+
+/** Initializes a bcmolt_epon_ni_auto_cfg_data struct.  This sets all fields to 
+ * default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_epon_ni_auto_cfg_data_set_default(bcmolt_epon_ni_auto_cfg_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_epon_ni_auto_cfg_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_ni_auto_cfg_data_pack(const bcmolt_epon_ni_auto_cfg_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_epon_ni_auto_cfg_data would occupy on 
+ * the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_epon_ni_auto_cfg_data_get_packed_length(const bcmolt_epon_ni_auto_cfg_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_epon_ni_auto_cfg_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_ni_auto_cfg_data_unpack(bcmolt_epon_ni_auto_cfg_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_epon_ni_auto_cfg_data struct and collects memory 
+ * requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_epon_ni_auto_cfg_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_epon_ni_auto_cfg_data is out of bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_ni_auto_cfg_data_bounds_check(const bcmolt_epon_ni_auto_cfg_data *this, bcmolt_presence_mask fields_present, bcmolt_epon_ni_auto_cfg_id *failed_prop);
+
+/** Initializes a bcmolt_epon_ni_add_link_data struct.  This sets all fields to 
+ * default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_epon_ni_add_link_data_set_default(bcmolt_epon_ni_add_link_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_epon_ni_add_link_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_ni_add_link_data_pack(const bcmolt_epon_ni_add_link_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_epon_ni_add_link_data would occupy on 
+ * the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_epon_ni_add_link_data_get_packed_length(const bcmolt_epon_ni_add_link_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_epon_ni_add_link_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_ni_add_link_data_unpack(bcmolt_epon_ni_add_link_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_epon_ni_add_link_data struct and collects memory 
+ * requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_epon_ni_add_link_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_epon_ni_add_link_data is out of bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_ni_add_link_data_bounds_check(const bcmolt_epon_ni_add_link_data *this, bcmolt_presence_mask fields_present, bcmolt_epon_ni_add_link_id *failed_prop);
+
+/** Initializes a bcmolt_epon_ni_add_multicast_link_data struct.  This sets all 
+ * fields to default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_epon_ni_add_multicast_link_data_set_default(bcmolt_epon_ni_add_multicast_link_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_epon_ni_add_multicast_link_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_ni_add_multicast_link_data_pack(const bcmolt_epon_ni_add_multicast_link_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_epon_ni_add_multicast_link_data would 
+ * occupy on the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_epon_ni_add_multicast_link_data_get_packed_length(const bcmolt_epon_ni_add_multicast_link_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_epon_ni_add_multicast_link_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_ni_add_multicast_link_data_unpack(bcmolt_epon_ni_add_multicast_link_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_epon_ni_add_multicast_link_data struct and 
+ * collects memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_epon_ni_add_multicast_link_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_epon_ni_add_multicast_link_data is out of 
+ * bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_ni_add_multicast_link_data_bounds_check(const bcmolt_epon_ni_add_multicast_link_data *this, bcmolt_presence_mask fields_present, bcmolt_epon_ni_add_multicast_link_id *failed_prop);
+
+/** Initializes a bcmolt_epon_ni_add_protected_standby_link_data struct.  This 
+ * sets all fields to default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_epon_ni_add_protected_standby_link_data_set_default(bcmolt_epon_ni_add_protected_standby_link_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_epon_ni_add_protected_standby_link_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_ni_add_protected_standby_link_data_pack(const bcmolt_epon_ni_add_protected_standby_link_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a 
+ * bcmolt_epon_ni_add_protected_standby_link_data would occupy on the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_epon_ni_add_protected_standby_link_data_get_packed_length(const bcmolt_epon_ni_add_protected_standby_link_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_epon_ni_add_protected_standby_link_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_ni_add_protected_standby_link_data_unpack(bcmolt_epon_ni_add_protected_standby_link_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_epon_ni_add_protected_standby_link_data struct 
+ * and collects memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_epon_ni_add_protected_standby_link_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_epon_ni_add_protected_standby_link_data is 
+ * out of bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_ni_add_protected_standby_link_data_bounds_check(const bcmolt_epon_ni_add_protected_standby_link_data *this, bcmolt_presence_mask fields_present, bcmolt_epon_ni_add_protected_standby_link_id *failed_prop);
+
+/** Initializes a bcmolt_epon_ni_issue_rssi_grant_data struct.  This sets all 
+ * fields to default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_epon_ni_issue_rssi_grant_data_set_default(bcmolt_epon_ni_issue_rssi_grant_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_epon_ni_issue_rssi_grant_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_ni_issue_rssi_grant_data_pack(const bcmolt_epon_ni_issue_rssi_grant_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_epon_ni_issue_rssi_grant_data would 
+ * occupy on the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_epon_ni_issue_rssi_grant_data_get_packed_length(const bcmolt_epon_ni_issue_rssi_grant_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_epon_ni_issue_rssi_grant_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_ni_issue_rssi_grant_data_unpack(bcmolt_epon_ni_issue_rssi_grant_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_epon_ni_issue_rssi_grant_data struct and collects 
+ * memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_epon_ni_issue_rssi_grant_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_epon_ni_issue_rssi_grant_data is out of 
+ * bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_ni_issue_rssi_grant_data_bounds_check(const bcmolt_epon_ni_issue_rssi_grant_data *this, bcmolt_presence_mask fields_present, bcmolt_epon_ni_issue_rssi_grant_id *failed_prop);
+
+/** Initializes a bcmolt_epon_ni_protection_switching_apply_rerange_delta_data 
+ * struct.  This sets all fields to default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_epon_ni_protection_switching_apply_rerange_delta_data_set_default(bcmolt_epon_ni_protection_switching_apply_rerange_delta_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_epon_ni_protection_switching_apply_rerange_delta_data to 
+ * bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_ni_protection_switching_apply_rerange_delta_data_pack(const bcmolt_epon_ni_protection_switching_apply_rerange_delta_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a 
+ * bcmolt_epon_ni_protection_switching_apply_rerange_delta_data would occupy on 
+ * the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_epon_ni_protection_switching_apply_rerange_delta_data_get_packed_length(const bcmolt_epon_ni_protection_switching_apply_rerange_delta_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_epon_ni_protection_switching_apply_rerange_delta_data from 
+ * bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_ni_protection_switching_apply_rerange_delta_data_unpack(bcmolt_epon_ni_protection_switching_apply_rerange_delta_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed 
+ * bcmolt_epon_ni_protection_switching_apply_rerange_delta_data struct and 
+ * collects memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_epon_ni_protection_switching_apply_rerange_delta_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the 
+ * bcmolt_epon_ni_protection_switching_apply_rerange_delta_data is out of 
+ * bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_ni_protection_switching_apply_rerange_delta_data_bounds_check(const bcmolt_epon_ni_protection_switching_apply_rerange_delta_data *this, bcmolt_presence_mask fields_present, bcmolt_epon_ni_protection_switching_apply_rerange_delta_id *failed_prop);
+
+/** Initializes a bcmolt_epon_ni_rogue_llid_scan_data struct.  This sets all 
+ * fields to default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_epon_ni_rogue_llid_scan_data_set_default(bcmolt_epon_ni_rogue_llid_scan_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_epon_ni_rogue_llid_scan_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_ni_rogue_llid_scan_data_pack(const bcmolt_epon_ni_rogue_llid_scan_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_epon_ni_rogue_llid_scan_data would 
+ * occupy on the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_epon_ni_rogue_llid_scan_data_get_packed_length(const bcmolt_epon_ni_rogue_llid_scan_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_epon_ni_rogue_llid_scan_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_ni_rogue_llid_scan_data_unpack(bcmolt_epon_ni_rogue_llid_scan_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_epon_ni_rogue_llid_scan_data struct and collects 
+ * memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_epon_ni_rogue_llid_scan_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_epon_ni_rogue_llid_scan_data is out of 
+ * bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_ni_rogue_llid_scan_data_bounds_check(const bcmolt_epon_ni_rogue_llid_scan_data *this, bcmolt_presence_mask fields_present, bcmolt_epon_ni_rogue_llid_scan_id *failed_prop);
+
+/** Initializes a bcmolt_epon_ni_set_epon_ni_en_state_data struct.  This sets 
+ * all fields to default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_epon_ni_set_epon_ni_en_state_data_set_default(bcmolt_epon_ni_set_epon_ni_en_state_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_epon_ni_set_epon_ni_en_state_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_ni_set_epon_ni_en_state_data_pack(const bcmolt_epon_ni_set_epon_ni_en_state_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_epon_ni_set_epon_ni_en_state_data 
+ * would occupy on the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_epon_ni_set_epon_ni_en_state_data_get_packed_length(const bcmolt_epon_ni_set_epon_ni_en_state_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_epon_ni_set_epon_ni_en_state_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_ni_set_epon_ni_en_state_data_unpack(bcmolt_epon_ni_set_epon_ni_en_state_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_epon_ni_set_epon_ni_en_state_data struct and 
+ * collects memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_epon_ni_set_epon_ni_en_state_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_epon_ni_set_epon_ni_en_state_data is out 
+ * of bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_ni_set_epon_ni_en_state_data_bounds_check(const bcmolt_epon_ni_set_epon_ni_en_state_data *this, bcmolt_presence_mask fields_present, bcmolt_epon_ni_set_epon_ni_en_state_id *failed_prop);
+
+/** Initializes a bcmolt_epon_ni_start_onu_upgrade_data struct.  This sets all 
+ * fields to default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_epon_ni_start_onu_upgrade_data_set_default(bcmolt_epon_ni_start_onu_upgrade_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_epon_ni_start_onu_upgrade_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_ni_start_onu_upgrade_data_pack(const bcmolt_epon_ni_start_onu_upgrade_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_epon_ni_start_onu_upgrade_data would 
+ * occupy on the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_epon_ni_start_onu_upgrade_data_get_packed_length(const bcmolt_epon_ni_start_onu_upgrade_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_epon_ni_start_onu_upgrade_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_ni_start_onu_upgrade_data_unpack(bcmolt_epon_ni_start_onu_upgrade_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_epon_ni_start_onu_upgrade_data struct and 
+ * collects memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_epon_ni_start_onu_upgrade_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_epon_ni_start_onu_upgrade_data is out of 
+ * bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_ni_start_onu_upgrade_data_bounds_check(const bcmolt_epon_ni_start_onu_upgrade_data *this, bcmolt_presence_mask fields_present, bcmolt_epon_ni_start_onu_upgrade_id *failed_prop);
+
+/** Initializes a bcmolt_epon_onu_10g_us_key struct.  This sets all fields to 
+ * default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_epon_onu_10g_us_key_set_default(bcmolt_epon_onu_10g_us_key *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_epon_onu_10g_us_key to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_onu_10g_us_key_pack(const bcmolt_epon_onu_10g_us_key *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_epon_onu_10g_us_key would occupy on 
+ * the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_epon_onu_10g_us_key_get_packed_length(const bcmolt_epon_onu_10g_us_key *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_epon_onu_10g_us_key from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_onu_10g_us_key_unpack(bcmolt_epon_onu_10g_us_key *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_epon_onu_10g_us_key struct and collects memory 
+ * requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_epon_onu_10g_us_key_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_epon_onu_10g_us_key is out of bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_onu_10g_us_key_bounds_check(const bcmolt_epon_onu_10g_us_key *this, bcmolt_presence_mask fields_present, bcmolt_epon_onu_10g_us_key_id *failed_prop);
+
+/** Initializes a bcmolt_epon_onu_10g_us_cfg_data struct.  This sets all fields 
+ * to default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_epon_onu_10g_us_cfg_data_set_default(bcmolt_epon_onu_10g_us_cfg_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_epon_onu_10g_us_cfg_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_onu_10g_us_cfg_data_pack(const bcmolt_epon_onu_10g_us_cfg_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_epon_onu_10g_us_cfg_data would occupy 
+ * on the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_epon_onu_10g_us_cfg_data_get_packed_length(const bcmolt_epon_onu_10g_us_cfg_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_epon_onu_10g_us_cfg_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_onu_10g_us_cfg_data_unpack(bcmolt_epon_onu_10g_us_cfg_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_epon_onu_10g_us_cfg_data struct and collects 
+ * memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_epon_onu_10g_us_cfg_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_epon_onu_10g_us_cfg_data is out of bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_onu_10g_us_cfg_data_bounds_check(const bcmolt_epon_onu_10g_us_cfg_data *this, bcmolt_presence_mask fields_present, bcmolt_epon_onu_10g_us_cfg_id *failed_prop);
+
+/** Initializes a bcmolt_epon_onu_10g_us_stat_data struct.  This sets all fields 
+ * to default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_epon_onu_10g_us_stat_data_set_default(bcmolt_epon_onu_10g_us_stat_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_epon_onu_10g_us_stat_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_onu_10g_us_stat_data_pack(const bcmolt_epon_onu_10g_us_stat_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_epon_onu_10g_us_stat_data would 
+ * occupy on the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_epon_onu_10g_us_stat_data_get_packed_length(const bcmolt_epon_onu_10g_us_stat_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_epon_onu_10g_us_stat_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_onu_10g_us_stat_data_unpack(bcmolt_epon_onu_10g_us_stat_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_epon_onu_10g_us_stat_data struct and collects 
+ * memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_epon_onu_10g_us_stat_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_epon_onu_10g_us_stat_data is out of bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_onu_10g_us_stat_data_bounds_check(const bcmolt_epon_onu_10g_us_stat_data *this, bcmolt_presence_mask fields_present, bcmolt_epon_onu_10g_us_stat_id *failed_prop);
+
+/** Initializes a bcmolt_epon_onu_10g_us_stat_cfg_data struct.  This sets all 
+ * fields to default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_epon_onu_10g_us_stat_cfg_data_set_default(bcmolt_epon_onu_10g_us_stat_cfg_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_epon_onu_10g_us_stat_cfg_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_onu_10g_us_stat_cfg_data_pack(const bcmolt_epon_onu_10g_us_stat_cfg_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_epon_onu_10g_us_stat_cfg_data would 
+ * occupy on the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_epon_onu_10g_us_stat_cfg_data_get_packed_length(const bcmolt_epon_onu_10g_us_stat_cfg_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_epon_onu_10g_us_stat_cfg_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_onu_10g_us_stat_cfg_data_unpack(bcmolt_epon_onu_10g_us_stat_cfg_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_epon_onu_10g_us_stat_cfg_data struct and collects 
+ * memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_epon_onu_10g_us_stat_cfg_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_epon_onu_10g_us_stat_cfg_data is out of 
+ * bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_onu_10g_us_stat_cfg_data_bounds_check(const bcmolt_epon_onu_10g_us_stat_cfg_data *this, bcmolt_presence_mask fields_present, bcmolt_epon_onu_10g_us_stat_cfg_id *failed_prop);
+
+/** Initializes a bcmolt_epon_onu_10g_us_stat_alarm_cleared_data struct.  This 
+ * sets all fields to default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_epon_onu_10g_us_stat_alarm_cleared_data_set_default(bcmolt_epon_onu_10g_us_stat_alarm_cleared_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_epon_onu_10g_us_stat_alarm_cleared_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_onu_10g_us_stat_alarm_cleared_data_pack(const bcmolt_epon_onu_10g_us_stat_alarm_cleared_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a 
+ * bcmolt_epon_onu_10g_us_stat_alarm_cleared_data would occupy on the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_epon_onu_10g_us_stat_alarm_cleared_data_get_packed_length(const bcmolt_epon_onu_10g_us_stat_alarm_cleared_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_epon_onu_10g_us_stat_alarm_cleared_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_onu_10g_us_stat_alarm_cleared_data_unpack(bcmolt_epon_onu_10g_us_stat_alarm_cleared_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_epon_onu_10g_us_stat_alarm_cleared_data struct 
+ * and collects memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_epon_onu_10g_us_stat_alarm_cleared_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_epon_onu_10g_us_stat_alarm_cleared_data is 
+ * out of bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_onu_10g_us_stat_alarm_cleared_data_bounds_check(const bcmolt_epon_onu_10g_us_stat_alarm_cleared_data *this, bcmolt_presence_mask fields_present, bcmolt_epon_onu_10g_us_stat_alarm_cleared_id *failed_prop);
+
+/** Initializes a bcmolt_epon_onu_10g_us_stat_alarm_raised_data struct.  This 
+ * sets all fields to default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_epon_onu_10g_us_stat_alarm_raised_data_set_default(bcmolt_epon_onu_10g_us_stat_alarm_raised_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_epon_onu_10g_us_stat_alarm_raised_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_onu_10g_us_stat_alarm_raised_data_pack(const bcmolt_epon_onu_10g_us_stat_alarm_raised_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a 
+ * bcmolt_epon_onu_10g_us_stat_alarm_raised_data would occupy on the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_epon_onu_10g_us_stat_alarm_raised_data_get_packed_length(const bcmolt_epon_onu_10g_us_stat_alarm_raised_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_epon_onu_10g_us_stat_alarm_raised_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_onu_10g_us_stat_alarm_raised_data_unpack(bcmolt_epon_onu_10g_us_stat_alarm_raised_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_epon_onu_10g_us_stat_alarm_raised_data struct and 
+ * collects memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_epon_onu_10g_us_stat_alarm_raised_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_epon_onu_10g_us_stat_alarm_raised_data is 
+ * out of bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_onu_10g_us_stat_alarm_raised_data_bounds_check(const bcmolt_epon_onu_10g_us_stat_alarm_raised_data *this, bcmolt_presence_mask fields_present, bcmolt_epon_onu_10g_us_stat_alarm_raised_id *failed_prop);
+
+/** Initializes a bcmolt_epon_onu_10g_us_auto_cfg_data struct.  This sets all 
+ * fields to default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_epon_onu_10g_us_auto_cfg_data_set_default(bcmolt_epon_onu_10g_us_auto_cfg_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_epon_onu_10g_us_auto_cfg_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_onu_10g_us_auto_cfg_data_pack(const bcmolt_epon_onu_10g_us_auto_cfg_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_epon_onu_10g_us_auto_cfg_data would 
+ * occupy on the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_epon_onu_10g_us_auto_cfg_data_get_packed_length(const bcmolt_epon_onu_10g_us_auto_cfg_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_epon_onu_10g_us_auto_cfg_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_onu_10g_us_auto_cfg_data_unpack(bcmolt_epon_onu_10g_us_auto_cfg_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_epon_onu_10g_us_auto_cfg_data struct and collects 
+ * memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_epon_onu_10g_us_auto_cfg_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_epon_onu_10g_us_auto_cfg_data is out of 
+ * bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_onu_10g_us_auto_cfg_data_bounds_check(const bcmolt_epon_onu_10g_us_auto_cfg_data *this, bcmolt_presence_mask fields_present, bcmolt_epon_onu_10g_us_auto_cfg_id *failed_prop);
+
+/** Initializes a bcmolt_epon_onu_1g_us_key struct.  This sets all fields to 
+ * default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_epon_onu_1g_us_key_set_default(bcmolt_epon_onu_1g_us_key *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_epon_onu_1g_us_key to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_onu_1g_us_key_pack(const bcmolt_epon_onu_1g_us_key *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_epon_onu_1g_us_key would occupy on 
+ * the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_epon_onu_1g_us_key_get_packed_length(const bcmolt_epon_onu_1g_us_key *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_epon_onu_1g_us_key from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_onu_1g_us_key_unpack(bcmolt_epon_onu_1g_us_key *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_epon_onu_1g_us_key struct and collects memory 
+ * requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_epon_onu_1g_us_key_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_epon_onu_1g_us_key is out of bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_onu_1g_us_key_bounds_check(const bcmolt_epon_onu_1g_us_key *this, bcmolt_presence_mask fields_present, bcmolt_epon_onu_1g_us_key_id *failed_prop);
+
+/** Initializes a bcmolt_epon_onu_1g_us_cfg_data struct.  This sets all fields 
+ * to default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_epon_onu_1g_us_cfg_data_set_default(bcmolt_epon_onu_1g_us_cfg_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_epon_onu_1g_us_cfg_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_onu_1g_us_cfg_data_pack(const bcmolt_epon_onu_1g_us_cfg_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_epon_onu_1g_us_cfg_data would occupy 
+ * on the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_epon_onu_1g_us_cfg_data_get_packed_length(const bcmolt_epon_onu_1g_us_cfg_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_epon_onu_1g_us_cfg_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_onu_1g_us_cfg_data_unpack(bcmolt_epon_onu_1g_us_cfg_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_epon_onu_1g_us_cfg_data struct and collects 
+ * memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_epon_onu_1g_us_cfg_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_epon_onu_1g_us_cfg_data is out of bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_onu_1g_us_cfg_data_bounds_check(const bcmolt_epon_onu_1g_us_cfg_data *this, bcmolt_presence_mask fields_present, bcmolt_epon_onu_1g_us_cfg_id *failed_prop);
+
+/** Initializes a bcmolt_epon_onu_1g_us_stat_data struct.  This sets all fields 
+ * to default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_epon_onu_1g_us_stat_data_set_default(bcmolt_epon_onu_1g_us_stat_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_epon_onu_1g_us_stat_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_onu_1g_us_stat_data_pack(const bcmolt_epon_onu_1g_us_stat_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_epon_onu_1g_us_stat_data would occupy 
+ * on the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_epon_onu_1g_us_stat_data_get_packed_length(const bcmolt_epon_onu_1g_us_stat_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_epon_onu_1g_us_stat_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_onu_1g_us_stat_data_unpack(bcmolt_epon_onu_1g_us_stat_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_epon_onu_1g_us_stat_data struct and collects 
+ * memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_epon_onu_1g_us_stat_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_epon_onu_1g_us_stat_data is out of bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_onu_1g_us_stat_data_bounds_check(const bcmolt_epon_onu_1g_us_stat_data *this, bcmolt_presence_mask fields_present, bcmolt_epon_onu_1g_us_stat_id *failed_prop);
+
+/** Initializes a bcmolt_epon_onu_1g_us_stat_cfg_data struct.  This sets all 
+ * fields to default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_epon_onu_1g_us_stat_cfg_data_set_default(bcmolt_epon_onu_1g_us_stat_cfg_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_epon_onu_1g_us_stat_cfg_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_onu_1g_us_stat_cfg_data_pack(const bcmolt_epon_onu_1g_us_stat_cfg_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_epon_onu_1g_us_stat_cfg_data would 
+ * occupy on the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_epon_onu_1g_us_stat_cfg_data_get_packed_length(const bcmolt_epon_onu_1g_us_stat_cfg_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_epon_onu_1g_us_stat_cfg_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_onu_1g_us_stat_cfg_data_unpack(bcmolt_epon_onu_1g_us_stat_cfg_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_epon_onu_1g_us_stat_cfg_data struct and collects 
+ * memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_epon_onu_1g_us_stat_cfg_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_epon_onu_1g_us_stat_cfg_data is out of 
+ * bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_onu_1g_us_stat_cfg_data_bounds_check(const bcmolt_epon_onu_1g_us_stat_cfg_data *this, bcmolt_presence_mask fields_present, bcmolt_epon_onu_1g_us_stat_cfg_id *failed_prop);
+
+/** Initializes a bcmolt_epon_onu_1g_us_stat_alarm_cleared_data struct.  This 
+ * sets all fields to default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_epon_onu_1g_us_stat_alarm_cleared_data_set_default(bcmolt_epon_onu_1g_us_stat_alarm_cleared_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_epon_onu_1g_us_stat_alarm_cleared_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_onu_1g_us_stat_alarm_cleared_data_pack(const bcmolt_epon_onu_1g_us_stat_alarm_cleared_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a 
+ * bcmolt_epon_onu_1g_us_stat_alarm_cleared_data would occupy on the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_epon_onu_1g_us_stat_alarm_cleared_data_get_packed_length(const bcmolt_epon_onu_1g_us_stat_alarm_cleared_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_epon_onu_1g_us_stat_alarm_cleared_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_onu_1g_us_stat_alarm_cleared_data_unpack(bcmolt_epon_onu_1g_us_stat_alarm_cleared_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_epon_onu_1g_us_stat_alarm_cleared_data struct and 
+ * collects memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_epon_onu_1g_us_stat_alarm_cleared_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_epon_onu_1g_us_stat_alarm_cleared_data is 
+ * out of bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_onu_1g_us_stat_alarm_cleared_data_bounds_check(const bcmolt_epon_onu_1g_us_stat_alarm_cleared_data *this, bcmolt_presence_mask fields_present, bcmolt_epon_onu_1g_us_stat_alarm_cleared_id *failed_prop);
+
+/** Initializes a bcmolt_epon_onu_1g_us_stat_alarm_raised_data struct.  This 
+ * sets all fields to default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_epon_onu_1g_us_stat_alarm_raised_data_set_default(bcmolt_epon_onu_1g_us_stat_alarm_raised_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_epon_onu_1g_us_stat_alarm_raised_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_onu_1g_us_stat_alarm_raised_data_pack(const bcmolt_epon_onu_1g_us_stat_alarm_raised_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_epon_onu_1g_us_stat_alarm_raised_data 
+ * would occupy on the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_epon_onu_1g_us_stat_alarm_raised_data_get_packed_length(const bcmolt_epon_onu_1g_us_stat_alarm_raised_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_epon_onu_1g_us_stat_alarm_raised_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_onu_1g_us_stat_alarm_raised_data_unpack(bcmolt_epon_onu_1g_us_stat_alarm_raised_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_epon_onu_1g_us_stat_alarm_raised_data struct and 
+ * collects memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_epon_onu_1g_us_stat_alarm_raised_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_epon_onu_1g_us_stat_alarm_raised_data is 
+ * out of bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_onu_1g_us_stat_alarm_raised_data_bounds_check(const bcmolt_epon_onu_1g_us_stat_alarm_raised_data *this, bcmolt_presence_mask fields_present, bcmolt_epon_onu_1g_us_stat_alarm_raised_id *failed_prop);
+
+/** Initializes a bcmolt_epon_onu_1g_us_auto_cfg_data struct.  This sets all 
+ * fields to default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_epon_onu_1g_us_auto_cfg_data_set_default(bcmolt_epon_onu_1g_us_auto_cfg_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_epon_onu_1g_us_auto_cfg_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_onu_1g_us_auto_cfg_data_pack(const bcmolt_epon_onu_1g_us_auto_cfg_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_epon_onu_1g_us_auto_cfg_data would 
+ * occupy on the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_epon_onu_1g_us_auto_cfg_data_get_packed_length(const bcmolt_epon_onu_1g_us_auto_cfg_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_epon_onu_1g_us_auto_cfg_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_onu_1g_us_auto_cfg_data_unpack(bcmolt_epon_onu_1g_us_auto_cfg_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_epon_onu_1g_us_auto_cfg_data struct and collects 
+ * memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_epon_onu_1g_us_auto_cfg_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_epon_onu_1g_us_auto_cfg_data is out of 
+ * bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_onu_1g_us_auto_cfg_data_bounds_check(const bcmolt_epon_onu_1g_us_auto_cfg_data *this, bcmolt_presence_mask fields_present, bcmolt_epon_onu_1g_us_auto_cfg_id *failed_prop);
+
+/** Initializes a bcmolt_epon_path_10g_ds_key struct.  This sets all fields to 
+ * default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_epon_path_10g_ds_key_set_default(bcmolt_epon_path_10g_ds_key *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_epon_path_10g_ds_key to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_path_10g_ds_key_pack(const bcmolt_epon_path_10g_ds_key *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_epon_path_10g_ds_key would occupy on 
+ * the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_epon_path_10g_ds_key_get_packed_length(const bcmolt_epon_path_10g_ds_key *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_epon_path_10g_ds_key from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_path_10g_ds_key_unpack(bcmolt_epon_path_10g_ds_key *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_epon_path_10g_ds_key struct and collects memory 
+ * requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_epon_path_10g_ds_key_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_epon_path_10g_ds_key is out of bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_path_10g_ds_key_bounds_check(const bcmolt_epon_path_10g_ds_key *this, bcmolt_presence_mask fields_present, bcmolt_epon_path_10g_ds_key_id *failed_prop);
+
+/** Initializes a bcmolt_epon_path_10g_ds_cfg_data struct.  This sets all fields 
+ * to default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_epon_path_10g_ds_cfg_data_set_default(bcmolt_epon_path_10g_ds_cfg_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_epon_path_10g_ds_cfg_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_path_10g_ds_cfg_data_pack(const bcmolt_epon_path_10g_ds_cfg_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_epon_path_10g_ds_cfg_data would 
+ * occupy on the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_epon_path_10g_ds_cfg_data_get_packed_length(const bcmolt_epon_path_10g_ds_cfg_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_epon_path_10g_ds_cfg_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_path_10g_ds_cfg_data_unpack(bcmolt_epon_path_10g_ds_cfg_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_epon_path_10g_ds_cfg_data struct and collects 
+ * memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_epon_path_10g_ds_cfg_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_epon_path_10g_ds_cfg_data is out of bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_path_10g_ds_cfg_data_bounds_check(const bcmolt_epon_path_10g_ds_cfg_data *this, bcmolt_presence_mask fields_present, bcmolt_epon_path_10g_ds_cfg_id *failed_prop);
+
+/** Initializes a bcmolt_epon_path_10g_ds_stat_data struct.  This sets all 
+ * fields to default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_epon_path_10g_ds_stat_data_set_default(bcmolt_epon_path_10g_ds_stat_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_epon_path_10g_ds_stat_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_path_10g_ds_stat_data_pack(const bcmolt_epon_path_10g_ds_stat_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_epon_path_10g_ds_stat_data would 
+ * occupy on the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_epon_path_10g_ds_stat_data_get_packed_length(const bcmolt_epon_path_10g_ds_stat_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_epon_path_10g_ds_stat_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_path_10g_ds_stat_data_unpack(bcmolt_epon_path_10g_ds_stat_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_epon_path_10g_ds_stat_data struct and collects 
+ * memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_epon_path_10g_ds_stat_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_epon_path_10g_ds_stat_data is out of 
+ * bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_path_10g_ds_stat_data_bounds_check(const bcmolt_epon_path_10g_ds_stat_data *this, bcmolt_presence_mask fields_present, bcmolt_epon_path_10g_ds_stat_id *failed_prop);
+
+/** Initializes a bcmolt_epon_path_10g_ds_stat_cfg_data struct.  This sets all 
+ * fields to default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_epon_path_10g_ds_stat_cfg_data_set_default(bcmolt_epon_path_10g_ds_stat_cfg_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_epon_path_10g_ds_stat_cfg_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_path_10g_ds_stat_cfg_data_pack(const bcmolt_epon_path_10g_ds_stat_cfg_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_epon_path_10g_ds_stat_cfg_data would 
+ * occupy on the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_epon_path_10g_ds_stat_cfg_data_get_packed_length(const bcmolt_epon_path_10g_ds_stat_cfg_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_epon_path_10g_ds_stat_cfg_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_path_10g_ds_stat_cfg_data_unpack(bcmolt_epon_path_10g_ds_stat_cfg_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_epon_path_10g_ds_stat_cfg_data struct and 
+ * collects memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_epon_path_10g_ds_stat_cfg_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_epon_path_10g_ds_stat_cfg_data is out of 
+ * bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_path_10g_ds_stat_cfg_data_bounds_check(const bcmolt_epon_path_10g_ds_stat_cfg_data *this, bcmolt_presence_mask fields_present, bcmolt_epon_path_10g_ds_stat_cfg_id *failed_prop);
+
+/** Initializes a bcmolt_epon_path_10g_ds_stat_alarm_cleared_data struct.  This 
+ * sets all fields to default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_epon_path_10g_ds_stat_alarm_cleared_data_set_default(bcmolt_epon_path_10g_ds_stat_alarm_cleared_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_epon_path_10g_ds_stat_alarm_cleared_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_path_10g_ds_stat_alarm_cleared_data_pack(const bcmolt_epon_path_10g_ds_stat_alarm_cleared_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a 
+ * bcmolt_epon_path_10g_ds_stat_alarm_cleared_data would occupy on the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_epon_path_10g_ds_stat_alarm_cleared_data_get_packed_length(const bcmolt_epon_path_10g_ds_stat_alarm_cleared_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_epon_path_10g_ds_stat_alarm_cleared_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_path_10g_ds_stat_alarm_cleared_data_unpack(bcmolt_epon_path_10g_ds_stat_alarm_cleared_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_epon_path_10g_ds_stat_alarm_cleared_data struct 
+ * and collects memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_epon_path_10g_ds_stat_alarm_cleared_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_epon_path_10g_ds_stat_alarm_cleared_data 
+ * is out of bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_path_10g_ds_stat_alarm_cleared_data_bounds_check(const bcmolt_epon_path_10g_ds_stat_alarm_cleared_data *this, bcmolt_presence_mask fields_present, bcmolt_epon_path_10g_ds_stat_alarm_cleared_id *failed_prop);
+
+/** Initializes a bcmolt_epon_path_10g_ds_stat_alarm_raised_data struct.  This 
+ * sets all fields to default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_epon_path_10g_ds_stat_alarm_raised_data_set_default(bcmolt_epon_path_10g_ds_stat_alarm_raised_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_epon_path_10g_ds_stat_alarm_raised_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_path_10g_ds_stat_alarm_raised_data_pack(const bcmolt_epon_path_10g_ds_stat_alarm_raised_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a 
+ * bcmolt_epon_path_10g_ds_stat_alarm_raised_data would occupy on the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_epon_path_10g_ds_stat_alarm_raised_data_get_packed_length(const bcmolt_epon_path_10g_ds_stat_alarm_raised_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_epon_path_10g_ds_stat_alarm_raised_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_path_10g_ds_stat_alarm_raised_data_unpack(bcmolt_epon_path_10g_ds_stat_alarm_raised_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_epon_path_10g_ds_stat_alarm_raised_data struct 
+ * and collects memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_epon_path_10g_ds_stat_alarm_raised_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_epon_path_10g_ds_stat_alarm_raised_data is 
+ * out of bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_path_10g_ds_stat_alarm_raised_data_bounds_check(const bcmolt_epon_path_10g_ds_stat_alarm_raised_data *this, bcmolt_presence_mask fields_present, bcmolt_epon_path_10g_ds_stat_alarm_raised_id *failed_prop);
+
+/** Initializes a bcmolt_epon_path_10g_ds_auto_cfg_data struct.  This sets all 
+ * fields to default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_epon_path_10g_ds_auto_cfg_data_set_default(bcmolt_epon_path_10g_ds_auto_cfg_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_epon_path_10g_ds_auto_cfg_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_path_10g_ds_auto_cfg_data_pack(const bcmolt_epon_path_10g_ds_auto_cfg_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_epon_path_10g_ds_auto_cfg_data would 
+ * occupy on the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_epon_path_10g_ds_auto_cfg_data_get_packed_length(const bcmolt_epon_path_10g_ds_auto_cfg_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_epon_path_10g_ds_auto_cfg_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_path_10g_ds_auto_cfg_data_unpack(bcmolt_epon_path_10g_ds_auto_cfg_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_epon_path_10g_ds_auto_cfg_data struct and 
+ * collects memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_epon_path_10g_ds_auto_cfg_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_epon_path_10g_ds_auto_cfg_data is out of 
+ * bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_path_10g_ds_auto_cfg_data_bounds_check(const bcmolt_epon_path_10g_ds_auto_cfg_data *this, bcmolt_presence_mask fields_present, bcmolt_epon_path_10g_ds_auto_cfg_id *failed_prop);
+
+/** Initializes a bcmolt_epon_path_10g_us_key struct.  This sets all fields to 
+ * default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_epon_path_10g_us_key_set_default(bcmolt_epon_path_10g_us_key *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_epon_path_10g_us_key to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_path_10g_us_key_pack(const bcmolt_epon_path_10g_us_key *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_epon_path_10g_us_key would occupy on 
+ * the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_epon_path_10g_us_key_get_packed_length(const bcmolt_epon_path_10g_us_key *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_epon_path_10g_us_key from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_path_10g_us_key_unpack(bcmolt_epon_path_10g_us_key *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_epon_path_10g_us_key struct and collects memory 
+ * requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_epon_path_10g_us_key_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_epon_path_10g_us_key is out of bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_path_10g_us_key_bounds_check(const bcmolt_epon_path_10g_us_key *this, bcmolt_presence_mask fields_present, bcmolt_epon_path_10g_us_key_id *failed_prop);
+
+/** Initializes a bcmolt_epon_path_10g_us_cfg_data struct.  This sets all fields 
+ * to default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_epon_path_10g_us_cfg_data_set_default(bcmolt_epon_path_10g_us_cfg_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_epon_path_10g_us_cfg_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_path_10g_us_cfg_data_pack(const bcmolt_epon_path_10g_us_cfg_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_epon_path_10g_us_cfg_data would 
+ * occupy on the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_epon_path_10g_us_cfg_data_get_packed_length(const bcmolt_epon_path_10g_us_cfg_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_epon_path_10g_us_cfg_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_path_10g_us_cfg_data_unpack(bcmolt_epon_path_10g_us_cfg_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_epon_path_10g_us_cfg_data struct and collects 
+ * memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_epon_path_10g_us_cfg_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_epon_path_10g_us_cfg_data is out of bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_path_10g_us_cfg_data_bounds_check(const bcmolt_epon_path_10g_us_cfg_data *this, bcmolt_presence_mask fields_present, bcmolt_epon_path_10g_us_cfg_id *failed_prop);
+
+/** Initializes a bcmolt_epon_path_10g_us_stat_data struct.  This sets all 
+ * fields to default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_epon_path_10g_us_stat_data_set_default(bcmolt_epon_path_10g_us_stat_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_epon_path_10g_us_stat_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_path_10g_us_stat_data_pack(const bcmolt_epon_path_10g_us_stat_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_epon_path_10g_us_stat_data would 
+ * occupy on the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_epon_path_10g_us_stat_data_get_packed_length(const bcmolt_epon_path_10g_us_stat_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_epon_path_10g_us_stat_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_path_10g_us_stat_data_unpack(bcmolt_epon_path_10g_us_stat_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_epon_path_10g_us_stat_data struct and collects 
+ * memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_epon_path_10g_us_stat_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_epon_path_10g_us_stat_data is out of 
+ * bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_path_10g_us_stat_data_bounds_check(const bcmolt_epon_path_10g_us_stat_data *this, bcmolt_presence_mask fields_present, bcmolt_epon_path_10g_us_stat_id *failed_prop);
+
+/** Initializes a bcmolt_epon_path_10g_us_stat_cfg_data struct.  This sets all 
+ * fields to default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_epon_path_10g_us_stat_cfg_data_set_default(bcmolt_epon_path_10g_us_stat_cfg_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_epon_path_10g_us_stat_cfg_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_path_10g_us_stat_cfg_data_pack(const bcmolt_epon_path_10g_us_stat_cfg_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_epon_path_10g_us_stat_cfg_data would 
+ * occupy on the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_epon_path_10g_us_stat_cfg_data_get_packed_length(const bcmolt_epon_path_10g_us_stat_cfg_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_epon_path_10g_us_stat_cfg_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_path_10g_us_stat_cfg_data_unpack(bcmolt_epon_path_10g_us_stat_cfg_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_epon_path_10g_us_stat_cfg_data struct and 
+ * collects memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_epon_path_10g_us_stat_cfg_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_epon_path_10g_us_stat_cfg_data is out of 
+ * bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_path_10g_us_stat_cfg_data_bounds_check(const bcmolt_epon_path_10g_us_stat_cfg_data *this, bcmolt_presence_mask fields_present, bcmolt_epon_path_10g_us_stat_cfg_id *failed_prop);
+
+/** Initializes a bcmolt_epon_path_10g_us_stat_alarm_cleared_data struct.  This 
+ * sets all fields to default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_epon_path_10g_us_stat_alarm_cleared_data_set_default(bcmolt_epon_path_10g_us_stat_alarm_cleared_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_epon_path_10g_us_stat_alarm_cleared_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_path_10g_us_stat_alarm_cleared_data_pack(const bcmolt_epon_path_10g_us_stat_alarm_cleared_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a 
+ * bcmolt_epon_path_10g_us_stat_alarm_cleared_data would occupy on the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_epon_path_10g_us_stat_alarm_cleared_data_get_packed_length(const bcmolt_epon_path_10g_us_stat_alarm_cleared_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_epon_path_10g_us_stat_alarm_cleared_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_path_10g_us_stat_alarm_cleared_data_unpack(bcmolt_epon_path_10g_us_stat_alarm_cleared_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_epon_path_10g_us_stat_alarm_cleared_data struct 
+ * and collects memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_epon_path_10g_us_stat_alarm_cleared_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_epon_path_10g_us_stat_alarm_cleared_data 
+ * is out of bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_path_10g_us_stat_alarm_cleared_data_bounds_check(const bcmolt_epon_path_10g_us_stat_alarm_cleared_data *this, bcmolt_presence_mask fields_present, bcmolt_epon_path_10g_us_stat_alarm_cleared_id *failed_prop);
+
+/** Initializes a bcmolt_epon_path_10g_us_stat_alarm_raised_data struct.  This 
+ * sets all fields to default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_epon_path_10g_us_stat_alarm_raised_data_set_default(bcmolt_epon_path_10g_us_stat_alarm_raised_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_epon_path_10g_us_stat_alarm_raised_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_path_10g_us_stat_alarm_raised_data_pack(const bcmolt_epon_path_10g_us_stat_alarm_raised_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a 
+ * bcmolt_epon_path_10g_us_stat_alarm_raised_data would occupy on the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_epon_path_10g_us_stat_alarm_raised_data_get_packed_length(const bcmolt_epon_path_10g_us_stat_alarm_raised_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_epon_path_10g_us_stat_alarm_raised_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_path_10g_us_stat_alarm_raised_data_unpack(bcmolt_epon_path_10g_us_stat_alarm_raised_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_epon_path_10g_us_stat_alarm_raised_data struct 
+ * and collects memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_epon_path_10g_us_stat_alarm_raised_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_epon_path_10g_us_stat_alarm_raised_data is 
+ * out of bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_path_10g_us_stat_alarm_raised_data_bounds_check(const bcmolt_epon_path_10g_us_stat_alarm_raised_data *this, bcmolt_presence_mask fields_present, bcmolt_epon_path_10g_us_stat_alarm_raised_id *failed_prop);
+
+/** Initializes a bcmolt_epon_path_10g_us_auto_cfg_data struct.  This sets all 
+ * fields to default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_epon_path_10g_us_auto_cfg_data_set_default(bcmolt_epon_path_10g_us_auto_cfg_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_epon_path_10g_us_auto_cfg_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_path_10g_us_auto_cfg_data_pack(const bcmolt_epon_path_10g_us_auto_cfg_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_epon_path_10g_us_auto_cfg_data would 
+ * occupy on the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_epon_path_10g_us_auto_cfg_data_get_packed_length(const bcmolt_epon_path_10g_us_auto_cfg_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_epon_path_10g_us_auto_cfg_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_path_10g_us_auto_cfg_data_unpack(bcmolt_epon_path_10g_us_auto_cfg_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_epon_path_10g_us_auto_cfg_data struct and 
+ * collects memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_epon_path_10g_us_auto_cfg_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_epon_path_10g_us_auto_cfg_data is out of 
+ * bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_path_10g_us_auto_cfg_data_bounds_check(const bcmolt_epon_path_10g_us_auto_cfg_data *this, bcmolt_presence_mask fields_present, bcmolt_epon_path_10g_us_auto_cfg_id *failed_prop);
+
+/** Initializes a bcmolt_epon_path_1g_ds_key struct.  This sets all fields to 
+ * default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_epon_path_1g_ds_key_set_default(bcmolt_epon_path_1g_ds_key *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_epon_path_1g_ds_key to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_path_1g_ds_key_pack(const bcmolt_epon_path_1g_ds_key *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_epon_path_1g_ds_key would occupy on 
+ * the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_epon_path_1g_ds_key_get_packed_length(const bcmolt_epon_path_1g_ds_key *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_epon_path_1g_ds_key from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_path_1g_ds_key_unpack(bcmolt_epon_path_1g_ds_key *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_epon_path_1g_ds_key struct and collects memory 
+ * requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_epon_path_1g_ds_key_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_epon_path_1g_ds_key is out of bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_path_1g_ds_key_bounds_check(const bcmolt_epon_path_1g_ds_key *this, bcmolt_presence_mask fields_present, bcmolt_epon_path_1g_ds_key_id *failed_prop);
+
+/** Initializes a bcmolt_epon_path_1g_ds_cfg_data struct.  This sets all fields 
+ * to default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_epon_path_1g_ds_cfg_data_set_default(bcmolt_epon_path_1g_ds_cfg_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_epon_path_1g_ds_cfg_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_path_1g_ds_cfg_data_pack(const bcmolt_epon_path_1g_ds_cfg_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_epon_path_1g_ds_cfg_data would occupy 
+ * on the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_epon_path_1g_ds_cfg_data_get_packed_length(const bcmolt_epon_path_1g_ds_cfg_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_epon_path_1g_ds_cfg_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_path_1g_ds_cfg_data_unpack(bcmolt_epon_path_1g_ds_cfg_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_epon_path_1g_ds_cfg_data struct and collects 
+ * memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_epon_path_1g_ds_cfg_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_epon_path_1g_ds_cfg_data is out of bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_path_1g_ds_cfg_data_bounds_check(const bcmolt_epon_path_1g_ds_cfg_data *this, bcmolt_presence_mask fields_present, bcmolt_epon_path_1g_ds_cfg_id *failed_prop);
+
+/** Initializes a bcmolt_epon_path_1g_ds_stat_data struct.  This sets all fields 
+ * to default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_epon_path_1g_ds_stat_data_set_default(bcmolt_epon_path_1g_ds_stat_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_epon_path_1g_ds_stat_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_path_1g_ds_stat_data_pack(const bcmolt_epon_path_1g_ds_stat_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_epon_path_1g_ds_stat_data would 
+ * occupy on the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_epon_path_1g_ds_stat_data_get_packed_length(const bcmolt_epon_path_1g_ds_stat_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_epon_path_1g_ds_stat_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_path_1g_ds_stat_data_unpack(bcmolt_epon_path_1g_ds_stat_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_epon_path_1g_ds_stat_data struct and collects 
+ * memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_epon_path_1g_ds_stat_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_epon_path_1g_ds_stat_data is out of bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_path_1g_ds_stat_data_bounds_check(const bcmolt_epon_path_1g_ds_stat_data *this, bcmolt_presence_mask fields_present, bcmolt_epon_path_1g_ds_stat_id *failed_prop);
+
+/** Initializes a bcmolt_epon_path_1g_ds_stat_cfg_data struct.  This sets all 
+ * fields to default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_epon_path_1g_ds_stat_cfg_data_set_default(bcmolt_epon_path_1g_ds_stat_cfg_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_epon_path_1g_ds_stat_cfg_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_path_1g_ds_stat_cfg_data_pack(const bcmolt_epon_path_1g_ds_stat_cfg_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_epon_path_1g_ds_stat_cfg_data would 
+ * occupy on the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_epon_path_1g_ds_stat_cfg_data_get_packed_length(const bcmolt_epon_path_1g_ds_stat_cfg_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_epon_path_1g_ds_stat_cfg_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_path_1g_ds_stat_cfg_data_unpack(bcmolt_epon_path_1g_ds_stat_cfg_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_epon_path_1g_ds_stat_cfg_data struct and collects 
+ * memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_epon_path_1g_ds_stat_cfg_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_epon_path_1g_ds_stat_cfg_data is out of 
+ * bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_path_1g_ds_stat_cfg_data_bounds_check(const bcmolt_epon_path_1g_ds_stat_cfg_data *this, bcmolt_presence_mask fields_present, bcmolt_epon_path_1g_ds_stat_cfg_id *failed_prop);
+
+/** Initializes a bcmolt_epon_path_1g_ds_stat_alarm_cleared_data struct.  This 
+ * sets all fields to default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_epon_path_1g_ds_stat_alarm_cleared_data_set_default(bcmolt_epon_path_1g_ds_stat_alarm_cleared_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_epon_path_1g_ds_stat_alarm_cleared_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_path_1g_ds_stat_alarm_cleared_data_pack(const bcmolt_epon_path_1g_ds_stat_alarm_cleared_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a 
+ * bcmolt_epon_path_1g_ds_stat_alarm_cleared_data would occupy on the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_epon_path_1g_ds_stat_alarm_cleared_data_get_packed_length(const bcmolt_epon_path_1g_ds_stat_alarm_cleared_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_epon_path_1g_ds_stat_alarm_cleared_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_path_1g_ds_stat_alarm_cleared_data_unpack(bcmolt_epon_path_1g_ds_stat_alarm_cleared_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_epon_path_1g_ds_stat_alarm_cleared_data struct 
+ * and collects memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_epon_path_1g_ds_stat_alarm_cleared_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_epon_path_1g_ds_stat_alarm_cleared_data is 
+ * out of bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_path_1g_ds_stat_alarm_cleared_data_bounds_check(const bcmolt_epon_path_1g_ds_stat_alarm_cleared_data *this, bcmolt_presence_mask fields_present, bcmolt_epon_path_1g_ds_stat_alarm_cleared_id *failed_prop);
+
+/** Initializes a bcmolt_epon_path_1g_ds_stat_alarm_raised_data struct.  This 
+ * sets all fields to default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_epon_path_1g_ds_stat_alarm_raised_data_set_default(bcmolt_epon_path_1g_ds_stat_alarm_raised_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_epon_path_1g_ds_stat_alarm_raised_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_path_1g_ds_stat_alarm_raised_data_pack(const bcmolt_epon_path_1g_ds_stat_alarm_raised_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a 
+ * bcmolt_epon_path_1g_ds_stat_alarm_raised_data would occupy on the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_epon_path_1g_ds_stat_alarm_raised_data_get_packed_length(const bcmolt_epon_path_1g_ds_stat_alarm_raised_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_epon_path_1g_ds_stat_alarm_raised_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_path_1g_ds_stat_alarm_raised_data_unpack(bcmolt_epon_path_1g_ds_stat_alarm_raised_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_epon_path_1g_ds_stat_alarm_raised_data struct and 
+ * collects memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_epon_path_1g_ds_stat_alarm_raised_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_epon_path_1g_ds_stat_alarm_raised_data is 
+ * out of bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_path_1g_ds_stat_alarm_raised_data_bounds_check(const bcmolt_epon_path_1g_ds_stat_alarm_raised_data *this, bcmolt_presence_mask fields_present, bcmolt_epon_path_1g_ds_stat_alarm_raised_id *failed_prop);
+
+/** Initializes a bcmolt_epon_path_1g_ds_auto_cfg_data struct.  This sets all 
+ * fields to default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_epon_path_1g_ds_auto_cfg_data_set_default(bcmolt_epon_path_1g_ds_auto_cfg_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_epon_path_1g_ds_auto_cfg_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_path_1g_ds_auto_cfg_data_pack(const bcmolt_epon_path_1g_ds_auto_cfg_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_epon_path_1g_ds_auto_cfg_data would 
+ * occupy on the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_epon_path_1g_ds_auto_cfg_data_get_packed_length(const bcmolt_epon_path_1g_ds_auto_cfg_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_epon_path_1g_ds_auto_cfg_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_path_1g_ds_auto_cfg_data_unpack(bcmolt_epon_path_1g_ds_auto_cfg_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_epon_path_1g_ds_auto_cfg_data struct and collects 
+ * memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_epon_path_1g_ds_auto_cfg_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_epon_path_1g_ds_auto_cfg_data is out of 
+ * bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_path_1g_ds_auto_cfg_data_bounds_check(const bcmolt_epon_path_1g_ds_auto_cfg_data *this, bcmolt_presence_mask fields_present, bcmolt_epon_path_1g_ds_auto_cfg_id *failed_prop);
+
+/** Initializes a bcmolt_epon_path_1g_us_key struct.  This sets all fields to 
+ * default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_epon_path_1g_us_key_set_default(bcmolt_epon_path_1g_us_key *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_epon_path_1g_us_key to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_path_1g_us_key_pack(const bcmolt_epon_path_1g_us_key *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_epon_path_1g_us_key would occupy on 
+ * the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_epon_path_1g_us_key_get_packed_length(const bcmolt_epon_path_1g_us_key *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_epon_path_1g_us_key from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_path_1g_us_key_unpack(bcmolt_epon_path_1g_us_key *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_epon_path_1g_us_key struct and collects memory 
+ * requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_epon_path_1g_us_key_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_epon_path_1g_us_key is out of bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_path_1g_us_key_bounds_check(const bcmolt_epon_path_1g_us_key *this, bcmolt_presence_mask fields_present, bcmolt_epon_path_1g_us_key_id *failed_prop);
+
+/** Initializes a bcmolt_epon_path_1g_us_cfg_data struct.  This sets all fields 
+ * to default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_epon_path_1g_us_cfg_data_set_default(bcmolt_epon_path_1g_us_cfg_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_epon_path_1g_us_cfg_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_path_1g_us_cfg_data_pack(const bcmolt_epon_path_1g_us_cfg_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_epon_path_1g_us_cfg_data would occupy 
+ * on the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_epon_path_1g_us_cfg_data_get_packed_length(const bcmolt_epon_path_1g_us_cfg_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_epon_path_1g_us_cfg_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_path_1g_us_cfg_data_unpack(bcmolt_epon_path_1g_us_cfg_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_epon_path_1g_us_cfg_data struct and collects 
+ * memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_epon_path_1g_us_cfg_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_epon_path_1g_us_cfg_data is out of bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_path_1g_us_cfg_data_bounds_check(const bcmolt_epon_path_1g_us_cfg_data *this, bcmolt_presence_mask fields_present, bcmolt_epon_path_1g_us_cfg_id *failed_prop);
+
+/** Initializes a bcmolt_epon_path_1g_us_stat_data struct.  This sets all fields 
+ * to default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_epon_path_1g_us_stat_data_set_default(bcmolt_epon_path_1g_us_stat_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_epon_path_1g_us_stat_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_path_1g_us_stat_data_pack(const bcmolt_epon_path_1g_us_stat_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_epon_path_1g_us_stat_data would 
+ * occupy on the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_epon_path_1g_us_stat_data_get_packed_length(const bcmolt_epon_path_1g_us_stat_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_epon_path_1g_us_stat_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_path_1g_us_stat_data_unpack(bcmolt_epon_path_1g_us_stat_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_epon_path_1g_us_stat_data struct and collects 
+ * memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_epon_path_1g_us_stat_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_epon_path_1g_us_stat_data is out of bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_path_1g_us_stat_data_bounds_check(const bcmolt_epon_path_1g_us_stat_data *this, bcmolt_presence_mask fields_present, bcmolt_epon_path_1g_us_stat_id *failed_prop);
+
+/** Initializes a bcmolt_epon_path_1g_us_stat_cfg_data struct.  This sets all 
+ * fields to default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_epon_path_1g_us_stat_cfg_data_set_default(bcmolt_epon_path_1g_us_stat_cfg_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_epon_path_1g_us_stat_cfg_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_path_1g_us_stat_cfg_data_pack(const bcmolt_epon_path_1g_us_stat_cfg_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_epon_path_1g_us_stat_cfg_data would 
+ * occupy on the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_epon_path_1g_us_stat_cfg_data_get_packed_length(const bcmolt_epon_path_1g_us_stat_cfg_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_epon_path_1g_us_stat_cfg_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_path_1g_us_stat_cfg_data_unpack(bcmolt_epon_path_1g_us_stat_cfg_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_epon_path_1g_us_stat_cfg_data struct and collects 
+ * memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_epon_path_1g_us_stat_cfg_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_epon_path_1g_us_stat_cfg_data is out of 
+ * bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_path_1g_us_stat_cfg_data_bounds_check(const bcmolt_epon_path_1g_us_stat_cfg_data *this, bcmolt_presence_mask fields_present, bcmolt_epon_path_1g_us_stat_cfg_id *failed_prop);
+
+/** Initializes a bcmolt_epon_path_1g_us_stat_alarm_cleared_data struct.  This 
+ * sets all fields to default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_epon_path_1g_us_stat_alarm_cleared_data_set_default(bcmolt_epon_path_1g_us_stat_alarm_cleared_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_epon_path_1g_us_stat_alarm_cleared_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_path_1g_us_stat_alarm_cleared_data_pack(const bcmolt_epon_path_1g_us_stat_alarm_cleared_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a 
+ * bcmolt_epon_path_1g_us_stat_alarm_cleared_data would occupy on the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_epon_path_1g_us_stat_alarm_cleared_data_get_packed_length(const bcmolt_epon_path_1g_us_stat_alarm_cleared_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_epon_path_1g_us_stat_alarm_cleared_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_path_1g_us_stat_alarm_cleared_data_unpack(bcmolt_epon_path_1g_us_stat_alarm_cleared_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_epon_path_1g_us_stat_alarm_cleared_data struct 
+ * and collects memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_epon_path_1g_us_stat_alarm_cleared_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_epon_path_1g_us_stat_alarm_cleared_data is 
+ * out of bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_path_1g_us_stat_alarm_cleared_data_bounds_check(const bcmolt_epon_path_1g_us_stat_alarm_cleared_data *this, bcmolt_presence_mask fields_present, bcmolt_epon_path_1g_us_stat_alarm_cleared_id *failed_prop);
+
+/** Initializes a bcmolt_epon_path_1g_us_stat_alarm_raised_data struct.  This 
+ * sets all fields to default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_epon_path_1g_us_stat_alarm_raised_data_set_default(bcmolt_epon_path_1g_us_stat_alarm_raised_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_epon_path_1g_us_stat_alarm_raised_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_path_1g_us_stat_alarm_raised_data_pack(const bcmolt_epon_path_1g_us_stat_alarm_raised_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a 
+ * bcmolt_epon_path_1g_us_stat_alarm_raised_data would occupy on the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_epon_path_1g_us_stat_alarm_raised_data_get_packed_length(const bcmolt_epon_path_1g_us_stat_alarm_raised_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_epon_path_1g_us_stat_alarm_raised_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_path_1g_us_stat_alarm_raised_data_unpack(bcmolt_epon_path_1g_us_stat_alarm_raised_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_epon_path_1g_us_stat_alarm_raised_data struct and 
+ * collects memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_epon_path_1g_us_stat_alarm_raised_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_epon_path_1g_us_stat_alarm_raised_data is 
+ * out of bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_path_1g_us_stat_alarm_raised_data_bounds_check(const bcmolt_epon_path_1g_us_stat_alarm_raised_data *this, bcmolt_presence_mask fields_present, bcmolt_epon_path_1g_us_stat_alarm_raised_id *failed_prop);
+
+/** Initializes a bcmolt_epon_path_1g_us_auto_cfg_data struct.  This sets all 
+ * fields to default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_epon_path_1g_us_auto_cfg_data_set_default(bcmolt_epon_path_1g_us_auto_cfg_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_epon_path_1g_us_auto_cfg_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_path_1g_us_auto_cfg_data_pack(const bcmolt_epon_path_1g_us_auto_cfg_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_epon_path_1g_us_auto_cfg_data would 
+ * occupy on the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_epon_path_1g_us_auto_cfg_data_get_packed_length(const bcmolt_epon_path_1g_us_auto_cfg_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_epon_path_1g_us_auto_cfg_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_path_1g_us_auto_cfg_data_unpack(bcmolt_epon_path_1g_us_auto_cfg_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_epon_path_1g_us_auto_cfg_data struct and collects 
+ * memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_epon_path_1g_us_auto_cfg_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_epon_path_1g_us_auto_cfg_data is out of 
+ * bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_path_1g_us_auto_cfg_data_bounds_check(const bcmolt_epon_path_1g_us_auto_cfg_data *this, bcmolt_presence_mask fields_present, bcmolt_epon_path_1g_us_auto_cfg_id *failed_prop);
+
+/** Initializes a bcmolt_epon_rp_key struct.  This sets all fields to default 
+ * values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_epon_rp_key_set_default(bcmolt_epon_rp_key *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_epon_rp_key to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_rp_key_pack(const bcmolt_epon_rp_key *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_epon_rp_key would occupy on the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_epon_rp_key_get_packed_length(const bcmolt_epon_rp_key *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_epon_rp_key from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_rp_key_unpack(bcmolt_epon_rp_key *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_epon_rp_key struct and collects memory 
+ * requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_epon_rp_key_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_epon_rp_key is out of bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_rp_key_bounds_check(const bcmolt_epon_rp_key *this, bcmolt_presence_mask fields_present, bcmolt_epon_rp_key_id *failed_prop);
+
+/** Initializes a bcmolt_epon_rp_cfg_data struct.  This sets all fields to 
+ * default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_epon_rp_cfg_data_set_default(bcmolt_epon_rp_cfg_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_epon_rp_cfg_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_rp_cfg_data_pack(const bcmolt_epon_rp_cfg_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_epon_rp_cfg_data would occupy on the 
+ * wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_epon_rp_cfg_data_get_packed_length(const bcmolt_epon_rp_cfg_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_epon_rp_cfg_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_rp_cfg_data_unpack(bcmolt_epon_rp_cfg_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_epon_rp_cfg_data struct and collects memory 
+ * requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_epon_rp_cfg_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_epon_rp_cfg_data is out of bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_epon_rp_cfg_data_bounds_check(const bcmolt_epon_rp_cfg_data *this, bcmolt_presence_mask fields_present, bcmolt_epon_rp_cfg_id *failed_prop);
+
+/** Initializes a bcmolt_gpio_key struct.  This sets all fields to default 
+ * values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_gpio_key_set_default(bcmolt_gpio_key *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_gpio_key to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpio_key_pack(const bcmolt_gpio_key *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_gpio_key would occupy on the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_gpio_key_get_packed_length(const bcmolt_gpio_key *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_gpio_key from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpio_key_unpack(bcmolt_gpio_key *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_gpio_key struct and collects memory requirements 
+ * above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_gpio_key_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_gpio_key is out of bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpio_key_bounds_check(const bcmolt_gpio_key *this, bcmolt_presence_mask fields_present, bcmolt_gpio_key_id *failed_prop);
+
+/** Initializes a bcmolt_gpio_cfg_data struct.  This sets all fields to default 
+ * values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_gpio_cfg_data_set_default(bcmolt_gpio_cfg_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_gpio_cfg_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpio_cfg_data_pack(const bcmolt_gpio_cfg_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_gpio_cfg_data would occupy on the 
+ * wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_gpio_cfg_data_get_packed_length(const bcmolt_gpio_cfg_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_gpio_cfg_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpio_cfg_data_unpack(bcmolt_gpio_cfg_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_gpio_cfg_data struct and collects memory 
+ * requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_gpio_cfg_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_gpio_cfg_data is out of bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpio_cfg_data_bounds_check(const bcmolt_gpio_cfg_data *this, bcmolt_presence_mask fields_present, bcmolt_gpio_cfg_id *failed_prop);
+
+/** Initializes a bcmolt_gpon_alloc_key struct.  This sets all fields to default 
+ * values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_gpon_alloc_key_set_default(bcmolt_gpon_alloc_key *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_gpon_alloc_key to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_alloc_key_pack(const bcmolt_gpon_alloc_key *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_gpon_alloc_key would occupy on the 
+ * wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_gpon_alloc_key_get_packed_length(const bcmolt_gpon_alloc_key *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_gpon_alloc_key from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_alloc_key_unpack(bcmolt_gpon_alloc_key *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_gpon_alloc_key struct and collects memory 
+ * requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_gpon_alloc_key_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_gpon_alloc_key is out of bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_alloc_key_bounds_check(const bcmolt_gpon_alloc_key *this, bcmolt_presence_mask fields_present, bcmolt_gpon_alloc_key_id *failed_prop);
+
+/** Initializes a bcmolt_gpon_alloc_cfg_data struct.  This sets all fields to 
+ * default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_gpon_alloc_cfg_data_set_default(bcmolt_gpon_alloc_cfg_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_gpon_alloc_cfg_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_alloc_cfg_data_pack(const bcmolt_gpon_alloc_cfg_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_gpon_alloc_cfg_data would occupy on 
+ * the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_gpon_alloc_cfg_data_get_packed_length(const bcmolt_gpon_alloc_cfg_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_gpon_alloc_cfg_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_alloc_cfg_data_unpack(bcmolt_gpon_alloc_cfg_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_gpon_alloc_cfg_data struct and collects memory 
+ * requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_gpon_alloc_cfg_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_gpon_alloc_cfg_data is out of bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_alloc_cfg_data_bounds_check(const bcmolt_gpon_alloc_cfg_data *this, bcmolt_presence_mask fields_present, bcmolt_gpon_alloc_cfg_id *failed_prop);
+
+/** Initializes a bcmolt_gpon_alloc_stat_data struct.  This sets all fields to 
+ * default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_gpon_alloc_stat_data_set_default(bcmolt_gpon_alloc_stat_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_gpon_alloc_stat_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_alloc_stat_data_pack(const bcmolt_gpon_alloc_stat_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_gpon_alloc_stat_data would occupy on 
+ * the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_gpon_alloc_stat_data_get_packed_length(const bcmolt_gpon_alloc_stat_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_gpon_alloc_stat_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_alloc_stat_data_unpack(bcmolt_gpon_alloc_stat_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_gpon_alloc_stat_data struct and collects memory 
+ * requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_gpon_alloc_stat_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_gpon_alloc_stat_data is out of bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_alloc_stat_data_bounds_check(const bcmolt_gpon_alloc_stat_data *this, bcmolt_presence_mask fields_present, bcmolt_gpon_alloc_stat_id *failed_prop);
+
+/** Initializes a bcmolt_gpon_alloc_stat_cfg_data struct.  This sets all fields 
+ * to default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_gpon_alloc_stat_cfg_data_set_default(bcmolt_gpon_alloc_stat_cfg_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_gpon_alloc_stat_cfg_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_alloc_stat_cfg_data_pack(const bcmolt_gpon_alloc_stat_cfg_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_gpon_alloc_stat_cfg_data would occupy 
+ * on the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_gpon_alloc_stat_cfg_data_get_packed_length(const bcmolt_gpon_alloc_stat_cfg_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_gpon_alloc_stat_cfg_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_alloc_stat_cfg_data_unpack(bcmolt_gpon_alloc_stat_cfg_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_gpon_alloc_stat_cfg_data struct and collects 
+ * memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_gpon_alloc_stat_cfg_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_gpon_alloc_stat_cfg_data is out of bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_alloc_stat_cfg_data_bounds_check(const bcmolt_gpon_alloc_stat_cfg_data *this, bcmolt_presence_mask fields_present, bcmolt_gpon_alloc_stat_cfg_id *failed_prop);
+
+/** Initializes a bcmolt_gpon_alloc_configuration_completed_data struct.  This 
+ * sets all fields to default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_gpon_alloc_configuration_completed_data_set_default(bcmolt_gpon_alloc_configuration_completed_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_gpon_alloc_configuration_completed_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_alloc_configuration_completed_data_pack(const bcmolt_gpon_alloc_configuration_completed_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a 
+ * bcmolt_gpon_alloc_configuration_completed_data would occupy on the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_gpon_alloc_configuration_completed_data_get_packed_length(const bcmolt_gpon_alloc_configuration_completed_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_gpon_alloc_configuration_completed_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_alloc_configuration_completed_data_unpack(bcmolt_gpon_alloc_configuration_completed_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_gpon_alloc_configuration_completed_data struct 
+ * and collects memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_gpon_alloc_configuration_completed_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_gpon_alloc_configuration_completed_data is 
+ * out of bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_alloc_configuration_completed_data_bounds_check(const bcmolt_gpon_alloc_configuration_completed_data *this, bcmolt_presence_mask fields_present, bcmolt_gpon_alloc_configuration_completed_id *failed_prop);
+
+/** Initializes a bcmolt_gpon_alloc_get_alloc_stats_completed_data struct.  This 
+ * sets all fields to default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_gpon_alloc_get_alloc_stats_completed_data_set_default(bcmolt_gpon_alloc_get_alloc_stats_completed_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_gpon_alloc_get_alloc_stats_completed_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_alloc_get_alloc_stats_completed_data_pack(const bcmolt_gpon_alloc_get_alloc_stats_completed_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a 
+ * bcmolt_gpon_alloc_get_alloc_stats_completed_data would occupy on the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_gpon_alloc_get_alloc_stats_completed_data_get_packed_length(const bcmolt_gpon_alloc_get_alloc_stats_completed_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_gpon_alloc_get_alloc_stats_completed_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_alloc_get_alloc_stats_completed_data_unpack(bcmolt_gpon_alloc_get_alloc_stats_completed_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_gpon_alloc_get_alloc_stats_completed_data struct 
+ * and collects memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_gpon_alloc_get_alloc_stats_completed_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_gpon_alloc_get_alloc_stats_completed_data 
+ * is out of bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_alloc_get_alloc_stats_completed_data_bounds_check(const bcmolt_gpon_alloc_get_alloc_stats_completed_data *this, bcmolt_presence_mask fields_present, bcmolt_gpon_alloc_get_alloc_stats_completed_id *failed_prop);
+
+/** Initializes a bcmolt_gpon_alloc_stat_alarm_cleared_data struct.  This sets 
+ * all fields to default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_gpon_alloc_stat_alarm_cleared_data_set_default(bcmolt_gpon_alloc_stat_alarm_cleared_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_gpon_alloc_stat_alarm_cleared_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_alloc_stat_alarm_cleared_data_pack(const bcmolt_gpon_alloc_stat_alarm_cleared_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_gpon_alloc_stat_alarm_cleared_data 
+ * would occupy on the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_gpon_alloc_stat_alarm_cleared_data_get_packed_length(const bcmolt_gpon_alloc_stat_alarm_cleared_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_gpon_alloc_stat_alarm_cleared_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_alloc_stat_alarm_cleared_data_unpack(bcmolt_gpon_alloc_stat_alarm_cleared_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_gpon_alloc_stat_alarm_cleared_data struct and 
+ * collects memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_gpon_alloc_stat_alarm_cleared_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_gpon_alloc_stat_alarm_cleared_data is out 
+ * of bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_alloc_stat_alarm_cleared_data_bounds_check(const bcmolt_gpon_alloc_stat_alarm_cleared_data *this, bcmolt_presence_mask fields_present, bcmolt_gpon_alloc_stat_alarm_cleared_id *failed_prop);
+
+/** Initializes a bcmolt_gpon_alloc_stat_alarm_raised_data struct.  This sets 
+ * all fields to default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_gpon_alloc_stat_alarm_raised_data_set_default(bcmolt_gpon_alloc_stat_alarm_raised_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_gpon_alloc_stat_alarm_raised_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_alloc_stat_alarm_raised_data_pack(const bcmolt_gpon_alloc_stat_alarm_raised_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_gpon_alloc_stat_alarm_raised_data 
+ * would occupy on the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_gpon_alloc_stat_alarm_raised_data_get_packed_length(const bcmolt_gpon_alloc_stat_alarm_raised_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_gpon_alloc_stat_alarm_raised_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_alloc_stat_alarm_raised_data_unpack(bcmolt_gpon_alloc_stat_alarm_raised_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_gpon_alloc_stat_alarm_raised_data struct and 
+ * collects memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_gpon_alloc_stat_alarm_raised_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_gpon_alloc_stat_alarm_raised_data is out 
+ * of bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_alloc_stat_alarm_raised_data_bounds_check(const bcmolt_gpon_alloc_stat_alarm_raised_data *this, bcmolt_presence_mask fields_present, bcmolt_gpon_alloc_stat_alarm_raised_id *failed_prop);
+
+/** Initializes a bcmolt_gpon_alloc_auto_cfg_data struct.  This sets all fields 
+ * to default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_gpon_alloc_auto_cfg_data_set_default(bcmolt_gpon_alloc_auto_cfg_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_gpon_alloc_auto_cfg_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_alloc_auto_cfg_data_pack(const bcmolt_gpon_alloc_auto_cfg_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_gpon_alloc_auto_cfg_data would occupy 
+ * on the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_gpon_alloc_auto_cfg_data_get_packed_length(const bcmolt_gpon_alloc_auto_cfg_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_gpon_alloc_auto_cfg_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_alloc_auto_cfg_data_unpack(bcmolt_gpon_alloc_auto_cfg_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_gpon_alloc_auto_cfg_data struct and collects 
+ * memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_gpon_alloc_auto_cfg_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_gpon_alloc_auto_cfg_data is out of bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_alloc_auto_cfg_data_bounds_check(const bcmolt_gpon_alloc_auto_cfg_data *this, bcmolt_presence_mask fields_present, bcmolt_gpon_alloc_auto_cfg_id *failed_prop);
+
+/** Initializes a bcmolt_gpon_alloc_get_stats_data struct.  This sets all fields 
+ * to default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_gpon_alloc_get_stats_data_set_default(bcmolt_gpon_alloc_get_stats_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_gpon_alloc_get_stats_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_alloc_get_stats_data_pack(const bcmolt_gpon_alloc_get_stats_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_gpon_alloc_get_stats_data would 
+ * occupy on the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_gpon_alloc_get_stats_data_get_packed_length(const bcmolt_gpon_alloc_get_stats_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_gpon_alloc_get_stats_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_alloc_get_stats_data_unpack(bcmolt_gpon_alloc_get_stats_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_gpon_alloc_get_stats_data struct and collects 
+ * memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_gpon_alloc_get_stats_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_gpon_alloc_get_stats_data is out of bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_alloc_get_stats_data_bounds_check(const bcmolt_gpon_alloc_get_stats_data *this, bcmolt_presence_mask fields_present, bcmolt_gpon_alloc_get_stats_id *failed_prop);
+
+/** Initializes a bcmolt_gpon_alloc_set_state_data struct.  This sets all fields 
+ * to default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_gpon_alloc_set_state_data_set_default(bcmolt_gpon_alloc_set_state_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_gpon_alloc_set_state_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_alloc_set_state_data_pack(const bcmolt_gpon_alloc_set_state_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_gpon_alloc_set_state_data would 
+ * occupy on the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_gpon_alloc_set_state_data_get_packed_length(const bcmolt_gpon_alloc_set_state_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_gpon_alloc_set_state_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_alloc_set_state_data_unpack(bcmolt_gpon_alloc_set_state_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_gpon_alloc_set_state_data struct and collects 
+ * memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_gpon_alloc_set_state_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_gpon_alloc_set_state_data is out of bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_alloc_set_state_data_bounds_check(const bcmolt_gpon_alloc_set_state_data *this, bcmolt_presence_mask fields_present, bcmolt_gpon_alloc_set_state_id *failed_prop);
+
+/** Initializes a bcmolt_gpon_gem_port_key struct.  This sets all fields to 
+ * default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_gpon_gem_port_key_set_default(bcmolt_gpon_gem_port_key *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_gpon_gem_port_key to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_gem_port_key_pack(const bcmolt_gpon_gem_port_key *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_gpon_gem_port_key would occupy on the 
+ * wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_gpon_gem_port_key_get_packed_length(const bcmolt_gpon_gem_port_key *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_gpon_gem_port_key from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_gem_port_key_unpack(bcmolt_gpon_gem_port_key *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_gpon_gem_port_key struct and collects memory 
+ * requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_gpon_gem_port_key_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_gpon_gem_port_key is out of bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_gem_port_key_bounds_check(const bcmolt_gpon_gem_port_key *this, bcmolt_presence_mask fields_present, bcmolt_gpon_gem_port_key_id *failed_prop);
+
+/** Initializes a bcmolt_gpon_gem_port_cfg_data struct.  This sets all fields to 
+ * default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_gpon_gem_port_cfg_data_set_default(bcmolt_gpon_gem_port_cfg_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_gpon_gem_port_cfg_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_gem_port_cfg_data_pack(const bcmolt_gpon_gem_port_cfg_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_gpon_gem_port_cfg_data would occupy 
+ * on the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_gpon_gem_port_cfg_data_get_packed_length(const bcmolt_gpon_gem_port_cfg_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_gpon_gem_port_cfg_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_gem_port_cfg_data_unpack(bcmolt_gpon_gem_port_cfg_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_gpon_gem_port_cfg_data struct and collects memory 
+ * requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_gpon_gem_port_cfg_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_gpon_gem_port_cfg_data is out of bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_gem_port_cfg_data_bounds_check(const bcmolt_gpon_gem_port_cfg_data *this, bcmolt_presence_mask fields_present, bcmolt_gpon_gem_port_cfg_id *failed_prop);
+
+/** Initializes a bcmolt_gpon_gem_port_stat_data struct.  This sets all fields 
+ * to default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_gpon_gem_port_stat_data_set_default(bcmolt_gpon_gem_port_stat_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_gpon_gem_port_stat_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_gem_port_stat_data_pack(const bcmolt_gpon_gem_port_stat_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_gpon_gem_port_stat_data would occupy 
+ * on the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_gpon_gem_port_stat_data_get_packed_length(const bcmolt_gpon_gem_port_stat_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_gpon_gem_port_stat_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_gem_port_stat_data_unpack(bcmolt_gpon_gem_port_stat_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_gpon_gem_port_stat_data struct and collects 
+ * memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_gpon_gem_port_stat_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_gpon_gem_port_stat_data is out of bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_gem_port_stat_data_bounds_check(const bcmolt_gpon_gem_port_stat_data *this, bcmolt_presence_mask fields_present, bcmolt_gpon_gem_port_stat_id *failed_prop);
+
+/** Initializes a bcmolt_gpon_gem_port_stat_cfg_data struct.  This sets all 
+ * fields to default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_gpon_gem_port_stat_cfg_data_set_default(bcmolt_gpon_gem_port_stat_cfg_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_gpon_gem_port_stat_cfg_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_gem_port_stat_cfg_data_pack(const bcmolt_gpon_gem_port_stat_cfg_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_gpon_gem_port_stat_cfg_data would 
+ * occupy on the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_gpon_gem_port_stat_cfg_data_get_packed_length(const bcmolt_gpon_gem_port_stat_cfg_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_gpon_gem_port_stat_cfg_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_gem_port_stat_cfg_data_unpack(bcmolt_gpon_gem_port_stat_cfg_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_gpon_gem_port_stat_cfg_data struct and collects 
+ * memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_gpon_gem_port_stat_cfg_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_gpon_gem_port_stat_cfg_data is out of 
+ * bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_gem_port_stat_cfg_data_bounds_check(const bcmolt_gpon_gem_port_stat_cfg_data *this, bcmolt_presence_mask fields_present, bcmolt_gpon_gem_port_stat_cfg_id *failed_prop);
+
+/** Initializes a bcmolt_gpon_gem_port_configuration_completed_data struct.  
+ * This sets all fields to default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_gpon_gem_port_configuration_completed_data_set_default(bcmolt_gpon_gem_port_configuration_completed_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_gpon_gem_port_configuration_completed_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_gem_port_configuration_completed_data_pack(const bcmolt_gpon_gem_port_configuration_completed_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a 
+ * bcmolt_gpon_gem_port_configuration_completed_data would occupy on the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_gpon_gem_port_configuration_completed_data_get_packed_length(const bcmolt_gpon_gem_port_configuration_completed_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_gpon_gem_port_configuration_completed_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_gem_port_configuration_completed_data_unpack(bcmolt_gpon_gem_port_configuration_completed_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_gpon_gem_port_configuration_completed_data struct 
+ * and collects memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_gpon_gem_port_configuration_completed_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_gpon_gem_port_configuration_completed_data 
+ * is out of bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_gem_port_configuration_completed_data_bounds_check(const bcmolt_gpon_gem_port_configuration_completed_data *this, bcmolt_presence_mask fields_present, bcmolt_gpon_gem_port_configuration_completed_id *failed_prop);
+
+/** Initializes a bcmolt_gpon_gem_port_stat_alarm_cleared_data struct.  This 
+ * sets all fields to default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_gpon_gem_port_stat_alarm_cleared_data_set_default(bcmolt_gpon_gem_port_stat_alarm_cleared_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_gpon_gem_port_stat_alarm_cleared_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_gem_port_stat_alarm_cleared_data_pack(const bcmolt_gpon_gem_port_stat_alarm_cleared_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_gpon_gem_port_stat_alarm_cleared_data 
+ * would occupy on the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_gpon_gem_port_stat_alarm_cleared_data_get_packed_length(const bcmolt_gpon_gem_port_stat_alarm_cleared_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_gpon_gem_port_stat_alarm_cleared_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_gem_port_stat_alarm_cleared_data_unpack(bcmolt_gpon_gem_port_stat_alarm_cleared_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_gpon_gem_port_stat_alarm_cleared_data struct and 
+ * collects memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_gpon_gem_port_stat_alarm_cleared_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_gpon_gem_port_stat_alarm_cleared_data is 
+ * out of bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_gem_port_stat_alarm_cleared_data_bounds_check(const bcmolt_gpon_gem_port_stat_alarm_cleared_data *this, bcmolt_presence_mask fields_present, bcmolt_gpon_gem_port_stat_alarm_cleared_id *failed_prop);
+
+/** Initializes a bcmolt_gpon_gem_port_stat_alarm_raised_data struct.  This sets 
+ * all fields to default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_gpon_gem_port_stat_alarm_raised_data_set_default(bcmolt_gpon_gem_port_stat_alarm_raised_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_gpon_gem_port_stat_alarm_raised_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_gem_port_stat_alarm_raised_data_pack(const bcmolt_gpon_gem_port_stat_alarm_raised_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_gpon_gem_port_stat_alarm_raised_data 
+ * would occupy on the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_gpon_gem_port_stat_alarm_raised_data_get_packed_length(const bcmolt_gpon_gem_port_stat_alarm_raised_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_gpon_gem_port_stat_alarm_raised_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_gem_port_stat_alarm_raised_data_unpack(bcmolt_gpon_gem_port_stat_alarm_raised_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_gpon_gem_port_stat_alarm_raised_data struct and 
+ * collects memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_gpon_gem_port_stat_alarm_raised_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_gpon_gem_port_stat_alarm_raised_data is 
+ * out of bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_gem_port_stat_alarm_raised_data_bounds_check(const bcmolt_gpon_gem_port_stat_alarm_raised_data *this, bcmolt_presence_mask fields_present, bcmolt_gpon_gem_port_stat_alarm_raised_id *failed_prop);
+
+/** Initializes a bcmolt_gpon_gem_port_auto_cfg_data struct.  This sets all 
+ * fields to default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_gpon_gem_port_auto_cfg_data_set_default(bcmolt_gpon_gem_port_auto_cfg_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_gpon_gem_port_auto_cfg_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_gem_port_auto_cfg_data_pack(const bcmolt_gpon_gem_port_auto_cfg_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_gpon_gem_port_auto_cfg_data would 
+ * occupy on the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_gpon_gem_port_auto_cfg_data_get_packed_length(const bcmolt_gpon_gem_port_auto_cfg_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_gpon_gem_port_auto_cfg_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_gem_port_auto_cfg_data_unpack(bcmolt_gpon_gem_port_auto_cfg_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_gpon_gem_port_auto_cfg_data struct and collects 
+ * memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_gpon_gem_port_auto_cfg_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_gpon_gem_port_auto_cfg_data is out of 
+ * bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_gem_port_auto_cfg_data_bounds_check(const bcmolt_gpon_gem_port_auto_cfg_data *this, bcmolt_presence_mask fields_present, bcmolt_gpon_gem_port_auto_cfg_id *failed_prop);
+
+/** Initializes a bcmolt_gpon_gem_port_set_state_data struct.  This sets all 
+ * fields to default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_gpon_gem_port_set_state_data_set_default(bcmolt_gpon_gem_port_set_state_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_gpon_gem_port_set_state_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_gem_port_set_state_data_pack(const bcmolt_gpon_gem_port_set_state_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_gpon_gem_port_set_state_data would 
+ * occupy on the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_gpon_gem_port_set_state_data_get_packed_length(const bcmolt_gpon_gem_port_set_state_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_gpon_gem_port_set_state_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_gem_port_set_state_data_unpack(bcmolt_gpon_gem_port_set_state_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_gpon_gem_port_set_state_data struct and collects 
+ * memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_gpon_gem_port_set_state_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_gpon_gem_port_set_state_data is out of 
+ * bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_gem_port_set_state_data_bounds_check(const bcmolt_gpon_gem_port_set_state_data *this, bcmolt_presence_mask fields_present, bcmolt_gpon_gem_port_set_state_id *failed_prop);
+
+/** Initializes a bcmolt_gpon_iwf_key struct.  This sets all fields to default 
+ * values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_gpon_iwf_key_set_default(bcmolt_gpon_iwf_key *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_gpon_iwf_key to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_iwf_key_pack(const bcmolt_gpon_iwf_key *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_gpon_iwf_key would occupy on the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_gpon_iwf_key_get_packed_length(const bcmolt_gpon_iwf_key *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_gpon_iwf_key from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_iwf_key_unpack(bcmolt_gpon_iwf_key *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_gpon_iwf_key struct and collects memory 
+ * requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_gpon_iwf_key_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_gpon_iwf_key is out of bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_iwf_key_bounds_check(const bcmolt_gpon_iwf_key *this, bcmolt_presence_mask fields_present, bcmolt_gpon_iwf_key_id *failed_prop);
+
+/** Initializes a bcmolt_gpon_iwf_cfg_data struct.  This sets all fields to 
+ * default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_gpon_iwf_cfg_data_set_default(bcmolt_gpon_iwf_cfg_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_gpon_iwf_cfg_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_iwf_cfg_data_pack(const bcmolt_gpon_iwf_cfg_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_gpon_iwf_cfg_data would occupy on the 
+ * wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_gpon_iwf_cfg_data_get_packed_length(const bcmolt_gpon_iwf_cfg_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_gpon_iwf_cfg_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_iwf_cfg_data_unpack(bcmolt_gpon_iwf_cfg_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_gpon_iwf_cfg_data struct and collects memory 
+ * requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_gpon_iwf_cfg_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_gpon_iwf_cfg_data is out of bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_iwf_cfg_data_bounds_check(const bcmolt_gpon_iwf_cfg_data *this, bcmolt_presence_mask fields_present, bcmolt_gpon_iwf_cfg_id *failed_prop);
+
+/** Initializes a bcmolt_gpon_iwf_stat_data struct.  This sets all fields to 
+ * default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_gpon_iwf_stat_data_set_default(bcmolt_gpon_iwf_stat_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_gpon_iwf_stat_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_iwf_stat_data_pack(const bcmolt_gpon_iwf_stat_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_gpon_iwf_stat_data would occupy on 
+ * the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_gpon_iwf_stat_data_get_packed_length(const bcmolt_gpon_iwf_stat_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_gpon_iwf_stat_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_iwf_stat_data_unpack(bcmolt_gpon_iwf_stat_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_gpon_iwf_stat_data struct and collects memory 
+ * requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_gpon_iwf_stat_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_gpon_iwf_stat_data is out of bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_iwf_stat_data_bounds_check(const bcmolt_gpon_iwf_stat_data *this, bcmolt_presence_mask fields_present, bcmolt_gpon_iwf_stat_id *failed_prop);
+
+/** Initializes a bcmolt_gpon_iwf_stat_cfg_data struct.  This sets all fields to 
+ * default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_gpon_iwf_stat_cfg_data_set_default(bcmolt_gpon_iwf_stat_cfg_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_gpon_iwf_stat_cfg_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_iwf_stat_cfg_data_pack(const bcmolt_gpon_iwf_stat_cfg_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_gpon_iwf_stat_cfg_data would occupy 
+ * on the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_gpon_iwf_stat_cfg_data_get_packed_length(const bcmolt_gpon_iwf_stat_cfg_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_gpon_iwf_stat_cfg_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_iwf_stat_cfg_data_unpack(bcmolt_gpon_iwf_stat_cfg_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_gpon_iwf_stat_cfg_data struct and collects memory 
+ * requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_gpon_iwf_stat_cfg_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_gpon_iwf_stat_cfg_data is out of bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_iwf_stat_cfg_data_bounds_check(const bcmolt_gpon_iwf_stat_cfg_data *this, bcmolt_presence_mask fields_present, bcmolt_gpon_iwf_stat_cfg_id *failed_prop);
+
+/** Initializes a bcmolt_gpon_iwf_scan_mac_table_completed_data struct.  This 
+ * sets all fields to default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_gpon_iwf_scan_mac_table_completed_data_set_default(bcmolt_gpon_iwf_scan_mac_table_completed_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_gpon_iwf_scan_mac_table_completed_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_iwf_scan_mac_table_completed_data_pack(const bcmolt_gpon_iwf_scan_mac_table_completed_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a 
+ * bcmolt_gpon_iwf_scan_mac_table_completed_data would occupy on the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_gpon_iwf_scan_mac_table_completed_data_get_packed_length(const bcmolt_gpon_iwf_scan_mac_table_completed_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_gpon_iwf_scan_mac_table_completed_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_iwf_scan_mac_table_completed_data_unpack(bcmolt_gpon_iwf_scan_mac_table_completed_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_gpon_iwf_scan_mac_table_completed_data struct and 
+ * collects memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_gpon_iwf_scan_mac_table_completed_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_gpon_iwf_scan_mac_table_completed_data is 
+ * out of bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_iwf_scan_mac_table_completed_data_bounds_check(const bcmolt_gpon_iwf_scan_mac_table_completed_data *this, bcmolt_presence_mask fields_present, bcmolt_gpon_iwf_scan_mac_table_completed_id *failed_prop);
+
+/** Initializes a bcmolt_gpon_iwf_stat_alarm_cleared_data struct.  This sets all 
+ * fields to default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_gpon_iwf_stat_alarm_cleared_data_set_default(bcmolt_gpon_iwf_stat_alarm_cleared_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_gpon_iwf_stat_alarm_cleared_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_iwf_stat_alarm_cleared_data_pack(const bcmolt_gpon_iwf_stat_alarm_cleared_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_gpon_iwf_stat_alarm_cleared_data 
+ * would occupy on the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_gpon_iwf_stat_alarm_cleared_data_get_packed_length(const bcmolt_gpon_iwf_stat_alarm_cleared_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_gpon_iwf_stat_alarm_cleared_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_iwf_stat_alarm_cleared_data_unpack(bcmolt_gpon_iwf_stat_alarm_cleared_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_gpon_iwf_stat_alarm_cleared_data struct and 
+ * collects memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_gpon_iwf_stat_alarm_cleared_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_gpon_iwf_stat_alarm_cleared_data is out of 
+ * bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_iwf_stat_alarm_cleared_data_bounds_check(const bcmolt_gpon_iwf_stat_alarm_cleared_data *this, bcmolt_presence_mask fields_present, bcmolt_gpon_iwf_stat_alarm_cleared_id *failed_prop);
+
+/** Initializes a bcmolt_gpon_iwf_stat_alarm_raised_data struct.  This sets all 
+ * fields to default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_gpon_iwf_stat_alarm_raised_data_set_default(bcmolt_gpon_iwf_stat_alarm_raised_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_gpon_iwf_stat_alarm_raised_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_iwf_stat_alarm_raised_data_pack(const bcmolt_gpon_iwf_stat_alarm_raised_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_gpon_iwf_stat_alarm_raised_data would 
+ * occupy on the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_gpon_iwf_stat_alarm_raised_data_get_packed_length(const bcmolt_gpon_iwf_stat_alarm_raised_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_gpon_iwf_stat_alarm_raised_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_iwf_stat_alarm_raised_data_unpack(bcmolt_gpon_iwf_stat_alarm_raised_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_gpon_iwf_stat_alarm_raised_data struct and 
+ * collects memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_gpon_iwf_stat_alarm_raised_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_gpon_iwf_stat_alarm_raised_data is out of 
+ * bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_iwf_stat_alarm_raised_data_bounds_check(const bcmolt_gpon_iwf_stat_alarm_raised_data *this, bcmolt_presence_mask fields_present, bcmolt_gpon_iwf_stat_alarm_raised_id *failed_prop);
+
+/** Initializes a bcmolt_gpon_iwf_auto_cfg_data struct.  This sets all fields to 
+ * default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_gpon_iwf_auto_cfg_data_set_default(bcmolt_gpon_iwf_auto_cfg_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_gpon_iwf_auto_cfg_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_iwf_auto_cfg_data_pack(const bcmolt_gpon_iwf_auto_cfg_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_gpon_iwf_auto_cfg_data would occupy 
+ * on the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_gpon_iwf_auto_cfg_data_get_packed_length(const bcmolt_gpon_iwf_auto_cfg_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_gpon_iwf_auto_cfg_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_iwf_auto_cfg_data_unpack(bcmolt_gpon_iwf_auto_cfg_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_gpon_iwf_auto_cfg_data struct and collects memory 
+ * requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_gpon_iwf_auto_cfg_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_gpon_iwf_auto_cfg_data is out of bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_iwf_auto_cfg_data_bounds_check(const bcmolt_gpon_iwf_auto_cfg_data *this, bcmolt_presence_mask fields_present, bcmolt_gpon_iwf_auto_cfg_id *failed_prop);
+
+/** Initializes a bcmolt_gpon_iwf_flush_mac_table_data struct.  This sets all 
+ * fields to default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_gpon_iwf_flush_mac_table_data_set_default(bcmolt_gpon_iwf_flush_mac_table_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_gpon_iwf_flush_mac_table_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_iwf_flush_mac_table_data_pack(const bcmolt_gpon_iwf_flush_mac_table_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_gpon_iwf_flush_mac_table_data would 
+ * occupy on the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_gpon_iwf_flush_mac_table_data_get_packed_length(const bcmolt_gpon_iwf_flush_mac_table_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_gpon_iwf_flush_mac_table_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_iwf_flush_mac_table_data_unpack(bcmolt_gpon_iwf_flush_mac_table_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_gpon_iwf_flush_mac_table_data struct and collects 
+ * memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_gpon_iwf_flush_mac_table_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_gpon_iwf_flush_mac_table_data is out of 
+ * bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_iwf_flush_mac_table_data_bounds_check(const bcmolt_gpon_iwf_flush_mac_table_data *this, bcmolt_presence_mask fields_present, bcmolt_gpon_iwf_flush_mac_table_id *failed_prop);
+
+/** Initializes a bcmolt_gpon_iwf_scan_mac_table_data struct.  This sets all 
+ * fields to default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_gpon_iwf_scan_mac_table_data_set_default(bcmolt_gpon_iwf_scan_mac_table_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_gpon_iwf_scan_mac_table_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_iwf_scan_mac_table_data_pack(const bcmolt_gpon_iwf_scan_mac_table_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_gpon_iwf_scan_mac_table_data would 
+ * occupy on the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_gpon_iwf_scan_mac_table_data_get_packed_length(const bcmolt_gpon_iwf_scan_mac_table_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_gpon_iwf_scan_mac_table_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_iwf_scan_mac_table_data_unpack(bcmolt_gpon_iwf_scan_mac_table_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_gpon_iwf_scan_mac_table_data struct and collects 
+ * memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_gpon_iwf_scan_mac_table_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_gpon_iwf_scan_mac_table_data is out of 
+ * bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_iwf_scan_mac_table_data_bounds_check(const bcmolt_gpon_iwf_scan_mac_table_data *this, bcmolt_presence_mask fields_present, bcmolt_gpon_iwf_scan_mac_table_id *failed_prop);
+
+/** Initializes a bcmolt_gpon_iwf_ds_egress_flow_key struct.  This sets all 
+ * fields to default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_gpon_iwf_ds_egress_flow_key_set_default(bcmolt_gpon_iwf_ds_egress_flow_key *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_gpon_iwf_ds_egress_flow_key to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_iwf_ds_egress_flow_key_pack(const bcmolt_gpon_iwf_ds_egress_flow_key *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_gpon_iwf_ds_egress_flow_key would 
+ * occupy on the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_gpon_iwf_ds_egress_flow_key_get_packed_length(const bcmolt_gpon_iwf_ds_egress_flow_key *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_gpon_iwf_ds_egress_flow_key from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_iwf_ds_egress_flow_key_unpack(bcmolt_gpon_iwf_ds_egress_flow_key *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_gpon_iwf_ds_egress_flow_key struct and collects 
+ * memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_gpon_iwf_ds_egress_flow_key_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_gpon_iwf_ds_egress_flow_key is out of 
+ * bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_iwf_ds_egress_flow_key_bounds_check(const bcmolt_gpon_iwf_ds_egress_flow_key *this, bcmolt_presence_mask fields_present, bcmolt_gpon_iwf_ds_egress_flow_key_id *failed_prop);
+
+/** Initializes a bcmolt_gpon_iwf_ds_egress_flow_cfg_data struct.  This sets all 
+ * fields to default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_gpon_iwf_ds_egress_flow_cfg_data_set_default(bcmolt_gpon_iwf_ds_egress_flow_cfg_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_gpon_iwf_ds_egress_flow_cfg_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_iwf_ds_egress_flow_cfg_data_pack(const bcmolt_gpon_iwf_ds_egress_flow_cfg_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_gpon_iwf_ds_egress_flow_cfg_data 
+ * would occupy on the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_gpon_iwf_ds_egress_flow_cfg_data_get_packed_length(const bcmolt_gpon_iwf_ds_egress_flow_cfg_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_gpon_iwf_ds_egress_flow_cfg_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_iwf_ds_egress_flow_cfg_data_unpack(bcmolt_gpon_iwf_ds_egress_flow_cfg_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_gpon_iwf_ds_egress_flow_cfg_data struct and 
+ * collects memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_gpon_iwf_ds_egress_flow_cfg_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_gpon_iwf_ds_egress_flow_cfg_data is out of 
+ * bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_iwf_ds_egress_flow_cfg_data_bounds_check(const bcmolt_gpon_iwf_ds_egress_flow_cfg_data *this, bcmolt_presence_mask fields_present, bcmolt_gpon_iwf_ds_egress_flow_cfg_id *failed_prop);
+
+/** Initializes a bcmolt_gpon_iwf_ds_ingress_flow_key struct.  This sets all 
+ * fields to default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_gpon_iwf_ds_ingress_flow_key_set_default(bcmolt_gpon_iwf_ds_ingress_flow_key *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_gpon_iwf_ds_ingress_flow_key to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_iwf_ds_ingress_flow_key_pack(const bcmolt_gpon_iwf_ds_ingress_flow_key *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_gpon_iwf_ds_ingress_flow_key would 
+ * occupy on the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_gpon_iwf_ds_ingress_flow_key_get_packed_length(const bcmolt_gpon_iwf_ds_ingress_flow_key *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_gpon_iwf_ds_ingress_flow_key from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_iwf_ds_ingress_flow_key_unpack(bcmolt_gpon_iwf_ds_ingress_flow_key *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_gpon_iwf_ds_ingress_flow_key struct and collects 
+ * memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_gpon_iwf_ds_ingress_flow_key_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_gpon_iwf_ds_ingress_flow_key is out of 
+ * bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_iwf_ds_ingress_flow_key_bounds_check(const bcmolt_gpon_iwf_ds_ingress_flow_key *this, bcmolt_presence_mask fields_present, bcmolt_gpon_iwf_ds_ingress_flow_key_id *failed_prop);
+
+/** Initializes a bcmolt_gpon_iwf_ds_ingress_flow_cfg_data struct.  This sets 
+ * all fields to default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_gpon_iwf_ds_ingress_flow_cfg_data_set_default(bcmolt_gpon_iwf_ds_ingress_flow_cfg_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_gpon_iwf_ds_ingress_flow_cfg_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_iwf_ds_ingress_flow_cfg_data_pack(const bcmolt_gpon_iwf_ds_ingress_flow_cfg_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_gpon_iwf_ds_ingress_flow_cfg_data 
+ * would occupy on the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_gpon_iwf_ds_ingress_flow_cfg_data_get_packed_length(const bcmolt_gpon_iwf_ds_ingress_flow_cfg_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_gpon_iwf_ds_ingress_flow_cfg_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_iwf_ds_ingress_flow_cfg_data_unpack(bcmolt_gpon_iwf_ds_ingress_flow_cfg_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_gpon_iwf_ds_ingress_flow_cfg_data struct and 
+ * collects memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_gpon_iwf_ds_ingress_flow_cfg_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_gpon_iwf_ds_ingress_flow_cfg_data is out 
+ * of bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_iwf_ds_ingress_flow_cfg_data_bounds_check(const bcmolt_gpon_iwf_ds_ingress_flow_cfg_data *this, bcmolt_presence_mask fields_present, bcmolt_gpon_iwf_ds_ingress_flow_cfg_id *failed_prop);
+
+/** Initializes a bcmolt_gpon_iwf_mac_table_key struct.  This sets all fields to 
+ * default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_gpon_iwf_mac_table_key_set_default(bcmolt_gpon_iwf_mac_table_key *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_gpon_iwf_mac_table_key to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_iwf_mac_table_key_pack(const bcmolt_gpon_iwf_mac_table_key *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_gpon_iwf_mac_table_key would occupy 
+ * on the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_gpon_iwf_mac_table_key_get_packed_length(const bcmolt_gpon_iwf_mac_table_key *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_gpon_iwf_mac_table_key from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_iwf_mac_table_key_unpack(bcmolt_gpon_iwf_mac_table_key *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_gpon_iwf_mac_table_key struct and collects memory 
+ * requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_gpon_iwf_mac_table_key_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_gpon_iwf_mac_table_key is out of bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_iwf_mac_table_key_bounds_check(const bcmolt_gpon_iwf_mac_table_key *this, bcmolt_presence_mask fields_present, bcmolt_gpon_iwf_mac_table_key_id *failed_prop);
+
+/** Initializes a bcmolt_gpon_iwf_mac_table_cfg_data struct.  This sets all 
+ * fields to default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_gpon_iwf_mac_table_cfg_data_set_default(bcmolt_gpon_iwf_mac_table_cfg_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_gpon_iwf_mac_table_cfg_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_iwf_mac_table_cfg_data_pack(const bcmolt_gpon_iwf_mac_table_cfg_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_gpon_iwf_mac_table_cfg_data would 
+ * occupy on the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_gpon_iwf_mac_table_cfg_data_get_packed_length(const bcmolt_gpon_iwf_mac_table_cfg_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_gpon_iwf_mac_table_cfg_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_iwf_mac_table_cfg_data_unpack(bcmolt_gpon_iwf_mac_table_cfg_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_gpon_iwf_mac_table_cfg_data struct and collects 
+ * memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_gpon_iwf_mac_table_cfg_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_gpon_iwf_mac_table_cfg_data is out of 
+ * bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_iwf_mac_table_cfg_data_bounds_check(const bcmolt_gpon_iwf_mac_table_cfg_data *this, bcmolt_presence_mask fields_present, bcmolt_gpon_iwf_mac_table_cfg_id *failed_prop);
+
+/** Initializes a bcmolt_gpon_iwf_mac_table_mac_dropped_data struct.  This sets 
+ * all fields to default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_gpon_iwf_mac_table_mac_dropped_data_set_default(bcmolt_gpon_iwf_mac_table_mac_dropped_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_gpon_iwf_mac_table_mac_dropped_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_iwf_mac_table_mac_dropped_data_pack(const bcmolt_gpon_iwf_mac_table_mac_dropped_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_gpon_iwf_mac_table_mac_dropped_data 
+ * would occupy on the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_gpon_iwf_mac_table_mac_dropped_data_get_packed_length(const bcmolt_gpon_iwf_mac_table_mac_dropped_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_gpon_iwf_mac_table_mac_dropped_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_iwf_mac_table_mac_dropped_data_unpack(bcmolt_gpon_iwf_mac_table_mac_dropped_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_gpon_iwf_mac_table_mac_dropped_data struct and 
+ * collects memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_gpon_iwf_mac_table_mac_dropped_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_gpon_iwf_mac_table_mac_dropped_data is out 
+ * of bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_iwf_mac_table_mac_dropped_data_bounds_check(const bcmolt_gpon_iwf_mac_table_mac_dropped_data *this, bcmolt_presence_mask fields_present, bcmolt_gpon_iwf_mac_table_mac_dropped_id *failed_prop);
+
+/** Initializes a bcmolt_gpon_iwf_mac_table_mac_move_data struct.  This sets all 
+ * fields to default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_gpon_iwf_mac_table_mac_move_data_set_default(bcmolt_gpon_iwf_mac_table_mac_move_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_gpon_iwf_mac_table_mac_move_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_iwf_mac_table_mac_move_data_pack(const bcmolt_gpon_iwf_mac_table_mac_move_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_gpon_iwf_mac_table_mac_move_data 
+ * would occupy on the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_gpon_iwf_mac_table_mac_move_data_get_packed_length(const bcmolt_gpon_iwf_mac_table_mac_move_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_gpon_iwf_mac_table_mac_move_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_iwf_mac_table_mac_move_data_unpack(bcmolt_gpon_iwf_mac_table_mac_move_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_gpon_iwf_mac_table_mac_move_data struct and 
+ * collects memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_gpon_iwf_mac_table_mac_move_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_gpon_iwf_mac_table_mac_move_data is out of 
+ * bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_iwf_mac_table_mac_move_data_bounds_check(const bcmolt_gpon_iwf_mac_table_mac_move_data *this, bcmolt_presence_mask fields_present, bcmolt_gpon_iwf_mac_table_mac_move_id *failed_prop);
+
+/** Initializes a bcmolt_gpon_iwf_mac_table_new_mac_data struct.  This sets all 
+ * fields to default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_gpon_iwf_mac_table_new_mac_data_set_default(bcmolt_gpon_iwf_mac_table_new_mac_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_gpon_iwf_mac_table_new_mac_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_iwf_mac_table_new_mac_data_pack(const bcmolt_gpon_iwf_mac_table_new_mac_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_gpon_iwf_mac_table_new_mac_data would 
+ * occupy on the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_gpon_iwf_mac_table_new_mac_data_get_packed_length(const bcmolt_gpon_iwf_mac_table_new_mac_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_gpon_iwf_mac_table_new_mac_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_iwf_mac_table_new_mac_data_unpack(bcmolt_gpon_iwf_mac_table_new_mac_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_gpon_iwf_mac_table_new_mac_data struct and 
+ * collects memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_gpon_iwf_mac_table_new_mac_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_gpon_iwf_mac_table_new_mac_data is out of 
+ * bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_iwf_mac_table_new_mac_data_bounds_check(const bcmolt_gpon_iwf_mac_table_new_mac_data *this, bcmolt_presence_mask fields_present, bcmolt_gpon_iwf_mac_table_new_mac_id *failed_prop);
+
+/** Initializes a bcmolt_gpon_iwf_mac_table_auto_cfg_data struct.  This sets all 
+ * fields to default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_gpon_iwf_mac_table_auto_cfg_data_set_default(bcmolt_gpon_iwf_mac_table_auto_cfg_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_gpon_iwf_mac_table_auto_cfg_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_iwf_mac_table_auto_cfg_data_pack(const bcmolt_gpon_iwf_mac_table_auto_cfg_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_gpon_iwf_mac_table_auto_cfg_data 
+ * would occupy on the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_gpon_iwf_mac_table_auto_cfg_data_get_packed_length(const bcmolt_gpon_iwf_mac_table_auto_cfg_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_gpon_iwf_mac_table_auto_cfg_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_iwf_mac_table_auto_cfg_data_unpack(bcmolt_gpon_iwf_mac_table_auto_cfg_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_gpon_iwf_mac_table_auto_cfg_data struct and 
+ * collects memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_gpon_iwf_mac_table_auto_cfg_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_gpon_iwf_mac_table_auto_cfg_data is out of 
+ * bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_iwf_mac_table_auto_cfg_data_bounds_check(const bcmolt_gpon_iwf_mac_table_auto_cfg_data *this, bcmolt_presence_mask fields_present, bcmolt_gpon_iwf_mac_table_auto_cfg_id *failed_prop);
+
+/** Initializes a bcmolt_gpon_iwf_us_flow_key struct.  This sets all fields to 
+ * default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_gpon_iwf_us_flow_key_set_default(bcmolt_gpon_iwf_us_flow_key *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_gpon_iwf_us_flow_key to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_iwf_us_flow_key_pack(const bcmolt_gpon_iwf_us_flow_key *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_gpon_iwf_us_flow_key would occupy on 
+ * the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_gpon_iwf_us_flow_key_get_packed_length(const bcmolt_gpon_iwf_us_flow_key *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_gpon_iwf_us_flow_key from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_iwf_us_flow_key_unpack(bcmolt_gpon_iwf_us_flow_key *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_gpon_iwf_us_flow_key struct and collects memory 
+ * requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_gpon_iwf_us_flow_key_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_gpon_iwf_us_flow_key is out of bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_iwf_us_flow_key_bounds_check(const bcmolt_gpon_iwf_us_flow_key *this, bcmolt_presence_mask fields_present, bcmolt_gpon_iwf_us_flow_key_id *failed_prop);
+
+/** Initializes a bcmolt_gpon_iwf_us_flow_cfg_data struct.  This sets all fields 
+ * to default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_gpon_iwf_us_flow_cfg_data_set_default(bcmolt_gpon_iwf_us_flow_cfg_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_gpon_iwf_us_flow_cfg_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_iwf_us_flow_cfg_data_pack(const bcmolt_gpon_iwf_us_flow_cfg_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_gpon_iwf_us_flow_cfg_data would 
+ * occupy on the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_gpon_iwf_us_flow_cfg_data_get_packed_length(const bcmolt_gpon_iwf_us_flow_cfg_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_gpon_iwf_us_flow_cfg_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_iwf_us_flow_cfg_data_unpack(bcmolt_gpon_iwf_us_flow_cfg_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_gpon_iwf_us_flow_cfg_data struct and collects 
+ * memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_gpon_iwf_us_flow_cfg_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_gpon_iwf_us_flow_cfg_data is out of bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_iwf_us_flow_cfg_data_bounds_check(const bcmolt_gpon_iwf_us_flow_cfg_data *this, bcmolt_presence_mask fields_present, bcmolt_gpon_iwf_us_flow_cfg_id *failed_prop);
+
+/** Initializes a bcmolt_gpon_ni_key struct.  This sets all fields to default 
+ * values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_gpon_ni_key_set_default(bcmolt_gpon_ni_key *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_gpon_ni_key to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_ni_key_pack(const bcmolt_gpon_ni_key *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_gpon_ni_key would occupy on the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_gpon_ni_key_get_packed_length(const bcmolt_gpon_ni_key *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_gpon_ni_key from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_ni_key_unpack(bcmolt_gpon_ni_key *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_gpon_ni_key struct and collects memory 
+ * requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_gpon_ni_key_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_gpon_ni_key is out of bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_ni_key_bounds_check(const bcmolt_gpon_ni_key *this, bcmolt_presence_mask fields_present, bcmolt_gpon_ni_key_id *failed_prop);
+
+/** Initializes a bcmolt_gpon_ni_cfg_data struct.  This sets all fields to 
+ * default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_gpon_ni_cfg_data_set_default(bcmolt_gpon_ni_cfg_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_gpon_ni_cfg_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_ni_cfg_data_pack(const bcmolt_gpon_ni_cfg_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_gpon_ni_cfg_data would occupy on the 
+ * wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_gpon_ni_cfg_data_get_packed_length(const bcmolt_gpon_ni_cfg_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_gpon_ni_cfg_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_ni_cfg_data_unpack(bcmolt_gpon_ni_cfg_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_gpon_ni_cfg_data struct and collects memory 
+ * requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_gpon_ni_cfg_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_gpon_ni_cfg_data is out of bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_ni_cfg_data_bounds_check(const bcmolt_gpon_ni_cfg_data *this, bcmolt_presence_mask fields_present, bcmolt_gpon_ni_cfg_id *failed_prop);
+
+/** Initializes a bcmolt_gpon_ni_stat_data struct.  This sets all fields to 
+ * default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_gpon_ni_stat_data_set_default(bcmolt_gpon_ni_stat_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_gpon_ni_stat_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_ni_stat_data_pack(const bcmolt_gpon_ni_stat_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_gpon_ni_stat_data would occupy on the 
+ * wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_gpon_ni_stat_data_get_packed_length(const bcmolt_gpon_ni_stat_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_gpon_ni_stat_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_ni_stat_data_unpack(bcmolt_gpon_ni_stat_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_gpon_ni_stat_data struct and collects memory 
+ * requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_gpon_ni_stat_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_gpon_ni_stat_data is out of bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_ni_stat_data_bounds_check(const bcmolt_gpon_ni_stat_data *this, bcmolt_presence_mask fields_present, bcmolt_gpon_ni_stat_id *failed_prop);
+
+/** Initializes a bcmolt_gpon_ni_stat_cfg_data struct.  This sets all fields to 
+ * default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_gpon_ni_stat_cfg_data_set_default(bcmolt_gpon_ni_stat_cfg_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_gpon_ni_stat_cfg_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_ni_stat_cfg_data_pack(const bcmolt_gpon_ni_stat_cfg_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_gpon_ni_stat_cfg_data would occupy on 
+ * the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_gpon_ni_stat_cfg_data_get_packed_length(const bcmolt_gpon_ni_stat_cfg_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_gpon_ni_stat_cfg_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_ni_stat_cfg_data_unpack(bcmolt_gpon_ni_stat_cfg_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_gpon_ni_stat_cfg_data struct and collects memory 
+ * requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_gpon_ni_stat_cfg_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_gpon_ni_stat_cfg_data is out of bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_ni_stat_cfg_data_bounds_check(const bcmolt_gpon_ni_stat_cfg_data *this, bcmolt_presence_mask fields_present, bcmolt_gpon_ni_stat_cfg_id *failed_prop);
+
+/** Initializes a bcmolt_gpon_ni_cpu_packets_failure_data struct.  This sets all 
+ * fields to default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_gpon_ni_cpu_packets_failure_data_set_default(bcmolt_gpon_ni_cpu_packets_failure_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_gpon_ni_cpu_packets_failure_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_ni_cpu_packets_failure_data_pack(const bcmolt_gpon_ni_cpu_packets_failure_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_gpon_ni_cpu_packets_failure_data 
+ * would occupy on the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_gpon_ni_cpu_packets_failure_data_get_packed_length(const bcmolt_gpon_ni_cpu_packets_failure_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_gpon_ni_cpu_packets_failure_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_ni_cpu_packets_failure_data_unpack(bcmolt_gpon_ni_cpu_packets_failure_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_gpon_ni_cpu_packets_failure_data struct and 
+ * collects memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_gpon_ni_cpu_packets_failure_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_gpon_ni_cpu_packets_failure_data is out of 
+ * bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_ni_cpu_packets_failure_data_bounds_check(const bcmolt_gpon_ni_cpu_packets_failure_data *this, bcmolt_presence_mask fields_present, bcmolt_gpon_ni_cpu_packets_failure_id *failed_prop);
+
+/** Initializes a bcmolt_gpon_ni_los_data struct.  This sets all fields to 
+ * default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_gpon_ni_los_data_set_default(bcmolt_gpon_ni_los_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_gpon_ni_los_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_ni_los_data_pack(const bcmolt_gpon_ni_los_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_gpon_ni_los_data would occupy on the 
+ * wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_gpon_ni_los_data_get_packed_length(const bcmolt_gpon_ni_los_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_gpon_ni_los_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_ni_los_data_unpack(bcmolt_gpon_ni_los_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_gpon_ni_los_data struct and collects memory 
+ * requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_gpon_ni_los_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_gpon_ni_los_data is out of bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_ni_los_data_bounds_check(const bcmolt_gpon_ni_los_data *this, bcmolt_presence_mask fields_present, bcmolt_gpon_ni_los_id *failed_prop);
+
+/** Initializes a bcmolt_gpon_ni_onu_discovered_data struct.  This sets all 
+ * fields to default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_gpon_ni_onu_discovered_data_set_default(bcmolt_gpon_ni_onu_discovered_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_gpon_ni_onu_discovered_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_ni_onu_discovered_data_pack(const bcmolt_gpon_ni_onu_discovered_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_gpon_ni_onu_discovered_data would 
+ * occupy on the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_gpon_ni_onu_discovered_data_get_packed_length(const bcmolt_gpon_ni_onu_discovered_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_gpon_ni_onu_discovered_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_ni_onu_discovered_data_unpack(bcmolt_gpon_ni_onu_discovered_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_gpon_ni_onu_discovered_data struct and collects 
+ * memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_gpon_ni_onu_discovered_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_gpon_ni_onu_discovered_data is out of 
+ * bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_ni_onu_discovered_data_bounds_check(const bcmolt_gpon_ni_onu_discovered_data *this, bcmolt_presence_mask fields_present, bcmolt_gpon_ni_onu_discovered_id *failed_prop);
+
+/** Initializes a bcmolt_gpon_ni_onu_upgrade_complete_data struct.  This sets 
+ * all fields to default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_gpon_ni_onu_upgrade_complete_data_set_default(bcmolt_gpon_ni_onu_upgrade_complete_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_gpon_ni_onu_upgrade_complete_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_ni_onu_upgrade_complete_data_pack(const bcmolt_gpon_ni_onu_upgrade_complete_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_gpon_ni_onu_upgrade_complete_data 
+ * would occupy on the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_gpon_ni_onu_upgrade_complete_data_get_packed_length(const bcmolt_gpon_ni_onu_upgrade_complete_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_gpon_ni_onu_upgrade_complete_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_ni_onu_upgrade_complete_data_unpack(bcmolt_gpon_ni_onu_upgrade_complete_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_gpon_ni_onu_upgrade_complete_data struct and 
+ * collects memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_gpon_ni_onu_upgrade_complete_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_gpon_ni_onu_upgrade_complete_data is out 
+ * of bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_ni_onu_upgrade_complete_data_bounds_check(const bcmolt_gpon_ni_onu_upgrade_complete_data *this, bcmolt_presence_mask fields_present, bcmolt_gpon_ni_onu_upgrade_complete_id *failed_prop);
+
+/** Initializes a bcmolt_gpon_ni_protection_switching_onus_ranged_data struct.  
+ * This sets all fields to default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_gpon_ni_protection_switching_onus_ranged_data_set_default(bcmolt_gpon_ni_protection_switching_onus_ranged_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_gpon_ni_protection_switching_onus_ranged_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_ni_protection_switching_onus_ranged_data_pack(const bcmolt_gpon_ni_protection_switching_onus_ranged_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a 
+ * bcmolt_gpon_ni_protection_switching_onus_ranged_data would occupy on the 
+ * wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_gpon_ni_protection_switching_onus_ranged_data_get_packed_length(const bcmolt_gpon_ni_protection_switching_onus_ranged_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_gpon_ni_protection_switching_onus_ranged_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_ni_protection_switching_onus_ranged_data_unpack(bcmolt_gpon_ni_protection_switching_onus_ranged_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_gpon_ni_protection_switching_onus_ranged_data 
+ * struct and collects memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_gpon_ni_protection_switching_onus_ranged_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the 
+ * bcmolt_gpon_ni_protection_switching_onus_ranged_data is out of bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_ni_protection_switching_onus_ranged_data_bounds_check(const bcmolt_gpon_ni_protection_switching_onus_ranged_data *this, bcmolt_presence_mask fields_present, bcmolt_gpon_ni_protection_switching_onus_ranged_id *failed_prop);
+
+/** Initializes a bcmolt_gpon_ni_protection_switching_switchover_completed_data 
+ * struct.  This sets all fields to default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_gpon_ni_protection_switching_switchover_completed_data_set_default(bcmolt_gpon_ni_protection_switching_switchover_completed_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_gpon_ni_protection_switching_switchover_completed_data to 
+ * bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_ni_protection_switching_switchover_completed_data_pack(const bcmolt_gpon_ni_protection_switching_switchover_completed_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a 
+ * bcmolt_gpon_ni_protection_switching_switchover_completed_data would occupy 
+ * on the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_gpon_ni_protection_switching_switchover_completed_data_get_packed_length(const bcmolt_gpon_ni_protection_switching_switchover_completed_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_gpon_ni_protection_switching_switchover_completed_data from 
+ * bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_ni_protection_switching_switchover_completed_data_unpack(bcmolt_gpon_ni_protection_switching_switchover_completed_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed 
+ * bcmolt_gpon_ni_protection_switching_switchover_completed_data struct and 
+ * collects memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_gpon_ni_protection_switching_switchover_completed_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the 
+ * bcmolt_gpon_ni_protection_switching_switchover_completed_data is out of 
+ * bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_ni_protection_switching_switchover_completed_data_bounds_check(const bcmolt_gpon_ni_protection_switching_switchover_completed_data *this, bcmolt_presence_mask fields_present, bcmolt_gpon_ni_protection_switching_switchover_completed_id *failed_prop);
+
+/** Initializes a bcmolt_gpon_ni_protection_switching_traffic_resume_data 
+ * struct.  This sets all fields to default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_gpon_ni_protection_switching_traffic_resume_data_set_default(bcmolt_gpon_ni_protection_switching_traffic_resume_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_gpon_ni_protection_switching_traffic_resume_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_ni_protection_switching_traffic_resume_data_pack(const bcmolt_gpon_ni_protection_switching_traffic_resume_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a 
+ * bcmolt_gpon_ni_protection_switching_traffic_resume_data would occupy on the 
+ * wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_gpon_ni_protection_switching_traffic_resume_data_get_packed_length(const bcmolt_gpon_ni_protection_switching_traffic_resume_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_gpon_ni_protection_switching_traffic_resume_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_ni_protection_switching_traffic_resume_data_unpack(bcmolt_gpon_ni_protection_switching_traffic_resume_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_gpon_ni_protection_switching_traffic_resume_data 
+ * struct and collects memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_gpon_ni_protection_switching_traffic_resume_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the 
+ * bcmolt_gpon_ni_protection_switching_traffic_resume_data is out of bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_ni_protection_switching_traffic_resume_data_bounds_check(const bcmolt_gpon_ni_protection_switching_traffic_resume_data *this, bcmolt_presence_mask fields_present, bcmolt_gpon_ni_protection_switching_traffic_resume_id *failed_prop);
+
+/** Initializes a bcmolt_gpon_ni_rogue_detection_completed_data struct.  This 
+ * sets all fields to default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_gpon_ni_rogue_detection_completed_data_set_default(bcmolt_gpon_ni_rogue_detection_completed_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_gpon_ni_rogue_detection_completed_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_ni_rogue_detection_completed_data_pack(const bcmolt_gpon_ni_rogue_detection_completed_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a 
+ * bcmolt_gpon_ni_rogue_detection_completed_data would occupy on the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_gpon_ni_rogue_detection_completed_data_get_packed_length(const bcmolt_gpon_ni_rogue_detection_completed_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_gpon_ni_rogue_detection_completed_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_ni_rogue_detection_completed_data_unpack(bcmolt_gpon_ni_rogue_detection_completed_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_gpon_ni_rogue_detection_completed_data struct and 
+ * collects memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_gpon_ni_rogue_detection_completed_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_gpon_ni_rogue_detection_completed_data is 
+ * out of bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_ni_rogue_detection_completed_data_bounds_check(const bcmolt_gpon_ni_rogue_detection_completed_data *this, bcmolt_presence_mask fields_present, bcmolt_gpon_ni_rogue_detection_completed_id *failed_prop);
+
+/** Initializes a bcmolt_gpon_ni_standby_pon_monitoring_cycle_completed_data 
+ * struct.  This sets all fields to default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_gpon_ni_standby_pon_monitoring_cycle_completed_data_set_default(bcmolt_gpon_ni_standby_pon_monitoring_cycle_completed_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_gpon_ni_standby_pon_monitoring_cycle_completed_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_ni_standby_pon_monitoring_cycle_completed_data_pack(const bcmolt_gpon_ni_standby_pon_monitoring_cycle_completed_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a 
+ * bcmolt_gpon_ni_standby_pon_monitoring_cycle_completed_data would occupy on 
+ * the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_gpon_ni_standby_pon_monitoring_cycle_completed_data_get_packed_length(const bcmolt_gpon_ni_standby_pon_monitoring_cycle_completed_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_gpon_ni_standby_pon_monitoring_cycle_completed_data from 
+ * bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_ni_standby_pon_monitoring_cycle_completed_data_unpack(bcmolt_gpon_ni_standby_pon_monitoring_cycle_completed_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed 
+ * bcmolt_gpon_ni_standby_pon_monitoring_cycle_completed_data struct and 
+ * collects memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_gpon_ni_standby_pon_monitoring_cycle_completed_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the 
+ * bcmolt_gpon_ni_standby_pon_monitoring_cycle_completed_data is out of bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_ni_standby_pon_monitoring_cycle_completed_data_bounds_check(const bcmolt_gpon_ni_standby_pon_monitoring_cycle_completed_data *this, bcmolt_presence_mask fields_present, bcmolt_gpon_ni_standby_pon_monitoring_cycle_completed_id *failed_prop);
+
+/** Initializes a bcmolt_gpon_ni_stat_alarm_cleared_data struct.  This sets all 
+ * fields to default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_gpon_ni_stat_alarm_cleared_data_set_default(bcmolt_gpon_ni_stat_alarm_cleared_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_gpon_ni_stat_alarm_cleared_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_ni_stat_alarm_cleared_data_pack(const bcmolt_gpon_ni_stat_alarm_cleared_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_gpon_ni_stat_alarm_cleared_data would 
+ * occupy on the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_gpon_ni_stat_alarm_cleared_data_get_packed_length(const bcmolt_gpon_ni_stat_alarm_cleared_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_gpon_ni_stat_alarm_cleared_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_ni_stat_alarm_cleared_data_unpack(bcmolt_gpon_ni_stat_alarm_cleared_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_gpon_ni_stat_alarm_cleared_data struct and 
+ * collects memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_gpon_ni_stat_alarm_cleared_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_gpon_ni_stat_alarm_cleared_data is out of 
+ * bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_ni_stat_alarm_cleared_data_bounds_check(const bcmolt_gpon_ni_stat_alarm_cleared_data *this, bcmolt_presence_mask fields_present, bcmolt_gpon_ni_stat_alarm_cleared_id *failed_prop);
+
+/** Initializes a bcmolt_gpon_ni_stat_alarm_raised_data struct.  This sets all 
+ * fields to default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_gpon_ni_stat_alarm_raised_data_set_default(bcmolt_gpon_ni_stat_alarm_raised_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_gpon_ni_stat_alarm_raised_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_ni_stat_alarm_raised_data_pack(const bcmolt_gpon_ni_stat_alarm_raised_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_gpon_ni_stat_alarm_raised_data would 
+ * occupy on the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_gpon_ni_stat_alarm_raised_data_get_packed_length(const bcmolt_gpon_ni_stat_alarm_raised_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_gpon_ni_stat_alarm_raised_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_ni_stat_alarm_raised_data_unpack(bcmolt_gpon_ni_stat_alarm_raised_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_gpon_ni_stat_alarm_raised_data struct and 
+ * collects memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_gpon_ni_stat_alarm_raised_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_gpon_ni_stat_alarm_raised_data is out of 
+ * bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_ni_stat_alarm_raised_data_bounds_check(const bcmolt_gpon_ni_stat_alarm_raised_data *this, bcmolt_presence_mask fields_present, bcmolt_gpon_ni_stat_alarm_raised_id *failed_prop);
+
+/** Initializes a bcmolt_gpon_ni_state_change_completed_data struct.  This sets 
+ * all fields to default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_gpon_ni_state_change_completed_data_set_default(bcmolt_gpon_ni_state_change_completed_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_gpon_ni_state_change_completed_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_ni_state_change_completed_data_pack(const bcmolt_gpon_ni_state_change_completed_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_gpon_ni_state_change_completed_data 
+ * would occupy on the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_gpon_ni_state_change_completed_data_get_packed_length(const bcmolt_gpon_ni_state_change_completed_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_gpon_ni_state_change_completed_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_ni_state_change_completed_data_unpack(bcmolt_gpon_ni_state_change_completed_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_gpon_ni_state_change_completed_data struct and 
+ * collects memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_gpon_ni_state_change_completed_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_gpon_ni_state_change_completed_data is out 
+ * of bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_ni_state_change_completed_data_bounds_check(const bcmolt_gpon_ni_state_change_completed_data *this, bcmolt_presence_mask fields_present, bcmolt_gpon_ni_state_change_completed_id *failed_prop);
+
+/** Initializes a bcmolt_gpon_ni_tod_request_completed_data struct.  This sets 
+ * all fields to default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_gpon_ni_tod_request_completed_data_set_default(bcmolt_gpon_ni_tod_request_completed_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_gpon_ni_tod_request_completed_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_ni_tod_request_completed_data_pack(const bcmolt_gpon_ni_tod_request_completed_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_gpon_ni_tod_request_completed_data 
+ * would occupy on the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_gpon_ni_tod_request_completed_data_get_packed_length(const bcmolt_gpon_ni_tod_request_completed_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_gpon_ni_tod_request_completed_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_ni_tod_request_completed_data_unpack(bcmolt_gpon_ni_tod_request_completed_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_gpon_ni_tod_request_completed_data struct and 
+ * collects memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_gpon_ni_tod_request_completed_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_gpon_ni_tod_request_completed_data is out 
+ * of bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_ni_tod_request_completed_data_bounds_check(const bcmolt_gpon_ni_tod_request_completed_data *this, bcmolt_presence_mask fields_present, bcmolt_gpon_ni_tod_request_completed_id *failed_prop);
+
+/** Initializes a bcmolt_gpon_ni_auto_cfg_data struct.  This sets all fields to 
+ * default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_gpon_ni_auto_cfg_data_set_default(bcmolt_gpon_ni_auto_cfg_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_gpon_ni_auto_cfg_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_ni_auto_cfg_data_pack(const bcmolt_gpon_ni_auto_cfg_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_gpon_ni_auto_cfg_data would occupy on 
+ * the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_gpon_ni_auto_cfg_data_get_packed_length(const bcmolt_gpon_ni_auto_cfg_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_gpon_ni_auto_cfg_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_ni_auto_cfg_data_unpack(bcmolt_gpon_ni_auto_cfg_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_gpon_ni_auto_cfg_data struct and collects memory 
+ * requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_gpon_ni_auto_cfg_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_gpon_ni_auto_cfg_data is out of bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_ni_auto_cfg_data_bounds_check(const bcmolt_gpon_ni_auto_cfg_data *this, bcmolt_presence_mask fields_present, bcmolt_gpon_ni_auto_cfg_id *failed_prop);
+
+/** Initializes a bcmolt_gpon_ni_disable_serial_number_data struct.  This sets 
+ * all fields to default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_gpon_ni_disable_serial_number_data_set_default(bcmolt_gpon_ni_disable_serial_number_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_gpon_ni_disable_serial_number_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_ni_disable_serial_number_data_pack(const bcmolt_gpon_ni_disable_serial_number_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_gpon_ni_disable_serial_number_data 
+ * would occupy on the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_gpon_ni_disable_serial_number_data_get_packed_length(const bcmolt_gpon_ni_disable_serial_number_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_gpon_ni_disable_serial_number_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_ni_disable_serial_number_data_unpack(bcmolt_gpon_ni_disable_serial_number_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_gpon_ni_disable_serial_number_data struct and 
+ * collects memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_gpon_ni_disable_serial_number_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_gpon_ni_disable_serial_number_data is out 
+ * of bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_ni_disable_serial_number_data_bounds_check(const bcmolt_gpon_ni_disable_serial_number_data *this, bcmolt_presence_mask fields_present, bcmolt_gpon_ni_disable_serial_number_id *failed_prop);
+
+/** Initializes a 
+ * bcmolt_gpon_ni_protection_switching_type_c_set_multiple_onu_state_data 
+ * struct.  This sets all fields to default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_gpon_ni_protection_switching_type_c_set_multiple_onu_state_data_set_default(bcmolt_gpon_ni_protection_switching_type_c_set_multiple_onu_state_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a 
+ * bcmolt_gpon_ni_protection_switching_type_c_set_multiple_onu_state_data to 
+ * bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_ni_protection_switching_type_c_set_multiple_onu_state_data_pack(const bcmolt_gpon_ni_protection_switching_type_c_set_multiple_onu_state_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a 
+ * bcmolt_gpon_ni_protection_switching_type_c_set_multiple_onu_state_data would 
+ * occupy on the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_gpon_ni_protection_switching_type_c_set_multiple_onu_state_data_get_packed_length(const bcmolt_gpon_ni_protection_switching_type_c_set_multiple_onu_state_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a 
+ * bcmolt_gpon_ni_protection_switching_type_c_set_multiple_onu_state_data from 
+ * bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_ni_protection_switching_type_c_set_multiple_onu_state_data_unpack(bcmolt_gpon_ni_protection_switching_type_c_set_multiple_onu_state_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed 
+ * bcmolt_gpon_ni_protection_switching_type_c_set_multiple_onu_state_data 
+ * struct and collects memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_gpon_ni_protection_switching_type_c_set_multiple_onu_state_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the 
+ * bcmolt_gpon_ni_protection_switching_type_c_set_multiple_onu_state_data is 
+ * out of bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_ni_protection_switching_type_c_set_multiple_onu_state_data_bounds_check(const bcmolt_gpon_ni_protection_switching_type_c_set_multiple_onu_state_data *this, bcmolt_presence_mask fields_present, bcmolt_gpon_ni_protection_switching_type_c_set_multiple_onu_state_id *failed_prop);
+
+/** Initializes a bcmolt_gpon_ni_rogue_detection_window_data struct.  This sets 
+ * all fields to default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_gpon_ni_rogue_detection_window_data_set_default(bcmolt_gpon_ni_rogue_detection_window_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_gpon_ni_rogue_detection_window_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_ni_rogue_detection_window_data_pack(const bcmolt_gpon_ni_rogue_detection_window_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_gpon_ni_rogue_detection_window_data 
+ * would occupy on the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_gpon_ni_rogue_detection_window_data_get_packed_length(const bcmolt_gpon_ni_rogue_detection_window_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_gpon_ni_rogue_detection_window_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_ni_rogue_detection_window_data_unpack(bcmolt_gpon_ni_rogue_detection_window_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_gpon_ni_rogue_detection_window_data struct and 
+ * collects memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_gpon_ni_rogue_detection_window_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_gpon_ni_rogue_detection_window_data is out 
+ * of bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_ni_rogue_detection_window_data_bounds_check(const bcmolt_gpon_ni_rogue_detection_window_data *this, bcmolt_presence_mask fields_present, bcmolt_gpon_ni_rogue_detection_window_id *failed_prop);
+
+/** Initializes a bcmolt_gpon_ni_set_onu_state_data struct.  This sets all 
+ * fields to default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_gpon_ni_set_onu_state_data_set_default(bcmolt_gpon_ni_set_onu_state_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_gpon_ni_set_onu_state_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_ni_set_onu_state_data_pack(const bcmolt_gpon_ni_set_onu_state_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_gpon_ni_set_onu_state_data would 
+ * occupy on the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_gpon_ni_set_onu_state_data_get_packed_length(const bcmolt_gpon_ni_set_onu_state_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_gpon_ni_set_onu_state_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_ni_set_onu_state_data_unpack(bcmolt_gpon_ni_set_onu_state_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_gpon_ni_set_onu_state_data struct and collects 
+ * memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_gpon_ni_set_onu_state_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_gpon_ni_set_onu_state_data is out of 
+ * bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_ni_set_onu_state_data_bounds_check(const bcmolt_gpon_ni_set_onu_state_data *this, bcmolt_presence_mask fields_present, bcmolt_gpon_ni_set_onu_state_id *failed_prop);
+
+/** Initializes a bcmolt_gpon_ni_set_pon_state_data struct.  This sets all 
+ * fields to default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_gpon_ni_set_pon_state_data_set_default(bcmolt_gpon_ni_set_pon_state_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_gpon_ni_set_pon_state_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_ni_set_pon_state_data_pack(const bcmolt_gpon_ni_set_pon_state_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_gpon_ni_set_pon_state_data would 
+ * occupy on the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_gpon_ni_set_pon_state_data_get_packed_length(const bcmolt_gpon_ni_set_pon_state_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_gpon_ni_set_pon_state_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_ni_set_pon_state_data_unpack(bcmolt_gpon_ni_set_pon_state_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_gpon_ni_set_pon_state_data struct and collects 
+ * memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_gpon_ni_set_pon_state_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_gpon_ni_set_pon_state_data is out of 
+ * bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_ni_set_pon_state_data_bounds_check(const bcmolt_gpon_ni_set_pon_state_data *this, bcmolt_presence_mask fields_present, bcmolt_gpon_ni_set_pon_state_id *failed_prop);
+
+/** Initializes a bcmolt_gpon_ni_start_onu_upgrade_data struct.  This sets all 
+ * fields to default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_gpon_ni_start_onu_upgrade_data_set_default(bcmolt_gpon_ni_start_onu_upgrade_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_gpon_ni_start_onu_upgrade_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_ni_start_onu_upgrade_data_pack(const bcmolt_gpon_ni_start_onu_upgrade_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_gpon_ni_start_onu_upgrade_data would 
+ * occupy on the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_gpon_ni_start_onu_upgrade_data_get_packed_length(const bcmolt_gpon_ni_start_onu_upgrade_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_gpon_ni_start_onu_upgrade_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_ni_start_onu_upgrade_data_unpack(bcmolt_gpon_ni_start_onu_upgrade_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_gpon_ni_start_onu_upgrade_data struct and 
+ * collects memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_gpon_ni_start_onu_upgrade_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_gpon_ni_start_onu_upgrade_data is out of 
+ * bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_ni_start_onu_upgrade_data_bounds_check(const bcmolt_gpon_ni_start_onu_upgrade_data *this, bcmolt_presence_mask fields_present, bcmolt_gpon_ni_start_onu_upgrade_id *failed_prop);
+
+/** Initializes a bcmolt_gpon_ni_broadcast_ploam_packet_data struct.  This sets 
+ * all fields to default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_gpon_ni_broadcast_ploam_packet_data_set_default(bcmolt_gpon_ni_broadcast_ploam_packet_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_gpon_ni_broadcast_ploam_packet_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_ni_broadcast_ploam_packet_data_pack(const bcmolt_gpon_ni_broadcast_ploam_packet_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_gpon_ni_broadcast_ploam_packet_data 
+ * would occupy on the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_gpon_ni_broadcast_ploam_packet_data_get_packed_length(const bcmolt_gpon_ni_broadcast_ploam_packet_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_gpon_ni_broadcast_ploam_packet_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_ni_broadcast_ploam_packet_data_unpack(bcmolt_gpon_ni_broadcast_ploam_packet_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_gpon_ni_broadcast_ploam_packet_data struct and 
+ * collects memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_gpon_ni_broadcast_ploam_packet_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_gpon_ni_broadcast_ploam_packet_data is out 
+ * of bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_ni_broadcast_ploam_packet_data_bounds_check(const bcmolt_gpon_ni_broadcast_ploam_packet_data *this, bcmolt_presence_mask fields_present, bcmolt_gpon_ni_broadcast_ploam_packet_id *failed_prop);
+
+/** Initializes a bcmolt_gpon_ni_cpu_packets_data struct.  This sets all fields 
+ * to default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_gpon_ni_cpu_packets_data_set_default(bcmolt_gpon_ni_cpu_packets_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_gpon_ni_cpu_packets_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_ni_cpu_packets_data_pack(const bcmolt_gpon_ni_cpu_packets_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_gpon_ni_cpu_packets_data would occupy 
+ * on the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_gpon_ni_cpu_packets_data_get_packed_length(const bcmolt_gpon_ni_cpu_packets_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_gpon_ni_cpu_packets_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_ni_cpu_packets_data_unpack(bcmolt_gpon_ni_cpu_packets_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_gpon_ni_cpu_packets_data struct and collects 
+ * memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_gpon_ni_cpu_packets_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_gpon_ni_cpu_packets_data is out of bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_ni_cpu_packets_data_bounds_check(const bcmolt_gpon_ni_cpu_packets_data *this, bcmolt_presence_mask fields_present, bcmolt_gpon_ni_cpu_packets_id *failed_prop);
+
+/** Initializes a bcmolt_gpon_onu_key struct.  This sets all fields to default 
+ * values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_gpon_onu_key_set_default(bcmolt_gpon_onu_key *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_gpon_onu_key to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_onu_key_pack(const bcmolt_gpon_onu_key *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_gpon_onu_key would occupy on the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_gpon_onu_key_get_packed_length(const bcmolt_gpon_onu_key *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_gpon_onu_key from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_onu_key_unpack(bcmolt_gpon_onu_key *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_gpon_onu_key struct and collects memory 
+ * requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_gpon_onu_key_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_gpon_onu_key is out of bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_onu_key_bounds_check(const bcmolt_gpon_onu_key *this, bcmolt_presence_mask fields_present, bcmolt_gpon_onu_key_id *failed_prop);
+
+/** Initializes a bcmolt_gpon_onu_cfg_data struct.  This sets all fields to 
+ * default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_gpon_onu_cfg_data_set_default(bcmolt_gpon_onu_cfg_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_gpon_onu_cfg_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_onu_cfg_data_pack(const bcmolt_gpon_onu_cfg_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_gpon_onu_cfg_data would occupy on the 
+ * wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_gpon_onu_cfg_data_get_packed_length(const bcmolt_gpon_onu_cfg_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_gpon_onu_cfg_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_onu_cfg_data_unpack(bcmolt_gpon_onu_cfg_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_gpon_onu_cfg_data struct and collects memory 
+ * requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_gpon_onu_cfg_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_gpon_onu_cfg_data is out of bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_onu_cfg_data_bounds_check(const bcmolt_gpon_onu_cfg_data *this, bcmolt_presence_mask fields_present, bcmolt_gpon_onu_cfg_id *failed_prop);
+
+/** Initializes a bcmolt_gpon_onu_stat_data struct.  This sets all fields to 
+ * default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_gpon_onu_stat_data_set_default(bcmolt_gpon_onu_stat_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_gpon_onu_stat_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_onu_stat_data_pack(const bcmolt_gpon_onu_stat_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_gpon_onu_stat_data would occupy on 
+ * the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_gpon_onu_stat_data_get_packed_length(const bcmolt_gpon_onu_stat_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_gpon_onu_stat_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_onu_stat_data_unpack(bcmolt_gpon_onu_stat_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_gpon_onu_stat_data struct and collects memory 
+ * requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_gpon_onu_stat_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_gpon_onu_stat_data is out of bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_onu_stat_data_bounds_check(const bcmolt_gpon_onu_stat_data *this, bcmolt_presence_mask fields_present, bcmolt_gpon_onu_stat_id *failed_prop);
+
+/** Initializes a bcmolt_gpon_onu_stat_cfg_data struct.  This sets all fields to 
+ * default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_gpon_onu_stat_cfg_data_set_default(bcmolt_gpon_onu_stat_cfg_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_gpon_onu_stat_cfg_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_onu_stat_cfg_data_pack(const bcmolt_gpon_onu_stat_cfg_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_gpon_onu_stat_cfg_data would occupy 
+ * on the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_gpon_onu_stat_cfg_data_get_packed_length(const bcmolt_gpon_onu_stat_cfg_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_gpon_onu_stat_cfg_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_onu_stat_cfg_data_unpack(bcmolt_gpon_onu_stat_cfg_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_gpon_onu_stat_cfg_data struct and collects memory 
+ * requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_gpon_onu_stat_cfg_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_gpon_onu_stat_cfg_data is out of bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_onu_stat_cfg_data_bounds_check(const bcmolt_gpon_onu_stat_cfg_data *this, bcmolt_presence_mask fields_present, bcmolt_gpon_onu_stat_cfg_id *failed_prop);
+
+/** Initializes a bcmolt_gpon_onu_ber_interval_configuration_completed_data 
+ * struct.  This sets all fields to default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_gpon_onu_ber_interval_configuration_completed_data_set_default(bcmolt_gpon_onu_ber_interval_configuration_completed_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_gpon_onu_ber_interval_configuration_completed_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_onu_ber_interval_configuration_completed_data_pack(const bcmolt_gpon_onu_ber_interval_configuration_completed_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a 
+ * bcmolt_gpon_onu_ber_interval_configuration_completed_data would occupy on 
+ * the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_gpon_onu_ber_interval_configuration_completed_data_get_packed_length(const bcmolt_gpon_onu_ber_interval_configuration_completed_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_gpon_onu_ber_interval_configuration_completed_data from 
+ * bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_onu_ber_interval_configuration_completed_data_unpack(bcmolt_gpon_onu_ber_interval_configuration_completed_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed 
+ * bcmolt_gpon_onu_ber_interval_configuration_completed_data struct and 
+ * collects memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_gpon_onu_ber_interval_configuration_completed_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the 
+ * bcmolt_gpon_onu_ber_interval_configuration_completed_data is out of bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_onu_ber_interval_configuration_completed_data_bounds_check(const bcmolt_gpon_onu_ber_interval_configuration_completed_data *this, bcmolt_presence_mask fields_present, bcmolt_gpon_onu_ber_interval_configuration_completed_id *failed_prop);
+
+/** Initializes a bcmolt_gpon_onu_dfi_data struct.  This sets all fields to 
+ * default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_gpon_onu_dfi_data_set_default(bcmolt_gpon_onu_dfi_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_gpon_onu_dfi_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_onu_dfi_data_pack(const bcmolt_gpon_onu_dfi_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_gpon_onu_dfi_data would occupy on the 
+ * wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_gpon_onu_dfi_data_get_packed_length(const bcmolt_gpon_onu_dfi_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_gpon_onu_dfi_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_onu_dfi_data_unpack(bcmolt_gpon_onu_dfi_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_gpon_onu_dfi_data struct and collects memory 
+ * requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_gpon_onu_dfi_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_gpon_onu_dfi_data is out of bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_onu_dfi_data_bounds_check(const bcmolt_gpon_onu_dfi_data *this, bcmolt_presence_mask fields_present, bcmolt_gpon_onu_dfi_id *failed_prop);
+
+/** Initializes a bcmolt_gpon_onu_dgi_data struct.  This sets all fields to 
+ * default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_gpon_onu_dgi_data_set_default(bcmolt_gpon_onu_dgi_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_gpon_onu_dgi_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_onu_dgi_data_pack(const bcmolt_gpon_onu_dgi_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_gpon_onu_dgi_data would occupy on the 
+ * wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_gpon_onu_dgi_data_get_packed_length(const bcmolt_gpon_onu_dgi_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_gpon_onu_dgi_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_onu_dgi_data_unpack(bcmolt_gpon_onu_dgi_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_gpon_onu_dgi_data struct and collects memory 
+ * requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_gpon_onu_dgi_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_gpon_onu_dgi_data is out of bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_onu_dgi_data_bounds_check(const bcmolt_gpon_onu_dgi_data *this, bcmolt_presence_mask fields_present, bcmolt_gpon_onu_dgi_id *failed_prop);
+
+/** Initializes a bcmolt_gpon_onu_dowi_data struct.  This sets all fields to 
+ * default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_gpon_onu_dowi_data_set_default(bcmolt_gpon_onu_dowi_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_gpon_onu_dowi_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_onu_dowi_data_pack(const bcmolt_gpon_onu_dowi_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_gpon_onu_dowi_data would occupy on 
+ * the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_gpon_onu_dowi_data_get_packed_length(const bcmolt_gpon_onu_dowi_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_gpon_onu_dowi_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_onu_dowi_data_unpack(bcmolt_gpon_onu_dowi_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_gpon_onu_dowi_data struct and collects memory 
+ * requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_gpon_onu_dowi_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_gpon_onu_dowi_data is out of bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_onu_dowi_data_bounds_check(const bcmolt_gpon_onu_dowi_data *this, bcmolt_presence_mask fields_present, bcmolt_gpon_onu_dowi_id *failed_prop);
+
+/** Initializes a bcmolt_gpon_onu_err_data struct.  This sets all fields to 
+ * default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_gpon_onu_err_data_set_default(bcmolt_gpon_onu_err_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_gpon_onu_err_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_onu_err_data_pack(const bcmolt_gpon_onu_err_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_gpon_onu_err_data would occupy on the 
+ * wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_gpon_onu_err_data_get_packed_length(const bcmolt_gpon_onu_err_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_gpon_onu_err_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_onu_err_data_unpack(bcmolt_gpon_onu_err_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_gpon_onu_err_data struct and collects memory 
+ * requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_gpon_onu_err_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_gpon_onu_err_data is out of bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_onu_err_data_bounds_check(const bcmolt_gpon_onu_err_data *this, bcmolt_presence_mask fields_present, bcmolt_gpon_onu_err_id *failed_prop);
+
+/** Initializes a bcmolt_gpon_onu_invalid_dbru_report_data struct.  This sets 
+ * all fields to default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_gpon_onu_invalid_dbru_report_data_set_default(bcmolt_gpon_onu_invalid_dbru_report_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_gpon_onu_invalid_dbru_report_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_onu_invalid_dbru_report_data_pack(const bcmolt_gpon_onu_invalid_dbru_report_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_gpon_onu_invalid_dbru_report_data 
+ * would occupy on the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_gpon_onu_invalid_dbru_report_data_get_packed_length(const bcmolt_gpon_onu_invalid_dbru_report_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_gpon_onu_invalid_dbru_report_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_onu_invalid_dbru_report_data_unpack(bcmolt_gpon_onu_invalid_dbru_report_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_gpon_onu_invalid_dbru_report_data struct and 
+ * collects memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_gpon_onu_invalid_dbru_report_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_gpon_onu_invalid_dbru_report_data is out 
+ * of bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_onu_invalid_dbru_report_data_bounds_check(const bcmolt_gpon_onu_invalid_dbru_report_data *this, bcmolt_presence_mask fields_present, bcmolt_gpon_onu_invalid_dbru_report_id *failed_prop);
+
+/** Initializes a bcmolt_gpon_onu_key_exchange_completed_data struct.  This sets 
+ * all fields to default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_gpon_onu_key_exchange_completed_data_set_default(bcmolt_gpon_onu_key_exchange_completed_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_gpon_onu_key_exchange_completed_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_onu_key_exchange_completed_data_pack(const bcmolt_gpon_onu_key_exchange_completed_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_gpon_onu_key_exchange_completed_data 
+ * would occupy on the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_gpon_onu_key_exchange_completed_data_get_packed_length(const bcmolt_gpon_onu_key_exchange_completed_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_gpon_onu_key_exchange_completed_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_onu_key_exchange_completed_data_unpack(bcmolt_gpon_onu_key_exchange_completed_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_gpon_onu_key_exchange_completed_data struct and 
+ * collects memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_gpon_onu_key_exchange_completed_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_gpon_onu_key_exchange_completed_data is 
+ * out of bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_onu_key_exchange_completed_data_bounds_check(const bcmolt_gpon_onu_key_exchange_completed_data *this, bcmolt_presence_mask fields_present, bcmolt_gpon_onu_key_exchange_completed_id *failed_prop);
+
+/** Initializes a bcmolt_gpon_onu_key_exchange_decrypt_required_data struct.  
+ * This sets all fields to default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_gpon_onu_key_exchange_decrypt_required_data_set_default(bcmolt_gpon_onu_key_exchange_decrypt_required_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_gpon_onu_key_exchange_decrypt_required_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_onu_key_exchange_decrypt_required_data_pack(const bcmolt_gpon_onu_key_exchange_decrypt_required_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a 
+ * bcmolt_gpon_onu_key_exchange_decrypt_required_data would occupy on the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_gpon_onu_key_exchange_decrypt_required_data_get_packed_length(const bcmolt_gpon_onu_key_exchange_decrypt_required_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_gpon_onu_key_exchange_decrypt_required_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_onu_key_exchange_decrypt_required_data_unpack(bcmolt_gpon_onu_key_exchange_decrypt_required_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_gpon_onu_key_exchange_decrypt_required_data 
+ * struct and collects memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_gpon_onu_key_exchange_decrypt_required_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the 
+ * bcmolt_gpon_onu_key_exchange_decrypt_required_data is out of bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_onu_key_exchange_decrypt_required_data_bounds_check(const bcmolt_gpon_onu_key_exchange_decrypt_required_data *this, bcmolt_presence_mask fields_present, bcmolt_gpon_onu_key_exchange_decrypt_required_id *failed_prop);
+
+/** Initializes a bcmolt_gpon_onu_key_exchange_key_mismatch_data struct.  This 
+ * sets all fields to default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_gpon_onu_key_exchange_key_mismatch_data_set_default(bcmolt_gpon_onu_key_exchange_key_mismatch_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_gpon_onu_key_exchange_key_mismatch_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_onu_key_exchange_key_mismatch_data_pack(const bcmolt_gpon_onu_key_exchange_key_mismatch_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a 
+ * bcmolt_gpon_onu_key_exchange_key_mismatch_data would occupy on the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_gpon_onu_key_exchange_key_mismatch_data_get_packed_length(const bcmolt_gpon_onu_key_exchange_key_mismatch_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_gpon_onu_key_exchange_key_mismatch_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_onu_key_exchange_key_mismatch_data_unpack(bcmolt_gpon_onu_key_exchange_key_mismatch_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_gpon_onu_key_exchange_key_mismatch_data struct 
+ * and collects memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_gpon_onu_key_exchange_key_mismatch_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_gpon_onu_key_exchange_key_mismatch_data is 
+ * out of bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_onu_key_exchange_key_mismatch_data_bounds_check(const bcmolt_gpon_onu_key_exchange_key_mismatch_data *this, bcmolt_presence_mask fields_present, bcmolt_gpon_onu_key_exchange_key_mismatch_id *failed_prop);
+
+/** Initializes a bcmolt_gpon_onu_key_exchange_unconsecutive_index_data struct.  
+ * This sets all fields to default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_gpon_onu_key_exchange_unconsecutive_index_data_set_default(bcmolt_gpon_onu_key_exchange_unconsecutive_index_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_gpon_onu_key_exchange_unconsecutive_index_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_onu_key_exchange_unconsecutive_index_data_pack(const bcmolt_gpon_onu_key_exchange_unconsecutive_index_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a 
+ * bcmolt_gpon_onu_key_exchange_unconsecutive_index_data would occupy on the 
+ * wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_gpon_onu_key_exchange_unconsecutive_index_data_get_packed_length(const bcmolt_gpon_onu_key_exchange_unconsecutive_index_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_gpon_onu_key_exchange_unconsecutive_index_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_onu_key_exchange_unconsecutive_index_data_unpack(bcmolt_gpon_onu_key_exchange_unconsecutive_index_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_gpon_onu_key_exchange_unconsecutive_index_data 
+ * struct and collects memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_gpon_onu_key_exchange_unconsecutive_index_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the 
+ * bcmolt_gpon_onu_key_exchange_unconsecutive_index_data is out of bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_onu_key_exchange_unconsecutive_index_data_bounds_check(const bcmolt_gpon_onu_key_exchange_unconsecutive_index_data *this, bcmolt_presence_mask fields_present, bcmolt_gpon_onu_key_exchange_unconsecutive_index_id *failed_prop);
+
+/** Initializes a bcmolt_gpon_onu_loai_data struct.  This sets all fields to 
+ * default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_gpon_onu_loai_data_set_default(bcmolt_gpon_onu_loai_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_gpon_onu_loai_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_onu_loai_data_pack(const bcmolt_gpon_onu_loai_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_gpon_onu_loai_data would occupy on 
+ * the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_gpon_onu_loai_data_get_packed_length(const bcmolt_gpon_onu_loai_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_gpon_onu_loai_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_onu_loai_data_unpack(bcmolt_gpon_onu_loai_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_gpon_onu_loai_data struct and collects memory 
+ * requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_gpon_onu_loai_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_gpon_onu_loai_data is out of bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_onu_loai_data_bounds_check(const bcmolt_gpon_onu_loai_data *this, bcmolt_presence_mask fields_present, bcmolt_gpon_onu_loai_id *failed_prop);
+
+/** Initializes a bcmolt_gpon_onu_loki_data struct.  This sets all fields to 
+ * default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_gpon_onu_loki_data_set_default(bcmolt_gpon_onu_loki_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_gpon_onu_loki_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_onu_loki_data_pack(const bcmolt_gpon_onu_loki_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_gpon_onu_loki_data would occupy on 
+ * the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_gpon_onu_loki_data_get_packed_length(const bcmolt_gpon_onu_loki_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_gpon_onu_loki_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_onu_loki_data_unpack(bcmolt_gpon_onu_loki_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_gpon_onu_loki_data struct and collects memory 
+ * requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_gpon_onu_loki_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_gpon_onu_loki_data is out of bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_onu_loki_data_bounds_check(const bcmolt_gpon_onu_loki_data *this, bcmolt_presence_mask fields_present, bcmolt_gpon_onu_loki_id *failed_prop);
+
+/** Initializes a bcmolt_gpon_onu_memi_data struct.  This sets all fields to 
+ * default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_gpon_onu_memi_data_set_default(bcmolt_gpon_onu_memi_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_gpon_onu_memi_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_onu_memi_data_pack(const bcmolt_gpon_onu_memi_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_gpon_onu_memi_data would occupy on 
+ * the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_gpon_onu_memi_data_get_packed_length(const bcmolt_gpon_onu_memi_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_gpon_onu_memi_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_onu_memi_data_unpack(bcmolt_gpon_onu_memi_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_gpon_onu_memi_data struct and collects memory 
+ * requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_gpon_onu_memi_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_gpon_onu_memi_data is out of bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_onu_memi_data_bounds_check(const bcmolt_gpon_onu_memi_data *this, bcmolt_presence_mask fields_present, bcmolt_gpon_onu_memi_id *failed_prop);
+
+/** Initializes a bcmolt_gpon_onu_omci_port_id_configuration_completed_data 
+ * struct.  This sets all fields to default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_gpon_onu_omci_port_id_configuration_completed_data_set_default(bcmolt_gpon_onu_omci_port_id_configuration_completed_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_gpon_onu_omci_port_id_configuration_completed_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_onu_omci_port_id_configuration_completed_data_pack(const bcmolt_gpon_onu_omci_port_id_configuration_completed_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a 
+ * bcmolt_gpon_onu_omci_port_id_configuration_completed_data would occupy on 
+ * the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_gpon_onu_omci_port_id_configuration_completed_data_get_packed_length(const bcmolt_gpon_onu_omci_port_id_configuration_completed_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_gpon_onu_omci_port_id_configuration_completed_data from 
+ * bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_onu_omci_port_id_configuration_completed_data_unpack(bcmolt_gpon_onu_omci_port_id_configuration_completed_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed 
+ * bcmolt_gpon_onu_omci_port_id_configuration_completed_data struct and 
+ * collects memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_gpon_onu_omci_port_id_configuration_completed_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the 
+ * bcmolt_gpon_onu_omci_port_id_configuration_completed_data is out of bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_onu_omci_port_id_configuration_completed_data_bounds_check(const bcmolt_gpon_onu_omci_port_id_configuration_completed_data *this, bcmolt_presence_mask fields_present, bcmolt_gpon_onu_omci_port_id_configuration_completed_id *failed_prop);
+
+/** Initializes a bcmolt_gpon_onu_onu_activation_completed_data struct.  This 
+ * sets all fields to default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_gpon_onu_onu_activation_completed_data_set_default(bcmolt_gpon_onu_onu_activation_completed_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_gpon_onu_onu_activation_completed_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_onu_onu_activation_completed_data_pack(const bcmolt_gpon_onu_onu_activation_completed_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a 
+ * bcmolt_gpon_onu_onu_activation_completed_data would occupy on the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_gpon_onu_onu_activation_completed_data_get_packed_length(const bcmolt_gpon_onu_onu_activation_completed_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_gpon_onu_onu_activation_completed_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_onu_onu_activation_completed_data_unpack(bcmolt_gpon_onu_onu_activation_completed_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_gpon_onu_onu_activation_completed_data struct and 
+ * collects memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_gpon_onu_onu_activation_completed_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_gpon_onu_onu_activation_completed_data is 
+ * out of bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_onu_onu_activation_completed_data_bounds_check(const bcmolt_gpon_onu_onu_activation_completed_data *this, bcmolt_presence_mask fields_present, bcmolt_gpon_onu_onu_activation_completed_id *failed_prop);
+
+/** Initializes a bcmolt_gpon_onu_onu_activation_standby_completed_data struct.  
+ * This sets all fields to default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_gpon_onu_onu_activation_standby_completed_data_set_default(bcmolt_gpon_onu_onu_activation_standby_completed_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_gpon_onu_onu_activation_standby_completed_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_onu_onu_activation_standby_completed_data_pack(const bcmolt_gpon_onu_onu_activation_standby_completed_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a 
+ * bcmolt_gpon_onu_onu_activation_standby_completed_data would occupy on the 
+ * wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_gpon_onu_onu_activation_standby_completed_data_get_packed_length(const bcmolt_gpon_onu_onu_activation_standby_completed_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_gpon_onu_onu_activation_standby_completed_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_onu_onu_activation_standby_completed_data_unpack(bcmolt_gpon_onu_onu_activation_standby_completed_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_gpon_onu_onu_activation_standby_completed_data 
+ * struct and collects memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_gpon_onu_onu_activation_standby_completed_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the 
+ * bcmolt_gpon_onu_onu_activation_standby_completed_data is out of bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_onu_onu_activation_standby_completed_data_bounds_check(const bcmolt_gpon_onu_onu_activation_standby_completed_data *this, bcmolt_presence_mask fields_present, bcmolt_gpon_onu_onu_activation_standby_completed_id *failed_prop);
+
+/** Initializes a bcmolt_gpon_onu_onu_alarm_data struct.  This sets all fields 
+ * to default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_gpon_onu_onu_alarm_data_set_default(bcmolt_gpon_onu_onu_alarm_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_gpon_onu_onu_alarm_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_onu_onu_alarm_data_pack(const bcmolt_gpon_onu_onu_alarm_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_gpon_onu_onu_alarm_data would occupy 
+ * on the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_gpon_onu_onu_alarm_data_get_packed_length(const bcmolt_gpon_onu_onu_alarm_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_gpon_onu_onu_alarm_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_onu_onu_alarm_data_unpack(bcmolt_gpon_onu_onu_alarm_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_gpon_onu_onu_alarm_data struct and collects 
+ * memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_gpon_onu_onu_alarm_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_gpon_onu_onu_alarm_data is out of bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_onu_onu_alarm_data_bounds_check(const bcmolt_gpon_onu_onu_alarm_data *this, bcmolt_presence_mask fields_present, bcmolt_gpon_onu_onu_alarm_id *failed_prop);
+
+/** Initializes a bcmolt_gpon_onu_onu_deactivation_completed_data struct.  This 
+ * sets all fields to default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_gpon_onu_onu_deactivation_completed_data_set_default(bcmolt_gpon_onu_onu_deactivation_completed_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_gpon_onu_onu_deactivation_completed_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_onu_onu_deactivation_completed_data_pack(const bcmolt_gpon_onu_onu_deactivation_completed_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a 
+ * bcmolt_gpon_onu_onu_deactivation_completed_data would occupy on the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_gpon_onu_onu_deactivation_completed_data_get_packed_length(const bcmolt_gpon_onu_onu_deactivation_completed_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_gpon_onu_onu_deactivation_completed_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_onu_onu_deactivation_completed_data_unpack(bcmolt_gpon_onu_onu_deactivation_completed_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_gpon_onu_onu_deactivation_completed_data struct 
+ * and collects memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_gpon_onu_onu_deactivation_completed_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_gpon_onu_onu_deactivation_completed_data 
+ * is out of bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_onu_onu_deactivation_completed_data_bounds_check(const bcmolt_gpon_onu_onu_deactivation_completed_data *this, bcmolt_presence_mask fields_present, bcmolt_gpon_onu_onu_deactivation_completed_id *failed_prop);
+
+/** Initializes a bcmolt_gpon_onu_onu_disable_completed_data struct.  This sets 
+ * all fields to default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_gpon_onu_onu_disable_completed_data_set_default(bcmolt_gpon_onu_onu_disable_completed_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_gpon_onu_onu_disable_completed_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_onu_onu_disable_completed_data_pack(const bcmolt_gpon_onu_onu_disable_completed_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_gpon_onu_onu_disable_completed_data 
+ * would occupy on the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_gpon_onu_onu_disable_completed_data_get_packed_length(const bcmolt_gpon_onu_onu_disable_completed_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_gpon_onu_onu_disable_completed_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_onu_onu_disable_completed_data_unpack(bcmolt_gpon_onu_onu_disable_completed_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_gpon_onu_onu_disable_completed_data struct and 
+ * collects memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_gpon_onu_onu_disable_completed_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_gpon_onu_onu_disable_completed_data is out 
+ * of bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_onu_onu_disable_completed_data_bounds_check(const bcmolt_gpon_onu_onu_disable_completed_data *this, bcmolt_presence_mask fields_present, bcmolt_gpon_onu_onu_disable_completed_id *failed_prop);
+
+/** Initializes a bcmolt_gpon_onu_onu_enable_completed_data struct.  This sets 
+ * all fields to default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_gpon_onu_onu_enable_completed_data_set_default(bcmolt_gpon_onu_onu_enable_completed_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_gpon_onu_onu_enable_completed_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_onu_onu_enable_completed_data_pack(const bcmolt_gpon_onu_onu_enable_completed_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_gpon_onu_onu_enable_completed_data 
+ * would occupy on the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_gpon_onu_onu_enable_completed_data_get_packed_length(const bcmolt_gpon_onu_onu_enable_completed_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_gpon_onu_onu_enable_completed_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_onu_onu_enable_completed_data_unpack(bcmolt_gpon_onu_onu_enable_completed_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_gpon_onu_onu_enable_completed_data struct and 
+ * collects memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_gpon_onu_onu_enable_completed_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_gpon_onu_onu_enable_completed_data is out 
+ * of bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_onu_onu_enable_completed_data_bounds_check(const bcmolt_gpon_onu_onu_enable_completed_data *this, bcmolt_presence_mask fields_present, bcmolt_gpon_onu_onu_enable_completed_id *failed_prop);
+
+/** Initializes a bcmolt_gpon_onu_password_authentication_completed_data struct. 
+ *  This sets all fields to default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_gpon_onu_password_authentication_completed_data_set_default(bcmolt_gpon_onu_password_authentication_completed_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_gpon_onu_password_authentication_completed_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_onu_password_authentication_completed_data_pack(const bcmolt_gpon_onu_password_authentication_completed_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a 
+ * bcmolt_gpon_onu_password_authentication_completed_data would occupy on the 
+ * wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_gpon_onu_password_authentication_completed_data_get_packed_length(const bcmolt_gpon_onu_password_authentication_completed_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_gpon_onu_password_authentication_completed_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_onu_password_authentication_completed_data_unpack(bcmolt_gpon_onu_password_authentication_completed_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_gpon_onu_password_authentication_completed_data 
+ * struct and collects memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_gpon_onu_password_authentication_completed_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the 
+ * bcmolt_gpon_onu_password_authentication_completed_data is out of bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_onu_password_authentication_completed_data_bounds_check(const bcmolt_gpon_onu_password_authentication_completed_data *this, bcmolt_presence_mask fields_present, bcmolt_gpon_onu_password_authentication_completed_id *failed_prop);
+
+/** Initializes a bcmolt_gpon_onu_pee_data struct.  This sets all fields to 
+ * default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_gpon_onu_pee_data_set_default(bcmolt_gpon_onu_pee_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_gpon_onu_pee_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_onu_pee_data_pack(const bcmolt_gpon_onu_pee_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_gpon_onu_pee_data would occupy on the 
+ * wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_gpon_onu_pee_data_get_packed_length(const bcmolt_gpon_onu_pee_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_gpon_onu_pee_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_onu_pee_data_unpack(bcmolt_gpon_onu_pee_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_gpon_onu_pee_data struct and collects memory 
+ * requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_gpon_onu_pee_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_gpon_onu_pee_data is out of bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_onu_pee_data_bounds_check(const bcmolt_gpon_onu_pee_data *this, bcmolt_presence_mask fields_present, bcmolt_gpon_onu_pee_id *failed_prop);
+
+/** Initializes a bcmolt_gpon_onu_possible_drift_data struct.  This sets all 
+ * fields to default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_gpon_onu_possible_drift_data_set_default(bcmolt_gpon_onu_possible_drift_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_gpon_onu_possible_drift_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_onu_possible_drift_data_pack(const bcmolt_gpon_onu_possible_drift_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_gpon_onu_possible_drift_data would 
+ * occupy on the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_gpon_onu_possible_drift_data_get_packed_length(const bcmolt_gpon_onu_possible_drift_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_gpon_onu_possible_drift_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_onu_possible_drift_data_unpack(bcmolt_gpon_onu_possible_drift_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_gpon_onu_possible_drift_data struct and collects 
+ * memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_gpon_onu_possible_drift_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_gpon_onu_possible_drift_data is out of 
+ * bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_onu_possible_drift_data_bounds_check(const bcmolt_gpon_onu_possible_drift_data *this, bcmolt_presence_mask fields_present, bcmolt_gpon_onu_possible_drift_id *failed_prop);
+
+/** Initializes a bcmolt_gpon_onu_power_management_state_change_data struct.  
+ * This sets all fields to default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_gpon_onu_power_management_state_change_data_set_default(bcmolt_gpon_onu_power_management_state_change_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_gpon_onu_power_management_state_change_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_onu_power_management_state_change_data_pack(const bcmolt_gpon_onu_power_management_state_change_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a 
+ * bcmolt_gpon_onu_power_management_state_change_data would occupy on the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_gpon_onu_power_management_state_change_data_get_packed_length(const bcmolt_gpon_onu_power_management_state_change_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_gpon_onu_power_management_state_change_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_onu_power_management_state_change_data_unpack(bcmolt_gpon_onu_power_management_state_change_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_gpon_onu_power_management_state_change_data 
+ * struct and collects memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_gpon_onu_power_management_state_change_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the 
+ * bcmolt_gpon_onu_power_management_state_change_data is out of bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_onu_power_management_state_change_data_bounds_check(const bcmolt_gpon_onu_power_management_state_change_data *this, bcmolt_presence_mask fields_present, bcmolt_gpon_onu_power_management_state_change_id *failed_prop);
+
+/** Initializes a bcmolt_gpon_onu_pst_data struct.  This sets all fields to 
+ * default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_gpon_onu_pst_data_set_default(bcmolt_gpon_onu_pst_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_gpon_onu_pst_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_onu_pst_data_pack(const bcmolt_gpon_onu_pst_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_gpon_onu_pst_data would occupy on the 
+ * wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_gpon_onu_pst_data_get_packed_length(const bcmolt_gpon_onu_pst_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_gpon_onu_pst_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_onu_pst_data_unpack(bcmolt_gpon_onu_pst_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_gpon_onu_pst_data struct and collects memory 
+ * requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_gpon_onu_pst_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_gpon_onu_pst_data is out of bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_onu_pst_data_bounds_check(const bcmolt_gpon_onu_pst_data *this, bcmolt_presence_mask fields_present, bcmolt_gpon_onu_pst_id *failed_prop);
+
+/** Initializes a bcmolt_gpon_onu_ranging_completed_data struct.  This sets all 
+ * fields to default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_gpon_onu_ranging_completed_data_set_default(bcmolt_gpon_onu_ranging_completed_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_gpon_onu_ranging_completed_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_onu_ranging_completed_data_pack(const bcmolt_gpon_onu_ranging_completed_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_gpon_onu_ranging_completed_data would 
+ * occupy on the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_gpon_onu_ranging_completed_data_get_packed_length(const bcmolt_gpon_onu_ranging_completed_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_gpon_onu_ranging_completed_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_onu_ranging_completed_data_unpack(bcmolt_gpon_onu_ranging_completed_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_gpon_onu_ranging_completed_data struct and 
+ * collects memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_gpon_onu_ranging_completed_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_gpon_onu_ranging_completed_data is out of 
+ * bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_onu_ranging_completed_data_bounds_check(const bcmolt_gpon_onu_ranging_completed_data *this, bcmolt_presence_mask fields_present, bcmolt_gpon_onu_ranging_completed_id *failed_prop);
+
+/** Initializes a bcmolt_gpon_onu_rei_data struct.  This sets all fields to 
+ * default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_gpon_onu_rei_data_set_default(bcmolt_gpon_onu_rei_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_gpon_onu_rei_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_onu_rei_data_pack(const bcmolt_gpon_onu_rei_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_gpon_onu_rei_data would occupy on the 
+ * wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_gpon_onu_rei_data_get_packed_length(const bcmolt_gpon_onu_rei_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_gpon_onu_rei_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_onu_rei_data_unpack(bcmolt_gpon_onu_rei_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_gpon_onu_rei_data struct and collects memory 
+ * requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_gpon_onu_rei_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_gpon_onu_rei_data is out of bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_onu_rei_data_bounds_check(const bcmolt_gpon_onu_rei_data *this, bcmolt_presence_mask fields_present, bcmolt_gpon_onu_rei_id *failed_prop);
+
+/** Initializes a bcmolt_gpon_onu_rssi_measurement_completed_data struct.  This 
+ * sets all fields to default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_gpon_onu_rssi_measurement_completed_data_set_default(bcmolt_gpon_onu_rssi_measurement_completed_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_gpon_onu_rssi_measurement_completed_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_onu_rssi_measurement_completed_data_pack(const bcmolt_gpon_onu_rssi_measurement_completed_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a 
+ * bcmolt_gpon_onu_rssi_measurement_completed_data would occupy on the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_gpon_onu_rssi_measurement_completed_data_get_packed_length(const bcmolt_gpon_onu_rssi_measurement_completed_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_gpon_onu_rssi_measurement_completed_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_onu_rssi_measurement_completed_data_unpack(bcmolt_gpon_onu_rssi_measurement_completed_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_gpon_onu_rssi_measurement_completed_data struct 
+ * and collects memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_gpon_onu_rssi_measurement_completed_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_gpon_onu_rssi_measurement_completed_data 
+ * is out of bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_onu_rssi_measurement_completed_data_bounds_check(const bcmolt_gpon_onu_rssi_measurement_completed_data *this, bcmolt_presence_mask fields_present, bcmolt_gpon_onu_rssi_measurement_completed_id *failed_prop);
+
+/** Initializes a bcmolt_gpon_onu_sdi_data struct.  This sets all fields to 
+ * default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_gpon_onu_sdi_data_set_default(bcmolt_gpon_onu_sdi_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_gpon_onu_sdi_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_onu_sdi_data_pack(const bcmolt_gpon_onu_sdi_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_gpon_onu_sdi_data would occupy on the 
+ * wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_gpon_onu_sdi_data_get_packed_length(const bcmolt_gpon_onu_sdi_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_gpon_onu_sdi_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_onu_sdi_data_unpack(bcmolt_gpon_onu_sdi_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_gpon_onu_sdi_data struct and collects memory 
+ * requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_gpon_onu_sdi_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_gpon_onu_sdi_data is out of bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_onu_sdi_data_bounds_check(const bcmolt_gpon_onu_sdi_data *this, bcmolt_presence_mask fields_present, bcmolt_gpon_onu_sdi_id *failed_prop);
+
+/** Initializes a bcmolt_gpon_onu_sfi_data struct.  This sets all fields to 
+ * default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_gpon_onu_sfi_data_set_default(bcmolt_gpon_onu_sfi_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_gpon_onu_sfi_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_onu_sfi_data_pack(const bcmolt_gpon_onu_sfi_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_gpon_onu_sfi_data would occupy on the 
+ * wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_gpon_onu_sfi_data_get_packed_length(const bcmolt_gpon_onu_sfi_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_gpon_onu_sfi_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_onu_sfi_data_unpack(bcmolt_gpon_onu_sfi_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_gpon_onu_sfi_data struct and collects memory 
+ * requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_gpon_onu_sfi_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_gpon_onu_sfi_data is out of bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_onu_sfi_data_bounds_check(const bcmolt_gpon_onu_sfi_data *this, bcmolt_presence_mask fields_present, bcmolt_gpon_onu_sfi_id *failed_prop);
+
+/** Initializes a bcmolt_gpon_onu_stat_alarm_cleared_data struct.  This sets all 
+ * fields to default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_gpon_onu_stat_alarm_cleared_data_set_default(bcmolt_gpon_onu_stat_alarm_cleared_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_gpon_onu_stat_alarm_cleared_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_onu_stat_alarm_cleared_data_pack(const bcmolt_gpon_onu_stat_alarm_cleared_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_gpon_onu_stat_alarm_cleared_data 
+ * would occupy on the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_gpon_onu_stat_alarm_cleared_data_get_packed_length(const bcmolt_gpon_onu_stat_alarm_cleared_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_gpon_onu_stat_alarm_cleared_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_onu_stat_alarm_cleared_data_unpack(bcmolt_gpon_onu_stat_alarm_cleared_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_gpon_onu_stat_alarm_cleared_data struct and 
+ * collects memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_gpon_onu_stat_alarm_cleared_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_gpon_onu_stat_alarm_cleared_data is out of 
+ * bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_onu_stat_alarm_cleared_data_bounds_check(const bcmolt_gpon_onu_stat_alarm_cleared_data *this, bcmolt_presence_mask fields_present, bcmolt_gpon_onu_stat_alarm_cleared_id *failed_prop);
+
+/** Initializes a bcmolt_gpon_onu_stat_alarm_raised_data struct.  This sets all 
+ * fields to default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_gpon_onu_stat_alarm_raised_data_set_default(bcmolt_gpon_onu_stat_alarm_raised_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_gpon_onu_stat_alarm_raised_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_onu_stat_alarm_raised_data_pack(const bcmolt_gpon_onu_stat_alarm_raised_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_gpon_onu_stat_alarm_raised_data would 
+ * occupy on the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_gpon_onu_stat_alarm_raised_data_get_packed_length(const bcmolt_gpon_onu_stat_alarm_raised_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_gpon_onu_stat_alarm_raised_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_onu_stat_alarm_raised_data_unpack(bcmolt_gpon_onu_stat_alarm_raised_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_gpon_onu_stat_alarm_raised_data struct and 
+ * collects memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_gpon_onu_stat_alarm_raised_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_gpon_onu_stat_alarm_raised_data is out of 
+ * bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_onu_stat_alarm_raised_data_bounds_check(const bcmolt_gpon_onu_stat_alarm_raised_data *this, bcmolt_presence_mask fields_present, bcmolt_gpon_onu_stat_alarm_raised_id *failed_prop);
+
+/** Initializes a bcmolt_gpon_onu_sufi_data struct.  This sets all fields to 
+ * default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_gpon_onu_sufi_data_set_default(bcmolt_gpon_onu_sufi_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_gpon_onu_sufi_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_onu_sufi_data_pack(const bcmolt_gpon_onu_sufi_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_gpon_onu_sufi_data would occupy on 
+ * the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_gpon_onu_sufi_data_get_packed_length(const bcmolt_gpon_onu_sufi_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_gpon_onu_sufi_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_onu_sufi_data_unpack(bcmolt_gpon_onu_sufi_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_gpon_onu_sufi_data struct and collects memory 
+ * requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_gpon_onu_sufi_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_gpon_onu_sufi_data is out of bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_onu_sufi_data_bounds_check(const bcmolt_gpon_onu_sufi_data *this, bcmolt_presence_mask fields_present, bcmolt_gpon_onu_sufi_id *failed_prop);
+
+/** Initializes a bcmolt_gpon_onu_tiwi_data struct.  This sets all fields to 
+ * default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_gpon_onu_tiwi_data_set_default(bcmolt_gpon_onu_tiwi_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_gpon_onu_tiwi_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_onu_tiwi_data_pack(const bcmolt_gpon_onu_tiwi_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_gpon_onu_tiwi_data would occupy on 
+ * the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_gpon_onu_tiwi_data_get_packed_length(const bcmolt_gpon_onu_tiwi_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_gpon_onu_tiwi_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_onu_tiwi_data_unpack(bcmolt_gpon_onu_tiwi_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_gpon_onu_tiwi_data struct and collects memory 
+ * requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_gpon_onu_tiwi_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_gpon_onu_tiwi_data is out of bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_onu_tiwi_data_bounds_check(const bcmolt_gpon_onu_tiwi_data *this, bcmolt_presence_mask fields_present, bcmolt_gpon_onu_tiwi_id *failed_prop);
+
+/** Initializes a bcmolt_gpon_onu_auto_cfg_data struct.  This sets all fields to 
+ * default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_gpon_onu_auto_cfg_data_set_default(bcmolt_gpon_onu_auto_cfg_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_gpon_onu_auto_cfg_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_onu_auto_cfg_data_pack(const bcmolt_gpon_onu_auto_cfg_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_gpon_onu_auto_cfg_data would occupy 
+ * on the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_gpon_onu_auto_cfg_data_get_packed_length(const bcmolt_gpon_onu_auto_cfg_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_gpon_onu_auto_cfg_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_onu_auto_cfg_data_unpack(bcmolt_gpon_onu_auto_cfg_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_gpon_onu_auto_cfg_data struct and collects memory 
+ * requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_gpon_onu_auto_cfg_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_gpon_onu_auto_cfg_data is out of bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_onu_auto_cfg_data_bounds_check(const bcmolt_gpon_onu_auto_cfg_data *this, bcmolt_presence_mask fields_present, bcmolt_gpon_onu_auto_cfg_id *failed_prop);
+
+/** Initializes a bcmolt_gpon_onu_change_power_level_data struct.  This sets all 
+ * fields to default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_gpon_onu_change_power_level_data_set_default(bcmolt_gpon_onu_change_power_level_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_gpon_onu_change_power_level_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_onu_change_power_level_data_pack(const bcmolt_gpon_onu_change_power_level_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_gpon_onu_change_power_level_data 
+ * would occupy on the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_gpon_onu_change_power_level_data_get_packed_length(const bcmolt_gpon_onu_change_power_level_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_gpon_onu_change_power_level_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_onu_change_power_level_data_unpack(bcmolt_gpon_onu_change_power_level_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_gpon_onu_change_power_level_data struct and 
+ * collects memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_gpon_onu_change_power_level_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_gpon_onu_change_power_level_data is out of 
+ * bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_onu_change_power_level_data_bounds_check(const bcmolt_gpon_onu_change_power_level_data *this, bcmolt_presence_mask fields_present, bcmolt_gpon_onu_change_power_level_id *failed_prop);
+
+/** Initializes a bcmolt_gpon_onu_set_onu_state_data struct.  This sets all 
+ * fields to default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_gpon_onu_set_onu_state_data_set_default(bcmolt_gpon_onu_set_onu_state_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_gpon_onu_set_onu_state_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_onu_set_onu_state_data_pack(const bcmolt_gpon_onu_set_onu_state_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_gpon_onu_set_onu_state_data would 
+ * occupy on the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_gpon_onu_set_onu_state_data_get_packed_length(const bcmolt_gpon_onu_set_onu_state_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_gpon_onu_set_onu_state_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_onu_set_onu_state_data_unpack(bcmolt_gpon_onu_set_onu_state_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_gpon_onu_set_onu_state_data struct and collects 
+ * memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_gpon_onu_set_onu_state_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_gpon_onu_set_onu_state_data is out of 
+ * bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_onu_set_onu_state_data_bounds_check(const bcmolt_gpon_onu_set_onu_state_data *this, bcmolt_presence_mask fields_present, bcmolt_gpon_onu_set_onu_state_id *failed_prop);
+
+/** Initializes a bcmolt_gpon_onu_cpu_packets_data struct.  This sets all fields 
+ * to default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_gpon_onu_cpu_packets_data_set_default(bcmolt_gpon_onu_cpu_packets_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_gpon_onu_cpu_packets_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_onu_cpu_packets_data_pack(const bcmolt_gpon_onu_cpu_packets_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_gpon_onu_cpu_packets_data would 
+ * occupy on the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_gpon_onu_cpu_packets_data_get_packed_length(const bcmolt_gpon_onu_cpu_packets_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_gpon_onu_cpu_packets_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_onu_cpu_packets_data_unpack(bcmolt_gpon_onu_cpu_packets_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_gpon_onu_cpu_packets_data struct and collects 
+ * memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_gpon_onu_cpu_packets_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_gpon_onu_cpu_packets_data is out of bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_onu_cpu_packets_data_bounds_check(const bcmolt_gpon_onu_cpu_packets_data *this, bcmolt_presence_mask fields_present, bcmolt_gpon_onu_cpu_packets_id *failed_prop);
+
+/** Initializes a bcmolt_gpon_onu_ploam_packet_data struct.  This sets all 
+ * fields to default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_gpon_onu_ploam_packet_data_set_default(bcmolt_gpon_onu_ploam_packet_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_gpon_onu_ploam_packet_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_onu_ploam_packet_data_pack(const bcmolt_gpon_onu_ploam_packet_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_gpon_onu_ploam_packet_data would 
+ * occupy on the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_gpon_onu_ploam_packet_data_get_packed_length(const bcmolt_gpon_onu_ploam_packet_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_gpon_onu_ploam_packet_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_onu_ploam_packet_data_unpack(bcmolt_gpon_onu_ploam_packet_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_gpon_onu_ploam_packet_data struct and collects 
+ * memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_gpon_onu_ploam_packet_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_gpon_onu_ploam_packet_data is out of 
+ * bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_onu_ploam_packet_data_bounds_check(const bcmolt_gpon_onu_ploam_packet_data *this, bcmolt_presence_mask fields_present, bcmolt_gpon_onu_ploam_packet_id *failed_prop);
+
+/** Initializes a bcmolt_gpon_onu_cpu_packet_data struct.  This sets all fields 
+ * to default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_gpon_onu_cpu_packet_data_set_default(bcmolt_gpon_onu_cpu_packet_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_gpon_onu_cpu_packet_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_onu_cpu_packet_data_pack(const bcmolt_gpon_onu_cpu_packet_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_gpon_onu_cpu_packet_data would occupy 
+ * on the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_gpon_onu_cpu_packet_data_get_packed_length(const bcmolt_gpon_onu_cpu_packet_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_gpon_onu_cpu_packet_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_onu_cpu_packet_data_unpack(bcmolt_gpon_onu_cpu_packet_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_gpon_onu_cpu_packet_data struct and collects 
+ * memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_gpon_onu_cpu_packet_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_gpon_onu_cpu_packet_data is out of bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_onu_cpu_packet_data_bounds_check(const bcmolt_gpon_onu_cpu_packet_data *this, bcmolt_presence_mask fields_present, bcmolt_gpon_onu_cpu_packet_id *failed_prop);
+
+/** Initializes a bcmolt_gpon_onu_omci_packet_data struct.  This sets all fields 
+ * to default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_gpon_onu_omci_packet_data_set_default(bcmolt_gpon_onu_omci_packet_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_gpon_onu_omci_packet_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_onu_omci_packet_data_pack(const bcmolt_gpon_onu_omci_packet_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_gpon_onu_omci_packet_data would 
+ * occupy on the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_gpon_onu_omci_packet_data_get_packed_length(const bcmolt_gpon_onu_omci_packet_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_gpon_onu_omci_packet_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_onu_omci_packet_data_unpack(bcmolt_gpon_onu_omci_packet_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_gpon_onu_omci_packet_data struct and collects 
+ * memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_gpon_onu_omci_packet_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_gpon_onu_omci_packet_data is out of bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_onu_omci_packet_data_bounds_check(const bcmolt_gpon_onu_omci_packet_data *this, bcmolt_presence_mask fields_present, bcmolt_gpon_onu_omci_packet_id *failed_prop);
+
+/** Initializes a bcmolt_gpon_trx_key struct.  This sets all fields to default 
+ * values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_gpon_trx_key_set_default(bcmolt_gpon_trx_key *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_gpon_trx_key to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_trx_key_pack(const bcmolt_gpon_trx_key *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_gpon_trx_key would occupy on the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_gpon_trx_key_get_packed_length(const bcmolt_gpon_trx_key *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_gpon_trx_key from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_trx_key_unpack(bcmolt_gpon_trx_key *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_gpon_trx_key struct and collects memory 
+ * requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_gpon_trx_key_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_gpon_trx_key is out of bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_trx_key_bounds_check(const bcmolt_gpon_trx_key *this, bcmolt_presence_mask fields_present, bcmolt_gpon_trx_key_id *failed_prop);
+
+/** Initializes a bcmolt_gpon_trx_cfg_data struct.  This sets all fields to 
+ * default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_gpon_trx_cfg_data_set_default(bcmolt_gpon_trx_cfg_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_gpon_trx_cfg_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_trx_cfg_data_pack(const bcmolt_gpon_trx_cfg_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_gpon_trx_cfg_data would occupy on the 
+ * wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_gpon_trx_cfg_data_get_packed_length(const bcmolt_gpon_trx_cfg_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_gpon_trx_cfg_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_trx_cfg_data_unpack(bcmolt_gpon_trx_cfg_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_gpon_trx_cfg_data struct and collects memory 
+ * requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_gpon_trx_cfg_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_gpon_trx_cfg_data is out of bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_gpon_trx_cfg_data_bounds_check(const bcmolt_gpon_trx_cfg_data *this, bcmolt_presence_mask fields_present, bcmolt_gpon_trx_cfg_id *failed_prop);
+
+/** Initializes a bcmolt_log_entry_key struct.  This sets all fields to default 
+ * values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_log_entry_key_set_default(bcmolt_log_entry_key *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_log_entry_key to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_log_entry_key_pack(const bcmolt_log_entry_key *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_log_entry_key would occupy on the 
+ * wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_log_entry_key_get_packed_length(const bcmolt_log_entry_key *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_log_entry_key from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_log_entry_key_unpack(bcmolt_log_entry_key *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_log_entry_key struct and collects memory 
+ * requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_log_entry_key_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_log_entry_key is out of bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_log_entry_key_bounds_check(const bcmolt_log_entry_key *this, bcmolt_presence_mask fields_present, bcmolt_log_entry_key_id *failed_prop);
+
+/** Initializes a bcmolt_log_entry_cfg_data struct.  This sets all fields to 
+ * default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_log_entry_cfg_data_set_default(bcmolt_log_entry_cfg_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_log_entry_cfg_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_log_entry_cfg_data_pack(const bcmolt_log_entry_cfg_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_log_entry_cfg_data would occupy on 
+ * the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_log_entry_cfg_data_get_packed_length(const bcmolt_log_entry_cfg_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_log_entry_cfg_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_log_entry_cfg_data_unpack(bcmolt_log_entry_cfg_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_log_entry_cfg_data struct and collects memory 
+ * requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_log_entry_cfg_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_log_entry_cfg_data is out of bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_log_entry_cfg_data_bounds_check(const bcmolt_log_entry_cfg_data *this, bcmolt_presence_mask fields_present, bcmolt_log_entry_cfg_id *failed_prop);
+
+/** Initializes a bcmolt_log_entry_stat_data struct.  This sets all fields to 
+ * default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_log_entry_stat_data_set_default(bcmolt_log_entry_stat_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_log_entry_stat_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_log_entry_stat_data_pack(const bcmolt_log_entry_stat_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_log_entry_stat_data would occupy on 
+ * the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_log_entry_stat_data_get_packed_length(const bcmolt_log_entry_stat_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_log_entry_stat_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_log_entry_stat_data_unpack(bcmolt_log_entry_stat_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_log_entry_stat_data struct and collects memory 
+ * requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_log_entry_stat_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_log_entry_stat_data is out of bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_log_entry_stat_data_bounds_check(const bcmolt_log_entry_stat_data *this, bcmolt_presence_mask fields_present, bcmolt_log_entry_stat_id *failed_prop);
+
+/** Initializes a bcmolt_log_entry_stat_cfg_data struct.  This sets all fields 
+ * to default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_log_entry_stat_cfg_data_set_default(bcmolt_log_entry_stat_cfg_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_log_entry_stat_cfg_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_log_entry_stat_cfg_data_pack(const bcmolt_log_entry_stat_cfg_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_log_entry_stat_cfg_data would occupy 
+ * on the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_log_entry_stat_cfg_data_get_packed_length(const bcmolt_log_entry_stat_cfg_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_log_entry_stat_cfg_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_log_entry_stat_cfg_data_unpack(bcmolt_log_entry_stat_cfg_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_log_entry_stat_cfg_data struct and collects 
+ * memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_log_entry_stat_cfg_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_log_entry_stat_cfg_data is out of bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_log_entry_stat_cfg_data_bounds_check(const bcmolt_log_entry_stat_cfg_data *this, bcmolt_presence_mask fields_present, bcmolt_log_entry_stat_cfg_id *failed_prop);
+
+/** Initializes a bcmolt_log_entry_stat_alarm_cleared_data struct.  This sets 
+ * all fields to default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_log_entry_stat_alarm_cleared_data_set_default(bcmolt_log_entry_stat_alarm_cleared_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_log_entry_stat_alarm_cleared_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_log_entry_stat_alarm_cleared_data_pack(const bcmolt_log_entry_stat_alarm_cleared_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_log_entry_stat_alarm_cleared_data 
+ * would occupy on the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_log_entry_stat_alarm_cleared_data_get_packed_length(const bcmolt_log_entry_stat_alarm_cleared_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_log_entry_stat_alarm_cleared_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_log_entry_stat_alarm_cleared_data_unpack(bcmolt_log_entry_stat_alarm_cleared_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_log_entry_stat_alarm_cleared_data struct and 
+ * collects memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_log_entry_stat_alarm_cleared_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_log_entry_stat_alarm_cleared_data is out 
+ * of bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_log_entry_stat_alarm_cleared_data_bounds_check(const bcmolt_log_entry_stat_alarm_cleared_data *this, bcmolt_presence_mask fields_present, bcmolt_log_entry_stat_alarm_cleared_id *failed_prop);
+
+/** Initializes a bcmolt_log_entry_stat_alarm_raised_data struct.  This sets all 
+ * fields to default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_log_entry_stat_alarm_raised_data_set_default(bcmolt_log_entry_stat_alarm_raised_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_log_entry_stat_alarm_raised_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_log_entry_stat_alarm_raised_data_pack(const bcmolt_log_entry_stat_alarm_raised_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_log_entry_stat_alarm_raised_data 
+ * would occupy on the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_log_entry_stat_alarm_raised_data_get_packed_length(const bcmolt_log_entry_stat_alarm_raised_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_log_entry_stat_alarm_raised_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_log_entry_stat_alarm_raised_data_unpack(bcmolt_log_entry_stat_alarm_raised_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_log_entry_stat_alarm_raised_data struct and 
+ * collects memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_log_entry_stat_alarm_raised_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_log_entry_stat_alarm_raised_data is out of 
+ * bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_log_entry_stat_alarm_raised_data_bounds_check(const bcmolt_log_entry_stat_alarm_raised_data *this, bcmolt_presence_mask fields_present, bcmolt_log_entry_stat_alarm_raised_id *failed_prop);
+
+/** Initializes a bcmolt_log_entry_auto_cfg_data struct.  This sets all fields 
+ * to default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_log_entry_auto_cfg_data_set_default(bcmolt_log_entry_auto_cfg_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_log_entry_auto_cfg_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_log_entry_auto_cfg_data_pack(const bcmolt_log_entry_auto_cfg_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_log_entry_auto_cfg_data would occupy 
+ * on the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_log_entry_auto_cfg_data_get_packed_length(const bcmolt_log_entry_auto_cfg_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_log_entry_auto_cfg_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_log_entry_auto_cfg_data_unpack(bcmolt_log_entry_auto_cfg_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_log_entry_auto_cfg_data struct and collects 
+ * memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_log_entry_auto_cfg_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_log_entry_auto_cfg_data is out of bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_log_entry_auto_cfg_data_bounds_check(const bcmolt_log_entry_auto_cfg_data *this, bcmolt_presence_mask fields_present, bcmolt_log_entry_auto_cfg_id *failed_prop);
+
+/** Initializes a bcmolt_logger_key struct.  This sets all fields to default 
+ * values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_logger_key_set_default(bcmolt_logger_key *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_logger_key to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_logger_key_pack(const bcmolt_logger_key *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_logger_key would occupy on the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_logger_key_get_packed_length(const bcmolt_logger_key *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_logger_key from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_logger_key_unpack(bcmolt_logger_key *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_logger_key struct and collects memory 
+ * requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_logger_key_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_logger_key is out of bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_logger_key_bounds_check(const bcmolt_logger_key *this, bcmolt_presence_mask fields_present, bcmolt_logger_key_id *failed_prop);
+
+/** Initializes a bcmolt_logger_cfg_data struct.  This sets all fields to 
+ * default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_logger_cfg_data_set_default(bcmolt_logger_cfg_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_logger_cfg_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_logger_cfg_data_pack(const bcmolt_logger_cfg_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_logger_cfg_data would occupy on the 
+ * wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_logger_cfg_data_get_packed_length(const bcmolt_logger_cfg_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_logger_cfg_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_logger_cfg_data_unpack(bcmolt_logger_cfg_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_logger_cfg_data struct and collects memory 
+ * requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_logger_cfg_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_logger_cfg_data is out of bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_logger_cfg_data_bounds_check(const bcmolt_logger_cfg_data *this, bcmolt_presence_mask fields_present, bcmolt_logger_cfg_id *failed_prop);
+
+/** Initializes a bcmolt_logger_stat_data struct.  This sets all fields to 
+ * default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_logger_stat_data_set_default(bcmolt_logger_stat_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_logger_stat_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_logger_stat_data_pack(const bcmolt_logger_stat_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_logger_stat_data would occupy on the 
+ * wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_logger_stat_data_get_packed_length(const bcmolt_logger_stat_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_logger_stat_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_logger_stat_data_unpack(bcmolt_logger_stat_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_logger_stat_data struct and collects memory 
+ * requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_logger_stat_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_logger_stat_data is out of bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_logger_stat_data_bounds_check(const bcmolt_logger_stat_data *this, bcmolt_presence_mask fields_present, bcmolt_logger_stat_id *failed_prop);
+
+/** Initializes a bcmolt_logger_stat_cfg_data struct.  This sets all fields to 
+ * default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_logger_stat_cfg_data_set_default(bcmolt_logger_stat_cfg_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_logger_stat_cfg_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_logger_stat_cfg_data_pack(const bcmolt_logger_stat_cfg_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_logger_stat_cfg_data would occupy on 
+ * the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_logger_stat_cfg_data_get_packed_length(const bcmolt_logger_stat_cfg_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_logger_stat_cfg_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_logger_stat_cfg_data_unpack(bcmolt_logger_stat_cfg_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_logger_stat_cfg_data struct and collects memory 
+ * requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_logger_stat_cfg_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_logger_stat_cfg_data is out of bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_logger_stat_cfg_data_bounds_check(const bcmolt_logger_stat_cfg_data *this, bcmolt_presence_mask fields_present, bcmolt_logger_stat_cfg_id *failed_prop);
+
+/** Initializes a bcmolt_logger_stat_alarm_cleared_data struct.  This sets all 
+ * fields to default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_logger_stat_alarm_cleared_data_set_default(bcmolt_logger_stat_alarm_cleared_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_logger_stat_alarm_cleared_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_logger_stat_alarm_cleared_data_pack(const bcmolt_logger_stat_alarm_cleared_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_logger_stat_alarm_cleared_data would 
+ * occupy on the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_logger_stat_alarm_cleared_data_get_packed_length(const bcmolt_logger_stat_alarm_cleared_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_logger_stat_alarm_cleared_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_logger_stat_alarm_cleared_data_unpack(bcmolt_logger_stat_alarm_cleared_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_logger_stat_alarm_cleared_data struct and 
+ * collects memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_logger_stat_alarm_cleared_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_logger_stat_alarm_cleared_data is out of 
+ * bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_logger_stat_alarm_cleared_data_bounds_check(const bcmolt_logger_stat_alarm_cleared_data *this, bcmolt_presence_mask fields_present, bcmolt_logger_stat_alarm_cleared_id *failed_prop);
+
+/** Initializes a bcmolt_logger_stat_alarm_raised_data struct.  This sets all 
+ * fields to default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_logger_stat_alarm_raised_data_set_default(bcmolt_logger_stat_alarm_raised_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_logger_stat_alarm_raised_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_logger_stat_alarm_raised_data_pack(const bcmolt_logger_stat_alarm_raised_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_logger_stat_alarm_raised_data would 
+ * occupy on the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_logger_stat_alarm_raised_data_get_packed_length(const bcmolt_logger_stat_alarm_raised_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_logger_stat_alarm_raised_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_logger_stat_alarm_raised_data_unpack(bcmolt_logger_stat_alarm_raised_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_logger_stat_alarm_raised_data struct and collects 
+ * memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_logger_stat_alarm_raised_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_logger_stat_alarm_raised_data is out of 
+ * bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_logger_stat_alarm_raised_data_bounds_check(const bcmolt_logger_stat_alarm_raised_data *this, bcmolt_presence_mask fields_present, bcmolt_logger_stat_alarm_raised_id *failed_prop);
+
+/** Initializes a bcmolt_logger_auto_cfg_data struct.  This sets all fields to 
+ * default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_logger_auto_cfg_data_set_default(bcmolt_logger_auto_cfg_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_logger_auto_cfg_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_logger_auto_cfg_data_pack(const bcmolt_logger_auto_cfg_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_logger_auto_cfg_data would occupy on 
+ * the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_logger_auto_cfg_data_get_packed_length(const bcmolt_logger_auto_cfg_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_logger_auto_cfg_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_logger_auto_cfg_data_unpack(bcmolt_logger_auto_cfg_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_logger_auto_cfg_data struct and collects memory 
+ * requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_logger_auto_cfg_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_logger_auto_cfg_data is out of bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_logger_auto_cfg_data_bounds_check(const bcmolt_logger_auto_cfg_data *this, bcmolt_presence_mask fields_present, bcmolt_logger_auto_cfg_id *failed_prop);
+
+/** Initializes a bcmolt_nni_key struct.  This sets all fields to default 
+ * values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_nni_key_set_default(bcmolt_nni_key *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_nni_key to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_nni_key_pack(const bcmolt_nni_key *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_nni_key would occupy on the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_nni_key_get_packed_length(const bcmolt_nni_key *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_nni_key from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_nni_key_unpack(bcmolt_nni_key *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_nni_key struct and collects memory requirements 
+ * above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_nni_key_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_nni_key is out of bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_nni_key_bounds_check(const bcmolt_nni_key *this, bcmolt_presence_mask fields_present, bcmolt_nni_key_id *failed_prop);
+
+/** Initializes a bcmolt_nni_cfg_data struct.  This sets all fields to default 
+ * values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_nni_cfg_data_set_default(bcmolt_nni_cfg_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_nni_cfg_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_nni_cfg_data_pack(const bcmolt_nni_cfg_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_nni_cfg_data would occupy on the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_nni_cfg_data_get_packed_length(const bcmolt_nni_cfg_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_nni_cfg_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_nni_cfg_data_unpack(bcmolt_nni_cfg_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_nni_cfg_data struct and collects memory 
+ * requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_nni_cfg_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_nni_cfg_data is out of bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_nni_cfg_data_bounds_check(const bcmolt_nni_cfg_data *this, bcmolt_presence_mask fields_present, bcmolt_nni_cfg_id *failed_prop);
+
+/** Initializes a bcmolt_nni_stat_data struct.  This sets all fields to default 
+ * values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_nni_stat_data_set_default(bcmolt_nni_stat_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_nni_stat_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_nni_stat_data_pack(const bcmolt_nni_stat_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_nni_stat_data would occupy on the 
+ * wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_nni_stat_data_get_packed_length(const bcmolt_nni_stat_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_nni_stat_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_nni_stat_data_unpack(bcmolt_nni_stat_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_nni_stat_data struct and collects memory 
+ * requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_nni_stat_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_nni_stat_data is out of bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_nni_stat_data_bounds_check(const bcmolt_nni_stat_data *this, bcmolt_presence_mask fields_present, bcmolt_nni_stat_id *failed_prop);
+
+/** Initializes a bcmolt_nni_stat_cfg_data struct.  This sets all fields to 
+ * default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_nni_stat_cfg_data_set_default(bcmolt_nni_stat_cfg_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_nni_stat_cfg_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_nni_stat_cfg_data_pack(const bcmolt_nni_stat_cfg_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_nni_stat_cfg_data would occupy on the 
+ * wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_nni_stat_cfg_data_get_packed_length(const bcmolt_nni_stat_cfg_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_nni_stat_cfg_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_nni_stat_cfg_data_unpack(bcmolt_nni_stat_cfg_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_nni_stat_cfg_data struct and collects memory 
+ * requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_nni_stat_cfg_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_nni_stat_cfg_data is out of bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_nni_stat_cfg_data_bounds_check(const bcmolt_nni_stat_cfg_data *this, bcmolt_presence_mask fields_present, bcmolt_nni_stat_cfg_id *failed_prop);
+
+/** Initializes a bcmolt_nni_stat_alarm_cleared_data struct.  This sets all 
+ * fields to default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_nni_stat_alarm_cleared_data_set_default(bcmolt_nni_stat_alarm_cleared_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_nni_stat_alarm_cleared_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_nni_stat_alarm_cleared_data_pack(const bcmolt_nni_stat_alarm_cleared_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_nni_stat_alarm_cleared_data would 
+ * occupy on the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_nni_stat_alarm_cleared_data_get_packed_length(const bcmolt_nni_stat_alarm_cleared_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_nni_stat_alarm_cleared_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_nni_stat_alarm_cleared_data_unpack(bcmolt_nni_stat_alarm_cleared_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_nni_stat_alarm_cleared_data struct and collects 
+ * memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_nni_stat_alarm_cleared_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_nni_stat_alarm_cleared_data is out of 
+ * bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_nni_stat_alarm_cleared_data_bounds_check(const bcmolt_nni_stat_alarm_cleared_data *this, bcmolt_presence_mask fields_present, bcmolt_nni_stat_alarm_cleared_id *failed_prop);
+
+/** Initializes a bcmolt_nni_stat_alarm_raised_data struct.  This sets all 
+ * fields to default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_nni_stat_alarm_raised_data_set_default(bcmolt_nni_stat_alarm_raised_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_nni_stat_alarm_raised_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_nni_stat_alarm_raised_data_pack(const bcmolt_nni_stat_alarm_raised_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_nni_stat_alarm_raised_data would 
+ * occupy on the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_nni_stat_alarm_raised_data_get_packed_length(const bcmolt_nni_stat_alarm_raised_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_nni_stat_alarm_raised_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_nni_stat_alarm_raised_data_unpack(bcmolt_nni_stat_alarm_raised_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_nni_stat_alarm_raised_data struct and collects 
+ * memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_nni_stat_alarm_raised_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_nni_stat_alarm_raised_data is out of 
+ * bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_nni_stat_alarm_raised_data_bounds_check(const bcmolt_nni_stat_alarm_raised_data *this, bcmolt_presence_mask fields_present, bcmolt_nni_stat_alarm_raised_id *failed_prop);
+
+/** Initializes a bcmolt_nni_status_changed_data struct.  This sets all fields 
+ * to default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_nni_status_changed_data_set_default(bcmolt_nni_status_changed_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_nni_status_changed_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_nni_status_changed_data_pack(const bcmolt_nni_status_changed_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_nni_status_changed_data would occupy 
+ * on the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_nni_status_changed_data_get_packed_length(const bcmolt_nni_status_changed_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_nni_status_changed_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_nni_status_changed_data_unpack(bcmolt_nni_status_changed_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_nni_status_changed_data struct and collects 
+ * memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_nni_status_changed_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_nni_status_changed_data is out of bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_nni_status_changed_data_bounds_check(const bcmolt_nni_status_changed_data *this, bcmolt_presence_mask fields_present, bcmolt_nni_status_changed_id *failed_prop);
+
+/** Initializes a bcmolt_nni_auto_cfg_data struct.  This sets all fields to 
+ * default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_nni_auto_cfg_data_set_default(bcmolt_nni_auto_cfg_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_nni_auto_cfg_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_nni_auto_cfg_data_pack(const bcmolt_nni_auto_cfg_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_nni_auto_cfg_data would occupy on the 
+ * wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_nni_auto_cfg_data_get_packed_length(const bcmolt_nni_auto_cfg_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_nni_auto_cfg_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_nni_auto_cfg_data_unpack(bcmolt_nni_auto_cfg_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_nni_auto_cfg_data struct and collects memory 
+ * requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_nni_auto_cfg_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_nni_auto_cfg_data is out of bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_nni_auto_cfg_data_bounds_check(const bcmolt_nni_auto_cfg_data *this, bcmolt_presence_mask fields_present, bcmolt_nni_auto_cfg_id *failed_prop);
+
+/** Initializes a bcmolt_nni_serdes_key struct.  This sets all fields to default 
+ * values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_nni_serdes_key_set_default(bcmolt_nni_serdes_key *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_nni_serdes_key to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_nni_serdes_key_pack(const bcmolt_nni_serdes_key *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_nni_serdes_key would occupy on the 
+ * wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_nni_serdes_key_get_packed_length(const bcmolt_nni_serdes_key *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_nni_serdes_key from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_nni_serdes_key_unpack(bcmolt_nni_serdes_key *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_nni_serdes_key struct and collects memory 
+ * requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_nni_serdes_key_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_nni_serdes_key is out of bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_nni_serdes_key_bounds_check(const bcmolt_nni_serdes_key *this, bcmolt_presence_mask fields_present, bcmolt_nni_serdes_key_id *failed_prop);
+
+/** Initializes a bcmolt_nni_serdes_cfg_data struct.  This sets all fields to 
+ * default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_nni_serdes_cfg_data_set_default(bcmolt_nni_serdes_cfg_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_nni_serdes_cfg_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_nni_serdes_cfg_data_pack(const bcmolt_nni_serdes_cfg_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_nni_serdes_cfg_data would occupy on 
+ * the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_nni_serdes_cfg_data_get_packed_length(const bcmolt_nni_serdes_cfg_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_nni_serdes_cfg_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_nni_serdes_cfg_data_unpack(bcmolt_nni_serdes_cfg_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_nni_serdes_cfg_data struct and collects memory 
+ * requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_nni_serdes_cfg_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_nni_serdes_cfg_data is out of bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_nni_serdes_cfg_data_bounds_check(const bcmolt_nni_serdes_cfg_data *this, bcmolt_presence_mask fields_present, bcmolt_nni_serdes_cfg_id *failed_prop);
+
+/** Initializes a bcmolt_software_error_key struct.  This sets all fields to 
+ * default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_software_error_key_set_default(bcmolt_software_error_key *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_software_error_key to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_software_error_key_pack(const bcmolt_software_error_key *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_software_error_key would occupy on 
+ * the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_software_error_key_get_packed_length(const bcmolt_software_error_key *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_software_error_key from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_software_error_key_unpack(bcmolt_software_error_key *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_software_error_key struct and collects memory 
+ * requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_software_error_key_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_software_error_key is out of bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_software_error_key_bounds_check(const bcmolt_software_error_key *this, bcmolt_presence_mask fields_present, bcmolt_software_error_key_id *failed_prop);
+
+/** Initializes a bcmolt_software_error_cfg_data struct.  This sets all fields 
+ * to default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_software_error_cfg_data_set_default(bcmolt_software_error_cfg_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_software_error_cfg_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_software_error_cfg_data_pack(const bcmolt_software_error_cfg_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_software_error_cfg_data would occupy 
+ * on the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_software_error_cfg_data_get_packed_length(const bcmolt_software_error_cfg_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_software_error_cfg_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_software_error_cfg_data_unpack(bcmolt_software_error_cfg_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_software_error_cfg_data struct and collects 
+ * memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_software_error_cfg_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_software_error_cfg_data is out of bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_software_error_cfg_data_bounds_check(const bcmolt_software_error_cfg_data *this, bcmolt_presence_mask fields_present, bcmolt_software_error_cfg_id *failed_prop);
+
+/** Initializes a bcmolt_trx_calibration_key struct.  This sets all fields to 
+ * default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_trx_calibration_key_set_default(bcmolt_trx_calibration_key *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_trx_calibration_key to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_trx_calibration_key_pack(const bcmolt_trx_calibration_key *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_trx_calibration_key would occupy on 
+ * the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_trx_calibration_key_get_packed_length(const bcmolt_trx_calibration_key *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_trx_calibration_key from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_trx_calibration_key_unpack(bcmolt_trx_calibration_key *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_trx_calibration_key struct and collects memory 
+ * requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_trx_calibration_key_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_trx_calibration_key is out of bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_trx_calibration_key_bounds_check(const bcmolt_trx_calibration_key *this, bcmolt_presence_mask fields_present, bcmolt_trx_calibration_key_id *failed_prop);
+
+/** Initializes a 
+ * bcmolt_trx_calibration_capture_window_and_statistic_completed_data struct.  
+ * This sets all fields to default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_trx_calibration_capture_window_and_statistic_completed_data_set_default(bcmolt_trx_calibration_capture_window_and_statistic_completed_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_trx_calibration_capture_window_and_statistic_completed_data 
+ * to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_trx_calibration_capture_window_and_statistic_completed_data_pack(const bcmolt_trx_calibration_capture_window_and_statistic_completed_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a 
+ * bcmolt_trx_calibration_capture_window_and_statistic_completed_data would 
+ * occupy on the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_trx_calibration_capture_window_and_statistic_completed_data_get_packed_length(const bcmolt_trx_calibration_capture_window_and_statistic_completed_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_trx_calibration_capture_window_and_statistic_completed_data 
+ * from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_trx_calibration_capture_window_and_statistic_completed_data_unpack(bcmolt_trx_calibration_capture_window_and_statistic_completed_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed 
+ * bcmolt_trx_calibration_capture_window_and_statistic_completed_data struct 
+ * and collects memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_trx_calibration_capture_window_and_statistic_completed_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the 
+ * bcmolt_trx_calibration_capture_window_and_statistic_completed_data is out of 
+ * bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_trx_calibration_capture_window_and_statistic_completed_data_bounds_check(const bcmolt_trx_calibration_capture_window_and_statistic_completed_data *this, bcmolt_presence_mask fields_present, bcmolt_trx_calibration_capture_window_and_statistic_completed_id *failed_prop);
+
+/** Initializes a bcmolt_trx_calibration_auto_cfg_data struct.  This sets all 
+ * fields to default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_trx_calibration_auto_cfg_data_set_default(bcmolt_trx_calibration_auto_cfg_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_trx_calibration_auto_cfg_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_trx_calibration_auto_cfg_data_pack(const bcmolt_trx_calibration_auto_cfg_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_trx_calibration_auto_cfg_data would 
+ * occupy on the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_trx_calibration_auto_cfg_data_get_packed_length(const bcmolt_trx_calibration_auto_cfg_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_trx_calibration_auto_cfg_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_trx_calibration_auto_cfg_data_unpack(bcmolt_trx_calibration_auto_cfg_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_trx_calibration_auto_cfg_data struct and collects 
+ * memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_trx_calibration_auto_cfg_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_trx_calibration_auto_cfg_data is out of 
+ * bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_trx_calibration_auto_cfg_data_bounds_check(const bcmolt_trx_calibration_auto_cfg_data *this, bcmolt_presence_mask fields_present, bcmolt_trx_calibration_auto_cfg_id *failed_prop);
+
+/** Initializes a bcmolt_trx_calibration_start_capture_window_data struct.  This 
+ * sets all fields to default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_trx_calibration_start_capture_window_data_set_default(bcmolt_trx_calibration_start_capture_window_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_trx_calibration_start_capture_window_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_trx_calibration_start_capture_window_data_pack(const bcmolt_trx_calibration_start_capture_window_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a 
+ * bcmolt_trx_calibration_start_capture_window_data would occupy on the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_trx_calibration_start_capture_window_data_get_packed_length(const bcmolt_trx_calibration_start_capture_window_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_trx_calibration_start_capture_window_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_trx_calibration_start_capture_window_data_unpack(bcmolt_trx_calibration_start_capture_window_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_trx_calibration_start_capture_window_data struct 
+ * and collects memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_trx_calibration_start_capture_window_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_trx_calibration_start_capture_window_data 
+ * is out of bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_trx_calibration_start_capture_window_data_bounds_check(const bcmolt_trx_calibration_start_capture_window_data *this, bcmolt_presence_mask fields_present, bcmolt_trx_calibration_start_capture_window_id *failed_prop);
+
+/** Initializes a bcmolt_trx_calibration_stop_capture_window_data struct.  This 
+ * sets all fields to default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_trx_calibration_stop_capture_window_data_set_default(bcmolt_trx_calibration_stop_capture_window_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_trx_calibration_stop_capture_window_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_trx_calibration_stop_capture_window_data_pack(const bcmolt_trx_calibration_stop_capture_window_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a 
+ * bcmolt_trx_calibration_stop_capture_window_data would occupy on the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_trx_calibration_stop_capture_window_data_get_packed_length(const bcmolt_trx_calibration_stop_capture_window_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_trx_calibration_stop_capture_window_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_trx_calibration_stop_capture_window_data_unpack(bcmolt_trx_calibration_stop_capture_window_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_trx_calibration_stop_capture_window_data struct 
+ * and collects memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_trx_calibration_stop_capture_window_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_trx_calibration_stop_capture_window_data 
+ * is out of bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_trx_calibration_stop_capture_window_data_bounds_check(const bcmolt_trx_calibration_stop_capture_window_data *this, bcmolt_presence_mask fields_present, bcmolt_trx_calibration_stop_capture_window_id *failed_prop);
+
+/** Initializes a bcmolt_xgpon_alloc_key struct.  This sets all fields to 
+ * default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_xgpon_alloc_key_set_default(bcmolt_xgpon_alloc_key *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_xgpon_alloc_key to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_alloc_key_pack(const bcmolt_xgpon_alloc_key *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_xgpon_alloc_key would occupy on the 
+ * wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_xgpon_alloc_key_get_packed_length(const bcmolt_xgpon_alloc_key *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_xgpon_alloc_key from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_alloc_key_unpack(bcmolt_xgpon_alloc_key *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_xgpon_alloc_key struct and collects memory 
+ * requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_xgpon_alloc_key_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_xgpon_alloc_key is out of bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_alloc_key_bounds_check(const bcmolt_xgpon_alloc_key *this, bcmolt_presence_mask fields_present, bcmolt_xgpon_alloc_key_id *failed_prop);
+
+/** Initializes a bcmolt_xgpon_alloc_cfg_data struct.  This sets all fields to 
+ * default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_xgpon_alloc_cfg_data_set_default(bcmolt_xgpon_alloc_cfg_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_xgpon_alloc_cfg_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_alloc_cfg_data_pack(const bcmolt_xgpon_alloc_cfg_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_xgpon_alloc_cfg_data would occupy on 
+ * the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_xgpon_alloc_cfg_data_get_packed_length(const bcmolt_xgpon_alloc_cfg_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_xgpon_alloc_cfg_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_alloc_cfg_data_unpack(bcmolt_xgpon_alloc_cfg_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_xgpon_alloc_cfg_data struct and collects memory 
+ * requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_xgpon_alloc_cfg_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_xgpon_alloc_cfg_data is out of bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_alloc_cfg_data_bounds_check(const bcmolt_xgpon_alloc_cfg_data *this, bcmolt_presence_mask fields_present, bcmolt_xgpon_alloc_cfg_id *failed_prop);
+
+/** Initializes a bcmolt_xgpon_alloc_stat_data struct.  This sets all fields to 
+ * default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_xgpon_alloc_stat_data_set_default(bcmolt_xgpon_alloc_stat_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_xgpon_alloc_stat_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_alloc_stat_data_pack(const bcmolt_xgpon_alloc_stat_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_xgpon_alloc_stat_data would occupy on 
+ * the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_xgpon_alloc_stat_data_get_packed_length(const bcmolt_xgpon_alloc_stat_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_xgpon_alloc_stat_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_alloc_stat_data_unpack(bcmolt_xgpon_alloc_stat_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_xgpon_alloc_stat_data struct and collects memory 
+ * requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_xgpon_alloc_stat_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_xgpon_alloc_stat_data is out of bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_alloc_stat_data_bounds_check(const bcmolt_xgpon_alloc_stat_data *this, bcmolt_presence_mask fields_present, bcmolt_xgpon_alloc_stat_id *failed_prop);
+
+/** Initializes a bcmolt_xgpon_alloc_stat_cfg_data struct.  This sets all fields 
+ * to default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_xgpon_alloc_stat_cfg_data_set_default(bcmolt_xgpon_alloc_stat_cfg_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_xgpon_alloc_stat_cfg_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_alloc_stat_cfg_data_pack(const bcmolt_xgpon_alloc_stat_cfg_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_xgpon_alloc_stat_cfg_data would 
+ * occupy on the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_xgpon_alloc_stat_cfg_data_get_packed_length(const bcmolt_xgpon_alloc_stat_cfg_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_xgpon_alloc_stat_cfg_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_alloc_stat_cfg_data_unpack(bcmolt_xgpon_alloc_stat_cfg_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_xgpon_alloc_stat_cfg_data struct and collects 
+ * memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_xgpon_alloc_stat_cfg_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_xgpon_alloc_stat_cfg_data is out of bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_alloc_stat_cfg_data_bounds_check(const bcmolt_xgpon_alloc_stat_cfg_data *this, bcmolt_presence_mask fields_present, bcmolt_xgpon_alloc_stat_cfg_id *failed_prop);
+
+/** Initializes a bcmolt_xgpon_alloc_configuration_completed_data struct.  This 
+ * sets all fields to default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_xgpon_alloc_configuration_completed_data_set_default(bcmolt_xgpon_alloc_configuration_completed_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_xgpon_alloc_configuration_completed_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_alloc_configuration_completed_data_pack(const bcmolt_xgpon_alloc_configuration_completed_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a 
+ * bcmolt_xgpon_alloc_configuration_completed_data would occupy on the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_xgpon_alloc_configuration_completed_data_get_packed_length(const bcmolt_xgpon_alloc_configuration_completed_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_xgpon_alloc_configuration_completed_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_alloc_configuration_completed_data_unpack(bcmolt_xgpon_alloc_configuration_completed_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_xgpon_alloc_configuration_completed_data struct 
+ * and collects memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_xgpon_alloc_configuration_completed_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_xgpon_alloc_configuration_completed_data 
+ * is out of bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_alloc_configuration_completed_data_bounds_check(const bcmolt_xgpon_alloc_configuration_completed_data *this, bcmolt_presence_mask fields_present, bcmolt_xgpon_alloc_configuration_completed_id *failed_prop);
+
+/** Initializes a bcmolt_xgpon_alloc_get_alloc_stats_completed_data struct.  
+ * This sets all fields to default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_xgpon_alloc_get_alloc_stats_completed_data_set_default(bcmolt_xgpon_alloc_get_alloc_stats_completed_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_xgpon_alloc_get_alloc_stats_completed_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_alloc_get_alloc_stats_completed_data_pack(const bcmolt_xgpon_alloc_get_alloc_stats_completed_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a 
+ * bcmolt_xgpon_alloc_get_alloc_stats_completed_data would occupy on the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_xgpon_alloc_get_alloc_stats_completed_data_get_packed_length(const bcmolt_xgpon_alloc_get_alloc_stats_completed_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_xgpon_alloc_get_alloc_stats_completed_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_alloc_get_alloc_stats_completed_data_unpack(bcmolt_xgpon_alloc_get_alloc_stats_completed_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_xgpon_alloc_get_alloc_stats_completed_data struct 
+ * and collects memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_xgpon_alloc_get_alloc_stats_completed_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_xgpon_alloc_get_alloc_stats_completed_data 
+ * is out of bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_alloc_get_alloc_stats_completed_data_bounds_check(const bcmolt_xgpon_alloc_get_alloc_stats_completed_data *this, bcmolt_presence_mask fields_present, bcmolt_xgpon_alloc_get_alloc_stats_completed_id *failed_prop);
+
+/** Initializes a bcmolt_xgpon_alloc_stat_alarm_cleared_data struct.  This sets 
+ * all fields to default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_xgpon_alloc_stat_alarm_cleared_data_set_default(bcmolt_xgpon_alloc_stat_alarm_cleared_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_xgpon_alloc_stat_alarm_cleared_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_alloc_stat_alarm_cleared_data_pack(const bcmolt_xgpon_alloc_stat_alarm_cleared_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_xgpon_alloc_stat_alarm_cleared_data 
+ * would occupy on the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_xgpon_alloc_stat_alarm_cleared_data_get_packed_length(const bcmolt_xgpon_alloc_stat_alarm_cleared_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_xgpon_alloc_stat_alarm_cleared_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_alloc_stat_alarm_cleared_data_unpack(bcmolt_xgpon_alloc_stat_alarm_cleared_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_xgpon_alloc_stat_alarm_cleared_data struct and 
+ * collects memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_xgpon_alloc_stat_alarm_cleared_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_xgpon_alloc_stat_alarm_cleared_data is out 
+ * of bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_alloc_stat_alarm_cleared_data_bounds_check(const bcmolt_xgpon_alloc_stat_alarm_cleared_data *this, bcmolt_presence_mask fields_present, bcmolt_xgpon_alloc_stat_alarm_cleared_id *failed_prop);
+
+/** Initializes a bcmolt_xgpon_alloc_stat_alarm_raised_data struct.  This sets 
+ * all fields to default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_xgpon_alloc_stat_alarm_raised_data_set_default(bcmolt_xgpon_alloc_stat_alarm_raised_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_xgpon_alloc_stat_alarm_raised_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_alloc_stat_alarm_raised_data_pack(const bcmolt_xgpon_alloc_stat_alarm_raised_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_xgpon_alloc_stat_alarm_raised_data 
+ * would occupy on the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_xgpon_alloc_stat_alarm_raised_data_get_packed_length(const bcmolt_xgpon_alloc_stat_alarm_raised_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_xgpon_alloc_stat_alarm_raised_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_alloc_stat_alarm_raised_data_unpack(bcmolt_xgpon_alloc_stat_alarm_raised_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_xgpon_alloc_stat_alarm_raised_data struct and 
+ * collects memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_xgpon_alloc_stat_alarm_raised_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_xgpon_alloc_stat_alarm_raised_data is out 
+ * of bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_alloc_stat_alarm_raised_data_bounds_check(const bcmolt_xgpon_alloc_stat_alarm_raised_data *this, bcmolt_presence_mask fields_present, bcmolt_xgpon_alloc_stat_alarm_raised_id *failed_prop);
+
+/** Initializes a bcmolt_xgpon_alloc_auto_cfg_data struct.  This sets all fields 
+ * to default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_xgpon_alloc_auto_cfg_data_set_default(bcmolt_xgpon_alloc_auto_cfg_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_xgpon_alloc_auto_cfg_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_alloc_auto_cfg_data_pack(const bcmolt_xgpon_alloc_auto_cfg_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_xgpon_alloc_auto_cfg_data would 
+ * occupy on the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_xgpon_alloc_auto_cfg_data_get_packed_length(const bcmolt_xgpon_alloc_auto_cfg_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_xgpon_alloc_auto_cfg_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_alloc_auto_cfg_data_unpack(bcmolt_xgpon_alloc_auto_cfg_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_xgpon_alloc_auto_cfg_data struct and collects 
+ * memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_xgpon_alloc_auto_cfg_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_xgpon_alloc_auto_cfg_data is out of bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_alloc_auto_cfg_data_bounds_check(const bcmolt_xgpon_alloc_auto_cfg_data *this, bcmolt_presence_mask fields_present, bcmolt_xgpon_alloc_auto_cfg_id *failed_prop);
+
+/** Initializes a bcmolt_xgpon_alloc_get_stats_data struct.  This sets all 
+ * fields to default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_xgpon_alloc_get_stats_data_set_default(bcmolt_xgpon_alloc_get_stats_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_xgpon_alloc_get_stats_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_alloc_get_stats_data_pack(const bcmolt_xgpon_alloc_get_stats_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_xgpon_alloc_get_stats_data would 
+ * occupy on the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_xgpon_alloc_get_stats_data_get_packed_length(const bcmolt_xgpon_alloc_get_stats_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_xgpon_alloc_get_stats_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_alloc_get_stats_data_unpack(bcmolt_xgpon_alloc_get_stats_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_xgpon_alloc_get_stats_data struct and collects 
+ * memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_xgpon_alloc_get_stats_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_xgpon_alloc_get_stats_data is out of 
+ * bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_alloc_get_stats_data_bounds_check(const bcmolt_xgpon_alloc_get_stats_data *this, bcmolt_presence_mask fields_present, bcmolt_xgpon_alloc_get_stats_id *failed_prop);
+
+/** Initializes a bcmolt_xgpon_alloc_set_state_data struct.  This sets all 
+ * fields to default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_xgpon_alloc_set_state_data_set_default(bcmolt_xgpon_alloc_set_state_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_xgpon_alloc_set_state_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_alloc_set_state_data_pack(const bcmolt_xgpon_alloc_set_state_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_xgpon_alloc_set_state_data would 
+ * occupy on the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_xgpon_alloc_set_state_data_get_packed_length(const bcmolt_xgpon_alloc_set_state_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_xgpon_alloc_set_state_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_alloc_set_state_data_unpack(bcmolt_xgpon_alloc_set_state_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_xgpon_alloc_set_state_data struct and collects 
+ * memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_xgpon_alloc_set_state_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_xgpon_alloc_set_state_data is out of 
+ * bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_alloc_set_state_data_bounds_check(const bcmolt_xgpon_alloc_set_state_data *this, bcmolt_presence_mask fields_present, bcmolt_xgpon_alloc_set_state_id *failed_prop);
+
+/** Initializes a bcmolt_xgpon_gem_port_key struct.  This sets all fields to 
+ * default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_xgpon_gem_port_key_set_default(bcmolt_xgpon_gem_port_key *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_xgpon_gem_port_key to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_gem_port_key_pack(const bcmolt_xgpon_gem_port_key *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_xgpon_gem_port_key would occupy on 
+ * the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_xgpon_gem_port_key_get_packed_length(const bcmolt_xgpon_gem_port_key *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_xgpon_gem_port_key from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_gem_port_key_unpack(bcmolt_xgpon_gem_port_key *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_xgpon_gem_port_key struct and collects memory 
+ * requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_xgpon_gem_port_key_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_xgpon_gem_port_key is out of bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_gem_port_key_bounds_check(const bcmolt_xgpon_gem_port_key *this, bcmolt_presence_mask fields_present, bcmolt_xgpon_gem_port_key_id *failed_prop);
+
+/** Initializes a bcmolt_xgpon_gem_port_cfg_data struct.  This sets all fields 
+ * to default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_xgpon_gem_port_cfg_data_set_default(bcmolt_xgpon_gem_port_cfg_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_xgpon_gem_port_cfg_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_gem_port_cfg_data_pack(const bcmolt_xgpon_gem_port_cfg_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_xgpon_gem_port_cfg_data would occupy 
+ * on the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_xgpon_gem_port_cfg_data_get_packed_length(const bcmolt_xgpon_gem_port_cfg_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_xgpon_gem_port_cfg_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_gem_port_cfg_data_unpack(bcmolt_xgpon_gem_port_cfg_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_xgpon_gem_port_cfg_data struct and collects 
+ * memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_xgpon_gem_port_cfg_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_xgpon_gem_port_cfg_data is out of bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_gem_port_cfg_data_bounds_check(const bcmolt_xgpon_gem_port_cfg_data *this, bcmolt_presence_mask fields_present, bcmolt_xgpon_gem_port_cfg_id *failed_prop);
+
+/** Initializes a bcmolt_xgpon_gem_port_stat_data struct.  This sets all fields 
+ * to default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_xgpon_gem_port_stat_data_set_default(bcmolt_xgpon_gem_port_stat_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_xgpon_gem_port_stat_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_gem_port_stat_data_pack(const bcmolt_xgpon_gem_port_stat_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_xgpon_gem_port_stat_data would occupy 
+ * on the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_xgpon_gem_port_stat_data_get_packed_length(const bcmolt_xgpon_gem_port_stat_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_xgpon_gem_port_stat_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_gem_port_stat_data_unpack(bcmolt_xgpon_gem_port_stat_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_xgpon_gem_port_stat_data struct and collects 
+ * memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_xgpon_gem_port_stat_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_xgpon_gem_port_stat_data is out of bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_gem_port_stat_data_bounds_check(const bcmolt_xgpon_gem_port_stat_data *this, bcmolt_presence_mask fields_present, bcmolt_xgpon_gem_port_stat_id *failed_prop);
+
+/** Initializes a bcmolt_xgpon_gem_port_stat_cfg_data struct.  This sets all 
+ * fields to default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_xgpon_gem_port_stat_cfg_data_set_default(bcmolt_xgpon_gem_port_stat_cfg_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_xgpon_gem_port_stat_cfg_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_gem_port_stat_cfg_data_pack(const bcmolt_xgpon_gem_port_stat_cfg_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_xgpon_gem_port_stat_cfg_data would 
+ * occupy on the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_xgpon_gem_port_stat_cfg_data_get_packed_length(const bcmolt_xgpon_gem_port_stat_cfg_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_xgpon_gem_port_stat_cfg_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_gem_port_stat_cfg_data_unpack(bcmolt_xgpon_gem_port_stat_cfg_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_xgpon_gem_port_stat_cfg_data struct and collects 
+ * memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_xgpon_gem_port_stat_cfg_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_xgpon_gem_port_stat_cfg_data is out of 
+ * bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_gem_port_stat_cfg_data_bounds_check(const bcmolt_xgpon_gem_port_stat_cfg_data *this, bcmolt_presence_mask fields_present, bcmolt_xgpon_gem_port_stat_cfg_id *failed_prop);
+
+/** Initializes a bcmolt_xgpon_gem_port_stat_alarm_cleared_data struct.  This 
+ * sets all fields to default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_xgpon_gem_port_stat_alarm_cleared_data_set_default(bcmolt_xgpon_gem_port_stat_alarm_cleared_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_xgpon_gem_port_stat_alarm_cleared_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_gem_port_stat_alarm_cleared_data_pack(const bcmolt_xgpon_gem_port_stat_alarm_cleared_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a 
+ * bcmolt_xgpon_gem_port_stat_alarm_cleared_data would occupy on the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_xgpon_gem_port_stat_alarm_cleared_data_get_packed_length(const bcmolt_xgpon_gem_port_stat_alarm_cleared_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_xgpon_gem_port_stat_alarm_cleared_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_gem_port_stat_alarm_cleared_data_unpack(bcmolt_xgpon_gem_port_stat_alarm_cleared_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_xgpon_gem_port_stat_alarm_cleared_data struct and 
+ * collects memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_xgpon_gem_port_stat_alarm_cleared_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_xgpon_gem_port_stat_alarm_cleared_data is 
+ * out of bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_gem_port_stat_alarm_cleared_data_bounds_check(const bcmolt_xgpon_gem_port_stat_alarm_cleared_data *this, bcmolt_presence_mask fields_present, bcmolt_xgpon_gem_port_stat_alarm_cleared_id *failed_prop);
+
+/** Initializes a bcmolt_xgpon_gem_port_stat_alarm_raised_data struct.  This 
+ * sets all fields to default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_xgpon_gem_port_stat_alarm_raised_data_set_default(bcmolt_xgpon_gem_port_stat_alarm_raised_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_xgpon_gem_port_stat_alarm_raised_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_gem_port_stat_alarm_raised_data_pack(const bcmolt_xgpon_gem_port_stat_alarm_raised_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_xgpon_gem_port_stat_alarm_raised_data 
+ * would occupy on the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_xgpon_gem_port_stat_alarm_raised_data_get_packed_length(const bcmolt_xgpon_gem_port_stat_alarm_raised_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_xgpon_gem_port_stat_alarm_raised_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_gem_port_stat_alarm_raised_data_unpack(bcmolt_xgpon_gem_port_stat_alarm_raised_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_xgpon_gem_port_stat_alarm_raised_data struct and 
+ * collects memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_xgpon_gem_port_stat_alarm_raised_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_xgpon_gem_port_stat_alarm_raised_data is 
+ * out of bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_gem_port_stat_alarm_raised_data_bounds_check(const bcmolt_xgpon_gem_port_stat_alarm_raised_data *this, bcmolt_presence_mask fields_present, bcmolt_xgpon_gem_port_stat_alarm_raised_id *failed_prop);
+
+/** Initializes a bcmolt_xgpon_gem_port_auto_cfg_data struct.  This sets all 
+ * fields to default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_xgpon_gem_port_auto_cfg_data_set_default(bcmolt_xgpon_gem_port_auto_cfg_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_xgpon_gem_port_auto_cfg_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_gem_port_auto_cfg_data_pack(const bcmolt_xgpon_gem_port_auto_cfg_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_xgpon_gem_port_auto_cfg_data would 
+ * occupy on the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_xgpon_gem_port_auto_cfg_data_get_packed_length(const bcmolt_xgpon_gem_port_auto_cfg_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_xgpon_gem_port_auto_cfg_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_gem_port_auto_cfg_data_unpack(bcmolt_xgpon_gem_port_auto_cfg_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_xgpon_gem_port_auto_cfg_data struct and collects 
+ * memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_xgpon_gem_port_auto_cfg_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_xgpon_gem_port_auto_cfg_data is out of 
+ * bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_gem_port_auto_cfg_data_bounds_check(const bcmolt_xgpon_gem_port_auto_cfg_data *this, bcmolt_presence_mask fields_present, bcmolt_xgpon_gem_port_auto_cfg_id *failed_prop);
+
+/** Initializes a bcmolt_xgpon_iwf_key struct.  This sets all fields to default 
+ * values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_xgpon_iwf_key_set_default(bcmolt_xgpon_iwf_key *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_xgpon_iwf_key to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_iwf_key_pack(const bcmolt_xgpon_iwf_key *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_xgpon_iwf_key would occupy on the 
+ * wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_xgpon_iwf_key_get_packed_length(const bcmolt_xgpon_iwf_key *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_xgpon_iwf_key from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_iwf_key_unpack(bcmolt_xgpon_iwf_key *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_xgpon_iwf_key struct and collects memory 
+ * requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_xgpon_iwf_key_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_xgpon_iwf_key is out of bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_iwf_key_bounds_check(const bcmolt_xgpon_iwf_key *this, bcmolt_presence_mask fields_present, bcmolt_xgpon_iwf_key_id *failed_prop);
+
+/** Initializes a bcmolt_xgpon_iwf_cfg_data struct.  This sets all fields to 
+ * default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_xgpon_iwf_cfg_data_set_default(bcmolt_xgpon_iwf_cfg_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_xgpon_iwf_cfg_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_iwf_cfg_data_pack(const bcmolt_xgpon_iwf_cfg_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_xgpon_iwf_cfg_data would occupy on 
+ * the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_xgpon_iwf_cfg_data_get_packed_length(const bcmolt_xgpon_iwf_cfg_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_xgpon_iwf_cfg_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_iwf_cfg_data_unpack(bcmolt_xgpon_iwf_cfg_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_xgpon_iwf_cfg_data struct and collects memory 
+ * requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_xgpon_iwf_cfg_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_xgpon_iwf_cfg_data is out of bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_iwf_cfg_data_bounds_check(const bcmolt_xgpon_iwf_cfg_data *this, bcmolt_presence_mask fields_present, bcmolt_xgpon_iwf_cfg_id *failed_prop);
+
+/** Initializes a bcmolt_xgpon_ni_key struct.  This sets all fields to default 
+ * values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_xgpon_ni_key_set_default(bcmolt_xgpon_ni_key *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_xgpon_ni_key to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_ni_key_pack(const bcmolt_xgpon_ni_key *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_xgpon_ni_key would occupy on the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_xgpon_ni_key_get_packed_length(const bcmolt_xgpon_ni_key *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_xgpon_ni_key from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_ni_key_unpack(bcmolt_xgpon_ni_key *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_xgpon_ni_key struct and collects memory 
+ * requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_xgpon_ni_key_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_xgpon_ni_key is out of bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_ni_key_bounds_check(const bcmolt_xgpon_ni_key *this, bcmolt_presence_mask fields_present, bcmolt_xgpon_ni_key_id *failed_prop);
+
+/** Initializes a bcmolt_xgpon_ni_cfg_data struct.  This sets all fields to 
+ * default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_xgpon_ni_cfg_data_set_default(bcmolt_xgpon_ni_cfg_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_xgpon_ni_cfg_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_ni_cfg_data_pack(const bcmolt_xgpon_ni_cfg_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_xgpon_ni_cfg_data would occupy on the 
+ * wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_xgpon_ni_cfg_data_get_packed_length(const bcmolt_xgpon_ni_cfg_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_xgpon_ni_cfg_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_ni_cfg_data_unpack(bcmolt_xgpon_ni_cfg_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_xgpon_ni_cfg_data struct and collects memory 
+ * requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_xgpon_ni_cfg_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_xgpon_ni_cfg_data is out of bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_ni_cfg_data_bounds_check(const bcmolt_xgpon_ni_cfg_data *this, bcmolt_presence_mask fields_present, bcmolt_xgpon_ni_cfg_id *failed_prop);
+
+/** Initializes a bcmolt_xgpon_ni_stat_data struct.  This sets all fields to 
+ * default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_xgpon_ni_stat_data_set_default(bcmolt_xgpon_ni_stat_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_xgpon_ni_stat_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_ni_stat_data_pack(const bcmolt_xgpon_ni_stat_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_xgpon_ni_stat_data would occupy on 
+ * the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_xgpon_ni_stat_data_get_packed_length(const bcmolt_xgpon_ni_stat_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_xgpon_ni_stat_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_ni_stat_data_unpack(bcmolt_xgpon_ni_stat_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_xgpon_ni_stat_data struct and collects memory 
+ * requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_xgpon_ni_stat_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_xgpon_ni_stat_data is out of bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_ni_stat_data_bounds_check(const bcmolt_xgpon_ni_stat_data *this, bcmolt_presence_mask fields_present, bcmolt_xgpon_ni_stat_id *failed_prop);
+
+/** Initializes a bcmolt_xgpon_ni_stat_cfg_data struct.  This sets all fields to 
+ * default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_xgpon_ni_stat_cfg_data_set_default(bcmolt_xgpon_ni_stat_cfg_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_xgpon_ni_stat_cfg_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_ni_stat_cfg_data_pack(const bcmolt_xgpon_ni_stat_cfg_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_xgpon_ni_stat_cfg_data would occupy 
+ * on the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_xgpon_ni_stat_cfg_data_get_packed_length(const bcmolt_xgpon_ni_stat_cfg_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_xgpon_ni_stat_cfg_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_ni_stat_cfg_data_unpack(bcmolt_xgpon_ni_stat_cfg_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_xgpon_ni_stat_cfg_data struct and collects memory 
+ * requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_xgpon_ni_stat_cfg_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_xgpon_ni_stat_cfg_data is out of bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_ni_stat_cfg_data_bounds_check(const bcmolt_xgpon_ni_stat_cfg_data *this, bcmolt_presence_mask fields_present, bcmolt_xgpon_ni_stat_cfg_id *failed_prop);
+
+/** Initializes a bcmolt_xgpon_ni_cpu_packets_failure_data struct.  This sets 
+ * all fields to default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_xgpon_ni_cpu_packets_failure_data_set_default(bcmolt_xgpon_ni_cpu_packets_failure_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_xgpon_ni_cpu_packets_failure_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_ni_cpu_packets_failure_data_pack(const bcmolt_xgpon_ni_cpu_packets_failure_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_xgpon_ni_cpu_packets_failure_data 
+ * would occupy on the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_xgpon_ni_cpu_packets_failure_data_get_packed_length(const bcmolt_xgpon_ni_cpu_packets_failure_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_xgpon_ni_cpu_packets_failure_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_ni_cpu_packets_failure_data_unpack(bcmolt_xgpon_ni_cpu_packets_failure_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_xgpon_ni_cpu_packets_failure_data struct and 
+ * collects memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_xgpon_ni_cpu_packets_failure_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_xgpon_ni_cpu_packets_failure_data is out 
+ * of bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_ni_cpu_packets_failure_data_bounds_check(const bcmolt_xgpon_ni_cpu_packets_failure_data *this, bcmolt_presence_mask fields_present, bcmolt_xgpon_ni_cpu_packets_failure_id *failed_prop);
+
+/** Initializes a bcmolt_xgpon_ni_los_data struct.  This sets all fields to 
+ * default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_xgpon_ni_los_data_set_default(bcmolt_xgpon_ni_los_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_xgpon_ni_los_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_ni_los_data_pack(const bcmolt_xgpon_ni_los_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_xgpon_ni_los_data would occupy on the 
+ * wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_xgpon_ni_los_data_get_packed_length(const bcmolt_xgpon_ni_los_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_xgpon_ni_los_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_ni_los_data_unpack(bcmolt_xgpon_ni_los_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_xgpon_ni_los_data struct and collects memory 
+ * requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_xgpon_ni_los_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_xgpon_ni_los_data is out of bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_ni_los_data_bounds_check(const bcmolt_xgpon_ni_los_data *this, bcmolt_presence_mask fields_present, bcmolt_xgpon_ni_los_id *failed_prop);
+
+/** Initializes a bcmolt_xgpon_ni_onu_discovered_data struct.  This sets all 
+ * fields to default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_xgpon_ni_onu_discovered_data_set_default(bcmolt_xgpon_ni_onu_discovered_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_xgpon_ni_onu_discovered_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_ni_onu_discovered_data_pack(const bcmolt_xgpon_ni_onu_discovered_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_xgpon_ni_onu_discovered_data would 
+ * occupy on the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_xgpon_ni_onu_discovered_data_get_packed_length(const bcmolt_xgpon_ni_onu_discovered_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_xgpon_ni_onu_discovered_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_ni_onu_discovered_data_unpack(bcmolt_xgpon_ni_onu_discovered_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_xgpon_ni_onu_discovered_data struct and collects 
+ * memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_xgpon_ni_onu_discovered_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_xgpon_ni_onu_discovered_data is out of 
+ * bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_ni_onu_discovered_data_bounds_check(const bcmolt_xgpon_ni_onu_discovered_data *this, bcmolt_presence_mask fields_present, bcmolt_xgpon_ni_onu_discovered_id *failed_prop);
+
+/** Initializes a bcmolt_xgpon_ni_onu_upgrade_complete_data struct.  This sets 
+ * all fields to default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_xgpon_ni_onu_upgrade_complete_data_set_default(bcmolt_xgpon_ni_onu_upgrade_complete_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_xgpon_ni_onu_upgrade_complete_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_ni_onu_upgrade_complete_data_pack(const bcmolt_xgpon_ni_onu_upgrade_complete_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_xgpon_ni_onu_upgrade_complete_data 
+ * would occupy on the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_xgpon_ni_onu_upgrade_complete_data_get_packed_length(const bcmolt_xgpon_ni_onu_upgrade_complete_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_xgpon_ni_onu_upgrade_complete_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_ni_onu_upgrade_complete_data_unpack(bcmolt_xgpon_ni_onu_upgrade_complete_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_xgpon_ni_onu_upgrade_complete_data struct and 
+ * collects memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_xgpon_ni_onu_upgrade_complete_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_xgpon_ni_onu_upgrade_complete_data is out 
+ * of bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_ni_onu_upgrade_complete_data_bounds_check(const bcmolt_xgpon_ni_onu_upgrade_complete_data *this, bcmolt_presence_mask fields_present, bcmolt_xgpon_ni_onu_upgrade_complete_id *failed_prop);
+
+/** Initializes a bcmolt_xgpon_ni_protection_switching_onus_ranged_data struct.  
+ * This sets all fields to default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_xgpon_ni_protection_switching_onus_ranged_data_set_default(bcmolt_xgpon_ni_protection_switching_onus_ranged_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_xgpon_ni_protection_switching_onus_ranged_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_ni_protection_switching_onus_ranged_data_pack(const bcmolt_xgpon_ni_protection_switching_onus_ranged_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a 
+ * bcmolt_xgpon_ni_protection_switching_onus_ranged_data would occupy on the 
+ * wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_xgpon_ni_protection_switching_onus_ranged_data_get_packed_length(const bcmolt_xgpon_ni_protection_switching_onus_ranged_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_xgpon_ni_protection_switching_onus_ranged_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_ni_protection_switching_onus_ranged_data_unpack(bcmolt_xgpon_ni_protection_switching_onus_ranged_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_xgpon_ni_protection_switching_onus_ranged_data 
+ * struct and collects memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_xgpon_ni_protection_switching_onus_ranged_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the 
+ * bcmolt_xgpon_ni_protection_switching_onus_ranged_data is out of bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_ni_protection_switching_onus_ranged_data_bounds_check(const bcmolt_xgpon_ni_protection_switching_onus_ranged_data *this, bcmolt_presence_mask fields_present, bcmolt_xgpon_ni_protection_switching_onus_ranged_id *failed_prop);
+
+/** Initializes a bcmolt_xgpon_ni_protection_switching_switchover_completed_data 
+ * struct.  This sets all fields to default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_xgpon_ni_protection_switching_switchover_completed_data_set_default(bcmolt_xgpon_ni_protection_switching_switchover_completed_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_xgpon_ni_protection_switching_switchover_completed_data to 
+ * bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_ni_protection_switching_switchover_completed_data_pack(const bcmolt_xgpon_ni_protection_switching_switchover_completed_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a 
+ * bcmolt_xgpon_ni_protection_switching_switchover_completed_data would occupy 
+ * on the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_xgpon_ni_protection_switching_switchover_completed_data_get_packed_length(const bcmolt_xgpon_ni_protection_switching_switchover_completed_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_xgpon_ni_protection_switching_switchover_completed_data 
+ * from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_ni_protection_switching_switchover_completed_data_unpack(bcmolt_xgpon_ni_protection_switching_switchover_completed_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed 
+ * bcmolt_xgpon_ni_protection_switching_switchover_completed_data struct and 
+ * collects memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_xgpon_ni_protection_switching_switchover_completed_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the 
+ * bcmolt_xgpon_ni_protection_switching_switchover_completed_data is out of 
+ * bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_ni_protection_switching_switchover_completed_data_bounds_check(const bcmolt_xgpon_ni_protection_switching_switchover_completed_data *this, bcmolt_presence_mask fields_present, bcmolt_xgpon_ni_protection_switching_switchover_completed_id *failed_prop);
+
+/** Initializes a bcmolt_xgpon_ni_protection_switching_traffic_resume_data 
+ * struct.  This sets all fields to default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_xgpon_ni_protection_switching_traffic_resume_data_set_default(bcmolt_xgpon_ni_protection_switching_traffic_resume_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_xgpon_ni_protection_switching_traffic_resume_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_ni_protection_switching_traffic_resume_data_pack(const bcmolt_xgpon_ni_protection_switching_traffic_resume_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a 
+ * bcmolt_xgpon_ni_protection_switching_traffic_resume_data would occupy on the 
+ * wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_xgpon_ni_protection_switching_traffic_resume_data_get_packed_length(const bcmolt_xgpon_ni_protection_switching_traffic_resume_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_xgpon_ni_protection_switching_traffic_resume_data from 
+ * bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_ni_protection_switching_traffic_resume_data_unpack(bcmolt_xgpon_ni_protection_switching_traffic_resume_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_xgpon_ni_protection_switching_traffic_resume_data 
+ * struct and collects memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_xgpon_ni_protection_switching_traffic_resume_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the 
+ * bcmolt_xgpon_ni_protection_switching_traffic_resume_data is out of bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_ni_protection_switching_traffic_resume_data_bounds_check(const bcmolt_xgpon_ni_protection_switching_traffic_resume_data *this, bcmolt_presence_mask fields_present, bcmolt_xgpon_ni_protection_switching_traffic_resume_id *failed_prop);
+
+/** Initializes a bcmolt_xgpon_ni_rogue_detection_completed_data struct.  This 
+ * sets all fields to default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_xgpon_ni_rogue_detection_completed_data_set_default(bcmolt_xgpon_ni_rogue_detection_completed_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_xgpon_ni_rogue_detection_completed_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_ni_rogue_detection_completed_data_pack(const bcmolt_xgpon_ni_rogue_detection_completed_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a 
+ * bcmolt_xgpon_ni_rogue_detection_completed_data would occupy on the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_xgpon_ni_rogue_detection_completed_data_get_packed_length(const bcmolt_xgpon_ni_rogue_detection_completed_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_xgpon_ni_rogue_detection_completed_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_ni_rogue_detection_completed_data_unpack(bcmolt_xgpon_ni_rogue_detection_completed_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_xgpon_ni_rogue_detection_completed_data struct 
+ * and collects memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_xgpon_ni_rogue_detection_completed_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_xgpon_ni_rogue_detection_completed_data is 
+ * out of bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_ni_rogue_detection_completed_data_bounds_check(const bcmolt_xgpon_ni_rogue_detection_completed_data *this, bcmolt_presence_mask fields_present, bcmolt_xgpon_ni_rogue_detection_completed_id *failed_prop);
+
+/** Initializes a bcmolt_xgpon_ni_standby_pon_monitoring_cycle_completed_data 
+ * struct.  This sets all fields to default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_xgpon_ni_standby_pon_monitoring_cycle_completed_data_set_default(bcmolt_xgpon_ni_standby_pon_monitoring_cycle_completed_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_xgpon_ni_standby_pon_monitoring_cycle_completed_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_ni_standby_pon_monitoring_cycle_completed_data_pack(const bcmolt_xgpon_ni_standby_pon_monitoring_cycle_completed_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a 
+ * bcmolt_xgpon_ni_standby_pon_monitoring_cycle_completed_data would occupy on 
+ * the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_xgpon_ni_standby_pon_monitoring_cycle_completed_data_get_packed_length(const bcmolt_xgpon_ni_standby_pon_monitoring_cycle_completed_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_xgpon_ni_standby_pon_monitoring_cycle_completed_data from 
+ * bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_ni_standby_pon_monitoring_cycle_completed_data_unpack(bcmolt_xgpon_ni_standby_pon_monitoring_cycle_completed_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed 
+ * bcmolt_xgpon_ni_standby_pon_monitoring_cycle_completed_data struct and 
+ * collects memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_xgpon_ni_standby_pon_monitoring_cycle_completed_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the 
+ * bcmolt_xgpon_ni_standby_pon_monitoring_cycle_completed_data is out of bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_ni_standby_pon_monitoring_cycle_completed_data_bounds_check(const bcmolt_xgpon_ni_standby_pon_monitoring_cycle_completed_data *this, bcmolt_presence_mask fields_present, bcmolt_xgpon_ni_standby_pon_monitoring_cycle_completed_id *failed_prop);
+
+/** Initializes a bcmolt_xgpon_ni_stat_alarm_cleared_data struct.  This sets all 
+ * fields to default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_xgpon_ni_stat_alarm_cleared_data_set_default(bcmolt_xgpon_ni_stat_alarm_cleared_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_xgpon_ni_stat_alarm_cleared_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_ni_stat_alarm_cleared_data_pack(const bcmolt_xgpon_ni_stat_alarm_cleared_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_xgpon_ni_stat_alarm_cleared_data 
+ * would occupy on the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_xgpon_ni_stat_alarm_cleared_data_get_packed_length(const bcmolt_xgpon_ni_stat_alarm_cleared_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_xgpon_ni_stat_alarm_cleared_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_ni_stat_alarm_cleared_data_unpack(bcmolt_xgpon_ni_stat_alarm_cleared_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_xgpon_ni_stat_alarm_cleared_data struct and 
+ * collects memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_xgpon_ni_stat_alarm_cleared_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_xgpon_ni_stat_alarm_cleared_data is out of 
+ * bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_ni_stat_alarm_cleared_data_bounds_check(const bcmolt_xgpon_ni_stat_alarm_cleared_data *this, bcmolt_presence_mask fields_present, bcmolt_xgpon_ni_stat_alarm_cleared_id *failed_prop);
+
+/** Initializes a bcmolt_xgpon_ni_stat_alarm_raised_data struct.  This sets all 
+ * fields to default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_xgpon_ni_stat_alarm_raised_data_set_default(bcmolt_xgpon_ni_stat_alarm_raised_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_xgpon_ni_stat_alarm_raised_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_ni_stat_alarm_raised_data_pack(const bcmolt_xgpon_ni_stat_alarm_raised_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_xgpon_ni_stat_alarm_raised_data would 
+ * occupy on the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_xgpon_ni_stat_alarm_raised_data_get_packed_length(const bcmolt_xgpon_ni_stat_alarm_raised_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_xgpon_ni_stat_alarm_raised_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_ni_stat_alarm_raised_data_unpack(bcmolt_xgpon_ni_stat_alarm_raised_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_xgpon_ni_stat_alarm_raised_data struct and 
+ * collects memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_xgpon_ni_stat_alarm_raised_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_xgpon_ni_stat_alarm_raised_data is out of 
+ * bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_ni_stat_alarm_raised_data_bounds_check(const bcmolt_xgpon_ni_stat_alarm_raised_data *this, bcmolt_presence_mask fields_present, bcmolt_xgpon_ni_stat_alarm_raised_id *failed_prop);
+
+/** Initializes a bcmolt_xgpon_ni_state_change_completed_data struct.  This sets 
+ * all fields to default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_xgpon_ni_state_change_completed_data_set_default(bcmolt_xgpon_ni_state_change_completed_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_xgpon_ni_state_change_completed_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_ni_state_change_completed_data_pack(const bcmolt_xgpon_ni_state_change_completed_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_xgpon_ni_state_change_completed_data 
+ * would occupy on the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_xgpon_ni_state_change_completed_data_get_packed_length(const bcmolt_xgpon_ni_state_change_completed_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_xgpon_ni_state_change_completed_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_ni_state_change_completed_data_unpack(bcmolt_xgpon_ni_state_change_completed_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_xgpon_ni_state_change_completed_data struct and 
+ * collects memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_xgpon_ni_state_change_completed_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_xgpon_ni_state_change_completed_data is 
+ * out of bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_ni_state_change_completed_data_bounds_check(const bcmolt_xgpon_ni_state_change_completed_data *this, bcmolt_presence_mask fields_present, bcmolt_xgpon_ni_state_change_completed_id *failed_prop);
+
+/** Initializes a bcmolt_xgpon_ni_tod_request_completed_data struct.  This sets 
+ * all fields to default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_xgpon_ni_tod_request_completed_data_set_default(bcmolt_xgpon_ni_tod_request_completed_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_xgpon_ni_tod_request_completed_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_ni_tod_request_completed_data_pack(const bcmolt_xgpon_ni_tod_request_completed_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_xgpon_ni_tod_request_completed_data 
+ * would occupy on the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_xgpon_ni_tod_request_completed_data_get_packed_length(const bcmolt_xgpon_ni_tod_request_completed_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_xgpon_ni_tod_request_completed_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_ni_tod_request_completed_data_unpack(bcmolt_xgpon_ni_tod_request_completed_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_xgpon_ni_tod_request_completed_data struct and 
+ * collects memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_xgpon_ni_tod_request_completed_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_xgpon_ni_tod_request_completed_data is out 
+ * of bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_ni_tod_request_completed_data_bounds_check(const bcmolt_xgpon_ni_tod_request_completed_data *this, bcmolt_presence_mask fields_present, bcmolt_xgpon_ni_tod_request_completed_id *failed_prop);
+
+/** Initializes a bcmolt_xgpon_ni_auto_cfg_data struct.  This sets all fields to 
+ * default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_xgpon_ni_auto_cfg_data_set_default(bcmolt_xgpon_ni_auto_cfg_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_xgpon_ni_auto_cfg_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_ni_auto_cfg_data_pack(const bcmolt_xgpon_ni_auto_cfg_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_xgpon_ni_auto_cfg_data would occupy 
+ * on the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_xgpon_ni_auto_cfg_data_get_packed_length(const bcmolt_xgpon_ni_auto_cfg_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_xgpon_ni_auto_cfg_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_ni_auto_cfg_data_unpack(bcmolt_xgpon_ni_auto_cfg_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_xgpon_ni_auto_cfg_data struct and collects memory 
+ * requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_xgpon_ni_auto_cfg_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_xgpon_ni_auto_cfg_data is out of bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_ni_auto_cfg_data_bounds_check(const bcmolt_xgpon_ni_auto_cfg_data *this, bcmolt_presence_mask fields_present, bcmolt_xgpon_ni_auto_cfg_id *failed_prop);
+
+/** Initializes a bcmolt_xgpon_ni_adjust_tx_wavelength_data struct.  This sets 
+ * all fields to default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_xgpon_ni_adjust_tx_wavelength_data_set_default(bcmolt_xgpon_ni_adjust_tx_wavelength_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_xgpon_ni_adjust_tx_wavelength_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_ni_adjust_tx_wavelength_data_pack(const bcmolt_xgpon_ni_adjust_tx_wavelength_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_xgpon_ni_adjust_tx_wavelength_data 
+ * would occupy on the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_xgpon_ni_adjust_tx_wavelength_data_get_packed_length(const bcmolt_xgpon_ni_adjust_tx_wavelength_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_xgpon_ni_adjust_tx_wavelength_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_ni_adjust_tx_wavelength_data_unpack(bcmolt_xgpon_ni_adjust_tx_wavelength_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_xgpon_ni_adjust_tx_wavelength_data struct and 
+ * collects memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_xgpon_ni_adjust_tx_wavelength_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_xgpon_ni_adjust_tx_wavelength_data is out 
+ * of bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_ni_adjust_tx_wavelength_data_bounds_check(const bcmolt_xgpon_ni_adjust_tx_wavelength_data *this, bcmolt_presence_mask fields_present, bcmolt_xgpon_ni_adjust_tx_wavelength_id *failed_prop);
+
+/** Initializes a bcmolt_xgpon_ni_disable_serial_number_data struct.  This sets 
+ * all fields to default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_xgpon_ni_disable_serial_number_data_set_default(bcmolt_xgpon_ni_disable_serial_number_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_xgpon_ni_disable_serial_number_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_ni_disable_serial_number_data_pack(const bcmolt_xgpon_ni_disable_serial_number_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_xgpon_ni_disable_serial_number_data 
+ * would occupy on the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_xgpon_ni_disable_serial_number_data_get_packed_length(const bcmolt_xgpon_ni_disable_serial_number_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_xgpon_ni_disable_serial_number_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_ni_disable_serial_number_data_unpack(bcmolt_xgpon_ni_disable_serial_number_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_xgpon_ni_disable_serial_number_data struct and 
+ * collects memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_xgpon_ni_disable_serial_number_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_xgpon_ni_disable_serial_number_data is out 
+ * of bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_ni_disable_serial_number_data_bounds_check(const bcmolt_xgpon_ni_disable_serial_number_data *this, bcmolt_presence_mask fields_present, bcmolt_xgpon_ni_disable_serial_number_id *failed_prop);
+
+/** Initializes a bcmolt_xgpon_ni_rogue_detection_window_data struct.  This sets 
+ * all fields to default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_xgpon_ni_rogue_detection_window_data_set_default(bcmolt_xgpon_ni_rogue_detection_window_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_xgpon_ni_rogue_detection_window_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_ni_rogue_detection_window_data_pack(const bcmolt_xgpon_ni_rogue_detection_window_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_xgpon_ni_rogue_detection_window_data 
+ * would occupy on the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_xgpon_ni_rogue_detection_window_data_get_packed_length(const bcmolt_xgpon_ni_rogue_detection_window_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_xgpon_ni_rogue_detection_window_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_ni_rogue_detection_window_data_unpack(bcmolt_xgpon_ni_rogue_detection_window_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_xgpon_ni_rogue_detection_window_data struct and 
+ * collects memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_xgpon_ni_rogue_detection_window_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_xgpon_ni_rogue_detection_window_data is 
+ * out of bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_ni_rogue_detection_window_data_bounds_check(const bcmolt_xgpon_ni_rogue_detection_window_data *this, bcmolt_presence_mask fields_present, bcmolt_xgpon_ni_rogue_detection_window_id *failed_prop);
+
+/** Initializes a bcmolt_xgpon_ni_run_special_bw_map_data struct.  This sets all 
+ * fields to default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_xgpon_ni_run_special_bw_map_data_set_default(bcmolt_xgpon_ni_run_special_bw_map_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_xgpon_ni_run_special_bw_map_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_ni_run_special_bw_map_data_pack(const bcmolt_xgpon_ni_run_special_bw_map_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_xgpon_ni_run_special_bw_map_data 
+ * would occupy on the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_xgpon_ni_run_special_bw_map_data_get_packed_length(const bcmolt_xgpon_ni_run_special_bw_map_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_xgpon_ni_run_special_bw_map_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_ni_run_special_bw_map_data_unpack(bcmolt_xgpon_ni_run_special_bw_map_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_xgpon_ni_run_special_bw_map_data struct and 
+ * collects memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_xgpon_ni_run_special_bw_map_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_xgpon_ni_run_special_bw_map_data is out of 
+ * bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_ni_run_special_bw_map_data_bounds_check(const bcmolt_xgpon_ni_run_special_bw_map_data *this, bcmolt_presence_mask fields_present, bcmolt_xgpon_ni_run_special_bw_map_id *failed_prop);
+
+/** Initializes a bcmolt_xgpon_ni_set_onu_state_data struct.  This sets all 
+ * fields to default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_xgpon_ni_set_onu_state_data_set_default(bcmolt_xgpon_ni_set_onu_state_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_xgpon_ni_set_onu_state_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_ni_set_onu_state_data_pack(const bcmolt_xgpon_ni_set_onu_state_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_xgpon_ni_set_onu_state_data would 
+ * occupy on the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_xgpon_ni_set_onu_state_data_get_packed_length(const bcmolt_xgpon_ni_set_onu_state_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_xgpon_ni_set_onu_state_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_ni_set_onu_state_data_unpack(bcmolt_xgpon_ni_set_onu_state_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_xgpon_ni_set_onu_state_data struct and collects 
+ * memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_xgpon_ni_set_onu_state_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_xgpon_ni_set_onu_state_data is out of 
+ * bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_ni_set_onu_state_data_bounds_check(const bcmolt_xgpon_ni_set_onu_state_data *this, bcmolt_presence_mask fields_present, bcmolt_xgpon_ni_set_onu_state_id *failed_prop);
+
+/** Initializes a bcmolt_xgpon_ni_set_pon_state_data struct.  This sets all 
+ * fields to default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_xgpon_ni_set_pon_state_data_set_default(bcmolt_xgpon_ni_set_pon_state_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_xgpon_ni_set_pon_state_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_ni_set_pon_state_data_pack(const bcmolt_xgpon_ni_set_pon_state_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_xgpon_ni_set_pon_state_data would 
+ * occupy on the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_xgpon_ni_set_pon_state_data_get_packed_length(const bcmolt_xgpon_ni_set_pon_state_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_xgpon_ni_set_pon_state_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_ni_set_pon_state_data_unpack(bcmolt_xgpon_ni_set_pon_state_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_xgpon_ni_set_pon_state_data struct and collects 
+ * memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_xgpon_ni_set_pon_state_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_xgpon_ni_set_pon_state_data is out of 
+ * bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_ni_set_pon_state_data_bounds_check(const bcmolt_xgpon_ni_set_pon_state_data *this, bcmolt_presence_mask fields_present, bcmolt_xgpon_ni_set_pon_state_id *failed_prop);
+
+/** Initializes a bcmolt_xgpon_ni_start_onu_upgrade_data struct.  This sets all 
+ * fields to default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_xgpon_ni_start_onu_upgrade_data_set_default(bcmolt_xgpon_ni_start_onu_upgrade_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_xgpon_ni_start_onu_upgrade_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_ni_start_onu_upgrade_data_pack(const bcmolt_xgpon_ni_start_onu_upgrade_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_xgpon_ni_start_onu_upgrade_data would 
+ * occupy on the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_xgpon_ni_start_onu_upgrade_data_get_packed_length(const bcmolt_xgpon_ni_start_onu_upgrade_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_xgpon_ni_start_onu_upgrade_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_ni_start_onu_upgrade_data_unpack(bcmolt_xgpon_ni_start_onu_upgrade_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_xgpon_ni_start_onu_upgrade_data struct and 
+ * collects memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_xgpon_ni_start_onu_upgrade_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_xgpon_ni_start_onu_upgrade_data is out of 
+ * bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_ni_start_onu_upgrade_data_bounds_check(const bcmolt_xgpon_ni_start_onu_upgrade_data *this, bcmolt_presence_mask fields_present, bcmolt_xgpon_ni_start_onu_upgrade_id *failed_prop);
+
+/** Initializes a bcmolt_xgpon_ni_broadcast_ploam_packet_data struct.  This sets 
+ * all fields to default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_xgpon_ni_broadcast_ploam_packet_data_set_default(bcmolt_xgpon_ni_broadcast_ploam_packet_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_xgpon_ni_broadcast_ploam_packet_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_ni_broadcast_ploam_packet_data_pack(const bcmolt_xgpon_ni_broadcast_ploam_packet_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_xgpon_ni_broadcast_ploam_packet_data 
+ * would occupy on the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_xgpon_ni_broadcast_ploam_packet_data_get_packed_length(const bcmolt_xgpon_ni_broadcast_ploam_packet_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_xgpon_ni_broadcast_ploam_packet_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_ni_broadcast_ploam_packet_data_unpack(bcmolt_xgpon_ni_broadcast_ploam_packet_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_xgpon_ni_broadcast_ploam_packet_data struct and 
+ * collects memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_xgpon_ni_broadcast_ploam_packet_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_xgpon_ni_broadcast_ploam_packet_data is 
+ * out of bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_ni_broadcast_ploam_packet_data_bounds_check(const bcmolt_xgpon_ni_broadcast_ploam_packet_data *this, bcmolt_presence_mask fields_present, bcmolt_xgpon_ni_broadcast_ploam_packet_id *failed_prop);
+
+/** Initializes a bcmolt_xgpon_ni_cpu_packets_data struct.  This sets all fields 
+ * to default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_xgpon_ni_cpu_packets_data_set_default(bcmolt_xgpon_ni_cpu_packets_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_xgpon_ni_cpu_packets_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_ni_cpu_packets_data_pack(const bcmolt_xgpon_ni_cpu_packets_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_xgpon_ni_cpu_packets_data would 
+ * occupy on the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_xgpon_ni_cpu_packets_data_get_packed_length(const bcmolt_xgpon_ni_cpu_packets_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_xgpon_ni_cpu_packets_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_ni_cpu_packets_data_unpack(bcmolt_xgpon_ni_cpu_packets_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_xgpon_ni_cpu_packets_data struct and collects 
+ * memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_xgpon_ni_cpu_packets_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_xgpon_ni_cpu_packets_data is out of bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_ni_cpu_packets_data_bounds_check(const bcmolt_xgpon_ni_cpu_packets_data *this, bcmolt_presence_mask fields_present, bcmolt_xgpon_ni_cpu_packets_id *failed_prop);
+
+/** Initializes a bcmolt_xgpon_onu_key struct.  This sets all fields to default 
+ * values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_xgpon_onu_key_set_default(bcmolt_xgpon_onu_key *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_xgpon_onu_key to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_onu_key_pack(const bcmolt_xgpon_onu_key *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_xgpon_onu_key would occupy on the 
+ * wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_xgpon_onu_key_get_packed_length(const bcmolt_xgpon_onu_key *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_xgpon_onu_key from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_onu_key_unpack(bcmolt_xgpon_onu_key *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_xgpon_onu_key struct and collects memory 
+ * requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_xgpon_onu_key_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_xgpon_onu_key is out of bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_onu_key_bounds_check(const bcmolt_xgpon_onu_key *this, bcmolt_presence_mask fields_present, bcmolt_xgpon_onu_key_id *failed_prop);
+
+/** Initializes a bcmolt_xgpon_onu_cfg_data struct.  This sets all fields to 
+ * default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_xgpon_onu_cfg_data_set_default(bcmolt_xgpon_onu_cfg_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_xgpon_onu_cfg_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_onu_cfg_data_pack(const bcmolt_xgpon_onu_cfg_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_xgpon_onu_cfg_data would occupy on 
+ * the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_xgpon_onu_cfg_data_get_packed_length(const bcmolt_xgpon_onu_cfg_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_xgpon_onu_cfg_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_onu_cfg_data_unpack(bcmolt_xgpon_onu_cfg_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_xgpon_onu_cfg_data struct and collects memory 
+ * requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_xgpon_onu_cfg_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_xgpon_onu_cfg_data is out of bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_onu_cfg_data_bounds_check(const bcmolt_xgpon_onu_cfg_data *this, bcmolt_presence_mask fields_present, bcmolt_xgpon_onu_cfg_id *failed_prop);
+
+/** Initializes a bcmolt_xgpon_onu_stat_data struct.  This sets all fields to 
+ * default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_xgpon_onu_stat_data_set_default(bcmolt_xgpon_onu_stat_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_xgpon_onu_stat_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_onu_stat_data_pack(const bcmolt_xgpon_onu_stat_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_xgpon_onu_stat_data would occupy on 
+ * the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_xgpon_onu_stat_data_get_packed_length(const bcmolt_xgpon_onu_stat_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_xgpon_onu_stat_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_onu_stat_data_unpack(bcmolt_xgpon_onu_stat_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_xgpon_onu_stat_data struct and collects memory 
+ * requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_xgpon_onu_stat_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_xgpon_onu_stat_data is out of bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_onu_stat_data_bounds_check(const bcmolt_xgpon_onu_stat_data *this, bcmolt_presence_mask fields_present, bcmolt_xgpon_onu_stat_id *failed_prop);
+
+/** Initializes a bcmolt_xgpon_onu_stat_cfg_data struct.  This sets all fields 
+ * to default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_xgpon_onu_stat_cfg_data_set_default(bcmolt_xgpon_onu_stat_cfg_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_xgpon_onu_stat_cfg_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_onu_stat_cfg_data_pack(const bcmolt_xgpon_onu_stat_cfg_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_xgpon_onu_stat_cfg_data would occupy 
+ * on the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_xgpon_onu_stat_cfg_data_get_packed_length(const bcmolt_xgpon_onu_stat_cfg_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_xgpon_onu_stat_cfg_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_onu_stat_cfg_data_unpack(bcmolt_xgpon_onu_stat_cfg_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_xgpon_onu_stat_cfg_data struct and collects 
+ * memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_xgpon_onu_stat_cfg_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_xgpon_onu_stat_cfg_data is out of bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_onu_stat_cfg_data_bounds_check(const bcmolt_xgpon_onu_stat_cfg_data *this, bcmolt_presence_mask fields_present, bcmolt_xgpon_onu_stat_cfg_id *failed_prop);
+
+/** Initializes a bcmolt_xgpon_onu_dfi_data struct.  This sets all fields to 
+ * default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_xgpon_onu_dfi_data_set_default(bcmolt_xgpon_onu_dfi_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_xgpon_onu_dfi_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_onu_dfi_data_pack(const bcmolt_xgpon_onu_dfi_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_xgpon_onu_dfi_data would occupy on 
+ * the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_xgpon_onu_dfi_data_get_packed_length(const bcmolt_xgpon_onu_dfi_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_xgpon_onu_dfi_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_onu_dfi_data_unpack(bcmolt_xgpon_onu_dfi_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_xgpon_onu_dfi_data struct and collects memory 
+ * requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_xgpon_onu_dfi_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_xgpon_onu_dfi_data is out of bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_onu_dfi_data_bounds_check(const bcmolt_xgpon_onu_dfi_data *this, bcmolt_presence_mask fields_present, bcmolt_xgpon_onu_dfi_id *failed_prop);
+
+/** Initializes a bcmolt_xgpon_onu_dgi_data struct.  This sets all fields to 
+ * default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_xgpon_onu_dgi_data_set_default(bcmolt_xgpon_onu_dgi_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_xgpon_onu_dgi_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_onu_dgi_data_pack(const bcmolt_xgpon_onu_dgi_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_xgpon_onu_dgi_data would occupy on 
+ * the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_xgpon_onu_dgi_data_get_packed_length(const bcmolt_xgpon_onu_dgi_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_xgpon_onu_dgi_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_onu_dgi_data_unpack(bcmolt_xgpon_onu_dgi_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_xgpon_onu_dgi_data struct and collects memory 
+ * requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_xgpon_onu_dgi_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_xgpon_onu_dgi_data is out of bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_onu_dgi_data_bounds_check(const bcmolt_xgpon_onu_dgi_data *this, bcmolt_presence_mask fields_present, bcmolt_xgpon_onu_dgi_id *failed_prop);
+
+/** Initializes a bcmolt_xgpon_onu_dowi_data struct.  This sets all fields to 
+ * default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_xgpon_onu_dowi_data_set_default(bcmolt_xgpon_onu_dowi_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_xgpon_onu_dowi_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_onu_dowi_data_pack(const bcmolt_xgpon_onu_dowi_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_xgpon_onu_dowi_data would occupy on 
+ * the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_xgpon_onu_dowi_data_get_packed_length(const bcmolt_xgpon_onu_dowi_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_xgpon_onu_dowi_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_onu_dowi_data_unpack(bcmolt_xgpon_onu_dowi_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_xgpon_onu_dowi_data struct and collects memory 
+ * requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_xgpon_onu_dowi_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_xgpon_onu_dowi_data is out of bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_onu_dowi_data_bounds_check(const bcmolt_xgpon_onu_dowi_data *this, bcmolt_presence_mask fields_present, bcmolt_xgpon_onu_dowi_id *failed_prop);
+
+/** Initializes a bcmolt_xgpon_onu_invalid_dbru_report_data struct.  This sets 
+ * all fields to default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_xgpon_onu_invalid_dbru_report_data_set_default(bcmolt_xgpon_onu_invalid_dbru_report_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_xgpon_onu_invalid_dbru_report_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_onu_invalid_dbru_report_data_pack(const bcmolt_xgpon_onu_invalid_dbru_report_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_xgpon_onu_invalid_dbru_report_data 
+ * would occupy on the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_xgpon_onu_invalid_dbru_report_data_get_packed_length(const bcmolt_xgpon_onu_invalid_dbru_report_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_xgpon_onu_invalid_dbru_report_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_onu_invalid_dbru_report_data_unpack(bcmolt_xgpon_onu_invalid_dbru_report_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_xgpon_onu_invalid_dbru_report_data struct and 
+ * collects memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_xgpon_onu_invalid_dbru_report_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_xgpon_onu_invalid_dbru_report_data is out 
+ * of bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_onu_invalid_dbru_report_data_bounds_check(const bcmolt_xgpon_onu_invalid_dbru_report_data *this, bcmolt_presence_mask fields_present, bcmolt_xgpon_onu_invalid_dbru_report_id *failed_prop);
+
+/** Initializes a bcmolt_xgpon_onu_key_exchange_completed_data struct.  This 
+ * sets all fields to default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_xgpon_onu_key_exchange_completed_data_set_default(bcmolt_xgpon_onu_key_exchange_completed_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_xgpon_onu_key_exchange_completed_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_onu_key_exchange_completed_data_pack(const bcmolt_xgpon_onu_key_exchange_completed_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_xgpon_onu_key_exchange_completed_data 
+ * would occupy on the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_xgpon_onu_key_exchange_completed_data_get_packed_length(const bcmolt_xgpon_onu_key_exchange_completed_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_xgpon_onu_key_exchange_completed_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_onu_key_exchange_completed_data_unpack(bcmolt_xgpon_onu_key_exchange_completed_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_xgpon_onu_key_exchange_completed_data struct and 
+ * collects memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_xgpon_onu_key_exchange_completed_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_xgpon_onu_key_exchange_completed_data is 
+ * out of bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_onu_key_exchange_completed_data_bounds_check(const bcmolt_xgpon_onu_key_exchange_completed_data *this, bcmolt_presence_mask fields_present, bcmolt_xgpon_onu_key_exchange_completed_id *failed_prop);
+
+/** Initializes a bcmolt_xgpon_onu_key_exchange_key_mismatch_data struct.  This 
+ * sets all fields to default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_xgpon_onu_key_exchange_key_mismatch_data_set_default(bcmolt_xgpon_onu_key_exchange_key_mismatch_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_xgpon_onu_key_exchange_key_mismatch_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_onu_key_exchange_key_mismatch_data_pack(const bcmolt_xgpon_onu_key_exchange_key_mismatch_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a 
+ * bcmolt_xgpon_onu_key_exchange_key_mismatch_data would occupy on the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_xgpon_onu_key_exchange_key_mismatch_data_get_packed_length(const bcmolt_xgpon_onu_key_exchange_key_mismatch_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_xgpon_onu_key_exchange_key_mismatch_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_onu_key_exchange_key_mismatch_data_unpack(bcmolt_xgpon_onu_key_exchange_key_mismatch_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_xgpon_onu_key_exchange_key_mismatch_data struct 
+ * and collects memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_xgpon_onu_key_exchange_key_mismatch_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_xgpon_onu_key_exchange_key_mismatch_data 
+ * is out of bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_onu_key_exchange_key_mismatch_data_bounds_check(const bcmolt_xgpon_onu_key_exchange_key_mismatch_data *this, bcmolt_presence_mask fields_present, bcmolt_xgpon_onu_key_exchange_key_mismatch_id *failed_prop);
+
+/** Initializes a bcmolt_xgpon_onu_looci_data struct.  This sets all fields to 
+ * default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_xgpon_onu_looci_data_set_default(bcmolt_xgpon_onu_looci_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_xgpon_onu_looci_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_onu_looci_data_pack(const bcmolt_xgpon_onu_looci_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_xgpon_onu_looci_data would occupy on 
+ * the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_xgpon_onu_looci_data_get_packed_length(const bcmolt_xgpon_onu_looci_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_xgpon_onu_looci_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_onu_looci_data_unpack(bcmolt_xgpon_onu_looci_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_xgpon_onu_looci_data struct and collects memory 
+ * requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_xgpon_onu_looci_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_xgpon_onu_looci_data is out of bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_onu_looci_data_bounds_check(const bcmolt_xgpon_onu_looci_data *this, bcmolt_presence_mask fields_present, bcmolt_xgpon_onu_looci_id *failed_prop);
+
+/** Initializes a bcmolt_xgpon_onu_onu_activation_completed_data struct.  This 
+ * sets all fields to default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_xgpon_onu_onu_activation_completed_data_set_default(bcmolt_xgpon_onu_onu_activation_completed_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_xgpon_onu_onu_activation_completed_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_onu_onu_activation_completed_data_pack(const bcmolt_xgpon_onu_onu_activation_completed_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a 
+ * bcmolt_xgpon_onu_onu_activation_completed_data would occupy on the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_xgpon_onu_onu_activation_completed_data_get_packed_length(const bcmolt_xgpon_onu_onu_activation_completed_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_xgpon_onu_onu_activation_completed_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_onu_onu_activation_completed_data_unpack(bcmolt_xgpon_onu_onu_activation_completed_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_xgpon_onu_onu_activation_completed_data struct 
+ * and collects memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_xgpon_onu_onu_activation_completed_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_xgpon_onu_onu_activation_completed_data is 
+ * out of bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_onu_onu_activation_completed_data_bounds_check(const bcmolt_xgpon_onu_onu_activation_completed_data *this, bcmolt_presence_mask fields_present, bcmolt_xgpon_onu_onu_activation_completed_id *failed_prop);
+
+/** Initializes a bcmolt_xgpon_onu_onu_alarm_data struct.  This sets all fields 
+ * to default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_xgpon_onu_onu_alarm_data_set_default(bcmolt_xgpon_onu_onu_alarm_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_xgpon_onu_onu_alarm_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_onu_onu_alarm_data_pack(const bcmolt_xgpon_onu_onu_alarm_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_xgpon_onu_onu_alarm_data would occupy 
+ * on the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_xgpon_onu_onu_alarm_data_get_packed_length(const bcmolt_xgpon_onu_onu_alarm_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_xgpon_onu_onu_alarm_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_onu_onu_alarm_data_unpack(bcmolt_xgpon_onu_onu_alarm_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_xgpon_onu_onu_alarm_data struct and collects 
+ * memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_xgpon_onu_onu_alarm_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_xgpon_onu_onu_alarm_data is out of bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_onu_onu_alarm_data_bounds_check(const bcmolt_xgpon_onu_onu_alarm_data *this, bcmolt_presence_mask fields_present, bcmolt_xgpon_onu_onu_alarm_id *failed_prop);
+
+/** Initializes a bcmolt_xgpon_onu_onu_deactivation_completed_data struct.  This 
+ * sets all fields to default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_xgpon_onu_onu_deactivation_completed_data_set_default(bcmolt_xgpon_onu_onu_deactivation_completed_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_xgpon_onu_onu_deactivation_completed_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_onu_onu_deactivation_completed_data_pack(const bcmolt_xgpon_onu_onu_deactivation_completed_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a 
+ * bcmolt_xgpon_onu_onu_deactivation_completed_data would occupy on the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_xgpon_onu_onu_deactivation_completed_data_get_packed_length(const bcmolt_xgpon_onu_onu_deactivation_completed_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_xgpon_onu_onu_deactivation_completed_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_onu_onu_deactivation_completed_data_unpack(bcmolt_xgpon_onu_onu_deactivation_completed_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_xgpon_onu_onu_deactivation_completed_data struct 
+ * and collects memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_xgpon_onu_onu_deactivation_completed_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_xgpon_onu_onu_deactivation_completed_data 
+ * is out of bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_onu_onu_deactivation_completed_data_bounds_check(const bcmolt_xgpon_onu_onu_deactivation_completed_data *this, bcmolt_presence_mask fields_present, bcmolt_xgpon_onu_onu_deactivation_completed_id *failed_prop);
+
+/** Initializes a bcmolt_xgpon_onu_onu_disable_completed_data struct.  This sets 
+ * all fields to default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_xgpon_onu_onu_disable_completed_data_set_default(bcmolt_xgpon_onu_onu_disable_completed_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_xgpon_onu_onu_disable_completed_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_onu_onu_disable_completed_data_pack(const bcmolt_xgpon_onu_onu_disable_completed_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_xgpon_onu_onu_disable_completed_data 
+ * would occupy on the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_xgpon_onu_onu_disable_completed_data_get_packed_length(const bcmolt_xgpon_onu_onu_disable_completed_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_xgpon_onu_onu_disable_completed_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_onu_onu_disable_completed_data_unpack(bcmolt_xgpon_onu_onu_disable_completed_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_xgpon_onu_onu_disable_completed_data struct and 
+ * collects memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_xgpon_onu_onu_disable_completed_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_xgpon_onu_onu_disable_completed_data is 
+ * out of bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_onu_onu_disable_completed_data_bounds_check(const bcmolt_xgpon_onu_onu_disable_completed_data *this, bcmolt_presence_mask fields_present, bcmolt_xgpon_onu_onu_disable_completed_id *failed_prop);
+
+/** Initializes a bcmolt_xgpon_onu_onu_enable_completed_data struct.  This sets 
+ * all fields to default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_xgpon_onu_onu_enable_completed_data_set_default(bcmolt_xgpon_onu_onu_enable_completed_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_xgpon_onu_onu_enable_completed_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_onu_onu_enable_completed_data_pack(const bcmolt_xgpon_onu_onu_enable_completed_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_xgpon_onu_onu_enable_completed_data 
+ * would occupy on the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_xgpon_onu_onu_enable_completed_data_get_packed_length(const bcmolt_xgpon_onu_onu_enable_completed_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_xgpon_onu_onu_enable_completed_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_onu_onu_enable_completed_data_unpack(bcmolt_xgpon_onu_onu_enable_completed_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_xgpon_onu_onu_enable_completed_data struct and 
+ * collects memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_xgpon_onu_onu_enable_completed_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_xgpon_onu_onu_enable_completed_data is out 
+ * of bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_onu_onu_enable_completed_data_bounds_check(const bcmolt_xgpon_onu_onu_enable_completed_data *this, bcmolt_presence_mask fields_present, bcmolt_xgpon_onu_onu_enable_completed_id *failed_prop);
+
+/** Initializes a bcmolt_xgpon_onu_onu_tuning_in_completed_data struct.  This 
+ * sets all fields to default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_xgpon_onu_onu_tuning_in_completed_data_set_default(bcmolt_xgpon_onu_onu_tuning_in_completed_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_xgpon_onu_onu_tuning_in_completed_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_onu_onu_tuning_in_completed_data_pack(const bcmolt_xgpon_onu_onu_tuning_in_completed_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a 
+ * bcmolt_xgpon_onu_onu_tuning_in_completed_data would occupy on the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_xgpon_onu_onu_tuning_in_completed_data_get_packed_length(const bcmolt_xgpon_onu_onu_tuning_in_completed_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_xgpon_onu_onu_tuning_in_completed_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_onu_onu_tuning_in_completed_data_unpack(bcmolt_xgpon_onu_onu_tuning_in_completed_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_xgpon_onu_onu_tuning_in_completed_data struct and 
+ * collects memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_xgpon_onu_onu_tuning_in_completed_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_xgpon_onu_onu_tuning_in_completed_data is 
+ * out of bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_onu_onu_tuning_in_completed_data_bounds_check(const bcmolt_xgpon_onu_onu_tuning_in_completed_data *this, bcmolt_presence_mask fields_present, bcmolt_xgpon_onu_onu_tuning_in_completed_id *failed_prop);
+
+/** Initializes a bcmolt_xgpon_onu_onu_tuning_out_completed_data struct.  This 
+ * sets all fields to default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_xgpon_onu_onu_tuning_out_completed_data_set_default(bcmolt_xgpon_onu_onu_tuning_out_completed_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_xgpon_onu_onu_tuning_out_completed_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_onu_onu_tuning_out_completed_data_pack(const bcmolt_xgpon_onu_onu_tuning_out_completed_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a 
+ * bcmolt_xgpon_onu_onu_tuning_out_completed_data would occupy on the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_xgpon_onu_onu_tuning_out_completed_data_get_packed_length(const bcmolt_xgpon_onu_onu_tuning_out_completed_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_xgpon_onu_onu_tuning_out_completed_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_onu_onu_tuning_out_completed_data_unpack(bcmolt_xgpon_onu_onu_tuning_out_completed_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_xgpon_onu_onu_tuning_out_completed_data struct 
+ * and collects memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_xgpon_onu_onu_tuning_out_completed_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_xgpon_onu_onu_tuning_out_completed_data is 
+ * out of bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_onu_onu_tuning_out_completed_data_bounds_check(const bcmolt_xgpon_onu_onu_tuning_out_completed_data *this, bcmolt_presence_mask fields_present, bcmolt_xgpon_onu_onu_tuning_out_completed_id *failed_prop);
+
+/** Initializes a bcmolt_xgpon_onu_possible_drift_data struct.  This sets all 
+ * fields to default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_xgpon_onu_possible_drift_data_set_default(bcmolt_xgpon_onu_possible_drift_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_xgpon_onu_possible_drift_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_onu_possible_drift_data_pack(const bcmolt_xgpon_onu_possible_drift_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_xgpon_onu_possible_drift_data would 
+ * occupy on the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_xgpon_onu_possible_drift_data_get_packed_length(const bcmolt_xgpon_onu_possible_drift_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_xgpon_onu_possible_drift_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_onu_possible_drift_data_unpack(bcmolt_xgpon_onu_possible_drift_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_xgpon_onu_possible_drift_data struct and collects 
+ * memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_xgpon_onu_possible_drift_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_xgpon_onu_possible_drift_data is out of 
+ * bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_onu_possible_drift_data_bounds_check(const bcmolt_xgpon_onu_possible_drift_data *this, bcmolt_presence_mask fields_present, bcmolt_xgpon_onu_possible_drift_id *failed_prop);
+
+/** Initializes a bcmolt_xgpon_onu_power_consumption_report_data struct.  This 
+ * sets all fields to default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_xgpon_onu_power_consumption_report_data_set_default(bcmolt_xgpon_onu_power_consumption_report_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_xgpon_onu_power_consumption_report_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_onu_power_consumption_report_data_pack(const bcmolt_xgpon_onu_power_consumption_report_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a 
+ * bcmolt_xgpon_onu_power_consumption_report_data would occupy on the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_xgpon_onu_power_consumption_report_data_get_packed_length(const bcmolt_xgpon_onu_power_consumption_report_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_xgpon_onu_power_consumption_report_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_onu_power_consumption_report_data_unpack(bcmolt_xgpon_onu_power_consumption_report_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_xgpon_onu_power_consumption_report_data struct 
+ * and collects memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_xgpon_onu_power_consumption_report_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_xgpon_onu_power_consumption_report_data is 
+ * out of bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_onu_power_consumption_report_data_bounds_check(const bcmolt_xgpon_onu_power_consumption_report_data *this, bcmolt_presence_mask fields_present, bcmolt_xgpon_onu_power_consumption_report_id *failed_prop);
+
+/** Initializes a bcmolt_xgpon_onu_power_level_report_data struct.  This sets 
+ * all fields to default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_xgpon_onu_power_level_report_data_set_default(bcmolt_xgpon_onu_power_level_report_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_xgpon_onu_power_level_report_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_onu_power_level_report_data_pack(const bcmolt_xgpon_onu_power_level_report_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_xgpon_onu_power_level_report_data 
+ * would occupy on the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_xgpon_onu_power_level_report_data_get_packed_length(const bcmolt_xgpon_onu_power_level_report_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_xgpon_onu_power_level_report_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_onu_power_level_report_data_unpack(bcmolt_xgpon_onu_power_level_report_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_xgpon_onu_power_level_report_data struct and 
+ * collects memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_xgpon_onu_power_level_report_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_xgpon_onu_power_level_report_data is out 
+ * of bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_onu_power_level_report_data_bounds_check(const bcmolt_xgpon_onu_power_level_report_data *this, bcmolt_presence_mask fields_present, bcmolt_xgpon_onu_power_level_report_id *failed_prop);
+
+/** Initializes a bcmolt_xgpon_onu_power_management_state_change_data struct.  
+ * This sets all fields to default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_xgpon_onu_power_management_state_change_data_set_default(bcmolt_xgpon_onu_power_management_state_change_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_xgpon_onu_power_management_state_change_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_onu_power_management_state_change_data_pack(const bcmolt_xgpon_onu_power_management_state_change_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a 
+ * bcmolt_xgpon_onu_power_management_state_change_data would occupy on the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_xgpon_onu_power_management_state_change_data_get_packed_length(const bcmolt_xgpon_onu_power_management_state_change_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_xgpon_onu_power_management_state_change_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_onu_power_management_state_change_data_unpack(bcmolt_xgpon_onu_power_management_state_change_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_xgpon_onu_power_management_state_change_data 
+ * struct and collects memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_xgpon_onu_power_management_state_change_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the 
+ * bcmolt_xgpon_onu_power_management_state_change_data is out of bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_onu_power_management_state_change_data_bounds_check(const bcmolt_xgpon_onu_power_management_state_change_data *this, bcmolt_presence_mask fields_present, bcmolt_xgpon_onu_power_management_state_change_id *failed_prop);
+
+/** Initializes a bcmolt_xgpon_onu_pqsi_data struct.  This sets all fields to 
+ * default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_xgpon_onu_pqsi_data_set_default(bcmolt_xgpon_onu_pqsi_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_xgpon_onu_pqsi_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_onu_pqsi_data_pack(const bcmolt_xgpon_onu_pqsi_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_xgpon_onu_pqsi_data would occupy on 
+ * the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_xgpon_onu_pqsi_data_get_packed_length(const bcmolt_xgpon_onu_pqsi_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_xgpon_onu_pqsi_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_onu_pqsi_data_unpack(bcmolt_xgpon_onu_pqsi_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_xgpon_onu_pqsi_data struct and collects memory 
+ * requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_xgpon_onu_pqsi_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_xgpon_onu_pqsi_data is out of bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_onu_pqsi_data_bounds_check(const bcmolt_xgpon_onu_pqsi_data *this, bcmolt_presence_mask fields_present, bcmolt_xgpon_onu_pqsi_id *failed_prop);
+
+/** Initializes a bcmolt_xgpon_onu_ranging_completed_data struct.  This sets all 
+ * fields to default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_xgpon_onu_ranging_completed_data_set_default(bcmolt_xgpon_onu_ranging_completed_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_xgpon_onu_ranging_completed_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_onu_ranging_completed_data_pack(const bcmolt_xgpon_onu_ranging_completed_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_xgpon_onu_ranging_completed_data 
+ * would occupy on the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_xgpon_onu_ranging_completed_data_get_packed_length(const bcmolt_xgpon_onu_ranging_completed_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_xgpon_onu_ranging_completed_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_onu_ranging_completed_data_unpack(bcmolt_xgpon_onu_ranging_completed_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_xgpon_onu_ranging_completed_data struct and 
+ * collects memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_xgpon_onu_ranging_completed_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_xgpon_onu_ranging_completed_data is out of 
+ * bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_onu_ranging_completed_data_bounds_check(const bcmolt_xgpon_onu_ranging_completed_data *this, bcmolt_presence_mask fields_present, bcmolt_xgpon_onu_ranging_completed_id *failed_prop);
+
+/** Initializes a bcmolt_xgpon_onu_registration_id_data struct.  This sets all 
+ * fields to default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_xgpon_onu_registration_id_data_set_default(bcmolt_xgpon_onu_registration_id_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_xgpon_onu_registration_id_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_onu_registration_id_data_pack(const bcmolt_xgpon_onu_registration_id_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_xgpon_onu_registration_id_data would 
+ * occupy on the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_xgpon_onu_registration_id_data_get_packed_length(const bcmolt_xgpon_onu_registration_id_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_xgpon_onu_registration_id_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_onu_registration_id_data_unpack(bcmolt_xgpon_onu_registration_id_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_xgpon_onu_registration_id_data struct and 
+ * collects memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_xgpon_onu_registration_id_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_xgpon_onu_registration_id_data is out of 
+ * bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_onu_registration_id_data_bounds_check(const bcmolt_xgpon_onu_registration_id_data *this, bcmolt_presence_mask fields_present, bcmolt_xgpon_onu_registration_id_id *failed_prop);
+
+/** Initializes a bcmolt_xgpon_onu_rssi_measurement_completed_data struct.  This 
+ * sets all fields to default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_xgpon_onu_rssi_measurement_completed_data_set_default(bcmolt_xgpon_onu_rssi_measurement_completed_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_xgpon_onu_rssi_measurement_completed_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_onu_rssi_measurement_completed_data_pack(const bcmolt_xgpon_onu_rssi_measurement_completed_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a 
+ * bcmolt_xgpon_onu_rssi_measurement_completed_data would occupy on the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_xgpon_onu_rssi_measurement_completed_data_get_packed_length(const bcmolt_xgpon_onu_rssi_measurement_completed_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_xgpon_onu_rssi_measurement_completed_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_onu_rssi_measurement_completed_data_unpack(bcmolt_xgpon_onu_rssi_measurement_completed_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_xgpon_onu_rssi_measurement_completed_data struct 
+ * and collects memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_xgpon_onu_rssi_measurement_completed_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_xgpon_onu_rssi_measurement_completed_data 
+ * is out of bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_onu_rssi_measurement_completed_data_bounds_check(const bcmolt_xgpon_onu_rssi_measurement_completed_data *this, bcmolt_presence_mask fields_present, bcmolt_xgpon_onu_rssi_measurement_completed_id *failed_prop);
+
+/** Initializes a bcmolt_xgpon_onu_sdi_data struct.  This sets all fields to 
+ * default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_xgpon_onu_sdi_data_set_default(bcmolt_xgpon_onu_sdi_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_xgpon_onu_sdi_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_onu_sdi_data_pack(const bcmolt_xgpon_onu_sdi_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_xgpon_onu_sdi_data would occupy on 
+ * the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_xgpon_onu_sdi_data_get_packed_length(const bcmolt_xgpon_onu_sdi_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_xgpon_onu_sdi_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_onu_sdi_data_unpack(bcmolt_xgpon_onu_sdi_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_xgpon_onu_sdi_data struct and collects memory 
+ * requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_xgpon_onu_sdi_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_xgpon_onu_sdi_data is out of bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_onu_sdi_data_bounds_check(const bcmolt_xgpon_onu_sdi_data *this, bcmolt_presence_mask fields_present, bcmolt_xgpon_onu_sdi_id *failed_prop);
+
+/** Initializes a bcmolt_xgpon_onu_secure_mutual_authentication_failure_data 
+ * struct.  This sets all fields to default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_xgpon_onu_secure_mutual_authentication_failure_data_set_default(bcmolt_xgpon_onu_secure_mutual_authentication_failure_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_xgpon_onu_secure_mutual_authentication_failure_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_onu_secure_mutual_authentication_failure_data_pack(const bcmolt_xgpon_onu_secure_mutual_authentication_failure_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a 
+ * bcmolt_xgpon_onu_secure_mutual_authentication_failure_data would occupy on 
+ * the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_xgpon_onu_secure_mutual_authentication_failure_data_get_packed_length(const bcmolt_xgpon_onu_secure_mutual_authentication_failure_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_xgpon_onu_secure_mutual_authentication_failure_data from 
+ * bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_onu_secure_mutual_authentication_failure_data_unpack(bcmolt_xgpon_onu_secure_mutual_authentication_failure_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed 
+ * bcmolt_xgpon_onu_secure_mutual_authentication_failure_data struct and 
+ * collects memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_xgpon_onu_secure_mutual_authentication_failure_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the 
+ * bcmolt_xgpon_onu_secure_mutual_authentication_failure_data is out of bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_onu_secure_mutual_authentication_failure_data_bounds_check(const bcmolt_xgpon_onu_secure_mutual_authentication_failure_data *this, bcmolt_presence_mask fields_present, bcmolt_xgpon_onu_secure_mutual_authentication_failure_id *failed_prop);
+
+/** Initializes a bcmolt_xgpon_onu_sfi_data struct.  This sets all fields to 
+ * default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_xgpon_onu_sfi_data_set_default(bcmolt_xgpon_onu_sfi_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_xgpon_onu_sfi_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_onu_sfi_data_pack(const bcmolt_xgpon_onu_sfi_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_xgpon_onu_sfi_data would occupy on 
+ * the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_xgpon_onu_sfi_data_get_packed_length(const bcmolt_xgpon_onu_sfi_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_xgpon_onu_sfi_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_onu_sfi_data_unpack(bcmolt_xgpon_onu_sfi_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_xgpon_onu_sfi_data struct and collects memory 
+ * requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_xgpon_onu_sfi_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_xgpon_onu_sfi_data is out of bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_onu_sfi_data_bounds_check(const bcmolt_xgpon_onu_sfi_data *this, bcmolt_presence_mask fields_present, bcmolt_xgpon_onu_sfi_id *failed_prop);
+
+/** Initializes a bcmolt_xgpon_onu_stat_alarm_cleared_data struct.  This sets 
+ * all fields to default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_xgpon_onu_stat_alarm_cleared_data_set_default(bcmolt_xgpon_onu_stat_alarm_cleared_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_xgpon_onu_stat_alarm_cleared_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_onu_stat_alarm_cleared_data_pack(const bcmolt_xgpon_onu_stat_alarm_cleared_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_xgpon_onu_stat_alarm_cleared_data 
+ * would occupy on the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_xgpon_onu_stat_alarm_cleared_data_get_packed_length(const bcmolt_xgpon_onu_stat_alarm_cleared_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_xgpon_onu_stat_alarm_cleared_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_onu_stat_alarm_cleared_data_unpack(bcmolt_xgpon_onu_stat_alarm_cleared_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_xgpon_onu_stat_alarm_cleared_data struct and 
+ * collects memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_xgpon_onu_stat_alarm_cleared_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_xgpon_onu_stat_alarm_cleared_data is out 
+ * of bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_onu_stat_alarm_cleared_data_bounds_check(const bcmolt_xgpon_onu_stat_alarm_cleared_data *this, bcmolt_presence_mask fields_present, bcmolt_xgpon_onu_stat_alarm_cleared_id *failed_prop);
+
+/** Initializes a bcmolt_xgpon_onu_stat_alarm_raised_data struct.  This sets all 
+ * fields to default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_xgpon_onu_stat_alarm_raised_data_set_default(bcmolt_xgpon_onu_stat_alarm_raised_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_xgpon_onu_stat_alarm_raised_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_onu_stat_alarm_raised_data_pack(const bcmolt_xgpon_onu_stat_alarm_raised_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_xgpon_onu_stat_alarm_raised_data 
+ * would occupy on the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_xgpon_onu_stat_alarm_raised_data_get_packed_length(const bcmolt_xgpon_onu_stat_alarm_raised_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_xgpon_onu_stat_alarm_raised_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_onu_stat_alarm_raised_data_unpack(bcmolt_xgpon_onu_stat_alarm_raised_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_xgpon_onu_stat_alarm_raised_data struct and 
+ * collects memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_xgpon_onu_stat_alarm_raised_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_xgpon_onu_stat_alarm_raised_data is out of 
+ * bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_onu_stat_alarm_raised_data_bounds_check(const bcmolt_xgpon_onu_stat_alarm_raised_data *this, bcmolt_presence_mask fields_present, bcmolt_xgpon_onu_stat_alarm_raised_id *failed_prop);
+
+/** Initializes a bcmolt_xgpon_onu_sufi_data struct.  This sets all fields to 
+ * default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_xgpon_onu_sufi_data_set_default(bcmolt_xgpon_onu_sufi_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_xgpon_onu_sufi_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_onu_sufi_data_pack(const bcmolt_xgpon_onu_sufi_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_xgpon_onu_sufi_data would occupy on 
+ * the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_xgpon_onu_sufi_data_get_packed_length(const bcmolt_xgpon_onu_sufi_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_xgpon_onu_sufi_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_onu_sufi_data_unpack(bcmolt_xgpon_onu_sufi_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_xgpon_onu_sufi_data struct and collects memory 
+ * requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_xgpon_onu_sufi_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_xgpon_onu_sufi_data is out of bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_onu_sufi_data_bounds_check(const bcmolt_xgpon_onu_sufi_data *this, bcmolt_presence_mask fields_present, bcmolt_xgpon_onu_sufi_id *failed_prop);
+
+/** Initializes a bcmolt_xgpon_onu_tiwi_data struct.  This sets all fields to 
+ * default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_xgpon_onu_tiwi_data_set_default(bcmolt_xgpon_onu_tiwi_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_xgpon_onu_tiwi_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_onu_tiwi_data_pack(const bcmolt_xgpon_onu_tiwi_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_xgpon_onu_tiwi_data would occupy on 
+ * the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_xgpon_onu_tiwi_data_get_packed_length(const bcmolt_xgpon_onu_tiwi_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_xgpon_onu_tiwi_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_onu_tiwi_data_unpack(bcmolt_xgpon_onu_tiwi_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_xgpon_onu_tiwi_data struct and collects memory 
+ * requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_xgpon_onu_tiwi_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_xgpon_onu_tiwi_data is out of bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_onu_tiwi_data_bounds_check(const bcmolt_xgpon_onu_tiwi_data *this, bcmolt_presence_mask fields_present, bcmolt_xgpon_onu_tiwi_id *failed_prop);
+
+/** Initializes a bcmolt_xgpon_onu_tuning_response_data struct.  This sets all 
+ * fields to default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_xgpon_onu_tuning_response_data_set_default(bcmolt_xgpon_onu_tuning_response_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_xgpon_onu_tuning_response_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_onu_tuning_response_data_pack(const bcmolt_xgpon_onu_tuning_response_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_xgpon_onu_tuning_response_data would 
+ * occupy on the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_xgpon_onu_tuning_response_data_get_packed_length(const bcmolt_xgpon_onu_tuning_response_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_xgpon_onu_tuning_response_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_onu_tuning_response_data_unpack(bcmolt_xgpon_onu_tuning_response_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_xgpon_onu_tuning_response_data struct and 
+ * collects memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_xgpon_onu_tuning_response_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_xgpon_onu_tuning_response_data is out of 
+ * bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_onu_tuning_response_data_bounds_check(const bcmolt_xgpon_onu_tuning_response_data *this, bcmolt_presence_mask fields_present, bcmolt_xgpon_onu_tuning_response_id *failed_prop);
+
+/** Initializes a bcmolt_xgpon_onu_auto_cfg_data struct.  This sets all fields 
+ * to default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_xgpon_onu_auto_cfg_data_set_default(bcmolt_xgpon_onu_auto_cfg_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_xgpon_onu_auto_cfg_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_onu_auto_cfg_data_pack(const bcmolt_xgpon_onu_auto_cfg_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_xgpon_onu_auto_cfg_data would occupy 
+ * on the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_xgpon_onu_auto_cfg_data_get_packed_length(const bcmolt_xgpon_onu_auto_cfg_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_xgpon_onu_auto_cfg_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_onu_auto_cfg_data_unpack(bcmolt_xgpon_onu_auto_cfg_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_xgpon_onu_auto_cfg_data struct and collects 
+ * memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_xgpon_onu_auto_cfg_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_xgpon_onu_auto_cfg_data is out of bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_onu_auto_cfg_data_bounds_check(const bcmolt_xgpon_onu_auto_cfg_data *this, bcmolt_presence_mask fields_present, bcmolt_xgpon_onu_auto_cfg_id *failed_prop);
+
+/** Initializes a bcmolt_xgpon_onu_adjust_tx_wavelength_data struct.  This sets 
+ * all fields to default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_xgpon_onu_adjust_tx_wavelength_data_set_default(bcmolt_xgpon_onu_adjust_tx_wavelength_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_xgpon_onu_adjust_tx_wavelength_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_onu_adjust_tx_wavelength_data_pack(const bcmolt_xgpon_onu_adjust_tx_wavelength_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_xgpon_onu_adjust_tx_wavelength_data 
+ * would occupy on the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_xgpon_onu_adjust_tx_wavelength_data_get_packed_length(const bcmolt_xgpon_onu_adjust_tx_wavelength_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_xgpon_onu_adjust_tx_wavelength_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_onu_adjust_tx_wavelength_data_unpack(bcmolt_xgpon_onu_adjust_tx_wavelength_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_xgpon_onu_adjust_tx_wavelength_data struct and 
+ * collects memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_xgpon_onu_adjust_tx_wavelength_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_xgpon_onu_adjust_tx_wavelength_data is out 
+ * of bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_onu_adjust_tx_wavelength_data_bounds_check(const bcmolt_xgpon_onu_adjust_tx_wavelength_data *this, bcmolt_presence_mask fields_present, bcmolt_xgpon_onu_adjust_tx_wavelength_id *failed_prop);
+
+/** Initializes a bcmolt_xgpon_onu_change_power_levelling_data struct.  This 
+ * sets all fields to default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_xgpon_onu_change_power_levelling_data_set_default(bcmolt_xgpon_onu_change_power_levelling_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_xgpon_onu_change_power_levelling_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_onu_change_power_levelling_data_pack(const bcmolt_xgpon_onu_change_power_levelling_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_xgpon_onu_change_power_levelling_data 
+ * would occupy on the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_xgpon_onu_change_power_levelling_data_get_packed_length(const bcmolt_xgpon_onu_change_power_levelling_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_xgpon_onu_change_power_levelling_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_onu_change_power_levelling_data_unpack(bcmolt_xgpon_onu_change_power_levelling_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_xgpon_onu_change_power_levelling_data struct and 
+ * collects memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_xgpon_onu_change_power_levelling_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_xgpon_onu_change_power_levelling_data is 
+ * out of bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_onu_change_power_levelling_data_bounds_check(const bcmolt_xgpon_onu_change_power_levelling_data *this, bcmolt_presence_mask fields_present, bcmolt_xgpon_onu_change_power_levelling_id *failed_prop);
+
+/** Initializes a bcmolt_xgpon_onu_onu_tuning_out_data struct.  This sets all 
+ * fields to default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_xgpon_onu_onu_tuning_out_data_set_default(bcmolt_xgpon_onu_onu_tuning_out_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_xgpon_onu_onu_tuning_out_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_onu_onu_tuning_out_data_pack(const bcmolt_xgpon_onu_onu_tuning_out_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_xgpon_onu_onu_tuning_out_data would 
+ * occupy on the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_xgpon_onu_onu_tuning_out_data_get_packed_length(const bcmolt_xgpon_onu_onu_tuning_out_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_xgpon_onu_onu_tuning_out_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_onu_onu_tuning_out_data_unpack(bcmolt_xgpon_onu_onu_tuning_out_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_xgpon_onu_onu_tuning_out_data struct and collects 
+ * memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_xgpon_onu_onu_tuning_out_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_xgpon_onu_onu_tuning_out_data is out of 
+ * bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_onu_onu_tuning_out_data_bounds_check(const bcmolt_xgpon_onu_onu_tuning_out_data *this, bcmolt_presence_mask fields_present, bcmolt_xgpon_onu_onu_tuning_out_id *failed_prop);
+
+/** Initializes a bcmolt_xgpon_onu_request_registration_data struct.  This sets 
+ * all fields to default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_xgpon_onu_request_registration_data_set_default(bcmolt_xgpon_onu_request_registration_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_xgpon_onu_request_registration_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_onu_request_registration_data_pack(const bcmolt_xgpon_onu_request_registration_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_xgpon_onu_request_registration_data 
+ * would occupy on the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_xgpon_onu_request_registration_data_get_packed_length(const bcmolt_xgpon_onu_request_registration_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_xgpon_onu_request_registration_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_onu_request_registration_data_unpack(bcmolt_xgpon_onu_request_registration_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_xgpon_onu_request_registration_data struct and 
+ * collects memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_xgpon_onu_request_registration_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_xgpon_onu_request_registration_data is out 
+ * of bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_onu_request_registration_data_bounds_check(const bcmolt_xgpon_onu_request_registration_data *this, bcmolt_presence_mask fields_present, bcmolt_xgpon_onu_request_registration_id *failed_prop);
+
+/** Initializes a bcmolt_xgpon_onu_secure_mutual_authentication_data struct.  
+ * This sets all fields to default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_xgpon_onu_secure_mutual_authentication_data_set_default(bcmolt_xgpon_onu_secure_mutual_authentication_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_xgpon_onu_secure_mutual_authentication_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_onu_secure_mutual_authentication_data_pack(const bcmolt_xgpon_onu_secure_mutual_authentication_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a 
+ * bcmolt_xgpon_onu_secure_mutual_authentication_data would occupy on the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_xgpon_onu_secure_mutual_authentication_data_get_packed_length(const bcmolt_xgpon_onu_secure_mutual_authentication_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_xgpon_onu_secure_mutual_authentication_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_onu_secure_mutual_authentication_data_unpack(bcmolt_xgpon_onu_secure_mutual_authentication_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_xgpon_onu_secure_mutual_authentication_data 
+ * struct and collects memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_xgpon_onu_secure_mutual_authentication_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the 
+ * bcmolt_xgpon_onu_secure_mutual_authentication_data is out of bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_onu_secure_mutual_authentication_data_bounds_check(const bcmolt_xgpon_onu_secure_mutual_authentication_data *this, bcmolt_presence_mask fields_present, bcmolt_xgpon_onu_secure_mutual_authentication_id *failed_prop);
+
+/** Initializes a bcmolt_xgpon_onu_set_onu_state_data struct.  This sets all 
+ * fields to default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_xgpon_onu_set_onu_state_data_set_default(bcmolt_xgpon_onu_set_onu_state_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_xgpon_onu_set_onu_state_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_onu_set_onu_state_data_pack(const bcmolt_xgpon_onu_set_onu_state_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_xgpon_onu_set_onu_state_data would 
+ * occupy on the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_xgpon_onu_set_onu_state_data_get_packed_length(const bcmolt_xgpon_onu_set_onu_state_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_xgpon_onu_set_onu_state_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_onu_set_onu_state_data_unpack(bcmolt_xgpon_onu_set_onu_state_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_xgpon_onu_set_onu_state_data struct and collects 
+ * memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_xgpon_onu_set_onu_state_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_xgpon_onu_set_onu_state_data is out of 
+ * bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_onu_set_onu_state_data_bounds_check(const bcmolt_xgpon_onu_set_onu_state_data *this, bcmolt_presence_mask fields_present, bcmolt_xgpon_onu_set_onu_state_id *failed_prop);
+
+/** Initializes a bcmolt_xgpon_onu_cpu_packets_data struct.  This sets all 
+ * fields to default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_xgpon_onu_cpu_packets_data_set_default(bcmolt_xgpon_onu_cpu_packets_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_xgpon_onu_cpu_packets_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_onu_cpu_packets_data_pack(const bcmolt_xgpon_onu_cpu_packets_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_xgpon_onu_cpu_packets_data would 
+ * occupy on the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_xgpon_onu_cpu_packets_data_get_packed_length(const bcmolt_xgpon_onu_cpu_packets_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_xgpon_onu_cpu_packets_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_onu_cpu_packets_data_unpack(bcmolt_xgpon_onu_cpu_packets_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_xgpon_onu_cpu_packets_data struct and collects 
+ * memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_xgpon_onu_cpu_packets_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_xgpon_onu_cpu_packets_data is out of 
+ * bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_onu_cpu_packets_data_bounds_check(const bcmolt_xgpon_onu_cpu_packets_data *this, bcmolt_presence_mask fields_present, bcmolt_xgpon_onu_cpu_packets_id *failed_prop);
+
+/** Initializes a bcmolt_xgpon_onu_ploam_packet_data struct.  This sets all 
+ * fields to default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_xgpon_onu_ploam_packet_data_set_default(bcmolt_xgpon_onu_ploam_packet_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_xgpon_onu_ploam_packet_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_onu_ploam_packet_data_pack(const bcmolt_xgpon_onu_ploam_packet_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_xgpon_onu_ploam_packet_data would 
+ * occupy on the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_xgpon_onu_ploam_packet_data_get_packed_length(const bcmolt_xgpon_onu_ploam_packet_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_xgpon_onu_ploam_packet_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_onu_ploam_packet_data_unpack(bcmolt_xgpon_onu_ploam_packet_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_xgpon_onu_ploam_packet_data struct and collects 
+ * memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_xgpon_onu_ploam_packet_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_xgpon_onu_ploam_packet_data is out of 
+ * bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_onu_ploam_packet_data_bounds_check(const bcmolt_xgpon_onu_ploam_packet_data *this, bcmolt_presence_mask fields_present, bcmolt_xgpon_onu_ploam_packet_id *failed_prop);
+
+/** Initializes a bcmolt_xgpon_onu_cpu_packet_data struct.  This sets all fields 
+ * to default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_xgpon_onu_cpu_packet_data_set_default(bcmolt_xgpon_onu_cpu_packet_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_xgpon_onu_cpu_packet_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_onu_cpu_packet_data_pack(const bcmolt_xgpon_onu_cpu_packet_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_xgpon_onu_cpu_packet_data would 
+ * occupy on the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_xgpon_onu_cpu_packet_data_get_packed_length(const bcmolt_xgpon_onu_cpu_packet_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_xgpon_onu_cpu_packet_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_onu_cpu_packet_data_unpack(bcmolt_xgpon_onu_cpu_packet_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_xgpon_onu_cpu_packet_data struct and collects 
+ * memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_xgpon_onu_cpu_packet_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_xgpon_onu_cpu_packet_data is out of bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_onu_cpu_packet_data_bounds_check(const bcmolt_xgpon_onu_cpu_packet_data *this, bcmolt_presence_mask fields_present, bcmolt_xgpon_onu_cpu_packet_id *failed_prop);
+
+/** Initializes a bcmolt_xgpon_onu_omci_packet_data struct.  This sets all 
+ * fields to default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_xgpon_onu_omci_packet_data_set_default(bcmolt_xgpon_onu_omci_packet_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_xgpon_onu_omci_packet_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_onu_omci_packet_data_pack(const bcmolt_xgpon_onu_omci_packet_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_xgpon_onu_omci_packet_data would 
+ * occupy on the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_xgpon_onu_omci_packet_data_get_packed_length(const bcmolt_xgpon_onu_omci_packet_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_xgpon_onu_omci_packet_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_onu_omci_packet_data_unpack(bcmolt_xgpon_onu_omci_packet_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_xgpon_onu_omci_packet_data struct and collects 
+ * memory requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_xgpon_onu_omci_packet_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_xgpon_onu_omci_packet_data is out of 
+ * bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_onu_omci_packet_data_bounds_check(const bcmolt_xgpon_onu_omci_packet_data *this, bcmolt_presence_mask fields_present, bcmolt_xgpon_onu_omci_packet_id *failed_prop);
+
+/** Initializes a bcmolt_xgpon_trx_key struct.  This sets all fields to default 
+ * values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_xgpon_trx_key_set_default(bcmolt_xgpon_trx_key *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_xgpon_trx_key to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_trx_key_pack(const bcmolt_xgpon_trx_key *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_xgpon_trx_key would occupy on the 
+ * wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_xgpon_trx_key_get_packed_length(const bcmolt_xgpon_trx_key *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_xgpon_trx_key from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_trx_key_unpack(bcmolt_xgpon_trx_key *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_xgpon_trx_key struct and collects memory 
+ * requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_xgpon_trx_key_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_xgpon_trx_key is out of bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_trx_key_bounds_check(const bcmolt_xgpon_trx_key *this, bcmolt_presence_mask fields_present, bcmolt_xgpon_trx_key_id *failed_prop);
+
+/** Initializes a bcmolt_xgpon_trx_cfg_data struct.  This sets all fields to 
+ * default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_xgpon_trx_cfg_data_set_default(bcmolt_xgpon_trx_cfg_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_xgpon_trx_cfg_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_trx_cfg_data_pack(const bcmolt_xgpon_trx_cfg_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_xgpon_trx_cfg_data would occupy on 
+ * the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_xgpon_trx_cfg_data_get_packed_length(const bcmolt_xgpon_trx_cfg_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_xgpon_trx_cfg_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_trx_cfg_data_unpack(bcmolt_xgpon_trx_cfg_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_xgpon_trx_cfg_data struct and collects memory 
+ * requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_xgpon_trx_cfg_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_xgpon_trx_cfg_data is out of bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xgpon_trx_cfg_data_bounds_check(const bcmolt_xgpon_trx_cfg_data *this, bcmolt_presence_mask fields_present, bcmolt_xgpon_trx_cfg_id *failed_prop);
+
+/** Initializes a bcmolt_xpon_serdes_key struct.  This sets all fields to 
+ * default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_xpon_serdes_key_set_default(bcmolt_xpon_serdes_key *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_xpon_serdes_key to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xpon_serdes_key_pack(const bcmolt_xpon_serdes_key *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_xpon_serdes_key would occupy on the 
+ * wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_xpon_serdes_key_get_packed_length(const bcmolt_xpon_serdes_key *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_xpon_serdes_key from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xpon_serdes_key_unpack(bcmolt_xpon_serdes_key *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_xpon_serdes_key struct and collects memory 
+ * requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_xpon_serdes_key_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_xpon_serdes_key is out of bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xpon_serdes_key_bounds_check(const bcmolt_xpon_serdes_key *this, bcmolt_presence_mask fields_present, bcmolt_xpon_serdes_key_id *failed_prop);
+
+/** Initializes a bcmolt_xpon_serdes_cfg_data struct.  This sets all fields to 
+ * default values. 
+ *
+ * \param this Pointer to the structure 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ */
+void bcmolt_xpon_serdes_cfg_data_set_default(bcmolt_xpon_serdes_cfg_data *this, bcmolt_presence_mask fields_present);
+
+/** Packs a bcmolt_xpon_serdes_cfg_data to bytes 
+ *
+ * \param this Pointer to the object to pack 
+ * \param buf Pointer to the buffer to write to 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the pack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xpon_serdes_cfg_data_pack(const bcmolt_xpon_serdes_cfg_data *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+
+/** Gets the number of bytes that a bcmolt_xpon_serdes_cfg_data would occupy on 
+ * the wire 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return The structure size in bytes 
+ */
+uint32_t bcmolt_xpon_serdes_cfg_data_get_packed_length(const bcmolt_xpon_serdes_cfg_data *this, bcmolt_presence_mask fields_present);
+
+/** Unpacks a bcmolt_xpon_serdes_cfg_data from bytes 
+ *
+ * \param this Pointer to the object to unpack 
+ * \param buf Pointer to the buffer to read from 
+ * \param extra_mem Pointer to the first location in memory to use to store 
+ * pointer fields that are NULL.  Setting this to NULL will cause an error when 
+ * a NULL pointer is encountered. 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE if the unpack was successful, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xpon_serdes_cfg_data_unpack(bcmolt_xpon_serdes_cfg_data *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+
+/** Scans past a packed bcmolt_xpon_serdes_cfg_data struct and collects memory 
+ * requirements above and beyond sizeof() 
+ *
+ * \param packed A stream pointing to the packed byte stream 
+ * \param extra_mem Number of additional storage bytes required 
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \return TRUE on success, FALSE on failure 
+ */
+bcmos_bool bcmolt_xpon_serdes_cfg_data_scan(bcmolt_buf *packed, uint32_t *extra_mem, bcmolt_presence_mask fields_present);
+
+/** Checks if any field in the bcmolt_xpon_serdes_cfg_data is out of bounds 
+ *
+ * \param fields_present Bitmask of which fields are present in the structure. 
+ * \param failed_prop Reference to the property that was out of range (only set 
+ * on failure) 
+ * \return TRUE if all fields are in the correct range, FALSE otherwise 
+ */
+bcmos_bool bcmolt_xpon_serdes_cfg_data_bounds_check(const bcmolt_xpon_serdes_cfg_data *this, bcmolt_presence_mask fields_present, bcmolt_xpon_serdes_cfg_id *failed_prop);
+
+/* Maple device selected as a target for CLI commands */
+extern bcmolt_devid current_device;
+
+/** Set system mode
+ * \param[in]  dev            Device id
+ * \param[in]  system_mode    System mode
+ * \returns BCM_ERR_OK, BCM_ERR_NOT_SUPPORTED
+ */
+bcmos_errno bcmolt_system_mode_set(bcmolt_devid dev, bcmolt_system_mode system_mode);
+
+/** Get system mode
+ * \param[in]  dev            Device id
+ * \param[in]  system_mode    System mode
+ * \returns BCM_ERR_OK
+ */
+bcmos_errno bcmolt_system_mode_get(bcmolt_devid dev, bcmolt_system_mode *system_mode);
+
+/** Checks if objects with the given tag are valid in the given system mode. */
+bcmos_bool bcmolt_obj_tag_valid_for_system_mode(bcmolt_system_mode system_mode, bcmolt_obj_tag tag);
+
+/** Checks if the given object is supported in the given system mode.
+ * \param[in] system_mode System mode
+ * \param[in] obj         Object ID
+ * \return true if the object is supported in the given system mode, false otherwise.
+ */
+bcmos_bool bcmolt_object_is_supported(bcmolt_system_mode system_mode, bcmolt_obj_id obj);
+
+/** Gets the name of the given system mode as a string. */
+const char *bcmolt_system_mode_name(bcmolt_system_mode mode);
+
+/** Set xgpon num of onus
+ * \param[in]  dev            Device id
+ * \param[in]  xgpon_num_of_onus    XGPON num of onus
+ * \returns BCM_ERR_OK, BCM_ERR_NOT_SUPPORTED
+ */
+bcmos_errno bcmolt_xgpon_num_of_onus_set(bcmolt_devid dev, bcmolt_xgpon_num_of_onus xgpon_num_of_onus);
+
+/** Get xgpon num of onus
+ * \param[in]  dev            Device id
+ * \param[in]  xgpon_num_of_onus    XGPON num of onus
+ * \returns BCM_ERR_OK
+ */
+bcmos_errno bcmolt_xgpon_num_of_onus_get(bcmolt_devid dev, bcmolt_xgpon_num_of_onus *xgpon_num_of_onus);
+#endif /* BCMOLT_MODEL_TYPES_H_ */
diff --git a/bcm68620_release/release/host_driver/model/bcmolt_msg_pack.c b/bcm68620_release/release/host_driver/model/bcmolt_msg_pack.c
new file mode 100644
index 0000000..b417f95
--- /dev/null
+++ b/bcm68620_release/release/host_driver/model/bcmolt_msg_pack.c
@@ -0,0 +1,2145 @@
+/*
+<:copyright-BRCM:2016:proprietary:standard
+
+   Broadcom Proprietary and Confidential.(c) 2016 Broadcom
+   All Rights Reserved
+
+This program is the proprietary software of Broadcom Corporation and/or its
+licensors, and may only be used, duplicated, modified or distributed pursuant
+to the terms and conditions of a separate, written license agreement executed
+between you and Broadcom (an "Authorized License").  Except as set forth in
+an Authorized License, Broadcom grants no license (express or implied), right
+to use, or waiver of any kind with respect to the Software, and Broadcom
+expressly reserves all rights in and to the Software and all intellectual
+property rights therein.  IF YOU HAVE NO AUTHORIZED LICENSE, THEN YOU HAVE
+NO RIGHT TO USE THIS SOFTWARE IN ANY WAY, AND SHOULD IMMEDIATELY NOTIFY
+BROADCOM AND DISCONTINUE ALL USE OF THE SOFTWARE.
+
+Except as expressly set forth in the Authorized License,
+
+1. This program, including its structure, sequence and organization,
+    constitutes the valuable trade secrets of Broadcom, and you shall use
+    all reasonable efforts to protect the confidentiality thereof, and to
+    use this information only in connection with your use of Broadcom
+    integrated circuit products.
+
+2. TO THE MAXIMUM EXTENT PERMITTED BY LAW, THE SOFTWARE IS PROVIDED "AS IS"
+    AND WITH ALL FAULTS AND BROADCOM MAKES NO PROMISES, REPRESENTATIONS OR
+    WARRANTIES, EITHER EXPRESS, IMPLIED, STATUTORY, OR OTHERWISE, WITH
+    RESPECT TO THE SOFTWARE.  BROADCOM SPECIFICALLY DISCLAIMS ANY AND
+    ALL IMPLIED WARRANTIES OF TITLE, MERCHANTABILITY, NONINFRINGEMENT,
+    FITNESS FOR A PARTICULAR PURPOSE, LACK OF VIRUSES, ACCURACY OR
+    COMPLETENESS, QUIET ENJOYMENT, QUIET POSSESSION OR CORRESPONDENCE
+    TO DESCRIPTION. YOU ASSUME THE ENTIRE RISK ARISING OUT OF USE OR
+    PERFORMANCE OF THE SOFTWARE.
+
+3. TO THE MAXIMUM EXTENT PERMITTED BY LAW, IN NO EVENT SHALL BROADCOM OR
+    ITS LICENSORS BE LIABLE FOR (i) CONSEQUENTIAL, INCIDENTAL, SPECIAL,
+    INDIRECT, OR EXEMPLARY DAMAGES WHATSOEVER ARISING OUT OF OR IN ANY
+    WAY RELATING TO YOUR USE OF OR INABILITY TO USE THE SOFTWARE EVEN
+    IF BROADCOM HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES;
+    OR (ii) ANY AMOUNT IN EXCESS OF THE AMOUNT ACTUALLY PAID FOR THE
+    SOFTWARE ITSELF OR U.S. $1, WHICHEVER IS GREATER. THESE LIMITATIONS
+    SHALL APPLY NOTWITHSTANDING ANY FAILURE OF ESSENTIAL PURPOSE OF ANY
+    LIMITED REMEDY.
+:>
+*/
+#include <bcmolt_buf.h>
+#include <bcmolt_msg.h>
+#include "bcmolt_msg_pack.h"
+
+typedef uint32_t (*bcmolt_func_packed_len) (void *this, bcmolt_presence_mask fields_present);
+typedef bcmos_bool (*bcmolt_func_pack) (void *this, bcmolt_buf *buf, bcmolt_presence_mask fields_present);
+typedef bcmos_bool (*bcmolt_func_unpack) (void *this, bcmolt_buf *buf, void **extra_mem, bcmolt_presence_mask fields_present);
+typedef bcmos_bool (*bcmolt_func_mem_scan) (bcmolt_buf * buf, uint32_t * extra_mem, bcmolt_presence_mask fields_present);
+
+/******************************************************************************/
+typedef struct bcmolt_group_info
+{
+    bcmolt_obj_id obj_type;
+    bcmolt_mgt_group group;
+    uint16_t subgroup;
+    uint32_t size;
+    uint32_t container_size;    /* sizeof() the key/data container struct (0 for key groups) */
+    uint32_t data_offset;       /* offsetof() data field within container struct (0 for key groups) */
+    bcmolt_func_packed_len get_packed_length;
+    bcmolt_func_pack pack;
+    bcmolt_func_unpack unpack;
+    bcmolt_func_mem_scan mem_scan;
+} bcmolt_group_info;
+
+/******************************************************************************/
+typedef struct bcmolt_group_ids
+{
+    uint32_t subgroup_count;
+    bcmolt_group_id *subgroup_ids;
+} bcmolt_group_ids;
+
+/******************************************************************************/
+typedef struct bcmolt_instance_info
+{
+    int8_t offset;
+    int8_t size;
+} bcmolt_instance_info;
+
+/******************************************************************************/
+static bcmolt_group_info group_info_ae_ni_key = { BCMOLT_OBJ_ID_AE_NI, BCMOLT_MGT_GROUP_KEY, 0, sizeof(bcmolt_ae_ni_key), 0, 0, (bcmolt_func_packed_len) bcmolt_ae_ni_key_get_packed_length, (bcmolt_func_pack) bcmolt_ae_ni_key_pack, (bcmolt_func_unpack) bcmolt_ae_ni_key_unpack, bcmolt_ae_ni_key_scan };
+static bcmolt_group_info group_info_ae_ni_cfg = { BCMOLT_OBJ_ID_AE_NI, BCMOLT_MGT_GROUP_CFG, 0, sizeof(bcmolt_ae_ni_cfg_data), sizeof(bcmolt_ae_ni_cfg), offsetof(bcmolt_ae_ni_cfg, data), (bcmolt_func_packed_len) bcmolt_ae_ni_cfg_data_get_packed_length, (bcmolt_func_pack) bcmolt_ae_ni_cfg_data_pack, (bcmolt_func_unpack) bcmolt_ae_ni_cfg_data_unpack, bcmolt_ae_ni_cfg_data_scan };
+static bcmolt_group_info group_info_ae_ni_set_ae_ni_en_state = { BCMOLT_OBJ_ID_AE_NI, BCMOLT_MGT_GROUP_OPER, 0, sizeof(bcmolt_ae_ni_set_ae_ni_en_state_data), sizeof(bcmolt_ae_ni_set_ae_ni_en_state), offsetof(bcmolt_ae_ni_set_ae_ni_en_state, data), (bcmolt_func_packed_len) bcmolt_ae_ni_set_ae_ni_en_state_data_get_packed_length, (bcmolt_func_pack) bcmolt_ae_ni_set_ae_ni_en_state_data_pack, (bcmolt_func_unpack) bcmolt_ae_ni_set_ae_ni_en_state_data_unpack, bcmolt_ae_ni_set_ae_ni_en_state_data_scan };
+static bcmolt_group_info group_info_ae_path_ds_key = { BCMOLT_OBJ_ID_AE_PATH_DS, BCMOLT_MGT_GROUP_KEY, 0, sizeof(bcmolt_ae_path_ds_key), 0, 0, (bcmolt_func_packed_len) bcmolt_ae_path_ds_key_get_packed_length, (bcmolt_func_pack) bcmolt_ae_path_ds_key_pack, (bcmolt_func_unpack) bcmolt_ae_path_ds_key_unpack, bcmolt_ae_path_ds_key_scan };
+static bcmolt_group_info group_info_ae_path_ds_stat = { BCMOLT_OBJ_ID_AE_PATH_DS, BCMOLT_MGT_GROUP_STAT, 0, sizeof(bcmolt_ae_path_ds_stat_data), sizeof(bcmolt_ae_path_ds_stat), offsetof(bcmolt_ae_path_ds_stat, data), (bcmolt_func_packed_len) bcmolt_ae_path_ds_stat_data_get_packed_length, (bcmolt_func_pack) bcmolt_ae_path_ds_stat_data_pack, (bcmolt_func_unpack) bcmolt_ae_path_ds_stat_data_unpack, bcmolt_ae_path_ds_stat_data_scan };
+static bcmolt_group_info group_info_ae_path_ds_stat_cfg = { BCMOLT_OBJ_ID_AE_PATH_DS, BCMOLT_MGT_GROUP_STAT_CFG, 0, sizeof(bcmolt_ae_path_ds_stat_cfg_data), sizeof(bcmolt_ae_path_ds_stat_cfg), offsetof(bcmolt_ae_path_ds_stat_cfg, data), (bcmolt_func_packed_len) bcmolt_ae_path_ds_stat_cfg_data_get_packed_length, (bcmolt_func_pack) bcmolt_ae_path_ds_stat_cfg_data_pack, (bcmolt_func_unpack) bcmolt_ae_path_ds_stat_cfg_data_unpack, bcmolt_ae_path_ds_stat_cfg_data_scan };
+static bcmolt_group_info group_info_ae_path_ds_stat_alarm_cleared = { BCMOLT_OBJ_ID_AE_PATH_DS, BCMOLT_MGT_GROUP_AUTO, 0, sizeof(bcmolt_ae_path_ds_stat_alarm_cleared_data), sizeof(bcmolt_ae_path_ds_stat_alarm_cleared), offsetof(bcmolt_ae_path_ds_stat_alarm_cleared, data), (bcmolt_func_packed_len) bcmolt_ae_path_ds_stat_alarm_cleared_data_get_packed_length, (bcmolt_func_pack) bcmolt_ae_path_ds_stat_alarm_cleared_data_pack, (bcmolt_func_unpack) bcmolt_ae_path_ds_stat_alarm_cleared_data_unpack, bcmolt_ae_path_ds_stat_alarm_cleared_data_scan };
+static bcmolt_group_info group_info_ae_path_ds_stat_alarm_raised = { BCMOLT_OBJ_ID_AE_PATH_DS, BCMOLT_MGT_GROUP_AUTO, 1, sizeof(bcmolt_ae_path_ds_stat_alarm_raised_data), sizeof(bcmolt_ae_path_ds_stat_alarm_raised), offsetof(bcmolt_ae_path_ds_stat_alarm_raised, data), (bcmolt_func_packed_len) bcmolt_ae_path_ds_stat_alarm_raised_data_get_packed_length, (bcmolt_func_pack) bcmolt_ae_path_ds_stat_alarm_raised_data_pack, (bcmolt_func_unpack) bcmolt_ae_path_ds_stat_alarm_raised_data_unpack, bcmolt_ae_path_ds_stat_alarm_raised_data_scan };
+static bcmolt_group_info group_info_ae_path_ds_auto_cfg = { BCMOLT_OBJ_ID_AE_PATH_DS, BCMOLT_MGT_GROUP_AUTO_CFG, 0, sizeof(bcmolt_ae_path_ds_auto_cfg_data), sizeof(bcmolt_ae_path_ds_auto_cfg), offsetof(bcmolt_ae_path_ds_auto_cfg, data), (bcmolt_func_packed_len) bcmolt_ae_path_ds_auto_cfg_data_get_packed_length, (bcmolt_func_pack) bcmolt_ae_path_ds_auto_cfg_data_pack, (bcmolt_func_unpack) bcmolt_ae_path_ds_auto_cfg_data_unpack, bcmolt_ae_path_ds_auto_cfg_data_scan };
+static bcmolt_group_info group_info_ae_path_us_key = { BCMOLT_OBJ_ID_AE_PATH_US, BCMOLT_MGT_GROUP_KEY, 0, sizeof(bcmolt_ae_path_us_key), 0, 0, (bcmolt_func_packed_len) bcmolt_ae_path_us_key_get_packed_length, (bcmolt_func_pack) bcmolt_ae_path_us_key_pack, (bcmolt_func_unpack) bcmolt_ae_path_us_key_unpack, bcmolt_ae_path_us_key_scan };
+static bcmolt_group_info group_info_ae_path_us_stat = { BCMOLT_OBJ_ID_AE_PATH_US, BCMOLT_MGT_GROUP_STAT, 0, sizeof(bcmolt_ae_path_us_stat_data), sizeof(bcmolt_ae_path_us_stat), offsetof(bcmolt_ae_path_us_stat, data), (bcmolt_func_packed_len) bcmolt_ae_path_us_stat_data_get_packed_length, (bcmolt_func_pack) bcmolt_ae_path_us_stat_data_pack, (bcmolt_func_unpack) bcmolt_ae_path_us_stat_data_unpack, bcmolt_ae_path_us_stat_data_scan };
+static bcmolt_group_info group_info_ae_path_us_stat_cfg = { BCMOLT_OBJ_ID_AE_PATH_US, BCMOLT_MGT_GROUP_STAT_CFG, 0, sizeof(bcmolt_ae_path_us_stat_cfg_data), sizeof(bcmolt_ae_path_us_stat_cfg), offsetof(bcmolt_ae_path_us_stat_cfg, data), (bcmolt_func_packed_len) bcmolt_ae_path_us_stat_cfg_data_get_packed_length, (bcmolt_func_pack) bcmolt_ae_path_us_stat_cfg_data_pack, (bcmolt_func_unpack) bcmolt_ae_path_us_stat_cfg_data_unpack, bcmolt_ae_path_us_stat_cfg_data_scan };
+static bcmolt_group_info group_info_ae_path_us_stat_alarm_cleared = { BCMOLT_OBJ_ID_AE_PATH_US, BCMOLT_MGT_GROUP_AUTO, 0, sizeof(bcmolt_ae_path_us_stat_alarm_cleared_data), sizeof(bcmolt_ae_path_us_stat_alarm_cleared), offsetof(bcmolt_ae_path_us_stat_alarm_cleared, data), (bcmolt_func_packed_len) bcmolt_ae_path_us_stat_alarm_cleared_data_get_packed_length, (bcmolt_func_pack) bcmolt_ae_path_us_stat_alarm_cleared_data_pack, (bcmolt_func_unpack) bcmolt_ae_path_us_stat_alarm_cleared_data_unpack, bcmolt_ae_path_us_stat_alarm_cleared_data_scan };
+static bcmolt_group_info group_info_ae_path_us_stat_alarm_raised = { BCMOLT_OBJ_ID_AE_PATH_US, BCMOLT_MGT_GROUP_AUTO, 1, sizeof(bcmolt_ae_path_us_stat_alarm_raised_data), sizeof(bcmolt_ae_path_us_stat_alarm_raised), offsetof(bcmolt_ae_path_us_stat_alarm_raised, data), (bcmolt_func_packed_len) bcmolt_ae_path_us_stat_alarm_raised_data_get_packed_length, (bcmolt_func_pack) bcmolt_ae_path_us_stat_alarm_raised_data_pack, (bcmolt_func_unpack) bcmolt_ae_path_us_stat_alarm_raised_data_unpack, bcmolt_ae_path_us_stat_alarm_raised_data_scan };
+static bcmolt_group_info group_info_ae_path_us_auto_cfg = { BCMOLT_OBJ_ID_AE_PATH_US, BCMOLT_MGT_GROUP_AUTO_CFG, 0, sizeof(bcmolt_ae_path_us_auto_cfg_data), sizeof(bcmolt_ae_path_us_auto_cfg), offsetof(bcmolt_ae_path_us_auto_cfg, data), (bcmolt_func_packed_len) bcmolt_ae_path_us_auto_cfg_data_get_packed_length, (bcmolt_func_pack) bcmolt_ae_path_us_auto_cfg_data_pack, (bcmolt_func_unpack) bcmolt_ae_path_us_auto_cfg_data_unpack, bcmolt_ae_path_us_auto_cfg_data_scan };
+static bcmolt_group_info group_info_channel_key = { BCMOLT_OBJ_ID_CHANNEL, BCMOLT_MGT_GROUP_KEY, 0, sizeof(bcmolt_channel_key), 0, 0, (bcmolt_func_packed_len) bcmolt_channel_key_get_packed_length, (bcmolt_func_pack) bcmolt_channel_key_pack, (bcmolt_func_unpack) bcmolt_channel_key_unpack, bcmolt_channel_key_scan };
+static bcmolt_group_info group_info_channel_cfg = { BCMOLT_OBJ_ID_CHANNEL, BCMOLT_MGT_GROUP_CFG, 0, sizeof(bcmolt_channel_cfg_data), sizeof(bcmolt_channel_cfg), offsetof(bcmolt_channel_cfg, data), (bcmolt_func_packed_len) bcmolt_channel_cfg_data_get_packed_length, (bcmolt_func_pack) bcmolt_channel_cfg_data_pack, (bcmolt_func_unpack) bcmolt_channel_cfg_data_unpack, bcmolt_channel_cfg_data_scan };
+static bcmolt_group_info group_info_debug_key = { BCMOLT_OBJ_ID_DEBUG, BCMOLT_MGT_GROUP_KEY, 0, sizeof(bcmolt_debug_key), 0, 0, (bcmolt_func_packed_len) bcmolt_debug_key_get_packed_length, (bcmolt_func_pack) bcmolt_debug_key_pack, (bcmolt_func_unpack) bcmolt_debug_key_unpack, bcmolt_debug_key_scan };
+static bcmolt_group_info group_info_debug_cfg = { BCMOLT_OBJ_ID_DEBUG, BCMOLT_MGT_GROUP_CFG, 0, sizeof(bcmolt_debug_cfg_data), sizeof(bcmolt_debug_cfg), offsetof(bcmolt_debug_cfg, data), (bcmolt_func_packed_len) bcmolt_debug_cfg_data_get_packed_length, (bcmolt_func_pack) bcmolt_debug_cfg_data_pack, (bcmolt_func_unpack) bcmolt_debug_cfg_data_unpack, bcmolt_debug_cfg_data_scan };
+static bcmolt_group_info group_info_debug_cli_output = { BCMOLT_OBJ_ID_DEBUG, BCMOLT_MGT_GROUP_AUTO, 0, sizeof(bcmolt_debug_cli_output_data), sizeof(bcmolt_debug_cli_output), offsetof(bcmolt_debug_cli_output, data), (bcmolt_func_packed_len) bcmolt_debug_cli_output_data_get_packed_length, (bcmolt_func_pack) bcmolt_debug_cli_output_data_pack, (bcmolt_func_unpack) bcmolt_debug_cli_output_data_unpack, bcmolt_debug_cli_output_data_scan };
+static bcmolt_group_info group_info_debug_file_almost_full = { BCMOLT_OBJ_ID_DEBUG, BCMOLT_MGT_GROUP_AUTO, 1, 0, 0, 0, NULL, NULL, NULL };
+static bcmolt_group_info group_info_debug_auto_cfg = { BCMOLT_OBJ_ID_DEBUG, BCMOLT_MGT_GROUP_AUTO_CFG, 0, sizeof(bcmolt_debug_auto_cfg_data), sizeof(bcmolt_debug_auto_cfg), offsetof(bcmolt_debug_auto_cfg, data), (bcmolt_func_packed_len) bcmolt_debug_auto_cfg_data_get_packed_length, (bcmolt_func_pack) bcmolt_debug_auto_cfg_data_pack, (bcmolt_func_unpack) bcmolt_debug_auto_cfg_data_unpack, bcmolt_debug_auto_cfg_data_scan };
+static bcmolt_group_info group_info_debug_cli_input = { BCMOLT_OBJ_ID_DEBUG, BCMOLT_MGT_GROUP_OPER, 0, sizeof(bcmolt_debug_cli_input_data), sizeof(bcmolt_debug_cli_input), offsetof(bcmolt_debug_cli_input, data), (bcmolt_func_packed_len) bcmolt_debug_cli_input_data_get_packed_length, (bcmolt_func_pack) bcmolt_debug_cli_input_data_pack, (bcmolt_func_unpack) bcmolt_debug_cli_input_data_unpack, bcmolt_debug_cli_input_data_scan };
+static bcmolt_group_info group_info_debug_reset_api_capture = { BCMOLT_OBJ_ID_DEBUG, BCMOLT_MGT_GROUP_OPER, 1, 0, 0, 0, NULL, NULL, NULL };
+static bcmolt_group_info group_info_debug_start_api_capture = { BCMOLT_OBJ_ID_DEBUG, BCMOLT_MGT_GROUP_OPER, 2, 0, 0, 0, NULL, NULL, NULL };
+static bcmolt_group_info group_info_debug_stop_api_capture = { BCMOLT_OBJ_ID_DEBUG, BCMOLT_MGT_GROUP_OPER, 3, 0, 0, 0, NULL, NULL, NULL };
+static bcmolt_group_info group_info_device_key = { BCMOLT_OBJ_ID_DEVICE, BCMOLT_MGT_GROUP_KEY, 0, sizeof(bcmolt_device_key), 0, 0, (bcmolt_func_packed_len) bcmolt_device_key_get_packed_length, (bcmolt_func_pack) bcmolt_device_key_pack, (bcmolt_func_unpack) bcmolt_device_key_unpack, bcmolt_device_key_scan };
+static bcmolt_group_info group_info_device_cfg = { BCMOLT_OBJ_ID_DEVICE, BCMOLT_MGT_GROUP_CFG, 0, sizeof(bcmolt_device_cfg_data), sizeof(bcmolt_device_cfg), offsetof(bcmolt_device_cfg, data), (bcmolt_func_packed_len) bcmolt_device_cfg_data_get_packed_length, (bcmolt_func_pack) bcmolt_device_cfg_data_pack, (bcmolt_func_unpack) bcmolt_device_cfg_data_unpack, bcmolt_device_cfg_data_scan };
+static bcmolt_group_info group_info_device_connection_complete = { BCMOLT_OBJ_ID_DEVICE, BCMOLT_MGT_GROUP_AUTO, 0, sizeof(bcmolt_device_connection_complete_data), sizeof(bcmolt_device_connection_complete), offsetof(bcmolt_device_connection_complete, data), (bcmolt_func_packed_len) bcmolt_device_connection_complete_data_get_packed_length, (bcmolt_func_pack) bcmolt_device_connection_complete_data_pack, (bcmolt_func_unpack) bcmolt_device_connection_complete_data_unpack, bcmolt_device_connection_complete_data_scan };
+static bcmolt_group_info group_info_device_connection_established = { BCMOLT_OBJ_ID_DEVICE, BCMOLT_MGT_GROUP_AUTO, 1, 0, 0, 0, NULL, NULL, NULL };
+static bcmolt_group_info group_info_device_connection_failure = { BCMOLT_OBJ_ID_DEVICE, BCMOLT_MGT_GROUP_AUTO, 2, sizeof(bcmolt_device_connection_failure_data), sizeof(bcmolt_device_connection_failure), offsetof(bcmolt_device_connection_failure, data), (bcmolt_func_packed_len) bcmolt_device_connection_failure_data_get_packed_length, (bcmolt_func_pack) bcmolt_device_connection_failure_data_pack, (bcmolt_func_unpack) bcmolt_device_connection_failure_data_unpack, bcmolt_device_connection_failure_data_scan };
+static bcmolt_group_info group_info_device_ddr_test_complete = { BCMOLT_OBJ_ID_DEVICE, BCMOLT_MGT_GROUP_AUTO, 3, sizeof(bcmolt_device_ddr_test_complete_data), sizeof(bcmolt_device_ddr_test_complete), offsetof(bcmolt_device_ddr_test_complete, data), (bcmolt_func_packed_len) bcmolt_device_ddr_test_complete_data_get_packed_length, (bcmolt_func_pack) bcmolt_device_ddr_test_complete_data_pack, (bcmolt_func_unpack) bcmolt_device_ddr_test_complete_data_unpack, bcmolt_device_ddr_test_complete_data_scan };
+static bcmolt_group_info group_info_device_device_keep_alive = { BCMOLT_OBJ_ID_DEVICE, BCMOLT_MGT_GROUP_AUTO, 4, sizeof(bcmolt_device_device_keep_alive_data), sizeof(bcmolt_device_device_keep_alive), offsetof(bcmolt_device_device_keep_alive, data), (bcmolt_func_packed_len) bcmolt_device_device_keep_alive_data_get_packed_length, (bcmolt_func_pack) bcmolt_device_device_keep_alive_data_pack, (bcmolt_func_unpack) bcmolt_device_device_keep_alive_data_unpack, bcmolt_device_device_keep_alive_data_scan };
+static bcmolt_group_info group_info_device_device_ready = { BCMOLT_OBJ_ID_DEVICE, BCMOLT_MGT_GROUP_AUTO, 5, sizeof(bcmolt_device_device_ready_data), sizeof(bcmolt_device_device_ready), offsetof(bcmolt_device_device_ready, data), (bcmolt_func_packed_len) bcmolt_device_device_ready_data_get_packed_length, (bcmolt_func_pack) bcmolt_device_device_ready_data_pack, (bcmolt_func_unpack) bcmolt_device_device_ready_data_unpack, bcmolt_device_device_ready_data_scan };
+static bcmolt_group_info group_info_device_disconnection_complete = { BCMOLT_OBJ_ID_DEVICE, BCMOLT_MGT_GROUP_AUTO, 6, 0, 0, 0, NULL, NULL, NULL };
+static bcmolt_group_info group_info_device_image_transfer_complete = { BCMOLT_OBJ_ID_DEVICE, BCMOLT_MGT_GROUP_AUTO, 7, sizeof(bcmolt_device_image_transfer_complete_data), sizeof(bcmolt_device_image_transfer_complete), offsetof(bcmolt_device_image_transfer_complete, data), (bcmolt_func_packed_len) bcmolt_device_image_transfer_complete_data_get_packed_length, (bcmolt_func_pack) bcmolt_device_image_transfer_complete_data_pack, (bcmolt_func_unpack) bcmolt_device_image_transfer_complete_data_unpack, bcmolt_device_image_transfer_complete_data_scan };
+static bcmolt_group_info group_info_device_indications_dropped = { BCMOLT_OBJ_ID_DEVICE, BCMOLT_MGT_GROUP_AUTO, 8, sizeof(bcmolt_device_indications_dropped_data), sizeof(bcmolt_device_indications_dropped), offsetof(bcmolt_device_indications_dropped, data), (bcmolt_func_packed_len) bcmolt_device_indications_dropped_data_get_packed_length, (bcmolt_func_pack) bcmolt_device_indications_dropped_data_pack, (bcmolt_func_unpack) bcmolt_device_indications_dropped_data_unpack, bcmolt_device_indications_dropped_data_scan };
+static bcmolt_group_info group_info_device_sw_error = { BCMOLT_OBJ_ID_DEVICE, BCMOLT_MGT_GROUP_AUTO, 9, sizeof(bcmolt_device_sw_error_data), sizeof(bcmolt_device_sw_error), offsetof(bcmolt_device_sw_error, data), (bcmolt_func_packed_len) bcmolt_device_sw_error_data_get_packed_length, (bcmolt_func_pack) bcmolt_device_sw_error_data_pack, (bcmolt_func_unpack) bcmolt_device_sw_error_data_unpack, bcmolt_device_sw_error_data_scan };
+static bcmolt_group_info group_info_device_sw_exception = { BCMOLT_OBJ_ID_DEVICE, BCMOLT_MGT_GROUP_AUTO, 10, sizeof(bcmolt_device_sw_exception_data), sizeof(bcmolt_device_sw_exception), offsetof(bcmolt_device_sw_exception, data), (bcmolt_func_packed_len) bcmolt_device_sw_exception_data_get_packed_length, (bcmolt_func_pack) bcmolt_device_sw_exception_data_pack, (bcmolt_func_unpack) bcmolt_device_sw_exception_data_unpack, bcmolt_device_sw_exception_data_scan };
+static bcmolt_group_info group_info_device_auto_cfg = { BCMOLT_OBJ_ID_DEVICE, BCMOLT_MGT_GROUP_AUTO_CFG, 0, sizeof(bcmolt_device_auto_cfg_data), sizeof(bcmolt_device_auto_cfg), offsetof(bcmolt_device_auto_cfg, data), (bcmolt_func_packed_len) bcmolt_device_auto_cfg_data_get_packed_length, (bcmolt_func_pack) bcmolt_device_auto_cfg_data_pack, (bcmolt_func_unpack) bcmolt_device_auto_cfg_data_unpack, bcmolt_device_auto_cfg_data_scan };
+static bcmolt_group_info group_info_device_connect = { BCMOLT_OBJ_ID_DEVICE, BCMOLT_MGT_GROUP_OPER, 0, 0, 0, 0, NULL, NULL, NULL };
+static bcmolt_group_info group_info_device_disconnect = { BCMOLT_OBJ_ID_DEVICE, BCMOLT_MGT_GROUP_OPER, 1, 0, 0, 0, NULL, NULL, NULL };
+static bcmolt_group_info group_info_device_host_keep_alive = { BCMOLT_OBJ_ID_DEVICE, BCMOLT_MGT_GROUP_OPER, 2, sizeof(bcmolt_device_host_keep_alive_data), sizeof(bcmolt_device_host_keep_alive), offsetof(bcmolt_device_host_keep_alive, data), (bcmolt_func_packed_len) bcmolt_device_host_keep_alive_data_get_packed_length, (bcmolt_func_pack) bcmolt_device_host_keep_alive_data_pack, (bcmolt_func_unpack) bcmolt_device_host_keep_alive_data_unpack, bcmolt_device_host_keep_alive_data_scan };
+static bcmolt_group_info group_info_device_image_transfer_data = { BCMOLT_OBJ_ID_DEVICE, BCMOLT_MGT_GROUP_OPER, 3, sizeof(bcmolt_device_image_transfer_data_data), sizeof(bcmolt_device_image_transfer_data), offsetof(bcmolt_device_image_transfer_data, data), (bcmolt_func_packed_len) bcmolt_device_image_transfer_data_data_get_packed_length, (bcmolt_func_pack) bcmolt_device_image_transfer_data_data_pack, (bcmolt_func_unpack) bcmolt_device_image_transfer_data_data_unpack, bcmolt_device_image_transfer_data_data_scan };
+static bcmolt_group_info group_info_device_image_transfer_start = { BCMOLT_OBJ_ID_DEVICE, BCMOLT_MGT_GROUP_OPER, 4, sizeof(bcmolt_device_image_transfer_start_data), sizeof(bcmolt_device_image_transfer_start), offsetof(bcmolt_device_image_transfer_start, data), (bcmolt_func_packed_len) bcmolt_device_image_transfer_start_data_get_packed_length, (bcmolt_func_pack) bcmolt_device_image_transfer_start_data_pack, (bcmolt_func_unpack) bcmolt_device_image_transfer_start_data_unpack, bcmolt_device_image_transfer_start_data_scan };
+static bcmolt_group_info group_info_device_reset = { BCMOLT_OBJ_ID_DEVICE, BCMOLT_MGT_GROUP_OPER, 5, sizeof(bcmolt_device_reset_data), sizeof(bcmolt_device_reset), offsetof(bcmolt_device_reset, data), (bcmolt_func_packed_len) bcmolt_device_reset_data_get_packed_length, (bcmolt_func_pack) bcmolt_device_reset_data_pack, (bcmolt_func_unpack) bcmolt_device_reset_data_unpack, bcmolt_device_reset_data_scan };
+static bcmolt_group_info group_info_device_run_ddr_test = { BCMOLT_OBJ_ID_DEVICE, BCMOLT_MGT_GROUP_OPER, 6, sizeof(bcmolt_device_run_ddr_test_data), sizeof(bcmolt_device_run_ddr_test), offsetof(bcmolt_device_run_ddr_test, data), (bcmolt_func_packed_len) bcmolt_device_run_ddr_test_data_get_packed_length, (bcmolt_func_pack) bcmolt_device_run_ddr_test_data_pack, (bcmolt_func_unpack) bcmolt_device_run_ddr_test_data_unpack, bcmolt_device_run_ddr_test_data_scan };
+static bcmolt_group_info group_info_device_sw_upgrade_activate = { BCMOLT_OBJ_ID_DEVICE, BCMOLT_MGT_GROUP_OPER, 7, 0, 0, 0, NULL, NULL, NULL };
+static bcmolt_group_info group_info_epon_denied_link_key = { BCMOLT_OBJ_ID_EPON_DENIED_LINK, BCMOLT_MGT_GROUP_KEY, 0, sizeof(bcmolt_epon_denied_link_key), 0, 0, (bcmolt_func_packed_len) bcmolt_epon_denied_link_key_get_packed_length, (bcmolt_func_pack) bcmolt_epon_denied_link_key_pack, (bcmolt_func_unpack) bcmolt_epon_denied_link_key_unpack, bcmolt_epon_denied_link_key_scan };
+static bcmolt_group_info group_info_epon_denied_link_cfg = { BCMOLT_OBJ_ID_EPON_DENIED_LINK, BCMOLT_MGT_GROUP_CFG, 0, sizeof(bcmolt_epon_denied_link_cfg_data), sizeof(bcmolt_epon_denied_link_cfg), offsetof(bcmolt_epon_denied_link_cfg, data), (bcmolt_func_packed_len) bcmolt_epon_denied_link_cfg_data_get_packed_length, (bcmolt_func_pack) bcmolt_epon_denied_link_cfg_data_pack, (bcmolt_func_unpack) bcmolt_epon_denied_link_cfg_data_unpack, bcmolt_epon_denied_link_cfg_data_scan };
+static bcmolt_group_info group_info_epon_denied_link_laser_on_off_violation = { BCMOLT_OBJ_ID_EPON_DENIED_LINK, BCMOLT_MGT_GROUP_AUTO, 0, sizeof(bcmolt_epon_denied_link_laser_on_off_violation_data), sizeof(bcmolt_epon_denied_link_laser_on_off_violation), offsetof(bcmolt_epon_denied_link_laser_on_off_violation, data), (bcmolt_func_packed_len) bcmolt_epon_denied_link_laser_on_off_violation_data_get_packed_length, (bcmolt_func_pack) bcmolt_epon_denied_link_laser_on_off_violation_data_pack, (bcmolt_func_unpack) bcmolt_epon_denied_link_laser_on_off_violation_data_unpack, bcmolt_epon_denied_link_laser_on_off_violation_data_scan };
+static bcmolt_group_info group_info_epon_denied_link_llid_pool_empty_violation = { BCMOLT_OBJ_ID_EPON_DENIED_LINK, BCMOLT_MGT_GROUP_AUTO, 1, sizeof(bcmolt_epon_denied_link_llid_pool_empty_violation_data), sizeof(bcmolt_epon_denied_link_llid_pool_empty_violation), offsetof(bcmolt_epon_denied_link_llid_pool_empty_violation, data), (bcmolt_func_packed_len) bcmolt_epon_denied_link_llid_pool_empty_violation_data_get_packed_length, (bcmolt_func_pack) bcmolt_epon_denied_link_llid_pool_empty_violation_data_pack, (bcmolt_func_unpack) bcmolt_epon_denied_link_llid_pool_empty_violation_data_unpack, bcmolt_epon_denied_link_llid_pool_empty_violation_data_scan };
+static bcmolt_group_info group_info_epon_denied_link_max_link_violation = { BCMOLT_OBJ_ID_EPON_DENIED_LINK, BCMOLT_MGT_GROUP_AUTO, 2, sizeof(bcmolt_epon_denied_link_max_link_violation_data), sizeof(bcmolt_epon_denied_link_max_link_violation), offsetof(bcmolt_epon_denied_link_max_link_violation, data), (bcmolt_func_packed_len) bcmolt_epon_denied_link_max_link_violation_data_get_packed_length, (bcmolt_func_pack) bcmolt_epon_denied_link_max_link_violation_data_pack, (bcmolt_func_unpack) bcmolt_epon_denied_link_max_link_violation_data_unpack, bcmolt_epon_denied_link_max_link_violation_data_scan };
+static bcmolt_group_info group_info_epon_denied_link_overhead_profile_violation = { BCMOLT_OBJ_ID_EPON_DENIED_LINK, BCMOLT_MGT_GROUP_AUTO, 3, sizeof(bcmolt_epon_denied_link_overhead_profile_violation_data), sizeof(bcmolt_epon_denied_link_overhead_profile_violation), offsetof(bcmolt_epon_denied_link_overhead_profile_violation, data), (bcmolt_func_packed_len) bcmolt_epon_denied_link_overhead_profile_violation_data_get_packed_length, (bcmolt_func_pack) bcmolt_epon_denied_link_overhead_profile_violation_data_pack, (bcmolt_func_unpack) bcmolt_epon_denied_link_overhead_profile_violation_data_unpack, bcmolt_epon_denied_link_overhead_profile_violation_data_scan };
+static bcmolt_group_info group_info_epon_denied_link_range_violation = { BCMOLT_OBJ_ID_EPON_DENIED_LINK, BCMOLT_MGT_GROUP_AUTO, 4, sizeof(bcmolt_epon_denied_link_range_violation_data), sizeof(bcmolt_epon_denied_link_range_violation), offsetof(bcmolt_epon_denied_link_range_violation, data), (bcmolt_func_packed_len) bcmolt_epon_denied_link_range_violation_data_get_packed_length, (bcmolt_func_pack) bcmolt_epon_denied_link_range_violation_data_pack, (bcmolt_func_unpack) bcmolt_epon_denied_link_range_violation_data_unpack, bcmolt_epon_denied_link_range_violation_data_scan };
+static bcmolt_group_info group_info_epon_denied_link_rogue_violation = { BCMOLT_OBJ_ID_EPON_DENIED_LINK, BCMOLT_MGT_GROUP_AUTO, 5, sizeof(bcmolt_epon_denied_link_rogue_violation_data), sizeof(bcmolt_epon_denied_link_rogue_violation), offsetof(bcmolt_epon_denied_link_rogue_violation, data), (bcmolt_func_packed_len) bcmolt_epon_denied_link_rogue_violation_data_get_packed_length, (bcmolt_func_pack) bcmolt_epon_denied_link_rogue_violation_data_pack, (bcmolt_func_unpack) bcmolt_epon_denied_link_rogue_violation_data_unpack, bcmolt_epon_denied_link_rogue_violation_data_scan };
+static bcmolt_group_info group_info_epon_denied_link_system_resource_violation = { BCMOLT_OBJ_ID_EPON_DENIED_LINK, BCMOLT_MGT_GROUP_AUTO, 6, sizeof(bcmolt_epon_denied_link_system_resource_violation_data), sizeof(bcmolt_epon_denied_link_system_resource_violation), offsetof(bcmolt_epon_denied_link_system_resource_violation, data), (bcmolt_func_packed_len) bcmolt_epon_denied_link_system_resource_violation_data_get_packed_length, (bcmolt_func_pack) bcmolt_epon_denied_link_system_resource_violation_data_pack, (bcmolt_func_unpack) bcmolt_epon_denied_link_system_resource_violation_data_unpack, bcmolt_epon_denied_link_system_resource_violation_data_scan };
+static bcmolt_group_info group_info_epon_denied_link_tdm_channels_exhausted = { BCMOLT_OBJ_ID_EPON_DENIED_LINK, BCMOLT_MGT_GROUP_AUTO, 7, sizeof(bcmolt_epon_denied_link_tdm_channels_exhausted_data), sizeof(bcmolt_epon_denied_link_tdm_channels_exhausted), offsetof(bcmolt_epon_denied_link_tdm_channels_exhausted, data), (bcmolt_func_packed_len) bcmolt_epon_denied_link_tdm_channels_exhausted_data_get_packed_length, (bcmolt_func_pack) bcmolt_epon_denied_link_tdm_channels_exhausted_data_pack, (bcmolt_func_unpack) bcmolt_epon_denied_link_tdm_channels_exhausted_data_unpack, bcmolt_epon_denied_link_tdm_channels_exhausted_data_scan };
+static bcmolt_group_info group_info_epon_denied_link_unknown_link_violation = { BCMOLT_OBJ_ID_EPON_DENIED_LINK, BCMOLT_MGT_GROUP_AUTO, 8, sizeof(bcmolt_epon_denied_link_unknown_link_violation_data), sizeof(bcmolt_epon_denied_link_unknown_link_violation), offsetof(bcmolt_epon_denied_link_unknown_link_violation, data), (bcmolt_func_packed_len) bcmolt_epon_denied_link_unknown_link_violation_data_get_packed_length, (bcmolt_func_pack) bcmolt_epon_denied_link_unknown_link_violation_data_pack, (bcmolt_func_unpack) bcmolt_epon_denied_link_unknown_link_violation_data_unpack, bcmolt_epon_denied_link_unknown_link_violation_data_scan };
+static bcmolt_group_info group_info_epon_denied_link_upstream_bandwidth_violation = { BCMOLT_OBJ_ID_EPON_DENIED_LINK, BCMOLT_MGT_GROUP_AUTO, 9, sizeof(bcmolt_epon_denied_link_upstream_bandwidth_violation_data), sizeof(bcmolt_epon_denied_link_upstream_bandwidth_violation), offsetof(bcmolt_epon_denied_link_upstream_bandwidth_violation, data), (bcmolt_func_packed_len) bcmolt_epon_denied_link_upstream_bandwidth_violation_data_get_packed_length, (bcmolt_func_pack) bcmolt_epon_denied_link_upstream_bandwidth_violation_data_pack, (bcmolt_func_unpack) bcmolt_epon_denied_link_upstream_bandwidth_violation_data_unpack, bcmolt_epon_denied_link_upstream_bandwidth_violation_data_scan };
+static bcmolt_group_info group_info_epon_denied_link_auto_cfg = { BCMOLT_OBJ_ID_EPON_DENIED_LINK, BCMOLT_MGT_GROUP_AUTO_CFG, 0, sizeof(bcmolt_epon_denied_link_auto_cfg_data), sizeof(bcmolt_epon_denied_link_auto_cfg), offsetof(bcmolt_epon_denied_link_auto_cfg, data), (bcmolt_func_packed_len) bcmolt_epon_denied_link_auto_cfg_data_get_packed_length, (bcmolt_func_pack) bcmolt_epon_denied_link_auto_cfg_data_pack, (bcmolt_func_unpack) bcmolt_epon_denied_link_auto_cfg_data_unpack, bcmolt_epon_denied_link_auto_cfg_data_scan };
+static bcmolt_group_info group_info_epon_link_key = { BCMOLT_OBJ_ID_EPON_LINK, BCMOLT_MGT_GROUP_KEY, 0, sizeof(bcmolt_epon_link_key), 0, 0, (bcmolt_func_packed_len) bcmolt_epon_link_key_get_packed_length, (bcmolt_func_pack) bcmolt_epon_link_key_pack, (bcmolt_func_unpack) bcmolt_epon_link_key_unpack, bcmolt_epon_link_key_scan };
+static bcmolt_group_info group_info_epon_link_cfg = { BCMOLT_OBJ_ID_EPON_LINK, BCMOLT_MGT_GROUP_CFG, 0, sizeof(bcmolt_epon_link_cfg_data), sizeof(bcmolt_epon_link_cfg), offsetof(bcmolt_epon_link_cfg, data), (bcmolt_func_packed_len) bcmolt_epon_link_cfg_data_get_packed_length, (bcmolt_func_pack) bcmolt_epon_link_cfg_data_pack, (bcmolt_func_unpack) bcmolt_epon_link_cfg_data_unpack, bcmolt_epon_link_cfg_data_scan };
+static bcmolt_group_info group_info_epon_link_stat = { BCMOLT_OBJ_ID_EPON_LINK, BCMOLT_MGT_GROUP_STAT, 0, sizeof(bcmolt_epon_link_stat_data), sizeof(bcmolt_epon_link_stat), offsetof(bcmolt_epon_link_stat, data), (bcmolt_func_packed_len) bcmolt_epon_link_stat_data_get_packed_length, (bcmolt_func_pack) bcmolt_epon_link_stat_data_pack, (bcmolt_func_unpack) bcmolt_epon_link_stat_data_unpack, bcmolt_epon_link_stat_data_scan };
+static bcmolt_group_info group_info_epon_link_stat_cfg = { BCMOLT_OBJ_ID_EPON_LINK, BCMOLT_MGT_GROUP_STAT_CFG, 0, sizeof(bcmolt_epon_link_stat_cfg_data), sizeof(bcmolt_epon_link_stat_cfg), offsetof(bcmolt_epon_link_stat_cfg, data), (bcmolt_func_packed_len) bcmolt_epon_link_stat_cfg_data_get_packed_length, (bcmolt_func_pack) bcmolt_epon_link_stat_cfg_data_pack, (bcmolt_func_unpack) bcmolt_epon_link_stat_cfg_data_unpack, bcmolt_epon_link_stat_cfg_data_scan };
+static bcmolt_group_info group_info_epon_link_duplicate_mpcp_registration_request = { BCMOLT_OBJ_ID_EPON_LINK, BCMOLT_MGT_GROUP_AUTO, 0, sizeof(bcmolt_epon_link_duplicate_mpcp_registration_request_data), sizeof(bcmolt_epon_link_duplicate_mpcp_registration_request), offsetof(bcmolt_epon_link_duplicate_mpcp_registration_request, data), (bcmolt_func_packed_len) bcmolt_epon_link_duplicate_mpcp_registration_request_data_get_packed_length, (bcmolt_func_pack) bcmolt_epon_link_duplicate_mpcp_registration_request_data_pack, (bcmolt_func_unpack) bcmolt_epon_link_duplicate_mpcp_registration_request_data_unpack, bcmolt_epon_link_duplicate_mpcp_registration_request_data_scan };
+static bcmolt_group_info group_info_epon_link_encryption_enabled = { BCMOLT_OBJ_ID_EPON_LINK, BCMOLT_MGT_GROUP_AUTO, 1, 0, 0, 0, NULL, NULL, NULL };
+static bcmolt_group_info group_info_epon_link_key_exchange_failure = { BCMOLT_OBJ_ID_EPON_LINK, BCMOLT_MGT_GROUP_AUTO, 2, sizeof(bcmolt_epon_link_key_exchange_failure_data), sizeof(bcmolt_epon_link_key_exchange_failure), offsetof(bcmolt_epon_link_key_exchange_failure, data), (bcmolt_func_packed_len) bcmolt_epon_link_key_exchange_failure_data_get_packed_length, (bcmolt_func_pack) bcmolt_epon_link_key_exchange_failure_data_pack, (bcmolt_func_unpack) bcmolt_epon_link_key_exchange_failure_data_unpack, bcmolt_epon_link_key_exchange_failure_data_scan };
+static bcmolt_group_info group_info_epon_link_key_exchange_started = { BCMOLT_OBJ_ID_EPON_LINK, BCMOLT_MGT_GROUP_AUTO, 3, 0, 0, 0, NULL, NULL, NULL };
+static bcmolt_group_info group_info_epon_link_key_exchange_stopped = { BCMOLT_OBJ_ID_EPON_LINK, BCMOLT_MGT_GROUP_AUTO, 4, 0, 0, 0, NULL, NULL, NULL };
+static bcmolt_group_info group_info_epon_link_link_deleted = { BCMOLT_OBJ_ID_EPON_LINK, BCMOLT_MGT_GROUP_AUTO, 5, 0, 0, 0, NULL, NULL, NULL };
+static bcmolt_group_info group_info_epon_link_link_speed_mismatch = { BCMOLT_OBJ_ID_EPON_LINK, BCMOLT_MGT_GROUP_AUTO, 6, sizeof(bcmolt_epon_link_link_speed_mismatch_data), sizeof(bcmolt_epon_link_link_speed_mismatch), offsetof(bcmolt_epon_link_link_speed_mismatch, data), (bcmolt_func_packed_len) bcmolt_epon_link_link_speed_mismatch_data_get_packed_length, (bcmolt_func_pack) bcmolt_epon_link_link_speed_mismatch_data_pack, (bcmolt_func_unpack) bcmolt_epon_link_link_speed_mismatch_data_unpack, bcmolt_epon_link_link_speed_mismatch_data_scan };
+static bcmolt_group_info group_info_epon_link_mpcp_deregistered = { BCMOLT_OBJ_ID_EPON_LINK, BCMOLT_MGT_GROUP_AUTO, 7, 0, 0, 0, NULL, NULL, NULL };
+static bcmolt_group_info group_info_epon_link_mpcp_discovered = { BCMOLT_OBJ_ID_EPON_LINK, BCMOLT_MGT_GROUP_AUTO, 8, sizeof(bcmolt_epon_link_mpcp_discovered_data), sizeof(bcmolt_epon_link_mpcp_discovered), offsetof(bcmolt_epon_link_mpcp_discovered, data), (bcmolt_func_packed_len) bcmolt_epon_link_mpcp_discovered_data_get_packed_length, (bcmolt_func_pack) bcmolt_epon_link_mpcp_discovered_data_pack, (bcmolt_func_unpack) bcmolt_epon_link_mpcp_discovered_data_unpack, bcmolt_epon_link_mpcp_discovered_data_scan };
+static bcmolt_group_info group_info_epon_link_mpcp_reg_ack_timeout = { BCMOLT_OBJ_ID_EPON_LINK, BCMOLT_MGT_GROUP_AUTO, 9, 0, 0, 0, NULL, NULL, NULL };
+static bcmolt_group_info group_info_epon_link_mpcp_report_timeout = { BCMOLT_OBJ_ID_EPON_LINK, BCMOLT_MGT_GROUP_AUTO, 10, sizeof(bcmolt_epon_link_mpcp_report_timeout_data), sizeof(bcmolt_epon_link_mpcp_report_timeout), offsetof(bcmolt_epon_link_mpcp_report_timeout, data), (bcmolt_func_packed_len) bcmolt_epon_link_mpcp_report_timeout_data_get_packed_length, (bcmolt_func_pack) bcmolt_epon_link_mpcp_report_timeout_data_pack, (bcmolt_func_unpack) bcmolt_epon_link_mpcp_report_timeout_data_unpack, bcmolt_epon_link_mpcp_report_timeout_data_scan };
+static bcmolt_group_info group_info_epon_link_oam_keepalive_timeout = { BCMOLT_OBJ_ID_EPON_LINK, BCMOLT_MGT_GROUP_AUTO, 11, sizeof(bcmolt_epon_link_oam_keepalive_timeout_data), sizeof(bcmolt_epon_link_oam_keepalive_timeout), offsetof(bcmolt_epon_link_oam_keepalive_timeout, data), (bcmolt_func_packed_len) bcmolt_epon_link_oam_keepalive_timeout_data_get_packed_length, (bcmolt_func_pack) bcmolt_epon_link_oam_keepalive_timeout_data_pack, (bcmolt_func_unpack) bcmolt_epon_link_oam_keepalive_timeout_data_unpack, bcmolt_epon_link_oam_keepalive_timeout_data_scan };
+static bcmolt_group_info group_info_epon_link_oam_keepalive_timer_started = { BCMOLT_OBJ_ID_EPON_LINK, BCMOLT_MGT_GROUP_AUTO, 12, 0, 0, 0, NULL, NULL, NULL };
+static bcmolt_group_info group_info_epon_link_oam_keepalive_timer_stopped = { BCMOLT_OBJ_ID_EPON_LINK, BCMOLT_MGT_GROUP_AUTO, 13, 0, 0, 0, NULL, NULL, NULL };
+static bcmolt_group_info group_info_epon_link_preprovisioned_link_created = { BCMOLT_OBJ_ID_EPON_LINK, BCMOLT_MGT_GROUP_AUTO, 14, sizeof(bcmolt_epon_link_preprovisioned_link_created_data), sizeof(bcmolt_epon_link_preprovisioned_link_created), offsetof(bcmolt_epon_link_preprovisioned_link_created, data), (bcmolt_func_packed_len) bcmolt_epon_link_preprovisioned_link_created_data_get_packed_length, (bcmolt_func_pack) bcmolt_epon_link_preprovisioned_link_created_data_pack, (bcmolt_func_unpack) bcmolt_epon_link_preprovisioned_link_created_data_unpack, bcmolt_epon_link_preprovisioned_link_created_data_scan };
+static bcmolt_group_info group_info_epon_link_protection_switch_occurred = { BCMOLT_OBJ_ID_EPON_LINK, BCMOLT_MGT_GROUP_AUTO, 15, sizeof(bcmolt_epon_link_protection_switch_occurred_data), sizeof(bcmolt_epon_link_protection_switch_occurred), offsetof(bcmolt_epon_link_protection_switch_occurred, data), (bcmolt_func_packed_len) bcmolt_epon_link_protection_switch_occurred_data_get_packed_length, (bcmolt_func_pack) bcmolt_epon_link_protection_switch_occurred_data_pack, (bcmolt_func_unpack) bcmolt_epon_link_protection_switch_occurred_data_unpack, bcmolt_epon_link_protection_switch_occurred_data_scan };
+static bcmolt_group_info group_info_epon_link_range_value_changed = { BCMOLT_OBJ_ID_EPON_LINK, BCMOLT_MGT_GROUP_AUTO, 16, sizeof(bcmolt_epon_link_range_value_changed_data), sizeof(bcmolt_epon_link_range_value_changed), offsetof(bcmolt_epon_link_range_value_changed, data), (bcmolt_func_packed_len) bcmolt_epon_link_range_value_changed_data_get_packed_length, (bcmolt_func_pack) bcmolt_epon_link_range_value_changed_data_pack, (bcmolt_func_unpack) bcmolt_epon_link_range_value_changed_data_unpack, bcmolt_epon_link_range_value_changed_data_scan };
+static bcmolt_group_info group_info_epon_link_rerange_failure = { BCMOLT_OBJ_ID_EPON_LINK, BCMOLT_MGT_GROUP_AUTO, 17, 0, 0, 0, NULL, NULL, NULL };
+static bcmolt_group_info group_info_epon_link_stat_alarm_cleared = { BCMOLT_OBJ_ID_EPON_LINK, BCMOLT_MGT_GROUP_AUTO, 18, sizeof(bcmolt_epon_link_stat_alarm_cleared_data), sizeof(bcmolt_epon_link_stat_alarm_cleared), offsetof(bcmolt_epon_link_stat_alarm_cleared, data), (bcmolt_func_packed_len) bcmolt_epon_link_stat_alarm_cleared_data_get_packed_length, (bcmolt_func_pack) bcmolt_epon_link_stat_alarm_cleared_data_pack, (bcmolt_func_unpack) bcmolt_epon_link_stat_alarm_cleared_data_unpack, bcmolt_epon_link_stat_alarm_cleared_data_scan };
+static bcmolt_group_info group_info_epon_link_stat_alarm_raised = { BCMOLT_OBJ_ID_EPON_LINK, BCMOLT_MGT_GROUP_AUTO, 19, sizeof(bcmolt_epon_link_stat_alarm_raised_data), sizeof(bcmolt_epon_link_stat_alarm_raised), offsetof(bcmolt_epon_link_stat_alarm_raised, data), (bcmolt_func_packed_len) bcmolt_epon_link_stat_alarm_raised_data_get_packed_length, (bcmolt_func_pack) bcmolt_epon_link_stat_alarm_raised_data_pack, (bcmolt_func_unpack) bcmolt_epon_link_stat_alarm_raised_data_unpack, bcmolt_epon_link_stat_alarm_raised_data_scan };
+static bcmolt_group_info group_info_epon_link_static_registration_done = { BCMOLT_OBJ_ID_EPON_LINK, BCMOLT_MGT_GROUP_AUTO, 20, 0, 0, 0, NULL, NULL, NULL };
+static bcmolt_group_info group_info_epon_link_auto_cfg = { BCMOLT_OBJ_ID_EPON_LINK, BCMOLT_MGT_GROUP_AUTO_CFG, 0, sizeof(bcmolt_epon_link_auto_cfg_data), sizeof(bcmolt_epon_link_auto_cfg), offsetof(bcmolt_epon_link_auto_cfg, data), (bcmolt_func_packed_len) bcmolt_epon_link_auto_cfg_data_get_packed_length, (bcmolt_func_pack) bcmolt_epon_link_auto_cfg_data_pack, (bcmolt_func_unpack) bcmolt_epon_link_auto_cfg_data_unpack, bcmolt_epon_link_auto_cfg_data_scan };
+static bcmolt_group_info group_info_epon_link_delete_link = { BCMOLT_OBJ_ID_EPON_LINK, BCMOLT_MGT_GROUP_OPER, 0, 0, 0, 0, NULL, NULL, NULL };
+static bcmolt_group_info group_info_epon_link_force_rediscovery = { BCMOLT_OBJ_ID_EPON_LINK, BCMOLT_MGT_GROUP_OPER, 1, 0, 0, 0, NULL, NULL, NULL };
+static bcmolt_group_info group_info_epon_link_key_exchange_start = { BCMOLT_OBJ_ID_EPON_LINK, BCMOLT_MGT_GROUP_OPER, 2, sizeof(bcmolt_epon_link_key_exchange_start_data), sizeof(bcmolt_epon_link_key_exchange_start), offsetof(bcmolt_epon_link_key_exchange_start, data), (bcmolt_func_packed_len) bcmolt_epon_link_key_exchange_start_data_get_packed_length, (bcmolt_func_pack) bcmolt_epon_link_key_exchange_start_data_pack, (bcmolt_func_unpack) bcmolt_epon_link_key_exchange_start_data_unpack, bcmolt_epon_link_key_exchange_start_data_scan };
+static bcmolt_group_info group_info_epon_link_key_exchange_stop = { BCMOLT_OBJ_ID_EPON_LINK, BCMOLT_MGT_GROUP_OPER, 3, 0, 0, 0, NULL, NULL, NULL };
+static bcmolt_group_info group_info_epon_link_oam_keepalive_timer_start = { BCMOLT_OBJ_ID_EPON_LINK, BCMOLT_MGT_GROUP_OPER, 4, sizeof(bcmolt_epon_link_oam_keepalive_timer_start_data), sizeof(bcmolt_epon_link_oam_keepalive_timer_start), offsetof(bcmolt_epon_link_oam_keepalive_timer_start, data), (bcmolt_func_packed_len) bcmolt_epon_link_oam_keepalive_timer_start_data_get_packed_length, (bcmolt_func_pack) bcmolt_epon_link_oam_keepalive_timer_start_data_pack, (bcmolt_func_unpack) bcmolt_epon_link_oam_keepalive_timer_start_data_unpack, bcmolt_epon_link_oam_keepalive_timer_start_data_scan };
+static bcmolt_group_info group_info_epon_link_oam_keepalive_timer_stop = { BCMOLT_OBJ_ID_EPON_LINK, BCMOLT_MGT_GROUP_OPER, 5, 0, 0, 0, NULL, NULL, NULL };
+static bcmolt_group_info group_info_epon_link_static_registration = { BCMOLT_OBJ_ID_EPON_LINK, BCMOLT_MGT_GROUP_OPER, 6, sizeof(bcmolt_epon_link_static_registration_data), sizeof(bcmolt_epon_link_static_registration), offsetof(bcmolt_epon_link_static_registration, data), (bcmolt_func_packed_len) bcmolt_epon_link_static_registration_data_get_packed_length, (bcmolt_func_pack) bcmolt_epon_link_static_registration_data_pack, (bcmolt_func_unpack) bcmolt_epon_link_static_registration_data_unpack, bcmolt_epon_link_static_registration_data_scan };
+static bcmolt_group_info group_info_epon_link_inject_frame = { BCMOLT_OBJ_ID_EPON_LINK, BCMOLT_MGT_GROUP_PROXY, 0, sizeof(bcmolt_epon_link_inject_frame_data), sizeof(bcmolt_epon_link_inject_frame), offsetof(bcmolt_epon_link_inject_frame, data), (bcmolt_func_packed_len) bcmolt_epon_link_inject_frame_data_get_packed_length, (bcmolt_func_pack) bcmolt_epon_link_inject_frame_data_pack, (bcmolt_func_unpack) bcmolt_epon_link_inject_frame_data_unpack, bcmolt_epon_link_inject_frame_data_scan };
+static bcmolt_group_info group_info_epon_link_frame_captured = { BCMOLT_OBJ_ID_EPON_LINK, BCMOLT_MGT_GROUP_PROXY_RX, 0, sizeof(bcmolt_epon_link_frame_captured_data), sizeof(bcmolt_epon_link_frame_captured), offsetof(bcmolt_epon_link_frame_captured, data), (bcmolt_func_packed_len) bcmolt_epon_link_frame_captured_data_get_packed_length, (bcmolt_func_pack) bcmolt_epon_link_frame_captured_data_pack, (bcmolt_func_unpack) bcmolt_epon_link_frame_captured_data_unpack, bcmolt_epon_link_frame_captured_data_scan };
+static bcmolt_group_info group_info_epon_ni_key = { BCMOLT_OBJ_ID_EPON_NI, BCMOLT_MGT_GROUP_KEY, 0, sizeof(bcmolt_epon_ni_key), 0, 0, (bcmolt_func_packed_len) bcmolt_epon_ni_key_get_packed_length, (bcmolt_func_pack) bcmolt_epon_ni_key_pack, (bcmolt_func_unpack) bcmolt_epon_ni_key_unpack, bcmolt_epon_ni_key_scan };
+static bcmolt_group_info group_info_epon_ni_cfg = { BCMOLT_OBJ_ID_EPON_NI, BCMOLT_MGT_GROUP_CFG, 0, sizeof(bcmolt_epon_ni_cfg_data), sizeof(bcmolt_epon_ni_cfg), offsetof(bcmolt_epon_ni_cfg, data), (bcmolt_func_packed_len) bcmolt_epon_ni_cfg_data_get_packed_length, (bcmolt_func_pack) bcmolt_epon_ni_cfg_data_pack, (bcmolt_func_unpack) bcmolt_epon_ni_cfg_data_unpack, bcmolt_epon_ni_cfg_data_scan };
+static bcmolt_group_info group_info_epon_ni_auto_rogue_scan_10g_failure = { BCMOLT_OBJ_ID_EPON_NI, BCMOLT_MGT_GROUP_AUTO, 0, 0, 0, 0, NULL, NULL, NULL };
+static bcmolt_group_info group_info_epon_ni_auto_rogue_scan_1g_failure = { BCMOLT_OBJ_ID_EPON_NI, BCMOLT_MGT_GROUP_AUTO, 1, 0, 0, 0, NULL, NULL, NULL };
+static bcmolt_group_info group_info_epon_ni_llid_quarantined = { BCMOLT_OBJ_ID_EPON_NI, BCMOLT_MGT_GROUP_AUTO, 2, sizeof(bcmolt_epon_ni_llid_quarantined_data), sizeof(bcmolt_epon_ni_llid_quarantined), offsetof(bcmolt_epon_ni_llid_quarantined, data), (bcmolt_func_packed_len) bcmolt_epon_ni_llid_quarantined_data_get_packed_length, (bcmolt_func_pack) bcmolt_epon_ni_llid_quarantined_data_pack, (bcmolt_func_unpack) bcmolt_epon_ni_llid_quarantined_data_unpack, bcmolt_epon_ni_llid_quarantined_data_scan };
+static bcmolt_group_info group_info_epon_ni_mpcp_timestamp_changed = { BCMOLT_OBJ_ID_EPON_NI, BCMOLT_MGT_GROUP_AUTO, 3, sizeof(bcmolt_epon_ni_mpcp_timestamp_changed_data), sizeof(bcmolt_epon_ni_mpcp_timestamp_changed), offsetof(bcmolt_epon_ni_mpcp_timestamp_changed, data), (bcmolt_func_packed_len) bcmolt_epon_ni_mpcp_timestamp_changed_data_get_packed_length, (bcmolt_func_pack) bcmolt_epon_ni_mpcp_timestamp_changed_data_pack, (bcmolt_func_unpack) bcmolt_epon_ni_mpcp_timestamp_changed_data_unpack, bcmolt_epon_ni_mpcp_timestamp_changed_data_scan };
+static bcmolt_group_info group_info_epon_ni_no_reports = { BCMOLT_OBJ_ID_EPON_NI, BCMOLT_MGT_GROUP_AUTO, 4, sizeof(bcmolt_epon_ni_no_reports_data), sizeof(bcmolt_epon_ni_no_reports), offsetof(bcmolt_epon_ni_no_reports, data), (bcmolt_func_packed_len) bcmolt_epon_ni_no_reports_data_get_packed_length, (bcmolt_func_pack) bcmolt_epon_ni_no_reports_data_pack, (bcmolt_func_unpack) bcmolt_epon_ni_no_reports_data_unpack, bcmolt_epon_ni_no_reports_data_scan };
+static bcmolt_group_info group_info_epon_ni_onu_upgrade_complete = { BCMOLT_OBJ_ID_EPON_NI, BCMOLT_MGT_GROUP_AUTO, 5, sizeof(bcmolt_epon_ni_onu_upgrade_complete_data), sizeof(bcmolt_epon_ni_onu_upgrade_complete), offsetof(bcmolt_epon_ni_onu_upgrade_complete, data), (bcmolt_func_packed_len) bcmolt_epon_ni_onu_upgrade_complete_data_get_packed_length, (bcmolt_func_pack) bcmolt_epon_ni_onu_upgrade_complete_data_pack, (bcmolt_func_unpack) bcmolt_epon_ni_onu_upgrade_complete_data_unpack, bcmolt_epon_ni_onu_upgrade_complete_data_scan };
+static bcmolt_group_info group_info_epon_ni_rerange_failure = { BCMOLT_OBJ_ID_EPON_NI, BCMOLT_MGT_GROUP_AUTO, 6, 0, 0, 0, NULL, NULL, NULL };
+static bcmolt_group_info group_info_epon_ni_rogue_scan_complete = { BCMOLT_OBJ_ID_EPON_NI, BCMOLT_MGT_GROUP_AUTO, 7, sizeof(bcmolt_epon_ni_rogue_scan_complete_data), sizeof(bcmolt_epon_ni_rogue_scan_complete), offsetof(bcmolt_epon_ni_rogue_scan_complete, data), (bcmolt_func_packed_len) bcmolt_epon_ni_rogue_scan_complete_data_get_packed_length, (bcmolt_func_pack) bcmolt_epon_ni_rogue_scan_complete_data_pack, (bcmolt_func_unpack) bcmolt_epon_ni_rogue_scan_complete_data_unpack, bcmolt_epon_ni_rogue_scan_complete_data_scan };
+static bcmolt_group_info group_info_epon_ni_rssi_measurement_completed = { BCMOLT_OBJ_ID_EPON_NI, BCMOLT_MGT_GROUP_AUTO, 8, sizeof(bcmolt_epon_ni_rssi_measurement_completed_data), sizeof(bcmolt_epon_ni_rssi_measurement_completed), offsetof(bcmolt_epon_ni_rssi_measurement_completed, data), (bcmolt_func_packed_len) bcmolt_epon_ni_rssi_measurement_completed_data_get_packed_length, (bcmolt_func_pack) bcmolt_epon_ni_rssi_measurement_completed_data_pack, (bcmolt_func_unpack) bcmolt_epon_ni_rssi_measurement_completed_data_unpack, bcmolt_epon_ni_rssi_measurement_completed_data_scan };
+static bcmolt_group_info group_info_epon_ni_state_change_completed = { BCMOLT_OBJ_ID_EPON_NI, BCMOLT_MGT_GROUP_AUTO, 9, sizeof(bcmolt_epon_ni_state_change_completed_data), sizeof(bcmolt_epon_ni_state_change_completed), offsetof(bcmolt_epon_ni_state_change_completed, data), (bcmolt_func_packed_len) bcmolt_epon_ni_state_change_completed_data_get_packed_length, (bcmolt_func_pack) bcmolt_epon_ni_state_change_completed_data_pack, (bcmolt_func_unpack) bcmolt_epon_ni_state_change_completed_data_unpack, bcmolt_epon_ni_state_change_completed_data_scan };
+static bcmolt_group_info group_info_epon_ni_auto_cfg = { BCMOLT_OBJ_ID_EPON_NI, BCMOLT_MGT_GROUP_AUTO_CFG, 0, sizeof(bcmolt_epon_ni_auto_cfg_data), sizeof(bcmolt_epon_ni_auto_cfg), offsetof(bcmolt_epon_ni_auto_cfg, data), (bcmolt_func_packed_len) bcmolt_epon_ni_auto_cfg_data_get_packed_length, (bcmolt_func_pack) bcmolt_epon_ni_auto_cfg_data_pack, (bcmolt_func_unpack) bcmolt_epon_ni_auto_cfg_data_unpack, bcmolt_epon_ni_auto_cfg_data_scan };
+static bcmolt_group_info group_info_epon_ni_add_link = { BCMOLT_OBJ_ID_EPON_NI, BCMOLT_MGT_GROUP_OPER, 0, sizeof(bcmolt_epon_ni_add_link_data), sizeof(bcmolt_epon_ni_add_link), offsetof(bcmolt_epon_ni_add_link, data), (bcmolt_func_packed_len) bcmolt_epon_ni_add_link_data_get_packed_length, (bcmolt_func_pack) bcmolt_epon_ni_add_link_data_pack, (bcmolt_func_unpack) bcmolt_epon_ni_add_link_data_unpack, bcmolt_epon_ni_add_link_data_scan };
+static bcmolt_group_info group_info_epon_ni_add_multicast_link = { BCMOLT_OBJ_ID_EPON_NI, BCMOLT_MGT_GROUP_OPER, 1, sizeof(bcmolt_epon_ni_add_multicast_link_data), sizeof(bcmolt_epon_ni_add_multicast_link), offsetof(bcmolt_epon_ni_add_multicast_link, data), (bcmolt_func_packed_len) bcmolt_epon_ni_add_multicast_link_data_get_packed_length, (bcmolt_func_pack) bcmolt_epon_ni_add_multicast_link_data_pack, (bcmolt_func_unpack) bcmolt_epon_ni_add_multicast_link_data_unpack, bcmolt_epon_ni_add_multicast_link_data_scan };
+static bcmolt_group_info group_info_epon_ni_add_protected_standby_link = { BCMOLT_OBJ_ID_EPON_NI, BCMOLT_MGT_GROUP_OPER, 2, sizeof(bcmolt_epon_ni_add_protected_standby_link_data), sizeof(bcmolt_epon_ni_add_protected_standby_link), offsetof(bcmolt_epon_ni_add_protected_standby_link, data), (bcmolt_func_packed_len) bcmolt_epon_ni_add_protected_standby_link_data_get_packed_length, (bcmolt_func_pack) bcmolt_epon_ni_add_protected_standby_link_data_pack, (bcmolt_func_unpack) bcmolt_epon_ni_add_protected_standby_link_data_unpack, bcmolt_epon_ni_add_protected_standby_link_data_scan };
+static bcmolt_group_info group_info_epon_ni_issue_rssi_grant = { BCMOLT_OBJ_ID_EPON_NI, BCMOLT_MGT_GROUP_OPER, 3, sizeof(bcmolt_epon_ni_issue_rssi_grant_data), sizeof(bcmolt_epon_ni_issue_rssi_grant), offsetof(bcmolt_epon_ni_issue_rssi_grant, data), (bcmolt_func_packed_len) bcmolt_epon_ni_issue_rssi_grant_data_get_packed_length, (bcmolt_func_pack) bcmolt_epon_ni_issue_rssi_grant_data_pack, (bcmolt_func_unpack) bcmolt_epon_ni_issue_rssi_grant_data_unpack, bcmolt_epon_ni_issue_rssi_grant_data_scan };
+static bcmolt_group_info group_info_epon_ni_protection_switching_apply_rerange_delta = { BCMOLT_OBJ_ID_EPON_NI, BCMOLT_MGT_GROUP_OPER, 4, sizeof(bcmolt_epon_ni_protection_switching_apply_rerange_delta_data), sizeof(bcmolt_epon_ni_protection_switching_apply_rerange_delta), offsetof(bcmolt_epon_ni_protection_switching_apply_rerange_delta, data), (bcmolt_func_packed_len) bcmolt_epon_ni_protection_switching_apply_rerange_delta_data_get_packed_length, (bcmolt_func_pack) bcmolt_epon_ni_protection_switching_apply_rerange_delta_data_pack, (bcmolt_func_unpack) bcmolt_epon_ni_protection_switching_apply_rerange_delta_data_unpack, bcmolt_epon_ni_protection_switching_apply_rerange_delta_data_scan };
+static bcmolt_group_info group_info_epon_ni_rogue_llid_scan = { BCMOLT_OBJ_ID_EPON_NI, BCMOLT_MGT_GROUP_OPER, 5, sizeof(bcmolt_epon_ni_rogue_llid_scan_data), sizeof(bcmolt_epon_ni_rogue_llid_scan), offsetof(bcmolt_epon_ni_rogue_llid_scan, data), (bcmolt_func_packed_len) bcmolt_epon_ni_rogue_llid_scan_data_get_packed_length, (bcmolt_func_pack) bcmolt_epon_ni_rogue_llid_scan_data_pack, (bcmolt_func_unpack) bcmolt_epon_ni_rogue_llid_scan_data_unpack, bcmolt_epon_ni_rogue_llid_scan_data_scan };
+static bcmolt_group_info group_info_epon_ni_set_epon_ni_en_state = { BCMOLT_OBJ_ID_EPON_NI, BCMOLT_MGT_GROUP_OPER, 6, sizeof(bcmolt_epon_ni_set_epon_ni_en_state_data), sizeof(bcmolt_epon_ni_set_epon_ni_en_state), offsetof(bcmolt_epon_ni_set_epon_ni_en_state, data), (bcmolt_func_packed_len) bcmolt_epon_ni_set_epon_ni_en_state_data_get_packed_length, (bcmolt_func_pack) bcmolt_epon_ni_set_epon_ni_en_state_data_pack, (bcmolt_func_unpack) bcmolt_epon_ni_set_epon_ni_en_state_data_unpack, bcmolt_epon_ni_set_epon_ni_en_state_data_scan };
+static bcmolt_group_info group_info_epon_ni_start_onu_upgrade = { BCMOLT_OBJ_ID_EPON_NI, BCMOLT_MGT_GROUP_OPER, 7, sizeof(bcmolt_epon_ni_start_onu_upgrade_data), sizeof(bcmolt_epon_ni_start_onu_upgrade), offsetof(bcmolt_epon_ni_start_onu_upgrade, data), (bcmolt_func_packed_len) bcmolt_epon_ni_start_onu_upgrade_data_get_packed_length, (bcmolt_func_pack) bcmolt_epon_ni_start_onu_upgrade_data_pack, (bcmolt_func_unpack) bcmolt_epon_ni_start_onu_upgrade_data_unpack, bcmolt_epon_ni_start_onu_upgrade_data_scan };
+static bcmolt_group_info group_info_epon_onu_10g_us_key = { BCMOLT_OBJ_ID_EPON_ONU_10G_US, BCMOLT_MGT_GROUP_KEY, 0, sizeof(bcmolt_epon_onu_10g_us_key), 0, 0, (bcmolt_func_packed_len) bcmolt_epon_onu_10g_us_key_get_packed_length, (bcmolt_func_pack) bcmolt_epon_onu_10g_us_key_pack, (bcmolt_func_unpack) bcmolt_epon_onu_10g_us_key_unpack, bcmolt_epon_onu_10g_us_key_scan };
+static bcmolt_group_info group_info_epon_onu_10g_us_cfg = { BCMOLT_OBJ_ID_EPON_ONU_10G_US, BCMOLT_MGT_GROUP_CFG, 0, sizeof(bcmolt_epon_onu_10g_us_cfg_data), sizeof(bcmolt_epon_onu_10g_us_cfg), offsetof(bcmolt_epon_onu_10g_us_cfg, data), (bcmolt_func_packed_len) bcmolt_epon_onu_10g_us_cfg_data_get_packed_length, (bcmolt_func_pack) bcmolt_epon_onu_10g_us_cfg_data_pack, (bcmolt_func_unpack) bcmolt_epon_onu_10g_us_cfg_data_unpack, bcmolt_epon_onu_10g_us_cfg_data_scan };
+static bcmolt_group_info group_info_epon_onu_10g_us_stat = { BCMOLT_OBJ_ID_EPON_ONU_10G_US, BCMOLT_MGT_GROUP_STAT, 0, sizeof(bcmolt_epon_onu_10g_us_stat_data), sizeof(bcmolt_epon_onu_10g_us_stat), offsetof(bcmolt_epon_onu_10g_us_stat, data), (bcmolt_func_packed_len) bcmolt_epon_onu_10g_us_stat_data_get_packed_length, (bcmolt_func_pack) bcmolt_epon_onu_10g_us_stat_data_pack, (bcmolt_func_unpack) bcmolt_epon_onu_10g_us_stat_data_unpack, bcmolt_epon_onu_10g_us_stat_data_scan };
+static bcmolt_group_info group_info_epon_onu_10g_us_stat_cfg = { BCMOLT_OBJ_ID_EPON_ONU_10G_US, BCMOLT_MGT_GROUP_STAT_CFG, 0, sizeof(bcmolt_epon_onu_10g_us_stat_cfg_data), sizeof(bcmolt_epon_onu_10g_us_stat_cfg), offsetof(bcmolt_epon_onu_10g_us_stat_cfg, data), (bcmolt_func_packed_len) bcmolt_epon_onu_10g_us_stat_cfg_data_get_packed_length, (bcmolt_func_pack) bcmolt_epon_onu_10g_us_stat_cfg_data_pack, (bcmolt_func_unpack) bcmolt_epon_onu_10g_us_stat_cfg_data_unpack, bcmolt_epon_onu_10g_us_stat_cfg_data_scan };
+static bcmolt_group_info group_info_epon_onu_10g_us_stat_alarm_cleared = { BCMOLT_OBJ_ID_EPON_ONU_10G_US, BCMOLT_MGT_GROUP_AUTO, 0, sizeof(bcmolt_epon_onu_10g_us_stat_alarm_cleared_data), sizeof(bcmolt_epon_onu_10g_us_stat_alarm_cleared), offsetof(bcmolt_epon_onu_10g_us_stat_alarm_cleared, data), (bcmolt_func_packed_len) bcmolt_epon_onu_10g_us_stat_alarm_cleared_data_get_packed_length, (bcmolt_func_pack) bcmolt_epon_onu_10g_us_stat_alarm_cleared_data_pack, (bcmolt_func_unpack) bcmolt_epon_onu_10g_us_stat_alarm_cleared_data_unpack, bcmolt_epon_onu_10g_us_stat_alarm_cleared_data_scan };
+static bcmolt_group_info group_info_epon_onu_10g_us_stat_alarm_raised = { BCMOLT_OBJ_ID_EPON_ONU_10G_US, BCMOLT_MGT_GROUP_AUTO, 1, sizeof(bcmolt_epon_onu_10g_us_stat_alarm_raised_data), sizeof(bcmolt_epon_onu_10g_us_stat_alarm_raised), offsetof(bcmolt_epon_onu_10g_us_stat_alarm_raised, data), (bcmolt_func_packed_len) bcmolt_epon_onu_10g_us_stat_alarm_raised_data_get_packed_length, (bcmolt_func_pack) bcmolt_epon_onu_10g_us_stat_alarm_raised_data_pack, (bcmolt_func_unpack) bcmolt_epon_onu_10g_us_stat_alarm_raised_data_unpack, bcmolt_epon_onu_10g_us_stat_alarm_raised_data_scan };
+static bcmolt_group_info group_info_epon_onu_10g_us_auto_cfg = { BCMOLT_OBJ_ID_EPON_ONU_10G_US, BCMOLT_MGT_GROUP_AUTO_CFG, 0, sizeof(bcmolt_epon_onu_10g_us_auto_cfg_data), sizeof(bcmolt_epon_onu_10g_us_auto_cfg), offsetof(bcmolt_epon_onu_10g_us_auto_cfg, data), (bcmolt_func_packed_len) bcmolt_epon_onu_10g_us_auto_cfg_data_get_packed_length, (bcmolt_func_pack) bcmolt_epon_onu_10g_us_auto_cfg_data_pack, (bcmolt_func_unpack) bcmolt_epon_onu_10g_us_auto_cfg_data_unpack, bcmolt_epon_onu_10g_us_auto_cfg_data_scan };
+static bcmolt_group_info group_info_epon_onu_1g_us_key = { BCMOLT_OBJ_ID_EPON_ONU_1G_US, BCMOLT_MGT_GROUP_KEY, 0, sizeof(bcmolt_epon_onu_1g_us_key), 0, 0, (bcmolt_func_packed_len) bcmolt_epon_onu_1g_us_key_get_packed_length, (bcmolt_func_pack) bcmolt_epon_onu_1g_us_key_pack, (bcmolt_func_unpack) bcmolt_epon_onu_1g_us_key_unpack, bcmolt_epon_onu_1g_us_key_scan };
+static bcmolt_group_info group_info_epon_onu_1g_us_cfg = { BCMOLT_OBJ_ID_EPON_ONU_1G_US, BCMOLT_MGT_GROUP_CFG, 0, sizeof(bcmolt_epon_onu_1g_us_cfg_data), sizeof(bcmolt_epon_onu_1g_us_cfg), offsetof(bcmolt_epon_onu_1g_us_cfg, data), (bcmolt_func_packed_len) bcmolt_epon_onu_1g_us_cfg_data_get_packed_length, (bcmolt_func_pack) bcmolt_epon_onu_1g_us_cfg_data_pack, (bcmolt_func_unpack) bcmolt_epon_onu_1g_us_cfg_data_unpack, bcmolt_epon_onu_1g_us_cfg_data_scan };
+static bcmolt_group_info group_info_epon_onu_1g_us_stat = { BCMOLT_OBJ_ID_EPON_ONU_1G_US, BCMOLT_MGT_GROUP_STAT, 0, sizeof(bcmolt_epon_onu_1g_us_stat_data), sizeof(bcmolt_epon_onu_1g_us_stat), offsetof(bcmolt_epon_onu_1g_us_stat, data), (bcmolt_func_packed_len) bcmolt_epon_onu_1g_us_stat_data_get_packed_length, (bcmolt_func_pack) bcmolt_epon_onu_1g_us_stat_data_pack, (bcmolt_func_unpack) bcmolt_epon_onu_1g_us_stat_data_unpack, bcmolt_epon_onu_1g_us_stat_data_scan };
+static bcmolt_group_info group_info_epon_onu_1g_us_stat_cfg = { BCMOLT_OBJ_ID_EPON_ONU_1G_US, BCMOLT_MGT_GROUP_STAT_CFG, 0, sizeof(bcmolt_epon_onu_1g_us_stat_cfg_data), sizeof(bcmolt_epon_onu_1g_us_stat_cfg), offsetof(bcmolt_epon_onu_1g_us_stat_cfg, data), (bcmolt_func_packed_len) bcmolt_epon_onu_1g_us_stat_cfg_data_get_packed_length, (bcmolt_func_pack) bcmolt_epon_onu_1g_us_stat_cfg_data_pack, (bcmolt_func_unpack) bcmolt_epon_onu_1g_us_stat_cfg_data_unpack, bcmolt_epon_onu_1g_us_stat_cfg_data_scan };
+static bcmolt_group_info group_info_epon_onu_1g_us_stat_alarm_cleared = { BCMOLT_OBJ_ID_EPON_ONU_1G_US, BCMOLT_MGT_GROUP_AUTO, 0, sizeof(bcmolt_epon_onu_1g_us_stat_alarm_cleared_data), sizeof(bcmolt_epon_onu_1g_us_stat_alarm_cleared), offsetof(bcmolt_epon_onu_1g_us_stat_alarm_cleared, data), (bcmolt_func_packed_len) bcmolt_epon_onu_1g_us_stat_alarm_cleared_data_get_packed_length, (bcmolt_func_pack) bcmolt_epon_onu_1g_us_stat_alarm_cleared_data_pack, (bcmolt_func_unpack) bcmolt_epon_onu_1g_us_stat_alarm_cleared_data_unpack, bcmolt_epon_onu_1g_us_stat_alarm_cleared_data_scan };
+static bcmolt_group_info group_info_epon_onu_1g_us_stat_alarm_raised = { BCMOLT_OBJ_ID_EPON_ONU_1G_US, BCMOLT_MGT_GROUP_AUTO, 1, sizeof(bcmolt_epon_onu_1g_us_stat_alarm_raised_data), sizeof(bcmolt_epon_onu_1g_us_stat_alarm_raised), offsetof(bcmolt_epon_onu_1g_us_stat_alarm_raised, data), (bcmolt_func_packed_len) bcmolt_epon_onu_1g_us_stat_alarm_raised_data_get_packed_length, (bcmolt_func_pack) bcmolt_epon_onu_1g_us_stat_alarm_raised_data_pack, (bcmolt_func_unpack) bcmolt_epon_onu_1g_us_stat_alarm_raised_data_unpack, bcmolt_epon_onu_1g_us_stat_alarm_raised_data_scan };
+static bcmolt_group_info group_info_epon_onu_1g_us_auto_cfg = { BCMOLT_OBJ_ID_EPON_ONU_1G_US, BCMOLT_MGT_GROUP_AUTO_CFG, 0, sizeof(bcmolt_epon_onu_1g_us_auto_cfg_data), sizeof(bcmolt_epon_onu_1g_us_auto_cfg), offsetof(bcmolt_epon_onu_1g_us_auto_cfg, data), (bcmolt_func_packed_len) bcmolt_epon_onu_1g_us_auto_cfg_data_get_packed_length, (bcmolt_func_pack) bcmolt_epon_onu_1g_us_auto_cfg_data_pack, (bcmolt_func_unpack) bcmolt_epon_onu_1g_us_auto_cfg_data_unpack, bcmolt_epon_onu_1g_us_auto_cfg_data_scan };
+static bcmolt_group_info group_info_epon_path_10g_ds_key = { BCMOLT_OBJ_ID_EPON_PATH_10G_DS, BCMOLT_MGT_GROUP_KEY, 0, sizeof(bcmolt_epon_path_10g_ds_key), 0, 0, (bcmolt_func_packed_len) bcmolt_epon_path_10g_ds_key_get_packed_length, (bcmolt_func_pack) bcmolt_epon_path_10g_ds_key_pack, (bcmolt_func_unpack) bcmolt_epon_path_10g_ds_key_unpack, bcmolt_epon_path_10g_ds_key_scan };
+static bcmolt_group_info group_info_epon_path_10g_ds_cfg = { BCMOLT_OBJ_ID_EPON_PATH_10G_DS, BCMOLT_MGT_GROUP_CFG, 0, sizeof(bcmolt_epon_path_10g_ds_cfg_data), sizeof(bcmolt_epon_path_10g_ds_cfg), offsetof(bcmolt_epon_path_10g_ds_cfg, data), (bcmolt_func_packed_len) bcmolt_epon_path_10g_ds_cfg_data_get_packed_length, (bcmolt_func_pack) bcmolt_epon_path_10g_ds_cfg_data_pack, (bcmolt_func_unpack) bcmolt_epon_path_10g_ds_cfg_data_unpack, bcmolt_epon_path_10g_ds_cfg_data_scan };
+static bcmolt_group_info group_info_epon_path_10g_ds_stat = { BCMOLT_OBJ_ID_EPON_PATH_10G_DS, BCMOLT_MGT_GROUP_STAT, 0, sizeof(bcmolt_epon_path_10g_ds_stat_data), sizeof(bcmolt_epon_path_10g_ds_stat), offsetof(bcmolt_epon_path_10g_ds_stat, data), (bcmolt_func_packed_len) bcmolt_epon_path_10g_ds_stat_data_get_packed_length, (bcmolt_func_pack) bcmolt_epon_path_10g_ds_stat_data_pack, (bcmolt_func_unpack) bcmolt_epon_path_10g_ds_stat_data_unpack, bcmolt_epon_path_10g_ds_stat_data_scan };
+static bcmolt_group_info group_info_epon_path_10g_ds_stat_cfg = { BCMOLT_OBJ_ID_EPON_PATH_10G_DS, BCMOLT_MGT_GROUP_STAT_CFG, 0, sizeof(bcmolt_epon_path_10g_ds_stat_cfg_data), sizeof(bcmolt_epon_path_10g_ds_stat_cfg), offsetof(bcmolt_epon_path_10g_ds_stat_cfg, data), (bcmolt_func_packed_len) bcmolt_epon_path_10g_ds_stat_cfg_data_get_packed_length, (bcmolt_func_pack) bcmolt_epon_path_10g_ds_stat_cfg_data_pack, (bcmolt_func_unpack) bcmolt_epon_path_10g_ds_stat_cfg_data_unpack, bcmolt_epon_path_10g_ds_stat_cfg_data_scan };
+static bcmolt_group_info group_info_epon_path_10g_ds_stat_alarm_cleared = { BCMOLT_OBJ_ID_EPON_PATH_10G_DS, BCMOLT_MGT_GROUP_AUTO, 0, sizeof(bcmolt_epon_path_10g_ds_stat_alarm_cleared_data), sizeof(bcmolt_epon_path_10g_ds_stat_alarm_cleared), offsetof(bcmolt_epon_path_10g_ds_stat_alarm_cleared, data), (bcmolt_func_packed_len) bcmolt_epon_path_10g_ds_stat_alarm_cleared_data_get_packed_length, (bcmolt_func_pack) bcmolt_epon_path_10g_ds_stat_alarm_cleared_data_pack, (bcmolt_func_unpack) bcmolt_epon_path_10g_ds_stat_alarm_cleared_data_unpack, bcmolt_epon_path_10g_ds_stat_alarm_cleared_data_scan };
+static bcmolt_group_info group_info_epon_path_10g_ds_stat_alarm_raised = { BCMOLT_OBJ_ID_EPON_PATH_10G_DS, BCMOLT_MGT_GROUP_AUTO, 1, sizeof(bcmolt_epon_path_10g_ds_stat_alarm_raised_data), sizeof(bcmolt_epon_path_10g_ds_stat_alarm_raised), offsetof(bcmolt_epon_path_10g_ds_stat_alarm_raised, data), (bcmolt_func_packed_len) bcmolt_epon_path_10g_ds_stat_alarm_raised_data_get_packed_length, (bcmolt_func_pack) bcmolt_epon_path_10g_ds_stat_alarm_raised_data_pack, (bcmolt_func_unpack) bcmolt_epon_path_10g_ds_stat_alarm_raised_data_unpack, bcmolt_epon_path_10g_ds_stat_alarm_raised_data_scan };
+static bcmolt_group_info group_info_epon_path_10g_ds_auto_cfg = { BCMOLT_OBJ_ID_EPON_PATH_10G_DS, BCMOLT_MGT_GROUP_AUTO_CFG, 0, sizeof(bcmolt_epon_path_10g_ds_auto_cfg_data), sizeof(bcmolt_epon_path_10g_ds_auto_cfg), offsetof(bcmolt_epon_path_10g_ds_auto_cfg, data), (bcmolt_func_packed_len) bcmolt_epon_path_10g_ds_auto_cfg_data_get_packed_length, (bcmolt_func_pack) bcmolt_epon_path_10g_ds_auto_cfg_data_pack, (bcmolt_func_unpack) bcmolt_epon_path_10g_ds_auto_cfg_data_unpack, bcmolt_epon_path_10g_ds_auto_cfg_data_scan };
+static bcmolt_group_info group_info_epon_path_10g_us_key = { BCMOLT_OBJ_ID_EPON_PATH_10G_US, BCMOLT_MGT_GROUP_KEY, 0, sizeof(bcmolt_epon_path_10g_us_key), 0, 0, (bcmolt_func_packed_len) bcmolt_epon_path_10g_us_key_get_packed_length, (bcmolt_func_pack) bcmolt_epon_path_10g_us_key_pack, (bcmolt_func_unpack) bcmolt_epon_path_10g_us_key_unpack, bcmolt_epon_path_10g_us_key_scan };
+static bcmolt_group_info group_info_epon_path_10g_us_cfg = { BCMOLT_OBJ_ID_EPON_PATH_10G_US, BCMOLT_MGT_GROUP_CFG, 0, sizeof(bcmolt_epon_path_10g_us_cfg_data), sizeof(bcmolt_epon_path_10g_us_cfg), offsetof(bcmolt_epon_path_10g_us_cfg, data), (bcmolt_func_packed_len) bcmolt_epon_path_10g_us_cfg_data_get_packed_length, (bcmolt_func_pack) bcmolt_epon_path_10g_us_cfg_data_pack, (bcmolt_func_unpack) bcmolt_epon_path_10g_us_cfg_data_unpack, bcmolt_epon_path_10g_us_cfg_data_scan };
+static bcmolt_group_info group_info_epon_path_10g_us_stat = { BCMOLT_OBJ_ID_EPON_PATH_10G_US, BCMOLT_MGT_GROUP_STAT, 0, sizeof(bcmolt_epon_path_10g_us_stat_data), sizeof(bcmolt_epon_path_10g_us_stat), offsetof(bcmolt_epon_path_10g_us_stat, data), (bcmolt_func_packed_len) bcmolt_epon_path_10g_us_stat_data_get_packed_length, (bcmolt_func_pack) bcmolt_epon_path_10g_us_stat_data_pack, (bcmolt_func_unpack) bcmolt_epon_path_10g_us_stat_data_unpack, bcmolt_epon_path_10g_us_stat_data_scan };
+static bcmolt_group_info group_info_epon_path_10g_us_stat_cfg = { BCMOLT_OBJ_ID_EPON_PATH_10G_US, BCMOLT_MGT_GROUP_STAT_CFG, 0, sizeof(bcmolt_epon_path_10g_us_stat_cfg_data), sizeof(bcmolt_epon_path_10g_us_stat_cfg), offsetof(bcmolt_epon_path_10g_us_stat_cfg, data), (bcmolt_func_packed_len) bcmolt_epon_path_10g_us_stat_cfg_data_get_packed_length, (bcmolt_func_pack) bcmolt_epon_path_10g_us_stat_cfg_data_pack, (bcmolt_func_unpack) bcmolt_epon_path_10g_us_stat_cfg_data_unpack, bcmolt_epon_path_10g_us_stat_cfg_data_scan };
+static bcmolt_group_info group_info_epon_path_10g_us_stat_alarm_cleared = { BCMOLT_OBJ_ID_EPON_PATH_10G_US, BCMOLT_MGT_GROUP_AUTO, 0, sizeof(bcmolt_epon_path_10g_us_stat_alarm_cleared_data), sizeof(bcmolt_epon_path_10g_us_stat_alarm_cleared), offsetof(bcmolt_epon_path_10g_us_stat_alarm_cleared, data), (bcmolt_func_packed_len) bcmolt_epon_path_10g_us_stat_alarm_cleared_data_get_packed_length, (bcmolt_func_pack) bcmolt_epon_path_10g_us_stat_alarm_cleared_data_pack, (bcmolt_func_unpack) bcmolt_epon_path_10g_us_stat_alarm_cleared_data_unpack, bcmolt_epon_path_10g_us_stat_alarm_cleared_data_scan };
+static bcmolt_group_info group_info_epon_path_10g_us_stat_alarm_raised = { BCMOLT_OBJ_ID_EPON_PATH_10G_US, BCMOLT_MGT_GROUP_AUTO, 1, sizeof(bcmolt_epon_path_10g_us_stat_alarm_raised_data), sizeof(bcmolt_epon_path_10g_us_stat_alarm_raised), offsetof(bcmolt_epon_path_10g_us_stat_alarm_raised, data), (bcmolt_func_packed_len) bcmolt_epon_path_10g_us_stat_alarm_raised_data_get_packed_length, (bcmolt_func_pack) bcmolt_epon_path_10g_us_stat_alarm_raised_data_pack, (bcmolt_func_unpack) bcmolt_epon_path_10g_us_stat_alarm_raised_data_unpack, bcmolt_epon_path_10g_us_stat_alarm_raised_data_scan };
+static bcmolt_group_info group_info_epon_path_10g_us_auto_cfg = { BCMOLT_OBJ_ID_EPON_PATH_10G_US, BCMOLT_MGT_GROUP_AUTO_CFG, 0, sizeof(bcmolt_epon_path_10g_us_auto_cfg_data), sizeof(bcmolt_epon_path_10g_us_auto_cfg), offsetof(bcmolt_epon_path_10g_us_auto_cfg, data), (bcmolt_func_packed_len) bcmolt_epon_path_10g_us_auto_cfg_data_get_packed_length, (bcmolt_func_pack) bcmolt_epon_path_10g_us_auto_cfg_data_pack, (bcmolt_func_unpack) bcmolt_epon_path_10g_us_auto_cfg_data_unpack, bcmolt_epon_path_10g_us_auto_cfg_data_scan };
+static bcmolt_group_info group_info_epon_path_1g_ds_key = { BCMOLT_OBJ_ID_EPON_PATH_1G_DS, BCMOLT_MGT_GROUP_KEY, 0, sizeof(bcmolt_epon_path_1g_ds_key), 0, 0, (bcmolt_func_packed_len) bcmolt_epon_path_1g_ds_key_get_packed_length, (bcmolt_func_pack) bcmolt_epon_path_1g_ds_key_pack, (bcmolt_func_unpack) bcmolt_epon_path_1g_ds_key_unpack, bcmolt_epon_path_1g_ds_key_scan };
+static bcmolt_group_info group_info_epon_path_1g_ds_cfg = { BCMOLT_OBJ_ID_EPON_PATH_1G_DS, BCMOLT_MGT_GROUP_CFG, 0, sizeof(bcmolt_epon_path_1g_ds_cfg_data), sizeof(bcmolt_epon_path_1g_ds_cfg), offsetof(bcmolt_epon_path_1g_ds_cfg, data), (bcmolt_func_packed_len) bcmolt_epon_path_1g_ds_cfg_data_get_packed_length, (bcmolt_func_pack) bcmolt_epon_path_1g_ds_cfg_data_pack, (bcmolt_func_unpack) bcmolt_epon_path_1g_ds_cfg_data_unpack, bcmolt_epon_path_1g_ds_cfg_data_scan };
+static bcmolt_group_info group_info_epon_path_1g_ds_stat = { BCMOLT_OBJ_ID_EPON_PATH_1G_DS, BCMOLT_MGT_GROUP_STAT, 0, sizeof(bcmolt_epon_path_1g_ds_stat_data), sizeof(bcmolt_epon_path_1g_ds_stat), offsetof(bcmolt_epon_path_1g_ds_stat, data), (bcmolt_func_packed_len) bcmolt_epon_path_1g_ds_stat_data_get_packed_length, (bcmolt_func_pack) bcmolt_epon_path_1g_ds_stat_data_pack, (bcmolt_func_unpack) bcmolt_epon_path_1g_ds_stat_data_unpack, bcmolt_epon_path_1g_ds_stat_data_scan };
+static bcmolt_group_info group_info_epon_path_1g_ds_stat_cfg = { BCMOLT_OBJ_ID_EPON_PATH_1G_DS, BCMOLT_MGT_GROUP_STAT_CFG, 0, sizeof(bcmolt_epon_path_1g_ds_stat_cfg_data), sizeof(bcmolt_epon_path_1g_ds_stat_cfg), offsetof(bcmolt_epon_path_1g_ds_stat_cfg, data), (bcmolt_func_packed_len) bcmolt_epon_path_1g_ds_stat_cfg_data_get_packed_length, (bcmolt_func_pack) bcmolt_epon_path_1g_ds_stat_cfg_data_pack, (bcmolt_func_unpack) bcmolt_epon_path_1g_ds_stat_cfg_data_unpack, bcmolt_epon_path_1g_ds_stat_cfg_data_scan };
+static bcmolt_group_info group_info_epon_path_1g_ds_stat_alarm_cleared = { BCMOLT_OBJ_ID_EPON_PATH_1G_DS, BCMOLT_MGT_GROUP_AUTO, 0, sizeof(bcmolt_epon_path_1g_ds_stat_alarm_cleared_data), sizeof(bcmolt_epon_path_1g_ds_stat_alarm_cleared), offsetof(bcmolt_epon_path_1g_ds_stat_alarm_cleared, data), (bcmolt_func_packed_len) bcmolt_epon_path_1g_ds_stat_alarm_cleared_data_get_packed_length, (bcmolt_func_pack) bcmolt_epon_path_1g_ds_stat_alarm_cleared_data_pack, (bcmolt_func_unpack) bcmolt_epon_path_1g_ds_stat_alarm_cleared_data_unpack, bcmolt_epon_path_1g_ds_stat_alarm_cleared_data_scan };
+static bcmolt_group_info group_info_epon_path_1g_ds_stat_alarm_raised = { BCMOLT_OBJ_ID_EPON_PATH_1G_DS, BCMOLT_MGT_GROUP_AUTO, 1, sizeof(bcmolt_epon_path_1g_ds_stat_alarm_raised_data), sizeof(bcmolt_epon_path_1g_ds_stat_alarm_raised), offsetof(bcmolt_epon_path_1g_ds_stat_alarm_raised, data), (bcmolt_func_packed_len) bcmolt_epon_path_1g_ds_stat_alarm_raised_data_get_packed_length, (bcmolt_func_pack) bcmolt_epon_path_1g_ds_stat_alarm_raised_data_pack, (bcmolt_func_unpack) bcmolt_epon_path_1g_ds_stat_alarm_raised_data_unpack, bcmolt_epon_path_1g_ds_stat_alarm_raised_data_scan };
+static bcmolt_group_info group_info_epon_path_1g_ds_auto_cfg = { BCMOLT_OBJ_ID_EPON_PATH_1G_DS, BCMOLT_MGT_GROUP_AUTO_CFG, 0, sizeof(bcmolt_epon_path_1g_ds_auto_cfg_data), sizeof(bcmolt_epon_path_1g_ds_auto_cfg), offsetof(bcmolt_epon_path_1g_ds_auto_cfg, data), (bcmolt_func_packed_len) bcmolt_epon_path_1g_ds_auto_cfg_data_get_packed_length, (bcmolt_func_pack) bcmolt_epon_path_1g_ds_auto_cfg_data_pack, (bcmolt_func_unpack) bcmolt_epon_path_1g_ds_auto_cfg_data_unpack, bcmolt_epon_path_1g_ds_auto_cfg_data_scan };
+static bcmolt_group_info group_info_epon_path_1g_us_key = { BCMOLT_OBJ_ID_EPON_PATH_1G_US, BCMOLT_MGT_GROUP_KEY, 0, sizeof(bcmolt_epon_path_1g_us_key), 0, 0, (bcmolt_func_packed_len) bcmolt_epon_path_1g_us_key_get_packed_length, (bcmolt_func_pack) bcmolt_epon_path_1g_us_key_pack, (bcmolt_func_unpack) bcmolt_epon_path_1g_us_key_unpack, bcmolt_epon_path_1g_us_key_scan };
+static bcmolt_group_info group_info_epon_path_1g_us_cfg = { BCMOLT_OBJ_ID_EPON_PATH_1G_US, BCMOLT_MGT_GROUP_CFG, 0, sizeof(bcmolt_epon_path_1g_us_cfg_data), sizeof(bcmolt_epon_path_1g_us_cfg), offsetof(bcmolt_epon_path_1g_us_cfg, data), (bcmolt_func_packed_len) bcmolt_epon_path_1g_us_cfg_data_get_packed_length, (bcmolt_func_pack) bcmolt_epon_path_1g_us_cfg_data_pack, (bcmolt_func_unpack) bcmolt_epon_path_1g_us_cfg_data_unpack, bcmolt_epon_path_1g_us_cfg_data_scan };
+static bcmolt_group_info group_info_epon_path_1g_us_stat = { BCMOLT_OBJ_ID_EPON_PATH_1G_US, BCMOLT_MGT_GROUP_STAT, 0, sizeof(bcmolt_epon_path_1g_us_stat_data), sizeof(bcmolt_epon_path_1g_us_stat), offsetof(bcmolt_epon_path_1g_us_stat, data), (bcmolt_func_packed_len) bcmolt_epon_path_1g_us_stat_data_get_packed_length, (bcmolt_func_pack) bcmolt_epon_path_1g_us_stat_data_pack, (bcmolt_func_unpack) bcmolt_epon_path_1g_us_stat_data_unpack, bcmolt_epon_path_1g_us_stat_data_scan };
+static bcmolt_group_info group_info_epon_path_1g_us_stat_cfg = { BCMOLT_OBJ_ID_EPON_PATH_1G_US, BCMOLT_MGT_GROUP_STAT_CFG, 0, sizeof(bcmolt_epon_path_1g_us_stat_cfg_data), sizeof(bcmolt_epon_path_1g_us_stat_cfg), offsetof(bcmolt_epon_path_1g_us_stat_cfg, data), (bcmolt_func_packed_len) bcmolt_epon_path_1g_us_stat_cfg_data_get_packed_length, (bcmolt_func_pack) bcmolt_epon_path_1g_us_stat_cfg_data_pack, (bcmolt_func_unpack) bcmolt_epon_path_1g_us_stat_cfg_data_unpack, bcmolt_epon_path_1g_us_stat_cfg_data_scan };
+static bcmolt_group_info group_info_epon_path_1g_us_stat_alarm_cleared = { BCMOLT_OBJ_ID_EPON_PATH_1G_US, BCMOLT_MGT_GROUP_AUTO, 0, sizeof(bcmolt_epon_path_1g_us_stat_alarm_cleared_data), sizeof(bcmolt_epon_path_1g_us_stat_alarm_cleared), offsetof(bcmolt_epon_path_1g_us_stat_alarm_cleared, data), (bcmolt_func_packed_len) bcmolt_epon_path_1g_us_stat_alarm_cleared_data_get_packed_length, (bcmolt_func_pack) bcmolt_epon_path_1g_us_stat_alarm_cleared_data_pack, (bcmolt_func_unpack) bcmolt_epon_path_1g_us_stat_alarm_cleared_data_unpack, bcmolt_epon_path_1g_us_stat_alarm_cleared_data_scan };
+static bcmolt_group_info group_info_epon_path_1g_us_stat_alarm_raised = { BCMOLT_OBJ_ID_EPON_PATH_1G_US, BCMOLT_MGT_GROUP_AUTO, 1, sizeof(bcmolt_epon_path_1g_us_stat_alarm_raised_data), sizeof(bcmolt_epon_path_1g_us_stat_alarm_raised), offsetof(bcmolt_epon_path_1g_us_stat_alarm_raised, data), (bcmolt_func_packed_len) bcmolt_epon_path_1g_us_stat_alarm_raised_data_get_packed_length, (bcmolt_func_pack) bcmolt_epon_path_1g_us_stat_alarm_raised_data_pack, (bcmolt_func_unpack) bcmolt_epon_path_1g_us_stat_alarm_raised_data_unpack, bcmolt_epon_path_1g_us_stat_alarm_raised_data_scan };
+static bcmolt_group_info group_info_epon_path_1g_us_auto_cfg = { BCMOLT_OBJ_ID_EPON_PATH_1G_US, BCMOLT_MGT_GROUP_AUTO_CFG, 0, sizeof(bcmolt_epon_path_1g_us_auto_cfg_data), sizeof(bcmolt_epon_path_1g_us_auto_cfg), offsetof(bcmolt_epon_path_1g_us_auto_cfg, data), (bcmolt_func_packed_len) bcmolt_epon_path_1g_us_auto_cfg_data_get_packed_length, (bcmolt_func_pack) bcmolt_epon_path_1g_us_auto_cfg_data_pack, (bcmolt_func_unpack) bcmolt_epon_path_1g_us_auto_cfg_data_unpack, bcmolt_epon_path_1g_us_auto_cfg_data_scan };
+static bcmolt_group_info group_info_epon_rp_key = { BCMOLT_OBJ_ID_EPON_RP, BCMOLT_MGT_GROUP_KEY, 0, sizeof(bcmolt_epon_rp_key), 0, 0, (bcmolt_func_packed_len) bcmolt_epon_rp_key_get_packed_length, (bcmolt_func_pack) bcmolt_epon_rp_key_pack, (bcmolt_func_unpack) bcmolt_epon_rp_key_unpack, bcmolt_epon_rp_key_scan };
+static bcmolt_group_info group_info_epon_rp_cfg = { BCMOLT_OBJ_ID_EPON_RP, BCMOLT_MGT_GROUP_CFG, 0, sizeof(bcmolt_epon_rp_cfg_data), sizeof(bcmolt_epon_rp_cfg), offsetof(bcmolt_epon_rp_cfg, data), (bcmolt_func_packed_len) bcmolt_epon_rp_cfg_data_get_packed_length, (bcmolt_func_pack) bcmolt_epon_rp_cfg_data_pack, (bcmolt_func_unpack) bcmolt_epon_rp_cfg_data_unpack, bcmolt_epon_rp_cfg_data_scan };
+static bcmolt_group_info group_info_gpio_key = { BCMOLT_OBJ_ID_GPIO, BCMOLT_MGT_GROUP_KEY, 0, sizeof(bcmolt_gpio_key), 0, 0, (bcmolt_func_packed_len) bcmolt_gpio_key_get_packed_length, (bcmolt_func_pack) bcmolt_gpio_key_pack, (bcmolt_func_unpack) bcmolt_gpio_key_unpack, bcmolt_gpio_key_scan };
+static bcmolt_group_info group_info_gpio_cfg = { BCMOLT_OBJ_ID_GPIO, BCMOLT_MGT_GROUP_CFG, 0, sizeof(bcmolt_gpio_cfg_data), sizeof(bcmolt_gpio_cfg), offsetof(bcmolt_gpio_cfg, data), (bcmolt_func_packed_len) bcmolt_gpio_cfg_data_get_packed_length, (bcmolt_func_pack) bcmolt_gpio_cfg_data_pack, (bcmolt_func_unpack) bcmolt_gpio_cfg_data_unpack, bcmolt_gpio_cfg_data_scan };
+static bcmolt_group_info group_info_gpon_alloc_key = { BCMOLT_OBJ_ID_GPON_ALLOC, BCMOLT_MGT_GROUP_KEY, 0, sizeof(bcmolt_gpon_alloc_key), 0, 0, (bcmolt_func_packed_len) bcmolt_gpon_alloc_key_get_packed_length, (bcmolt_func_pack) bcmolt_gpon_alloc_key_pack, (bcmolt_func_unpack) bcmolt_gpon_alloc_key_unpack, bcmolt_gpon_alloc_key_scan };
+static bcmolt_group_info group_info_gpon_alloc_cfg = { BCMOLT_OBJ_ID_GPON_ALLOC, BCMOLT_MGT_GROUP_CFG, 0, sizeof(bcmolt_gpon_alloc_cfg_data), sizeof(bcmolt_gpon_alloc_cfg), offsetof(bcmolt_gpon_alloc_cfg, data), (bcmolt_func_packed_len) bcmolt_gpon_alloc_cfg_data_get_packed_length, (bcmolt_func_pack) bcmolt_gpon_alloc_cfg_data_pack, (bcmolt_func_unpack) bcmolt_gpon_alloc_cfg_data_unpack, bcmolt_gpon_alloc_cfg_data_scan };
+static bcmolt_group_info group_info_gpon_alloc_stat = { BCMOLT_OBJ_ID_GPON_ALLOC, BCMOLT_MGT_GROUP_STAT, 0, sizeof(bcmolt_gpon_alloc_stat_data), sizeof(bcmolt_gpon_alloc_stat), offsetof(bcmolt_gpon_alloc_stat, data), (bcmolt_func_packed_len) bcmolt_gpon_alloc_stat_data_get_packed_length, (bcmolt_func_pack) bcmolt_gpon_alloc_stat_data_pack, (bcmolt_func_unpack) bcmolt_gpon_alloc_stat_data_unpack, bcmolt_gpon_alloc_stat_data_scan };
+static bcmolt_group_info group_info_gpon_alloc_stat_cfg = { BCMOLT_OBJ_ID_GPON_ALLOC, BCMOLT_MGT_GROUP_STAT_CFG, 0, sizeof(bcmolt_gpon_alloc_stat_cfg_data), sizeof(bcmolt_gpon_alloc_stat_cfg), offsetof(bcmolt_gpon_alloc_stat_cfg, data), (bcmolt_func_packed_len) bcmolt_gpon_alloc_stat_cfg_data_get_packed_length, (bcmolt_func_pack) bcmolt_gpon_alloc_stat_cfg_data_pack, (bcmolt_func_unpack) bcmolt_gpon_alloc_stat_cfg_data_unpack, bcmolt_gpon_alloc_stat_cfg_data_scan };
+static bcmolt_group_info group_info_gpon_alloc_configuration_completed = { BCMOLT_OBJ_ID_GPON_ALLOC, BCMOLT_MGT_GROUP_AUTO, 0, sizeof(bcmolt_gpon_alloc_configuration_completed_data), sizeof(bcmolt_gpon_alloc_configuration_completed), offsetof(bcmolt_gpon_alloc_configuration_completed, data), (bcmolt_func_packed_len) bcmolt_gpon_alloc_configuration_completed_data_get_packed_length, (bcmolt_func_pack) bcmolt_gpon_alloc_configuration_completed_data_pack, (bcmolt_func_unpack) bcmolt_gpon_alloc_configuration_completed_data_unpack, bcmolt_gpon_alloc_configuration_completed_data_scan };
+static bcmolt_group_info group_info_gpon_alloc_get_alloc_stats_completed = { BCMOLT_OBJ_ID_GPON_ALLOC, BCMOLT_MGT_GROUP_AUTO, 1, sizeof(bcmolt_gpon_alloc_get_alloc_stats_completed_data), sizeof(bcmolt_gpon_alloc_get_alloc_stats_completed), offsetof(bcmolt_gpon_alloc_get_alloc_stats_completed, data), (bcmolt_func_packed_len) bcmolt_gpon_alloc_get_alloc_stats_completed_data_get_packed_length, (bcmolt_func_pack) bcmolt_gpon_alloc_get_alloc_stats_completed_data_pack, (bcmolt_func_unpack) bcmolt_gpon_alloc_get_alloc_stats_completed_data_unpack, bcmolt_gpon_alloc_get_alloc_stats_completed_data_scan };
+static bcmolt_group_info group_info_gpon_alloc_stat_alarm_cleared = { BCMOLT_OBJ_ID_GPON_ALLOC, BCMOLT_MGT_GROUP_AUTO, 2, sizeof(bcmolt_gpon_alloc_stat_alarm_cleared_data), sizeof(bcmolt_gpon_alloc_stat_alarm_cleared), offsetof(bcmolt_gpon_alloc_stat_alarm_cleared, data), (bcmolt_func_packed_len) bcmolt_gpon_alloc_stat_alarm_cleared_data_get_packed_length, (bcmolt_func_pack) bcmolt_gpon_alloc_stat_alarm_cleared_data_pack, (bcmolt_func_unpack) bcmolt_gpon_alloc_stat_alarm_cleared_data_unpack, bcmolt_gpon_alloc_stat_alarm_cleared_data_scan };
+static bcmolt_group_info group_info_gpon_alloc_stat_alarm_raised = { BCMOLT_OBJ_ID_GPON_ALLOC, BCMOLT_MGT_GROUP_AUTO, 3, sizeof(bcmolt_gpon_alloc_stat_alarm_raised_data), sizeof(bcmolt_gpon_alloc_stat_alarm_raised), offsetof(bcmolt_gpon_alloc_stat_alarm_raised, data), (bcmolt_func_packed_len) bcmolt_gpon_alloc_stat_alarm_raised_data_get_packed_length, (bcmolt_func_pack) bcmolt_gpon_alloc_stat_alarm_raised_data_pack, (bcmolt_func_unpack) bcmolt_gpon_alloc_stat_alarm_raised_data_unpack, bcmolt_gpon_alloc_stat_alarm_raised_data_scan };
+static bcmolt_group_info group_info_gpon_alloc_auto_cfg = { BCMOLT_OBJ_ID_GPON_ALLOC, BCMOLT_MGT_GROUP_AUTO_CFG, 0, sizeof(bcmolt_gpon_alloc_auto_cfg_data), sizeof(bcmolt_gpon_alloc_auto_cfg), offsetof(bcmolt_gpon_alloc_auto_cfg, data), (bcmolt_func_packed_len) bcmolt_gpon_alloc_auto_cfg_data_get_packed_length, (bcmolt_func_pack) bcmolt_gpon_alloc_auto_cfg_data_pack, (bcmolt_func_unpack) bcmolt_gpon_alloc_auto_cfg_data_unpack, bcmolt_gpon_alloc_auto_cfg_data_scan };
+static bcmolt_group_info group_info_gpon_alloc_get_stats = { BCMOLT_OBJ_ID_GPON_ALLOC, BCMOLT_MGT_GROUP_OPER, 0, sizeof(bcmolt_gpon_alloc_get_stats_data), sizeof(bcmolt_gpon_alloc_get_stats), offsetof(bcmolt_gpon_alloc_get_stats, data), (bcmolt_func_packed_len) bcmolt_gpon_alloc_get_stats_data_get_packed_length, (bcmolt_func_pack) bcmolt_gpon_alloc_get_stats_data_pack, (bcmolt_func_unpack) bcmolt_gpon_alloc_get_stats_data_unpack, bcmolt_gpon_alloc_get_stats_data_scan };
+static bcmolt_group_info group_info_gpon_alloc_set_state = { BCMOLT_OBJ_ID_GPON_ALLOC, BCMOLT_MGT_GROUP_OPER, 1, sizeof(bcmolt_gpon_alloc_set_state_data), sizeof(bcmolt_gpon_alloc_set_state), offsetof(bcmolt_gpon_alloc_set_state, data), (bcmolt_func_packed_len) bcmolt_gpon_alloc_set_state_data_get_packed_length, (bcmolt_func_pack) bcmolt_gpon_alloc_set_state_data_pack, (bcmolt_func_unpack) bcmolt_gpon_alloc_set_state_data_unpack, bcmolt_gpon_alloc_set_state_data_scan };
+static bcmolt_group_info group_info_gpon_gem_port_key = { BCMOLT_OBJ_ID_GPON_GEM_PORT, BCMOLT_MGT_GROUP_KEY, 0, sizeof(bcmolt_gpon_gem_port_key), 0, 0, (bcmolt_func_packed_len) bcmolt_gpon_gem_port_key_get_packed_length, (bcmolt_func_pack) bcmolt_gpon_gem_port_key_pack, (bcmolt_func_unpack) bcmolt_gpon_gem_port_key_unpack, bcmolt_gpon_gem_port_key_scan };
+static bcmolt_group_info group_info_gpon_gem_port_cfg = { BCMOLT_OBJ_ID_GPON_GEM_PORT, BCMOLT_MGT_GROUP_CFG, 0, sizeof(bcmolt_gpon_gem_port_cfg_data), sizeof(bcmolt_gpon_gem_port_cfg), offsetof(bcmolt_gpon_gem_port_cfg, data), (bcmolt_func_packed_len) bcmolt_gpon_gem_port_cfg_data_get_packed_length, (bcmolt_func_pack) bcmolt_gpon_gem_port_cfg_data_pack, (bcmolt_func_unpack) bcmolt_gpon_gem_port_cfg_data_unpack, bcmolt_gpon_gem_port_cfg_data_scan };
+static bcmolt_group_info group_info_gpon_gem_port_stat = { BCMOLT_OBJ_ID_GPON_GEM_PORT, BCMOLT_MGT_GROUP_STAT, 0, sizeof(bcmolt_gpon_gem_port_stat_data), sizeof(bcmolt_gpon_gem_port_stat), offsetof(bcmolt_gpon_gem_port_stat, data), (bcmolt_func_packed_len) bcmolt_gpon_gem_port_stat_data_get_packed_length, (bcmolt_func_pack) bcmolt_gpon_gem_port_stat_data_pack, (bcmolt_func_unpack) bcmolt_gpon_gem_port_stat_data_unpack, bcmolt_gpon_gem_port_stat_data_scan };
+static bcmolt_group_info group_info_gpon_gem_port_stat_cfg = { BCMOLT_OBJ_ID_GPON_GEM_PORT, BCMOLT_MGT_GROUP_STAT_CFG, 0, sizeof(bcmolt_gpon_gem_port_stat_cfg_data), sizeof(bcmolt_gpon_gem_port_stat_cfg), offsetof(bcmolt_gpon_gem_port_stat_cfg, data), (bcmolt_func_packed_len) bcmolt_gpon_gem_port_stat_cfg_data_get_packed_length, (bcmolt_func_pack) bcmolt_gpon_gem_port_stat_cfg_data_pack, (bcmolt_func_unpack) bcmolt_gpon_gem_port_stat_cfg_data_unpack, bcmolt_gpon_gem_port_stat_cfg_data_scan };
+static bcmolt_group_info group_info_gpon_gem_port_configuration_completed = { BCMOLT_OBJ_ID_GPON_GEM_PORT, BCMOLT_MGT_GROUP_AUTO, 0, sizeof(bcmolt_gpon_gem_port_configuration_completed_data), sizeof(bcmolt_gpon_gem_port_configuration_completed), offsetof(bcmolt_gpon_gem_port_configuration_completed, data), (bcmolt_func_packed_len) bcmolt_gpon_gem_port_configuration_completed_data_get_packed_length, (bcmolt_func_pack) bcmolt_gpon_gem_port_configuration_completed_data_pack, (bcmolt_func_unpack) bcmolt_gpon_gem_port_configuration_completed_data_unpack, bcmolt_gpon_gem_port_configuration_completed_data_scan };
+static bcmolt_group_info group_info_gpon_gem_port_stat_alarm_cleared = { BCMOLT_OBJ_ID_GPON_GEM_PORT, BCMOLT_MGT_GROUP_AUTO, 1, sizeof(bcmolt_gpon_gem_port_stat_alarm_cleared_data), sizeof(bcmolt_gpon_gem_port_stat_alarm_cleared), offsetof(bcmolt_gpon_gem_port_stat_alarm_cleared, data), (bcmolt_func_packed_len) bcmolt_gpon_gem_port_stat_alarm_cleared_data_get_packed_length, (bcmolt_func_pack) bcmolt_gpon_gem_port_stat_alarm_cleared_data_pack, (bcmolt_func_unpack) bcmolt_gpon_gem_port_stat_alarm_cleared_data_unpack, bcmolt_gpon_gem_port_stat_alarm_cleared_data_scan };
+static bcmolt_group_info group_info_gpon_gem_port_stat_alarm_raised = { BCMOLT_OBJ_ID_GPON_GEM_PORT, BCMOLT_MGT_GROUP_AUTO, 2, sizeof(bcmolt_gpon_gem_port_stat_alarm_raised_data), sizeof(bcmolt_gpon_gem_port_stat_alarm_raised), offsetof(bcmolt_gpon_gem_port_stat_alarm_raised, data), (bcmolt_func_packed_len) bcmolt_gpon_gem_port_stat_alarm_raised_data_get_packed_length, (bcmolt_func_pack) bcmolt_gpon_gem_port_stat_alarm_raised_data_pack, (bcmolt_func_unpack) bcmolt_gpon_gem_port_stat_alarm_raised_data_unpack, bcmolt_gpon_gem_port_stat_alarm_raised_data_scan };
+static bcmolt_group_info group_info_gpon_gem_port_auto_cfg = { BCMOLT_OBJ_ID_GPON_GEM_PORT, BCMOLT_MGT_GROUP_AUTO_CFG, 0, sizeof(bcmolt_gpon_gem_port_auto_cfg_data), sizeof(bcmolt_gpon_gem_port_auto_cfg), offsetof(bcmolt_gpon_gem_port_auto_cfg, data), (bcmolt_func_packed_len) bcmolt_gpon_gem_port_auto_cfg_data_get_packed_length, (bcmolt_func_pack) bcmolt_gpon_gem_port_auto_cfg_data_pack, (bcmolt_func_unpack) bcmolt_gpon_gem_port_auto_cfg_data_unpack, bcmolt_gpon_gem_port_auto_cfg_data_scan };
+static bcmolt_group_info group_info_gpon_gem_port_set_state = { BCMOLT_OBJ_ID_GPON_GEM_PORT, BCMOLT_MGT_GROUP_OPER, 0, sizeof(bcmolt_gpon_gem_port_set_state_data), sizeof(bcmolt_gpon_gem_port_set_state), offsetof(bcmolt_gpon_gem_port_set_state, data), (bcmolt_func_packed_len) bcmolt_gpon_gem_port_set_state_data_get_packed_length, (bcmolt_func_pack) bcmolt_gpon_gem_port_set_state_data_pack, (bcmolt_func_unpack) bcmolt_gpon_gem_port_set_state_data_unpack, bcmolt_gpon_gem_port_set_state_data_scan };
+static bcmolt_group_info group_info_gpon_iwf_key = { BCMOLT_OBJ_ID_GPON_IWF, BCMOLT_MGT_GROUP_KEY, 0, sizeof(bcmolt_gpon_iwf_key), 0, 0, (bcmolt_func_packed_len) bcmolt_gpon_iwf_key_get_packed_length, (bcmolt_func_pack) bcmolt_gpon_iwf_key_pack, (bcmolt_func_unpack) bcmolt_gpon_iwf_key_unpack, bcmolt_gpon_iwf_key_scan };
+static bcmolt_group_info group_info_gpon_iwf_cfg = { BCMOLT_OBJ_ID_GPON_IWF, BCMOLT_MGT_GROUP_CFG, 0, sizeof(bcmolt_gpon_iwf_cfg_data), sizeof(bcmolt_gpon_iwf_cfg), offsetof(bcmolt_gpon_iwf_cfg, data), (bcmolt_func_packed_len) bcmolt_gpon_iwf_cfg_data_get_packed_length, (bcmolt_func_pack) bcmolt_gpon_iwf_cfg_data_pack, (bcmolt_func_unpack) bcmolt_gpon_iwf_cfg_data_unpack, bcmolt_gpon_iwf_cfg_data_scan };
+static bcmolt_group_info group_info_gpon_iwf_stat = { BCMOLT_OBJ_ID_GPON_IWF, BCMOLT_MGT_GROUP_STAT, 0, sizeof(bcmolt_gpon_iwf_stat_data), sizeof(bcmolt_gpon_iwf_stat), offsetof(bcmolt_gpon_iwf_stat, data), (bcmolt_func_packed_len) bcmolt_gpon_iwf_stat_data_get_packed_length, (bcmolt_func_pack) bcmolt_gpon_iwf_stat_data_pack, (bcmolt_func_unpack) bcmolt_gpon_iwf_stat_data_unpack, bcmolt_gpon_iwf_stat_data_scan };
+static bcmolt_group_info group_info_gpon_iwf_stat_cfg = { BCMOLT_OBJ_ID_GPON_IWF, BCMOLT_MGT_GROUP_STAT_CFG, 0, sizeof(bcmolt_gpon_iwf_stat_cfg_data), sizeof(bcmolt_gpon_iwf_stat_cfg), offsetof(bcmolt_gpon_iwf_stat_cfg, data), (bcmolt_func_packed_len) bcmolt_gpon_iwf_stat_cfg_data_get_packed_length, (bcmolt_func_pack) bcmolt_gpon_iwf_stat_cfg_data_pack, (bcmolt_func_unpack) bcmolt_gpon_iwf_stat_cfg_data_unpack, bcmolt_gpon_iwf_stat_cfg_data_scan };
+static bcmolt_group_info group_info_gpon_iwf_flush_mac_table_completed = { BCMOLT_OBJ_ID_GPON_IWF, BCMOLT_MGT_GROUP_AUTO, 0, 0, 0, 0, NULL, NULL, NULL };
+static bcmolt_group_info group_info_gpon_iwf_scan_mac_table_completed = { BCMOLT_OBJ_ID_GPON_IWF, BCMOLT_MGT_GROUP_AUTO, 1, sizeof(bcmolt_gpon_iwf_scan_mac_table_completed_data), sizeof(bcmolt_gpon_iwf_scan_mac_table_completed), offsetof(bcmolt_gpon_iwf_scan_mac_table_completed, data), (bcmolt_func_packed_len) bcmolt_gpon_iwf_scan_mac_table_completed_data_get_packed_length, (bcmolt_func_pack) bcmolt_gpon_iwf_scan_mac_table_completed_data_pack, (bcmolt_func_unpack) bcmolt_gpon_iwf_scan_mac_table_completed_data_unpack, bcmolt_gpon_iwf_scan_mac_table_completed_data_scan };
+static bcmolt_group_info group_info_gpon_iwf_stat_alarm_cleared = { BCMOLT_OBJ_ID_GPON_IWF, BCMOLT_MGT_GROUP_AUTO, 2, sizeof(bcmolt_gpon_iwf_stat_alarm_cleared_data), sizeof(bcmolt_gpon_iwf_stat_alarm_cleared), offsetof(bcmolt_gpon_iwf_stat_alarm_cleared, data), (bcmolt_func_packed_len) bcmolt_gpon_iwf_stat_alarm_cleared_data_get_packed_length, (bcmolt_func_pack) bcmolt_gpon_iwf_stat_alarm_cleared_data_pack, (bcmolt_func_unpack) bcmolt_gpon_iwf_stat_alarm_cleared_data_unpack, bcmolt_gpon_iwf_stat_alarm_cleared_data_scan };
+static bcmolt_group_info group_info_gpon_iwf_stat_alarm_raised = { BCMOLT_OBJ_ID_GPON_IWF, BCMOLT_MGT_GROUP_AUTO, 3, sizeof(bcmolt_gpon_iwf_stat_alarm_raised_data), sizeof(bcmolt_gpon_iwf_stat_alarm_raised), offsetof(bcmolt_gpon_iwf_stat_alarm_raised, data), (bcmolt_func_packed_len) bcmolt_gpon_iwf_stat_alarm_raised_data_get_packed_length, (bcmolt_func_pack) bcmolt_gpon_iwf_stat_alarm_raised_data_pack, (bcmolt_func_unpack) bcmolt_gpon_iwf_stat_alarm_raised_data_unpack, bcmolt_gpon_iwf_stat_alarm_raised_data_scan };
+static bcmolt_group_info group_info_gpon_iwf_auto_cfg = { BCMOLT_OBJ_ID_GPON_IWF, BCMOLT_MGT_GROUP_AUTO_CFG, 0, sizeof(bcmolt_gpon_iwf_auto_cfg_data), sizeof(bcmolt_gpon_iwf_auto_cfg), offsetof(bcmolt_gpon_iwf_auto_cfg, data), (bcmolt_func_packed_len) bcmolt_gpon_iwf_auto_cfg_data_get_packed_length, (bcmolt_func_pack) bcmolt_gpon_iwf_auto_cfg_data_pack, (bcmolt_func_unpack) bcmolt_gpon_iwf_auto_cfg_data_unpack, bcmolt_gpon_iwf_auto_cfg_data_scan };
+static bcmolt_group_info group_info_gpon_iwf_flush_mac_table = { BCMOLT_OBJ_ID_GPON_IWF, BCMOLT_MGT_GROUP_OPER, 0, sizeof(bcmolt_gpon_iwf_flush_mac_table_data), sizeof(bcmolt_gpon_iwf_flush_mac_table), offsetof(bcmolt_gpon_iwf_flush_mac_table, data), (bcmolt_func_packed_len) bcmolt_gpon_iwf_flush_mac_table_data_get_packed_length, (bcmolt_func_pack) bcmolt_gpon_iwf_flush_mac_table_data_pack, (bcmolt_func_unpack) bcmolt_gpon_iwf_flush_mac_table_data_unpack, bcmolt_gpon_iwf_flush_mac_table_data_scan };
+static bcmolt_group_info group_info_gpon_iwf_scan_mac_table = { BCMOLT_OBJ_ID_GPON_IWF, BCMOLT_MGT_GROUP_OPER, 1, sizeof(bcmolt_gpon_iwf_scan_mac_table_data), sizeof(bcmolt_gpon_iwf_scan_mac_table), offsetof(bcmolt_gpon_iwf_scan_mac_table, data), (bcmolt_func_packed_len) bcmolt_gpon_iwf_scan_mac_table_data_get_packed_length, (bcmolt_func_pack) bcmolt_gpon_iwf_scan_mac_table_data_pack, (bcmolt_func_unpack) bcmolt_gpon_iwf_scan_mac_table_data_unpack, bcmolt_gpon_iwf_scan_mac_table_data_scan };
+static bcmolt_group_info group_info_gpon_iwf_ds_egress_flow_key = { BCMOLT_OBJ_ID_GPON_IWF_DS_EGRESS_FLOW, BCMOLT_MGT_GROUP_KEY, 0, sizeof(bcmolt_gpon_iwf_ds_egress_flow_key), 0, 0, (bcmolt_func_packed_len) bcmolt_gpon_iwf_ds_egress_flow_key_get_packed_length, (bcmolt_func_pack) bcmolt_gpon_iwf_ds_egress_flow_key_pack, (bcmolt_func_unpack) bcmolt_gpon_iwf_ds_egress_flow_key_unpack, bcmolt_gpon_iwf_ds_egress_flow_key_scan };
+static bcmolt_group_info group_info_gpon_iwf_ds_egress_flow_cfg = { BCMOLT_OBJ_ID_GPON_IWF_DS_EGRESS_FLOW, BCMOLT_MGT_GROUP_CFG, 0, sizeof(bcmolt_gpon_iwf_ds_egress_flow_cfg_data), sizeof(bcmolt_gpon_iwf_ds_egress_flow_cfg), offsetof(bcmolt_gpon_iwf_ds_egress_flow_cfg, data), (bcmolt_func_packed_len) bcmolt_gpon_iwf_ds_egress_flow_cfg_data_get_packed_length, (bcmolt_func_pack) bcmolt_gpon_iwf_ds_egress_flow_cfg_data_pack, (bcmolt_func_unpack) bcmolt_gpon_iwf_ds_egress_flow_cfg_data_unpack, bcmolt_gpon_iwf_ds_egress_flow_cfg_data_scan };
+static bcmolt_group_info group_info_gpon_iwf_ds_ingress_flow_key = { BCMOLT_OBJ_ID_GPON_IWF_DS_INGRESS_FLOW, BCMOLT_MGT_GROUP_KEY, 0, sizeof(bcmolt_gpon_iwf_ds_ingress_flow_key), 0, 0, (bcmolt_func_packed_len) bcmolt_gpon_iwf_ds_ingress_flow_key_get_packed_length, (bcmolt_func_pack) bcmolt_gpon_iwf_ds_ingress_flow_key_pack, (bcmolt_func_unpack) bcmolt_gpon_iwf_ds_ingress_flow_key_unpack, bcmolt_gpon_iwf_ds_ingress_flow_key_scan };
+static bcmolt_group_info group_info_gpon_iwf_ds_ingress_flow_cfg = { BCMOLT_OBJ_ID_GPON_IWF_DS_INGRESS_FLOW, BCMOLT_MGT_GROUP_CFG, 0, sizeof(bcmolt_gpon_iwf_ds_ingress_flow_cfg_data), sizeof(bcmolt_gpon_iwf_ds_ingress_flow_cfg), offsetof(bcmolt_gpon_iwf_ds_ingress_flow_cfg, data), (bcmolt_func_packed_len) bcmolt_gpon_iwf_ds_ingress_flow_cfg_data_get_packed_length, (bcmolt_func_pack) bcmolt_gpon_iwf_ds_ingress_flow_cfg_data_pack, (bcmolt_func_unpack) bcmolt_gpon_iwf_ds_ingress_flow_cfg_data_unpack, bcmolt_gpon_iwf_ds_ingress_flow_cfg_data_scan };
+static bcmolt_group_info group_info_gpon_iwf_mac_table_key = { BCMOLT_OBJ_ID_GPON_IWF_MAC_TABLE, BCMOLT_MGT_GROUP_KEY, 0, sizeof(bcmolt_gpon_iwf_mac_table_key), 0, 0, (bcmolt_func_packed_len) bcmolt_gpon_iwf_mac_table_key_get_packed_length, (bcmolt_func_pack) bcmolt_gpon_iwf_mac_table_key_pack, (bcmolt_func_unpack) bcmolt_gpon_iwf_mac_table_key_unpack, bcmolt_gpon_iwf_mac_table_key_scan };
+static bcmolt_group_info group_info_gpon_iwf_mac_table_cfg = { BCMOLT_OBJ_ID_GPON_IWF_MAC_TABLE, BCMOLT_MGT_GROUP_CFG, 0, sizeof(bcmolt_gpon_iwf_mac_table_cfg_data), sizeof(bcmolt_gpon_iwf_mac_table_cfg), offsetof(bcmolt_gpon_iwf_mac_table_cfg, data), (bcmolt_func_packed_len) bcmolt_gpon_iwf_mac_table_cfg_data_get_packed_length, (bcmolt_func_pack) bcmolt_gpon_iwf_mac_table_cfg_data_pack, (bcmolt_func_unpack) bcmolt_gpon_iwf_mac_table_cfg_data_unpack, bcmolt_gpon_iwf_mac_table_cfg_data_scan };
+static bcmolt_group_info group_info_gpon_iwf_mac_table_mac_aged = { BCMOLT_OBJ_ID_GPON_IWF_MAC_TABLE, BCMOLT_MGT_GROUP_AUTO, 0, 0, 0, 0, NULL, NULL, NULL };
+static bcmolt_group_info group_info_gpon_iwf_mac_table_mac_dropped = { BCMOLT_OBJ_ID_GPON_IWF_MAC_TABLE, BCMOLT_MGT_GROUP_AUTO, 1, sizeof(bcmolt_gpon_iwf_mac_table_mac_dropped_data), sizeof(bcmolt_gpon_iwf_mac_table_mac_dropped), offsetof(bcmolt_gpon_iwf_mac_table_mac_dropped, data), (bcmolt_func_packed_len) bcmolt_gpon_iwf_mac_table_mac_dropped_data_get_packed_length, (bcmolt_func_pack) bcmolt_gpon_iwf_mac_table_mac_dropped_data_pack, (bcmolt_func_unpack) bcmolt_gpon_iwf_mac_table_mac_dropped_data_unpack, bcmolt_gpon_iwf_mac_table_mac_dropped_data_scan };
+static bcmolt_group_info group_info_gpon_iwf_mac_table_mac_move = { BCMOLT_OBJ_ID_GPON_IWF_MAC_TABLE, BCMOLT_MGT_GROUP_AUTO, 2, sizeof(bcmolt_gpon_iwf_mac_table_mac_move_data), sizeof(bcmolt_gpon_iwf_mac_table_mac_move), offsetof(bcmolt_gpon_iwf_mac_table_mac_move, data), (bcmolt_func_packed_len) bcmolt_gpon_iwf_mac_table_mac_move_data_get_packed_length, (bcmolt_func_pack) bcmolt_gpon_iwf_mac_table_mac_move_data_pack, (bcmolt_func_unpack) bcmolt_gpon_iwf_mac_table_mac_move_data_unpack, bcmolt_gpon_iwf_mac_table_mac_move_data_scan };
+static bcmolt_group_info group_info_gpon_iwf_mac_table_new_mac = { BCMOLT_OBJ_ID_GPON_IWF_MAC_TABLE, BCMOLT_MGT_GROUP_AUTO, 3, sizeof(bcmolt_gpon_iwf_mac_table_new_mac_data), sizeof(bcmolt_gpon_iwf_mac_table_new_mac), offsetof(bcmolt_gpon_iwf_mac_table_new_mac, data), (bcmolt_func_packed_len) bcmolt_gpon_iwf_mac_table_new_mac_data_get_packed_length, (bcmolt_func_pack) bcmolt_gpon_iwf_mac_table_new_mac_data_pack, (bcmolt_func_unpack) bcmolt_gpon_iwf_mac_table_new_mac_data_unpack, bcmolt_gpon_iwf_mac_table_new_mac_data_scan };
+static bcmolt_group_info group_info_gpon_iwf_mac_table_auto_cfg = { BCMOLT_OBJ_ID_GPON_IWF_MAC_TABLE, BCMOLT_MGT_GROUP_AUTO_CFG, 0, sizeof(bcmolt_gpon_iwf_mac_table_auto_cfg_data), sizeof(bcmolt_gpon_iwf_mac_table_auto_cfg), offsetof(bcmolt_gpon_iwf_mac_table_auto_cfg, data), (bcmolt_func_packed_len) bcmolt_gpon_iwf_mac_table_auto_cfg_data_get_packed_length, (bcmolt_func_pack) bcmolt_gpon_iwf_mac_table_auto_cfg_data_pack, (bcmolt_func_unpack) bcmolt_gpon_iwf_mac_table_auto_cfg_data_unpack, bcmolt_gpon_iwf_mac_table_auto_cfg_data_scan };
+static bcmolt_group_info group_info_gpon_iwf_us_flow_key = { BCMOLT_OBJ_ID_GPON_IWF_US_FLOW, BCMOLT_MGT_GROUP_KEY, 0, sizeof(bcmolt_gpon_iwf_us_flow_key), 0, 0, (bcmolt_func_packed_len) bcmolt_gpon_iwf_us_flow_key_get_packed_length, (bcmolt_func_pack) bcmolt_gpon_iwf_us_flow_key_pack, (bcmolt_func_unpack) bcmolt_gpon_iwf_us_flow_key_unpack, bcmolt_gpon_iwf_us_flow_key_scan };
+static bcmolt_group_info group_info_gpon_iwf_us_flow_cfg = { BCMOLT_OBJ_ID_GPON_IWF_US_FLOW, BCMOLT_MGT_GROUP_CFG, 0, sizeof(bcmolt_gpon_iwf_us_flow_cfg_data), sizeof(bcmolt_gpon_iwf_us_flow_cfg), offsetof(bcmolt_gpon_iwf_us_flow_cfg, data), (bcmolt_func_packed_len) bcmolt_gpon_iwf_us_flow_cfg_data_get_packed_length, (bcmolt_func_pack) bcmolt_gpon_iwf_us_flow_cfg_data_pack, (bcmolt_func_unpack) bcmolt_gpon_iwf_us_flow_cfg_data_unpack, bcmolt_gpon_iwf_us_flow_cfg_data_scan };
+static bcmolt_group_info group_info_gpon_ni_key = { BCMOLT_OBJ_ID_GPON_NI, BCMOLT_MGT_GROUP_KEY, 0, sizeof(bcmolt_gpon_ni_key), 0, 0, (bcmolt_func_packed_len) bcmolt_gpon_ni_key_get_packed_length, (bcmolt_func_pack) bcmolt_gpon_ni_key_pack, (bcmolt_func_unpack) bcmolt_gpon_ni_key_unpack, bcmolt_gpon_ni_key_scan };
+static bcmolt_group_info group_info_gpon_ni_cfg = { BCMOLT_OBJ_ID_GPON_NI, BCMOLT_MGT_GROUP_CFG, 0, sizeof(bcmolt_gpon_ni_cfg_data), sizeof(bcmolt_gpon_ni_cfg), offsetof(bcmolt_gpon_ni_cfg, data), (bcmolt_func_packed_len) bcmolt_gpon_ni_cfg_data_get_packed_length, (bcmolt_func_pack) bcmolt_gpon_ni_cfg_data_pack, (bcmolt_func_unpack) bcmolt_gpon_ni_cfg_data_unpack, bcmolt_gpon_ni_cfg_data_scan };
+static bcmolt_group_info group_info_gpon_ni_stat = { BCMOLT_OBJ_ID_GPON_NI, BCMOLT_MGT_GROUP_STAT, 0, sizeof(bcmolt_gpon_ni_stat_data), sizeof(bcmolt_gpon_ni_stat), offsetof(bcmolt_gpon_ni_stat, data), (bcmolt_func_packed_len) bcmolt_gpon_ni_stat_data_get_packed_length, (bcmolt_func_pack) bcmolt_gpon_ni_stat_data_pack, (bcmolt_func_unpack) bcmolt_gpon_ni_stat_data_unpack, bcmolt_gpon_ni_stat_data_scan };
+static bcmolt_group_info group_info_gpon_ni_stat_cfg = { BCMOLT_OBJ_ID_GPON_NI, BCMOLT_MGT_GROUP_STAT_CFG, 0, sizeof(bcmolt_gpon_ni_stat_cfg_data), sizeof(bcmolt_gpon_ni_stat_cfg), offsetof(bcmolt_gpon_ni_stat_cfg, data), (bcmolt_func_packed_len) bcmolt_gpon_ni_stat_cfg_data_get_packed_length, (bcmolt_func_pack) bcmolt_gpon_ni_stat_cfg_data_pack, (bcmolt_func_unpack) bcmolt_gpon_ni_stat_cfg_data_unpack, bcmolt_gpon_ni_stat_cfg_data_scan };
+static bcmolt_group_info group_info_gpon_ni_activate_all_onus_completed = { BCMOLT_OBJ_ID_GPON_NI, BCMOLT_MGT_GROUP_AUTO, 0, 0, 0, 0, NULL, NULL, NULL };
+static bcmolt_group_info group_info_gpon_ni_cpu_packets_failure = { BCMOLT_OBJ_ID_GPON_NI, BCMOLT_MGT_GROUP_AUTO, 1, sizeof(bcmolt_gpon_ni_cpu_packets_failure_data), sizeof(bcmolt_gpon_ni_cpu_packets_failure), offsetof(bcmolt_gpon_ni_cpu_packets_failure, data), (bcmolt_func_packed_len) bcmolt_gpon_ni_cpu_packets_failure_data_get_packed_length, (bcmolt_func_pack) bcmolt_gpon_ni_cpu_packets_failure_data_pack, (bcmolt_func_unpack) bcmolt_gpon_ni_cpu_packets_failure_data_unpack, bcmolt_gpon_ni_cpu_packets_failure_data_scan };
+static bcmolt_group_info group_info_gpon_ni_deactivate_all_onus_completed = { BCMOLT_OBJ_ID_GPON_NI, BCMOLT_MGT_GROUP_AUTO, 2, 0, 0, 0, NULL, NULL, NULL };
+static bcmolt_group_info group_info_gpon_ni_disable_all_onus_completed = { BCMOLT_OBJ_ID_GPON_NI, BCMOLT_MGT_GROUP_AUTO, 3, 0, 0, 0, NULL, NULL, NULL };
+static bcmolt_group_info group_info_gpon_ni_enable_all_onus_completed = { BCMOLT_OBJ_ID_GPON_NI, BCMOLT_MGT_GROUP_AUTO, 4, 0, 0, 0, NULL, NULL, NULL };
+static bcmolt_group_info group_info_gpon_ni_los = { BCMOLT_OBJ_ID_GPON_NI, BCMOLT_MGT_GROUP_AUTO, 5, sizeof(bcmolt_gpon_ni_los_data), sizeof(bcmolt_gpon_ni_los), offsetof(bcmolt_gpon_ni_los, data), (bcmolt_func_packed_len) bcmolt_gpon_ni_los_data_get_packed_length, (bcmolt_func_pack) bcmolt_gpon_ni_los_data_pack, (bcmolt_func_unpack) bcmolt_gpon_ni_los_data_unpack, bcmolt_gpon_ni_los_data_scan };
+static bcmolt_group_info group_info_gpon_ni_onu_discovered = { BCMOLT_OBJ_ID_GPON_NI, BCMOLT_MGT_GROUP_AUTO, 6, sizeof(bcmolt_gpon_ni_onu_discovered_data), sizeof(bcmolt_gpon_ni_onu_discovered), offsetof(bcmolt_gpon_ni_onu_discovered, data), (bcmolt_func_packed_len) bcmolt_gpon_ni_onu_discovered_data_get_packed_length, (bcmolt_func_pack) bcmolt_gpon_ni_onu_discovered_data_pack, (bcmolt_func_unpack) bcmolt_gpon_ni_onu_discovered_data_unpack, bcmolt_gpon_ni_onu_discovered_data_scan };
+static bcmolt_group_info group_info_gpon_ni_onu_upgrade_complete = { BCMOLT_OBJ_ID_GPON_NI, BCMOLT_MGT_GROUP_AUTO, 7, sizeof(bcmolt_gpon_ni_onu_upgrade_complete_data), sizeof(bcmolt_gpon_ni_onu_upgrade_complete), offsetof(bcmolt_gpon_ni_onu_upgrade_complete, data), (bcmolt_func_packed_len) bcmolt_gpon_ni_onu_upgrade_complete_data_get_packed_length, (bcmolt_func_pack) bcmolt_gpon_ni_onu_upgrade_complete_data_pack, (bcmolt_func_unpack) bcmolt_gpon_ni_onu_upgrade_complete_data_unpack, bcmolt_gpon_ni_onu_upgrade_complete_data_scan };
+static bcmolt_group_info group_info_gpon_ni_protection_switching_onus_ranged = { BCMOLT_OBJ_ID_GPON_NI, BCMOLT_MGT_GROUP_AUTO, 8, sizeof(bcmolt_gpon_ni_protection_switching_onus_ranged_data), sizeof(bcmolt_gpon_ni_protection_switching_onus_ranged), offsetof(bcmolt_gpon_ni_protection_switching_onus_ranged, data), (bcmolt_func_packed_len) bcmolt_gpon_ni_protection_switching_onus_ranged_data_get_packed_length, (bcmolt_func_pack) bcmolt_gpon_ni_protection_switching_onus_ranged_data_pack, (bcmolt_func_unpack) bcmolt_gpon_ni_protection_switching_onus_ranged_data_unpack, bcmolt_gpon_ni_protection_switching_onus_ranged_data_scan };
+static bcmolt_group_info group_info_gpon_ni_protection_switching_switchover_completed = { BCMOLT_OBJ_ID_GPON_NI, BCMOLT_MGT_GROUP_AUTO, 9, sizeof(bcmolt_gpon_ni_protection_switching_switchover_completed_data), sizeof(bcmolt_gpon_ni_protection_switching_switchover_completed), offsetof(bcmolt_gpon_ni_protection_switching_switchover_completed, data), (bcmolt_func_packed_len) bcmolt_gpon_ni_protection_switching_switchover_completed_data_get_packed_length, (bcmolt_func_pack) bcmolt_gpon_ni_protection_switching_switchover_completed_data_pack, (bcmolt_func_unpack) bcmolt_gpon_ni_protection_switching_switchover_completed_data_unpack, bcmolt_gpon_ni_protection_switching_switchover_completed_data_scan };
+static bcmolt_group_info group_info_gpon_ni_protection_switching_traffic_resume = { BCMOLT_OBJ_ID_GPON_NI, BCMOLT_MGT_GROUP_AUTO, 10, sizeof(bcmolt_gpon_ni_protection_switching_traffic_resume_data), sizeof(bcmolt_gpon_ni_protection_switching_traffic_resume), offsetof(bcmolt_gpon_ni_protection_switching_traffic_resume, data), (bcmolt_func_packed_len) bcmolt_gpon_ni_protection_switching_traffic_resume_data_get_packed_length, (bcmolt_func_pack) bcmolt_gpon_ni_protection_switching_traffic_resume_data_pack, (bcmolt_func_unpack) bcmolt_gpon_ni_protection_switching_traffic_resume_data_unpack, bcmolt_gpon_ni_protection_switching_traffic_resume_data_scan };
+static bcmolt_group_info group_info_gpon_ni_rogue_detection_completed = { BCMOLT_OBJ_ID_GPON_NI, BCMOLT_MGT_GROUP_AUTO, 11, sizeof(bcmolt_gpon_ni_rogue_detection_completed_data), sizeof(bcmolt_gpon_ni_rogue_detection_completed), offsetof(bcmolt_gpon_ni_rogue_detection_completed, data), (bcmolt_func_packed_len) bcmolt_gpon_ni_rogue_detection_completed_data_get_packed_length, (bcmolt_func_pack) bcmolt_gpon_ni_rogue_detection_completed_data_pack, (bcmolt_func_unpack) bcmolt_gpon_ni_rogue_detection_completed_data_unpack, bcmolt_gpon_ni_rogue_detection_completed_data_scan };
+static bcmolt_group_info group_info_gpon_ni_rogue_onu_special_map_cycle_start = { BCMOLT_OBJ_ID_GPON_NI, BCMOLT_MGT_GROUP_AUTO, 12, 0, 0, 0, NULL, NULL, NULL };
+static bcmolt_group_info group_info_gpon_ni_serial_number_acquisition_cycle_start = { BCMOLT_OBJ_ID_GPON_NI, BCMOLT_MGT_GROUP_AUTO, 13, 0, 0, 0, NULL, NULL, NULL };
+static bcmolt_group_info group_info_gpon_ni_standby_pon_monitoring_cycle_completed = { BCMOLT_OBJ_ID_GPON_NI, BCMOLT_MGT_GROUP_AUTO, 14, sizeof(bcmolt_gpon_ni_standby_pon_monitoring_cycle_completed_data), sizeof(bcmolt_gpon_ni_standby_pon_monitoring_cycle_completed), offsetof(bcmolt_gpon_ni_standby_pon_monitoring_cycle_completed, data), (bcmolt_func_packed_len) bcmolt_gpon_ni_standby_pon_monitoring_cycle_completed_data_get_packed_length, (bcmolt_func_pack) bcmolt_gpon_ni_standby_pon_monitoring_cycle_completed_data_pack, (bcmolt_func_unpack) bcmolt_gpon_ni_standby_pon_monitoring_cycle_completed_data_unpack, bcmolt_gpon_ni_standby_pon_monitoring_cycle_completed_data_scan };
+static bcmolt_group_info group_info_gpon_ni_stat_alarm_cleared = { BCMOLT_OBJ_ID_GPON_NI, BCMOLT_MGT_GROUP_AUTO, 15, sizeof(bcmolt_gpon_ni_stat_alarm_cleared_data), sizeof(bcmolt_gpon_ni_stat_alarm_cleared), offsetof(bcmolt_gpon_ni_stat_alarm_cleared, data), (bcmolt_func_packed_len) bcmolt_gpon_ni_stat_alarm_cleared_data_get_packed_length, (bcmolt_func_pack) bcmolt_gpon_ni_stat_alarm_cleared_data_pack, (bcmolt_func_unpack) bcmolt_gpon_ni_stat_alarm_cleared_data_unpack, bcmolt_gpon_ni_stat_alarm_cleared_data_scan };
+static bcmolt_group_info group_info_gpon_ni_stat_alarm_raised = { BCMOLT_OBJ_ID_GPON_NI, BCMOLT_MGT_GROUP_AUTO, 16, sizeof(bcmolt_gpon_ni_stat_alarm_raised_data), sizeof(bcmolt_gpon_ni_stat_alarm_raised), offsetof(bcmolt_gpon_ni_stat_alarm_raised, data), (bcmolt_func_packed_len) bcmolt_gpon_ni_stat_alarm_raised_data_get_packed_length, (bcmolt_func_pack) bcmolt_gpon_ni_stat_alarm_raised_data_pack, (bcmolt_func_unpack) bcmolt_gpon_ni_stat_alarm_raised_data_unpack, bcmolt_gpon_ni_stat_alarm_raised_data_scan };
+static bcmolt_group_info group_info_gpon_ni_state_change_completed = { BCMOLT_OBJ_ID_GPON_NI, BCMOLT_MGT_GROUP_AUTO, 17, sizeof(bcmolt_gpon_ni_state_change_completed_data), sizeof(bcmolt_gpon_ni_state_change_completed), offsetof(bcmolt_gpon_ni_state_change_completed, data), (bcmolt_func_packed_len) bcmolt_gpon_ni_state_change_completed_data_get_packed_length, (bcmolt_func_pack) bcmolt_gpon_ni_state_change_completed_data_pack, (bcmolt_func_unpack) bcmolt_gpon_ni_state_change_completed_data_unpack, bcmolt_gpon_ni_state_change_completed_data_scan };
+static bcmolt_group_info group_info_gpon_ni_tod_request_completed = { BCMOLT_OBJ_ID_GPON_NI, BCMOLT_MGT_GROUP_AUTO, 18, sizeof(bcmolt_gpon_ni_tod_request_completed_data), sizeof(bcmolt_gpon_ni_tod_request_completed), offsetof(bcmolt_gpon_ni_tod_request_completed, data), (bcmolt_func_packed_len) bcmolt_gpon_ni_tod_request_completed_data_get_packed_length, (bcmolt_func_pack) bcmolt_gpon_ni_tod_request_completed_data_pack, (bcmolt_func_unpack) bcmolt_gpon_ni_tod_request_completed_data_unpack, bcmolt_gpon_ni_tod_request_completed_data_scan };
+static bcmolt_group_info group_info_gpon_ni_auto_cfg = { BCMOLT_OBJ_ID_GPON_NI, BCMOLT_MGT_GROUP_AUTO_CFG, 0, sizeof(bcmolt_gpon_ni_auto_cfg_data), sizeof(bcmolt_gpon_ni_auto_cfg), offsetof(bcmolt_gpon_ni_auto_cfg, data), (bcmolt_func_packed_len) bcmolt_gpon_ni_auto_cfg_data_get_packed_length, (bcmolt_func_pack) bcmolt_gpon_ni_auto_cfg_data_pack, (bcmolt_func_unpack) bcmolt_gpon_ni_auto_cfg_data_unpack, bcmolt_gpon_ni_auto_cfg_data_scan };
+static bcmolt_group_info group_info_gpon_ni_disable_serial_number = { BCMOLT_OBJ_ID_GPON_NI, BCMOLT_MGT_GROUP_OPER, 0, sizeof(bcmolt_gpon_ni_disable_serial_number_data), sizeof(bcmolt_gpon_ni_disable_serial_number), offsetof(bcmolt_gpon_ni_disable_serial_number, data), (bcmolt_func_packed_len) bcmolt_gpon_ni_disable_serial_number_data_get_packed_length, (bcmolt_func_pack) bcmolt_gpon_ni_disable_serial_number_data_pack, (bcmolt_func_unpack) bcmolt_gpon_ni_disable_serial_number_data_unpack, bcmolt_gpon_ni_disable_serial_number_data_scan };
+static bcmolt_group_info group_info_gpon_ni_protection_switching_type_c_set_multiple_onu_state = { BCMOLT_OBJ_ID_GPON_NI, BCMOLT_MGT_GROUP_OPER, 1, sizeof(bcmolt_gpon_ni_protection_switching_type_c_set_multiple_onu_state_data), sizeof(bcmolt_gpon_ni_protection_switching_type_c_set_multiple_onu_state), offsetof(bcmolt_gpon_ni_protection_switching_type_c_set_multiple_onu_state, data), (bcmolt_func_packed_len) bcmolt_gpon_ni_protection_switching_type_c_set_multiple_onu_state_data_get_packed_length, (bcmolt_func_pack) bcmolt_gpon_ni_protection_switching_type_c_set_multiple_onu_state_data_pack, (bcmolt_func_unpack) bcmolt_gpon_ni_protection_switching_type_c_set_multiple_onu_state_data_unpack, bcmolt_gpon_ni_protection_switching_type_c_set_multiple_onu_state_data_scan };
+static bcmolt_group_info group_info_gpon_ni_reset = { BCMOLT_OBJ_ID_GPON_NI, BCMOLT_MGT_GROUP_OPER, 2, 0, 0, 0, NULL, NULL, NULL };
+static bcmolt_group_info group_info_gpon_ni_rogue_detection_window = { BCMOLT_OBJ_ID_GPON_NI, BCMOLT_MGT_GROUP_OPER, 3, sizeof(bcmolt_gpon_ni_rogue_detection_window_data), sizeof(bcmolt_gpon_ni_rogue_detection_window), offsetof(bcmolt_gpon_ni_rogue_detection_window, data), (bcmolt_func_packed_len) bcmolt_gpon_ni_rogue_detection_window_data_get_packed_length, (bcmolt_func_pack) bcmolt_gpon_ni_rogue_detection_window_data_pack, (bcmolt_func_unpack) bcmolt_gpon_ni_rogue_detection_window_data_unpack, bcmolt_gpon_ni_rogue_detection_window_data_scan };
+static bcmolt_group_info group_info_gpon_ni_set_onu_state = { BCMOLT_OBJ_ID_GPON_NI, BCMOLT_MGT_GROUP_OPER, 4, sizeof(bcmolt_gpon_ni_set_onu_state_data), sizeof(bcmolt_gpon_ni_set_onu_state), offsetof(bcmolt_gpon_ni_set_onu_state, data), (bcmolt_func_packed_len) bcmolt_gpon_ni_set_onu_state_data_get_packed_length, (bcmolt_func_pack) bcmolt_gpon_ni_set_onu_state_data_pack, (bcmolt_func_unpack) bcmolt_gpon_ni_set_onu_state_data_unpack, bcmolt_gpon_ni_set_onu_state_data_scan };
+static bcmolt_group_info group_info_gpon_ni_set_pon_state = { BCMOLT_OBJ_ID_GPON_NI, BCMOLT_MGT_GROUP_OPER, 5, sizeof(bcmolt_gpon_ni_set_pon_state_data), sizeof(bcmolt_gpon_ni_set_pon_state), offsetof(bcmolt_gpon_ni_set_pon_state, data), (bcmolt_func_packed_len) bcmolt_gpon_ni_set_pon_state_data_get_packed_length, (bcmolt_func_pack) bcmolt_gpon_ni_set_pon_state_data_pack, (bcmolt_func_unpack) bcmolt_gpon_ni_set_pon_state_data_unpack, bcmolt_gpon_ni_set_pon_state_data_scan };
+static bcmolt_group_info group_info_gpon_ni_single_request_standby_pon_monitoring = { BCMOLT_OBJ_ID_GPON_NI, BCMOLT_MGT_GROUP_OPER, 6, 0, 0, 0, NULL, NULL, NULL };
+static bcmolt_group_info group_info_gpon_ni_start_onu_upgrade = { BCMOLT_OBJ_ID_GPON_NI, BCMOLT_MGT_GROUP_OPER, 7, sizeof(bcmolt_gpon_ni_start_onu_upgrade_data), sizeof(bcmolt_gpon_ni_start_onu_upgrade), offsetof(bcmolt_gpon_ni_start_onu_upgrade, data), (bcmolt_func_packed_len) bcmolt_gpon_ni_start_onu_upgrade_data_get_packed_length, (bcmolt_func_pack) bcmolt_gpon_ni_start_onu_upgrade_data_pack, (bcmolt_func_unpack) bcmolt_gpon_ni_start_onu_upgrade_data_unpack, bcmolt_gpon_ni_start_onu_upgrade_data_scan };
+static bcmolt_group_info group_info_gpon_ni_tod_request = { BCMOLT_OBJ_ID_GPON_NI, BCMOLT_MGT_GROUP_OPER, 8, 0, 0, 0, NULL, NULL, NULL };
+static bcmolt_group_info group_info_gpon_ni_broadcast_ploam_packet = { BCMOLT_OBJ_ID_GPON_NI, BCMOLT_MGT_GROUP_PROXY, 0, sizeof(bcmolt_gpon_ni_broadcast_ploam_packet_data), sizeof(bcmolt_gpon_ni_broadcast_ploam_packet), offsetof(bcmolt_gpon_ni_broadcast_ploam_packet, data), (bcmolt_func_packed_len) bcmolt_gpon_ni_broadcast_ploam_packet_data_get_packed_length, (bcmolt_func_pack) bcmolt_gpon_ni_broadcast_ploam_packet_data_pack, (bcmolt_func_unpack) bcmolt_gpon_ni_broadcast_ploam_packet_data_unpack, bcmolt_gpon_ni_broadcast_ploam_packet_data_scan };
+static bcmolt_group_info group_info_gpon_ni_cpu_packets = { BCMOLT_OBJ_ID_GPON_NI, BCMOLT_MGT_GROUP_PROXY, 1, sizeof(bcmolt_gpon_ni_cpu_packets_data), sizeof(bcmolt_gpon_ni_cpu_packets), offsetof(bcmolt_gpon_ni_cpu_packets, data), (bcmolt_func_packed_len) bcmolt_gpon_ni_cpu_packets_data_get_packed_length, (bcmolt_func_pack) bcmolt_gpon_ni_cpu_packets_data_pack, (bcmolt_func_unpack) bcmolt_gpon_ni_cpu_packets_data_unpack, bcmolt_gpon_ni_cpu_packets_data_scan };
+static bcmolt_group_info group_info_gpon_onu_key = { BCMOLT_OBJ_ID_GPON_ONU, BCMOLT_MGT_GROUP_KEY, 0, sizeof(bcmolt_gpon_onu_key), 0, 0, (bcmolt_func_packed_len) bcmolt_gpon_onu_key_get_packed_length, (bcmolt_func_pack) bcmolt_gpon_onu_key_pack, (bcmolt_func_unpack) bcmolt_gpon_onu_key_unpack, bcmolt_gpon_onu_key_scan };
+static bcmolt_group_info group_info_gpon_onu_cfg = { BCMOLT_OBJ_ID_GPON_ONU, BCMOLT_MGT_GROUP_CFG, 0, sizeof(bcmolt_gpon_onu_cfg_data), sizeof(bcmolt_gpon_onu_cfg), offsetof(bcmolt_gpon_onu_cfg, data), (bcmolt_func_packed_len) bcmolt_gpon_onu_cfg_data_get_packed_length, (bcmolt_func_pack) bcmolt_gpon_onu_cfg_data_pack, (bcmolt_func_unpack) bcmolt_gpon_onu_cfg_data_unpack, bcmolt_gpon_onu_cfg_data_scan };
+static bcmolt_group_info group_info_gpon_onu_stat = { BCMOLT_OBJ_ID_GPON_ONU, BCMOLT_MGT_GROUP_STAT, 0, sizeof(bcmolt_gpon_onu_stat_data), sizeof(bcmolt_gpon_onu_stat), offsetof(bcmolt_gpon_onu_stat, data), (bcmolt_func_packed_len) bcmolt_gpon_onu_stat_data_get_packed_length, (bcmolt_func_pack) bcmolt_gpon_onu_stat_data_pack, (bcmolt_func_unpack) bcmolt_gpon_onu_stat_data_unpack, bcmolt_gpon_onu_stat_data_scan };
+static bcmolt_group_info group_info_gpon_onu_stat_cfg = { BCMOLT_OBJ_ID_GPON_ONU, BCMOLT_MGT_GROUP_STAT_CFG, 0, sizeof(bcmolt_gpon_onu_stat_cfg_data), sizeof(bcmolt_gpon_onu_stat_cfg), offsetof(bcmolt_gpon_onu_stat_cfg, data), (bcmolt_func_packed_len) bcmolt_gpon_onu_stat_cfg_data_get_packed_length, (bcmolt_func_pack) bcmolt_gpon_onu_stat_cfg_data_pack, (bcmolt_func_unpack) bcmolt_gpon_onu_stat_cfg_data_unpack, bcmolt_gpon_onu_stat_cfg_data_scan };
+static bcmolt_group_info group_info_gpon_onu_ber_interval_configuration_completed = { BCMOLT_OBJ_ID_GPON_ONU, BCMOLT_MGT_GROUP_AUTO, 0, sizeof(bcmolt_gpon_onu_ber_interval_configuration_completed_data), sizeof(bcmolt_gpon_onu_ber_interval_configuration_completed), offsetof(bcmolt_gpon_onu_ber_interval_configuration_completed, data), (bcmolt_func_packed_len) bcmolt_gpon_onu_ber_interval_configuration_completed_data_get_packed_length, (bcmolt_func_pack) bcmolt_gpon_onu_ber_interval_configuration_completed_data_pack, (bcmolt_func_unpack) bcmolt_gpon_onu_ber_interval_configuration_completed_data_unpack, bcmolt_gpon_onu_ber_interval_configuration_completed_data_scan };
+static bcmolt_group_info group_info_gpon_onu_dfi = { BCMOLT_OBJ_ID_GPON_ONU, BCMOLT_MGT_GROUP_AUTO, 1, sizeof(bcmolt_gpon_onu_dfi_data), sizeof(bcmolt_gpon_onu_dfi), offsetof(bcmolt_gpon_onu_dfi, data), (bcmolt_func_packed_len) bcmolt_gpon_onu_dfi_data_get_packed_length, (bcmolt_func_pack) bcmolt_gpon_onu_dfi_data_pack, (bcmolt_func_unpack) bcmolt_gpon_onu_dfi_data_unpack, bcmolt_gpon_onu_dfi_data_scan };
+static bcmolt_group_info group_info_gpon_onu_dgi = { BCMOLT_OBJ_ID_GPON_ONU, BCMOLT_MGT_GROUP_AUTO, 2, sizeof(bcmolt_gpon_onu_dgi_data), sizeof(bcmolt_gpon_onu_dgi), offsetof(bcmolt_gpon_onu_dgi, data), (bcmolt_func_packed_len) bcmolt_gpon_onu_dgi_data_get_packed_length, (bcmolt_func_pack) bcmolt_gpon_onu_dgi_data_pack, (bcmolt_func_unpack) bcmolt_gpon_onu_dgi_data_unpack, bcmolt_gpon_onu_dgi_data_scan };
+static bcmolt_group_info group_info_gpon_onu_dowi = { BCMOLT_OBJ_ID_GPON_ONU, BCMOLT_MGT_GROUP_AUTO, 3, sizeof(bcmolt_gpon_onu_dowi_data), sizeof(bcmolt_gpon_onu_dowi), offsetof(bcmolt_gpon_onu_dowi, data), (bcmolt_func_packed_len) bcmolt_gpon_onu_dowi_data_get_packed_length, (bcmolt_func_pack) bcmolt_gpon_onu_dowi_data_pack, (bcmolt_func_unpack) bcmolt_gpon_onu_dowi_data_unpack, bcmolt_gpon_onu_dowi_data_scan };
+static bcmolt_group_info group_info_gpon_onu_err = { BCMOLT_OBJ_ID_GPON_ONU, BCMOLT_MGT_GROUP_AUTO, 4, sizeof(bcmolt_gpon_onu_err_data), sizeof(bcmolt_gpon_onu_err), offsetof(bcmolt_gpon_onu_err, data), (bcmolt_func_packed_len) bcmolt_gpon_onu_err_data_get_packed_length, (bcmolt_func_pack) bcmolt_gpon_onu_err_data_pack, (bcmolt_func_unpack) bcmolt_gpon_onu_err_data_unpack, bcmolt_gpon_onu_err_data_scan };
+static bcmolt_group_info group_info_gpon_onu_invalid_dbru_report = { BCMOLT_OBJ_ID_GPON_ONU, BCMOLT_MGT_GROUP_AUTO, 5, sizeof(bcmolt_gpon_onu_invalid_dbru_report_data), sizeof(bcmolt_gpon_onu_invalid_dbru_report), offsetof(bcmolt_gpon_onu_invalid_dbru_report, data), (bcmolt_func_packed_len) bcmolt_gpon_onu_invalid_dbru_report_data_get_packed_length, (bcmolt_func_pack) bcmolt_gpon_onu_invalid_dbru_report_data_pack, (bcmolt_func_unpack) bcmolt_gpon_onu_invalid_dbru_report_data_unpack, bcmolt_gpon_onu_invalid_dbru_report_data_scan };
+static bcmolt_group_info group_info_gpon_onu_key_exchange_completed = { BCMOLT_OBJ_ID_GPON_ONU, BCMOLT_MGT_GROUP_AUTO, 6, sizeof(bcmolt_gpon_onu_key_exchange_completed_data), sizeof(bcmolt_gpon_onu_key_exchange_completed), offsetof(bcmolt_gpon_onu_key_exchange_completed, data), (bcmolt_func_packed_len) bcmolt_gpon_onu_key_exchange_completed_data_get_packed_length, (bcmolt_func_pack) bcmolt_gpon_onu_key_exchange_completed_data_pack, (bcmolt_func_unpack) bcmolt_gpon_onu_key_exchange_completed_data_unpack, bcmolt_gpon_onu_key_exchange_completed_data_scan };
+static bcmolt_group_info group_info_gpon_onu_key_exchange_cycle_skipped = { BCMOLT_OBJ_ID_GPON_ONU, BCMOLT_MGT_GROUP_AUTO, 7, 0, 0, 0, NULL, NULL, NULL };
+static bcmolt_group_info group_info_gpon_onu_key_exchange_decrypt_required = { BCMOLT_OBJ_ID_GPON_ONU, BCMOLT_MGT_GROUP_AUTO, 8, sizeof(bcmolt_gpon_onu_key_exchange_decrypt_required_data), sizeof(bcmolt_gpon_onu_key_exchange_decrypt_required), offsetof(bcmolt_gpon_onu_key_exchange_decrypt_required, data), (bcmolt_func_packed_len) bcmolt_gpon_onu_key_exchange_decrypt_required_data_get_packed_length, (bcmolt_func_pack) bcmolt_gpon_onu_key_exchange_decrypt_required_data_pack, (bcmolt_func_unpack) bcmolt_gpon_onu_key_exchange_decrypt_required_data_unpack, bcmolt_gpon_onu_key_exchange_decrypt_required_data_scan };
+static bcmolt_group_info group_info_gpon_onu_key_exchange_key_mismatch = { BCMOLT_OBJ_ID_GPON_ONU, BCMOLT_MGT_GROUP_AUTO, 9, sizeof(bcmolt_gpon_onu_key_exchange_key_mismatch_data), sizeof(bcmolt_gpon_onu_key_exchange_key_mismatch), offsetof(bcmolt_gpon_onu_key_exchange_key_mismatch, data), (bcmolt_func_packed_len) bcmolt_gpon_onu_key_exchange_key_mismatch_data_get_packed_length, (bcmolt_func_pack) bcmolt_gpon_onu_key_exchange_key_mismatch_data_pack, (bcmolt_func_unpack) bcmolt_gpon_onu_key_exchange_key_mismatch_data_unpack, bcmolt_gpon_onu_key_exchange_key_mismatch_data_scan };
+static bcmolt_group_info group_info_gpon_onu_key_exchange_key_request_timeout = { BCMOLT_OBJ_ID_GPON_ONU, BCMOLT_MGT_GROUP_AUTO, 10, 0, 0, 0, NULL, NULL, NULL };
+static bcmolt_group_info group_info_gpon_onu_key_exchange_unconsecutive_index = { BCMOLT_OBJ_ID_GPON_ONU, BCMOLT_MGT_GROUP_AUTO, 11, sizeof(bcmolt_gpon_onu_key_exchange_unconsecutive_index_data), sizeof(bcmolt_gpon_onu_key_exchange_unconsecutive_index), offsetof(bcmolt_gpon_onu_key_exchange_unconsecutive_index, data), (bcmolt_func_packed_len) bcmolt_gpon_onu_key_exchange_unconsecutive_index_data_get_packed_length, (bcmolt_func_pack) bcmolt_gpon_onu_key_exchange_unconsecutive_index_data_pack, (bcmolt_func_unpack) bcmolt_gpon_onu_key_exchange_unconsecutive_index_data_unpack, bcmolt_gpon_onu_key_exchange_unconsecutive_index_data_scan };
+static bcmolt_group_info group_info_gpon_onu_loai = { BCMOLT_OBJ_ID_GPON_ONU, BCMOLT_MGT_GROUP_AUTO, 12, sizeof(bcmolt_gpon_onu_loai_data), sizeof(bcmolt_gpon_onu_loai), offsetof(bcmolt_gpon_onu_loai, data), (bcmolt_func_packed_len) bcmolt_gpon_onu_loai_data_get_packed_length, (bcmolt_func_pack) bcmolt_gpon_onu_loai_data_pack, (bcmolt_func_unpack) bcmolt_gpon_onu_loai_data_unpack, bcmolt_gpon_onu_loai_data_scan };
+static bcmolt_group_info group_info_gpon_onu_loki = { BCMOLT_OBJ_ID_GPON_ONU, BCMOLT_MGT_GROUP_AUTO, 13, sizeof(bcmolt_gpon_onu_loki_data), sizeof(bcmolt_gpon_onu_loki), offsetof(bcmolt_gpon_onu_loki, data), (bcmolt_func_packed_len) bcmolt_gpon_onu_loki_data_get_packed_length, (bcmolt_func_pack) bcmolt_gpon_onu_loki_data_pack, (bcmolt_func_unpack) bcmolt_gpon_onu_loki_data_unpack, bcmolt_gpon_onu_loki_data_scan };
+static bcmolt_group_info group_info_gpon_onu_memi = { BCMOLT_OBJ_ID_GPON_ONU, BCMOLT_MGT_GROUP_AUTO, 14, sizeof(bcmolt_gpon_onu_memi_data), sizeof(bcmolt_gpon_onu_memi), offsetof(bcmolt_gpon_onu_memi, data), (bcmolt_func_packed_len) bcmolt_gpon_onu_memi_data_get_packed_length, (bcmolt_func_pack) bcmolt_gpon_onu_memi_data_pack, (bcmolt_func_unpack) bcmolt_gpon_onu_memi_data_unpack, bcmolt_gpon_onu_memi_data_scan };
+static bcmolt_group_info group_info_gpon_onu_omci_port_id_configuration_completed = { BCMOLT_OBJ_ID_GPON_ONU, BCMOLT_MGT_GROUP_AUTO, 15, sizeof(bcmolt_gpon_onu_omci_port_id_configuration_completed_data), sizeof(bcmolt_gpon_onu_omci_port_id_configuration_completed), offsetof(bcmolt_gpon_onu_omci_port_id_configuration_completed, data), (bcmolt_func_packed_len) bcmolt_gpon_onu_omci_port_id_configuration_completed_data_get_packed_length, (bcmolt_func_pack) bcmolt_gpon_onu_omci_port_id_configuration_completed_data_pack, (bcmolt_func_unpack) bcmolt_gpon_onu_omci_port_id_configuration_completed_data_unpack, bcmolt_gpon_onu_omci_port_id_configuration_completed_data_scan };
+static bcmolt_group_info group_info_gpon_onu_onu_activation_completed = { BCMOLT_OBJ_ID_GPON_ONU, BCMOLT_MGT_GROUP_AUTO, 16, sizeof(bcmolt_gpon_onu_onu_activation_completed_data), sizeof(bcmolt_gpon_onu_onu_activation_completed), offsetof(bcmolt_gpon_onu_onu_activation_completed, data), (bcmolt_func_packed_len) bcmolt_gpon_onu_onu_activation_completed_data_get_packed_length, (bcmolt_func_pack) bcmolt_gpon_onu_onu_activation_completed_data_pack, (bcmolt_func_unpack) bcmolt_gpon_onu_onu_activation_completed_data_unpack, bcmolt_gpon_onu_onu_activation_completed_data_scan };
+static bcmolt_group_info group_info_gpon_onu_onu_activation_standby_completed = { BCMOLT_OBJ_ID_GPON_ONU, BCMOLT_MGT_GROUP_AUTO, 17, sizeof(bcmolt_gpon_onu_onu_activation_standby_completed_data), sizeof(bcmolt_gpon_onu_onu_activation_standby_completed), offsetof(bcmolt_gpon_onu_onu_activation_standby_completed, data), (bcmolt_func_packed_len) bcmolt_gpon_onu_onu_activation_standby_completed_data_get_packed_length, (bcmolt_func_pack) bcmolt_gpon_onu_onu_activation_standby_completed_data_pack, (bcmolt_func_unpack) bcmolt_gpon_onu_onu_activation_standby_completed_data_unpack, bcmolt_gpon_onu_onu_activation_standby_completed_data_scan };
+static bcmolt_group_info group_info_gpon_onu_onu_alarm = { BCMOLT_OBJ_ID_GPON_ONU, BCMOLT_MGT_GROUP_AUTO, 18, sizeof(bcmolt_gpon_onu_onu_alarm_data), sizeof(bcmolt_gpon_onu_onu_alarm), offsetof(bcmolt_gpon_onu_onu_alarm, data), (bcmolt_func_packed_len) bcmolt_gpon_onu_onu_alarm_data_get_packed_length, (bcmolt_func_pack) bcmolt_gpon_onu_onu_alarm_data_pack, (bcmolt_func_unpack) bcmolt_gpon_onu_onu_alarm_data_unpack, bcmolt_gpon_onu_onu_alarm_data_scan };
+static bcmolt_group_info group_info_gpon_onu_onu_deactivation_completed = { BCMOLT_OBJ_ID_GPON_ONU, BCMOLT_MGT_GROUP_AUTO, 19, sizeof(bcmolt_gpon_onu_onu_deactivation_completed_data), sizeof(bcmolt_gpon_onu_onu_deactivation_completed), offsetof(bcmolt_gpon_onu_onu_deactivation_completed, data), (bcmolt_func_packed_len) bcmolt_gpon_onu_onu_deactivation_completed_data_get_packed_length, (bcmolt_func_pack) bcmolt_gpon_onu_onu_deactivation_completed_data_pack, (bcmolt_func_unpack) bcmolt_gpon_onu_onu_deactivation_completed_data_unpack, bcmolt_gpon_onu_onu_deactivation_completed_data_scan };
+static bcmolt_group_info group_info_gpon_onu_onu_disable_completed = { BCMOLT_OBJ_ID_GPON_ONU, BCMOLT_MGT_GROUP_AUTO, 20, sizeof(bcmolt_gpon_onu_onu_disable_completed_data), sizeof(bcmolt_gpon_onu_onu_disable_completed), offsetof(bcmolt_gpon_onu_onu_disable_completed, data), (bcmolt_func_packed_len) bcmolt_gpon_onu_onu_disable_completed_data_get_packed_length, (bcmolt_func_pack) bcmolt_gpon_onu_onu_disable_completed_data_pack, (bcmolt_func_unpack) bcmolt_gpon_onu_onu_disable_completed_data_unpack, bcmolt_gpon_onu_onu_disable_completed_data_scan };
+static bcmolt_group_info group_info_gpon_onu_onu_enable_completed = { BCMOLT_OBJ_ID_GPON_ONU, BCMOLT_MGT_GROUP_AUTO, 21, sizeof(bcmolt_gpon_onu_onu_enable_completed_data), sizeof(bcmolt_gpon_onu_onu_enable_completed), offsetof(bcmolt_gpon_onu_onu_enable_completed, data), (bcmolt_func_packed_len) bcmolt_gpon_onu_onu_enable_completed_data_get_packed_length, (bcmolt_func_pack) bcmolt_gpon_onu_onu_enable_completed_data_pack, (bcmolt_func_unpack) bcmolt_gpon_onu_onu_enable_completed_data_unpack, bcmolt_gpon_onu_onu_enable_completed_data_scan };
+static bcmolt_group_info group_info_gpon_onu_optical_reflection = { BCMOLT_OBJ_ID_GPON_ONU, BCMOLT_MGT_GROUP_AUTO, 22, 0, 0, 0, NULL, NULL, NULL };
+static bcmolt_group_info group_info_gpon_onu_password_authentication_completed = { BCMOLT_OBJ_ID_GPON_ONU, BCMOLT_MGT_GROUP_AUTO, 23, sizeof(bcmolt_gpon_onu_password_authentication_completed_data), sizeof(bcmolt_gpon_onu_password_authentication_completed), offsetof(bcmolt_gpon_onu_password_authentication_completed, data), (bcmolt_func_packed_len) bcmolt_gpon_onu_password_authentication_completed_data_get_packed_length, (bcmolt_func_pack) bcmolt_gpon_onu_password_authentication_completed_data_pack, (bcmolt_func_unpack) bcmolt_gpon_onu_password_authentication_completed_data_unpack, bcmolt_gpon_onu_password_authentication_completed_data_scan };
+static bcmolt_group_info group_info_gpon_onu_pee = { BCMOLT_OBJ_ID_GPON_ONU, BCMOLT_MGT_GROUP_AUTO, 24, sizeof(bcmolt_gpon_onu_pee_data), sizeof(bcmolt_gpon_onu_pee), offsetof(bcmolt_gpon_onu_pee, data), (bcmolt_func_packed_len) bcmolt_gpon_onu_pee_data_get_packed_length, (bcmolt_func_pack) bcmolt_gpon_onu_pee_data_pack, (bcmolt_func_unpack) bcmolt_gpon_onu_pee_data_unpack, bcmolt_gpon_onu_pee_data_scan };
+static bcmolt_group_info group_info_gpon_onu_possible_drift = { BCMOLT_OBJ_ID_GPON_ONU, BCMOLT_MGT_GROUP_AUTO, 25, sizeof(bcmolt_gpon_onu_possible_drift_data), sizeof(bcmolt_gpon_onu_possible_drift), offsetof(bcmolt_gpon_onu_possible_drift, data), (bcmolt_func_packed_len) bcmolt_gpon_onu_possible_drift_data_get_packed_length, (bcmolt_func_pack) bcmolt_gpon_onu_possible_drift_data_pack, (bcmolt_func_unpack) bcmolt_gpon_onu_possible_drift_data_unpack, bcmolt_gpon_onu_possible_drift_data_scan };
+static bcmolt_group_info group_info_gpon_onu_power_management_state_change = { BCMOLT_OBJ_ID_GPON_ONU, BCMOLT_MGT_GROUP_AUTO, 26, sizeof(bcmolt_gpon_onu_power_management_state_change_data), sizeof(bcmolt_gpon_onu_power_management_state_change), offsetof(bcmolt_gpon_onu_power_management_state_change, data), (bcmolt_func_packed_len) bcmolt_gpon_onu_power_management_state_change_data_get_packed_length, (bcmolt_func_pack) bcmolt_gpon_onu_power_management_state_change_data_pack, (bcmolt_func_unpack) bcmolt_gpon_onu_power_management_state_change_data_unpack, bcmolt_gpon_onu_power_management_state_change_data_scan };
+static bcmolt_group_info group_info_gpon_onu_pst = { BCMOLT_OBJ_ID_GPON_ONU, BCMOLT_MGT_GROUP_AUTO, 27, sizeof(bcmolt_gpon_onu_pst_data), sizeof(bcmolt_gpon_onu_pst), offsetof(bcmolt_gpon_onu_pst, data), (bcmolt_func_packed_len) bcmolt_gpon_onu_pst_data_get_packed_length, (bcmolt_func_pack) bcmolt_gpon_onu_pst_data_pack, (bcmolt_func_unpack) bcmolt_gpon_onu_pst_data_unpack, bcmolt_gpon_onu_pst_data_scan };
+static bcmolt_group_info group_info_gpon_onu_ranging_completed = { BCMOLT_OBJ_ID_GPON_ONU, BCMOLT_MGT_GROUP_AUTO, 28, sizeof(bcmolt_gpon_onu_ranging_completed_data), sizeof(bcmolt_gpon_onu_ranging_completed), offsetof(bcmolt_gpon_onu_ranging_completed, data), (bcmolt_func_packed_len) bcmolt_gpon_onu_ranging_completed_data_get_packed_length, (bcmolt_func_pack) bcmolt_gpon_onu_ranging_completed_data_pack, (bcmolt_func_unpack) bcmolt_gpon_onu_ranging_completed_data_unpack, bcmolt_gpon_onu_ranging_completed_data_scan };
+static bcmolt_group_info group_info_gpon_onu_rei = { BCMOLT_OBJ_ID_GPON_ONU, BCMOLT_MGT_GROUP_AUTO, 29, sizeof(bcmolt_gpon_onu_rei_data), sizeof(bcmolt_gpon_onu_rei), offsetof(bcmolt_gpon_onu_rei, data), (bcmolt_func_packed_len) bcmolt_gpon_onu_rei_data_get_packed_length, (bcmolt_func_pack) bcmolt_gpon_onu_rei_data_pack, (bcmolt_func_unpack) bcmolt_gpon_onu_rei_data_unpack, bcmolt_gpon_onu_rei_data_scan };
+static bcmolt_group_info group_info_gpon_onu_rssi_measurement_completed = { BCMOLT_OBJ_ID_GPON_ONU, BCMOLT_MGT_GROUP_AUTO, 30, sizeof(bcmolt_gpon_onu_rssi_measurement_completed_data), sizeof(bcmolt_gpon_onu_rssi_measurement_completed), offsetof(bcmolt_gpon_onu_rssi_measurement_completed, data), (bcmolt_func_packed_len) bcmolt_gpon_onu_rssi_measurement_completed_data_get_packed_length, (bcmolt_func_pack) bcmolt_gpon_onu_rssi_measurement_completed_data_pack, (bcmolt_func_unpack) bcmolt_gpon_onu_rssi_measurement_completed_data_unpack, bcmolt_gpon_onu_rssi_measurement_completed_data_scan };
+static bcmolt_group_info group_info_gpon_onu_sdi = { BCMOLT_OBJ_ID_GPON_ONU, BCMOLT_MGT_GROUP_AUTO, 31, sizeof(bcmolt_gpon_onu_sdi_data), sizeof(bcmolt_gpon_onu_sdi), offsetof(bcmolt_gpon_onu_sdi, data), (bcmolt_func_packed_len) bcmolt_gpon_onu_sdi_data_get_packed_length, (bcmolt_func_pack) bcmolt_gpon_onu_sdi_data_pack, (bcmolt_func_unpack) bcmolt_gpon_onu_sdi_data_unpack, bcmolt_gpon_onu_sdi_data_scan };
+static bcmolt_group_info group_info_gpon_onu_sfi = { BCMOLT_OBJ_ID_GPON_ONU, BCMOLT_MGT_GROUP_AUTO, 32, sizeof(bcmolt_gpon_onu_sfi_data), sizeof(bcmolt_gpon_onu_sfi), offsetof(bcmolt_gpon_onu_sfi, data), (bcmolt_func_packed_len) bcmolt_gpon_onu_sfi_data_get_packed_length, (bcmolt_func_pack) bcmolt_gpon_onu_sfi_data_pack, (bcmolt_func_unpack) bcmolt_gpon_onu_sfi_data_unpack, bcmolt_gpon_onu_sfi_data_scan };
+static bcmolt_group_info group_info_gpon_onu_stat_alarm_cleared = { BCMOLT_OBJ_ID_GPON_ONU, BCMOLT_MGT_GROUP_AUTO, 33, sizeof(bcmolt_gpon_onu_stat_alarm_cleared_data), sizeof(bcmolt_gpon_onu_stat_alarm_cleared), offsetof(bcmolt_gpon_onu_stat_alarm_cleared, data), (bcmolt_func_packed_len) bcmolt_gpon_onu_stat_alarm_cleared_data_get_packed_length, (bcmolt_func_pack) bcmolt_gpon_onu_stat_alarm_cleared_data_pack, (bcmolt_func_unpack) bcmolt_gpon_onu_stat_alarm_cleared_data_unpack, bcmolt_gpon_onu_stat_alarm_cleared_data_scan };
+static bcmolt_group_info group_info_gpon_onu_stat_alarm_raised = { BCMOLT_OBJ_ID_GPON_ONU, BCMOLT_MGT_GROUP_AUTO, 34, sizeof(bcmolt_gpon_onu_stat_alarm_raised_data), sizeof(bcmolt_gpon_onu_stat_alarm_raised), offsetof(bcmolt_gpon_onu_stat_alarm_raised, data), (bcmolt_func_packed_len) bcmolt_gpon_onu_stat_alarm_raised_data_get_packed_length, (bcmolt_func_pack) bcmolt_gpon_onu_stat_alarm_raised_data_pack, (bcmolt_func_unpack) bcmolt_gpon_onu_stat_alarm_raised_data_unpack, bcmolt_gpon_onu_stat_alarm_raised_data_scan };
+static bcmolt_group_info group_info_gpon_onu_sufi = { BCMOLT_OBJ_ID_GPON_ONU, BCMOLT_MGT_GROUP_AUTO, 35, sizeof(bcmolt_gpon_onu_sufi_data), sizeof(bcmolt_gpon_onu_sufi), offsetof(bcmolt_gpon_onu_sufi, data), (bcmolt_func_packed_len) bcmolt_gpon_onu_sufi_data_get_packed_length, (bcmolt_func_pack) bcmolt_gpon_onu_sufi_data_pack, (bcmolt_func_unpack) bcmolt_gpon_onu_sufi_data_unpack, bcmolt_gpon_onu_sufi_data_scan };
+static bcmolt_group_info group_info_gpon_onu_tiwi = { BCMOLT_OBJ_ID_GPON_ONU, BCMOLT_MGT_GROUP_AUTO, 36, sizeof(bcmolt_gpon_onu_tiwi_data), sizeof(bcmolt_gpon_onu_tiwi), offsetof(bcmolt_gpon_onu_tiwi, data), (bcmolt_func_packed_len) bcmolt_gpon_onu_tiwi_data_get_packed_length, (bcmolt_func_pack) bcmolt_gpon_onu_tiwi_data_pack, (bcmolt_func_unpack) bcmolt_gpon_onu_tiwi_data_unpack, bcmolt_gpon_onu_tiwi_data_scan };
+static bcmolt_group_info group_info_gpon_onu_auto_cfg = { BCMOLT_OBJ_ID_GPON_ONU, BCMOLT_MGT_GROUP_AUTO_CFG, 0, sizeof(bcmolt_gpon_onu_auto_cfg_data), sizeof(bcmolt_gpon_onu_auto_cfg), offsetof(bcmolt_gpon_onu_auto_cfg, data), (bcmolt_func_packed_len) bcmolt_gpon_onu_auto_cfg_data_get_packed_length, (bcmolt_func_pack) bcmolt_gpon_onu_auto_cfg_data_pack, (bcmolt_func_unpack) bcmolt_gpon_onu_auto_cfg_data_unpack, bcmolt_gpon_onu_auto_cfg_data_scan };
+static bcmolt_group_info group_info_gpon_onu_change_power_level = { BCMOLT_OBJ_ID_GPON_ONU, BCMOLT_MGT_GROUP_OPER, 0, sizeof(bcmolt_gpon_onu_change_power_level_data), sizeof(bcmolt_gpon_onu_change_power_level), offsetof(bcmolt_gpon_onu_change_power_level, data), (bcmolt_func_packed_len) bcmolt_gpon_onu_change_power_level_data_get_packed_length, (bcmolt_func_pack) bcmolt_gpon_onu_change_power_level_data_pack, (bcmolt_func_unpack) bcmolt_gpon_onu_change_power_level_data_unpack, bcmolt_gpon_onu_change_power_level_data_scan };
+static bcmolt_group_info group_info_gpon_onu_rssi_measurement = { BCMOLT_OBJ_ID_GPON_ONU, BCMOLT_MGT_GROUP_OPER, 1, 0, 0, 0, NULL, NULL, NULL };
+static bcmolt_group_info group_info_gpon_onu_set_onu_state = { BCMOLT_OBJ_ID_GPON_ONU, BCMOLT_MGT_GROUP_OPER, 2, sizeof(bcmolt_gpon_onu_set_onu_state_data), sizeof(bcmolt_gpon_onu_set_onu_state), offsetof(bcmolt_gpon_onu_set_onu_state, data), (bcmolt_func_packed_len) bcmolt_gpon_onu_set_onu_state_data_get_packed_length, (bcmolt_func_pack) bcmolt_gpon_onu_set_onu_state_data_pack, (bcmolt_func_unpack) bcmolt_gpon_onu_set_onu_state_data_unpack, bcmolt_gpon_onu_set_onu_state_data_scan };
+static bcmolt_group_info group_info_gpon_onu_cpu_packets = { BCMOLT_OBJ_ID_GPON_ONU, BCMOLT_MGT_GROUP_PROXY, 0, sizeof(bcmolt_gpon_onu_cpu_packets_data), sizeof(bcmolt_gpon_onu_cpu_packets), offsetof(bcmolt_gpon_onu_cpu_packets, data), (bcmolt_func_packed_len) bcmolt_gpon_onu_cpu_packets_data_get_packed_length, (bcmolt_func_pack) bcmolt_gpon_onu_cpu_packets_data_pack, (bcmolt_func_unpack) bcmolt_gpon_onu_cpu_packets_data_unpack, bcmolt_gpon_onu_cpu_packets_data_scan };
+static bcmolt_group_info group_info_gpon_onu_ploam_packet = { BCMOLT_OBJ_ID_GPON_ONU, BCMOLT_MGT_GROUP_PROXY, 1, sizeof(bcmolt_gpon_onu_ploam_packet_data), sizeof(bcmolt_gpon_onu_ploam_packet), offsetof(bcmolt_gpon_onu_ploam_packet, data), (bcmolt_func_packed_len) bcmolt_gpon_onu_ploam_packet_data_get_packed_length, (bcmolt_func_pack) bcmolt_gpon_onu_ploam_packet_data_pack, (bcmolt_func_unpack) bcmolt_gpon_onu_ploam_packet_data_unpack, bcmolt_gpon_onu_ploam_packet_data_scan };
+static bcmolt_group_info group_info_gpon_onu_cpu_packet = { BCMOLT_OBJ_ID_GPON_ONU, BCMOLT_MGT_GROUP_PROXY_RX, 0, sizeof(bcmolt_gpon_onu_cpu_packet_data), sizeof(bcmolt_gpon_onu_cpu_packet), offsetof(bcmolt_gpon_onu_cpu_packet, data), (bcmolt_func_packed_len) bcmolt_gpon_onu_cpu_packet_data_get_packed_length, (bcmolt_func_pack) bcmolt_gpon_onu_cpu_packet_data_pack, (bcmolt_func_unpack) bcmolt_gpon_onu_cpu_packet_data_unpack, bcmolt_gpon_onu_cpu_packet_data_scan };
+static bcmolt_group_info group_info_gpon_onu_omci_packet = { BCMOLT_OBJ_ID_GPON_ONU, BCMOLT_MGT_GROUP_PROXY_RX, 1, sizeof(bcmolt_gpon_onu_omci_packet_data), sizeof(bcmolt_gpon_onu_omci_packet), offsetof(bcmolt_gpon_onu_omci_packet, data), (bcmolt_func_packed_len) bcmolt_gpon_onu_omci_packet_data_get_packed_length, (bcmolt_func_pack) bcmolt_gpon_onu_omci_packet_data_pack, (bcmolt_func_unpack) bcmolt_gpon_onu_omci_packet_data_unpack, bcmolt_gpon_onu_omci_packet_data_scan };
+static bcmolt_group_info group_info_gpon_trx_key = { BCMOLT_OBJ_ID_GPON_TRX, BCMOLT_MGT_GROUP_KEY, 0, sizeof(bcmolt_gpon_trx_key), 0, 0, (bcmolt_func_packed_len) bcmolt_gpon_trx_key_get_packed_length, (bcmolt_func_pack) bcmolt_gpon_trx_key_pack, (bcmolt_func_unpack) bcmolt_gpon_trx_key_unpack, bcmolt_gpon_trx_key_scan };
+static bcmolt_group_info group_info_gpon_trx_cfg = { BCMOLT_OBJ_ID_GPON_TRX, BCMOLT_MGT_GROUP_CFG, 0, sizeof(bcmolt_gpon_trx_cfg_data), sizeof(bcmolt_gpon_trx_cfg), offsetof(bcmolt_gpon_trx_cfg, data), (bcmolt_func_packed_len) bcmolt_gpon_trx_cfg_data_get_packed_length, (bcmolt_func_pack) bcmolt_gpon_trx_cfg_data_pack, (bcmolt_func_unpack) bcmolt_gpon_trx_cfg_data_unpack, bcmolt_gpon_trx_cfg_data_scan };
+static bcmolt_group_info group_info_log_entry_key = { BCMOLT_OBJ_ID_LOG_ENTRY, BCMOLT_MGT_GROUP_KEY, 0, sizeof(bcmolt_log_entry_key), 0, 0, (bcmolt_func_packed_len) bcmolt_log_entry_key_get_packed_length, (bcmolt_func_pack) bcmolt_log_entry_key_pack, (bcmolt_func_unpack) bcmolt_log_entry_key_unpack, bcmolt_log_entry_key_scan };
+static bcmolt_group_info group_info_log_entry_cfg = { BCMOLT_OBJ_ID_LOG_ENTRY, BCMOLT_MGT_GROUP_CFG, 0, sizeof(bcmolt_log_entry_cfg_data), sizeof(bcmolt_log_entry_cfg), offsetof(bcmolt_log_entry_cfg, data), (bcmolt_func_packed_len) bcmolt_log_entry_cfg_data_get_packed_length, (bcmolt_func_pack) bcmolt_log_entry_cfg_data_pack, (bcmolt_func_unpack) bcmolt_log_entry_cfg_data_unpack, bcmolt_log_entry_cfg_data_scan };
+static bcmolt_group_info group_info_log_entry_stat = { BCMOLT_OBJ_ID_LOG_ENTRY, BCMOLT_MGT_GROUP_STAT, 0, sizeof(bcmolt_log_entry_stat_data), sizeof(bcmolt_log_entry_stat), offsetof(bcmolt_log_entry_stat, data), (bcmolt_func_packed_len) bcmolt_log_entry_stat_data_get_packed_length, (bcmolt_func_pack) bcmolt_log_entry_stat_data_pack, (bcmolt_func_unpack) bcmolt_log_entry_stat_data_unpack, bcmolt_log_entry_stat_data_scan };
+static bcmolt_group_info group_info_log_entry_stat_cfg = { BCMOLT_OBJ_ID_LOG_ENTRY, BCMOLT_MGT_GROUP_STAT_CFG, 0, sizeof(bcmolt_log_entry_stat_cfg_data), sizeof(bcmolt_log_entry_stat_cfg), offsetof(bcmolt_log_entry_stat_cfg, data), (bcmolt_func_packed_len) bcmolt_log_entry_stat_cfg_data_get_packed_length, (bcmolt_func_pack) bcmolt_log_entry_stat_cfg_data_pack, (bcmolt_func_unpack) bcmolt_log_entry_stat_cfg_data_unpack, bcmolt_log_entry_stat_cfg_data_scan };
+static bcmolt_group_info group_info_log_entry_stat_alarm_cleared = { BCMOLT_OBJ_ID_LOG_ENTRY, BCMOLT_MGT_GROUP_AUTO, 0, sizeof(bcmolt_log_entry_stat_alarm_cleared_data), sizeof(bcmolt_log_entry_stat_alarm_cleared), offsetof(bcmolt_log_entry_stat_alarm_cleared, data), (bcmolt_func_packed_len) bcmolt_log_entry_stat_alarm_cleared_data_get_packed_length, (bcmolt_func_pack) bcmolt_log_entry_stat_alarm_cleared_data_pack, (bcmolt_func_unpack) bcmolt_log_entry_stat_alarm_cleared_data_unpack, bcmolt_log_entry_stat_alarm_cleared_data_scan };
+static bcmolt_group_info group_info_log_entry_stat_alarm_raised = { BCMOLT_OBJ_ID_LOG_ENTRY, BCMOLT_MGT_GROUP_AUTO, 1, sizeof(bcmolt_log_entry_stat_alarm_raised_data), sizeof(bcmolt_log_entry_stat_alarm_raised), offsetof(bcmolt_log_entry_stat_alarm_raised, data), (bcmolt_func_packed_len) bcmolt_log_entry_stat_alarm_raised_data_get_packed_length, (bcmolt_func_pack) bcmolt_log_entry_stat_alarm_raised_data_pack, (bcmolt_func_unpack) bcmolt_log_entry_stat_alarm_raised_data_unpack, bcmolt_log_entry_stat_alarm_raised_data_scan };
+static bcmolt_group_info group_info_log_entry_auto_cfg = { BCMOLT_OBJ_ID_LOG_ENTRY, BCMOLT_MGT_GROUP_AUTO_CFG, 0, sizeof(bcmolt_log_entry_auto_cfg_data), sizeof(bcmolt_log_entry_auto_cfg), offsetof(bcmolt_log_entry_auto_cfg, data), (bcmolt_func_packed_len) bcmolt_log_entry_auto_cfg_data_get_packed_length, (bcmolt_func_pack) bcmolt_log_entry_auto_cfg_data_pack, (bcmolt_func_unpack) bcmolt_log_entry_auto_cfg_data_unpack, bcmolt_log_entry_auto_cfg_data_scan };
+static bcmolt_group_info group_info_logger_key = { BCMOLT_OBJ_ID_LOGGER, BCMOLT_MGT_GROUP_KEY, 0, sizeof(bcmolt_logger_key), 0, 0, (bcmolt_func_packed_len) bcmolt_logger_key_get_packed_length, (bcmolt_func_pack) bcmolt_logger_key_pack, (bcmolt_func_unpack) bcmolt_logger_key_unpack, bcmolt_logger_key_scan };
+static bcmolt_group_info group_info_logger_cfg = { BCMOLT_OBJ_ID_LOGGER, BCMOLT_MGT_GROUP_CFG, 0, sizeof(bcmolt_logger_cfg_data), sizeof(bcmolt_logger_cfg), offsetof(bcmolt_logger_cfg, data), (bcmolt_func_packed_len) bcmolt_logger_cfg_data_get_packed_length, (bcmolt_func_pack) bcmolt_logger_cfg_data_pack, (bcmolt_func_unpack) bcmolt_logger_cfg_data_unpack, bcmolt_logger_cfg_data_scan };
+static bcmolt_group_info group_info_logger_stat = { BCMOLT_OBJ_ID_LOGGER, BCMOLT_MGT_GROUP_STAT, 0, sizeof(bcmolt_logger_stat_data), sizeof(bcmolt_logger_stat), offsetof(bcmolt_logger_stat, data), (bcmolt_func_packed_len) bcmolt_logger_stat_data_get_packed_length, (bcmolt_func_pack) bcmolt_logger_stat_data_pack, (bcmolt_func_unpack) bcmolt_logger_stat_data_unpack, bcmolt_logger_stat_data_scan };
+static bcmolt_group_info group_info_logger_stat_cfg = { BCMOLT_OBJ_ID_LOGGER, BCMOLT_MGT_GROUP_STAT_CFG, 0, sizeof(bcmolt_logger_stat_cfg_data), sizeof(bcmolt_logger_stat_cfg), offsetof(bcmolt_logger_stat_cfg, data), (bcmolt_func_packed_len) bcmolt_logger_stat_cfg_data_get_packed_length, (bcmolt_func_pack) bcmolt_logger_stat_cfg_data_pack, (bcmolt_func_unpack) bcmolt_logger_stat_cfg_data_unpack, bcmolt_logger_stat_cfg_data_scan };
+static bcmolt_group_info group_info_logger_stat_alarm_cleared = { BCMOLT_OBJ_ID_LOGGER, BCMOLT_MGT_GROUP_AUTO, 0, sizeof(bcmolt_logger_stat_alarm_cleared_data), sizeof(bcmolt_logger_stat_alarm_cleared), offsetof(bcmolt_logger_stat_alarm_cleared, data), (bcmolt_func_packed_len) bcmolt_logger_stat_alarm_cleared_data_get_packed_length, (bcmolt_func_pack) bcmolt_logger_stat_alarm_cleared_data_pack, (bcmolt_func_unpack) bcmolt_logger_stat_alarm_cleared_data_unpack, bcmolt_logger_stat_alarm_cleared_data_scan };
+static bcmolt_group_info group_info_logger_stat_alarm_raised = { BCMOLT_OBJ_ID_LOGGER, BCMOLT_MGT_GROUP_AUTO, 1, sizeof(bcmolt_logger_stat_alarm_raised_data), sizeof(bcmolt_logger_stat_alarm_raised), offsetof(bcmolt_logger_stat_alarm_raised, data), (bcmolt_func_packed_len) bcmolt_logger_stat_alarm_raised_data_get_packed_length, (bcmolt_func_pack) bcmolt_logger_stat_alarm_raised_data_pack, (bcmolt_func_unpack) bcmolt_logger_stat_alarm_raised_data_unpack, bcmolt_logger_stat_alarm_raised_data_scan };
+static bcmolt_group_info group_info_logger_auto_cfg = { BCMOLT_OBJ_ID_LOGGER, BCMOLT_MGT_GROUP_AUTO_CFG, 0, sizeof(bcmolt_logger_auto_cfg_data), sizeof(bcmolt_logger_auto_cfg), offsetof(bcmolt_logger_auto_cfg, data), (bcmolt_func_packed_len) bcmolt_logger_auto_cfg_data_get_packed_length, (bcmolt_func_pack) bcmolt_logger_auto_cfg_data_pack, (bcmolt_func_unpack) bcmolt_logger_auto_cfg_data_unpack, bcmolt_logger_auto_cfg_data_scan };
+static bcmolt_group_info group_info_logger_clear_log = { BCMOLT_OBJ_ID_LOGGER, BCMOLT_MGT_GROUP_OPER, 0, 0, 0, 0, NULL, NULL, NULL };
+static bcmolt_group_info group_info_nni_key = { BCMOLT_OBJ_ID_NNI, BCMOLT_MGT_GROUP_KEY, 0, sizeof(bcmolt_nni_key), 0, 0, (bcmolt_func_packed_len) bcmolt_nni_key_get_packed_length, (bcmolt_func_pack) bcmolt_nni_key_pack, (bcmolt_func_unpack) bcmolt_nni_key_unpack, bcmolt_nni_key_scan };
+static bcmolt_group_info group_info_nni_cfg = { BCMOLT_OBJ_ID_NNI, BCMOLT_MGT_GROUP_CFG, 0, sizeof(bcmolt_nni_cfg_data), sizeof(bcmolt_nni_cfg), offsetof(bcmolt_nni_cfg, data), (bcmolt_func_packed_len) bcmolt_nni_cfg_data_get_packed_length, (bcmolt_func_pack) bcmolt_nni_cfg_data_pack, (bcmolt_func_unpack) bcmolt_nni_cfg_data_unpack, bcmolt_nni_cfg_data_scan };
+static bcmolt_group_info group_info_nni_stat = { BCMOLT_OBJ_ID_NNI, BCMOLT_MGT_GROUP_STAT, 0, sizeof(bcmolt_nni_stat_data), sizeof(bcmolt_nni_stat), offsetof(bcmolt_nni_stat, data), (bcmolt_func_packed_len) bcmolt_nni_stat_data_get_packed_length, (bcmolt_func_pack) bcmolt_nni_stat_data_pack, (bcmolt_func_unpack) bcmolt_nni_stat_data_unpack, bcmolt_nni_stat_data_scan };
+static bcmolt_group_info group_info_nni_stat_cfg = { BCMOLT_OBJ_ID_NNI, BCMOLT_MGT_GROUP_STAT_CFG, 0, sizeof(bcmolt_nni_stat_cfg_data), sizeof(bcmolt_nni_stat_cfg), offsetof(bcmolt_nni_stat_cfg, data), (bcmolt_func_packed_len) bcmolt_nni_stat_cfg_data_get_packed_length, (bcmolt_func_pack) bcmolt_nni_stat_cfg_data_pack, (bcmolt_func_unpack) bcmolt_nni_stat_cfg_data_unpack, bcmolt_nni_stat_cfg_data_scan };
+static bcmolt_group_info group_info_nni_stat_alarm_cleared = { BCMOLT_OBJ_ID_NNI, BCMOLT_MGT_GROUP_AUTO, 0, sizeof(bcmolt_nni_stat_alarm_cleared_data), sizeof(bcmolt_nni_stat_alarm_cleared), offsetof(bcmolt_nni_stat_alarm_cleared, data), (bcmolt_func_packed_len) bcmolt_nni_stat_alarm_cleared_data_get_packed_length, (bcmolt_func_pack) bcmolt_nni_stat_alarm_cleared_data_pack, (bcmolt_func_unpack) bcmolt_nni_stat_alarm_cleared_data_unpack, bcmolt_nni_stat_alarm_cleared_data_scan };
+static bcmolt_group_info group_info_nni_stat_alarm_raised = { BCMOLT_OBJ_ID_NNI, BCMOLT_MGT_GROUP_AUTO, 1, sizeof(bcmolt_nni_stat_alarm_raised_data), sizeof(bcmolt_nni_stat_alarm_raised), offsetof(bcmolt_nni_stat_alarm_raised, data), (bcmolt_func_packed_len) bcmolt_nni_stat_alarm_raised_data_get_packed_length, (bcmolt_func_pack) bcmolt_nni_stat_alarm_raised_data_pack, (bcmolt_func_unpack) bcmolt_nni_stat_alarm_raised_data_unpack, bcmolt_nni_stat_alarm_raised_data_scan };
+static bcmolt_group_info group_info_nni_status_changed = { BCMOLT_OBJ_ID_NNI, BCMOLT_MGT_GROUP_AUTO, 2, sizeof(bcmolt_nni_status_changed_data), sizeof(bcmolt_nni_status_changed), offsetof(bcmolt_nni_status_changed, data), (bcmolt_func_packed_len) bcmolt_nni_status_changed_data_get_packed_length, (bcmolt_func_pack) bcmolt_nni_status_changed_data_pack, (bcmolt_func_unpack) bcmolt_nni_status_changed_data_unpack, bcmolt_nni_status_changed_data_scan };
+static bcmolt_group_info group_info_nni_auto_cfg = { BCMOLT_OBJ_ID_NNI, BCMOLT_MGT_GROUP_AUTO_CFG, 0, sizeof(bcmolt_nni_auto_cfg_data), sizeof(bcmolt_nni_auto_cfg), offsetof(bcmolt_nni_auto_cfg, data), (bcmolt_func_packed_len) bcmolt_nni_auto_cfg_data_get_packed_length, (bcmolt_func_pack) bcmolt_nni_auto_cfg_data_pack, (bcmolt_func_unpack) bcmolt_nni_auto_cfg_data_unpack, bcmolt_nni_auto_cfg_data_scan };
+static bcmolt_group_info group_info_nni_serdes_key = { BCMOLT_OBJ_ID_NNI_SERDES, BCMOLT_MGT_GROUP_KEY, 0, sizeof(bcmolt_nni_serdes_key), 0, 0, (bcmolt_func_packed_len) bcmolt_nni_serdes_key_get_packed_length, (bcmolt_func_pack) bcmolt_nni_serdes_key_pack, (bcmolt_func_unpack) bcmolt_nni_serdes_key_unpack, bcmolt_nni_serdes_key_scan };
+static bcmolt_group_info group_info_nni_serdes_cfg = { BCMOLT_OBJ_ID_NNI_SERDES, BCMOLT_MGT_GROUP_CFG, 0, sizeof(bcmolt_nni_serdes_cfg_data), sizeof(bcmolt_nni_serdes_cfg), offsetof(bcmolt_nni_serdes_cfg, data), (bcmolt_func_packed_len) bcmolt_nni_serdes_cfg_data_get_packed_length, (bcmolt_func_pack) bcmolt_nni_serdes_cfg_data_pack, (bcmolt_func_unpack) bcmolt_nni_serdes_cfg_data_unpack, bcmolt_nni_serdes_cfg_data_scan };
+static bcmolt_group_info group_info_software_error_key = { BCMOLT_OBJ_ID_SOFTWARE_ERROR, BCMOLT_MGT_GROUP_KEY, 0, sizeof(bcmolt_software_error_key), 0, 0, (bcmolt_func_packed_len) bcmolt_software_error_key_get_packed_length, (bcmolt_func_pack) bcmolt_software_error_key_pack, (bcmolt_func_unpack) bcmolt_software_error_key_unpack, bcmolt_software_error_key_scan };
+static bcmolt_group_info group_info_software_error_cfg = { BCMOLT_OBJ_ID_SOFTWARE_ERROR, BCMOLT_MGT_GROUP_CFG, 0, sizeof(bcmolt_software_error_cfg_data), sizeof(bcmolt_software_error_cfg), offsetof(bcmolt_software_error_cfg, data), (bcmolt_func_packed_len) bcmolt_software_error_cfg_data_get_packed_length, (bcmolt_func_pack) bcmolt_software_error_cfg_data_pack, (bcmolt_func_unpack) bcmolt_software_error_cfg_data_unpack, bcmolt_software_error_cfg_data_scan };
+static bcmolt_group_info group_info_trx_calibration_key = { BCMOLT_OBJ_ID_TRX_CALIBRATION, BCMOLT_MGT_GROUP_KEY, 0, sizeof(bcmolt_trx_calibration_key), 0, 0, (bcmolt_func_packed_len) bcmolt_trx_calibration_key_get_packed_length, (bcmolt_func_pack) bcmolt_trx_calibration_key_pack, (bcmolt_func_unpack) bcmolt_trx_calibration_key_unpack, bcmolt_trx_calibration_key_scan };
+static bcmolt_group_info group_info_trx_calibration_capture_window_and_statistic_completed = { BCMOLT_OBJ_ID_TRX_CALIBRATION, BCMOLT_MGT_GROUP_AUTO, 0, sizeof(bcmolt_trx_calibration_capture_window_and_statistic_completed_data), sizeof(bcmolt_trx_calibration_capture_window_and_statistic_completed), offsetof(bcmolt_trx_calibration_capture_window_and_statistic_completed, data), (bcmolt_func_packed_len) bcmolt_trx_calibration_capture_window_and_statistic_completed_data_get_packed_length, (bcmolt_func_pack) bcmolt_trx_calibration_capture_window_and_statistic_completed_data_pack, (bcmolt_func_unpack) bcmolt_trx_calibration_capture_window_and_statistic_completed_data_unpack, bcmolt_trx_calibration_capture_window_and_statistic_completed_data_scan };
+static bcmolt_group_info group_info_trx_calibration_auto_cfg = { BCMOLT_OBJ_ID_TRX_CALIBRATION, BCMOLT_MGT_GROUP_AUTO_CFG, 0, sizeof(bcmolt_trx_calibration_auto_cfg_data), sizeof(bcmolt_trx_calibration_auto_cfg), offsetof(bcmolt_trx_calibration_auto_cfg, data), (bcmolt_func_packed_len) bcmolt_trx_calibration_auto_cfg_data_get_packed_length, (bcmolt_func_pack) bcmolt_trx_calibration_auto_cfg_data_pack, (bcmolt_func_unpack) bcmolt_trx_calibration_auto_cfg_data_unpack, bcmolt_trx_calibration_auto_cfg_data_scan };
+static bcmolt_group_info group_info_trx_calibration_start_capture_window = { BCMOLT_OBJ_ID_TRX_CALIBRATION, BCMOLT_MGT_GROUP_OPER, 0, sizeof(bcmolt_trx_calibration_start_capture_window_data), sizeof(bcmolt_trx_calibration_start_capture_window), offsetof(bcmolt_trx_calibration_start_capture_window, data), (bcmolt_func_packed_len) bcmolt_trx_calibration_start_capture_window_data_get_packed_length, (bcmolt_func_pack) bcmolt_trx_calibration_start_capture_window_data_pack, (bcmolt_func_unpack) bcmolt_trx_calibration_start_capture_window_data_unpack, bcmolt_trx_calibration_start_capture_window_data_scan };
+static bcmolt_group_info group_info_trx_calibration_stop_capture_window = { BCMOLT_OBJ_ID_TRX_CALIBRATION, BCMOLT_MGT_GROUP_OPER, 1, sizeof(bcmolt_trx_calibration_stop_capture_window_data), sizeof(bcmolt_trx_calibration_stop_capture_window), offsetof(bcmolt_trx_calibration_stop_capture_window, data), (bcmolt_func_packed_len) bcmolt_trx_calibration_stop_capture_window_data_get_packed_length, (bcmolt_func_pack) bcmolt_trx_calibration_stop_capture_window_data_pack, (bcmolt_func_unpack) bcmolt_trx_calibration_stop_capture_window_data_unpack, bcmolt_trx_calibration_stop_capture_window_data_scan };
+static bcmolt_group_info group_info_xgpon_alloc_key = { BCMOLT_OBJ_ID_XGPON_ALLOC, BCMOLT_MGT_GROUP_KEY, 0, sizeof(bcmolt_xgpon_alloc_key), 0, 0, (bcmolt_func_packed_len) bcmolt_xgpon_alloc_key_get_packed_length, (bcmolt_func_pack) bcmolt_xgpon_alloc_key_pack, (bcmolt_func_unpack) bcmolt_xgpon_alloc_key_unpack, bcmolt_xgpon_alloc_key_scan };
+static bcmolt_group_info group_info_xgpon_alloc_cfg = { BCMOLT_OBJ_ID_XGPON_ALLOC, BCMOLT_MGT_GROUP_CFG, 0, sizeof(bcmolt_xgpon_alloc_cfg_data), sizeof(bcmolt_xgpon_alloc_cfg), offsetof(bcmolt_xgpon_alloc_cfg, data), (bcmolt_func_packed_len) bcmolt_xgpon_alloc_cfg_data_get_packed_length, (bcmolt_func_pack) bcmolt_xgpon_alloc_cfg_data_pack, (bcmolt_func_unpack) bcmolt_xgpon_alloc_cfg_data_unpack, bcmolt_xgpon_alloc_cfg_data_scan };
+static bcmolt_group_info group_info_xgpon_alloc_stat = { BCMOLT_OBJ_ID_XGPON_ALLOC, BCMOLT_MGT_GROUP_STAT, 0, sizeof(bcmolt_xgpon_alloc_stat_data), sizeof(bcmolt_xgpon_alloc_stat), offsetof(bcmolt_xgpon_alloc_stat, data), (bcmolt_func_packed_len) bcmolt_xgpon_alloc_stat_data_get_packed_length, (bcmolt_func_pack) bcmolt_xgpon_alloc_stat_data_pack, (bcmolt_func_unpack) bcmolt_xgpon_alloc_stat_data_unpack, bcmolt_xgpon_alloc_stat_data_scan };
+static bcmolt_group_info group_info_xgpon_alloc_stat_cfg = { BCMOLT_OBJ_ID_XGPON_ALLOC, BCMOLT_MGT_GROUP_STAT_CFG, 0, sizeof(bcmolt_xgpon_alloc_stat_cfg_data), sizeof(bcmolt_xgpon_alloc_stat_cfg), offsetof(bcmolt_xgpon_alloc_stat_cfg, data), (bcmolt_func_packed_len) bcmolt_xgpon_alloc_stat_cfg_data_get_packed_length, (bcmolt_func_pack) bcmolt_xgpon_alloc_stat_cfg_data_pack, (bcmolt_func_unpack) bcmolt_xgpon_alloc_stat_cfg_data_unpack, bcmolt_xgpon_alloc_stat_cfg_data_scan };
+static bcmolt_group_info group_info_xgpon_alloc_configuration_completed = { BCMOLT_OBJ_ID_XGPON_ALLOC, BCMOLT_MGT_GROUP_AUTO, 0, sizeof(bcmolt_xgpon_alloc_configuration_completed_data), sizeof(bcmolt_xgpon_alloc_configuration_completed), offsetof(bcmolt_xgpon_alloc_configuration_completed, data), (bcmolt_func_packed_len) bcmolt_xgpon_alloc_configuration_completed_data_get_packed_length, (bcmolt_func_pack) bcmolt_xgpon_alloc_configuration_completed_data_pack, (bcmolt_func_unpack) bcmolt_xgpon_alloc_configuration_completed_data_unpack, bcmolt_xgpon_alloc_configuration_completed_data_scan };
+static bcmolt_group_info group_info_xgpon_alloc_get_alloc_stats_completed = { BCMOLT_OBJ_ID_XGPON_ALLOC, BCMOLT_MGT_GROUP_AUTO, 1, sizeof(bcmolt_xgpon_alloc_get_alloc_stats_completed_data), sizeof(bcmolt_xgpon_alloc_get_alloc_stats_completed), offsetof(bcmolt_xgpon_alloc_get_alloc_stats_completed, data), (bcmolt_func_packed_len) bcmolt_xgpon_alloc_get_alloc_stats_completed_data_get_packed_length, (bcmolt_func_pack) bcmolt_xgpon_alloc_get_alloc_stats_completed_data_pack, (bcmolt_func_unpack) bcmolt_xgpon_alloc_get_alloc_stats_completed_data_unpack, bcmolt_xgpon_alloc_get_alloc_stats_completed_data_scan };
+static bcmolt_group_info group_info_xgpon_alloc_stat_alarm_cleared = { BCMOLT_OBJ_ID_XGPON_ALLOC, BCMOLT_MGT_GROUP_AUTO, 2, sizeof(bcmolt_xgpon_alloc_stat_alarm_cleared_data), sizeof(bcmolt_xgpon_alloc_stat_alarm_cleared), offsetof(bcmolt_xgpon_alloc_stat_alarm_cleared, data), (bcmolt_func_packed_len) bcmolt_xgpon_alloc_stat_alarm_cleared_data_get_packed_length, (bcmolt_func_pack) bcmolt_xgpon_alloc_stat_alarm_cleared_data_pack, (bcmolt_func_unpack) bcmolt_xgpon_alloc_stat_alarm_cleared_data_unpack, bcmolt_xgpon_alloc_stat_alarm_cleared_data_scan };
+static bcmolt_group_info group_info_xgpon_alloc_stat_alarm_raised = { BCMOLT_OBJ_ID_XGPON_ALLOC, BCMOLT_MGT_GROUP_AUTO, 3, sizeof(bcmolt_xgpon_alloc_stat_alarm_raised_data), sizeof(bcmolt_xgpon_alloc_stat_alarm_raised), offsetof(bcmolt_xgpon_alloc_stat_alarm_raised, data), (bcmolt_func_packed_len) bcmolt_xgpon_alloc_stat_alarm_raised_data_get_packed_length, (bcmolt_func_pack) bcmolt_xgpon_alloc_stat_alarm_raised_data_pack, (bcmolt_func_unpack) bcmolt_xgpon_alloc_stat_alarm_raised_data_unpack, bcmolt_xgpon_alloc_stat_alarm_raised_data_scan };
+static bcmolt_group_info group_info_xgpon_alloc_auto_cfg = { BCMOLT_OBJ_ID_XGPON_ALLOC, BCMOLT_MGT_GROUP_AUTO_CFG, 0, sizeof(bcmolt_xgpon_alloc_auto_cfg_data), sizeof(bcmolt_xgpon_alloc_auto_cfg), offsetof(bcmolt_xgpon_alloc_auto_cfg, data), (bcmolt_func_packed_len) bcmolt_xgpon_alloc_auto_cfg_data_get_packed_length, (bcmolt_func_pack) bcmolt_xgpon_alloc_auto_cfg_data_pack, (bcmolt_func_unpack) bcmolt_xgpon_alloc_auto_cfg_data_unpack, bcmolt_xgpon_alloc_auto_cfg_data_scan };
+static bcmolt_group_info group_info_xgpon_alloc_get_stats = { BCMOLT_OBJ_ID_XGPON_ALLOC, BCMOLT_MGT_GROUP_OPER, 0, sizeof(bcmolt_xgpon_alloc_get_stats_data), sizeof(bcmolt_xgpon_alloc_get_stats), offsetof(bcmolt_xgpon_alloc_get_stats, data), (bcmolt_func_packed_len) bcmolt_xgpon_alloc_get_stats_data_get_packed_length, (bcmolt_func_pack) bcmolt_xgpon_alloc_get_stats_data_pack, (bcmolt_func_unpack) bcmolt_xgpon_alloc_get_stats_data_unpack, bcmolt_xgpon_alloc_get_stats_data_scan };
+static bcmolt_group_info group_info_xgpon_alloc_set_state = { BCMOLT_OBJ_ID_XGPON_ALLOC, BCMOLT_MGT_GROUP_OPER, 1, sizeof(bcmolt_xgpon_alloc_set_state_data), sizeof(bcmolt_xgpon_alloc_set_state), offsetof(bcmolt_xgpon_alloc_set_state, data), (bcmolt_func_packed_len) bcmolt_xgpon_alloc_set_state_data_get_packed_length, (bcmolt_func_pack) bcmolt_xgpon_alloc_set_state_data_pack, (bcmolt_func_unpack) bcmolt_xgpon_alloc_set_state_data_unpack, bcmolt_xgpon_alloc_set_state_data_scan };
+static bcmolt_group_info group_info_xgpon_gem_port_key = { BCMOLT_OBJ_ID_XGPON_GEM_PORT, BCMOLT_MGT_GROUP_KEY, 0, sizeof(bcmolt_xgpon_gem_port_key), 0, 0, (bcmolt_func_packed_len) bcmolt_xgpon_gem_port_key_get_packed_length, (bcmolt_func_pack) bcmolt_xgpon_gem_port_key_pack, (bcmolt_func_unpack) bcmolt_xgpon_gem_port_key_unpack, bcmolt_xgpon_gem_port_key_scan };
+static bcmolt_group_info group_info_xgpon_gem_port_cfg = { BCMOLT_OBJ_ID_XGPON_GEM_PORT, BCMOLT_MGT_GROUP_CFG, 0, sizeof(bcmolt_xgpon_gem_port_cfg_data), sizeof(bcmolt_xgpon_gem_port_cfg), offsetof(bcmolt_xgpon_gem_port_cfg, data), (bcmolt_func_packed_len) bcmolt_xgpon_gem_port_cfg_data_get_packed_length, (bcmolt_func_pack) bcmolt_xgpon_gem_port_cfg_data_pack, (bcmolt_func_unpack) bcmolt_xgpon_gem_port_cfg_data_unpack, bcmolt_xgpon_gem_port_cfg_data_scan };
+static bcmolt_group_info group_info_xgpon_gem_port_stat = { BCMOLT_OBJ_ID_XGPON_GEM_PORT, BCMOLT_MGT_GROUP_STAT, 0, sizeof(bcmolt_xgpon_gem_port_stat_data), sizeof(bcmolt_xgpon_gem_port_stat), offsetof(bcmolt_xgpon_gem_port_stat, data), (bcmolt_func_packed_len) bcmolt_xgpon_gem_port_stat_data_get_packed_length, (bcmolt_func_pack) bcmolt_xgpon_gem_port_stat_data_pack, (bcmolt_func_unpack) bcmolt_xgpon_gem_port_stat_data_unpack, bcmolt_xgpon_gem_port_stat_data_scan };
+static bcmolt_group_info group_info_xgpon_gem_port_stat_cfg = { BCMOLT_OBJ_ID_XGPON_GEM_PORT, BCMOLT_MGT_GROUP_STAT_CFG, 0, sizeof(bcmolt_xgpon_gem_port_stat_cfg_data), sizeof(bcmolt_xgpon_gem_port_stat_cfg), offsetof(bcmolt_xgpon_gem_port_stat_cfg, data), (bcmolt_func_packed_len) bcmolt_xgpon_gem_port_stat_cfg_data_get_packed_length, (bcmolt_func_pack) bcmolt_xgpon_gem_port_stat_cfg_data_pack, (bcmolt_func_unpack) bcmolt_xgpon_gem_port_stat_cfg_data_unpack, bcmolt_xgpon_gem_port_stat_cfg_data_scan };
+static bcmolt_group_info group_info_xgpon_gem_port_stat_alarm_cleared = { BCMOLT_OBJ_ID_XGPON_GEM_PORT, BCMOLT_MGT_GROUP_AUTO, 0, sizeof(bcmolt_xgpon_gem_port_stat_alarm_cleared_data), sizeof(bcmolt_xgpon_gem_port_stat_alarm_cleared), offsetof(bcmolt_xgpon_gem_port_stat_alarm_cleared, data), (bcmolt_func_packed_len) bcmolt_xgpon_gem_port_stat_alarm_cleared_data_get_packed_length, (bcmolt_func_pack) bcmolt_xgpon_gem_port_stat_alarm_cleared_data_pack, (bcmolt_func_unpack) bcmolt_xgpon_gem_port_stat_alarm_cleared_data_unpack, bcmolt_xgpon_gem_port_stat_alarm_cleared_data_scan };
+static bcmolt_group_info group_info_xgpon_gem_port_stat_alarm_raised = { BCMOLT_OBJ_ID_XGPON_GEM_PORT, BCMOLT_MGT_GROUP_AUTO, 1, sizeof(bcmolt_xgpon_gem_port_stat_alarm_raised_data), sizeof(bcmolt_xgpon_gem_port_stat_alarm_raised), offsetof(bcmolt_xgpon_gem_port_stat_alarm_raised, data), (bcmolt_func_packed_len) bcmolt_xgpon_gem_port_stat_alarm_raised_data_get_packed_length, (bcmolt_func_pack) bcmolt_xgpon_gem_port_stat_alarm_raised_data_pack, (bcmolt_func_unpack) bcmolt_xgpon_gem_port_stat_alarm_raised_data_unpack, bcmolt_xgpon_gem_port_stat_alarm_raised_data_scan };
+static bcmolt_group_info group_info_xgpon_gem_port_auto_cfg = { BCMOLT_OBJ_ID_XGPON_GEM_PORT, BCMOLT_MGT_GROUP_AUTO_CFG, 0, sizeof(bcmolt_xgpon_gem_port_auto_cfg_data), sizeof(bcmolt_xgpon_gem_port_auto_cfg), offsetof(bcmolt_xgpon_gem_port_auto_cfg, data), (bcmolt_func_packed_len) bcmolt_xgpon_gem_port_auto_cfg_data_get_packed_length, (bcmolt_func_pack) bcmolt_xgpon_gem_port_auto_cfg_data_pack, (bcmolt_func_unpack) bcmolt_xgpon_gem_port_auto_cfg_data_unpack, bcmolt_xgpon_gem_port_auto_cfg_data_scan };
+static bcmolt_group_info group_info_xgpon_iwf_key = { BCMOLT_OBJ_ID_XGPON_IWF, BCMOLT_MGT_GROUP_KEY, 0, sizeof(bcmolt_xgpon_iwf_key), 0, 0, (bcmolt_func_packed_len) bcmolt_xgpon_iwf_key_get_packed_length, (bcmolt_func_pack) bcmolt_xgpon_iwf_key_pack, (bcmolt_func_unpack) bcmolt_xgpon_iwf_key_unpack, bcmolt_xgpon_iwf_key_scan };
+static bcmolt_group_info group_info_xgpon_iwf_cfg = { BCMOLT_OBJ_ID_XGPON_IWF, BCMOLT_MGT_GROUP_CFG, 0, sizeof(bcmolt_xgpon_iwf_cfg_data), sizeof(bcmolt_xgpon_iwf_cfg), offsetof(bcmolt_xgpon_iwf_cfg, data), (bcmolt_func_packed_len) bcmolt_xgpon_iwf_cfg_data_get_packed_length, (bcmolt_func_pack) bcmolt_xgpon_iwf_cfg_data_pack, (bcmolt_func_unpack) bcmolt_xgpon_iwf_cfg_data_unpack, bcmolt_xgpon_iwf_cfg_data_scan };
+static bcmolt_group_info group_info_xgpon_ni_key = { BCMOLT_OBJ_ID_XGPON_NI, BCMOLT_MGT_GROUP_KEY, 0, sizeof(bcmolt_xgpon_ni_key), 0, 0, (bcmolt_func_packed_len) bcmolt_xgpon_ni_key_get_packed_length, (bcmolt_func_pack) bcmolt_xgpon_ni_key_pack, (bcmolt_func_unpack) bcmolt_xgpon_ni_key_unpack, bcmolt_xgpon_ni_key_scan };
+static bcmolt_group_info group_info_xgpon_ni_cfg = { BCMOLT_OBJ_ID_XGPON_NI, BCMOLT_MGT_GROUP_CFG, 0, sizeof(bcmolt_xgpon_ni_cfg_data), sizeof(bcmolt_xgpon_ni_cfg), offsetof(bcmolt_xgpon_ni_cfg, data), (bcmolt_func_packed_len) bcmolt_xgpon_ni_cfg_data_get_packed_length, (bcmolt_func_pack) bcmolt_xgpon_ni_cfg_data_pack, (bcmolt_func_unpack) bcmolt_xgpon_ni_cfg_data_unpack, bcmolt_xgpon_ni_cfg_data_scan };
+static bcmolt_group_info group_info_xgpon_ni_stat = { BCMOLT_OBJ_ID_XGPON_NI, BCMOLT_MGT_GROUP_STAT, 0, sizeof(bcmolt_xgpon_ni_stat_data), sizeof(bcmolt_xgpon_ni_stat), offsetof(bcmolt_xgpon_ni_stat, data), (bcmolt_func_packed_len) bcmolt_xgpon_ni_stat_data_get_packed_length, (bcmolt_func_pack) bcmolt_xgpon_ni_stat_data_pack, (bcmolt_func_unpack) bcmolt_xgpon_ni_stat_data_unpack, bcmolt_xgpon_ni_stat_data_scan };
+static bcmolt_group_info group_info_xgpon_ni_stat_cfg = { BCMOLT_OBJ_ID_XGPON_NI, BCMOLT_MGT_GROUP_STAT_CFG, 0, sizeof(bcmolt_xgpon_ni_stat_cfg_data), sizeof(bcmolt_xgpon_ni_stat_cfg), offsetof(bcmolt_xgpon_ni_stat_cfg, data), (bcmolt_func_packed_len) bcmolt_xgpon_ni_stat_cfg_data_get_packed_length, (bcmolt_func_pack) bcmolt_xgpon_ni_stat_cfg_data_pack, (bcmolt_func_unpack) bcmolt_xgpon_ni_stat_cfg_data_unpack, bcmolt_xgpon_ni_stat_cfg_data_scan };
+static bcmolt_group_info group_info_xgpon_ni_activate_all_onus_completed = { BCMOLT_OBJ_ID_XGPON_NI, BCMOLT_MGT_GROUP_AUTO, 0, 0, 0, 0, NULL, NULL, NULL };
+static bcmolt_group_info group_info_xgpon_ni_cpu_packets_failure = { BCMOLT_OBJ_ID_XGPON_NI, BCMOLT_MGT_GROUP_AUTO, 1, sizeof(bcmolt_xgpon_ni_cpu_packets_failure_data), sizeof(bcmolt_xgpon_ni_cpu_packets_failure), offsetof(bcmolt_xgpon_ni_cpu_packets_failure, data), (bcmolt_func_packed_len) bcmolt_xgpon_ni_cpu_packets_failure_data_get_packed_length, (bcmolt_func_pack) bcmolt_xgpon_ni_cpu_packets_failure_data_pack, (bcmolt_func_unpack) bcmolt_xgpon_ni_cpu_packets_failure_data_unpack, bcmolt_xgpon_ni_cpu_packets_failure_data_scan };
+static bcmolt_group_info group_info_xgpon_ni_deactivate_all_onus_completed = { BCMOLT_OBJ_ID_XGPON_NI, BCMOLT_MGT_GROUP_AUTO, 2, 0, 0, 0, NULL, NULL, NULL };
+static bcmolt_group_info group_info_xgpon_ni_disable_all_onus_completed = { BCMOLT_OBJ_ID_XGPON_NI, BCMOLT_MGT_GROUP_AUTO, 3, 0, 0, 0, NULL, NULL, NULL };
+static bcmolt_group_info group_info_xgpon_ni_enable_all_onus_completed = { BCMOLT_OBJ_ID_XGPON_NI, BCMOLT_MGT_GROUP_AUTO, 4, 0, 0, 0, NULL, NULL, NULL };
+static bcmolt_group_info group_info_xgpon_ni_los = { BCMOLT_OBJ_ID_XGPON_NI, BCMOLT_MGT_GROUP_AUTO, 5, sizeof(bcmolt_xgpon_ni_los_data), sizeof(bcmolt_xgpon_ni_los), offsetof(bcmolt_xgpon_ni_los, data), (bcmolt_func_packed_len) bcmolt_xgpon_ni_los_data_get_packed_length, (bcmolt_func_pack) bcmolt_xgpon_ni_los_data_pack, (bcmolt_func_unpack) bcmolt_xgpon_ni_los_data_unpack, bcmolt_xgpon_ni_los_data_scan };
+static bcmolt_group_info group_info_xgpon_ni_onu_discovered = { BCMOLT_OBJ_ID_XGPON_NI, BCMOLT_MGT_GROUP_AUTO, 6, sizeof(bcmolt_xgpon_ni_onu_discovered_data), sizeof(bcmolt_xgpon_ni_onu_discovered), offsetof(bcmolt_xgpon_ni_onu_discovered, data), (bcmolt_func_packed_len) bcmolt_xgpon_ni_onu_discovered_data_get_packed_length, (bcmolt_func_pack) bcmolt_xgpon_ni_onu_discovered_data_pack, (bcmolt_func_unpack) bcmolt_xgpon_ni_onu_discovered_data_unpack, bcmolt_xgpon_ni_onu_discovered_data_scan };
+static bcmolt_group_info group_info_xgpon_ni_onu_upgrade_complete = { BCMOLT_OBJ_ID_XGPON_NI, BCMOLT_MGT_GROUP_AUTO, 7, sizeof(bcmolt_xgpon_ni_onu_upgrade_complete_data), sizeof(bcmolt_xgpon_ni_onu_upgrade_complete), offsetof(bcmolt_xgpon_ni_onu_upgrade_complete, data), (bcmolt_func_packed_len) bcmolt_xgpon_ni_onu_upgrade_complete_data_get_packed_length, (bcmolt_func_pack) bcmolt_xgpon_ni_onu_upgrade_complete_data_pack, (bcmolt_func_unpack) bcmolt_xgpon_ni_onu_upgrade_complete_data_unpack, bcmolt_xgpon_ni_onu_upgrade_complete_data_scan };
+static bcmolt_group_info group_info_xgpon_ni_protection_switching_onus_ranged = { BCMOLT_OBJ_ID_XGPON_NI, BCMOLT_MGT_GROUP_AUTO, 8, sizeof(bcmolt_xgpon_ni_protection_switching_onus_ranged_data), sizeof(bcmolt_xgpon_ni_protection_switching_onus_ranged), offsetof(bcmolt_xgpon_ni_protection_switching_onus_ranged, data), (bcmolt_func_packed_len) bcmolt_xgpon_ni_protection_switching_onus_ranged_data_get_packed_length, (bcmolt_func_pack) bcmolt_xgpon_ni_protection_switching_onus_ranged_data_pack, (bcmolt_func_unpack) bcmolt_xgpon_ni_protection_switching_onus_ranged_data_unpack, bcmolt_xgpon_ni_protection_switching_onus_ranged_data_scan };
+static bcmolt_group_info group_info_xgpon_ni_protection_switching_switchover_completed = { BCMOLT_OBJ_ID_XGPON_NI, BCMOLT_MGT_GROUP_AUTO, 9, sizeof(bcmolt_xgpon_ni_protection_switching_switchover_completed_data), sizeof(bcmolt_xgpon_ni_protection_switching_switchover_completed), offsetof(bcmolt_xgpon_ni_protection_switching_switchover_completed, data), (bcmolt_func_packed_len) bcmolt_xgpon_ni_protection_switching_switchover_completed_data_get_packed_length, (bcmolt_func_pack) bcmolt_xgpon_ni_protection_switching_switchover_completed_data_pack, (bcmolt_func_unpack) bcmolt_xgpon_ni_protection_switching_switchover_completed_data_unpack, bcmolt_xgpon_ni_protection_switching_switchover_completed_data_scan };
+static bcmolt_group_info group_info_xgpon_ni_protection_switching_traffic_resume = { BCMOLT_OBJ_ID_XGPON_NI, BCMOLT_MGT_GROUP_AUTO, 10, sizeof(bcmolt_xgpon_ni_protection_switching_traffic_resume_data), sizeof(bcmolt_xgpon_ni_protection_switching_traffic_resume), offsetof(bcmolt_xgpon_ni_protection_switching_traffic_resume, data), (bcmolt_func_packed_len) bcmolt_xgpon_ni_protection_switching_traffic_resume_data_get_packed_length, (bcmolt_func_pack) bcmolt_xgpon_ni_protection_switching_traffic_resume_data_pack, (bcmolt_func_unpack) bcmolt_xgpon_ni_protection_switching_traffic_resume_data_unpack, bcmolt_xgpon_ni_protection_switching_traffic_resume_data_scan };
+static bcmolt_group_info group_info_xgpon_ni_rogue_detection_completed = { BCMOLT_OBJ_ID_XGPON_NI, BCMOLT_MGT_GROUP_AUTO, 11, sizeof(bcmolt_xgpon_ni_rogue_detection_completed_data), sizeof(bcmolt_xgpon_ni_rogue_detection_completed), offsetof(bcmolt_xgpon_ni_rogue_detection_completed, data), (bcmolt_func_packed_len) bcmolt_xgpon_ni_rogue_detection_completed_data_get_packed_length, (bcmolt_func_pack) bcmolt_xgpon_ni_rogue_detection_completed_data_pack, (bcmolt_func_unpack) bcmolt_xgpon_ni_rogue_detection_completed_data_unpack, bcmolt_xgpon_ni_rogue_detection_completed_data_scan };
+static bcmolt_group_info group_info_xgpon_ni_rogue_onu_special_map_cycle_start = { BCMOLT_OBJ_ID_XGPON_NI, BCMOLT_MGT_GROUP_AUTO, 12, 0, 0, 0, NULL, NULL, NULL };
+static bcmolt_group_info group_info_xgpon_ni_serial_number_acquisition_cycle_start = { BCMOLT_OBJ_ID_XGPON_NI, BCMOLT_MGT_GROUP_AUTO, 13, 0, 0, 0, NULL, NULL, NULL };
+static bcmolt_group_info group_info_xgpon_ni_standby_pon_monitoring_cycle_completed = { BCMOLT_OBJ_ID_XGPON_NI, BCMOLT_MGT_GROUP_AUTO, 14, sizeof(bcmolt_xgpon_ni_standby_pon_monitoring_cycle_completed_data), sizeof(bcmolt_xgpon_ni_standby_pon_monitoring_cycle_completed), offsetof(bcmolt_xgpon_ni_standby_pon_monitoring_cycle_completed, data), (bcmolt_func_packed_len) bcmolt_xgpon_ni_standby_pon_monitoring_cycle_completed_data_get_packed_length, (bcmolt_func_pack) bcmolt_xgpon_ni_standby_pon_monitoring_cycle_completed_data_pack, (bcmolt_func_unpack) bcmolt_xgpon_ni_standby_pon_monitoring_cycle_completed_data_unpack, bcmolt_xgpon_ni_standby_pon_monitoring_cycle_completed_data_scan };
+static bcmolt_group_info group_info_xgpon_ni_stat_alarm_cleared = { BCMOLT_OBJ_ID_XGPON_NI, BCMOLT_MGT_GROUP_AUTO, 15, sizeof(bcmolt_xgpon_ni_stat_alarm_cleared_data), sizeof(bcmolt_xgpon_ni_stat_alarm_cleared), offsetof(bcmolt_xgpon_ni_stat_alarm_cleared, data), (bcmolt_func_packed_len) bcmolt_xgpon_ni_stat_alarm_cleared_data_get_packed_length, (bcmolt_func_pack) bcmolt_xgpon_ni_stat_alarm_cleared_data_pack, (bcmolt_func_unpack) bcmolt_xgpon_ni_stat_alarm_cleared_data_unpack, bcmolt_xgpon_ni_stat_alarm_cleared_data_scan };
+static bcmolt_group_info group_info_xgpon_ni_stat_alarm_raised = { BCMOLT_OBJ_ID_XGPON_NI, BCMOLT_MGT_GROUP_AUTO, 16, sizeof(bcmolt_xgpon_ni_stat_alarm_raised_data), sizeof(bcmolt_xgpon_ni_stat_alarm_raised), offsetof(bcmolt_xgpon_ni_stat_alarm_raised, data), (bcmolt_func_packed_len) bcmolt_xgpon_ni_stat_alarm_raised_data_get_packed_length, (bcmolt_func_pack) bcmolt_xgpon_ni_stat_alarm_raised_data_pack, (bcmolt_func_unpack) bcmolt_xgpon_ni_stat_alarm_raised_data_unpack, bcmolt_xgpon_ni_stat_alarm_raised_data_scan };
+static bcmolt_group_info group_info_xgpon_ni_state_change_completed = { BCMOLT_OBJ_ID_XGPON_NI, BCMOLT_MGT_GROUP_AUTO, 17, sizeof(bcmolt_xgpon_ni_state_change_completed_data), sizeof(bcmolt_xgpon_ni_state_change_completed), offsetof(bcmolt_xgpon_ni_state_change_completed, data), (bcmolt_func_packed_len) bcmolt_xgpon_ni_state_change_completed_data_get_packed_length, (bcmolt_func_pack) bcmolt_xgpon_ni_state_change_completed_data_pack, (bcmolt_func_unpack) bcmolt_xgpon_ni_state_change_completed_data_unpack, bcmolt_xgpon_ni_state_change_completed_data_scan };
+static bcmolt_group_info group_info_xgpon_ni_tod_request_completed = { BCMOLT_OBJ_ID_XGPON_NI, BCMOLT_MGT_GROUP_AUTO, 18, sizeof(bcmolt_xgpon_ni_tod_request_completed_data), sizeof(bcmolt_xgpon_ni_tod_request_completed), offsetof(bcmolt_xgpon_ni_tod_request_completed, data), (bcmolt_func_packed_len) bcmolt_xgpon_ni_tod_request_completed_data_get_packed_length, (bcmolt_func_pack) bcmolt_xgpon_ni_tod_request_completed_data_pack, (bcmolt_func_unpack) bcmolt_xgpon_ni_tod_request_completed_data_unpack, bcmolt_xgpon_ni_tod_request_completed_data_scan };
+static bcmolt_group_info group_info_xgpon_ni_auto_cfg = { BCMOLT_OBJ_ID_XGPON_NI, BCMOLT_MGT_GROUP_AUTO_CFG, 0, sizeof(bcmolt_xgpon_ni_auto_cfg_data), sizeof(bcmolt_xgpon_ni_auto_cfg), offsetof(bcmolt_xgpon_ni_auto_cfg, data), (bcmolt_func_packed_len) bcmolt_xgpon_ni_auto_cfg_data_get_packed_length, (bcmolt_func_pack) bcmolt_xgpon_ni_auto_cfg_data_pack, (bcmolt_func_unpack) bcmolt_xgpon_ni_auto_cfg_data_unpack, bcmolt_xgpon_ni_auto_cfg_data_scan };
+static bcmolt_group_info group_info_xgpon_ni_adjust_tx_wavelength = { BCMOLT_OBJ_ID_XGPON_NI, BCMOLT_MGT_GROUP_OPER, 0, sizeof(bcmolt_xgpon_ni_adjust_tx_wavelength_data), sizeof(bcmolt_xgpon_ni_adjust_tx_wavelength), offsetof(bcmolt_xgpon_ni_adjust_tx_wavelength, data), (bcmolt_func_packed_len) bcmolt_xgpon_ni_adjust_tx_wavelength_data_get_packed_length, (bcmolt_func_pack) bcmolt_xgpon_ni_adjust_tx_wavelength_data_pack, (bcmolt_func_unpack) bcmolt_xgpon_ni_adjust_tx_wavelength_data_unpack, bcmolt_xgpon_ni_adjust_tx_wavelength_data_scan };
+static bcmolt_group_info group_info_xgpon_ni_disable_serial_number = { BCMOLT_OBJ_ID_XGPON_NI, BCMOLT_MGT_GROUP_OPER, 1, sizeof(bcmolt_xgpon_ni_disable_serial_number_data), sizeof(bcmolt_xgpon_ni_disable_serial_number), offsetof(bcmolt_xgpon_ni_disable_serial_number, data), (bcmolt_func_packed_len) bcmolt_xgpon_ni_disable_serial_number_data_get_packed_length, (bcmolt_func_pack) bcmolt_xgpon_ni_disable_serial_number_data_pack, (bcmolt_func_unpack) bcmolt_xgpon_ni_disable_serial_number_data_unpack, bcmolt_xgpon_ni_disable_serial_number_data_scan };
+static bcmolt_group_info group_info_xgpon_ni_reset = { BCMOLT_OBJ_ID_XGPON_NI, BCMOLT_MGT_GROUP_OPER, 2, 0, 0, 0, NULL, NULL, NULL };
+static bcmolt_group_info group_info_xgpon_ni_rogue_detection_window = { BCMOLT_OBJ_ID_XGPON_NI, BCMOLT_MGT_GROUP_OPER, 3, sizeof(bcmolt_xgpon_ni_rogue_detection_window_data), sizeof(bcmolt_xgpon_ni_rogue_detection_window), offsetof(bcmolt_xgpon_ni_rogue_detection_window, data), (bcmolt_func_packed_len) bcmolt_xgpon_ni_rogue_detection_window_data_get_packed_length, (bcmolt_func_pack) bcmolt_xgpon_ni_rogue_detection_window_data_pack, (bcmolt_func_unpack) bcmolt_xgpon_ni_rogue_detection_window_data_unpack, bcmolt_xgpon_ni_rogue_detection_window_data_scan };
+static bcmolt_group_info group_info_xgpon_ni_run_special_bw_map = { BCMOLT_OBJ_ID_XGPON_NI, BCMOLT_MGT_GROUP_OPER, 4, sizeof(bcmolt_xgpon_ni_run_special_bw_map_data), sizeof(bcmolt_xgpon_ni_run_special_bw_map), offsetof(bcmolt_xgpon_ni_run_special_bw_map, data), (bcmolt_func_packed_len) bcmolt_xgpon_ni_run_special_bw_map_data_get_packed_length, (bcmolt_func_pack) bcmolt_xgpon_ni_run_special_bw_map_data_pack, (bcmolt_func_unpack) bcmolt_xgpon_ni_run_special_bw_map_data_unpack, bcmolt_xgpon_ni_run_special_bw_map_data_scan };
+static bcmolt_group_info group_info_xgpon_ni_set_onu_state = { BCMOLT_OBJ_ID_XGPON_NI, BCMOLT_MGT_GROUP_OPER, 5, sizeof(bcmolt_xgpon_ni_set_onu_state_data), sizeof(bcmolt_xgpon_ni_set_onu_state), offsetof(bcmolt_xgpon_ni_set_onu_state, data), (bcmolt_func_packed_len) bcmolt_xgpon_ni_set_onu_state_data_get_packed_length, (bcmolt_func_pack) bcmolt_xgpon_ni_set_onu_state_data_pack, (bcmolt_func_unpack) bcmolt_xgpon_ni_set_onu_state_data_unpack, bcmolt_xgpon_ni_set_onu_state_data_scan };
+static bcmolt_group_info group_info_xgpon_ni_set_pon_state = { BCMOLT_OBJ_ID_XGPON_NI, BCMOLT_MGT_GROUP_OPER, 6, sizeof(bcmolt_xgpon_ni_set_pon_state_data), sizeof(bcmolt_xgpon_ni_set_pon_state), offsetof(bcmolt_xgpon_ni_set_pon_state, data), (bcmolt_func_packed_len) bcmolt_xgpon_ni_set_pon_state_data_get_packed_length, (bcmolt_func_pack) bcmolt_xgpon_ni_set_pon_state_data_pack, (bcmolt_func_unpack) bcmolt_xgpon_ni_set_pon_state_data_unpack, bcmolt_xgpon_ni_set_pon_state_data_scan };
+static bcmolt_group_info group_info_xgpon_ni_single_request_standby_pon_monitoring = { BCMOLT_OBJ_ID_XGPON_NI, BCMOLT_MGT_GROUP_OPER, 7, 0, 0, 0, NULL, NULL, NULL };
+static bcmolt_group_info group_info_xgpon_ni_start_onu_upgrade = { BCMOLT_OBJ_ID_XGPON_NI, BCMOLT_MGT_GROUP_OPER, 8, sizeof(bcmolt_xgpon_ni_start_onu_upgrade_data), sizeof(bcmolt_xgpon_ni_start_onu_upgrade), offsetof(bcmolt_xgpon_ni_start_onu_upgrade, data), (bcmolt_func_packed_len) bcmolt_xgpon_ni_start_onu_upgrade_data_get_packed_length, (bcmolt_func_pack) bcmolt_xgpon_ni_start_onu_upgrade_data_pack, (bcmolt_func_unpack) bcmolt_xgpon_ni_start_onu_upgrade_data_unpack, bcmolt_xgpon_ni_start_onu_upgrade_data_scan };
+static bcmolt_group_info group_info_xgpon_ni_tod_request = { BCMOLT_OBJ_ID_XGPON_NI, BCMOLT_MGT_GROUP_OPER, 9, 0, 0, 0, NULL, NULL, NULL };
+static bcmolt_group_info group_info_xgpon_ni_broadcast_ploam_packet = { BCMOLT_OBJ_ID_XGPON_NI, BCMOLT_MGT_GROUP_PROXY, 0, sizeof(bcmolt_xgpon_ni_broadcast_ploam_packet_data), sizeof(bcmolt_xgpon_ni_broadcast_ploam_packet), offsetof(bcmolt_xgpon_ni_broadcast_ploam_packet, data), (bcmolt_func_packed_len) bcmolt_xgpon_ni_broadcast_ploam_packet_data_get_packed_length, (bcmolt_func_pack) bcmolt_xgpon_ni_broadcast_ploam_packet_data_pack, (bcmolt_func_unpack) bcmolt_xgpon_ni_broadcast_ploam_packet_data_unpack, bcmolt_xgpon_ni_broadcast_ploam_packet_data_scan };
+static bcmolt_group_info group_info_xgpon_ni_cpu_packets = { BCMOLT_OBJ_ID_XGPON_NI, BCMOLT_MGT_GROUP_PROXY, 1, sizeof(bcmolt_xgpon_ni_cpu_packets_data), sizeof(bcmolt_xgpon_ni_cpu_packets), offsetof(bcmolt_xgpon_ni_cpu_packets, data), (bcmolt_func_packed_len) bcmolt_xgpon_ni_cpu_packets_data_get_packed_length, (bcmolt_func_pack) bcmolt_xgpon_ni_cpu_packets_data_pack, (bcmolt_func_unpack) bcmolt_xgpon_ni_cpu_packets_data_unpack, bcmolt_xgpon_ni_cpu_packets_data_scan };
+static bcmolt_group_info group_info_xgpon_onu_key = { BCMOLT_OBJ_ID_XGPON_ONU, BCMOLT_MGT_GROUP_KEY, 0, sizeof(bcmolt_xgpon_onu_key), 0, 0, (bcmolt_func_packed_len) bcmolt_xgpon_onu_key_get_packed_length, (bcmolt_func_pack) bcmolt_xgpon_onu_key_pack, (bcmolt_func_unpack) bcmolt_xgpon_onu_key_unpack, bcmolt_xgpon_onu_key_scan };
+static bcmolt_group_info group_info_xgpon_onu_cfg = { BCMOLT_OBJ_ID_XGPON_ONU, BCMOLT_MGT_GROUP_CFG, 0, sizeof(bcmolt_xgpon_onu_cfg_data), sizeof(bcmolt_xgpon_onu_cfg), offsetof(bcmolt_xgpon_onu_cfg, data), (bcmolt_func_packed_len) bcmolt_xgpon_onu_cfg_data_get_packed_length, (bcmolt_func_pack) bcmolt_xgpon_onu_cfg_data_pack, (bcmolt_func_unpack) bcmolt_xgpon_onu_cfg_data_unpack, bcmolt_xgpon_onu_cfg_data_scan };
+static bcmolt_group_info group_info_xgpon_onu_stat = { BCMOLT_OBJ_ID_XGPON_ONU, BCMOLT_MGT_GROUP_STAT, 0, sizeof(bcmolt_xgpon_onu_stat_data), sizeof(bcmolt_xgpon_onu_stat), offsetof(bcmolt_xgpon_onu_stat, data), (bcmolt_func_packed_len) bcmolt_xgpon_onu_stat_data_get_packed_length, (bcmolt_func_pack) bcmolt_xgpon_onu_stat_data_pack, (bcmolt_func_unpack) bcmolt_xgpon_onu_stat_data_unpack, bcmolt_xgpon_onu_stat_data_scan };
+static bcmolt_group_info group_info_xgpon_onu_stat_cfg = { BCMOLT_OBJ_ID_XGPON_ONU, BCMOLT_MGT_GROUP_STAT_CFG, 0, sizeof(bcmolt_xgpon_onu_stat_cfg_data), sizeof(bcmolt_xgpon_onu_stat_cfg), offsetof(bcmolt_xgpon_onu_stat_cfg, data), (bcmolt_func_packed_len) bcmolt_xgpon_onu_stat_cfg_data_get_packed_length, (bcmolt_func_pack) bcmolt_xgpon_onu_stat_cfg_data_pack, (bcmolt_func_unpack) bcmolt_xgpon_onu_stat_cfg_data_unpack, bcmolt_xgpon_onu_stat_cfg_data_scan };
+static bcmolt_group_info group_info_xgpon_onu_dfi = { BCMOLT_OBJ_ID_XGPON_ONU, BCMOLT_MGT_GROUP_AUTO, 0, sizeof(bcmolt_xgpon_onu_dfi_data), sizeof(bcmolt_xgpon_onu_dfi), offsetof(bcmolt_xgpon_onu_dfi, data), (bcmolt_func_packed_len) bcmolt_xgpon_onu_dfi_data_get_packed_length, (bcmolt_func_pack) bcmolt_xgpon_onu_dfi_data_pack, (bcmolt_func_unpack) bcmolt_xgpon_onu_dfi_data_unpack, bcmolt_xgpon_onu_dfi_data_scan };
+static bcmolt_group_info group_info_xgpon_onu_dgi = { BCMOLT_OBJ_ID_XGPON_ONU, BCMOLT_MGT_GROUP_AUTO, 1, sizeof(bcmolt_xgpon_onu_dgi_data), sizeof(bcmolt_xgpon_onu_dgi), offsetof(bcmolt_xgpon_onu_dgi, data), (bcmolt_func_packed_len) bcmolt_xgpon_onu_dgi_data_get_packed_length, (bcmolt_func_pack) bcmolt_xgpon_onu_dgi_data_pack, (bcmolt_func_unpack) bcmolt_xgpon_onu_dgi_data_unpack, bcmolt_xgpon_onu_dgi_data_scan };
+static bcmolt_group_info group_info_xgpon_onu_dowi = { BCMOLT_OBJ_ID_XGPON_ONU, BCMOLT_MGT_GROUP_AUTO, 2, sizeof(bcmolt_xgpon_onu_dowi_data), sizeof(bcmolt_xgpon_onu_dowi), offsetof(bcmolt_xgpon_onu_dowi, data), (bcmolt_func_packed_len) bcmolt_xgpon_onu_dowi_data_get_packed_length, (bcmolt_func_pack) bcmolt_xgpon_onu_dowi_data_pack, (bcmolt_func_unpack) bcmolt_xgpon_onu_dowi_data_unpack, bcmolt_xgpon_onu_dowi_data_scan };
+static bcmolt_group_info group_info_xgpon_onu_invalid_dbru_report = { BCMOLT_OBJ_ID_XGPON_ONU, BCMOLT_MGT_GROUP_AUTO, 3, sizeof(bcmolt_xgpon_onu_invalid_dbru_report_data), sizeof(bcmolt_xgpon_onu_invalid_dbru_report), offsetof(bcmolt_xgpon_onu_invalid_dbru_report, data), (bcmolt_func_packed_len) bcmolt_xgpon_onu_invalid_dbru_report_data_get_packed_length, (bcmolt_func_pack) bcmolt_xgpon_onu_invalid_dbru_report_data_pack, (bcmolt_func_unpack) bcmolt_xgpon_onu_invalid_dbru_report_data_unpack, bcmolt_xgpon_onu_invalid_dbru_report_data_scan };
+static bcmolt_group_info group_info_xgpon_onu_key_exchange_completed = { BCMOLT_OBJ_ID_XGPON_ONU, BCMOLT_MGT_GROUP_AUTO, 4, sizeof(bcmolt_xgpon_onu_key_exchange_completed_data), sizeof(bcmolt_xgpon_onu_key_exchange_completed), offsetof(bcmolt_xgpon_onu_key_exchange_completed, data), (bcmolt_func_packed_len) bcmolt_xgpon_onu_key_exchange_completed_data_get_packed_length, (bcmolt_func_pack) bcmolt_xgpon_onu_key_exchange_completed_data_pack, (bcmolt_func_unpack) bcmolt_xgpon_onu_key_exchange_completed_data_unpack, bcmolt_xgpon_onu_key_exchange_completed_data_scan };
+static bcmolt_group_info group_info_xgpon_onu_key_exchange_cycle_skipped = { BCMOLT_OBJ_ID_XGPON_ONU, BCMOLT_MGT_GROUP_AUTO, 5, 0, 0, 0, NULL, NULL, NULL };
+static bcmolt_group_info group_info_xgpon_onu_key_exchange_key_mismatch = { BCMOLT_OBJ_ID_XGPON_ONU, BCMOLT_MGT_GROUP_AUTO, 6, sizeof(bcmolt_xgpon_onu_key_exchange_key_mismatch_data), sizeof(bcmolt_xgpon_onu_key_exchange_key_mismatch), offsetof(bcmolt_xgpon_onu_key_exchange_key_mismatch, data), (bcmolt_func_packed_len) bcmolt_xgpon_onu_key_exchange_key_mismatch_data_get_packed_length, (bcmolt_func_pack) bcmolt_xgpon_onu_key_exchange_key_mismatch_data_pack, (bcmolt_func_unpack) bcmolt_xgpon_onu_key_exchange_key_mismatch_data_unpack, bcmolt_xgpon_onu_key_exchange_key_mismatch_data_scan };
+static bcmolt_group_info group_info_xgpon_onu_key_exchange_key_request_timeout = { BCMOLT_OBJ_ID_XGPON_ONU, BCMOLT_MGT_GROUP_AUTO, 7, 0, 0, 0, NULL, NULL, NULL };
+static bcmolt_group_info group_info_xgpon_onu_looci = { BCMOLT_OBJ_ID_XGPON_ONU, BCMOLT_MGT_GROUP_AUTO, 8, sizeof(bcmolt_xgpon_onu_looci_data), sizeof(bcmolt_xgpon_onu_looci), offsetof(bcmolt_xgpon_onu_looci, data), (bcmolt_func_packed_len) bcmolt_xgpon_onu_looci_data_get_packed_length, (bcmolt_func_pack) bcmolt_xgpon_onu_looci_data_pack, (bcmolt_func_unpack) bcmolt_xgpon_onu_looci_data_unpack, bcmolt_xgpon_onu_looci_data_scan };
+static bcmolt_group_info group_info_xgpon_onu_onu_activation_completed = { BCMOLT_OBJ_ID_XGPON_ONU, BCMOLT_MGT_GROUP_AUTO, 9, sizeof(bcmolt_xgpon_onu_onu_activation_completed_data), sizeof(bcmolt_xgpon_onu_onu_activation_completed), offsetof(bcmolt_xgpon_onu_onu_activation_completed, data), (bcmolt_func_packed_len) bcmolt_xgpon_onu_onu_activation_completed_data_get_packed_length, (bcmolt_func_pack) bcmolt_xgpon_onu_onu_activation_completed_data_pack, (bcmolt_func_unpack) bcmolt_xgpon_onu_onu_activation_completed_data_unpack, bcmolt_xgpon_onu_onu_activation_completed_data_scan };
+static bcmolt_group_info group_info_xgpon_onu_onu_alarm = { BCMOLT_OBJ_ID_XGPON_ONU, BCMOLT_MGT_GROUP_AUTO, 10, sizeof(bcmolt_xgpon_onu_onu_alarm_data), sizeof(bcmolt_xgpon_onu_onu_alarm), offsetof(bcmolt_xgpon_onu_onu_alarm, data), (bcmolt_func_packed_len) bcmolt_xgpon_onu_onu_alarm_data_get_packed_length, (bcmolt_func_pack) bcmolt_xgpon_onu_onu_alarm_data_pack, (bcmolt_func_unpack) bcmolt_xgpon_onu_onu_alarm_data_unpack, bcmolt_xgpon_onu_onu_alarm_data_scan };
+static bcmolt_group_info group_info_xgpon_onu_onu_deactivation_completed = { BCMOLT_OBJ_ID_XGPON_ONU, BCMOLT_MGT_GROUP_AUTO, 11, sizeof(bcmolt_xgpon_onu_onu_deactivation_completed_data), sizeof(bcmolt_xgpon_onu_onu_deactivation_completed), offsetof(bcmolt_xgpon_onu_onu_deactivation_completed, data), (bcmolt_func_packed_len) bcmolt_xgpon_onu_onu_deactivation_completed_data_get_packed_length, (bcmolt_func_pack) bcmolt_xgpon_onu_onu_deactivation_completed_data_pack, (bcmolt_func_unpack) bcmolt_xgpon_onu_onu_deactivation_completed_data_unpack, bcmolt_xgpon_onu_onu_deactivation_completed_data_scan };
+static bcmolt_group_info group_info_xgpon_onu_onu_disable_completed = { BCMOLT_OBJ_ID_XGPON_ONU, BCMOLT_MGT_GROUP_AUTO, 12, sizeof(bcmolt_xgpon_onu_onu_disable_completed_data), sizeof(bcmolt_xgpon_onu_onu_disable_completed), offsetof(bcmolt_xgpon_onu_onu_disable_completed, data), (bcmolt_func_packed_len) bcmolt_xgpon_onu_onu_disable_completed_data_get_packed_length, (bcmolt_func_pack) bcmolt_xgpon_onu_onu_disable_completed_data_pack, (bcmolt_func_unpack) bcmolt_xgpon_onu_onu_disable_completed_data_unpack, bcmolt_xgpon_onu_onu_disable_completed_data_scan };
+static bcmolt_group_info group_info_xgpon_onu_onu_enable_completed = { BCMOLT_OBJ_ID_XGPON_ONU, BCMOLT_MGT_GROUP_AUTO, 13, sizeof(bcmolt_xgpon_onu_onu_enable_completed_data), sizeof(bcmolt_xgpon_onu_onu_enable_completed), offsetof(bcmolt_xgpon_onu_onu_enable_completed, data), (bcmolt_func_packed_len) bcmolt_xgpon_onu_onu_enable_completed_data_get_packed_length, (bcmolt_func_pack) bcmolt_xgpon_onu_onu_enable_completed_data_pack, (bcmolt_func_unpack) bcmolt_xgpon_onu_onu_enable_completed_data_unpack, bcmolt_xgpon_onu_onu_enable_completed_data_scan };
+static bcmolt_group_info group_info_xgpon_onu_onu_tuning_in_completed = { BCMOLT_OBJ_ID_XGPON_ONU, BCMOLT_MGT_GROUP_AUTO, 14, sizeof(bcmolt_xgpon_onu_onu_tuning_in_completed_data), sizeof(bcmolt_xgpon_onu_onu_tuning_in_completed), offsetof(bcmolt_xgpon_onu_onu_tuning_in_completed, data), (bcmolt_func_packed_len) bcmolt_xgpon_onu_onu_tuning_in_completed_data_get_packed_length, (bcmolt_func_pack) bcmolt_xgpon_onu_onu_tuning_in_completed_data_pack, (bcmolt_func_unpack) bcmolt_xgpon_onu_onu_tuning_in_completed_data_unpack, bcmolt_xgpon_onu_onu_tuning_in_completed_data_scan };
+static bcmolt_group_info group_info_xgpon_onu_onu_tuning_out_completed = { BCMOLT_OBJ_ID_XGPON_ONU, BCMOLT_MGT_GROUP_AUTO, 15, sizeof(bcmolt_xgpon_onu_onu_tuning_out_completed_data), sizeof(bcmolt_xgpon_onu_onu_tuning_out_completed), offsetof(bcmolt_xgpon_onu_onu_tuning_out_completed, data), (bcmolt_func_packed_len) bcmolt_xgpon_onu_onu_tuning_out_completed_data_get_packed_length, (bcmolt_func_pack) bcmolt_xgpon_onu_onu_tuning_out_completed_data_pack, (bcmolt_func_unpack) bcmolt_xgpon_onu_onu_tuning_out_completed_data_unpack, bcmolt_xgpon_onu_onu_tuning_out_completed_data_scan };
+static bcmolt_group_info group_info_xgpon_onu_optical_reflection = { BCMOLT_OBJ_ID_XGPON_ONU, BCMOLT_MGT_GROUP_AUTO, 16, 0, 0, 0, NULL, NULL, NULL };
+static bcmolt_group_info group_info_xgpon_onu_possible_drift = { BCMOLT_OBJ_ID_XGPON_ONU, BCMOLT_MGT_GROUP_AUTO, 17, sizeof(bcmolt_xgpon_onu_possible_drift_data), sizeof(bcmolt_xgpon_onu_possible_drift), offsetof(bcmolt_xgpon_onu_possible_drift, data), (bcmolt_func_packed_len) bcmolt_xgpon_onu_possible_drift_data_get_packed_length, (bcmolt_func_pack) bcmolt_xgpon_onu_possible_drift_data_pack, (bcmolt_func_unpack) bcmolt_xgpon_onu_possible_drift_data_unpack, bcmolt_xgpon_onu_possible_drift_data_scan };
+static bcmolt_group_info group_info_xgpon_onu_power_consumption_report = { BCMOLT_OBJ_ID_XGPON_ONU, BCMOLT_MGT_GROUP_AUTO, 18, sizeof(bcmolt_xgpon_onu_power_consumption_report_data), sizeof(bcmolt_xgpon_onu_power_consumption_report), offsetof(bcmolt_xgpon_onu_power_consumption_report, data), (bcmolt_func_packed_len) bcmolt_xgpon_onu_power_consumption_report_data_get_packed_length, (bcmolt_func_pack) bcmolt_xgpon_onu_power_consumption_report_data_pack, (bcmolt_func_unpack) bcmolt_xgpon_onu_power_consumption_report_data_unpack, bcmolt_xgpon_onu_power_consumption_report_data_scan };
+static bcmolt_group_info group_info_xgpon_onu_power_level_report = { BCMOLT_OBJ_ID_XGPON_ONU, BCMOLT_MGT_GROUP_AUTO, 19, sizeof(bcmolt_xgpon_onu_power_level_report_data), sizeof(bcmolt_xgpon_onu_power_level_report), offsetof(bcmolt_xgpon_onu_power_level_report, data), (bcmolt_func_packed_len) bcmolt_xgpon_onu_power_level_report_data_get_packed_length, (bcmolt_func_pack) bcmolt_xgpon_onu_power_level_report_data_pack, (bcmolt_func_unpack) bcmolt_xgpon_onu_power_level_report_data_unpack, bcmolt_xgpon_onu_power_level_report_data_scan };
+static bcmolt_group_info group_info_xgpon_onu_power_management_state_change = { BCMOLT_OBJ_ID_XGPON_ONU, BCMOLT_MGT_GROUP_AUTO, 20, sizeof(bcmolt_xgpon_onu_power_management_state_change_data), sizeof(bcmolt_xgpon_onu_power_management_state_change), offsetof(bcmolt_xgpon_onu_power_management_state_change, data), (bcmolt_func_packed_len) bcmolt_xgpon_onu_power_management_state_change_data_get_packed_length, (bcmolt_func_pack) bcmolt_xgpon_onu_power_management_state_change_data_pack, (bcmolt_func_unpack) bcmolt_xgpon_onu_power_management_state_change_data_unpack, bcmolt_xgpon_onu_power_management_state_change_data_scan };
+static bcmolt_group_info group_info_xgpon_onu_pqsi = { BCMOLT_OBJ_ID_XGPON_ONU, BCMOLT_MGT_GROUP_AUTO, 21, sizeof(bcmolt_xgpon_onu_pqsi_data), sizeof(bcmolt_xgpon_onu_pqsi), offsetof(bcmolt_xgpon_onu_pqsi, data), (bcmolt_func_packed_len) bcmolt_xgpon_onu_pqsi_data_get_packed_length, (bcmolt_func_pack) bcmolt_xgpon_onu_pqsi_data_pack, (bcmolt_func_unpack) bcmolt_xgpon_onu_pqsi_data_unpack, bcmolt_xgpon_onu_pqsi_data_scan };
+static bcmolt_group_info group_info_xgpon_onu_ranging_completed = { BCMOLT_OBJ_ID_XGPON_ONU, BCMOLT_MGT_GROUP_AUTO, 22, sizeof(bcmolt_xgpon_onu_ranging_completed_data), sizeof(bcmolt_xgpon_onu_ranging_completed), offsetof(bcmolt_xgpon_onu_ranging_completed, data), (bcmolt_func_packed_len) bcmolt_xgpon_onu_ranging_completed_data_get_packed_length, (bcmolt_func_pack) bcmolt_xgpon_onu_ranging_completed_data_pack, (bcmolt_func_unpack) bcmolt_xgpon_onu_ranging_completed_data_unpack, bcmolt_xgpon_onu_ranging_completed_data_scan };
+static bcmolt_group_info group_info_xgpon_onu_registration_id = { BCMOLT_OBJ_ID_XGPON_ONU, BCMOLT_MGT_GROUP_AUTO, 23, sizeof(bcmolt_xgpon_onu_registration_id_data), sizeof(bcmolt_xgpon_onu_registration_id), offsetof(bcmolt_xgpon_onu_registration_id, data), (bcmolt_func_packed_len) bcmolt_xgpon_onu_registration_id_data_get_packed_length, (bcmolt_func_pack) bcmolt_xgpon_onu_registration_id_data_pack, (bcmolt_func_unpack) bcmolt_xgpon_onu_registration_id_data_unpack, bcmolt_xgpon_onu_registration_id_data_scan };
+static bcmolt_group_info group_info_xgpon_onu_rssi_measurement_completed = { BCMOLT_OBJ_ID_XGPON_ONU, BCMOLT_MGT_GROUP_AUTO, 24, sizeof(bcmolt_xgpon_onu_rssi_measurement_completed_data), sizeof(bcmolt_xgpon_onu_rssi_measurement_completed), offsetof(bcmolt_xgpon_onu_rssi_measurement_completed, data), (bcmolt_func_packed_len) bcmolt_xgpon_onu_rssi_measurement_completed_data_get_packed_length, (bcmolt_func_pack) bcmolt_xgpon_onu_rssi_measurement_completed_data_pack, (bcmolt_func_unpack) bcmolt_xgpon_onu_rssi_measurement_completed_data_unpack, bcmolt_xgpon_onu_rssi_measurement_completed_data_scan };
+static bcmolt_group_info group_info_xgpon_onu_sdi = { BCMOLT_OBJ_ID_XGPON_ONU, BCMOLT_MGT_GROUP_AUTO, 25, sizeof(bcmolt_xgpon_onu_sdi_data), sizeof(bcmolt_xgpon_onu_sdi), offsetof(bcmolt_xgpon_onu_sdi, data), (bcmolt_func_packed_len) bcmolt_xgpon_onu_sdi_data_get_packed_length, (bcmolt_func_pack) bcmolt_xgpon_onu_sdi_data_pack, (bcmolt_func_unpack) bcmolt_xgpon_onu_sdi_data_unpack, bcmolt_xgpon_onu_sdi_data_scan };
+static bcmolt_group_info group_info_xgpon_onu_secure_mutual_authentication_failure = { BCMOLT_OBJ_ID_XGPON_ONU, BCMOLT_MGT_GROUP_AUTO, 26, sizeof(bcmolt_xgpon_onu_secure_mutual_authentication_failure_data), sizeof(bcmolt_xgpon_onu_secure_mutual_authentication_failure), offsetof(bcmolt_xgpon_onu_secure_mutual_authentication_failure, data), (bcmolt_func_packed_len) bcmolt_xgpon_onu_secure_mutual_authentication_failure_data_get_packed_length, (bcmolt_func_pack) bcmolt_xgpon_onu_secure_mutual_authentication_failure_data_pack, (bcmolt_func_unpack) bcmolt_xgpon_onu_secure_mutual_authentication_failure_data_unpack, bcmolt_xgpon_onu_secure_mutual_authentication_failure_data_scan };
+static bcmolt_group_info group_info_xgpon_onu_sfi = { BCMOLT_OBJ_ID_XGPON_ONU, BCMOLT_MGT_GROUP_AUTO, 27, sizeof(bcmolt_xgpon_onu_sfi_data), sizeof(bcmolt_xgpon_onu_sfi), offsetof(bcmolt_xgpon_onu_sfi, data), (bcmolt_func_packed_len) bcmolt_xgpon_onu_sfi_data_get_packed_length, (bcmolt_func_pack) bcmolt_xgpon_onu_sfi_data_pack, (bcmolt_func_unpack) bcmolt_xgpon_onu_sfi_data_unpack, bcmolt_xgpon_onu_sfi_data_scan };
+static bcmolt_group_info group_info_xgpon_onu_stat_alarm_cleared = { BCMOLT_OBJ_ID_XGPON_ONU, BCMOLT_MGT_GROUP_AUTO, 28, sizeof(bcmolt_xgpon_onu_stat_alarm_cleared_data), sizeof(bcmolt_xgpon_onu_stat_alarm_cleared), offsetof(bcmolt_xgpon_onu_stat_alarm_cleared, data), (bcmolt_func_packed_len) bcmolt_xgpon_onu_stat_alarm_cleared_data_get_packed_length, (bcmolt_func_pack) bcmolt_xgpon_onu_stat_alarm_cleared_data_pack, (bcmolt_func_unpack) bcmolt_xgpon_onu_stat_alarm_cleared_data_unpack, bcmolt_xgpon_onu_stat_alarm_cleared_data_scan };
+static bcmolt_group_info group_info_xgpon_onu_stat_alarm_raised = { BCMOLT_OBJ_ID_XGPON_ONU, BCMOLT_MGT_GROUP_AUTO, 29, sizeof(bcmolt_xgpon_onu_stat_alarm_raised_data), sizeof(bcmolt_xgpon_onu_stat_alarm_raised), offsetof(bcmolt_xgpon_onu_stat_alarm_raised, data), (bcmolt_func_packed_len) bcmolt_xgpon_onu_stat_alarm_raised_data_get_packed_length, (bcmolt_func_pack) bcmolt_xgpon_onu_stat_alarm_raised_data_pack, (bcmolt_func_unpack) bcmolt_xgpon_onu_stat_alarm_raised_data_unpack, bcmolt_xgpon_onu_stat_alarm_raised_data_scan };
+static bcmolt_group_info group_info_xgpon_onu_sufi = { BCMOLT_OBJ_ID_XGPON_ONU, BCMOLT_MGT_GROUP_AUTO, 30, sizeof(bcmolt_xgpon_onu_sufi_data), sizeof(bcmolt_xgpon_onu_sufi), offsetof(bcmolt_xgpon_onu_sufi, data), (bcmolt_func_packed_len) bcmolt_xgpon_onu_sufi_data_get_packed_length, (bcmolt_func_pack) bcmolt_xgpon_onu_sufi_data_pack, (bcmolt_func_unpack) bcmolt_xgpon_onu_sufi_data_unpack, bcmolt_xgpon_onu_sufi_data_scan };
+static bcmolt_group_info group_info_xgpon_onu_tiwi = { BCMOLT_OBJ_ID_XGPON_ONU, BCMOLT_MGT_GROUP_AUTO, 31, sizeof(bcmolt_xgpon_onu_tiwi_data), sizeof(bcmolt_xgpon_onu_tiwi), offsetof(bcmolt_xgpon_onu_tiwi, data), (bcmolt_func_packed_len) bcmolt_xgpon_onu_tiwi_data_get_packed_length, (bcmolt_func_pack) bcmolt_xgpon_onu_tiwi_data_pack, (bcmolt_func_unpack) bcmolt_xgpon_onu_tiwi_data_unpack, bcmolt_xgpon_onu_tiwi_data_scan };
+static bcmolt_group_info group_info_xgpon_onu_tuning_response = { BCMOLT_OBJ_ID_XGPON_ONU, BCMOLT_MGT_GROUP_AUTO, 32, sizeof(bcmolt_xgpon_onu_tuning_response_data), sizeof(bcmolt_xgpon_onu_tuning_response), offsetof(bcmolt_xgpon_onu_tuning_response, data), (bcmolt_func_packed_len) bcmolt_xgpon_onu_tuning_response_data_get_packed_length, (bcmolt_func_pack) bcmolt_xgpon_onu_tuning_response_data_pack, (bcmolt_func_unpack) bcmolt_xgpon_onu_tuning_response_data_unpack, bcmolt_xgpon_onu_tuning_response_data_scan };
+static bcmolt_group_info group_info_xgpon_onu_auto_cfg = { BCMOLT_OBJ_ID_XGPON_ONU, BCMOLT_MGT_GROUP_AUTO_CFG, 0, sizeof(bcmolt_xgpon_onu_auto_cfg_data), sizeof(bcmolt_xgpon_onu_auto_cfg), offsetof(bcmolt_xgpon_onu_auto_cfg, data), (bcmolt_func_packed_len) bcmolt_xgpon_onu_auto_cfg_data_get_packed_length, (bcmolt_func_pack) bcmolt_xgpon_onu_auto_cfg_data_pack, (bcmolt_func_unpack) bcmolt_xgpon_onu_auto_cfg_data_unpack, bcmolt_xgpon_onu_auto_cfg_data_scan };
+static bcmolt_group_info group_info_xgpon_onu_adjust_tx_wavelength = { BCMOLT_OBJ_ID_XGPON_ONU, BCMOLT_MGT_GROUP_OPER, 0, sizeof(bcmolt_xgpon_onu_adjust_tx_wavelength_data), sizeof(bcmolt_xgpon_onu_adjust_tx_wavelength), offsetof(bcmolt_xgpon_onu_adjust_tx_wavelength, data), (bcmolt_func_packed_len) bcmolt_xgpon_onu_adjust_tx_wavelength_data_get_packed_length, (bcmolt_func_pack) bcmolt_xgpon_onu_adjust_tx_wavelength_data_pack, (bcmolt_func_unpack) bcmolt_xgpon_onu_adjust_tx_wavelength_data_unpack, bcmolt_xgpon_onu_adjust_tx_wavelength_data_scan };
+static bcmolt_group_info group_info_xgpon_onu_change_power_levelling = { BCMOLT_OBJ_ID_XGPON_ONU, BCMOLT_MGT_GROUP_OPER, 1, sizeof(bcmolt_xgpon_onu_change_power_levelling_data), sizeof(bcmolt_xgpon_onu_change_power_levelling), offsetof(bcmolt_xgpon_onu_change_power_levelling, data), (bcmolt_func_packed_len) bcmolt_xgpon_onu_change_power_levelling_data_get_packed_length, (bcmolt_func_pack) bcmolt_xgpon_onu_change_power_levelling_data_pack, (bcmolt_func_unpack) bcmolt_xgpon_onu_change_power_levelling_data_unpack, bcmolt_xgpon_onu_change_power_levelling_data_scan };
+static bcmolt_group_info group_info_xgpon_onu_get_power_consumption = { BCMOLT_OBJ_ID_XGPON_ONU, BCMOLT_MGT_GROUP_OPER, 2, 0, 0, 0, NULL, NULL, NULL };
+static bcmolt_group_info group_info_xgpon_onu_get_power_level = { BCMOLT_OBJ_ID_XGPON_ONU, BCMOLT_MGT_GROUP_OPER, 3, 0, 0, 0, NULL, NULL, NULL };
+static bcmolt_group_info group_info_xgpon_onu_onu_tuning_in = { BCMOLT_OBJ_ID_XGPON_ONU, BCMOLT_MGT_GROUP_OPER, 4, 0, 0, 0, NULL, NULL, NULL };
+static bcmolt_group_info group_info_xgpon_onu_onu_tuning_out = { BCMOLT_OBJ_ID_XGPON_ONU, BCMOLT_MGT_GROUP_OPER, 5, sizeof(bcmolt_xgpon_onu_onu_tuning_out_data), sizeof(bcmolt_xgpon_onu_onu_tuning_out), offsetof(bcmolt_xgpon_onu_onu_tuning_out, data), (bcmolt_func_packed_len) bcmolt_xgpon_onu_onu_tuning_out_data_get_packed_length, (bcmolt_func_pack) bcmolt_xgpon_onu_onu_tuning_out_data_pack, (bcmolt_func_unpack) bcmolt_xgpon_onu_onu_tuning_out_data_unpack, bcmolt_xgpon_onu_onu_tuning_out_data_scan };
+static bcmolt_group_info group_info_xgpon_onu_request_registration = { BCMOLT_OBJ_ID_XGPON_ONU, BCMOLT_MGT_GROUP_OPER, 6, sizeof(bcmolt_xgpon_onu_request_registration_data), sizeof(bcmolt_xgpon_onu_request_registration), offsetof(bcmolt_xgpon_onu_request_registration, data), (bcmolt_func_packed_len) bcmolt_xgpon_onu_request_registration_data_get_packed_length, (bcmolt_func_pack) bcmolt_xgpon_onu_request_registration_data_pack, (bcmolt_func_unpack) bcmolt_xgpon_onu_request_registration_data_unpack, bcmolt_xgpon_onu_request_registration_data_scan };
+static bcmolt_group_info group_info_xgpon_onu_rssi_measurement = { BCMOLT_OBJ_ID_XGPON_ONU, BCMOLT_MGT_GROUP_OPER, 7, 0, 0, 0, NULL, NULL, NULL };
+static bcmolt_group_info group_info_xgpon_onu_secure_mutual_authentication = { BCMOLT_OBJ_ID_XGPON_ONU, BCMOLT_MGT_GROUP_OPER, 8, sizeof(bcmolt_xgpon_onu_secure_mutual_authentication_data), sizeof(bcmolt_xgpon_onu_secure_mutual_authentication), offsetof(bcmolt_xgpon_onu_secure_mutual_authentication, data), (bcmolt_func_packed_len) bcmolt_xgpon_onu_secure_mutual_authentication_data_get_packed_length, (bcmolt_func_pack) bcmolt_xgpon_onu_secure_mutual_authentication_data_pack, (bcmolt_func_unpack) bcmolt_xgpon_onu_secure_mutual_authentication_data_unpack, bcmolt_xgpon_onu_secure_mutual_authentication_data_scan };
+static bcmolt_group_info group_info_xgpon_onu_set_onu_state = { BCMOLT_OBJ_ID_XGPON_ONU, BCMOLT_MGT_GROUP_OPER, 9, sizeof(bcmolt_xgpon_onu_set_onu_state_data), sizeof(bcmolt_xgpon_onu_set_onu_state), offsetof(bcmolt_xgpon_onu_set_onu_state, data), (bcmolt_func_packed_len) bcmolt_xgpon_onu_set_onu_state_data_get_packed_length, (bcmolt_func_pack) bcmolt_xgpon_onu_set_onu_state_data_pack, (bcmolt_func_unpack) bcmolt_xgpon_onu_set_onu_state_data_unpack, bcmolt_xgpon_onu_set_onu_state_data_scan };
+static bcmolt_group_info group_info_xgpon_onu_cpu_packets = { BCMOLT_OBJ_ID_XGPON_ONU, BCMOLT_MGT_GROUP_PROXY, 0, sizeof(bcmolt_xgpon_onu_cpu_packets_data), sizeof(bcmolt_xgpon_onu_cpu_packets), offsetof(bcmolt_xgpon_onu_cpu_packets, data), (bcmolt_func_packed_len) bcmolt_xgpon_onu_cpu_packets_data_get_packed_length, (bcmolt_func_pack) bcmolt_xgpon_onu_cpu_packets_data_pack, (bcmolt_func_unpack) bcmolt_xgpon_onu_cpu_packets_data_unpack, bcmolt_xgpon_onu_cpu_packets_data_scan };
+static bcmolt_group_info group_info_xgpon_onu_ploam_packet = { BCMOLT_OBJ_ID_XGPON_ONU, BCMOLT_MGT_GROUP_PROXY, 1, sizeof(bcmolt_xgpon_onu_ploam_packet_data), sizeof(bcmolt_xgpon_onu_ploam_packet), offsetof(bcmolt_xgpon_onu_ploam_packet, data), (bcmolt_func_packed_len) bcmolt_xgpon_onu_ploam_packet_data_get_packed_length, (bcmolt_func_pack) bcmolt_xgpon_onu_ploam_packet_data_pack, (bcmolt_func_unpack) bcmolt_xgpon_onu_ploam_packet_data_unpack, bcmolt_xgpon_onu_ploam_packet_data_scan };
+static bcmolt_group_info group_info_xgpon_onu_cpu_packet = { BCMOLT_OBJ_ID_XGPON_ONU, BCMOLT_MGT_GROUP_PROXY_RX, 0, sizeof(bcmolt_xgpon_onu_cpu_packet_data), sizeof(bcmolt_xgpon_onu_cpu_packet), offsetof(bcmolt_xgpon_onu_cpu_packet, data), (bcmolt_func_packed_len) bcmolt_xgpon_onu_cpu_packet_data_get_packed_length, (bcmolt_func_pack) bcmolt_xgpon_onu_cpu_packet_data_pack, (bcmolt_func_unpack) bcmolt_xgpon_onu_cpu_packet_data_unpack, bcmolt_xgpon_onu_cpu_packet_data_scan };
+static bcmolt_group_info group_info_xgpon_onu_omci_packet = { BCMOLT_OBJ_ID_XGPON_ONU, BCMOLT_MGT_GROUP_PROXY_RX, 1, sizeof(bcmolt_xgpon_onu_omci_packet_data), sizeof(bcmolt_xgpon_onu_omci_packet), offsetof(bcmolt_xgpon_onu_omci_packet, data), (bcmolt_func_packed_len) bcmolt_xgpon_onu_omci_packet_data_get_packed_length, (bcmolt_func_pack) bcmolt_xgpon_onu_omci_packet_data_pack, (bcmolt_func_unpack) bcmolt_xgpon_onu_omci_packet_data_unpack, bcmolt_xgpon_onu_omci_packet_data_scan };
+static bcmolt_group_info group_info_xgpon_trx_key = { BCMOLT_OBJ_ID_XGPON_TRX, BCMOLT_MGT_GROUP_KEY, 0, sizeof(bcmolt_xgpon_trx_key), 0, 0, (bcmolt_func_packed_len) bcmolt_xgpon_trx_key_get_packed_length, (bcmolt_func_pack) bcmolt_xgpon_trx_key_pack, (bcmolt_func_unpack) bcmolt_xgpon_trx_key_unpack, bcmolt_xgpon_trx_key_scan };
+static bcmolt_group_info group_info_xgpon_trx_cfg = { BCMOLT_OBJ_ID_XGPON_TRX, BCMOLT_MGT_GROUP_CFG, 0, sizeof(bcmolt_xgpon_trx_cfg_data), sizeof(bcmolt_xgpon_trx_cfg), offsetof(bcmolt_xgpon_trx_cfg, data), (bcmolt_func_packed_len) bcmolt_xgpon_trx_cfg_data_get_packed_length, (bcmolt_func_pack) bcmolt_xgpon_trx_cfg_data_pack, (bcmolt_func_unpack) bcmolt_xgpon_trx_cfg_data_unpack, bcmolt_xgpon_trx_cfg_data_scan };
+static bcmolt_group_info group_info_xpon_serdes_key = { BCMOLT_OBJ_ID_XPON_SERDES, BCMOLT_MGT_GROUP_KEY, 0, sizeof(bcmolt_xpon_serdes_key), 0, 0, (bcmolt_func_packed_len) bcmolt_xpon_serdes_key_get_packed_length, (bcmolt_func_pack) bcmolt_xpon_serdes_key_pack, (bcmolt_func_unpack) bcmolt_xpon_serdes_key_unpack, bcmolt_xpon_serdes_key_scan };
+static bcmolt_group_info group_info_xpon_serdes_cfg = { BCMOLT_OBJ_ID_XPON_SERDES, BCMOLT_MGT_GROUP_CFG, 0, sizeof(bcmolt_xpon_serdes_cfg_data), sizeof(bcmolt_xpon_serdes_cfg), offsetof(bcmolt_xpon_serdes_cfg, data), (bcmolt_func_packed_len) bcmolt_xpon_serdes_cfg_data_get_packed_length, (bcmolt_func_pack) bcmolt_xpon_serdes_cfg_data_pack, (bcmolt_func_unpack) bcmolt_xpon_serdes_cfg_data_unpack, bcmolt_xpon_serdes_cfg_data_scan };
+static bcmolt_group_info *group_info[] =
+{
+    &group_info_ae_ni_key,
+    &group_info_ae_ni_cfg,
+    &group_info_ae_ni_set_ae_ni_en_state,
+    &group_info_ae_path_ds_key,
+    &group_info_ae_path_ds_stat,
+    &group_info_ae_path_ds_stat_cfg,
+    &group_info_ae_path_ds_stat_cfg,
+    &group_info_ae_path_ds_stat_cfg,
+    &group_info_ae_path_ds_stat_cfg,
+    &group_info_ae_path_ds_stat_cfg,
+    &group_info_ae_path_ds_stat_cfg,
+    &group_info_ae_path_ds_stat_cfg,
+    &group_info_ae_path_ds_stat_cfg,
+    &group_info_ae_path_ds_stat_cfg,
+    &group_info_ae_path_ds_stat_cfg,
+    &group_info_ae_path_ds_stat_cfg,
+    &group_info_ae_path_ds_stat_cfg,
+    &group_info_ae_path_ds_stat_cfg,
+    &group_info_ae_path_ds_stat_cfg,
+    &group_info_ae_path_ds_stat_cfg,
+    &group_info_ae_path_ds_stat_cfg,
+    &group_info_ae_path_ds_stat_cfg,
+    &group_info_ae_path_ds_stat_alarm_cleared,
+    &group_info_ae_path_ds_stat_alarm_raised,
+    &group_info_ae_path_ds_auto_cfg,
+    &group_info_ae_path_us_key,
+    &group_info_ae_path_us_stat,
+    &group_info_ae_path_us_stat_cfg,
+    &group_info_ae_path_us_stat_cfg,
+    &group_info_ae_path_us_stat_cfg,
+    &group_info_ae_path_us_stat_cfg,
+    &group_info_ae_path_us_stat_cfg,
+    &group_info_ae_path_us_stat_cfg,
+    &group_info_ae_path_us_stat_cfg,
+    &group_info_ae_path_us_stat_cfg,
+    &group_info_ae_path_us_stat_cfg,
+    &group_info_ae_path_us_stat_cfg,
+    &group_info_ae_path_us_stat_cfg,
+    &group_info_ae_path_us_stat_cfg,
+    &group_info_ae_path_us_stat_cfg,
+    &group_info_ae_path_us_stat_cfg,
+    &group_info_ae_path_us_stat_cfg,
+    &group_info_ae_path_us_stat_cfg,
+    &group_info_ae_path_us_stat_cfg,
+    &group_info_ae_path_us_stat_cfg,
+    &group_info_ae_path_us_stat_cfg,
+    &group_info_ae_path_us_stat_cfg,
+    &group_info_ae_path_us_stat_alarm_cleared,
+    &group_info_ae_path_us_stat_alarm_raised,
+    &group_info_ae_path_us_auto_cfg,
+    &group_info_channel_key,
+    &group_info_channel_cfg,
+    &group_info_debug_key,
+    &group_info_debug_cfg,
+    &group_info_debug_cli_output,
+    &group_info_debug_file_almost_full,
+    &group_info_debug_auto_cfg,
+    &group_info_debug_cli_input,
+    &group_info_debug_reset_api_capture,
+    &group_info_debug_start_api_capture,
+    &group_info_debug_stop_api_capture,
+    &group_info_device_key,
+    &group_info_device_cfg,
+    &group_info_device_connection_complete,
+    &group_info_device_connection_established,
+    &group_info_device_connection_failure,
+    &group_info_device_ddr_test_complete,
+    &group_info_device_device_keep_alive,
+    &group_info_device_device_ready,
+    &group_info_device_disconnection_complete,
+    &group_info_device_image_transfer_complete,
+    &group_info_device_indications_dropped,
+    &group_info_device_sw_error,
+    &group_info_device_sw_exception,
+    &group_info_device_auto_cfg,
+    &group_info_device_connect,
+    &group_info_device_disconnect,
+    &group_info_device_host_keep_alive,
+    &group_info_device_image_transfer_data,
+    &group_info_device_image_transfer_start,
+    &group_info_device_reset,
+    &group_info_device_run_ddr_test,
+    &group_info_device_sw_upgrade_activate,
+    &group_info_epon_denied_link_key,
+    &group_info_epon_denied_link_cfg,
+    &group_info_epon_denied_link_laser_on_off_violation,
+    &group_info_epon_denied_link_llid_pool_empty_violation,
+    &group_info_epon_denied_link_max_link_violation,
+    &group_info_epon_denied_link_overhead_profile_violation,
+    &group_info_epon_denied_link_range_violation,
+    &group_info_epon_denied_link_rogue_violation,
+    &group_info_epon_denied_link_system_resource_violation,
+    &group_info_epon_denied_link_tdm_channels_exhausted,
+    &group_info_epon_denied_link_unknown_link_violation,
+    &group_info_epon_denied_link_upstream_bandwidth_violation,
+    &group_info_epon_denied_link_auto_cfg,
+    &group_info_epon_link_key,
+    &group_info_epon_link_cfg,
+    &group_info_epon_link_stat,
+    &group_info_epon_link_stat_cfg,
+    &group_info_epon_link_stat_cfg,
+    &group_info_epon_link_stat_cfg,
+    &group_info_epon_link_stat_cfg,
+    &group_info_epon_link_stat_cfg,
+    &group_info_epon_link_stat_cfg,
+    &group_info_epon_link_stat_cfg,
+    &group_info_epon_link_stat_cfg,
+    &group_info_epon_link_stat_cfg,
+    &group_info_epon_link_stat_cfg,
+    &group_info_epon_link_stat_cfg,
+    &group_info_epon_link_stat_cfg,
+    &group_info_epon_link_stat_cfg,
+    &group_info_epon_link_stat_cfg,
+    &group_info_epon_link_stat_cfg,
+    &group_info_epon_link_stat_cfg,
+    &group_info_epon_link_stat_cfg,
+    &group_info_epon_link_stat_cfg,
+    &group_info_epon_link_stat_cfg,
+    &group_info_epon_link_stat_cfg,
+    &group_info_epon_link_stat_cfg,
+    &group_info_epon_link_stat_cfg,
+    &group_info_epon_link_stat_cfg,
+    &group_info_epon_link_stat_cfg,
+    &group_info_epon_link_stat_cfg,
+    &group_info_epon_link_stat_cfg,
+    &group_info_epon_link_stat_cfg,
+    &group_info_epon_link_stat_cfg,
+    &group_info_epon_link_stat_cfg,
+    &group_info_epon_link_stat_cfg,
+    &group_info_epon_link_stat_cfg,
+    &group_info_epon_link_stat_cfg,
+    &group_info_epon_link_stat_cfg,
+    &group_info_epon_link_stat_cfg,
+    &group_info_epon_link_stat_cfg,
+    &group_info_epon_link_stat_cfg,
+    &group_info_epon_link_stat_cfg,
+    &group_info_epon_link_stat_cfg,
+    &group_info_epon_link_stat_cfg,
+    &group_info_epon_link_stat_cfg,
+    &group_info_epon_link_stat_cfg,
+    &group_info_epon_link_stat_cfg,
+    &group_info_epon_link_stat_cfg,
+    &group_info_epon_link_duplicate_mpcp_registration_request,
+    &group_info_epon_link_encryption_enabled,
+    &group_info_epon_link_key_exchange_failure,
+    &group_info_epon_link_key_exchange_started,
+    &group_info_epon_link_key_exchange_stopped,
+    &group_info_epon_link_link_deleted,
+    &group_info_epon_link_link_speed_mismatch,
+    &group_info_epon_link_mpcp_deregistered,
+    &group_info_epon_link_mpcp_discovered,
+    &group_info_epon_link_mpcp_reg_ack_timeout,
+    &group_info_epon_link_mpcp_report_timeout,
+    &group_info_epon_link_oam_keepalive_timeout,
+    &group_info_epon_link_oam_keepalive_timer_started,
+    &group_info_epon_link_oam_keepalive_timer_stopped,
+    &group_info_epon_link_preprovisioned_link_created,
+    &group_info_epon_link_protection_switch_occurred,
+    &group_info_epon_link_range_value_changed,
+    &group_info_epon_link_rerange_failure,
+    &group_info_epon_link_stat_alarm_cleared,
+    &group_info_epon_link_stat_alarm_raised,
+    &group_info_epon_link_static_registration_done,
+    &group_info_epon_link_auto_cfg,
+    &group_info_epon_link_delete_link,
+    &group_info_epon_link_force_rediscovery,
+    &group_info_epon_link_key_exchange_start,
+    &group_info_epon_link_key_exchange_stop,
+    &group_info_epon_link_oam_keepalive_timer_start,
+    &group_info_epon_link_oam_keepalive_timer_stop,
+    &group_info_epon_link_static_registration,
+    &group_info_epon_link_inject_frame,
+    &group_info_epon_link_frame_captured,
+    &group_info_epon_ni_key,
+    &group_info_epon_ni_cfg,
+    &group_info_epon_ni_auto_rogue_scan_10g_failure,
+    &group_info_epon_ni_auto_rogue_scan_1g_failure,
+    &group_info_epon_ni_llid_quarantined,
+    &group_info_epon_ni_mpcp_timestamp_changed,
+    &group_info_epon_ni_no_reports,
+    &group_info_epon_ni_onu_upgrade_complete,
+    &group_info_epon_ni_rerange_failure,
+    &group_info_epon_ni_rogue_scan_complete,
+    &group_info_epon_ni_rssi_measurement_completed,
+    &group_info_epon_ni_state_change_completed,
+    &group_info_epon_ni_auto_cfg,
+    &group_info_epon_ni_add_link,
+    &group_info_epon_ni_add_multicast_link,
+    &group_info_epon_ni_add_protected_standby_link,
+    &group_info_epon_ni_issue_rssi_grant,
+    &group_info_epon_ni_protection_switching_apply_rerange_delta,
+    &group_info_epon_ni_rogue_llid_scan,
+    &group_info_epon_ni_set_epon_ni_en_state,
+    &group_info_epon_ni_start_onu_upgrade,
+    &group_info_epon_onu_10g_us_key,
+    &group_info_epon_onu_10g_us_cfg,
+    &group_info_epon_onu_10g_us_stat,
+    &group_info_epon_onu_10g_us_stat_cfg,
+    &group_info_epon_onu_10g_us_stat_cfg,
+    &group_info_epon_onu_10g_us_stat_cfg,
+    &group_info_epon_onu_10g_us_stat_cfg,
+    &group_info_epon_onu_10g_us_stat_alarm_cleared,
+    &group_info_epon_onu_10g_us_stat_alarm_raised,
+    &group_info_epon_onu_10g_us_auto_cfg,
+    &group_info_epon_onu_1g_us_key,
+    &group_info_epon_onu_1g_us_cfg,
+    &group_info_epon_onu_1g_us_stat,
+    &group_info_epon_onu_1g_us_stat_cfg,
+    &group_info_epon_onu_1g_us_stat_cfg,
+    &group_info_epon_onu_1g_us_stat_cfg,
+    &group_info_epon_onu_1g_us_stat_cfg,
+    &group_info_epon_onu_1g_us_stat_cfg,
+    &group_info_epon_onu_1g_us_stat_cfg,
+    &group_info_epon_onu_1g_us_stat_cfg,
+    &group_info_epon_onu_1g_us_stat_cfg,
+    &group_info_epon_onu_1g_us_stat_cfg,
+    &group_info_epon_onu_1g_us_stat_cfg,
+    &group_info_epon_onu_1g_us_stat_cfg,
+    &group_info_epon_onu_1g_us_stat_cfg,
+    &group_info_epon_onu_1g_us_stat_cfg,
+    &group_info_epon_onu_1g_us_stat_cfg,
+    &group_info_epon_onu_1g_us_stat_cfg,
+    &group_info_epon_onu_1g_us_stat_cfg,
+    &group_info_epon_onu_1g_us_stat_alarm_cleared,
+    &group_info_epon_onu_1g_us_stat_alarm_raised,
+    &group_info_epon_onu_1g_us_auto_cfg,
+    &group_info_epon_path_10g_ds_key,
+    &group_info_epon_path_10g_ds_cfg,
+    &group_info_epon_path_10g_ds_stat,
+    &group_info_epon_path_10g_ds_stat_cfg,
+    &group_info_epon_path_10g_ds_stat_cfg,
+    &group_info_epon_path_10g_ds_stat_cfg,
+    &group_info_epon_path_10g_ds_stat_cfg,
+    &group_info_epon_path_10g_ds_stat_cfg,
+    &group_info_epon_path_10g_ds_stat_cfg,
+    &group_info_epon_path_10g_ds_stat_cfg,
+    &group_info_epon_path_10g_ds_stat_cfg,
+    &group_info_epon_path_10g_ds_stat_cfg,
+    &group_info_epon_path_10g_ds_stat_cfg,
+    &group_info_epon_path_10g_ds_stat_cfg,
+    &group_info_epon_path_10g_ds_stat_cfg,
+    &group_info_epon_path_10g_ds_stat_cfg,
+    &group_info_epon_path_10g_ds_stat_cfg,
+    &group_info_epon_path_10g_ds_stat_cfg,
+    &group_info_epon_path_10g_ds_stat_cfg,
+    &group_info_epon_path_10g_ds_stat_cfg,
+    &group_info_epon_path_10g_ds_stat_cfg,
+    &group_info_epon_path_10g_ds_stat_cfg,
+    &group_info_epon_path_10g_ds_stat_cfg,
+    &group_info_epon_path_10g_ds_stat_cfg,
+    &group_info_epon_path_10g_ds_stat_alarm_cleared,
+    &group_info_epon_path_10g_ds_stat_alarm_raised,
+    &group_info_epon_path_10g_ds_auto_cfg,
+    &group_info_epon_path_10g_us_key,
+    &group_info_epon_path_10g_us_cfg,
+    &group_info_epon_path_10g_us_stat,
+    &group_info_epon_path_10g_us_stat_cfg,
+    &group_info_epon_path_10g_us_stat_cfg,
+    &group_info_epon_path_10g_us_stat_cfg,
+    &group_info_epon_path_10g_us_stat_cfg,
+    &group_info_epon_path_10g_us_stat_cfg,
+    &group_info_epon_path_10g_us_stat_cfg,
+    &group_info_epon_path_10g_us_stat_cfg,
+    &group_info_epon_path_10g_us_stat_cfg,
+    &group_info_epon_path_10g_us_stat_cfg,
+    &group_info_epon_path_10g_us_stat_cfg,
+    &group_info_epon_path_10g_us_stat_cfg,
+    &group_info_epon_path_10g_us_stat_cfg,
+    &group_info_epon_path_10g_us_stat_cfg,
+    &group_info_epon_path_10g_us_stat_cfg,
+    &group_info_epon_path_10g_us_stat_cfg,
+    &group_info_epon_path_10g_us_stat_cfg,
+    &group_info_epon_path_10g_us_stat_cfg,
+    &group_info_epon_path_10g_us_stat_cfg,
+    &group_info_epon_path_10g_us_stat_cfg,
+    &group_info_epon_path_10g_us_stat_cfg,
+    &group_info_epon_path_10g_us_stat_cfg,
+    &group_info_epon_path_10g_us_stat_cfg,
+    &group_info_epon_path_10g_us_stat_cfg,
+    &group_info_epon_path_10g_us_stat_cfg,
+    &group_info_epon_path_10g_us_stat_cfg,
+    &group_info_epon_path_10g_us_stat_cfg,
+    &group_info_epon_path_10g_us_stat_alarm_cleared,
+    &group_info_epon_path_10g_us_stat_alarm_raised,
+    &group_info_epon_path_10g_us_auto_cfg,
+    &group_info_epon_path_1g_ds_key,
+    &group_info_epon_path_1g_ds_cfg,
+    &group_info_epon_path_1g_ds_stat,
+    &group_info_epon_path_1g_ds_stat_cfg,
+    &group_info_epon_path_1g_ds_stat_cfg,
+    &group_info_epon_path_1g_ds_stat_cfg,
+    &group_info_epon_path_1g_ds_stat_cfg,
+    &group_info_epon_path_1g_ds_stat_cfg,
+    &group_info_epon_path_1g_ds_stat_cfg,
+    &group_info_epon_path_1g_ds_stat_cfg,
+    &group_info_epon_path_1g_ds_stat_cfg,
+    &group_info_epon_path_1g_ds_stat_cfg,
+    &group_info_epon_path_1g_ds_stat_cfg,
+    &group_info_epon_path_1g_ds_stat_cfg,
+    &group_info_epon_path_1g_ds_stat_cfg,
+    &group_info_epon_path_1g_ds_stat_cfg,
+    &group_info_epon_path_1g_ds_stat_cfg,
+    &group_info_epon_path_1g_ds_stat_cfg,
+    &group_info_epon_path_1g_ds_stat_cfg,
+    &group_info_epon_path_1g_ds_stat_cfg,
+    &group_info_epon_path_1g_ds_stat_cfg,
+    &group_info_epon_path_1g_ds_stat_cfg,
+    &group_info_epon_path_1g_ds_stat_cfg,
+    &group_info_epon_path_1g_ds_stat_cfg,
+    &group_info_epon_path_1g_ds_stat_alarm_cleared,
+    &group_info_epon_path_1g_ds_stat_alarm_raised,
+    &group_info_epon_path_1g_ds_auto_cfg,
+    &group_info_epon_path_1g_us_key,
+    &group_info_epon_path_1g_us_cfg,
+    &group_info_epon_path_1g_us_stat,
+    &group_info_epon_path_1g_us_stat_cfg,
+    &group_info_epon_path_1g_us_stat_cfg,
+    &group_info_epon_path_1g_us_stat_cfg,
+    &group_info_epon_path_1g_us_stat_cfg,
+    &group_info_epon_path_1g_us_stat_cfg,
+    &group_info_epon_path_1g_us_stat_cfg,
+    &group_info_epon_path_1g_us_stat_cfg,
+    &group_info_epon_path_1g_us_stat_cfg,
+    &group_info_epon_path_1g_us_stat_cfg,
+    &group_info_epon_path_1g_us_stat_cfg,
+    &group_info_epon_path_1g_us_stat_cfg,
+    &group_info_epon_path_1g_us_stat_cfg,
+    &group_info_epon_path_1g_us_stat_cfg,
+    &group_info_epon_path_1g_us_stat_cfg,
+    &group_info_epon_path_1g_us_stat_cfg,
+    &group_info_epon_path_1g_us_stat_cfg,
+    &group_info_epon_path_1g_us_stat_cfg,
+    &group_info_epon_path_1g_us_stat_cfg,
+    &group_info_epon_path_1g_us_stat_cfg,
+    &group_info_epon_path_1g_us_stat_cfg,
+    &group_info_epon_path_1g_us_stat_cfg,
+    &group_info_epon_path_1g_us_stat_cfg,
+    &group_info_epon_path_1g_us_stat_cfg,
+    &group_info_epon_path_1g_us_stat_cfg,
+    &group_info_epon_path_1g_us_stat_cfg,
+    &group_info_epon_path_1g_us_stat_cfg,
+    &group_info_epon_path_1g_us_stat_alarm_cleared,
+    &group_info_epon_path_1g_us_stat_alarm_raised,
+    &group_info_epon_path_1g_us_auto_cfg,
+    &group_info_epon_rp_key,
+    &group_info_epon_rp_cfg,
+    &group_info_gpio_key,
+    &group_info_gpio_cfg,
+    &group_info_gpon_alloc_key,
+    &group_info_gpon_alloc_cfg,
+    &group_info_gpon_alloc_stat,
+    &group_info_gpon_alloc_stat_cfg,
+    &group_info_gpon_alloc_configuration_completed,
+    &group_info_gpon_alloc_get_alloc_stats_completed,
+    &group_info_gpon_alloc_stat_alarm_cleared,
+    &group_info_gpon_alloc_stat_alarm_raised,
+    &group_info_gpon_alloc_auto_cfg,
+    &group_info_gpon_alloc_get_stats,
+    &group_info_gpon_alloc_set_state,
+    &group_info_gpon_gem_port_key,
+    &group_info_gpon_gem_port_cfg,
+    &group_info_gpon_gem_port_stat,
+    &group_info_gpon_gem_port_stat_cfg,
+    &group_info_gpon_gem_port_stat_cfg,
+    &group_info_gpon_gem_port_stat_cfg,
+    &group_info_gpon_gem_port_stat_cfg,
+    &group_info_gpon_gem_port_configuration_completed,
+    &group_info_gpon_gem_port_stat_alarm_cleared,
+    &group_info_gpon_gem_port_stat_alarm_raised,
+    &group_info_gpon_gem_port_auto_cfg,
+    &group_info_gpon_gem_port_set_state,
+    &group_info_gpon_iwf_key,
+    &group_info_gpon_iwf_cfg,
+    &group_info_gpon_iwf_stat,
+    &group_info_gpon_iwf_stat_cfg,
+    &group_info_gpon_iwf_stat_cfg,
+    &group_info_gpon_iwf_stat_cfg,
+    &group_info_gpon_iwf_stat_cfg,
+    &group_info_gpon_iwf_stat_cfg,
+    &group_info_gpon_iwf_stat_cfg,
+    &group_info_gpon_iwf_stat_cfg,
+    &group_info_gpon_iwf_stat_cfg,
+    &group_info_gpon_iwf_flush_mac_table_completed,
+    &group_info_gpon_iwf_scan_mac_table_completed,
+    &group_info_gpon_iwf_stat_alarm_cleared,
+    &group_info_gpon_iwf_stat_alarm_raised,
+    &group_info_gpon_iwf_auto_cfg,
+    &group_info_gpon_iwf_flush_mac_table,
+    &group_info_gpon_iwf_scan_mac_table,
+    &group_info_gpon_iwf_ds_egress_flow_key,
+    &group_info_gpon_iwf_ds_egress_flow_cfg,
+    &group_info_gpon_iwf_ds_ingress_flow_key,
+    &group_info_gpon_iwf_ds_ingress_flow_cfg,
+    &group_info_gpon_iwf_mac_table_key,
+    &group_info_gpon_iwf_mac_table_cfg,
+    &group_info_gpon_iwf_mac_table_mac_aged,
+    &group_info_gpon_iwf_mac_table_mac_dropped,
+    &group_info_gpon_iwf_mac_table_mac_move,
+    &group_info_gpon_iwf_mac_table_new_mac,
+    &group_info_gpon_iwf_mac_table_auto_cfg,
+    &group_info_gpon_iwf_us_flow_key,
+    &group_info_gpon_iwf_us_flow_cfg,
+    &group_info_gpon_ni_key,
+    &group_info_gpon_ni_cfg,
+    &group_info_gpon_ni_stat,
+    &group_info_gpon_ni_stat_cfg,
+    &group_info_gpon_ni_stat_cfg,
+    &group_info_gpon_ni_stat_cfg,
+    &group_info_gpon_ni_stat_cfg,
+    &group_info_gpon_ni_stat_cfg,
+    &group_info_gpon_ni_stat_cfg,
+    &group_info_gpon_ni_stat_cfg,
+    &group_info_gpon_ni_stat_cfg,
+    &group_info_gpon_ni_stat_cfg,
+    &group_info_gpon_ni_stat_cfg,
+    &group_info_gpon_ni_stat_cfg,
+    &group_info_gpon_ni_stat_cfg,
+    &group_info_gpon_ni_stat_cfg,
+    &group_info_gpon_ni_stat_cfg,
+    &group_info_gpon_ni_stat_cfg,
+    &group_info_gpon_ni_stat_cfg,
+    &group_info_gpon_ni_stat_cfg,
+    &group_info_gpon_ni_stat_cfg,
+    &group_info_gpon_ni_stat_cfg,
+    &group_info_gpon_ni_stat_cfg,
+    &group_info_gpon_ni_stat_cfg,
+    &group_info_gpon_ni_stat_cfg,
+    &group_info_gpon_ni_stat_cfg,
+    &group_info_gpon_ni_stat_cfg,
+    &group_info_gpon_ni_stat_cfg,
+    &group_info_gpon_ni_stat_cfg,
+    &group_info_gpon_ni_stat_cfg,
+    &group_info_gpon_ni_stat_cfg,
+    &group_info_gpon_ni_stat_cfg,
+    &group_info_gpon_ni_stat_cfg,
+    &group_info_gpon_ni_stat_cfg,
+    &group_info_gpon_ni_stat_cfg,
+    &group_info_gpon_ni_stat_cfg,
+    &group_info_gpon_ni_stat_cfg,
+    &group_info_gpon_ni_activate_all_onus_completed,
+    &group_info_gpon_ni_cpu_packets_failure,
+    &group_info_gpon_ni_deactivate_all_onus_completed,
+    &group_info_gpon_ni_disable_all_onus_completed,
+    &group_info_gpon_ni_enable_all_onus_completed,
+    &group_info_gpon_ni_los,
+    &group_info_gpon_ni_onu_discovered,
+    &group_info_gpon_ni_onu_upgrade_complete,
+    &group_info_gpon_ni_protection_switching_onus_ranged,
+    &group_info_gpon_ni_protection_switching_switchover_completed,
+    &group_info_gpon_ni_protection_switching_traffic_resume,
+    &group_info_gpon_ni_rogue_detection_completed,
+    &group_info_gpon_ni_rogue_onu_special_map_cycle_start,
+    &group_info_gpon_ni_serial_number_acquisition_cycle_start,
+    &group_info_gpon_ni_standby_pon_monitoring_cycle_completed,
+    &group_info_gpon_ni_stat_alarm_cleared,
+    &group_info_gpon_ni_stat_alarm_raised,
+    &group_info_gpon_ni_state_change_completed,
+    &group_info_gpon_ni_tod_request_completed,
+    &group_info_gpon_ni_auto_cfg,
+    &group_info_gpon_ni_disable_serial_number,
+    &group_info_gpon_ni_protection_switching_type_c_set_multiple_onu_state,
+    &group_info_gpon_ni_reset,
+    &group_info_gpon_ni_rogue_detection_window,
+    &group_info_gpon_ni_set_onu_state,
+    &group_info_gpon_ni_set_pon_state,
+    &group_info_gpon_ni_single_request_standby_pon_monitoring,
+    &group_info_gpon_ni_start_onu_upgrade,
+    &group_info_gpon_ni_tod_request,
+    &group_info_gpon_ni_broadcast_ploam_packet,
+    &group_info_gpon_ni_cpu_packets,
+    &group_info_gpon_onu_key,
+    &group_info_gpon_onu_cfg,
+    &group_info_gpon_onu_stat,
+    &group_info_gpon_onu_stat_cfg,
+    &group_info_gpon_onu_stat_cfg,
+    &group_info_gpon_onu_stat_cfg,
+    &group_info_gpon_onu_stat_cfg,
+    &group_info_gpon_onu_stat_cfg,
+    &group_info_gpon_onu_stat_cfg,
+    &group_info_gpon_onu_stat_cfg,
+    &group_info_gpon_onu_stat_cfg,
+    &group_info_gpon_onu_stat_cfg,
+    &group_info_gpon_onu_stat_cfg,
+    &group_info_gpon_onu_stat_cfg,
+    &group_info_gpon_onu_stat_cfg,
+    &group_info_gpon_onu_stat_cfg,
+    &group_info_gpon_onu_stat_cfg,
+    &group_info_gpon_onu_stat_cfg,
+    &group_info_gpon_onu_stat_cfg,
+    &group_info_gpon_onu_stat_cfg,
+    &group_info_gpon_onu_stat_cfg,
+    &group_info_gpon_onu_stat_cfg,
+    &group_info_gpon_onu_stat_cfg,
+    &group_info_gpon_onu_ber_interval_configuration_completed,
+    &group_info_gpon_onu_dfi,
+    &group_info_gpon_onu_dgi,
+    &group_info_gpon_onu_dowi,
+    &group_info_gpon_onu_err,
+    &group_info_gpon_onu_invalid_dbru_report,
+    &group_info_gpon_onu_key_exchange_completed,
+    &group_info_gpon_onu_key_exchange_cycle_skipped,
+    &group_info_gpon_onu_key_exchange_decrypt_required,
+    &group_info_gpon_onu_key_exchange_key_mismatch,
+    &group_info_gpon_onu_key_exchange_key_request_timeout,
+    &group_info_gpon_onu_key_exchange_unconsecutive_index,
+    &group_info_gpon_onu_loai,
+    &group_info_gpon_onu_loki,
+    &group_info_gpon_onu_memi,
+    &group_info_gpon_onu_omci_port_id_configuration_completed,
+    &group_info_gpon_onu_onu_activation_completed,
+    &group_info_gpon_onu_onu_activation_standby_completed,
+    &group_info_gpon_onu_onu_alarm,
+    &group_info_gpon_onu_onu_deactivation_completed,
+    &group_info_gpon_onu_onu_disable_completed,
+    &group_info_gpon_onu_onu_enable_completed,
+    &group_info_gpon_onu_optical_reflection,
+    &group_info_gpon_onu_password_authentication_completed,
+    &group_info_gpon_onu_pee,
+    &group_info_gpon_onu_possible_drift,
+    &group_info_gpon_onu_power_management_state_change,
+    &group_info_gpon_onu_pst,
+    &group_info_gpon_onu_ranging_completed,
+    &group_info_gpon_onu_rei,
+    &group_info_gpon_onu_rssi_measurement_completed,
+    &group_info_gpon_onu_sdi,
+    &group_info_gpon_onu_sfi,
+    &group_info_gpon_onu_stat_alarm_cleared,
+    &group_info_gpon_onu_stat_alarm_raised,
+    &group_info_gpon_onu_sufi,
+    &group_info_gpon_onu_tiwi,
+    &group_info_gpon_onu_auto_cfg,
+    &group_info_gpon_onu_change_power_level,
+    &group_info_gpon_onu_rssi_measurement,
+    &group_info_gpon_onu_set_onu_state,
+    &group_info_gpon_onu_cpu_packets,
+    &group_info_gpon_onu_ploam_packet,
+    &group_info_gpon_onu_cpu_packet,
+    &group_info_gpon_onu_omci_packet,
+    &group_info_gpon_trx_key,
+    &group_info_gpon_trx_cfg,
+    &group_info_log_entry_key,
+    &group_info_log_entry_cfg,
+    &group_info_log_entry_stat,
+    &group_info_log_entry_stat_cfg,
+    &group_info_log_entry_stat_cfg,
+    &group_info_log_entry_stat_alarm_cleared,
+    &group_info_log_entry_stat_alarm_raised,
+    &group_info_log_entry_auto_cfg,
+    &group_info_logger_key,
+    &group_info_logger_cfg,
+    &group_info_logger_stat,
+    &group_info_logger_stat_cfg,
+    &group_info_logger_stat_alarm_cleared,
+    &group_info_logger_stat_alarm_raised,
+    &group_info_logger_auto_cfg,
+    &group_info_logger_clear_log,
+    &group_info_nni_key,
+    &group_info_nni_cfg,
+    &group_info_nni_stat,
+    &group_info_nni_stat_cfg,
+    &group_info_nni_stat_cfg,
+    &group_info_nni_stat_cfg,
+    &group_info_nni_stat_cfg,
+    &group_info_nni_stat_cfg,
+    &group_info_nni_stat_cfg,
+    &group_info_nni_stat_cfg,
+    &group_info_nni_stat_cfg,
+    &group_info_nni_stat_cfg,
+    &group_info_nni_stat_cfg,
+    &group_info_nni_stat_cfg,
+    &group_info_nni_stat_cfg,
+    &group_info_nni_stat_cfg,
+    &group_info_nni_stat_cfg,
+    &group_info_nni_stat_cfg,
+    &group_info_nni_stat_cfg,
+    &group_info_nni_stat_cfg,
+    &group_info_nni_stat_cfg,
+    &group_info_nni_stat_cfg,
+    &group_info_nni_stat_cfg,
+    &group_info_nni_stat_cfg,
+    &group_info_nni_stat_cfg,
+    &group_info_nni_stat_cfg,
+    &group_info_nni_stat_cfg,
+    &group_info_nni_stat_cfg,
+    &group_info_nni_stat_cfg,
+    &group_info_nni_stat_cfg,
+    &group_info_nni_stat_cfg,
+    &group_info_nni_stat_cfg,
+    &group_info_nni_stat_cfg,
+    &group_info_nni_stat_cfg,
+    &group_info_nni_stat_cfg,
+    &group_info_nni_stat_cfg,
+    &group_info_nni_stat_cfg,
+    &group_info_nni_stat_cfg,
+    &group_info_nni_stat_cfg,
+    &group_info_nni_stat_cfg,
+    &group_info_nni_stat_cfg,
+    &group_info_nni_stat_cfg,
+    &group_info_nni_stat_cfg,
+    &group_info_nni_stat_cfg,
+    &group_info_nni_stat_cfg,
+    &group_info_nni_stat_cfg,
+    &group_info_nni_stat_cfg,
+    &group_info_nni_stat_cfg,
+    &group_info_nni_stat_cfg,
+    &group_info_nni_stat_cfg,
+    &group_info_nni_stat_cfg,
+    &group_info_nni_stat_cfg,
+    &group_info_nni_stat_cfg,
+    &group_info_nni_stat_cfg,
+    &group_info_nni_stat_cfg,
+    &group_info_nni_stat_cfg,
+    &group_info_nni_stat_cfg,
+    &group_info_nni_stat_cfg,
+    &group_info_nni_stat_cfg,
+    &group_info_nni_stat_cfg,
+    &group_info_nni_stat_cfg,
+    &group_info_nni_stat_cfg,
+    &group_info_nni_stat_cfg,
+    &group_info_nni_stat_cfg,
+    &group_info_nni_stat_cfg,
+    &group_info_nni_stat_cfg,
+    &group_info_nni_stat_alarm_cleared,
+    &group_info_nni_stat_alarm_raised,
+    &group_info_nni_status_changed,
+    &group_info_nni_auto_cfg,
+    &group_info_nni_serdes_key,
+    &group_info_nni_serdes_cfg,
+    &group_info_software_error_key,
+    &group_info_software_error_cfg,
+    &group_info_trx_calibration_key,
+    &group_info_trx_calibration_capture_window_and_statistic_completed,
+    &group_info_trx_calibration_auto_cfg,
+    &group_info_trx_calibration_start_capture_window,
+    &group_info_trx_calibration_stop_capture_window,
+    &group_info_xgpon_alloc_key,
+    &group_info_xgpon_alloc_cfg,
+    &group_info_xgpon_alloc_stat,
+    &group_info_xgpon_alloc_stat_cfg,
+    &group_info_xgpon_alloc_configuration_completed,
+    &group_info_xgpon_alloc_get_alloc_stats_completed,
+    &group_info_xgpon_alloc_stat_alarm_cleared,
+    &group_info_xgpon_alloc_stat_alarm_raised,
+    &group_info_xgpon_alloc_auto_cfg,
+    &group_info_xgpon_alloc_get_stats,
+    &group_info_xgpon_alloc_set_state,
+    &group_info_xgpon_gem_port_key,
+    &group_info_xgpon_gem_port_cfg,
+    &group_info_xgpon_gem_port_stat,
+    &group_info_xgpon_gem_port_stat_cfg,
+    &group_info_xgpon_gem_port_stat_cfg,
+    &group_info_xgpon_gem_port_stat_cfg,
+    &group_info_xgpon_gem_port_stat_cfg,
+    &group_info_xgpon_gem_port_stat_alarm_cleared,
+    &group_info_xgpon_gem_port_stat_alarm_raised,
+    &group_info_xgpon_gem_port_auto_cfg,
+    &group_info_xgpon_iwf_key,
+    &group_info_xgpon_iwf_cfg,
+    &group_info_xgpon_ni_key,
+    &group_info_xgpon_ni_cfg,
+    &group_info_xgpon_ni_stat,
+    &group_info_xgpon_ni_stat_cfg,
+    &group_info_xgpon_ni_stat_cfg,
+    &group_info_xgpon_ni_stat_cfg,
+    &group_info_xgpon_ni_stat_cfg,
+    &group_info_xgpon_ni_stat_cfg,
+    &group_info_xgpon_ni_stat_cfg,
+    &group_info_xgpon_ni_stat_cfg,
+    &group_info_xgpon_ni_stat_cfg,
+    &group_info_xgpon_ni_stat_cfg,
+    &group_info_xgpon_ni_stat_cfg,
+    &group_info_xgpon_ni_stat_cfg,
+    &group_info_xgpon_ni_stat_cfg,
+    &group_info_xgpon_ni_stat_cfg,
+    &group_info_xgpon_ni_stat_cfg,
+    &group_info_xgpon_ni_stat_cfg,
+    &group_info_xgpon_ni_stat_cfg,
+    &group_info_xgpon_ni_stat_cfg,
+    &group_info_xgpon_ni_stat_cfg,
+    &group_info_xgpon_ni_stat_cfg,
+    &group_info_xgpon_ni_stat_cfg,
+    &group_info_xgpon_ni_stat_cfg,
+    &group_info_xgpon_ni_stat_cfg,
+    &group_info_xgpon_ni_stat_cfg,
+    &group_info_xgpon_ni_stat_cfg,
+    &group_info_xgpon_ni_stat_cfg,
+    &group_info_xgpon_ni_stat_cfg,
+    &group_info_xgpon_ni_stat_cfg,
+    &group_info_xgpon_ni_stat_cfg,
+    &group_info_xgpon_ni_stat_cfg,
+    &group_info_xgpon_ni_stat_cfg,
+    &group_info_xgpon_ni_stat_cfg,
+    &group_info_xgpon_ni_stat_cfg,
+    &group_info_xgpon_ni_stat_cfg,
+    &group_info_xgpon_ni_stat_cfg,
+    &group_info_xgpon_ni_stat_cfg,
+    &group_info_xgpon_ni_activate_all_onus_completed,
+    &group_info_xgpon_ni_cpu_packets_failure,
+    &group_info_xgpon_ni_deactivate_all_onus_completed,
+    &group_info_xgpon_ni_disable_all_onus_completed,
+    &group_info_xgpon_ni_enable_all_onus_completed,
+    &group_info_xgpon_ni_los,
+    &group_info_xgpon_ni_onu_discovered,
+    &group_info_xgpon_ni_onu_upgrade_complete,
+    &group_info_xgpon_ni_protection_switching_onus_ranged,
+    &group_info_xgpon_ni_protection_switching_switchover_completed,
+    &group_info_xgpon_ni_protection_switching_traffic_resume,
+    &group_info_xgpon_ni_rogue_detection_completed,
+    &group_info_xgpon_ni_rogue_onu_special_map_cycle_start,
+    &group_info_xgpon_ni_serial_number_acquisition_cycle_start,
+    &group_info_xgpon_ni_standby_pon_monitoring_cycle_completed,
+    &group_info_xgpon_ni_stat_alarm_cleared,
+    &group_info_xgpon_ni_stat_alarm_raised,
+    &group_info_xgpon_ni_state_change_completed,
+    &group_info_xgpon_ni_tod_request_completed,
+    &group_info_xgpon_ni_auto_cfg,
+    &group_info_xgpon_ni_adjust_tx_wavelength,
+    &group_info_xgpon_ni_disable_serial_number,
+    &group_info_xgpon_ni_reset,
+    &group_info_xgpon_ni_rogue_detection_window,
+    &group_info_xgpon_ni_run_special_bw_map,
+    &group_info_xgpon_ni_set_onu_state,
+    &group_info_xgpon_ni_set_pon_state,
+    &group_info_xgpon_ni_single_request_standby_pon_monitoring,
+    &group_info_xgpon_ni_start_onu_upgrade,
+    &group_info_xgpon_ni_tod_request,
+    &group_info_xgpon_ni_broadcast_ploam_packet,
+    &group_info_xgpon_ni_cpu_packets,
+    &group_info_xgpon_onu_key,
+    &group_info_xgpon_onu_cfg,
+    &group_info_xgpon_onu_stat,
+    &group_info_xgpon_onu_stat_cfg,
+    &group_info_xgpon_onu_stat_cfg,
+    &group_info_xgpon_onu_stat_cfg,
+    &group_info_xgpon_onu_stat_cfg,
+    &group_info_xgpon_onu_stat_cfg,
+    &group_info_xgpon_onu_stat_cfg,
+    &group_info_xgpon_onu_stat_cfg,
+    &group_info_xgpon_onu_stat_cfg,
+    &group_info_xgpon_onu_stat_cfg,
+    &group_info_xgpon_onu_stat_cfg,
+    &group_info_xgpon_onu_stat_cfg,
+    &group_info_xgpon_onu_stat_cfg,
+    &group_info_xgpon_onu_stat_cfg,
+    &group_info_xgpon_onu_stat_cfg,
+    &group_info_xgpon_onu_stat_cfg,
+    &group_info_xgpon_onu_stat_cfg,
+    &group_info_xgpon_onu_stat_cfg,
+    &group_info_xgpon_onu_stat_cfg,
+    &group_info_xgpon_onu_stat_cfg,
+    &group_info_xgpon_onu_stat_cfg,
+    &group_info_xgpon_onu_dfi,
+    &group_info_xgpon_onu_dgi,
+    &group_info_xgpon_onu_dowi,
+    &group_info_xgpon_onu_invalid_dbru_report,
+    &group_info_xgpon_onu_key_exchange_completed,
+    &group_info_xgpon_onu_key_exchange_cycle_skipped,
+    &group_info_xgpon_onu_key_exchange_key_mismatch,
+    &group_info_xgpon_onu_key_exchange_key_request_timeout,
+    &group_info_xgpon_onu_looci,
+    &group_info_xgpon_onu_onu_activation_completed,
+    &group_info_xgpon_onu_onu_alarm,
+    &group_info_xgpon_onu_onu_deactivation_completed,
+    &group_info_xgpon_onu_onu_disable_completed,
+    &group_info_xgpon_onu_onu_enable_completed,
+    &group_info_xgpon_onu_onu_tuning_in_completed,
+    &group_info_xgpon_onu_onu_tuning_out_completed,
+    &group_info_xgpon_onu_optical_reflection,
+    &group_info_xgpon_onu_possible_drift,
+    &group_info_xgpon_onu_power_consumption_report,
+    &group_info_xgpon_onu_power_level_report,
+    &group_info_xgpon_onu_power_management_state_change,
+    &group_info_xgpon_onu_pqsi,
+    &group_info_xgpon_onu_ranging_completed,
+    &group_info_xgpon_onu_registration_id,
+    &group_info_xgpon_onu_rssi_measurement_completed,
+    &group_info_xgpon_onu_sdi,
+    &group_info_xgpon_onu_secure_mutual_authentication_failure,
+    &group_info_xgpon_onu_sfi,
+    &group_info_xgpon_onu_stat_alarm_cleared,
+    &group_info_xgpon_onu_stat_alarm_raised,
+    &group_info_xgpon_onu_sufi,
+    &group_info_xgpon_onu_tiwi,
+    &group_info_xgpon_onu_tuning_response,
+    &group_info_xgpon_onu_auto_cfg,
+    &group_info_xgpon_onu_adjust_tx_wavelength,
+    &group_info_xgpon_onu_change_power_levelling,
+    &group_info_xgpon_onu_get_power_consumption,
+    &group_info_xgpon_onu_get_power_level,
+    &group_info_xgpon_onu_onu_tuning_in,
+    &group_info_xgpon_onu_onu_tuning_out,
+    &group_info_xgpon_onu_request_registration,
+    &group_info_xgpon_onu_rssi_measurement,
+    &group_info_xgpon_onu_secure_mutual_authentication,
+    &group_info_xgpon_onu_set_onu_state,
+    &group_info_xgpon_onu_cpu_packets,
+    &group_info_xgpon_onu_ploam_packet,
+    &group_info_xgpon_onu_cpu_packet,
+    &group_info_xgpon_onu_omci_packet,
+    &group_info_xgpon_trx_key,
+    &group_info_xgpon_trx_cfg,
+    &group_info_xpon_serdes_key,
+    &group_info_xpon_serdes_cfg
+};
+static bcmolt_group_id group_ids_ae_ni_key[] = { BCMOLT_GROUP_ID_AE_NI_KEY };
+static bcmolt_group_id group_ids_ae_ni_cfg[] = { BCMOLT_GROUP_ID_AE_NI_CFG };
+static bcmolt_group_id group_ids_ae_ni_oper[] = { BCMOLT_GROUP_ID_AE_NI_SET_AE_NI_EN_STATE };
+static bcmolt_group_id group_ids_ae_path_ds_key[] = { BCMOLT_GROUP_ID_AE_PATH_DS_KEY };
+static bcmolt_group_id group_ids_ae_path_ds_stat[] = { BCMOLT_GROUP_ID_AE_PATH_DS_STAT };
+static bcmolt_group_id group_ids_ae_path_ds_stat_cfg[] = { BCMOLT_GROUP_ID_AE_PATH_DS_STAT_CFG_BYTES, BCMOLT_GROUP_ID_AE_PATH_DS_STAT_CFG_FRAMES, BCMOLT_GROUP_ID_AE_PATH_DS_STAT_CFG_FRAMES_64, BCMOLT_GROUP_ID_AE_PATH_DS_STAT_CFG_FRAMES_65_127, BCMOLT_GROUP_ID_AE_PATH_DS_STAT_CFG_FRAMES_128_255, BCMOLT_GROUP_ID_AE_PATH_DS_STAT_CFG_FRAMES_256_511, BCMOLT_GROUP_ID_AE_PATH_DS_STAT_CFG_FRAMES_512_1023, BCMOLT_GROUP_ID_AE_PATH_DS_STAT_CFG_FRAMES_1024_1518, BCMOLT_GROUP_ID_AE_PATH_DS_STAT_CFG_FRAMES_1519_2047, BCMOLT_GROUP_ID_AE_PATH_DS_STAT_CFG_FRAMES_2048_4095, BCMOLT_GROUP_ID_AE_PATH_DS_STAT_CFG_FRAMES_4096_9216, BCMOLT_GROUP_ID_AE_PATH_DS_STAT_CFG_FRAMES_9217_16383, BCMOLT_GROUP_ID_AE_PATH_DS_STAT_CFG_BROADCAST_FRAMES, BCMOLT_GROUP_ID_AE_PATH_DS_STAT_CFG_DATA_BYTES, BCMOLT_GROUP_ID_AE_PATH_DS_STAT_CFG_MULTICAST_FRAMES, BCMOLT_GROUP_ID_AE_PATH_DS_STAT_CFG_UNICAST_FRAMES, BCMOLT_GROUP_ID_AE_PATH_DS_STAT_CFG_ABORT_FRAMES };
+static bcmolt_group_id group_ids_ae_path_ds_auto[] = { BCMOLT_GROUP_ID_AE_PATH_DS_STAT_ALARM_CLEARED, BCMOLT_GROUP_ID_AE_PATH_DS_STAT_ALARM_RAISED };
+static bcmolt_group_id group_ids_ae_path_ds_auto_cfg[] = { BCMOLT_GROUP_ID_AE_PATH_DS_AUTO_CFG };
+static bcmolt_group_id group_ids_ae_path_us_key[] = { BCMOLT_GROUP_ID_AE_PATH_US_KEY };
+static bcmolt_group_id group_ids_ae_path_us_stat[] = { BCMOLT_GROUP_ID_AE_PATH_US_STAT };
+static bcmolt_group_id group_ids_ae_path_us_stat_cfg[] = { BCMOLT_GROUP_ID_AE_PATH_US_STAT_CFG_BYTES, BCMOLT_GROUP_ID_AE_PATH_US_STAT_CFG_FRAMES, BCMOLT_GROUP_ID_AE_PATH_US_STAT_CFG_FRAMES_64, BCMOLT_GROUP_ID_AE_PATH_US_STAT_CFG_FRAMES_65_127, BCMOLT_GROUP_ID_AE_PATH_US_STAT_CFG_FRAMES_128_255, BCMOLT_GROUP_ID_AE_PATH_US_STAT_CFG_FRAMES_256_511, BCMOLT_GROUP_ID_AE_PATH_US_STAT_CFG_FRAMES_512_1023, BCMOLT_GROUP_ID_AE_PATH_US_STAT_CFG_FRAMES_1024_1518, BCMOLT_GROUP_ID_AE_PATH_US_STAT_CFG_FRAMES_1519_2047, BCMOLT_GROUP_ID_AE_PATH_US_STAT_CFG_FRAMES_2048_4095, BCMOLT_GROUP_ID_AE_PATH_US_STAT_CFG_FRAMES_4096_9216, BCMOLT_GROUP_ID_AE_PATH_US_STAT_CFG_FRAMES_9217_16383, BCMOLT_GROUP_ID_AE_PATH_US_STAT_CFG_BROADCAST_FRAMES, BCMOLT_GROUP_ID_AE_PATH_US_STAT_CFG_DATA_BYTES, BCMOLT_GROUP_ID_AE_PATH_US_STAT_CFG_MULTICAST_FRAMES, BCMOLT_GROUP_ID_AE_PATH_US_STAT_CFG_UNICAST_FRAMES, BCMOLT_GROUP_ID_AE_PATH_US_STAT_CFG_ABORT_FRAMES, BCMOLT_GROUP_ID_AE_PATH_US_STAT_CFG_FCS_ERROR, BCMOLT_GROUP_ID_AE_PATH_US_STAT_CFG_OVERSIZE_ERROR, BCMOLT_GROUP_ID_AE_PATH_US_STAT_CFG_RUNT_ERROR };
+static bcmolt_group_id group_ids_ae_path_us_auto[] = { BCMOLT_GROUP_ID_AE_PATH_US_STAT_ALARM_CLEARED, BCMOLT_GROUP_ID_AE_PATH_US_STAT_ALARM_RAISED };
+static bcmolt_group_id group_ids_ae_path_us_auto_cfg[] = { BCMOLT_GROUP_ID_AE_PATH_US_AUTO_CFG };
+static bcmolt_group_id group_ids_channel_key[] = { BCMOLT_GROUP_ID_CHANNEL_KEY };
+static bcmolt_group_id group_ids_channel_cfg[] = { BCMOLT_GROUP_ID_CHANNEL_CFG };
+static bcmolt_group_id group_ids_debug_key[] = { BCMOLT_GROUP_ID_DEBUG_KEY };
+static bcmolt_group_id group_ids_debug_cfg[] = { BCMOLT_GROUP_ID_DEBUG_CFG };
+static bcmolt_group_id group_ids_debug_auto[] = { BCMOLT_GROUP_ID_DEBUG_CLI_OUTPUT, BCMOLT_GROUP_ID_DEBUG_FILE_ALMOST_FULL };
+static bcmolt_group_id group_ids_debug_auto_cfg[] = { BCMOLT_GROUP_ID_DEBUG_AUTO_CFG };
+static bcmolt_group_id group_ids_debug_oper[] = { BCMOLT_GROUP_ID_DEBUG_CLI_INPUT, BCMOLT_GROUP_ID_DEBUG_RESET_API_CAPTURE, BCMOLT_GROUP_ID_DEBUG_START_API_CAPTURE, BCMOLT_GROUP_ID_DEBUG_STOP_API_CAPTURE };
+static bcmolt_group_id group_ids_device_key[] = { BCMOLT_GROUP_ID_DEVICE_KEY };
+static bcmolt_group_id group_ids_device_cfg[] = { BCMOLT_GROUP_ID_DEVICE_CFG };
+static bcmolt_group_id group_ids_device_auto[] = { BCMOLT_GROUP_ID_DEVICE_CONNECTION_COMPLETE, BCMOLT_GROUP_ID_DEVICE_CONNECTION_ESTABLISHED, BCMOLT_GROUP_ID_DEVICE_CONNECTION_FAILURE, BCMOLT_GROUP_ID_DEVICE_DDR_TEST_COMPLETE, BCMOLT_GROUP_ID_DEVICE_DEVICE_KEEP_ALIVE, BCMOLT_GROUP_ID_DEVICE_DEVICE_READY, BCMOLT_GROUP_ID_DEVICE_DISCONNECTION_COMPLETE, BCMOLT_GROUP_ID_DEVICE_IMAGE_TRANSFER_COMPLETE, BCMOLT_GROUP_ID_DEVICE_INDICATIONS_DROPPED, BCMOLT_GROUP_ID_DEVICE_SW_ERROR, BCMOLT_GROUP_ID_DEVICE_SW_EXCEPTION };
+static bcmolt_group_id group_ids_device_auto_cfg[] = { BCMOLT_GROUP_ID_DEVICE_AUTO_CFG };
+static bcmolt_group_id group_ids_device_oper[] = { BCMOLT_GROUP_ID_DEVICE_CONNECT, BCMOLT_GROUP_ID_DEVICE_DISCONNECT, BCMOLT_GROUP_ID_DEVICE_HOST_KEEP_ALIVE, BCMOLT_GROUP_ID_DEVICE_IMAGE_TRANSFER_DATA, BCMOLT_GROUP_ID_DEVICE_IMAGE_TRANSFER_START, BCMOLT_GROUP_ID_DEVICE_RESET, BCMOLT_GROUP_ID_DEVICE_RUN_DDR_TEST, BCMOLT_GROUP_ID_DEVICE_SW_UPGRADE_ACTIVATE };
+static bcmolt_group_id group_ids_epon_denied_link_key[] = { BCMOLT_GROUP_ID_EPON_DENIED_LINK_KEY };
+static bcmolt_group_id group_ids_epon_denied_link_cfg[] = { BCMOLT_GROUP_ID_EPON_DENIED_LINK_CFG };
+static bcmolt_group_id group_ids_epon_denied_link_auto[] = { BCMOLT_GROUP_ID_EPON_DENIED_LINK_LASER_ON_OFF_VIOLATION, BCMOLT_GROUP_ID_EPON_DENIED_LINK_LLID_POOL_EMPTY_VIOLATION, BCMOLT_GROUP_ID_EPON_DENIED_LINK_MAX_LINK_VIOLATION, BCMOLT_GROUP_ID_EPON_DENIED_LINK_OVERHEAD_PROFILE_VIOLATION, BCMOLT_GROUP_ID_EPON_DENIED_LINK_RANGE_VIOLATION, BCMOLT_GROUP_ID_EPON_DENIED_LINK_ROGUE_VIOLATION, BCMOLT_GROUP_ID_EPON_DENIED_LINK_SYSTEM_RESOURCE_VIOLATION, BCMOLT_GROUP_ID_EPON_DENIED_LINK_TDM_CHANNELS_EXHAUSTED, BCMOLT_GROUP_ID_EPON_DENIED_LINK_UNKNOWN_LINK_VIOLATION, BCMOLT_GROUP_ID_EPON_DENIED_LINK_UPSTREAM_BANDWIDTH_VIOLATION };
+static bcmolt_group_id group_ids_epon_denied_link_auto_cfg[] = { BCMOLT_GROUP_ID_EPON_DENIED_LINK_AUTO_CFG };
+static bcmolt_group_id group_ids_epon_link_key[] = { BCMOLT_GROUP_ID_EPON_LINK_KEY };
+static bcmolt_group_id group_ids_epon_link_cfg[] = { BCMOLT_GROUP_ID_EPON_LINK_CFG };
+static bcmolt_group_id group_ids_epon_link_stat[] = { BCMOLT_GROUP_ID_EPON_LINK_STAT };
+static bcmolt_group_id group_ids_epon_link_stat_cfg[] = { BCMOLT_GROUP_ID_EPON_LINK_STAT_CFG_RX_DATA_BYTES, BCMOLT_GROUP_ID_EPON_LINK_STAT_CFG_RX_DATA_FRAMES, BCMOLT_GROUP_ID_EPON_LINK_STAT_CFG_RX_FRAMES_64, BCMOLT_GROUP_ID_EPON_LINK_STAT_CFG_RX_FRAMES_65_127, BCMOLT_GROUP_ID_EPON_LINK_STAT_CFG_RX_FRAMES_128_255, BCMOLT_GROUP_ID_EPON_LINK_STAT_CFG_RX_FRAMES_256_511, BCMOLT_GROUP_ID_EPON_LINK_STAT_CFG_RX_FRAMES_512_1023, BCMOLT_GROUP_ID_EPON_LINK_STAT_CFG_RX_FRAMES_1024_1518, BCMOLT_GROUP_ID_EPON_LINK_STAT_CFG_RX_FRAMES_1519_2047, BCMOLT_GROUP_ID_EPON_LINK_STAT_CFG_RX_FRAMES_2048_4095, BCMOLT_GROUP_ID_EPON_LINK_STAT_CFG_RX_FRAMES_4096_9216, BCMOLT_GROUP_ID_EPON_LINK_STAT_CFG_RX_FRAMES_9217_16383, BCMOLT_GROUP_ID_EPON_LINK_STAT_CFG_RX_OAM_BYTES, BCMOLT_GROUP_ID_EPON_LINK_STAT_CFG_RX_OAM_FRAMES, BCMOLT_GROUP_ID_EPON_LINK_STAT_CFG_RX_MPCP_FRAMES, BCMOLT_GROUP_ID_EPON_LINK_STAT_CFG_RX_BROADCAST_FRAMES, BCMOLT_GROUP_ID_EPON_LINK_STAT_CFG_RX_UNICAST_FRAMES, BCMOLT_GROUP_ID_EPON_LINK_STAT_CFG_RX_MULTICAST_FRAMES, BCMOLT_GROUP_ID_EPON_LINK_STAT_CFG_RX_REPORT_FRAMES, BCMOLT_GROUP_ID_EPON_LINK_STAT_CFG_RX_FCS_ERROR, BCMOLT_GROUP_ID_EPON_LINK_STAT_CFG_RX_OVERSIZE_ERROR, BCMOLT_GROUP_ID_EPON_LINK_STAT_CFG_RX_RUNT_ERROR, BCMOLT_GROUP_ID_EPON_LINK_STAT_CFG_RX_LINE_CODE_ERROR, BCMOLT_GROUP_ID_EPON_LINK_STAT_CFG_RX_LINE_CODE_ERROR_MAX, BCMOLT_GROUP_ID_EPON_LINK_STAT_CFG_TX_DATA_BYTES, BCMOLT_GROUP_ID_EPON_LINK_STAT_CFG_TX_DATA_FRAMES, BCMOLT_GROUP_ID_EPON_LINK_STAT_CFG_TX_FRAMES_64, BCMOLT_GROUP_ID_EPON_LINK_STAT_CFG_TX_FRAMES_65_127, BCMOLT_GROUP_ID_EPON_LINK_STAT_CFG_TX_FRAMES_128_255, BCMOLT_GROUP_ID_EPON_LINK_STAT_CFG_TX_FRAMES_256_511, BCMOLT_GROUP_ID_EPON_LINK_STAT_CFG_TX_FRAMES_512_1023, BCMOLT_GROUP_ID_EPON_LINK_STAT_CFG_TX_FRAMES_1024_1518, BCMOLT_GROUP_ID_EPON_LINK_STAT_CFG_TX_FRAMES_1519_2047, BCMOLT_GROUP_ID_EPON_LINK_STAT_CFG_TX_FRAMES_2048_4095, BCMOLT_GROUP_ID_EPON_LINK_STAT_CFG_TX_FRAMES_4096_9216, BCMOLT_GROUP_ID_EPON_LINK_STAT_CFG_TX_FRAMES_9217_16383, BCMOLT_GROUP_ID_EPON_LINK_STAT_CFG_TX_OAM_BYTES, BCMOLT_GROUP_ID_EPON_LINK_STAT_CFG_TX_OAM_FRAMES, BCMOLT_GROUP_ID_EPON_LINK_STAT_CFG_TX_MPCP_FRAMES, BCMOLT_GROUP_ID_EPON_LINK_STAT_CFG_TX_BROADCAST_FRAMES, BCMOLT_GROUP_ID_EPON_LINK_STAT_CFG_TX_UNICAST_FRAMES, BCMOLT_GROUP_ID_EPON_LINK_STAT_CFG_TX_MULTICAST_FRAMES, BCMOLT_GROUP_ID_EPON_LINK_STAT_CFG_TX_GATES };
+static bcmolt_group_id group_ids_epon_link_auto[] = { BCMOLT_GROUP_ID_EPON_LINK_DUPLICATE_MPCP_REGISTRATION_REQUEST, BCMOLT_GROUP_ID_EPON_LINK_ENCRYPTION_ENABLED, BCMOLT_GROUP_ID_EPON_LINK_KEY_EXCHANGE_FAILURE, BCMOLT_GROUP_ID_EPON_LINK_KEY_EXCHANGE_STARTED, BCMOLT_GROUP_ID_EPON_LINK_KEY_EXCHANGE_STOPPED, BCMOLT_GROUP_ID_EPON_LINK_LINK_DELETED, BCMOLT_GROUP_ID_EPON_LINK_LINK_SPEED_MISMATCH, BCMOLT_GROUP_ID_EPON_LINK_MPCP_DEREGISTERED, BCMOLT_GROUP_ID_EPON_LINK_MPCP_DISCOVERED, BCMOLT_GROUP_ID_EPON_LINK_MPCP_REG_ACK_TIMEOUT, BCMOLT_GROUP_ID_EPON_LINK_MPCP_REPORT_TIMEOUT, BCMOLT_GROUP_ID_EPON_LINK_OAM_KEEPALIVE_TIMEOUT, BCMOLT_GROUP_ID_EPON_LINK_OAM_KEEPALIVE_TIMER_STARTED, BCMOLT_GROUP_ID_EPON_LINK_OAM_KEEPALIVE_TIMER_STOPPED, BCMOLT_GROUP_ID_EPON_LINK_PREPROVISIONED_LINK_CREATED, BCMOLT_GROUP_ID_EPON_LINK_PROTECTION_SWITCH_OCCURRED, BCMOLT_GROUP_ID_EPON_LINK_RANGE_VALUE_CHANGED, BCMOLT_GROUP_ID_EPON_LINK_RERANGE_FAILURE, BCMOLT_GROUP_ID_EPON_LINK_STAT_ALARM_CLEARED, BCMOLT_GROUP_ID_EPON_LINK_STAT_ALARM_RAISED, BCMOLT_GROUP_ID_EPON_LINK_STATIC_REGISTRATION_DONE };
+static bcmolt_group_id group_ids_epon_link_auto_cfg[] = { BCMOLT_GROUP_ID_EPON_LINK_AUTO_CFG };
+static bcmolt_group_id group_ids_epon_link_oper[] = { BCMOLT_GROUP_ID_EPON_LINK_DELETE_LINK, BCMOLT_GROUP_ID_EPON_LINK_FORCE_REDISCOVERY, BCMOLT_GROUP_ID_EPON_LINK_KEY_EXCHANGE_START, BCMOLT_GROUP_ID_EPON_LINK_KEY_EXCHANGE_STOP, BCMOLT_GROUP_ID_EPON_LINK_OAM_KEEPALIVE_TIMER_START, BCMOLT_GROUP_ID_EPON_LINK_OAM_KEEPALIVE_TIMER_STOP, BCMOLT_GROUP_ID_EPON_LINK_STATIC_REGISTRATION };
+static bcmolt_group_id group_ids_epon_link_proxy[] = { BCMOLT_GROUP_ID_EPON_LINK_INJECT_FRAME };
+static bcmolt_group_id group_ids_epon_link_proxy_rx[] = { BCMOLT_GROUP_ID_EPON_LINK_FRAME_CAPTURED };
+static bcmolt_group_id group_ids_epon_ni_key[] = { BCMOLT_GROUP_ID_EPON_NI_KEY };
+static bcmolt_group_id group_ids_epon_ni_cfg[] = { BCMOLT_GROUP_ID_EPON_NI_CFG };
+static bcmolt_group_id group_ids_epon_ni_auto[] = { BCMOLT_GROUP_ID_EPON_NI_AUTO_ROGUE_SCAN_10G_FAILURE, BCMOLT_GROUP_ID_EPON_NI_AUTO_ROGUE_SCAN_1G_FAILURE, BCMOLT_GROUP_ID_EPON_NI_LLID_QUARANTINED, BCMOLT_GROUP_ID_EPON_NI_MPCP_TIMESTAMP_CHANGED, BCMOLT_GROUP_ID_EPON_NI_NO_REPORTS, BCMOLT_GROUP_ID_EPON_NI_ONU_UPGRADE_COMPLETE, BCMOLT_GROUP_ID_EPON_NI_RERANGE_FAILURE, BCMOLT_GROUP_ID_EPON_NI_ROGUE_SCAN_COMPLETE, BCMOLT_GROUP_ID_EPON_NI_RSSI_MEASUREMENT_COMPLETED, BCMOLT_GROUP_ID_EPON_NI_STATE_CHANGE_COMPLETED };
+static bcmolt_group_id group_ids_epon_ni_auto_cfg[] = { BCMOLT_GROUP_ID_EPON_NI_AUTO_CFG };
+static bcmolt_group_id group_ids_epon_ni_oper[] = { BCMOLT_GROUP_ID_EPON_NI_ADD_LINK, BCMOLT_GROUP_ID_EPON_NI_ADD_MULTICAST_LINK, BCMOLT_GROUP_ID_EPON_NI_ADD_PROTECTED_STANDBY_LINK, BCMOLT_GROUP_ID_EPON_NI_ISSUE_RSSI_GRANT, BCMOLT_GROUP_ID_EPON_NI_PROTECTION_SWITCHING_APPLY_RERANGE_DELTA, BCMOLT_GROUP_ID_EPON_NI_ROGUE_LLID_SCAN, BCMOLT_GROUP_ID_EPON_NI_SET_EPON_NI_EN_STATE, BCMOLT_GROUP_ID_EPON_NI_START_ONU_UPGRADE };
+static bcmolt_group_id group_ids_epon_onu_10g_us_key[] = { BCMOLT_GROUP_ID_EPON_ONU_10G_US_KEY };
+static bcmolt_group_id group_ids_epon_onu_10g_us_cfg[] = { BCMOLT_GROUP_ID_EPON_ONU_10G_US_CFG };
+static bcmolt_group_id group_ids_epon_onu_10g_us_stat[] = { BCMOLT_GROUP_ID_EPON_ONU_10G_US_STAT };
+static bcmolt_group_id group_ids_epon_onu_10g_us_stat_cfg[] = { BCMOLT_GROUP_ID_EPON_ONU_10G_US_STAT_CFG_FEC_CODE_WORDS_TOTAL, BCMOLT_GROUP_ID_EPON_ONU_10G_US_STAT_CFG_FEC_CODE_WORDS_DECODE_FAILS, BCMOLT_GROUP_ID_EPON_ONU_10G_US_STAT_CFG_FEC_ZEROES_CORRECTED, BCMOLT_GROUP_ID_EPON_ONU_10G_US_STAT_CFG_FEC_ONES_CORRECTED };
+static bcmolt_group_id group_ids_epon_onu_10g_us_auto[] = { BCMOLT_GROUP_ID_EPON_ONU_10G_US_STAT_ALARM_CLEARED, BCMOLT_GROUP_ID_EPON_ONU_10G_US_STAT_ALARM_RAISED };
+static bcmolt_group_id group_ids_epon_onu_10g_us_auto_cfg[] = { BCMOLT_GROUP_ID_EPON_ONU_10G_US_AUTO_CFG };
+static bcmolt_group_id group_ids_epon_onu_1g_us_key[] = { BCMOLT_GROUP_ID_EPON_ONU_1G_US_KEY };
+static bcmolt_group_id group_ids_epon_onu_1g_us_cfg[] = { BCMOLT_GROUP_ID_EPON_ONU_1G_US_CFG };
+static bcmolt_group_id group_ids_epon_onu_1g_us_stat[] = { BCMOLT_GROUP_ID_EPON_ONU_1G_US_STAT };
+static bcmolt_group_id group_ids_epon_onu_1g_us_stat_cfg[] = { BCMOLT_GROUP_ID_EPON_ONU_1G_US_STAT_CFG_GOOD_FRAMES, BCMOLT_GROUP_ID_EPON_ONU_1G_US_STAT_CFG_GOOD_BYTES, BCMOLT_GROUP_ID_EPON_ONU_1G_US_STAT_CFG_OVERSZ_FRAMES, BCMOLT_GROUP_ID_EPON_ONU_1G_US_STAT_CFG_NON_FEC_GOOD_FRAMES, BCMOLT_GROUP_ID_EPON_ONU_1G_US_STAT_CFG_NON_FEC_GOOD_BYTES, BCMOLT_GROUP_ID_EPON_ONU_1G_US_STAT_CFG_FEC_GOOD_FRAMES, BCMOLT_GROUP_ID_EPON_ONU_1G_US_STAT_CFG_FEC_GOOD_BYTES, BCMOLT_GROUP_ID_EPON_ONU_1G_US_STAT_CFG_FEC_FRAMES_EXC_ERRS, BCMOLT_GROUP_ID_EPON_ONU_1G_US_STAT_CFG_FEC_BLKS_NO_ERRS, BCMOLT_GROUP_ID_EPON_ONU_1G_US_STAT_CFG_FEC_BLKS_CORR_ERRS, BCMOLT_GROUP_ID_EPON_ONU_1G_US_STAT_CFG_FEC_BLKS_UNCORR_ERRS, BCMOLT_GROUP_ID_EPON_ONU_1G_US_STAT_CFG_FEC_CORR_BYTES, BCMOLT_GROUP_ID_EPON_ONU_1G_US_STAT_CFG_FEC_CORR_ZEROES, BCMOLT_GROUP_ID_EPON_ONU_1G_US_STAT_CFG_FEC_CORR_ONES, BCMOLT_GROUP_ID_EPON_ONU_1G_US_STAT_CFG_UNDERSZ_FRAMES, BCMOLT_GROUP_ID_EPON_ONU_1G_US_STAT_CFG_ERRORSZ_FRAMES };
+static bcmolt_group_id group_ids_epon_onu_1g_us_auto[] = { BCMOLT_GROUP_ID_EPON_ONU_1G_US_STAT_ALARM_CLEARED, BCMOLT_GROUP_ID_EPON_ONU_1G_US_STAT_ALARM_RAISED };
+static bcmolt_group_id group_ids_epon_onu_1g_us_auto_cfg[] = { BCMOLT_GROUP_ID_EPON_ONU_1G_US_AUTO_CFG };
+static bcmolt_group_id group_ids_epon_path_10g_ds_key[] = { BCMOLT_GROUP_ID_EPON_PATH_10G_DS_KEY };
+static bcmolt_group_id group_ids_epon_path_10g_ds_cfg[] = { BCMOLT_GROUP_ID_EPON_PATH_10G_DS_CFG };
+static bcmolt_group_id group_ids_epon_path_10g_ds_stat[] = { BCMOLT_GROUP_ID_EPON_PATH_10G_DS_STAT };
+static bcmolt_group_id group_ids_epon_path_10g_ds_stat_cfg[] = { BCMOLT_GROUP_ID_EPON_PATH_10G_DS_STAT_CFG_BYTES, BCMOLT_GROUP_ID_EPON_PATH_10G_DS_STAT_CFG_FRAMES, BCMOLT_GROUP_ID_EPON_PATH_10G_DS_STAT_CFG_FRAMES_64, BCMOLT_GROUP_ID_EPON_PATH_10G_DS_STAT_CFG_FRAMES_65_127, BCMOLT_GROUP_ID_EPON_PATH_10G_DS_STAT_CFG_FRAMES_128_255, BCMOLT_GROUP_ID_EPON_PATH_10G_DS_STAT_CFG_FRAMES_256_511, BCMOLT_GROUP_ID_EPON_PATH_10G_DS_STAT_CFG_FRAMES_512_1023, BCMOLT_GROUP_ID_EPON_PATH_10G_DS_STAT_CFG_FRAMES_1024_1518, BCMOLT_GROUP_ID_EPON_PATH_10G_DS_STAT_CFG_FRAMES_1519_2047, BCMOLT_GROUP_ID_EPON_PATH_10G_DS_STAT_CFG_FRAMES_2048_4095, BCMOLT_GROUP_ID_EPON_PATH_10G_DS_STAT_CFG_FRAMES_4096_9216, BCMOLT_GROUP_ID_EPON_PATH_10G_DS_STAT_CFG_FRAMES_9217_16383, BCMOLT_GROUP_ID_EPON_PATH_10G_DS_STAT_CFG_BROADCAST_FRAMES, BCMOLT_GROUP_ID_EPON_PATH_10G_DS_STAT_CFG_DATA_BYTES, BCMOLT_GROUP_ID_EPON_PATH_10G_DS_STAT_CFG_MULTICAST_FRAMES, BCMOLT_GROUP_ID_EPON_PATH_10G_DS_STAT_CFG_UNICAST_FRAMES, BCMOLT_GROUP_ID_EPON_PATH_10G_DS_STAT_CFG_OAM_BYTES, BCMOLT_GROUP_ID_EPON_PATH_10G_DS_STAT_CFG_OAM_FRAMES, BCMOLT_GROUP_ID_EPON_PATH_10G_DS_STAT_CFG_GATE_FRAMES, BCMOLT_GROUP_ID_EPON_PATH_10G_DS_STAT_CFG_MPCP_FRAMES, BCMOLT_GROUP_ID_EPON_PATH_10G_DS_STAT_CFG_ABORT_FRAMES };
+static bcmolt_group_id group_ids_epon_path_10g_ds_auto[] = { BCMOLT_GROUP_ID_EPON_PATH_10G_DS_STAT_ALARM_CLEARED, BCMOLT_GROUP_ID_EPON_PATH_10G_DS_STAT_ALARM_RAISED };
+static bcmolt_group_id group_ids_epon_path_10g_ds_auto_cfg[] = { BCMOLT_GROUP_ID_EPON_PATH_10G_DS_AUTO_CFG };
+static bcmolt_group_id group_ids_epon_path_10g_us_key[] = { BCMOLT_GROUP_ID_EPON_PATH_10G_US_KEY };
+static bcmolt_group_id group_ids_epon_path_10g_us_cfg[] = { BCMOLT_GROUP_ID_EPON_PATH_10G_US_CFG };
+static bcmolt_group_id group_ids_epon_path_10g_us_stat[] = { BCMOLT_GROUP_ID_EPON_PATH_10G_US_STAT };
+static bcmolt_group_id group_ids_epon_path_10g_us_stat_cfg[] = { BCMOLT_GROUP_ID_EPON_PATH_10G_US_STAT_CFG_BYTES, BCMOLT_GROUP_ID_EPON_PATH_10G_US_STAT_CFG_FRAMES, BCMOLT_GROUP_ID_EPON_PATH_10G_US_STAT_CFG_FRAMES_64, BCMOLT_GROUP_ID_EPON_PATH_10G_US_STAT_CFG_FRAMES_65_127, BCMOLT_GROUP_ID_EPON_PATH_10G_US_STAT_CFG_FRAMES_128_255, BCMOLT_GROUP_ID_EPON_PATH_10G_US_STAT_CFG_FRAMES_256_511, BCMOLT_GROUP_ID_EPON_PATH_10G_US_STAT_CFG_FRAMES_512_1023, BCMOLT_GROUP_ID_EPON_PATH_10G_US_STAT_CFG_FRAMES_1024_1518, BCMOLT_GROUP_ID_EPON_PATH_10G_US_STAT_CFG_FRAMES_1519_2047, BCMOLT_GROUP_ID_EPON_PATH_10G_US_STAT_CFG_FRAMES_2048_4095, BCMOLT_GROUP_ID_EPON_PATH_10G_US_STAT_CFG_FRAMES_4096_9216, BCMOLT_GROUP_ID_EPON_PATH_10G_US_STAT_CFG_FRAMES_9217_16383, BCMOLT_GROUP_ID_EPON_PATH_10G_US_STAT_CFG_BROADCAST_FRAMES, BCMOLT_GROUP_ID_EPON_PATH_10G_US_STAT_CFG_DATA_BYTES, BCMOLT_GROUP_ID_EPON_PATH_10G_US_STAT_CFG_MULTICAST_FRAMES, BCMOLT_GROUP_ID_EPON_PATH_10G_US_STAT_CFG_UNICAST_FRAMES, BCMOLT_GROUP_ID_EPON_PATH_10G_US_STAT_CFG_MPCP_FRAMES, BCMOLT_GROUP_ID_EPON_PATH_10G_US_STAT_CFG_OAM_BYTES, BCMOLT_GROUP_ID_EPON_PATH_10G_US_STAT_CFG_OAM_FRAMES, BCMOLT_GROUP_ID_EPON_PATH_10G_US_STAT_CFG_REPORT_FRAMES, BCMOLT_GROUP_ID_EPON_PATH_10G_US_STAT_CFG_ABORT_FRAMES, BCMOLT_GROUP_ID_EPON_PATH_10G_US_STAT_CFG_FCS_ERROR, BCMOLT_GROUP_ID_EPON_PATH_10G_US_STAT_CFG_CRC_8_ERROR, BCMOLT_GROUP_ID_EPON_PATH_10G_US_STAT_CFG_OUT_OF_SLOT, BCMOLT_GROUP_ID_EPON_PATH_10G_US_STAT_CFG_OVERSIZE_ERROR, BCMOLT_GROUP_ID_EPON_PATH_10G_US_STAT_CFG_RUNT_ERROR };
+static bcmolt_group_id group_ids_epon_path_10g_us_auto[] = { BCMOLT_GROUP_ID_EPON_PATH_10G_US_STAT_ALARM_CLEARED, BCMOLT_GROUP_ID_EPON_PATH_10G_US_STAT_ALARM_RAISED };
+static bcmolt_group_id group_ids_epon_path_10g_us_auto_cfg[] = { BCMOLT_GROUP_ID_EPON_PATH_10G_US_AUTO_CFG };
+static bcmolt_group_id group_ids_epon_path_1g_ds_key[] = { BCMOLT_GROUP_ID_EPON_PATH_1G_DS_KEY };
+static bcmolt_group_id group_ids_epon_path_1g_ds_cfg[] = { BCMOLT_GROUP_ID_EPON_PATH_1G_DS_CFG };
+static bcmolt_group_id group_ids_epon_path_1g_ds_stat[] = { BCMOLT_GROUP_ID_EPON_PATH_1G_DS_STAT };
+static bcmolt_group_id group_ids_epon_path_1g_ds_stat_cfg[] = { BCMOLT_GROUP_ID_EPON_PATH_1G_DS_STAT_CFG_BYTES, BCMOLT_GROUP_ID_EPON_PATH_1G_DS_STAT_CFG_FRAMES, BCMOLT_GROUP_ID_EPON_PATH_1G_DS_STAT_CFG_FRAMES_64, BCMOLT_GROUP_ID_EPON_PATH_1G_DS_STAT_CFG_FRAMES_65_127, BCMOLT_GROUP_ID_EPON_PATH_1G_DS_STAT_CFG_FRAMES_128_255, BCMOLT_GROUP_ID_EPON_PATH_1G_DS_STAT_CFG_FRAMES_256_511, BCMOLT_GROUP_ID_EPON_PATH_1G_DS_STAT_CFG_FRAMES_512_1023, BCMOLT_GROUP_ID_EPON_PATH_1G_DS_STAT_CFG_FRAMES_1024_1518, BCMOLT_GROUP_ID_EPON_PATH_1G_DS_STAT_CFG_FRAMES_1519_2047, BCMOLT_GROUP_ID_EPON_PATH_1G_DS_STAT_CFG_FRAMES_2048_4095, BCMOLT_GROUP_ID_EPON_PATH_1G_DS_STAT_CFG_FRAMES_4096_9216, BCMOLT_GROUP_ID_EPON_PATH_1G_DS_STAT_CFG_FRAMES_9217_16383, BCMOLT_GROUP_ID_EPON_PATH_1G_DS_STAT_CFG_BROADCAST_FRAMES, BCMOLT_GROUP_ID_EPON_PATH_1G_DS_STAT_CFG_DATA_BYTES, BCMOLT_GROUP_ID_EPON_PATH_1G_DS_STAT_CFG_MULTICAST_FRAMES, BCMOLT_GROUP_ID_EPON_PATH_1G_DS_STAT_CFG_UNICAST_FRAMES, BCMOLT_GROUP_ID_EPON_PATH_1G_DS_STAT_CFG_OAM_BYTES, BCMOLT_GROUP_ID_EPON_PATH_1G_DS_STAT_CFG_OAM_FRAMES, BCMOLT_GROUP_ID_EPON_PATH_1G_DS_STAT_CFG_GATE_FRAMES, BCMOLT_GROUP_ID_EPON_PATH_1G_DS_STAT_CFG_MPCP_FRAMES, BCMOLT_GROUP_ID_EPON_PATH_1G_DS_STAT_CFG_ABORT_FRAMES };
+static bcmolt_group_id group_ids_epon_path_1g_ds_auto[] = { BCMOLT_GROUP_ID_EPON_PATH_1G_DS_STAT_ALARM_CLEARED, BCMOLT_GROUP_ID_EPON_PATH_1G_DS_STAT_ALARM_RAISED };
+static bcmolt_group_id group_ids_epon_path_1g_ds_auto_cfg[] = { BCMOLT_GROUP_ID_EPON_PATH_1G_DS_AUTO_CFG };
+static bcmolt_group_id group_ids_epon_path_1g_us_key[] = { BCMOLT_GROUP_ID_EPON_PATH_1G_US_KEY };
+static bcmolt_group_id group_ids_epon_path_1g_us_cfg[] = { BCMOLT_GROUP_ID_EPON_PATH_1G_US_CFG };
+static bcmolt_group_id group_ids_epon_path_1g_us_stat[] = { BCMOLT_GROUP_ID_EPON_PATH_1G_US_STAT };
+static bcmolt_group_id group_ids_epon_path_1g_us_stat_cfg[] = { BCMOLT_GROUP_ID_EPON_PATH_1G_US_STAT_CFG_BYTES, BCMOLT_GROUP_ID_EPON_PATH_1G_US_STAT_CFG_FRAMES, BCMOLT_GROUP_ID_EPON_PATH_1G_US_STAT_CFG_FRAMES_64, BCMOLT_GROUP_ID_EPON_PATH_1G_US_STAT_CFG_FRAMES_65_127, BCMOLT_GROUP_ID_EPON_PATH_1G_US_STAT_CFG_FRAMES_128_255, BCMOLT_GROUP_ID_EPON_PATH_1G_US_STAT_CFG_FRAMES_256_511, BCMOLT_GROUP_ID_EPON_PATH_1G_US_STAT_CFG_FRAMES_512_1023, BCMOLT_GROUP_ID_EPON_PATH_1G_US_STAT_CFG_FRAMES_1024_1518, BCMOLT_GROUP_ID_EPON_PATH_1G_US_STAT_CFG_FRAMES_1519_2047, BCMOLT_GROUP_ID_EPON_PATH_1G_US_STAT_CFG_FRAMES_2048_4095, BCMOLT_GROUP_ID_EPON_PATH_1G_US_STAT_CFG_FRAMES_4096_9216, BCMOLT_GROUP_ID_EPON_PATH_1G_US_STAT_CFG_FRAMES_9217_16383, BCMOLT_GROUP_ID_EPON_PATH_1G_US_STAT_CFG_BROADCAST_FRAMES, BCMOLT_GROUP_ID_EPON_PATH_1G_US_STAT_CFG_DATA_BYTES, BCMOLT_GROUP_ID_EPON_PATH_1G_US_STAT_CFG_MULTICAST_FRAMES, BCMOLT_GROUP_ID_EPON_PATH_1G_US_STAT_CFG_UNICAST_FRAMES, BCMOLT_GROUP_ID_EPON_PATH_1G_US_STAT_CFG_MPCP_FRAMES, BCMOLT_GROUP_ID_EPON_PATH_1G_US_STAT_CFG_OAM_BYTES, BCMOLT_GROUP_ID_EPON_PATH_1G_US_STAT_CFG_OAM_FRAMES, BCMOLT_GROUP_ID_EPON_PATH_1G_US_STAT_CFG_REPORT_FRAMES, BCMOLT_GROUP_ID_EPON_PATH_1G_US_STAT_CFG_ABORT_FRAMES, BCMOLT_GROUP_ID_EPON_PATH_1G_US_STAT_CFG_FCS_ERROR, BCMOLT_GROUP_ID_EPON_PATH_1G_US_STAT_CFG_CRC_8_ERROR, BCMOLT_GROUP_ID_EPON_PATH_1G_US_STAT_CFG_OUT_OF_SLOT, BCMOLT_GROUP_ID_EPON_PATH_1G_US_STAT_CFG_OVERSIZE_ERROR, BCMOLT_GROUP_ID_EPON_PATH_1G_US_STAT_CFG_RUNT_ERROR };
+static bcmolt_group_id group_ids_epon_path_1g_us_auto[] = { BCMOLT_GROUP_ID_EPON_PATH_1G_US_STAT_ALARM_CLEARED, BCMOLT_GROUP_ID_EPON_PATH_1G_US_STAT_ALARM_RAISED };
+static bcmolt_group_id group_ids_epon_path_1g_us_auto_cfg[] = { BCMOLT_GROUP_ID_EPON_PATH_1G_US_AUTO_CFG };
+static bcmolt_group_id group_ids_epon_rp_key[] = { BCMOLT_GROUP_ID_EPON_RP_KEY };
+static bcmolt_group_id group_ids_epon_rp_cfg[] = { BCMOLT_GROUP_ID_EPON_RP_CFG };
+static bcmolt_group_id group_ids_gpio_key[] = { BCMOLT_GROUP_ID_GPIO_KEY };
+static bcmolt_group_id group_ids_gpio_cfg[] = { BCMOLT_GROUP_ID_GPIO_CFG };
+static bcmolt_group_id group_ids_gpon_alloc_key[] = { BCMOLT_GROUP_ID_GPON_ALLOC_KEY };
+static bcmolt_group_id group_ids_gpon_alloc_cfg[] = { BCMOLT_GROUP_ID_GPON_ALLOC_CFG };
+static bcmolt_group_id group_ids_gpon_alloc_stat[] = { BCMOLT_GROUP_ID_GPON_ALLOC_STAT };
+static bcmolt_group_id group_ids_gpon_alloc_stat_cfg[] = { BCMOLT_GROUP_ID_GPON_ALLOC_STAT_CFG_RX_BYTES };
+static bcmolt_group_id group_ids_gpon_alloc_auto[] = { BCMOLT_GROUP_ID_GPON_ALLOC_CONFIGURATION_COMPLETED, BCMOLT_GROUP_ID_GPON_ALLOC_GET_ALLOC_STATS_COMPLETED, BCMOLT_GROUP_ID_GPON_ALLOC_STAT_ALARM_CLEARED, BCMOLT_GROUP_ID_GPON_ALLOC_STAT_ALARM_RAISED };
+static bcmolt_group_id group_ids_gpon_alloc_auto_cfg[] = { BCMOLT_GROUP_ID_GPON_ALLOC_AUTO_CFG };
+static bcmolt_group_id group_ids_gpon_alloc_oper[] = { BCMOLT_GROUP_ID_GPON_ALLOC_GET_STATS, BCMOLT_GROUP_ID_GPON_ALLOC_SET_STATE };
+static bcmolt_group_id group_ids_gpon_gem_port_key[] = { BCMOLT_GROUP_ID_GPON_GEM_PORT_KEY };
+static bcmolt_group_id group_ids_gpon_gem_port_cfg[] = { BCMOLT_GROUP_ID_GPON_GEM_PORT_CFG };
+static bcmolt_group_id group_ids_gpon_gem_port_stat[] = { BCMOLT_GROUP_ID_GPON_GEM_PORT_STAT };
+static bcmolt_group_id group_ids_gpon_gem_port_stat_cfg[] = { BCMOLT_GROUP_ID_GPON_GEM_PORT_STAT_CFG_RX_PACKETS, BCMOLT_GROUP_ID_GPON_GEM_PORT_STAT_CFG_RX_BYTES, BCMOLT_GROUP_ID_GPON_GEM_PORT_STAT_CFG_TX_PACKETS, BCMOLT_GROUP_ID_GPON_GEM_PORT_STAT_CFG_TX_BYTES };
+static bcmolt_group_id group_ids_gpon_gem_port_auto[] = { BCMOLT_GROUP_ID_GPON_GEM_PORT_CONFIGURATION_COMPLETED, BCMOLT_GROUP_ID_GPON_GEM_PORT_STAT_ALARM_CLEARED, BCMOLT_GROUP_ID_GPON_GEM_PORT_STAT_ALARM_RAISED };
+static bcmolt_group_id group_ids_gpon_gem_port_auto_cfg[] = { BCMOLT_GROUP_ID_GPON_GEM_PORT_AUTO_CFG };
+static bcmolt_group_id group_ids_gpon_gem_port_oper[] = { BCMOLT_GROUP_ID_GPON_GEM_PORT_SET_STATE };
+static bcmolt_group_id group_ids_gpon_iwf_key[] = { BCMOLT_GROUP_ID_GPON_IWF_KEY };
+static bcmolt_group_id group_ids_gpon_iwf_cfg[] = { BCMOLT_GROUP_ID_GPON_IWF_CFG };
+static bcmolt_group_id group_ids_gpon_iwf_stat[] = { BCMOLT_GROUP_ID_GPON_IWF_STAT };
+static bcmolt_group_id group_ids_gpon_iwf_stat_cfg[] = { BCMOLT_GROUP_ID_GPON_IWF_STAT_CFG_DS_HIT_EVENT, BCMOLT_GROUP_ID_GPON_IWF_STAT_CFG_DS_MISS_EVENT, BCMOLT_GROUP_ID_GPON_IWF_STAT_CFG_DS_DROP_DUE_TO_MISS_EVENT, BCMOLT_GROUP_ID_GPON_IWF_STAT_CFG_DS_DROP_DUE_TO_HIT_EVENT, BCMOLT_GROUP_ID_GPON_IWF_STAT_CFG_DS_DROP_TO_DISABLED_GEM, BCMOLT_GROUP_ID_GPON_IWF_STAT_CFG_NEW_MAC_DISCOVERED, BCMOLT_GROUP_ID_GPON_IWF_STAT_CFG_MOVE_EVENT, BCMOLT_GROUP_ID_GPON_IWF_STAT_CFG_NEW_MAC_DROP_DUE_TO_FIFO_FULL };
+static bcmolt_group_id group_ids_gpon_iwf_auto[] = { BCMOLT_GROUP_ID_GPON_IWF_FLUSH_MAC_TABLE_COMPLETED, BCMOLT_GROUP_ID_GPON_IWF_SCAN_MAC_TABLE_COMPLETED, BCMOLT_GROUP_ID_GPON_IWF_STAT_ALARM_CLEARED, BCMOLT_GROUP_ID_GPON_IWF_STAT_ALARM_RAISED };
+static bcmolt_group_id group_ids_gpon_iwf_auto_cfg[] = { BCMOLT_GROUP_ID_GPON_IWF_AUTO_CFG };
+static bcmolt_group_id group_ids_gpon_iwf_oper[] = { BCMOLT_GROUP_ID_GPON_IWF_FLUSH_MAC_TABLE, BCMOLT_GROUP_ID_GPON_IWF_SCAN_MAC_TABLE };
+static bcmolt_group_id group_ids_gpon_iwf_ds_egress_flow_key[] = { BCMOLT_GROUP_ID_GPON_IWF_DS_EGRESS_FLOW_KEY };
+static bcmolt_group_id group_ids_gpon_iwf_ds_egress_flow_cfg[] = { BCMOLT_GROUP_ID_GPON_IWF_DS_EGRESS_FLOW_CFG };
+static bcmolt_group_id group_ids_gpon_iwf_ds_ingress_flow_key[] = { BCMOLT_GROUP_ID_GPON_IWF_DS_INGRESS_FLOW_KEY };
+static bcmolt_group_id group_ids_gpon_iwf_ds_ingress_flow_cfg[] = { BCMOLT_GROUP_ID_GPON_IWF_DS_INGRESS_FLOW_CFG };
+static bcmolt_group_id group_ids_gpon_iwf_mac_table_key[] = { BCMOLT_GROUP_ID_GPON_IWF_MAC_TABLE_KEY };
+static bcmolt_group_id group_ids_gpon_iwf_mac_table_cfg[] = { BCMOLT_GROUP_ID_GPON_IWF_MAC_TABLE_CFG };
+static bcmolt_group_id group_ids_gpon_iwf_mac_table_auto[] = { BCMOLT_GROUP_ID_GPON_IWF_MAC_TABLE_MAC_AGED, BCMOLT_GROUP_ID_GPON_IWF_MAC_TABLE_MAC_DROPPED, BCMOLT_GROUP_ID_GPON_IWF_MAC_TABLE_MAC_MOVE, BCMOLT_GROUP_ID_GPON_IWF_MAC_TABLE_NEW_MAC };
+static bcmolt_group_id group_ids_gpon_iwf_mac_table_auto_cfg[] = { BCMOLT_GROUP_ID_GPON_IWF_MAC_TABLE_AUTO_CFG };
+static bcmolt_group_id group_ids_gpon_iwf_us_flow_key[] = { BCMOLT_GROUP_ID_GPON_IWF_US_FLOW_KEY };
+static bcmolt_group_id group_ids_gpon_iwf_us_flow_cfg[] = { BCMOLT_GROUP_ID_GPON_IWF_US_FLOW_CFG };
+static bcmolt_group_id group_ids_gpon_ni_key[] = { BCMOLT_GROUP_ID_GPON_NI_KEY };
+static bcmolt_group_id group_ids_gpon_ni_cfg[] = { BCMOLT_GROUP_ID_GPON_NI_CFG };
+static bcmolt_group_id group_ids_gpon_ni_stat[] = { BCMOLT_GROUP_ID_GPON_NI_STAT };
+static bcmolt_group_id group_ids_gpon_ni_stat_cfg[] = { BCMOLT_GROUP_ID_GPON_NI_STAT_CFG_FEC_CODEWORDS, BCMOLT_GROUP_ID_GPON_NI_STAT_CFG_FEC_CODEWORDS_UNCORRECTED, BCMOLT_GROUP_ID_GPON_NI_STAT_CFG_BIP8_BYTES, BCMOLT_GROUP_ID_GPON_NI_STAT_CFG_BIP8_ERRORS, BCMOLT_GROUP_ID_GPON_NI_STAT_CFG_RX_GEM_PACKETS, BCMOLT_GROUP_ID_GPON_NI_STAT_CFG_RX_GEM_DROPPED, BCMOLT_GROUP_ID_GPON_NI_STAT_CFG_RX_GEM_IDLE, BCMOLT_GROUP_ID_GPON_NI_STAT_CFG_RX_GEM_CORRECTED, BCMOLT_GROUP_ID_GPON_NI_STAT_CFG_RX_GEM_ILLEGAL, BCMOLT_GROUP_ID_GPON_NI_STAT_CFG_RX_ALLOCATIONS_VALID, BCMOLT_GROUP_ID_GPON_NI_STAT_CFG_RX_ALLOCATIONS_INVALID, BCMOLT_GROUP_ID_GPON_NI_STAT_CFG_RX_ALLOCATIONS_DISABLED, BCMOLT_GROUP_ID_GPON_NI_STAT_CFG_RX_PLOAMS, BCMOLT_GROUP_ID_GPON_NI_STAT_CFG_RX_PLOAMS_NON_IDLE, BCMOLT_GROUP_ID_GPON_NI_STAT_CFG_RX_PLOAMS_ERROR, BCMOLT_GROUP_ID_GPON_NI_STAT_CFG_RX_PLOAMS_DROPPED, BCMOLT_GROUP_ID_GPON_NI_STAT_CFG_RX_CPU, BCMOLT_GROUP_ID_GPON_NI_STAT_CFG_RX_OMCI, BCMOLT_GROUP_ID_GPON_NI_STAT_CFG_RX_OMCI_PACKETS_CRC_ERROR, BCMOLT_GROUP_ID_GPON_NI_STAT_CFG_RX_DROPPED_TOO_SHORT, BCMOLT_GROUP_ID_GPON_NI_STAT_CFG_RX_DROPPED_TOO_LONG, BCMOLT_GROUP_ID_GPON_NI_STAT_CFG_RX_CRC_ERRORS, BCMOLT_GROUP_ID_GPON_NI_STAT_CFG_RX_KEY_ERRORS, BCMOLT_GROUP_ID_GPON_NI_STAT_CFG_RX_FRAGMENTS_ERRORS, BCMOLT_GROUP_ID_GPON_NI_STAT_CFG_RX_PACKETS_DROPPED, BCMOLT_GROUP_ID_GPON_NI_STAT_CFG_TX_GEM, BCMOLT_GROUP_ID_GPON_NI_STAT_CFG_TX_PLOAMS, BCMOLT_GROUP_ID_GPON_NI_STAT_CFG_TX_GEM_FRAGMENTS, BCMOLT_GROUP_ID_GPON_NI_STAT_CFG_TX_CPU, BCMOLT_GROUP_ID_GPON_NI_STAT_CFG_TX_OMCI, BCMOLT_GROUP_ID_GPON_NI_STAT_CFG_TX_CPU_OMCI_PACKETS_DROPPED, BCMOLT_GROUP_ID_GPON_NI_STAT_CFG_TX_DROPPED_ILLEGAL_LENGTH, BCMOLT_GROUP_ID_GPON_NI_STAT_CFG_TX_DROPPED_TPID_MISS, BCMOLT_GROUP_ID_GPON_NI_STAT_CFG_TX_DROPPED_VID_MISS };
+static bcmolt_group_id group_ids_gpon_ni_auto[] = { BCMOLT_GROUP_ID_GPON_NI_ACTIVATE_ALL_ONUS_COMPLETED, BCMOLT_GROUP_ID_GPON_NI_CPU_PACKETS_FAILURE, BCMOLT_GROUP_ID_GPON_NI_DEACTIVATE_ALL_ONUS_COMPLETED, BCMOLT_GROUP_ID_GPON_NI_DISABLE_ALL_ONUS_COMPLETED, BCMOLT_GROUP_ID_GPON_NI_ENABLE_ALL_ONUS_COMPLETED, BCMOLT_GROUP_ID_GPON_NI_LOS, BCMOLT_GROUP_ID_GPON_NI_ONU_DISCOVERED, BCMOLT_GROUP_ID_GPON_NI_ONU_UPGRADE_COMPLETE, BCMOLT_GROUP_ID_GPON_NI_PROTECTION_SWITCHING_ONUS_RANGED, BCMOLT_GROUP_ID_GPON_NI_PROTECTION_SWITCHING_SWITCHOVER_COMPLETED, BCMOLT_GROUP_ID_GPON_NI_PROTECTION_SWITCHING_TRAFFIC_RESUME, BCMOLT_GROUP_ID_GPON_NI_ROGUE_DETECTION_COMPLETED, BCMOLT_GROUP_ID_GPON_NI_ROGUE_ONU_SPECIAL_MAP_CYCLE_START, BCMOLT_GROUP_ID_GPON_NI_SERIAL_NUMBER_ACQUISITION_CYCLE_START, BCMOLT_GROUP_ID_GPON_NI_STANDBY_PON_MONITORING_CYCLE_COMPLETED, BCMOLT_GROUP_ID_GPON_NI_STAT_ALARM_CLEARED, BCMOLT_GROUP_ID_GPON_NI_STAT_ALARM_RAISED, BCMOLT_GROUP_ID_GPON_NI_STATE_CHANGE_COMPLETED, BCMOLT_GROUP_ID_GPON_NI_TOD_REQUEST_COMPLETED };
+static bcmolt_group_id group_ids_gpon_ni_auto_cfg[] = { BCMOLT_GROUP_ID_GPON_NI_AUTO_CFG };
+static bcmolt_group_id group_ids_gpon_ni_oper[] = { BCMOLT_GROUP_ID_GPON_NI_DISABLE_SERIAL_NUMBER, BCMOLT_GROUP_ID_GPON_NI_PROTECTION_SWITCHING_TYPE_C_SET_MULTIPLE_ONU_STATE, BCMOLT_GROUP_ID_GPON_NI_RESET, BCMOLT_GROUP_ID_GPON_NI_ROGUE_DETECTION_WINDOW, BCMOLT_GROUP_ID_GPON_NI_SET_ONU_STATE, BCMOLT_GROUP_ID_GPON_NI_SET_PON_STATE, BCMOLT_GROUP_ID_GPON_NI_SINGLE_REQUEST_STANDBY_PON_MONITORING, BCMOLT_GROUP_ID_GPON_NI_START_ONU_UPGRADE, BCMOLT_GROUP_ID_GPON_NI_TOD_REQUEST };
+static bcmolt_group_id group_ids_gpon_ni_proxy[] = { BCMOLT_GROUP_ID_GPON_NI_BROADCAST_PLOAM_PACKET, BCMOLT_GROUP_ID_GPON_NI_CPU_PACKETS };
+static bcmolt_group_id group_ids_gpon_onu_key[] = { BCMOLT_GROUP_ID_GPON_ONU_KEY };
+static bcmolt_group_id group_ids_gpon_onu_cfg[] = { BCMOLT_GROUP_ID_GPON_ONU_CFG };
+static bcmolt_group_id group_ids_gpon_onu_stat[] = { BCMOLT_GROUP_ID_GPON_ONU_STAT };
+static bcmolt_group_id group_ids_gpon_onu_stat_cfg[] = { BCMOLT_GROUP_ID_GPON_ONU_STAT_CFG_FEC_CODEWORDS, BCMOLT_GROUP_ID_GPON_ONU_STAT_CFG_FEC_BYTES_CORRECTED, BCMOLT_GROUP_ID_GPON_ONU_STAT_CFG_FEC_CODEWORDS_CORRECTED, BCMOLT_GROUP_ID_GPON_ONU_STAT_CFG_FEC_CODEWORDS_UNCORRECTED, BCMOLT_GROUP_ID_GPON_ONU_STAT_CFG_BIP8_BYTES, BCMOLT_GROUP_ID_GPON_ONU_STAT_CFG_BIP8_ERRORS, BCMOLT_GROUP_ID_GPON_ONU_STAT_CFG_RX_PLOAMS_CRC_ERROR, BCMOLT_GROUP_ID_GPON_ONU_STAT_CFG_RX_PLOAMS_NON_IDLE, BCMOLT_GROUP_ID_GPON_ONU_STAT_CFG_POSITIVE_DRIFT, BCMOLT_GROUP_ID_GPON_ONU_STAT_CFG_NEGATIVE_DRIFT, BCMOLT_GROUP_ID_GPON_ONU_STAT_CFG_RX_OMCI, BCMOLT_GROUP_ID_GPON_ONU_STAT_CFG_RX_OMCI_PACKETS_CRC_ERROR, BCMOLT_GROUP_ID_GPON_ONU_STAT_CFG_BER_REPORTED, BCMOLT_GROUP_ID_GPON_ONU_STAT_CFG_UNRECEIVED_BURST, BCMOLT_GROUP_ID_GPON_ONU_STAT_CFG_LCDG_ERRORS, BCMOLT_GROUP_ID_GPON_ONU_STAT_CFG_RDI_ERRORS, BCMOLT_GROUP_ID_GPON_ONU_STAT_CFG_RX_BYTES, BCMOLT_GROUP_ID_GPON_ONU_STAT_CFG_RX_PACKETS, BCMOLT_GROUP_ID_GPON_ONU_STAT_CFG_TX_BYTES, BCMOLT_GROUP_ID_GPON_ONU_STAT_CFG_TX_PACKETS };
+static bcmolt_group_id group_ids_gpon_onu_auto[] = { BCMOLT_GROUP_ID_GPON_ONU_BER_INTERVAL_CONFIGURATION_COMPLETED, BCMOLT_GROUP_ID_GPON_ONU_DFI, BCMOLT_GROUP_ID_GPON_ONU_DGI, BCMOLT_GROUP_ID_GPON_ONU_DOWI, BCMOLT_GROUP_ID_GPON_ONU_ERR, BCMOLT_GROUP_ID_GPON_ONU_INVALID_DBRU_REPORT, BCMOLT_GROUP_ID_GPON_ONU_KEY_EXCHANGE_COMPLETED, BCMOLT_GROUP_ID_GPON_ONU_KEY_EXCHANGE_CYCLE_SKIPPED, BCMOLT_GROUP_ID_GPON_ONU_KEY_EXCHANGE_DECRYPT_REQUIRED, BCMOLT_GROUP_ID_GPON_ONU_KEY_EXCHANGE_KEY_MISMATCH, BCMOLT_GROUP_ID_GPON_ONU_KEY_EXCHANGE_KEY_REQUEST_TIMEOUT, BCMOLT_GROUP_ID_GPON_ONU_KEY_EXCHANGE_UNCONSECUTIVE_INDEX, BCMOLT_GROUP_ID_GPON_ONU_LOAI, BCMOLT_GROUP_ID_GPON_ONU_LOKI, BCMOLT_GROUP_ID_GPON_ONU_MEMI, BCMOLT_GROUP_ID_GPON_ONU_OMCI_PORT_ID_CONFIGURATION_COMPLETED, BCMOLT_GROUP_ID_GPON_ONU_ONU_ACTIVATION_COMPLETED, BCMOLT_GROUP_ID_GPON_ONU_ONU_ACTIVATION_STANDBY_COMPLETED, BCMOLT_GROUP_ID_GPON_ONU_ONU_ALARM, BCMOLT_GROUP_ID_GPON_ONU_ONU_DEACTIVATION_COMPLETED, BCMOLT_GROUP_ID_GPON_ONU_ONU_DISABLE_COMPLETED, BCMOLT_GROUP_ID_GPON_ONU_ONU_ENABLE_COMPLETED, BCMOLT_GROUP_ID_GPON_ONU_OPTICAL_REFLECTION, BCMOLT_GROUP_ID_GPON_ONU_PASSWORD_AUTHENTICATION_COMPLETED, BCMOLT_GROUP_ID_GPON_ONU_PEE, BCMOLT_GROUP_ID_GPON_ONU_POSSIBLE_DRIFT, BCMOLT_GROUP_ID_GPON_ONU_POWER_MANAGEMENT_STATE_CHANGE, BCMOLT_GROUP_ID_GPON_ONU_PST, BCMOLT_GROUP_ID_GPON_ONU_RANGING_COMPLETED, BCMOLT_GROUP_ID_GPON_ONU_REI, BCMOLT_GROUP_ID_GPON_ONU_RSSI_MEASUREMENT_COMPLETED, BCMOLT_GROUP_ID_GPON_ONU_SDI, BCMOLT_GROUP_ID_GPON_ONU_SFI, BCMOLT_GROUP_ID_GPON_ONU_STAT_ALARM_CLEARED, BCMOLT_GROUP_ID_GPON_ONU_STAT_ALARM_RAISED, BCMOLT_GROUP_ID_GPON_ONU_SUFI, BCMOLT_GROUP_ID_GPON_ONU_TIWI };
+static bcmolt_group_id group_ids_gpon_onu_auto_cfg[] = { BCMOLT_GROUP_ID_GPON_ONU_AUTO_CFG };
+static bcmolt_group_id group_ids_gpon_onu_oper[] = { BCMOLT_GROUP_ID_GPON_ONU_CHANGE_POWER_LEVEL, BCMOLT_GROUP_ID_GPON_ONU_RSSI_MEASUREMENT, BCMOLT_GROUP_ID_GPON_ONU_SET_ONU_STATE };
+static bcmolt_group_id group_ids_gpon_onu_proxy[] = { BCMOLT_GROUP_ID_GPON_ONU_CPU_PACKETS, BCMOLT_GROUP_ID_GPON_ONU_PLOAM_PACKET };
+static bcmolt_group_id group_ids_gpon_onu_proxy_rx[] = { BCMOLT_GROUP_ID_GPON_ONU_CPU_PACKET, BCMOLT_GROUP_ID_GPON_ONU_OMCI_PACKET };
+static bcmolt_group_id group_ids_gpon_trx_key[] = { BCMOLT_GROUP_ID_GPON_TRX_KEY };
+static bcmolt_group_id group_ids_gpon_trx_cfg[] = { BCMOLT_GROUP_ID_GPON_TRX_CFG };
+static bcmolt_group_id group_ids_log_entry_key[] = { BCMOLT_GROUP_ID_LOG_ENTRY_KEY };
+static bcmolt_group_id group_ids_log_entry_cfg[] = { BCMOLT_GROUP_ID_LOG_ENTRY_CFG };
+static bcmolt_group_id group_ids_log_entry_stat[] = { BCMOLT_GROUP_ID_LOG_ENTRY_STAT };
+static bcmolt_group_id group_ids_log_entry_stat_cfg[] = { BCMOLT_GROUP_ID_LOG_ENTRY_STAT_CFG_MSG_COUNT, BCMOLT_GROUP_ID_LOG_ENTRY_STAT_CFG_LOST_MSG_COUNT };
+static bcmolt_group_id group_ids_log_entry_auto[] = { BCMOLT_GROUP_ID_LOG_ENTRY_STAT_ALARM_CLEARED, BCMOLT_GROUP_ID_LOG_ENTRY_STAT_ALARM_RAISED };
+static bcmolt_group_id group_ids_log_entry_auto_cfg[] = { BCMOLT_GROUP_ID_LOG_ENTRY_AUTO_CFG };
+static bcmolt_group_id group_ids_logger_key[] = { BCMOLT_GROUP_ID_LOGGER_KEY };
+static bcmolt_group_id group_ids_logger_cfg[] = { BCMOLT_GROUP_ID_LOGGER_CFG };
+static bcmolt_group_id group_ids_logger_stat[] = { BCMOLT_GROUP_ID_LOGGER_STAT };
+static bcmolt_group_id group_ids_logger_stat_cfg[] = { BCMOLT_GROUP_ID_LOGGER_STAT_CFG_LINES_IN_LOG };
+static bcmolt_group_id group_ids_logger_auto[] = { BCMOLT_GROUP_ID_LOGGER_STAT_ALARM_CLEARED, BCMOLT_GROUP_ID_LOGGER_STAT_ALARM_RAISED };
+static bcmolt_group_id group_ids_logger_auto_cfg[] = { BCMOLT_GROUP_ID_LOGGER_AUTO_CFG };
+static bcmolt_group_id group_ids_logger_oper[] = { BCMOLT_GROUP_ID_LOGGER_CLEAR_LOG };
+static bcmolt_group_id group_ids_nni_key[] = { BCMOLT_GROUP_ID_NNI_KEY };
+static bcmolt_group_id group_ids_nni_cfg[] = { BCMOLT_GROUP_ID_NNI_CFG };
+static bcmolt_group_id group_ids_nni_stat[] = { BCMOLT_GROUP_ID_NNI_STAT };
+static bcmolt_group_id group_ids_nni_stat_cfg[] = { BCMOLT_GROUP_ID_NNI_STAT_CFG_RX_FRAMES_64, BCMOLT_GROUP_ID_NNI_STAT_CFG_RX_FRAMES_65_127, BCMOLT_GROUP_ID_NNI_STAT_CFG_RX_FRAMES_128_255, BCMOLT_GROUP_ID_NNI_STAT_CFG_RX_FRAMES_256_511, BCMOLT_GROUP_ID_NNI_STAT_CFG_RX_FRAMES_512_1023, BCMOLT_GROUP_ID_NNI_STAT_CFG_RX_FRAMES_1024_1518, BCMOLT_GROUP_ID_NNI_STAT_CFG_RX_FRAMES_1519_2047, BCMOLT_GROUP_ID_NNI_STAT_CFG_RX_FRAMES_2048_4095, BCMOLT_GROUP_ID_NNI_STAT_CFG_RX_FRAMES_4096_9216, BCMOLT_GROUP_ID_NNI_STAT_CFG_RX_FRAMES_9217_16383, BCMOLT_GROUP_ID_NNI_STAT_CFG_RX_FRAMES, BCMOLT_GROUP_ID_NNI_STAT_CFG_RX_BYTES, BCMOLT_GROUP_ID_NNI_STAT_CFG_RX_GOOD_FRAMES, BCMOLT_GROUP_ID_NNI_STAT_CFG_RX_UNICAST_FRAMES, BCMOLT_GROUP_ID_NNI_STAT_CFG_RX_MULTICAST_FRAMES, BCMOLT_GROUP_ID_NNI_STAT_CFG_RX_BROADCAST_FRAMES, BCMOLT_GROUP_ID_NNI_STAT_CFG_RX_FCS_ERRORS, BCMOLT_GROUP_ID_NNI_STAT_CFG_RX_CONTROL_FRAMES, BCMOLT_GROUP_ID_NNI_STAT_CFG_RX_PAUSE_FRAMES, BCMOLT_GROUP_ID_NNI_STAT_CFG_RX_PFC_FRAMES, BCMOLT_GROUP_ID_NNI_STAT_CFG_RX_UNSUPPORTED_OPCODE, BCMOLT_GROUP_ID_NNI_STAT_CFG_RX_UNSUPPORTED_DA, BCMOLT_GROUP_ID_NNI_STAT_CFG_RX_ALIGNMENT_ERRORS, BCMOLT_GROUP_ID_NNI_STAT_CFG_RX_LENGTH_OUT_OF_RANGE, BCMOLT_GROUP_ID_NNI_STAT_CFG_RX_CODE_ERRORS, BCMOLT_GROUP_ID_NNI_STAT_CFG_RX_OVERSIZED_FRAMES, BCMOLT_GROUP_ID_NNI_STAT_CFG_RX_JABBER_FRAMES, BCMOLT_GROUP_ID_NNI_STAT_CFG_RX_MTU_CHECK_ERRORS, BCMOLT_GROUP_ID_NNI_STAT_CFG_RX_PROMISCUOUS_FRAMES, BCMOLT_GROUP_ID_NNI_STAT_CFG_RX_VLAN_FRAMES, BCMOLT_GROUP_ID_NNI_STAT_CFG_RX_DOUBLE_VLAN_FRAMES, BCMOLT_GROUP_ID_NNI_STAT_CFG_RX_TRUNCATED_FRAMES, BCMOLT_GROUP_ID_NNI_STAT_CFG_RX_UNDERSIZE_FRAMES, BCMOLT_GROUP_ID_NNI_STAT_CFG_RX_FRAGMENTED_FRAMES, BCMOLT_GROUP_ID_NNI_STAT_CFG_RX_RUNT_FRAMES, BCMOLT_GROUP_ID_NNI_STAT_CFG_TX_FRAMES_64, BCMOLT_GROUP_ID_NNI_STAT_CFG_TX_FRAMES_65_127, BCMOLT_GROUP_ID_NNI_STAT_CFG_TX_FRAMES_128_255, BCMOLT_GROUP_ID_NNI_STAT_CFG_TX_FRAMES_256_511, BCMOLT_GROUP_ID_NNI_STAT_CFG_TX_FRAMES_512_1023, BCMOLT_GROUP_ID_NNI_STAT_CFG_TX_FRAMES_1024_1518, BCMOLT_GROUP_ID_NNI_STAT_CFG_TX_FRAMES_1519_2047, BCMOLT_GROUP_ID_NNI_STAT_CFG_TX_FRAMES_2048_4095, BCMOLT_GROUP_ID_NNI_STAT_CFG_TX_FRAMES_4096_9216, BCMOLT_GROUP_ID_NNI_STAT_CFG_TX_FRAMES_9217_16383, BCMOLT_GROUP_ID_NNI_STAT_CFG_TX_FRAMES, BCMOLT_GROUP_ID_NNI_STAT_CFG_TX_BYTES, BCMOLT_GROUP_ID_NNI_STAT_CFG_TX_GOOD_FRAMES, BCMOLT_GROUP_ID_NNI_STAT_CFG_TX_UNICAST_FRAMES, BCMOLT_GROUP_ID_NNI_STAT_CFG_TX_MULTICAST_FRAMES, BCMOLT_GROUP_ID_NNI_STAT_CFG_TX_BROADCAST_FRAMES, BCMOLT_GROUP_ID_NNI_STAT_CFG_TX_PAUSE_FRAMES, BCMOLT_GROUP_ID_NNI_STAT_CFG_TX_PFC_FRAMES, BCMOLT_GROUP_ID_NNI_STAT_CFG_TX_JABBER_FRAMES, BCMOLT_GROUP_ID_NNI_STAT_CFG_TX_FCS_ERRORS, BCMOLT_GROUP_ID_NNI_STAT_CFG_TX_CONTROL_FRAMES, BCMOLT_GROUP_ID_NNI_STAT_CFG_TX_OVERSIZE_FRAMES, BCMOLT_GROUP_ID_NNI_STAT_CFG_TX_FRAGMENTED_FRAMES, BCMOLT_GROUP_ID_NNI_STAT_CFG_TX_ERROR_FRAMES, BCMOLT_GROUP_ID_NNI_STAT_CFG_TX_VLAN_FRAMES, BCMOLT_GROUP_ID_NNI_STAT_CFG_TX_DOUBLE_VLAN_FRAMES, BCMOLT_GROUP_ID_NNI_STAT_CFG_TX_RUNT_FRAMES, BCMOLT_GROUP_ID_NNI_STAT_CFG_TX_UNDERRUN_FRAMES };
+static bcmolt_group_id group_ids_nni_auto[] = { BCMOLT_GROUP_ID_NNI_STAT_ALARM_CLEARED, BCMOLT_GROUP_ID_NNI_STAT_ALARM_RAISED, BCMOLT_GROUP_ID_NNI_STATUS_CHANGED };
+static bcmolt_group_id group_ids_nni_auto_cfg[] = { BCMOLT_GROUP_ID_NNI_AUTO_CFG };
+static bcmolt_group_id group_ids_nni_serdes_key[] = { BCMOLT_GROUP_ID_NNI_SERDES_KEY };
+static bcmolt_group_id group_ids_nni_serdes_cfg[] = { BCMOLT_GROUP_ID_NNI_SERDES_CFG };
+static bcmolt_group_id group_ids_software_error_key[] = { BCMOLT_GROUP_ID_SOFTWARE_ERROR_KEY };
+static bcmolt_group_id group_ids_software_error_cfg[] = { BCMOLT_GROUP_ID_SOFTWARE_ERROR_CFG };
+static bcmolt_group_id group_ids_trx_calibration_key[] = { BCMOLT_GROUP_ID_TRX_CALIBRATION_KEY };
+static bcmolt_group_id group_ids_trx_calibration_auto[] = { BCMOLT_GROUP_ID_TRX_CALIBRATION_CAPTURE_WINDOW_AND_STATISTIC_COMPLETED };
+static bcmolt_group_id group_ids_trx_calibration_auto_cfg[] = { BCMOLT_GROUP_ID_TRX_CALIBRATION_AUTO_CFG };
+static bcmolt_group_id group_ids_trx_calibration_oper[] = { BCMOLT_GROUP_ID_TRX_CALIBRATION_START_CAPTURE_WINDOW, BCMOLT_GROUP_ID_TRX_CALIBRATION_STOP_CAPTURE_WINDOW };
+static bcmolt_group_id group_ids_xgpon_alloc_key[] = { BCMOLT_GROUP_ID_XGPON_ALLOC_KEY };
+static bcmolt_group_id group_ids_xgpon_alloc_cfg[] = { BCMOLT_GROUP_ID_XGPON_ALLOC_CFG };
+static bcmolt_group_id group_ids_xgpon_alloc_stat[] = { BCMOLT_GROUP_ID_XGPON_ALLOC_STAT };
+static bcmolt_group_id group_ids_xgpon_alloc_stat_cfg[] = { BCMOLT_GROUP_ID_XGPON_ALLOC_STAT_CFG_RX_BYTES };
+static bcmolt_group_id group_ids_xgpon_alloc_auto[] = { BCMOLT_GROUP_ID_XGPON_ALLOC_CONFIGURATION_COMPLETED, BCMOLT_GROUP_ID_XGPON_ALLOC_GET_ALLOC_STATS_COMPLETED, BCMOLT_GROUP_ID_XGPON_ALLOC_STAT_ALARM_CLEARED, BCMOLT_GROUP_ID_XGPON_ALLOC_STAT_ALARM_RAISED };
+static bcmolt_group_id group_ids_xgpon_alloc_auto_cfg[] = { BCMOLT_GROUP_ID_XGPON_ALLOC_AUTO_CFG };
+static bcmolt_group_id group_ids_xgpon_alloc_oper[] = { BCMOLT_GROUP_ID_XGPON_ALLOC_GET_STATS, BCMOLT_GROUP_ID_XGPON_ALLOC_SET_STATE };
+static bcmolt_group_id group_ids_xgpon_gem_port_key[] = { BCMOLT_GROUP_ID_XGPON_GEM_PORT_KEY };
+static bcmolt_group_id group_ids_xgpon_gem_port_cfg[] = { BCMOLT_GROUP_ID_XGPON_GEM_PORT_CFG };
+static bcmolt_group_id group_ids_xgpon_gem_port_stat[] = { BCMOLT_GROUP_ID_XGPON_GEM_PORT_STAT };
+static bcmolt_group_id group_ids_xgpon_gem_port_stat_cfg[] = { BCMOLT_GROUP_ID_XGPON_GEM_PORT_STAT_CFG_TX_BYTES, BCMOLT_GROUP_ID_XGPON_GEM_PORT_STAT_CFG_TX_PACKETS, BCMOLT_GROUP_ID_XGPON_GEM_PORT_STAT_CFG_RX_PACKETS, BCMOLT_GROUP_ID_XGPON_GEM_PORT_STAT_CFG_RX_BYTES };
+static bcmolt_group_id group_ids_xgpon_gem_port_auto[] = { BCMOLT_GROUP_ID_XGPON_GEM_PORT_STAT_ALARM_CLEARED, BCMOLT_GROUP_ID_XGPON_GEM_PORT_STAT_ALARM_RAISED };
+static bcmolt_group_id group_ids_xgpon_gem_port_auto_cfg[] = { BCMOLT_GROUP_ID_XGPON_GEM_PORT_AUTO_CFG };
+static bcmolt_group_id group_ids_xgpon_iwf_key[] = { BCMOLT_GROUP_ID_XGPON_IWF_KEY };
+static bcmolt_group_id group_ids_xgpon_iwf_cfg[] = { BCMOLT_GROUP_ID_XGPON_IWF_CFG };
+static bcmolt_group_id group_ids_xgpon_ni_key[] = { BCMOLT_GROUP_ID_XGPON_NI_KEY };
+static bcmolt_group_id group_ids_xgpon_ni_cfg[] = { BCMOLT_GROUP_ID_XGPON_NI_CFG };
+static bcmolt_group_id group_ids_xgpon_ni_stat[] = { BCMOLT_GROUP_ID_XGPON_NI_STAT };
+static bcmolt_group_id group_ids_xgpon_ni_stat_cfg[] = { BCMOLT_GROUP_ID_XGPON_NI_STAT_CFG_FEC_CODEWORDS, BCMOLT_GROUP_ID_XGPON_NI_STAT_CFG_BIP32_BYTES, BCMOLT_GROUP_ID_XGPON_NI_STAT_CFG_BIP32_ERRORS, BCMOLT_GROUP_ID_XGPON_NI_STAT_CFG_RX_XGTC_HEADERS, BCMOLT_GROUP_ID_XGPON_NI_STAT_CFG_RX_XGTC_CORRECTED, BCMOLT_GROUP_ID_XGPON_NI_STAT_CFG_RX_XGTC_UNCORRECTED, BCMOLT_GROUP_ID_XGPON_NI_STAT_CFG_RX_XGEM, BCMOLT_GROUP_ID_XGPON_NI_STAT_CFG_RX_XGEM_DROPPED, BCMOLT_GROUP_ID_XGPON_NI_STAT_CFG_RX_XGEM_IDLE, BCMOLT_GROUP_ID_XGPON_NI_STAT_CFG_RX_XGEM_CORRECTED, BCMOLT_GROUP_ID_XGPON_NI_STAT_CFG_RX_CRC_ERROR, BCMOLT_GROUP_ID_XGPON_NI_STAT_CFG_RX_FRAGMENT_ERROR, BCMOLT_GROUP_ID_XGPON_NI_STAT_CFG_RX_PACKETS_DROPPED, BCMOLT_GROUP_ID_XGPON_NI_STAT_CFG_RX_DROPPED_TOO_SHORT, BCMOLT_GROUP_ID_XGPON_NI_STAT_CFG_RX_DROPPED_TOO_LONG, BCMOLT_GROUP_ID_XGPON_NI_STAT_CFG_RX_KEY_ERROR, BCMOLT_GROUP_ID_XGPON_NI_STAT_CFG_TX_PLOAMS, BCMOLT_GROUP_ID_XGPON_NI_STAT_CFG_RX_PLOAMS_DROPPED, BCMOLT_GROUP_ID_XGPON_NI_STAT_CFG_RX_ALLOCATIONS_VALID, BCMOLT_GROUP_ID_XGPON_NI_STAT_CFG_RX_ALLOCATIONS_INVALID, BCMOLT_GROUP_ID_XGPON_NI_STAT_CFG_RX_ALLOCATIONS_DISABLED, BCMOLT_GROUP_ID_XGPON_NI_STAT_CFG_RX_PLOAMS, BCMOLT_GROUP_ID_XGPON_NI_STAT_CFG_RX_PLOAMS_NON_IDLE, BCMOLT_GROUP_ID_XGPON_NI_STAT_CFG_RX_PLOAMS_ERROR, BCMOLT_GROUP_ID_XGPON_NI_STAT_CFG_RX_CPU, BCMOLT_GROUP_ID_XGPON_NI_STAT_CFG_RX_OMCI, BCMOLT_GROUP_ID_XGPON_NI_STAT_CFG_RX_OMCI_PACKETS_CRC_ERROR, BCMOLT_GROUP_ID_XGPON_NI_STAT_CFG_TX_PACKETS, BCMOLT_GROUP_ID_XGPON_NI_STAT_CFG_TX_XGEM, BCMOLT_GROUP_ID_XGPON_NI_STAT_CFG_TX_CPU, BCMOLT_GROUP_ID_XGPON_NI_STAT_CFG_TX_OMCI, BCMOLT_GROUP_ID_XGPON_NI_STAT_CFG_TX_CPU_OMCI_PACKETS_DROPPED, BCMOLT_GROUP_ID_XGPON_NI_STAT_CFG_TX_DROPPED_ILLEGAL_LENGTH, BCMOLT_GROUP_ID_XGPON_NI_STAT_CFG_TX_DROPPED_TPID_MISS, BCMOLT_GROUP_ID_XGPON_NI_STAT_CFG_TX_DROPPED_VID_MISS };
+static bcmolt_group_id group_ids_xgpon_ni_auto[] = { BCMOLT_GROUP_ID_XGPON_NI_ACTIVATE_ALL_ONUS_COMPLETED, BCMOLT_GROUP_ID_XGPON_NI_CPU_PACKETS_FAILURE, BCMOLT_GROUP_ID_XGPON_NI_DEACTIVATE_ALL_ONUS_COMPLETED, BCMOLT_GROUP_ID_XGPON_NI_DISABLE_ALL_ONUS_COMPLETED, BCMOLT_GROUP_ID_XGPON_NI_ENABLE_ALL_ONUS_COMPLETED, BCMOLT_GROUP_ID_XGPON_NI_LOS, BCMOLT_GROUP_ID_XGPON_NI_ONU_DISCOVERED, BCMOLT_GROUP_ID_XGPON_NI_ONU_UPGRADE_COMPLETE, BCMOLT_GROUP_ID_XGPON_NI_PROTECTION_SWITCHING_ONUS_RANGED, BCMOLT_GROUP_ID_XGPON_NI_PROTECTION_SWITCHING_SWITCHOVER_COMPLETED, BCMOLT_GROUP_ID_XGPON_NI_PROTECTION_SWITCHING_TRAFFIC_RESUME, BCMOLT_GROUP_ID_XGPON_NI_ROGUE_DETECTION_COMPLETED, BCMOLT_GROUP_ID_XGPON_NI_ROGUE_ONU_SPECIAL_MAP_CYCLE_START, BCMOLT_GROUP_ID_XGPON_NI_SERIAL_NUMBER_ACQUISITION_CYCLE_START, BCMOLT_GROUP_ID_XGPON_NI_STANDBY_PON_MONITORING_CYCLE_COMPLETED, BCMOLT_GROUP_ID_XGPON_NI_STAT_ALARM_CLEARED, BCMOLT_GROUP_ID_XGPON_NI_STAT_ALARM_RAISED, BCMOLT_GROUP_ID_XGPON_NI_STATE_CHANGE_COMPLETED, BCMOLT_GROUP_ID_XGPON_NI_TOD_REQUEST_COMPLETED };
+static bcmolt_group_id group_ids_xgpon_ni_auto_cfg[] = { BCMOLT_GROUP_ID_XGPON_NI_AUTO_CFG };
+static bcmolt_group_id group_ids_xgpon_ni_oper[] = { BCMOLT_GROUP_ID_XGPON_NI_ADJUST_TX_WAVELENGTH, BCMOLT_GROUP_ID_XGPON_NI_DISABLE_SERIAL_NUMBER, BCMOLT_GROUP_ID_XGPON_NI_RESET, BCMOLT_GROUP_ID_XGPON_NI_ROGUE_DETECTION_WINDOW, BCMOLT_GROUP_ID_XGPON_NI_RUN_SPECIAL_BW_MAP, BCMOLT_GROUP_ID_XGPON_NI_SET_ONU_STATE, BCMOLT_GROUP_ID_XGPON_NI_SET_PON_STATE, BCMOLT_GROUP_ID_XGPON_NI_SINGLE_REQUEST_STANDBY_PON_MONITORING, BCMOLT_GROUP_ID_XGPON_NI_START_ONU_UPGRADE, BCMOLT_GROUP_ID_XGPON_NI_TOD_REQUEST };
+static bcmolt_group_id group_ids_xgpon_ni_proxy[] = { BCMOLT_GROUP_ID_XGPON_NI_BROADCAST_PLOAM_PACKET, BCMOLT_GROUP_ID_XGPON_NI_CPU_PACKETS };
+static bcmolt_group_id group_ids_xgpon_onu_key[] = { BCMOLT_GROUP_ID_XGPON_ONU_KEY };
+static bcmolt_group_id group_ids_xgpon_onu_cfg[] = { BCMOLT_GROUP_ID_XGPON_ONU_CFG };
+static bcmolt_group_id group_ids_xgpon_onu_stat[] = { BCMOLT_GROUP_ID_XGPON_ONU_STAT };
+static bcmolt_group_id group_ids_xgpon_onu_stat_cfg[] = { BCMOLT_GROUP_ID_XGPON_ONU_STAT_CFG_POSITIVE_DRIFT, BCMOLT_GROUP_ID_XGPON_ONU_STAT_CFG_NEGATIVE_DRIFT, BCMOLT_GROUP_ID_XGPON_ONU_STAT_CFG_DELIMITER_MISS_DETECTION, BCMOLT_GROUP_ID_XGPON_ONU_STAT_CFG_BIP32_ERRORS, BCMOLT_GROUP_ID_XGPON_ONU_STAT_CFG_RX_WORDS, BCMOLT_GROUP_ID_XGPON_ONU_STAT_CFG_FEC_CORRECTED_SYMBOLS, BCMOLT_GROUP_ID_XGPON_ONU_STAT_CFG_FEC_CORRECTED_CODEWORDS, BCMOLT_GROUP_ID_XGPON_ONU_STAT_CFG_FEC_UNCORRECTABLE_CODEWORDS, BCMOLT_GROUP_ID_XGPON_ONU_STAT_CFG_FEC_CODEWORDS, BCMOLT_GROUP_ID_XGPON_ONU_STAT_CFG_FEC_CORRECTED_BITS, BCMOLT_GROUP_ID_XGPON_ONU_STAT_CFG_XGEM_KEY_ERRORS, BCMOLT_GROUP_ID_XGPON_ONU_STAT_CFG_XGEM_LOSS, BCMOLT_GROUP_ID_XGPON_ONU_STAT_CFG_RX_PLOAMS_MIC_ERROR, BCMOLT_GROUP_ID_XGPON_ONU_STAT_CFG_RX_PLOAMS_NON_IDLE, BCMOLT_GROUP_ID_XGPON_ONU_STAT_CFG_RX_OMCI, BCMOLT_GROUP_ID_XGPON_ONU_STAT_CFG_RX_OMCI_PACKETS_CRC_ERROR, BCMOLT_GROUP_ID_XGPON_ONU_STAT_CFG_RX_BYTES, BCMOLT_GROUP_ID_XGPON_ONU_STAT_CFG_RX_PACKETS, BCMOLT_GROUP_ID_XGPON_ONU_STAT_CFG_TX_BYTES, BCMOLT_GROUP_ID_XGPON_ONU_STAT_CFG_TX_PACKETS };
+static bcmolt_group_id group_ids_xgpon_onu_auto[] = { BCMOLT_GROUP_ID_XGPON_ONU_DFI, BCMOLT_GROUP_ID_XGPON_ONU_DGI, BCMOLT_GROUP_ID_XGPON_ONU_DOWI, BCMOLT_GROUP_ID_XGPON_ONU_INVALID_DBRU_REPORT, BCMOLT_GROUP_ID_XGPON_ONU_KEY_EXCHANGE_COMPLETED, BCMOLT_GROUP_ID_XGPON_ONU_KEY_EXCHANGE_CYCLE_SKIPPED, BCMOLT_GROUP_ID_XGPON_ONU_KEY_EXCHANGE_KEY_MISMATCH, BCMOLT_GROUP_ID_XGPON_ONU_KEY_EXCHANGE_KEY_REQUEST_TIMEOUT, BCMOLT_GROUP_ID_XGPON_ONU_LOOCI, BCMOLT_GROUP_ID_XGPON_ONU_ONU_ACTIVATION_COMPLETED, BCMOLT_GROUP_ID_XGPON_ONU_ONU_ALARM, BCMOLT_GROUP_ID_XGPON_ONU_ONU_DEACTIVATION_COMPLETED, BCMOLT_GROUP_ID_XGPON_ONU_ONU_DISABLE_COMPLETED, BCMOLT_GROUP_ID_XGPON_ONU_ONU_ENABLE_COMPLETED, BCMOLT_GROUP_ID_XGPON_ONU_ONU_TUNING_IN_COMPLETED, BCMOLT_GROUP_ID_XGPON_ONU_ONU_TUNING_OUT_COMPLETED, BCMOLT_GROUP_ID_XGPON_ONU_OPTICAL_REFLECTION, BCMOLT_GROUP_ID_XGPON_ONU_POSSIBLE_DRIFT, BCMOLT_GROUP_ID_XGPON_ONU_POWER_CONSUMPTION_REPORT, BCMOLT_GROUP_ID_XGPON_ONU_POWER_LEVEL_REPORT, BCMOLT_GROUP_ID_XGPON_ONU_POWER_MANAGEMENT_STATE_CHANGE, BCMOLT_GROUP_ID_XGPON_ONU_PQSI, BCMOLT_GROUP_ID_XGPON_ONU_RANGING_COMPLETED, BCMOLT_GROUP_ID_XGPON_ONU_REGISTRATION_ID, BCMOLT_GROUP_ID_XGPON_ONU_RSSI_MEASUREMENT_COMPLETED, BCMOLT_GROUP_ID_XGPON_ONU_SDI, BCMOLT_GROUP_ID_XGPON_ONU_SECURE_MUTUAL_AUTHENTICATION_FAILURE, BCMOLT_GROUP_ID_XGPON_ONU_SFI, BCMOLT_GROUP_ID_XGPON_ONU_STAT_ALARM_CLEARED, BCMOLT_GROUP_ID_XGPON_ONU_STAT_ALARM_RAISED, BCMOLT_GROUP_ID_XGPON_ONU_SUFI, BCMOLT_GROUP_ID_XGPON_ONU_TIWI, BCMOLT_GROUP_ID_XGPON_ONU_TUNING_RESPONSE };
+static bcmolt_group_id group_ids_xgpon_onu_auto_cfg[] = { BCMOLT_GROUP_ID_XGPON_ONU_AUTO_CFG };
+static bcmolt_group_id group_ids_xgpon_onu_oper[] = { BCMOLT_GROUP_ID_XGPON_ONU_ADJUST_TX_WAVELENGTH, BCMOLT_GROUP_ID_XGPON_ONU_CHANGE_POWER_LEVELLING, BCMOLT_GROUP_ID_XGPON_ONU_GET_POWER_CONSUMPTION, BCMOLT_GROUP_ID_XGPON_ONU_GET_POWER_LEVEL, BCMOLT_GROUP_ID_XGPON_ONU_ONU_TUNING_IN, BCMOLT_GROUP_ID_XGPON_ONU_ONU_TUNING_OUT, BCMOLT_GROUP_ID_XGPON_ONU_REQUEST_REGISTRATION, BCMOLT_GROUP_ID_XGPON_ONU_RSSI_MEASUREMENT, BCMOLT_GROUP_ID_XGPON_ONU_SECURE_MUTUAL_AUTHENTICATION, BCMOLT_GROUP_ID_XGPON_ONU_SET_ONU_STATE };
+static bcmolt_group_id group_ids_xgpon_onu_proxy[] = { BCMOLT_GROUP_ID_XGPON_ONU_CPU_PACKETS, BCMOLT_GROUP_ID_XGPON_ONU_PLOAM_PACKET };
+static bcmolt_group_id group_ids_xgpon_onu_proxy_rx[] = { BCMOLT_GROUP_ID_XGPON_ONU_CPU_PACKET, BCMOLT_GROUP_ID_XGPON_ONU_OMCI_PACKET };
+static bcmolt_group_id group_ids_xgpon_trx_key[] = { BCMOLT_GROUP_ID_XGPON_TRX_KEY };
+static bcmolt_group_id group_ids_xgpon_trx_cfg[] = { BCMOLT_GROUP_ID_XGPON_TRX_CFG };
+static bcmolt_group_id group_ids_xpon_serdes_key[] = { BCMOLT_GROUP_ID_XPON_SERDES_KEY };
+static bcmolt_group_id group_ids_xpon_serdes_cfg[] = { BCMOLT_GROUP_ID_XPON_SERDES_CFG };
+static bcmolt_group_ids group_ids_obj_ae_ni[] = { { 1, group_ids_ae_ni_key }, { 1, group_ids_ae_ni_cfg }, { 0, NULL }, { 0, NULL }, { 0, NULL }, { 0, NULL }, { 1, group_ids_ae_ni_oper }, { 0, NULL }, { 0, NULL } };
+static bcmolt_group_ids group_ids_obj_ae_path_ds[] = { { 1, group_ids_ae_path_ds_key }, { 0, NULL }, { 1, group_ids_ae_path_ds_stat }, { 17, group_ids_ae_path_ds_stat_cfg }, { 2, group_ids_ae_path_ds_auto }, { 1, group_ids_ae_path_ds_auto_cfg }, { 0, NULL }, { 0, NULL }, { 0, NULL } };
+static bcmolt_group_ids group_ids_obj_ae_path_us[] = { { 1, group_ids_ae_path_us_key }, { 0, NULL }, { 1, group_ids_ae_path_us_stat }, { 20, group_ids_ae_path_us_stat_cfg }, { 2, group_ids_ae_path_us_auto }, { 1, group_ids_ae_path_us_auto_cfg }, { 0, NULL }, { 0, NULL }, { 0, NULL } };
+static bcmolt_group_ids group_ids_obj_channel[] = { { 1, group_ids_channel_key }, { 1, group_ids_channel_cfg }, { 0, NULL }, { 0, NULL }, { 0, NULL }, { 0, NULL }, { 0, NULL }, { 0, NULL }, { 0, NULL } };
+static bcmolt_group_ids group_ids_obj_debug[] = { { 1, group_ids_debug_key }, { 1, group_ids_debug_cfg }, { 0, NULL }, { 0, NULL }, { 2, group_ids_debug_auto }, { 1, group_ids_debug_auto_cfg }, { 4, group_ids_debug_oper }, { 0, NULL }, { 0, NULL } };
+static bcmolt_group_ids group_ids_obj_device[] = { { 1, group_ids_device_key }, { 1, group_ids_device_cfg }, { 0, NULL }, { 0, NULL }, { 11, group_ids_device_auto }, { 1, group_ids_device_auto_cfg }, { 8, group_ids_device_oper }, { 0, NULL }, { 0, NULL } };
+static bcmolt_group_ids group_ids_obj_epon_denied_link[] = { { 1, group_ids_epon_denied_link_key }, { 1, group_ids_epon_denied_link_cfg }, { 0, NULL }, { 0, NULL }, { 10, group_ids_epon_denied_link_auto }, { 1, group_ids_epon_denied_link_auto_cfg }, { 0, NULL }, { 0, NULL }, { 0, NULL } };
+static bcmolt_group_ids group_ids_obj_epon_link[] = { { 1, group_ids_epon_link_key }, { 1, group_ids_epon_link_cfg }, { 1, group_ids_epon_link_stat }, { 43, group_ids_epon_link_stat_cfg }, { 21, group_ids_epon_link_auto }, { 1, group_ids_epon_link_auto_cfg }, { 7, group_ids_epon_link_oper }, { 1, group_ids_epon_link_proxy }, { 1, group_ids_epon_link_proxy_rx } };
+static bcmolt_group_ids group_ids_obj_epon_ni[] = { { 1, group_ids_epon_ni_key }, { 1, group_ids_epon_ni_cfg }, { 0, NULL }, { 0, NULL }, { 10, group_ids_epon_ni_auto }, { 1, group_ids_epon_ni_auto_cfg }, { 8, group_ids_epon_ni_oper }, { 0, NULL }, { 0, NULL } };
+static bcmolt_group_ids group_ids_obj_epon_onu_10g_us[] = { { 1, group_ids_epon_onu_10g_us_key }, { 1, group_ids_epon_onu_10g_us_cfg }, { 1, group_ids_epon_onu_10g_us_stat }, { 4, group_ids_epon_onu_10g_us_stat_cfg }, { 2, group_ids_epon_onu_10g_us_auto }, { 1, group_ids_epon_onu_10g_us_auto_cfg }, { 0, NULL }, { 0, NULL }, { 0, NULL } };
+static bcmolt_group_ids group_ids_obj_epon_onu_1g_us[] = { { 1, group_ids_epon_onu_1g_us_key }, { 1, group_ids_epon_onu_1g_us_cfg }, { 1, group_ids_epon_onu_1g_us_stat }, { 16, group_ids_epon_onu_1g_us_stat_cfg }, { 2, group_ids_epon_onu_1g_us_auto }, { 1, group_ids_epon_onu_1g_us_auto_cfg }, { 0, NULL }, { 0, NULL }, { 0, NULL } };
+static bcmolt_group_ids group_ids_obj_epon_path_10g_ds[] = { { 1, group_ids_epon_path_10g_ds_key }, { 1, group_ids_epon_path_10g_ds_cfg }, { 1, group_ids_epon_path_10g_ds_stat }, { 21, group_ids_epon_path_10g_ds_stat_cfg }, { 2, group_ids_epon_path_10g_ds_auto }, { 1, group_ids_epon_path_10g_ds_auto_cfg }, { 0, NULL }, { 0, NULL }, { 0, NULL } };
+static bcmolt_group_ids group_ids_obj_epon_path_10g_us[] = { { 1, group_ids_epon_path_10g_us_key }, { 1, group_ids_epon_path_10g_us_cfg }, { 1, group_ids_epon_path_10g_us_stat }, { 26, group_ids_epon_path_10g_us_stat_cfg }, { 2, group_ids_epon_path_10g_us_auto }, { 1, group_ids_epon_path_10g_us_auto_cfg }, { 0, NULL }, { 0, NULL }, { 0, NULL } };
+static bcmolt_group_ids group_ids_obj_epon_path_1g_ds[] = { { 1, group_ids_epon_path_1g_ds_key }, { 1, group_ids_epon_path_1g_ds_cfg }, { 1, group_ids_epon_path_1g_ds_stat }, { 21, group_ids_epon_path_1g_ds_stat_cfg }, { 2, group_ids_epon_path_1g_ds_auto }, { 1, group_ids_epon_path_1g_ds_auto_cfg }, { 0, NULL }, { 0, NULL }, { 0, NULL } };
+static bcmolt_group_ids group_ids_obj_epon_path_1g_us[] = { { 1, group_ids_epon_path_1g_us_key }, { 1, group_ids_epon_path_1g_us_cfg }, { 1, group_ids_epon_path_1g_us_stat }, { 26, group_ids_epon_path_1g_us_stat_cfg }, { 2, group_ids_epon_path_1g_us_auto }, { 1, group_ids_epon_path_1g_us_auto_cfg }, { 0, NULL }, { 0, NULL }, { 0, NULL } };
+static bcmolt_group_ids group_ids_obj_epon_rp[] = { { 1, group_ids_epon_rp_key }, { 1, group_ids_epon_rp_cfg }, { 0, NULL }, { 0, NULL }, { 0, NULL }, { 0, NULL }, { 0, NULL }, { 0, NULL }, { 0, NULL } };
+static bcmolt_group_ids group_ids_obj_gpio[] = { { 1, group_ids_gpio_key }, { 1, group_ids_gpio_cfg }, { 0, NULL }, { 0, NULL }, { 0, NULL }, { 0, NULL }, { 0, NULL }, { 0, NULL }, { 0, NULL } };
+static bcmolt_group_ids group_ids_obj_gpon_alloc[] = { { 1, group_ids_gpon_alloc_key }, { 1, group_ids_gpon_alloc_cfg }, { 1, group_ids_gpon_alloc_stat }, { 1, group_ids_gpon_alloc_stat_cfg }, { 4, group_ids_gpon_alloc_auto }, { 1, group_ids_gpon_alloc_auto_cfg }, { 2, group_ids_gpon_alloc_oper }, { 0, NULL }, { 0, NULL } };
+static bcmolt_group_ids group_ids_obj_gpon_gem_port[] = { { 1, group_ids_gpon_gem_port_key }, { 1, group_ids_gpon_gem_port_cfg }, { 1, group_ids_gpon_gem_port_stat }, { 4, group_ids_gpon_gem_port_stat_cfg }, { 3, group_ids_gpon_gem_port_auto }, { 1, group_ids_gpon_gem_port_auto_cfg }, { 1, group_ids_gpon_gem_port_oper }, { 0, NULL }, { 0, NULL } };
+static bcmolt_group_ids group_ids_obj_gpon_iwf[] = { { 1, group_ids_gpon_iwf_key }, { 1, group_ids_gpon_iwf_cfg }, { 1, group_ids_gpon_iwf_stat }, { 8, group_ids_gpon_iwf_stat_cfg }, { 4, group_ids_gpon_iwf_auto }, { 1, group_ids_gpon_iwf_auto_cfg }, { 2, group_ids_gpon_iwf_oper }, { 0, NULL }, { 0, NULL } };
+static bcmolt_group_ids group_ids_obj_gpon_iwf_ds_egress_flow[] = { { 1, group_ids_gpon_iwf_ds_egress_flow_key }, { 1, group_ids_gpon_iwf_ds_egress_flow_cfg }, { 0, NULL }, { 0, NULL }, { 0, NULL }, { 0, NULL }, { 0, NULL }, { 0, NULL }, { 0, NULL } };
+static bcmolt_group_ids group_ids_obj_gpon_iwf_ds_ingress_flow[] = { { 1, group_ids_gpon_iwf_ds_ingress_flow_key }, { 1, group_ids_gpon_iwf_ds_ingress_flow_cfg }, { 0, NULL }, { 0, NULL }, { 0, NULL }, { 0, NULL }, { 0, NULL }, { 0, NULL }, { 0, NULL } };
+static bcmolt_group_ids group_ids_obj_gpon_iwf_mac_table[] = { { 1, group_ids_gpon_iwf_mac_table_key }, { 1, group_ids_gpon_iwf_mac_table_cfg }, { 0, NULL }, { 0, NULL }, { 4, group_ids_gpon_iwf_mac_table_auto }, { 1, group_ids_gpon_iwf_mac_table_auto_cfg }, { 0, NULL }, { 0, NULL }, { 0, NULL } };
+static bcmolt_group_ids group_ids_obj_gpon_iwf_us_flow[] = { { 1, group_ids_gpon_iwf_us_flow_key }, { 1, group_ids_gpon_iwf_us_flow_cfg }, { 0, NULL }, { 0, NULL }, { 0, NULL }, { 0, NULL }, { 0, NULL }, { 0, NULL }, { 0, NULL } };
+static bcmolt_group_ids group_ids_obj_gpon_ni[] = { { 1, group_ids_gpon_ni_key }, { 1, group_ids_gpon_ni_cfg }, { 1, group_ids_gpon_ni_stat }, { 34, group_ids_gpon_ni_stat_cfg }, { 19, group_ids_gpon_ni_auto }, { 1, group_ids_gpon_ni_auto_cfg }, { 9, group_ids_gpon_ni_oper }, { 2, group_ids_gpon_ni_proxy }, { 0, NULL } };
+static bcmolt_group_ids group_ids_obj_gpon_onu[] = { { 1, group_ids_gpon_onu_key }, { 1, group_ids_gpon_onu_cfg }, { 1, group_ids_gpon_onu_stat }, { 20, group_ids_gpon_onu_stat_cfg }, { 37, group_ids_gpon_onu_auto }, { 1, group_ids_gpon_onu_auto_cfg }, { 3, group_ids_gpon_onu_oper }, { 2, group_ids_gpon_onu_proxy }, { 2, group_ids_gpon_onu_proxy_rx } };
+static bcmolt_group_ids group_ids_obj_gpon_trx[] = { { 1, group_ids_gpon_trx_key }, { 1, group_ids_gpon_trx_cfg }, { 0, NULL }, { 0, NULL }, { 0, NULL }, { 0, NULL }, { 0, NULL }, { 0, NULL }, { 0, NULL } };
+static bcmolt_group_ids group_ids_obj_log_entry[] = { { 1, group_ids_log_entry_key }, { 1, group_ids_log_entry_cfg }, { 1, group_ids_log_entry_stat }, { 2, group_ids_log_entry_stat_cfg }, { 2, group_ids_log_entry_auto }, { 1, group_ids_log_entry_auto_cfg }, { 0, NULL }, { 0, NULL }, { 0, NULL } };
+static bcmolt_group_ids group_ids_obj_logger[] = { { 1, group_ids_logger_key }, { 1, group_ids_logger_cfg }, { 1, group_ids_logger_stat }, { 1, group_ids_logger_stat_cfg }, { 2, group_ids_logger_auto }, { 1, group_ids_logger_auto_cfg }, { 1, group_ids_logger_oper }, { 0, NULL }, { 0, NULL } };
+static bcmolt_group_ids group_ids_obj_nni[] = { { 1, group_ids_nni_key }, { 1, group_ids_nni_cfg }, { 1, group_ids_nni_stat }, { 63, group_ids_nni_stat_cfg }, { 3, group_ids_nni_auto }, { 1, group_ids_nni_auto_cfg }, { 0, NULL }, { 0, NULL }, { 0, NULL } };
+static bcmolt_group_ids group_ids_obj_nni_serdes[] = { { 1, group_ids_nni_serdes_key }, { 1, group_ids_nni_serdes_cfg }, { 0, NULL }, { 0, NULL }, { 0, NULL }, { 0, NULL }, { 0, NULL }, { 0, NULL }, { 0, NULL } };
+static bcmolt_group_ids group_ids_obj_software_error[] = { { 1, group_ids_software_error_key }, { 1, group_ids_software_error_cfg }, { 0, NULL }, { 0, NULL }, { 0, NULL }, { 0, NULL }, { 0, NULL }, { 0, NULL }, { 0, NULL } };
+static bcmolt_group_ids group_ids_obj_trx_calibration[] = { { 1, group_ids_trx_calibration_key }, { 0, NULL }, { 0, NULL }, { 0, NULL }, { 1, group_ids_trx_calibration_auto }, { 1, group_ids_trx_calibration_auto_cfg }, { 2, group_ids_trx_calibration_oper }, { 0, NULL }, { 0, NULL } };
+static bcmolt_group_ids group_ids_obj_xgpon_alloc[] = { { 1, group_ids_xgpon_alloc_key }, { 1, group_ids_xgpon_alloc_cfg }, { 1, group_ids_xgpon_alloc_stat }, { 1, group_ids_xgpon_alloc_stat_cfg }, { 4, group_ids_xgpon_alloc_auto }, { 1, group_ids_xgpon_alloc_auto_cfg }, { 2, group_ids_xgpon_alloc_oper }, { 0, NULL }, { 0, NULL } };
+static bcmolt_group_ids group_ids_obj_xgpon_gem_port[] = { { 1, group_ids_xgpon_gem_port_key }, { 1, group_ids_xgpon_gem_port_cfg }, { 1, group_ids_xgpon_gem_port_stat }, { 4, group_ids_xgpon_gem_port_stat_cfg }, { 2, group_ids_xgpon_gem_port_auto }, { 1, group_ids_xgpon_gem_port_auto_cfg }, { 0, NULL }, { 0, NULL }, { 0, NULL } };
+static bcmolt_group_ids group_ids_obj_xgpon_iwf[] = { { 1, group_ids_xgpon_iwf_key }, { 1, group_ids_xgpon_iwf_cfg }, { 0, NULL }, { 0, NULL }, { 0, NULL }, { 0, NULL }, { 0, NULL }, { 0, NULL }, { 0, NULL } };
+static bcmolt_group_ids group_ids_obj_xgpon_ni[] = { { 1, group_ids_xgpon_ni_key }, { 1, group_ids_xgpon_ni_cfg }, { 1, group_ids_xgpon_ni_stat }, { 35, group_ids_xgpon_ni_stat_cfg }, { 19, group_ids_xgpon_ni_auto }, { 1, group_ids_xgpon_ni_auto_cfg }, { 10, group_ids_xgpon_ni_oper }, { 2, group_ids_xgpon_ni_proxy }, { 0, NULL } };
+static bcmolt_group_ids group_ids_obj_xgpon_onu[] = { { 1, group_ids_xgpon_onu_key }, { 1, group_ids_xgpon_onu_cfg }, { 1, group_ids_xgpon_onu_stat }, { 20, group_ids_xgpon_onu_stat_cfg }, { 33, group_ids_xgpon_onu_auto }, { 1, group_ids_xgpon_onu_auto_cfg }, { 10, group_ids_xgpon_onu_oper }, { 2, group_ids_xgpon_onu_proxy }, { 2, group_ids_xgpon_onu_proxy_rx } };
+static bcmolt_group_ids group_ids_obj_xgpon_trx[] = { { 1, group_ids_xgpon_trx_key }, { 1, group_ids_xgpon_trx_cfg }, { 0, NULL }, { 0, NULL }, { 0, NULL }, { 0, NULL }, { 0, NULL }, { 0, NULL }, { 0, NULL } };
+static bcmolt_group_ids group_ids_obj_xpon_serdes[] = { { 1, group_ids_xpon_serdes_key }, { 1, group_ids_xpon_serdes_cfg }, { 0, NULL }, { 0, NULL }, { 0, NULL }, { 0, NULL }, { 0, NULL }, { 0, NULL }, { 0, NULL } };
+static bcmolt_group_ids *group_ids[] = { group_ids_obj_ae_ni, group_ids_obj_ae_path_ds, group_ids_obj_ae_path_us, group_ids_obj_channel, group_ids_obj_debug, group_ids_obj_device, group_ids_obj_epon_denied_link, group_ids_obj_epon_link, group_ids_obj_epon_ni, group_ids_obj_epon_onu_10g_us, group_ids_obj_epon_onu_1g_us, group_ids_obj_epon_path_10g_ds, group_ids_obj_epon_path_10g_us, group_ids_obj_epon_path_1g_ds, group_ids_obj_epon_path_1g_us, group_ids_obj_epon_rp, group_ids_obj_gpio, group_ids_obj_gpon_alloc, group_ids_obj_gpon_gem_port, group_ids_obj_gpon_iwf, group_ids_obj_gpon_iwf_ds_egress_flow, group_ids_obj_gpon_iwf_ds_ingress_flow, group_ids_obj_gpon_iwf_mac_table, group_ids_obj_gpon_iwf_us_flow, group_ids_obj_gpon_ni, group_ids_obj_gpon_onu, group_ids_obj_gpon_trx, group_ids_obj_log_entry, group_ids_obj_logger, group_ids_obj_nni, group_ids_obj_nni_serdes, group_ids_obj_software_error, group_ids_obj_trx_calibration, group_ids_obj_xgpon_alloc, group_ids_obj_xgpon_gem_port, group_ids_obj_xgpon_iwf, group_ids_obj_xgpon_ni, group_ids_obj_xgpon_onu, group_ids_obj_xgpon_trx, group_ids_obj_xpon_serdes };
+static bcmolt_presence_mask readonly_prop_mask[] = { (1ULL << BCMOLT_AE_NI_CFG_ID_AE_NI_EN) | (1ULL << BCMOLT_AE_NI_CFG_ID_PRBS_STATUS), 0, 0, 0, (((1ULL << BCMOLT_DEBUG_CFG_ID_INDICATIONS_DROPPED) | (1ULL << BCMOLT_DEBUG_CFG_ID_FILE_USED_PERCENT)) | (1ULL << BCMOLT_DEBUG_CFG_ID_API_CAPTURE_STATS)) | (1ULL << BCMOLT_DEBUG_CFG_ID_API_CAPTURE_BUFFER), ((((((1ULL << BCMOLT_DEVICE_CFG_ID_FIRMWARE_SW_VERSION) | (1ULL << BCMOLT_DEVICE_CFG_ID_HOST_SW_VERSION)) | (1ULL << BCMOLT_DEVICE_CFG_ID_CHIP_REVISION)) | (1ULL << BCMOLT_DEVICE_CFG_ID_STATE)) | (1ULL << BCMOLT_DEVICE_CFG_ID_CHIP_TEMPERATURE)) | (1ULL << BCMOLT_DEVICE_CFG_ID_EMBEDDED_IMAGE_LIST)) | (1ULL << BCMOLT_DEVICE_CFG_ID_CHIP_VOLTAGE), 1ULL << BCMOLT_EPON_DENIED_LINK_CFG_ID_ALARM_STATE, ((((((((((1ULL << BCMOLT_EPON_LINK_CFG_ID_LINK_RATE) | (1ULL << BCMOLT_EPON_LINK_CFG_ID_STATE_FLAGS)) | (1ULL << BCMOLT_EPON_LINK_CFG_ID_LLID)) | (1ULL << BCMOLT_EPON_LINK_CFG_ID_LASER_ON_TIME_TQ)) | (1ULL << BCMOLT_EPON_LINK_CFG_ID_LASER_OFF_TIME_TQ)) | (1ULL << BCMOLT_EPON_LINK_CFG_ID_RANGE_VALUE_TQ)) | (1ULL << BCMOLT_EPON_LINK_CFG_ID_DISTANCE)) | (1ULL << BCMOLT_EPON_LINK_CFG_ID_ALARM_STATE)) | (1ULL << BCMOLT_EPON_LINK_CFG_ID_UBD_INFO)) | (1ULL << BCMOLT_EPON_LINK_CFG_ID_PENDING_GRANTS)) | (1ULL << BCMOLT_EPON_LINK_CFG_ID_LINK_TYPE), (((((1ULL << BCMOLT_EPON_NI_CFG_ID_EPON_NI_EN) | (1ULL << BCMOLT_EPON_NI_CFG_ID_ALARM_STATE)) | (1ULL << BCMOLT_EPON_NI_CFG_ID_ALL_LINKS)) | (1ULL << BCMOLT_EPON_NI_CFG_ID_APPROXIMATE_SOLICITED_USAGE)) | (1ULL << BCMOLT_EPON_NI_CFG_ID_APPROXIMATE_TDM_USAGE)) | (1ULL << BCMOLT_EPON_NI_CFG_ID_ESTIMATED_PON_LATENCY_TQ), 1ULL << BCMOLT_EPON_ONU_10G_US_CFG_ID_ALL_LINKS, 1ULL << BCMOLT_EPON_ONU_1G_US_CFG_ID_ALL_LINKS, 0, 1ULL << BCMOLT_EPON_PATH_10G_US_CFG_ID_PRBS_STATUS, 0, 1ULL << BCMOLT_EPON_PATH_1G_US_CFG_ID_PRBS_STATUS, 0, 0, 1ULL << BCMOLT_GPON_ALLOC_CFG_ID_STATE, 1ULL << BCMOLT_GPON_GEM_PORT_CFG_ID_GEM_PORT_STATE, 1ULL << BCMOLT_GPON_IWF_CFG_ID_MAC_TABLE_COUNT, 0, 0, (1ULL << BCMOLT_GPON_IWF_MAC_TABLE_CFG_ID_GEM_PORT_ID) | (1ULL << BCMOLT_GPON_IWF_MAC_TABLE_CFG_ID_ONU_ID), 0, (((((((1ULL << BCMOLT_GPON_NI_CFG_ID_PON_STATUS) | (1ULL << BCMOLT_GPON_NI_CFG_ID_AVAILABLE_BANDWIDTH)) | (1ULL << BCMOLT_GPON_NI_CFG_ID_NUMBER_OF_ACTIVE_ONUS)) | (1ULL << BCMOLT_GPON_NI_CFG_ID_NUMBER_OF_ACTIVE_STANDBY_ONUS)) | (1ULL << BCMOLT_GPON_NI_CFG_ID_PRBS_STATUS)) | (1ULL << BCMOLT_GPON_NI_CFG_ID_RANGING_WINDOW_SIZE)) | (1ULL << BCMOLT_GPON_NI_CFG_ID_ALL_ONUS)) | (1ULL << BCMOLT_GPON_NI_CFG_ID_ALL_MCAST_GEM_PORTS), ((((1ULL << BCMOLT_GPON_ONU_CFG_ID_ONU_STATE) | (1ULL << BCMOLT_GPON_ONU_CFG_ID_DISABLED_AFTER_DISCOVERY)) | (1ULL << BCMOLT_GPON_ONU_CFG_ID_DEACTIVATION_REASON)) | (1ULL << BCMOLT_GPON_ONU_CFG_ID_ALL_GEM_PORTS)) | (1ULL << BCMOLT_GPON_ONU_CFG_ID_ALL_ALLOCS), (1ULL << BCMOLT_GPON_TRX_CFG_ID_PLO_RANGING) | (1ULL << BCMOLT_GPON_TRX_CFG_ID_PLO_DATA), ((1ULL << BCMOLT_LOG_ENTRY_CFG_ID_DEFAULT_LOG_LEVEL) | (1ULL << BCMOLT_LOG_ENTRY_CFG_ID_DEFAULT_LOG_TYPE)) | (1ULL << BCMOLT_LOG_ENTRY_CFG_ID_LOG_NAME), (1ULL << BCMOLT_LOGGER_CFG_ID_BUFFER) | (1ULL << BCMOLT_LOGGER_CFG_ID_LOG_NAMES), (1ULL << BCMOLT_NNI_CFG_ID_NNI_STATUS) | (1ULL << BCMOLT_NNI_CFG_ID_NNI_BACKUP_STATUS), 0, 1ULL << BCMOLT_SOFTWARE_ERROR_CFG_ID_ENTRY, 0, 1ULL << BCMOLT_XGPON_ALLOC_CFG_ID_STATE, 1ULL << BCMOLT_XGPON_GEM_PORT_CFG_ID_GEM_PORT_STATE, 0, ((((((1ULL << BCMOLT_XGPON_NI_CFG_ID_AVAILABLE_BANDWIDTH) | (1ULL << BCMOLT_XGPON_NI_CFG_ID_NUMBER_OF_ACTIVE_ONUS)) | (1ULL << BCMOLT_XGPON_NI_CFG_ID_PON_STATUS)) | (1ULL << BCMOLT_XGPON_NI_CFG_ID_RANGING_WINDOW_SIZE)) | (1ULL << BCMOLT_XGPON_NI_CFG_ID_PRBS_STATUS)) | (1ULL << BCMOLT_XGPON_NI_CFG_ID_ALL_ONUS)) | (1ULL << BCMOLT_XGPON_NI_CFG_ID_ALL_MCAST_GEM_PORTS), (((((1ULL << BCMOLT_XGPON_ONU_CFG_ID_ONU_OLD_STATE) | (1ULL << BCMOLT_XGPON_ONU_CFG_ID_DISABLED_AFTER_DISCOVERY)) | (1ULL << BCMOLT_XGPON_ONU_CFG_ID_DEACTIVATION_REASON)) | (1ULL << BCMOLT_XGPON_ONU_CFG_ID_ALL_GEM_PORTS)) | (1ULL << BCMOLT_XGPON_ONU_CFG_ID_ALL_ALLOCS)) | (1ULL << BCMOLT_XGPON_ONU_CFG_ID_REQUEST_REGISTRATION_STATUS), 0, 0 };
+static bcmolt_instance_info instance_info[] = { { offsetof(bcmolt_ae_ni_key, ae_ni), sizeof(bcmolt_ae_ni) }, { offsetof(bcmolt_ae_path_ds_key, ae_ni), sizeof(bcmolt_ae_ni) }, { offsetof(bcmolt_ae_path_us_key, ae_ni), sizeof(bcmolt_ae_ni) }, { offsetof(bcmolt_channel_key, pon_ni), sizeof(bcmolt_pon_ni) }, { offsetof(bcmolt_debug_key, reserved), sizeof(uint32_t) }, { offsetof(bcmolt_device_key, reserved), sizeof(uint32_t) }, { offsetof(bcmolt_epon_denied_link_key, epon_ni), sizeof(bcmolt_epon_ni) }, { offsetof(bcmolt_epon_link_key, epon_ni), sizeof(bcmolt_epon_ni) }, { offsetof(bcmolt_epon_ni_key, epon_ni), sizeof(bcmolt_epon_ni) }, { offsetof(bcmolt_epon_onu_10g_us_key, epon_ni), sizeof(bcmolt_epon_ni) }, { offsetof(bcmolt_epon_onu_1g_us_key, epon_ni), sizeof(bcmolt_epon_ni) }, { offsetof(bcmolt_epon_path_10g_ds_key, epon_ni), sizeof(bcmolt_epon_ni) }, { offsetof(bcmolt_epon_path_10g_us_key, epon_ni), sizeof(bcmolt_epon_ni) }, { offsetof(bcmolt_epon_path_1g_ds_key, epon_ni), sizeof(bcmolt_epon_ni) }, { offsetof(bcmolt_epon_path_1g_us_key, epon_ni), sizeof(bcmolt_epon_ni) }, { offsetof(bcmolt_epon_rp_key, epon_ni), sizeof(bcmolt_epon_ni) }, { offsetof(bcmolt_gpio_key, reserved), sizeof(uint32_t) }, { offsetof(bcmolt_gpon_alloc_key, pon_ni), sizeof(bcmolt_gpon_ni) }, { offsetof(bcmolt_gpon_gem_port_key, pon_ni), sizeof(bcmolt_gpon_ni) }, { offsetof(bcmolt_gpon_iwf_key, pon_ni), sizeof(bcmolt_gpon_ni) }, { offsetof(bcmolt_gpon_iwf_ds_egress_flow_key, pon_ni), sizeof(bcmolt_gpon_ni) }, { offsetof(bcmolt_gpon_iwf_ds_ingress_flow_key, pon_ni), sizeof(bcmolt_gpon_ni) }, { offsetof(bcmolt_gpon_iwf_mac_table_key, pon_ni), sizeof(bcmolt_gpon_ni) }, { offsetof(bcmolt_gpon_iwf_us_flow_key, pon_ni), sizeof(bcmolt_gpon_ni) }, { offsetof(bcmolt_gpon_ni_key, pon_ni), sizeof(bcmolt_gpon_ni) }, { offsetof(bcmolt_gpon_onu_key, pon_ni), sizeof(bcmolt_gpon_ni) }, { offsetof(bcmolt_gpon_trx_key, pon_ni), sizeof(bcmolt_gpon_ni) }, { offsetof(bcmolt_log_entry_key, reserved), sizeof(uint8_t) }, { offsetof(bcmolt_logger_key, reserved), sizeof(uint32_t) }, { offsetof(bcmolt_nni_key, pon_ni), sizeof(bcmolt_pon_ni) }, { offsetof(bcmolt_nni_serdes_key, pon_ni), sizeof(bcmolt_pon_ni) }, { offsetof(bcmolt_software_error_key, reserved), sizeof(uint32_t) }, { offsetof(bcmolt_trx_calibration_key, reserved), sizeof(uint32_t) }, { offsetof(bcmolt_xgpon_alloc_key, pon_ni), sizeof(bcmolt_xgpon_ni) }, { offsetof(bcmolt_xgpon_gem_port_key, pon_ni), sizeof(bcmolt_xgpon_ni) }, { offsetof(bcmolt_xgpon_iwf_key, pon_ni), sizeof(bcmolt_xgpon_ni) }, { offsetof(bcmolt_xgpon_ni_key, pon_ni), sizeof(bcmolt_xgpon_ni) }, { offsetof(bcmolt_xgpon_onu_key, pon_ni), sizeof(bcmolt_xgpon_ni) }, { offsetof(bcmolt_xgpon_trx_key, pon_ni), sizeof(bcmolt_xgpon_ni) }, { offsetof(bcmolt_xpon_serdes_key, pon_ni), sizeof(bcmolt_pon_ni) } };
+
+/******************************************************************************/
+static bcmos_bool bcmolt_get_group_info(const bcmolt_msg *msg, bcmolt_group_info **group, bcmolt_group_info **key)
+{
+    bcmolt_group_id group_id;
+    bcmolt_group_id key_id;
+    bcmos_errno err;
+
+    err = bcmolt_group_id_combine(msg->obj_type, msg->group, msg->subgroup, &group_id);
+    if (err != BCM_ERR_OK)
+    {
+        return BCMOS_FALSE;
+    }
+
+    err = bcmolt_group_id_combine(msg->obj_type, BCMOLT_MGT_GROUP_KEY, 0, &key_id);
+    if (err != BCM_ERR_OK)
+    {
+        return BCMOS_FALSE;
+    }
+
+    *group = group_info[group_id];
+    *key = group_info[key_id];
+    return BCMOS_TRUE;
+}
+
+/******************************************************************************/
+int32_t bcmolt_msg_get_packed_length(bcmolt_msg *msg)
+{
+    uint8_t *key_ptr;
+    bcmolt_group_info *group;
+    bcmolt_group_info *key;
+
+    int32_t ret = bcmolt_msg_hdr_get_packed_length(msg);
+    if (ret < 0)
+    {
+        return ret;
+    }
+
+    if (!bcmolt_get_group_info(msg, &group, &key))
+    {
+        return (int32_t) BCM_ERR_MSG_ERROR;
+    }
+
+    key_ptr = (uint8_t *) (msg + 1);
+    ret += key->get_packed_length(key_ptr, BCMOLT_PRESENCE_MASK_ALL);
+
+    if (bcmolt_msg_should_pack_data(msg) && (group->get_packed_length != NULL))
+    {
+        uint8_t *data_ptr = (uint8_t *) ((long)msg + group->data_offset);
+        ret += group->get_packed_length(data_ptr, msg->presence_mask);
+    }
+
+    if (msg->type & BCMOLT_MSG_TYPE_MULTI)
+    {
+        if (msg->msg_set == NULL)
+        {
+            return (int32_t) BCM_ERR_NULL;
+        }
+
+        if (msg->dir == BCMOLT_MSG_DIR_REQUEST)
+        {
+            ret += 19;  /* group: 1, max_instances: 2, presence_mask: 8, filter_flags: 8 */
+        }
+        else
+        {
+            int i;
+            int32_t sub_msg_ret;
+
+            ret += 3;   /* group: num_instances: 2, more: 1 */
+            ret += key->get_packed_length(key_ptr, BCMOLT_PRESENCE_MASK_ALL);   /* next key */
+            for (i = 0; i < msg->msg_set->num_instances; i++)
+            {
+                if (msg->msg_set->msg[i] == NULL)
+                {
+                    return (int32_t) BCM_ERR_INTERNAL;
+                }
+
+                sub_msg_ret = bcmolt_msg_get_packed_length(msg->msg_set->msg[i]);
+                if (sub_msg_ret < 0)
+                {
+                    return sub_msg_ret;
+                }
+
+                ret += sub_msg_ret;
+            }
+        }
+    }
+
+    return ret;
+}
+
+/* Create message set */
+bcmos_errno bcmolt_msg_set_alloc(bcmolt_obj_id obj, bcmolt_mgt_group group, uint32_t max_instances, bcmolt_msg_set **msg_set)
+{
+    bcmolt_msg hdr = { };
+    uint32_t size;
+    bcmolt_group_info *grp;
+    bcmolt_group_info *key;
+
+    if (msg_set == NULL)
+    {
+        BCMOS_TRACE_RETURN(BCM_ERR_PARM, "msg_set parameter must be set\n");
+    }
+
+    if (group != BCMOLT_MGT_GROUP_CFG && group != BCMOLT_MGT_GROUP_STAT)
+    {
+        BCMOS_TRACE_RETURN(BCM_ERR_NOT_SUPPORTED, "group must be BCMOLT_MGT_GROUP_CFG or BCMOLT_MGT_GROUP_STAT\n");
+    }
+
+    /* Calculate message set size */
+    hdr.obj_type = obj;
+    hdr.group = group;
+    hdr.dir = BCMOLT_MSG_DIR_REQUEST;
+    if (!bcmolt_get_group_info(&hdr, &grp, &key))
+    {
+        BCMOS_TRACE_RETURN(BCM_ERR_NOT_SUPPORTED, "Not supported for the object\n");
+    }
+
+    size = sizeof(bcmolt_msg_set) + key->size + max_instances * sizeof(bcmolt_msg *);
+    *msg_set = bcmos_calloc(size);
+    if (*msg_set == NULL)
+    {
+        BCMOS_TRACE_RETURN(BCM_ERR_NOMEM, "Can't allocate message set\n");
+    }
+    (*msg_set)->group = group;
+    (*msg_set)->max_instances = max_instances;
+    (*msg_set)->next_key = (void *)(&((*msg_set)->msg[max_instances]));
+
+    return BCM_ERR_OK;
+}
+
+/* Release message set
+ * \param[in]   msg_set
+ */
+void bcmolt_msg_set_free(bcmolt_msg_set *msg_set)
+{
+    uint32_t i;
+
+    for (i = 0; i < msg_set->max_instances && msg_set->msg[i] != NULL; i++)
+    {
+        bcmolt_msg_free(msg_set->msg[i]);
+    }
+
+    bcmos_free(msg_set);
+}
+
+/* Pack message set, excluding the filter-header which is already packed */
+static bcmos_errno bcmolt_msg_set_pack(const bcmolt_msg *msg, bcmolt_buf *buf, const bcmolt_group_info *key_info)
+{
+    bcmolt_msg_set *msg_set = msg->msg_set;
+    int i;
+    bcmos_bool ret;
+    bcmos_errno err = BCM_ERR_OK;
+
+    if (!msg_set)
+    {
+        BCMOS_TRACE_RETURN(BCM_ERR_INTERNAL, "msh->msg_set == NULL\n");
+    }
+
+    /* REQUEST:
+     * - filter (already packed at this point, contains first key to check)
+     * - group (FFU)
+     * - max_instances
+     * - presence_mask
+     * - filter_flags
+     *
+     * RESPONSE:
+     * - filter (already packed at this point)
+     * - num_instances
+     * - more
+     * - next_key
+     * - num_instances * msg
+     */
+    if (msg->dir == BCMOLT_MSG_DIR_REQUEST)
+    {
+        ret = bcmolt_buf_write_u8(buf, (uint8_t) msg_set->group);
+        ret = ret && bcmolt_buf_write_u16(buf, msg_set->max_instances);
+        ret = ret && bcmolt_buf_write_u64(buf, msg_set->presence_mask);
+        ret = ret && bcmolt_buf_write_u64(buf, msg_set->filter_flags);
+        if (!ret) err = BCM_ERR_OVERFLOW;
+    }
+    else
+    {
+        ret = bcmolt_buf_write_u16(buf, msg_set->num_instances);
+        ret = ret && bcmolt_buf_write_u8(buf, (uint8_t) msg_set->more);
+        ret = ret && key_info->pack(msg_set->next_key, buf, BCMOLT_PRESENCE_MASK_ALL);
+        if (!ret) return BCM_ERR_OVERFLOW;
+
+        for (i = 0; i < msg_set->num_instances && err == BCM_ERR_OK; i++)
+        {
+            if (msg_set->msg[i] == NULL)
+            {
+                err = BCM_ERR_INTERNAL;
+                break;
+            }
+
+            err = bcmolt_msg_pack(msg_set->msg[i], buf);
+        }
+    }
+
+    return err;
+}
+
+/******************************************************************************/
+bcmos_errno bcmolt_msg_pack(bcmolt_msg *msg, bcmolt_buf *buf)
+{
+    uint8_t *key_ptr;
+    bcmos_errno err;
+    bcmolt_group_info *group;
+    bcmolt_group_info *key;
+
+    if (!bcmolt_get_group_info(msg, &group, &key))
+    {
+        return BCM_ERR_MSG_ERROR;
+    }
+
+    err = bcmolt_msg_hdr_pack(msg, buf);
+    if (err != BCM_ERR_OK)
+    {
+        return err;
+    }
+
+    key_ptr = (uint8_t *) (msg + 1);
+    if (!key->pack(key_ptr, buf, BCMOLT_PRESENCE_MASK_ALL))
+    {
+        return BCM_ERR_OVERFLOW;
+    }
+
+    if (bcmolt_msg_should_pack_data(msg) && (group->pack != NULL))
+    {
+        uint8_t *data_ptr = (uint8_t *) ((long)msg + group->data_offset);
+        if (!group->pack(data_ptr, buf, msg->presence_mask))
+        {
+            return BCM_ERR_OVERFLOW;
+        }
+    }
+
+    /* If it is a multi-message pack what follows the rest of the set */
+    if (msg->type & BCMOLT_MSG_TYPE_MULTI)
+    {
+        err = bcmolt_msg_set_pack(msg, buf, key);
+    }
+
+    return err;
+}
+
+/* scan the input buffer to determine how much memory will be required to unpack variable-sized lists */
+static bcmos_errno bcmolt_msg_list_mem_scan(bcmolt_buf *buf, const bcmolt_msg *hdr, const bcmolt_group_info *group, const bcmolt_group_info *key, uint32_t *size)
+{
+    uint32_t pos_before_scan = bcmolt_buf_get_used(buf);
+
+    if (!key->mem_scan(buf, size, BCMOLT_PRESENCE_MASK_ALL))
+    {
+        return BCM_ERR_OVERFLOW;
+    }
+
+    if (bcmolt_msg_should_pack_data(hdr) && (group->mem_scan != NULL) && !group->mem_scan(buf, size, hdr->presence_mask))
+    {
+        return BCM_ERR_OVERFLOW;
+    }
+
+    if (!bcmolt_buf_rewind(buf, bcmolt_buf_get_used(buf) - pos_before_scan))
+    {
+        return BCM_ERR_OVERFLOW;
+    }
+
+    return BCM_ERR_OK;
+}
+
+/* Pack message set, excluding the filter-header which is already packed */
+static bcmos_errno bcmolt_msg_set_unpack(bcmolt_msg *msg, bcmolt_buf *buf, const bcmolt_group_info *key_info)
+{
+    bcmolt_msg_set *msg_set;
+    int i;
+    bcmos_bool ret;
+    bcmos_errno err = BCM_ERR_OK;
+
+    /*
+     * See encoding in bcmolt_msg_set_pack()
+     */
+    if (msg->dir == BCMOLT_MSG_DIR_REQUEST)
+    {
+        uint8_t group;
+        uint16_t max_instances;
+        uint64_t filter_flags;
+
+        ret = bcmolt_buf_read_u8(buf, &group);
+        ret = ret && bcmolt_buf_read_u16(buf, &max_instances);
+        if (!ret)
+        {
+            return BCM_ERR_OVERFLOW;
+        }
+
+        err = bcmolt_msg_set_alloc(msg->obj_type, group, max_instances, &msg_set);
+        if (err) return err;
+
+        ret = ret && bcmolt_buf_read_u64(buf, &msg_set->presence_mask);
+        ret = ret && bcmolt_buf_read_u64(buf, &filter_flags);
+        if (!ret)
+        {
+            bcmolt_msg_set_free(msg_set);
+            return BCM_ERR_OVERFLOW;
+        }
+
+        msg_set->filter_flags = filter_flags;
+        msg->msg_set = msg_set;
+    }
+    else
+    {
+        uint8_t is_more;
+        uint16_t num_instances;
+
+        ret = bcmolt_buf_read_u16(buf, &num_instances);
+        if (!ret)
+        {
+            return BCM_ERR_OVERFLOW;
+        }
+
+        if (msg->msg_set == NULL)
+        {
+            err = bcmolt_msg_set_alloc(msg->obj_type, msg->group, num_instances, &msg->msg_set);
+            if (BCM_ERR_OK != err)
+            {
+                return err;
+            }
+        }
+
+        msg_set = msg->msg_set;
+        msg_set->num_instances = num_instances;
+        ret = ret && bcmolt_buf_read_u8(buf, &is_more);
+        ret = ret && key_info->unpack(msg_set->next_key, buf, NULL, BCMOLT_PRESENCE_MASK_ALL);
+        if (!ret)
+        {
+            return BCM_ERR_OVERFLOW;
+        }
+
+        msg_set->more = (bcmos_bool) is_more;
+        if (msg_set->num_instances > msg_set->max_instances)
+        {
+            BCMOS_TRACE_RETURN(BCM_ERR_INTERNAL, "msg_set unpack: num_instances %u > max_instances %u\n", msg_set->num_instances, msg_set->max_instances);
+        }
+
+        for (i = 0; i < msg_set->num_instances && err == BCM_ERR_OK; i++)
+        {
+            err = bcmolt_msg_unpack(buf, &msg_set->msg[i]);
+        }
+    }
+
+    return err;
+}
+
+/******************************************************************************/
+bcmos_errno bcmolt_msg_unpack(bcmolt_buf *buf, bcmolt_msg **unpacked)
+{
+    bcmolt_msg hdr = { };
+    bcmos_errno err;
+    bcmolt_group_info *group;
+    bcmolt_group_info *key;
+    bcmos_bool did_malloc = BCMOS_FALSE;
+    uint8_t *key_ptr;
+    void *list_mem = NULL;
+    void **list_mem_ptr = NULL;
+
+    err = bcmolt_msg_hdr_unpack(&hdr, buf);
+    if (err != BCM_ERR_OK)
+    {
+        return err;
+    }
+
+    if (!bcmolt_get_group_info(&hdr, &group, &key))
+    {
+        return BCM_ERR_MSG_ERROR;
+    }
+
+    if (*unpacked == NULL)
+    {
+        uint32_t size = group->container_size == 0 ? sizeof(bcmolt_msg) + key->size : group->container_size;
+        err = bcmolt_msg_list_mem_scan(buf, &hdr, group, key, &size);
+        if (err != BCM_ERR_OK)
+        {
+            return err;
+        }
+
+        *unpacked = bcmos_calloc(size);
+        if (*unpacked == NULL)
+        {
+            return BCM_ERR_NOMEM;
+        }
+
+        list_mem = (uint8_t *) (*unpacked) + group->container_size;
+        list_mem_ptr = &list_mem;
+        did_malloc = BCMOS_TRUE;
+    }
+    else
+    {
+        if ((*unpacked)->list_buf != NULL)
+        {
+            uint32_t size = 0;
+            err = bcmolt_msg_list_mem_scan(buf, &hdr, group, key, &size);
+            if (err != BCM_ERR_OK)
+            {
+                return err;
+            }
+
+            if (size > (*unpacked)->list_buf_size)
+            {
+                return BCM_ERR_INSUFFICIENT_LIST_MEM;
+            }
+
+            list_mem = (*unpacked)->list_buf;
+            list_mem_ptr = &list_mem;
+        }
+    }
+
+    hdr.msg_set = (*unpacked)->msg_set;
+    **unpacked = hdr;
+
+    key_ptr = (uint8_t *) (*unpacked + 1);
+    if (!key->unpack(key_ptr, buf, list_mem_ptr, BCMOLT_PRESENCE_MASK_ALL))
+    {
+        if (did_malloc)
+        {
+            bcmos_free(*unpacked);
+        }
+
+        return BCM_ERR_OVERFLOW;
+    }
+
+    if (bcmolt_msg_should_pack_data(&hdr))
+    {
+        uint8_t *data_ptr = (uint8_t *) (*unpacked) + group->data_offset;
+        if ((group->unpack != NULL) && !group->unpack(data_ptr, buf, list_mem_ptr, hdr.presence_mask))
+        {
+            if (did_malloc)
+            {
+                bcmos_free(*unpacked);
+            }
+
+            return BCM_ERR_OVERFLOW;
+        }
+    }
+
+    /* If it is a multi-message pack what follows the rest of the set */
+    if (hdr.type & BCMOLT_MSG_TYPE_MULTI)
+    {
+        err = bcmolt_msg_set_unpack(*unpacked, buf, key);
+        if (err != BCM_ERR_OK)
+        {
+            if (did_malloc)
+            {
+                bcmos_free(*unpacked);
+            }
+
+            return err;
+        }
+    }
+
+    return BCM_ERR_OK;
+}
+
+/******************************************************************************/
+bcmos_errno bcmolt_group_id_split(bcmolt_group_id group_id, bcmolt_obj_id *obj, bcmolt_mgt_group *group, uint16_t *subgroup)
+{
+    if ((group_id >= BCMOLT_GROUP_ID__NUM_OF) || (group_info[group_id] == NULL))
+    {
+        return BCM_ERR_RANGE;
+    }
+
+    *obj = group_info[group_id]->obj_type;
+    *group = group_info[group_id]->group;
+    *subgroup = group_info[group_id]->subgroup;
+    return BCM_ERR_OK;
+}
+
+/******************************************************************************/
+bcmos_errno bcmolt_group_id_combine(bcmolt_obj_id obj, bcmolt_mgt_group group, uint16_t subgroup, bcmolt_group_id *group_id)
+{
+    if ((obj >= BCMOLT_OBJ_ID__NUM_OF) || (group >= BCMOLT_MGT_GROUP__NUM_OF) || (group_ids[obj] == NULL) || (subgroup >= group_ids[obj][group].subgroup_count))
+    {
+        return BCM_ERR_RANGE;
+    }
+
+    *group_id = group_ids[obj][group].subgroup_ids[subgroup];
+    return BCM_ERR_OK;
+}
+
+/******************************************************************************/
+uint8_t bcmolt_msg_instance(const bcmolt_msg *msg)
+{
+    const void *val_ptr;
+
+    if (msg->obj_type >= BCMOLT_OBJ_ID__NUM_OF)
+    {
+        return 0;
+    }
+
+    if (instance_info[msg->obj_type].offset < 0)
+    {
+        return 0;
+    }
+
+    val_ptr = ((const uint8_t *)(msg + 1)) + instance_info[msg->obj_type].offset;
+
+    /** This is probably not the smartest way to do this... TODO: revisit */
+    switch (instance_info[msg->obj_type].size)
+    {
+        case 1:
+            return *((const uint8_t *)val_ptr);
+        case 2:
+            return (uint8_t) (*((const uint16_t *)val_ptr));
+        case 4:
+            return (uint8_t) (*((const uint32_t *)val_ptr));
+        case 8:
+            return (uint8_t) (*((const uint64_t *)val_ptr));
+        default:
+            return 0;
+    }
+}
+
+/******************************************************************************/
+bcmos_errno bcmolt_msg_clone(bcmolt_msg **dest, bcmolt_msg *src)
+{
+    bcmos_errno err;
+    int32_t packed_len;
+    uint8_t *mem;
+    bcmolt_buf buf;
+
+    packed_len = bcmolt_msg_get_packed_length(src);
+    if (packed_len < 0)
+    {
+        return (bcmos_errno) packed_len;
+    }
+
+    mem = bcmos_calloc((uint32_t) packed_len);
+    if (mem == NULL)
+    {
+        return BCM_ERR_NOMEM;
+    }
+
+    bcmolt_buf_init(&buf, (uint32_t) packed_len, mem, BCMOLT_BUF_ENDIAN_FIXED);
+    err = bcmolt_msg_pack(src, &buf);
+    if (err != BCM_ERR_OK)
+    {
+        bcmos_free(mem);
+        return err;
+    }
+
+    buf.curr = buf.start;
+    err = bcmolt_msg_unpack(&buf, dest);
+    bcmos_free(mem);
+    return err;
+}
+
+/******************************************************************************/
+bcmos_errno bcmolt_get_prop_readonly_mask(bcmolt_obj_id obj, bcmolt_presence_mask *mask)
+{
+    if (obj >= BCMOLT_OBJ_ID__NUM_OF)
+    {
+        return BCM_ERR_RANGE;
+    }
+
+    *mask = readonly_prop_mask[obj];
+    return BCM_ERR_OK;
+}
+
+#ifdef __KERNEL__
+EXPORT_SYMBOL(bcmolt_msg_get_packed_length);
+EXPORT_SYMBOL(bcmolt_msg_pack);
+EXPORT_SYMBOL(bcmolt_msg_unpack);
+EXPORT_SYMBOL(bcmolt_group_id_split);
+EXPORT_SYMBOL(bcmolt_group_id_combine);
+EXPORT_SYMBOL(bcmolt_msg_instance);
+EXPORT_SYMBOL(bcmolt_get_prop_readonly_mask);
+EXPORT_SYMBOL(bcmolt_msg_set_alloc);
+EXPORT_SYMBOL(bcmolt_msg_set_free);
+
+MODULE_LICENSE("Dual BSD/GPL");
+#endif
diff --git a/bcm68620_release/release/host_driver/model/bcmolt_msg_pack.h b/bcm68620_release/release/host_driver/model/bcmolt_msg_pack.h
new file mode 100644
index 0000000..bc01bff
--- /dev/null
+++ b/bcm68620_release/release/host_driver/model/bcmolt_msg_pack.h
@@ -0,0 +1,143 @@
+/*
+<:copyright-BRCM:2016:proprietary:standard
+
+   Broadcom Proprietary and Confidential.(c) 2016 Broadcom
+   All Rights Reserved
+
+This program is the proprietary software of Broadcom Corporation and/or its
+licensors, and may only be used, duplicated, modified or distributed pursuant
+to the terms and conditions of a separate, written license agreement executed
+between you and Broadcom (an "Authorized License").  Except as set forth in
+an Authorized License, Broadcom grants no license (express or implied), right
+to use, or waiver of any kind with respect to the Software, and Broadcom
+expressly reserves all rights in and to the Software and all intellectual
+property rights therein.  IF YOU HAVE NO AUTHORIZED LICENSE, THEN YOU HAVE
+NO RIGHT TO USE THIS SOFTWARE IN ANY WAY, AND SHOULD IMMEDIATELY NOTIFY
+BROADCOM AND DISCONTINUE ALL USE OF THE SOFTWARE.
+
+Except as expressly set forth in the Authorized License,
+
+1. This program, including its structure, sequence and organization,
+    constitutes the valuable trade secrets of Broadcom, and you shall use
+    all reasonable efforts to protect the confidentiality thereof, and to
+    use this information only in connection with your use of Broadcom
+    integrated circuit products.
+
+2. TO THE MAXIMUM EXTENT PERMITTED BY LAW, THE SOFTWARE IS PROVIDED "AS IS"
+    AND WITH ALL FAULTS AND BROADCOM MAKES NO PROMISES, REPRESENTATIONS OR
+    WARRANTIES, EITHER EXPRESS, IMPLIED, STATUTORY, OR OTHERWISE, WITH
+    RESPECT TO THE SOFTWARE.  BROADCOM SPECIFICALLY DISCLAIMS ANY AND
+    ALL IMPLIED WARRANTIES OF TITLE, MERCHANTABILITY, NONINFRINGEMENT,
+    FITNESS FOR A PARTICULAR PURPOSE, LACK OF VIRUSES, ACCURACY OR
+    COMPLETENESS, QUIET ENJOYMENT, QUIET POSSESSION OR CORRESPONDENCE
+    TO DESCRIPTION. YOU ASSUME THE ENTIRE RISK ARISING OUT OF USE OR
+    PERFORMANCE OF THE SOFTWARE.
+
+3. TO THE MAXIMUM EXTENT PERMITTED BY LAW, IN NO EVENT SHALL BROADCOM OR
+    ITS LICENSORS BE LIABLE FOR (i) CONSEQUENTIAL, INCIDENTAL, SPECIAL,
+    INDIRECT, OR EXEMPLARY DAMAGES WHATSOEVER ARISING OUT OF OR IN ANY
+    WAY RELATING TO YOUR USE OF OR INABILITY TO USE THE SOFTWARE EVEN
+    IF BROADCOM HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES;
+    OR (ii) ANY AMOUNT IN EXCESS OF THE AMOUNT ACTUALLY PAID FOR THE
+    SOFTWARE ITSELF OR U.S. $1, WHICHEVER IS GREATER. THESE LIMITATIONS
+    SHALL APPLY NOTWITHSTANDING ANY FAILURE OF ESSENTIAL PURPOSE OF ANY
+    LIMITED REMEDY.
+:>
+*/
+
+#ifndef BCMOLT_MSG_PACK_H_
+#define BCMOLT_MSG_PACK_H_
+
+#include "bcmos_system.h"
+#include "bcmos_common.h"
+#include "bcmos_errno.h"
+#include "bcmolt_buf.h"
+#include "bcmolt_msg.h"
+#include "bcmolt_model_types.h"
+
+/** Gets the number of bytes a message would occupy when packed.
+ *
+ * \param this The message to scan.
+ * \return The size in bytes if > 0, or an error as defined in bcmos_errno.
+ */
+int32_t bcmolt_msg_get_packed_length(bcmolt_msg *this);
+
+/** Packs a message to a byte stream.
+ *
+ * \param this The message to pack.
+ * \param buf The stream to pack into.
+ * \return An error code or BCM_ERR_OK for success.
+ */
+bcmos_errno bcmolt_msg_pack(bcmolt_msg *this, bcmolt_buf *buf);
+
+/** Unpacks a message from a byte stream.
+ *
+ * This unpacks the message from the packed form into the struct following the "unpacked" pointer.  There are several
+ * special cases:
+ *
+ * if *unpacked == NULL:
+ *   *unpacked will be allocated dynamically via bcmos_calloc, in a contiguous block of memory with the struct
+ *   itself followed by the memory required for all variable-sized lists.
+ *
+ * if (*unpacked)->list_buf != NULL:
+ *   When a variable-length list is encountered in the input stream, and the array field we're unpacking into is NULL,
+ *   memory will be allocated starting from (*unpacked)->list_buf.  If multiple such lists exist, they will share this
+ *   buffer.  If the (*unpacked)->list_buf_size is not large enough, this will return BCM_ERR_INSUFFICIENT_LIST_MEM.
+ *
+ * \param buf           The stream to unpack from.
+ * \param unpacked      A pointer to the message to unpack.
+ * \return An error as defined in bcmos_errno.
+ */
+bcmos_errno bcmolt_msg_unpack(bcmolt_buf *buf, bcmolt_msg **unpacked);
+
+/** Converts a generic group ID into a specific object type, group and subgroup.
+ *
+ * \param group_id The generic group ID.
+ * \param obj The object type that corresponds to the group ID.
+ * \param group The group type that corresponds to the group ID.
+ * \param subgroup The subgroup index that corresponds to the group ID.
+ * \return An error code or BCM_ERR_OK for success.
+ */
+bcmos_errno bcmolt_group_id_split(bcmolt_group_id group_id,
+                                  bcmolt_obj_id *obj,
+                                  bcmolt_mgt_group *group,
+                                  uint16_t *subgroup);
+
+/** Converts a specific object type, group and subgroup into a generic group ID.
+ *
+ * \param obj The object type that corresponds to the group ID.
+ * \param group The group type that corresponds to the group ID.
+ * \param subgroup The subgroup index that corresponds to the group ID.
+ * \param group_id The generic group ID.
+ * \return An error code or BCM_ERR_OK for success.
+ */
+bcmos_errno bcmolt_group_id_combine(bcmolt_obj_id obj,
+                                    bcmolt_mgt_group group,
+                                    uint16_t subgroup,
+                                    bcmolt_group_id *group_id);
+
+/** Returns the instance number of a given message, as determined by the object key.
+ *
+ * \param msg The message to check.
+ * \return The instance number of the message.
+ */
+uint8_t bcmolt_msg_instance(const bcmolt_msg *msg);
+
+/** Gets a mask of all readonly properties for an object's cfg group.
+ *
+ * \param obj The objecct to check.
+ * \param mask A mask of bits set to 1 per read-only property.
+ * \return An error code or BCM_ERR_OK for success.
+ */
+bcmos_errno bcmolt_get_prop_readonly_mask(bcmolt_obj_id obj, bcmolt_presence_mask *mask);
+
+/** Clones a message by packing it to a buffer then unpacking it into the destination message.
+ * This uses bcmolt_msg_unpack, so if *dest is NULL, memory will by allocated dynamically using bcmos_calloc.
+ *
+ * \param dest A pointer to the location in memory that will hold the cloned message.
+ * \param src The message that should be copied.
+ * \return An error code or BCM_ERR_OK for success.
+ */
+bcmos_errno bcmolt_msg_clone(bcmolt_msg **dest, bcmolt_msg *src);
+
+#endif /* BCMOLT_MSG_PACK_H_ */