openbcm

Git mirror of https://github.com/Broadcom-Network-Switching-Software/OpenBCM
git clone git://git.finwo.net/mirror/broadcom/openbcm
Log | Files | Refs | README

mos_msg_common.h (68095B)


      1 /*
      2  * 
      3  * This license is set out in https://raw.githubusercontent.com/Broadcom-Network-Switching-Software/OpenBCM/master/Legal/LICENSE file.
      4  * 
      5  * Copyright 2007-2019 Broadcom Inc. All rights reserved.
      6  *
      7  * File:    mos_msg_common.h
      8  */
      9 
     10 #ifndef _SOC_SHARED_MOS_MSG_COMMON_H
     11 #define _SOC_SHARED_MOS_MSG_COMMON_H
     12 
     13 #ifdef BCM_UKERNEL
     14   /* Build for uKernel not SDK */
     15   #include "sdk_typedefs.h"
     16 #else
     17 #define CMICM_MSG_AREAS (0x00400000)
     18 #define NUM_UCS         (SOC_INFO(unit).num_ucs)
     19 #endif
     20 
     21 #include <soc/shared/mos_intr_common.h>
     22 
     23 /*
     24  * Common structure shared between ARMs, host at fixed location
     25  */
     26 
     27 /* This is the format of the status word sent/recvd between the
     28    processors.  The ack bits is what limits the number of msgs to 16. */
     29 
     30 #define MOS_MSG_STATUS_STATE(s) ((s) & 0x03)
     31 #define MOS_MSG_STATUS_SENT_INDEX(s) ((((s)) >> 2) & 0x0f)
     32 #define MOS_MSG_STATUS_ACK_INDEX(s) ((((s)) >> 6) & 0x0f)
     33 
     34 #define MOS_MSG_STATUS_STATE_W(s, i) s = (s  & 0xfffffffc) | (i)
     35 #define MOS_MSG_STATUS_SENT_INDEX_W(s, i) s = (s  & 0xffffffc3) | ((i)  << 2)
     36 #define MOS_MSG_STATUS_ACK_INDEX_W(s, i) s = (s  & 0xfffffc3f) | ((i) << 6)
     37 
     38 #define MOS_MSG_ACK_MASK(i) (1 << ((i) + 16))
     39 #define MOS_MSG_ACK_BIT(s,i) (((s) >> ((i) + 16)) & 1)
     40 
     41 #define MOS_MSG_ACK_BIT_SET(s,i) s |= MOS_MSG_ACK_MASK(i)
     42 #define MOS_MSG_ACK_BIT_CLEAR(s,i) s &= ~MOS_MSG_ACK_MASK(i)
     43 
     44 typedef uint32 mos_msg_host_status_t;
     45 
     46 #define MOS_MSG_RESET_STATE 1     /* Used to force a reset */
     47 #define MOS_MSG_INIT_STATE  2     /* Used to indicate initilaized */
     48 #define MOS_MSG_READY_STATE 3     /* In normal mode */
     49 
     50 /*  Message data format.  Messages can be raw 60-bit messages or have
     51     a predefined structure interpreted below.  It is up to the class
     52     owner to make the interpretation */
     53 typedef union {
     54     uint32   words[2];
     55     struct {
     56         uint8    mclass;        /* Class of this message */
     57         uint8    subclass;      /* Subclass (or data for raw) */
     58         uint16   len;           /* Arbitrary data field (usually length) */
     59         uint32   data;          /* Arbitrary data field (usually phys addr) */
     60     } s;
     61 } mos_msg_data_t;
     62 
     63 /* For now, all of the interfaces have 16 pending messages */
     64 #define NUM_MOS_MSG_SLOTS 16
     65 
     66 /* Highest order bit (0x80) is used for the subclass REPLY message */
     67 #define MOS_MSG_SUBCLASS_REPLY(subclass) (0x80 | (subclass))
     68 
     69 /* _MOS_MSG_DMA_FLAG indicates a "long" message (DMA required) */
     70 #define _MOS_MSG_DMA_FLAG                     0x40
     71 #define MOS_MSG_DMA_SET(sublass)          ((sublass) | _MOS_MSG_DMA_FLAG)
     72 #define MOS_MSG_DMA_CLEAR(sublass)        ((sublass) & ~_MOS_MSG_DMA_FLAG)
     73 #define MOS_MSG_DMA_MSG(sublass)          ((sublass) & _MOS_MSG_DMA_FLAG)
     74 
     75 /* If DMAs are requested then we must round the size up */
     76 #define MOS_MSG_DMA_LEN(x) (((x) + 3) & ~3)
     77 
     78 /* Define the message classes and subclasses */
     79 #define MOS_MSG_CLASS_SYSTEM            0
     80 #define   MOS_MSG_SUBCLASS_SYSTEM_PING              1
     81 #define   MOS_MSG_SUBCLASS_SYSTEM_APPL_INIT         2
     82 #define   MOS_MSG_SUBCLASS_SYSTEM_LOG               3
     83 #define   MOS_MSG_SUBCLASS_SYSTEM_INFO              4
     84 #define   MOS_MSG_SUBCLASS_SYSTEM_INFO_REPLY    MOS_MSG_SUBCLASS_REPLY(MOS_MSG_SUBCLASS_SYSTEM_INFO)
     85 #define   MOS_MSG_SUBCLASS_SYSTEM_STATS             5
     86 #define   MOS_MSG_SUBCLASS_SYSTEM_CONSOLE_IN        6
     87 #define   MOS_MSG_SUBCLASS_SYSTEM_CONSOLE_OUT       7
     88 #define   MOS_MSG_SUBCLASS_SYSTEM_PBUF              8
     89 #define   MOS_MSG_SUBCLASS_SYSTEM_VERSION           9
     90 #define   MOS_MSG_SUBCLASS_SYSTEM_DMA_ENDIAN       10
     91 #define   _MOS_MSG_SUBCLASS_SYSTEM_LINK            11 /* Send Link bmp to uC */
     92 #define   MOS_MSG_SUBCLASS_SYSTEM_LINK_REQ         12 /* link bmp Req from uC */
     93 #define   MOS_MSG_SUBCLASS_SYSTEM_THREAD_INFO      13
     94 #define   MOS_MSG_SUBCLASS_SYSTEM_CMD_STATS_RESET  14
     95 #define   MOS_MSG_SUBCLASS_SYSTEM_CMD_CONSOLE_LOG  15
     96 #define   MOS_MSG_SUBCLASS_SYSTEM_EXCEPTION        16
     97 
     98 #define MOS_MSG_SUBCLASS_SYSTEM_LINK        \
     99     MOS_MSG_DMA_SET(_MOS_MSG_SUBCLASS_SYSTEM_LINK)
    100 
    101 
    102 /*
    103  * BFD
    104  */
    105 #define MOS_MSG_CLASS_BFD                     1
    106 
    107 /* BFD message subclasses */
    108 #define _BFD_APPL_READY                       0x00
    109 #define _BFD_INIT                             0x01
    110 #define _BFD_UNINIT                           0x02
    111 #define _BFD_SESS_SET                         0x03
    112 #define _BFD_SESS_GET                         0x04
    113 #define _BFD_SESS_DELETE                      0x05
    114 #define _BFD_AUTH_SP_SET                      0x06
    115 #define _BFD_AUTH_SP_GET                      0x07
    116 #define _BFD_AUTH_SHA1_SET                    0x08
    117 #define _BFD_AUTH_SHA1_GET                    0x09
    118 #define _BFD_STAT_GET                         0x0a
    119 #define _BFD_SESS_POLL                        0x0b
    120 #define _BFD_SESS_DELETE_ALL                  0x0c
    121 #define _BFD_EVENT_MASK_SET                   0x0d
    122 #define _BFD_TX_START                         0x0e
    123 #define _BFD_TX_STOP                          0x0f
    124 #define _BFD_VERSION_EXCHANGE                 0x10
    125 #define _BFD_SEND_PORT_TX_QNUM_MAP            0x11
    126 #define _BFD_STATUS_MULTI_GET                 0x12
    127 #define _BFD_DISCARD_STAT_SET                 0x13
    128 #define _BFD_DISCARD_STAT_GET                 0x14
    129 #define _BFD_TRACE_LOG_ENABLE                 0x15
    130 #define _BFD_SEND_MATCH_ID_MAP                0x16
    131 
    132 #define MOS_MSG_SUBCLASS_BFD_APPL_READY             \
    133     _BFD_APPL_READY
    134 #define MOS_MSG_SUBCLASS_BFD_INIT                   \
    135     MOS_MSG_DMA_SET(_BFD_INIT)
    136 #define MOS_MSG_SUBCLASS_BFD_INIT_REPLY             \
    137     MOS_MSG_SUBCLASS_REPLY(_BFD_INIT)
    138 #define MOS_MSG_SUBCLASS_BFD_UNINIT                 \
    139     _BFD_UNINIT
    140 #define MOS_MSG_SUBCLASS_BFD_UNINIT_REPLY           \
    141     MOS_MSG_SUBCLASS_REPLY(_BFD_UNINIT)
    142 #define MOS_MSG_SUBCLASS_BFD_SESS_SET               \
    143     MOS_MSG_DMA_SET(_BFD_SESS_SET)
    144 #define MOS_MSG_SUBCLASS_BFD_SESS_SET_REPLY         \
    145     MOS_MSG_SUBCLASS_REPLY(_BFD_SESS_SET)
    146 #define MOS_MSG_SUBCLASS_BFD_SESS_GET	\
    147     _BFD_SESS_GET
    148 #define MOS_MSG_SUBCLASS_BFD_SESS_GET_REPLY         \
    149     MOS_MSG_SUBCLASS_REPLY(MOS_MSG_DMA_SET(_BFD_SESS_GET))
    150 #define MOS_MSG_SUBCLASS_BFD_SESS_DELETE            \
    151     _BFD_SESS_DELETE
    152 #define MOS_MSG_SUBCLASS_BFD_SESS_DELETE_REPLY      \
    153     MOS_MSG_SUBCLASS_REPLY(_BFD_SESS_DELETE)
    154 #define MOS_MSG_SUBCLASS_BFD_AUTH_SP_SET            \
    155     MOS_MSG_DMA_SET(_BFD_AUTH_SP_SET)
    156 #define MOS_MSG_SUBCLASS_BFD_AUTH_SP_SET_REPLY      \
    157     MOS_MSG_SUBCLASS_REPLY(_BFD_AUTH_SP_SET)
    158 #define MOS_MSG_SUBCLASS_BFD_AUTH_SP_GET            \
    159     _BFD_AUTH_SP_GET
    160 #define MOS_MSG_SUBCLASS_BFD_AUTH_SP_GET_REPLY      \
    161     MOS_MSG_SUBCLASS_REPLY(MOS_MSG_DMA_SET(_BFD_AUTH_SP_GET))
    162 #define MOS_MSG_SUBCLASS_BFD_AUTH_SHA1_SET          \
    163     MOS_MSG_DMA_SET(_BFD_AUTH_SHA1_SET)
    164 #define MOS_MSG_SUBCLASS_BFD_AUTH_SHA1_SET_REPLY    \
    165     MOS_MSG_SUBCLASS_REPLY(_BFD_AUTH_SHA1_SET)
    166 #define MOS_MSG_SUBCLASS_BFD_AUTH_SHA1_GET          \
    167     _BFD_AUTH_SHA1_GET
    168 #define MOS_MSG_SUBCLASS_BFD_AUTH_SHA1_GET_REPLY    \
    169     MOS_MSG_SUBCLASS_REPLY(MOS_MSG_DMA_SET(_BFD_AUTH_SHA1_GET))
    170 #define MOS_MSG_SUBCLASS_BFD_STAT_GET               \
    171     MOS_MSG_DMA_SET(_BFD_STAT_GET)
    172 #define MOS_MSG_SUBCLASS_BFD_STAT_GET_REPLY         \
    173     MOS_MSG_SUBCLASS_REPLY(MOS_MSG_DMA_SET(_BFD_STAT_GET))
    174 #define MOS_MSG_SUBCLASS_BFD_SESS_POLL              \
    175     _BFD_SESS_POLL
    176 #define MOS_MSG_SUBCLASS_BFD_SESS_POLL_REPLY        \
    177     MOS_MSG_SUBCLASS_REPLY(_BFD_SESS_POLL)
    178 #define MOS_MSG_SUBCLASS_BFD_SESS_DELETE_ALL        \
    179     _BFD_SESS_DELETE_ALL
    180 #define MOS_MSG_SUBCLASS_BFD_SESS_DELETE_ALL_REPLY  \
    181     MOS_MSG_SUBCLASS_REPLY(_BFD_SESS_DELETE_ALL)
    182 #define MOS_MSG_SUBCLASS_BFD_EVENT_MASK_SET         \
    183     _BFD_EVENT_MASK_SET
    184 #define MOS_MSG_SUBCLASS_BFD_EVENT_MASK_SET_REPLY   \
    185     MOS_MSG_SUBCLASS_REPLY(_BFD_EVENT_MASK_SET)
    186 #define MOS_MSG_SUBCLASS_BFD_TX_START               \
    187     _BFD_TX_START
    188 #define MOS_MSG_SUBCLASS_BFD_TX_START_REPLY         \
    189     MOS_MSG_SUBCLASS_REPLY(_BFD_TX_START)
    190 #define MOS_MSG_SUBCLASS_BFD_TX_STOP                \
    191     _BFD_TX_STOP
    192 #define MOS_MSG_SUBCLASS_BFD_TX_STOP_REPLY          \
    193     MOS_MSG_SUBCLASS_REPLY(_BFD_TX_STOP)
    194 
    195 #define MOS_MSG_SUBCLASS_BFD_VERSION_EXCHANGE       \
    196     MOS_MSG_DMA_SET(_BFD_VERSION_EXCHANGE)
    197 #define MOS_MSG_SUBCLASS_BFD_VER_EXCHANGE_REPLY     \
    198     MOS_MSG_SUBCLASS_REPLY(MOS_MSG_DMA_SET(_BFD_VERSION_EXCHANGE))
    199 
    200 #define MOS_MSG_SUBCLASS_BFD_PORT_TX_QNUM          \
    201     MOS_MSG_DMA_SET(_BFD_SEND_PORT_TX_QNUM_MAP)
    202 #define MOS_MSG_SUBCLASS_BFD_PORT_TX_QNUM_REPLY    \
    203     MOS_MSG_SUBCLASS_REPLY(_BFD_SEND_PORT_TX_QNUM_MAP)
    204 
    205 #define MOS_MSG_SUBCLASS_BFD_STATUS_MULTI_GET               \
    206     _BFD_STATUS_MULTI_GET
    207 #define MOS_MSG_SUBCLASS_BFD_STATUS_MULTI_GET_REPLY         \
    208     MOS_MSG_SUBCLASS_REPLY(MOS_MSG_DMA_SET(_BFD_STATUS_MULTI_GET))
    209 
    210 #define MOS_MSG_SUBCLASS_BFD_DISCARD_STAT_SET               \
    211     _BFD_DISCARD_STAT_SET
    212 #define MOS_MSG_SUBCLASS_BFD_DISCARD_STAT_SET_REPLY         \
    213     MOS_MSG_SUBCLASS_REPLY(_BFD_DISCARD_STAT_SET)
    214 
    215 #define MOS_MSG_SUBCLASS_BFD_DISCARD_STAT_GET               \
    216     _BFD_DISCARD_STAT_GET
    217 #define MOS_MSG_SUBCLASS_BFD_DISCARD_STAT_GET_REPLY         \
    218     MOS_MSG_SUBCLASS_REPLY(MOS_MSG_DMA_SET(_BFD_DISCARD_STAT_GET))
    219 
    220 #define MOS_MSG_SUBCLASS_BFD_TRACE_LOG_ENABLE                 \
    221     _BFD_TRACE_LOG_ENABLE
    222 #define MOS_MSG_SUBCLASS_BFD_TRACE_LOG_ENABLE_REPLY           \
    223     MOS_MSG_SUBCLASS_REPLY(MOS_MSG_DMA_SET(_BFD_TRACE_LOG_ENABLE))
    224 
    225 #define MOS_MSG_SUBCLASS_BFD_MATCH_ID              \
    226     MOS_MSG_DMA_SET(_BFD_SEND_MATCH_ID_MAP)
    227 #define MOS_MSG_SUBCLASS_BFD_MATCH_ID_REPLY        \
    228     MOS_MSG_SUBCLASS_REPLY(_BFD_SEND_MATCH_ID_MAP)
    229 
    230 #define   MOS_MSG_CLASS_BFD_EVENT       2
    231 
    232 
    233 /*
    234  * 1588/PTP Message Class
    235  */
    236 #define MOS_MSG_CLASS_1588              (3)
    237 #define   MOS_MSG_SUBCLASS_MBOX_APPL_READY              (0)
    238 #define   MOS_MSG_SUBCLASS_MBOX_CONFIG                  (1)
    239 #define   MOS_MSG_SUBCLASS_MBOX_CMDRESP                 (2)
    240 #define   MOS_MSG_SUBCLASS_MBOX_TUNNEL_OUT              (3)
    241 #define   MOS_MSG_SUBCLASS_MBOX_TUNNEL_TO               (4)
    242 #define   MOS_MSG_SUBCLASS_MBOX_TUNNEL_IN               (5) 
    243 #define   MOS_MSG_SUBCLASS_MBOX_WB_PREP                 (6)
    244 #define   MOS_MSG_SUBCLASS_MBOX_EVENT_BASE              (32)
    245 
    246 /*Send ptp cosq port to ukernel by this message. The value 128 has not special meaning, it's only different from above message.*/
    247 #define   MOS_MSG_SUBCLASS_PTP_COSQ_PORT                (128)
    248 #define   MOS_MSG_SUBCLASS_TS0_TS1_COMBINED_MODE_EN     (129)
    249 
    250 
    251 #define   MOS_MSG_MBOX_APPL_UNKNOWN  (0)
    252 #define   MOS_MSG_MBOX_APPL_BS       (1)
    253 #define   MOS_MSG_MBOX_APPL_1588     (2)
    254 
    255 
    256 #define MOS_MSG_CLASS_CES               4
    257 #define _CES_APPL_READY              0
    258 #define _CES_CRM_INIT                0x01 /* Init hello message */
    259 #define _CES_CRM_CONFIG              0x02 /* Common Clock Configuration */
    260 #define _CES_CRM_RCLOCK_CONFIG       0x03 /* Per service diff configuration */
    261 #define _CES_CRM_STATUS              0x04 /* Per port configuration */
    262 
    263 #define   MOS_MSG_SUBCLASS_CES_APPL_READY              _CES_APPL_READY
    264 #define   MOS_MSG_SUBCLASS_CES_CRM_INIT                MOS_MSG_DMA_SET(_CES_CRM_INIT)
    265 #define   MOS_MSG_SUBCLASS_CES_CRM_INIT_REPLY          MOS_MSG_SUBCLASS_REPLY(_CES_CRM_INIT)
    266 #define   MOS_MSG_SUBCLASS_CES_CRM_CONFIG              MOS_MSG_DMA_SET(_CES_CRM_CONFIG)
    267 #define   MOS_MSG_SUBCLASS_CES_CRM_CONFIG_REPLY        MOS_MSG_SUBCLASS_REPLY(_CES_CRM_CONFIG)
    268 #define   MOS_MSG_SUBCLASS_CES_CRM_RCLOCK_CONFIG       MOS_MSG_DMA_SET(_CES_CRM_RCLOCK_CONFIG)
    269 #define   MOS_MSG_SUBCLASS_CES_CRM_RCLOCK_CONFIG_REPLY MOS_MSG_SUBCLASS_REPLY(_CES_CRM_RCLOCK_CONFIG)
    270 #define   MOS_MSG_SUBCLASS_CES_CRM_STATUS              _CES_CRM_STATUS
    271 #define   MOS_MSG_SUBCLASS_CES_CRM_STATUS_REPLY        MOS_MSG_SUBCLASS_REPLY(MOS_MSG_DMA_SET(_CES_CRM_STATUS))
    272 
    273 #define MOS_MSG_CLASS_PKT_BCN           5
    274 #define   MOS_MSG_SUBCLASS_PKT_BCN_APPL_READY   0
    275 #define   MOS_MSG_SUBCLASS_PKT_BCN_CONFIG       1
    276 #define   MOS_MSG_SUBCLASS_PKT_BCN_DESTROY      2
    277 #define   MOS_MSG_SUBCLASS_PKT_BCN_GET          3
    278 #define   MOS_MSG_SUBCLASS_PKT_BCN_START        4
    279 #define   MOS_MSG_SUBCLASS_PKT_BCN_STOP         5
    280 
    281 #define   MOS_MSG_SUBCLASS_PKT_BCN_CONFIG_REPLY   1
    282 #define   MOS_MSG_SUBCLASS_PKT_BCN_DESTROY_REPLY  2
    283 #define   MOS_MSG_SUBCLASS_PKT_BCN_GET_REPLY      3
    284 #define   MOS_MSG_SUBCLASS_PKT_BCN_START_REPLY    4
    285 #define   MOS_MSG_SUBCLASS_PKT_BCN_STOP_REPLY     5
    286 
    287 #define MOS_MSG_CLASS_OANM              6
    288 #define   MOS_MSG_SUBCLASS_OANM_APPL_READY         0
    289 
    290 
    291 /*
    292  * BHH
    293  */
    294 #define MOS_MSG_CLASS_BHH                     7
    295 
    296 /* BHH message subclasses */
    297 #define _BHH_APPL_READY                       0x00
    298 #define _BHH_INIT                             0x01
    299 #define _BHH_UNINIT                           0x02
    300 #define _BHH_SESS_SET                         0x05
    301 #define _BHH_SESS_GET                         0x06
    302 #define _BHH_SESS_DELETE                      0x07
    303 #define _BHH_LOOPBACK_ADD                     0x08
    304 #define _BHH_LOOPBACK_GET                     0x09
    305 #define _BHH_LOOPBACK_DELETE                  0x0a
    306 #define _BHH_EVENT_MASK_SET                   0x0b
    307 #define _BHH_STAT_GET                         0x0c
    308 #define _BHH_RMEP_CREATE                      0x0d
    309 #define _BHH_LOSS_MEASUREMENT_ADD             0x0e
    310 #define _BHH_LOSS_MEASUREMENT_GET             0x0f
    311 #define _BHH_LOSS_MEASUREMENT_DELETE          0x10
    312 #define _BHH_DELAY_MEASUREMENT_ADD            0x11
    313 #define _BHH_DELAY_MEASUREMENT_GET            0x12
    314 #define _BHH_DELAY_MEASUREMENT_DELETE         0x13
    315 #define _BHH_PM_STATS_GET                     0x14
    316 #define _BHH_PM_PROFILE_ATTACH                0x15
    317 #define _BHH_PM_PROFILE_DETACH                0x16
    318 #define _BHH_PM_RAW_DATA_EVENT_SET            0x17
    319 #define _BHH_PM_RAW_DATA_EVENT_UNSET          0x18
    320 #define _BHH_VERSION_EXCHANGE                 0x19
    321 #define _BHH_FAULTS_MULTI_GET                 0x1a
    322 #define _BHH_SESS_UPDATE                      0x1b
    323 #define _BHH_PORT_TRUNK_UPDATE                0x1c
    324 #define _BHH_PORT_TRUNK_GET                   0x1d
    325 #define _BHH_CSF_ADD                          0x1e
    326 #define _BHH_CSF_GET                          0x1f
    327 #define _BHH_CSF_DELETE                       0x20
    328 #define _BHH_ACH_CHANNEL_TYPE                 0x21
    329 
    330 #define MOS_MSG_SUBCLASS_BHH_APPL_READY             \
    331     _BHH_APPL_READY
    332 #define MOS_MSG_SUBCLASS_BHH_INIT                   \
    333     MOS_MSG_DMA_SET(_BHH_INIT)
    334 #define MOS_MSG_SUBCLASS_BHH_INIT_REPLY             \
    335     MOS_MSG_SUBCLASS_REPLY(_BHH_INIT)
    336 #define MOS_MSG_SUBCLASS_BHH_UNINIT                 \
    337     _BHH_UNINIT
    338 #define MOS_MSG_SUBCLASS_BHH_UNINIT_REPLY           \
    339     MOS_MSG_SUBCLASS_REPLY(_BHH_UNINIT)
    340 #define MOS_MSG_SUBCLASS_BHH_SESS_SET               \
    341     MOS_MSG_DMA_SET(_BHH_SESS_SET)
    342 #define MOS_MSG_SUBCLASS_BHH_SESS_SET_REPLY         \
    343     MOS_MSG_SUBCLASS_REPLY(_BHH_SESS_SET)
    344 #define MOS_MSG_SUBCLASS_BHH_SESS_GET               \
    345     _BHH_SESS_GET
    346 #define MOS_MSG_SUBCLASS_BHH_SESS_GET_REPLY         \
    347     MOS_MSG_SUBCLASS_REPLY(MOS_MSG_DMA_SET(_BHH_SESS_GET))
    348 #define MOS_MSG_SUBCLASS_BHH_SESS_DELETE            \
    349     _BHH_SESS_DELETE
    350 #define MOS_MSG_SUBCLASS_BHH_SESS_DELETE_REPLY      \
    351     MOS_MSG_SUBCLASS_REPLY(_BHH_SESS_DELETE)
    352 #define MOS_MSG_SUBCLASS_BHH_SESS_UPDATE            \
    353     MOS_MSG_DMA_SET(_BHH_SESS_UPDATE)
    354 #define MOS_MSG_SUBCLASS_BHH_SESS_UPDATE_REPLY      \
    355     MOS_MSG_SUBCLASS_REPLY(_BHH_SESS_UPDATE)
    356 #define MOS_MSG_SUBCLASS_BHH_STAT_GET               \
    357     MOS_MSG_DMA_SET(_BHH_STAT_GET)
    358 #define MOS_MSG_SUBCLASS_BHH_STAT_GET_REPLY         \
    359     MOS_MSG_SUBCLASS_REPLY(MOS_MSG_DMA_SET(_BHH_STAT_GET))
    360 #define MOS_MSG_SUBCLASS_BHH_RMEP_CREATE              \
    361     MOS_MSG_DMA_SET(_BHH_RMEP_CREATE)
    362 #define MOS_MSG_SUBCLASS_BHH_RMEP_CREATE_REPLY        \
    363     MOS_MSG_SUBCLASS_REPLY(_BHH_RMEP_CREATE)
    364 #define MOS_MSG_SUBCLASS_BHH_LOOPBACK_ADD        \
    365     MOS_MSG_DMA_SET(_BHH_LOOPBACK_ADD)
    366 #define MOS_MSG_SUBCLASS_BHH_LOOPBACK_ADD_REPLY     \
    367     MOS_MSG_SUBCLASS_REPLY(_BHH_LOOPBACK_ADD)
    368 #define MOS_MSG_SUBCLASS_BHH_LOOPBACK_DELETE        \
    369     MOS_MSG_DMA_SET(_BHH_LOOPBACK_DELETE)
    370 #define MOS_MSG_SUBCLASS_BHH_LOOPBACK_DELETE_REPLY     \
    371     MOS_MSG_SUBCLASS_REPLY(_BHH_LOOPBACK_DELETE)
    372 #define MOS_MSG_SUBCLASS_BHH_LOOPBACK_GET        \
    373     _BHH_LOOPBACK_GET
    374 #define MOS_MSG_SUBCLASS_BHH_LOOPBACK_GET_REPLY     \
    375     MOS_MSG_SUBCLASS_REPLY(MOS_MSG_DMA_SET(_BHH_LOOPBACK_GET))
    376 #define MOS_MSG_SUBCLASS_BHH_EVENT_MASK_SET         \
    377     _BHH_EVENT_MASK_SET
    378 #define MOS_MSG_SUBCLASS_BHH_EVENT_MASK_SET_REPLY   \
    379     MOS_MSG_SUBCLASS_REPLY(_BHH_EVENT_MASK_SET)
    380 #define MOS_MSG_SUBCLASS_BHH_LOSS_MEASUREMENT_ADD        \
    381     MOS_MSG_DMA_SET(_BHH_LOSS_MEASUREMENT_ADD)
    382 #define MOS_MSG_SUBCLASS_BHH_LOSS_MEASUREMENT_ADD_REPLY     \
    383     MOS_MSG_SUBCLASS_REPLY(_BHH_LOSS_MEASUREMENT_ADD)
    384 #define MOS_MSG_SUBCLASS_BHH_LOSS_MEASUREMENT_DELETE        \
    385     MOS_MSG_DMA_SET(_BHH_LOSS_MEASUREMENT_DELETE)
    386 #define MOS_MSG_SUBCLASS_BHH_LOSS_MEASUREMENT_DELETE_REPLY     \
    387     MOS_MSG_SUBCLASS_REPLY(_BHH_LOSS_MEASUREMENT_DELETE)
    388 #define MOS_MSG_SUBCLASS_BHH_LOSS_MEASUREMENT_GET        \
    389     _BHH_LOSS_MEASUREMENT_GET
    390 #define MOS_MSG_SUBCLASS_BHH_LOSS_MEASUREMENT_GET_REPLY     \
    391     MOS_MSG_SUBCLASS_REPLY(MOS_MSG_DMA_SET(_BHH_LOSS_MEASUREMENT_GET))
    392 #define MOS_MSG_SUBCLASS_BHH_DELAY_MEASUREMENT_ADD        \
    393     MOS_MSG_DMA_SET(_BHH_DELAY_MEASUREMENT_ADD)
    394 #define MOS_MSG_SUBCLASS_BHH_DELAY_MEASUREMENT_ADD_REPLY     \
    395     MOS_MSG_SUBCLASS_REPLY(_BHH_DELAY_MEASUREMENT_ADD)
    396 #define MOS_MSG_SUBCLASS_BHH_DELAY_MEASUREMENT_DELETE        \
    397     MOS_MSG_DMA_SET(_BHH_DELAY_MEASUREMENT_DELETE)
    398 #define MOS_MSG_SUBCLASS_BHH_DELAY_MEASUREMENT_DELETE_REPLY     \
    399     MOS_MSG_SUBCLASS_REPLY(_BHH_DELAY_MEASUREMENT_DELETE)
    400 #define MOS_MSG_SUBCLASS_BHH_DELAY_MEASUREMENT_GET        \
    401     _BHH_DELAY_MEASUREMENT_GET
    402 #define MOS_MSG_SUBCLASS_BHH_DELAY_MEASUREMENT_GET_REPLY     \
    403     MOS_MSG_SUBCLASS_REPLY(MOS_MSG_DMA_SET(_BHH_DELAY_MEASUREMENT_GET))
    404 #define MOS_MSG_SUBCLASS_BHH_PM_RAW_DATA_EVENT_SET         \
    405     _BHH_PM_RAW_DATA_EVENT_SET
    406 #define MOS_MSG_SUBCLASS_BHH_PM_RAW_DATA_EVENT_SET_REPLY   \
    407     MOS_MSG_SUBCLASS_REPLY(_BHH_PM_RAW_DATA_EVENT_SET)
    408 #define MOS_MSG_SUBCLASS_BHH_PM_RAW_DATA_EVENT_UNSET         \
    409     _BHH_PM_RAW_DATA_EVENT_UNSET
    410 #define MOS_MSG_SUBCLASS_BHH_PM_RAW_DATA_EVENT_UNSET_REPLY   \
    411     MOS_MSG_SUBCLASS_REPLY(_BHH_PM_RAW_DATA_EVENT_UNSET)
    412 
    413 #define MOS_MSG_SUBCLASS_BHH_PM_STATS_GET        \
    414     _BHH_PM_STATS_GET
    415 #define MOS_MSG_SUBCLASS_BHH_PM_STATS_GET_REPLY     \
    416     MOS_MSG_SUBCLASS_REPLY(MOS_MSG_DMA_SET(_BHH_PM_STATS_GET))
    417 
    418 #define MOS_MSG_SUBCLASS_BHH_PM_PROFILE_ATTACH               \
    419     MOS_MSG_DMA_SET(_BHH_PM_PROFILE_ATTACH)
    420 #define MOS_MSG_SUBCLASS_BHH_PM_PROFILE_ATTACH_REPLY         \
    421     MOS_MSG_SUBCLASS_REPLY(_BHH_PM_PROFILE_ATTACH)
    422 
    423 #define MOS_MSG_SUBCLASS_BHH_PM_PROFILE_DETACH            \
    424     _BHH_PM_PROFILE_DETACH
    425 #define MOS_MSG_SUBCLASS_BHH_PM_PROFILE_DETACH_REPLY      \
    426     MOS_MSG_SUBCLASS_REPLY(_BHH_PM_PROFILE_DETACH)
    427 
    428 #define MOS_MSG_SUBCLASS_BHH_VERSION_EXCHANGE       \
    429     MOS_MSG_DMA_SET(_BHH_VERSION_EXCHANGE)
    430 #define MOS_MSG_SUBCLASS_BHH_VER_EXCHANGE_REPLY     \
    431     MOS_MSG_SUBCLASS_REPLY(MOS_MSG_DMA_SET(_BHH_VERSION_EXCHANGE))
    432 
    433 #define MOS_MSG_SUBCLASS_BHH_FAULTS_MULTI_GET               \
    434     _BHH_FAULTS_MULTI_GET
    435 
    436 #define MOS_MSG_SUBCLASS_BHH_FAULTS_MULTI_GET_REPLY         \
    437     MOS_MSG_SUBCLASS_REPLY(MOS_MSG_DMA_SET(_BHH_FAULTS_MULTI_GET))
    438 
    439 #define MOS_MSG_SUBCLASS_BHH_PORT_TRUNK_UPDATE                   \
    440     MOS_MSG_DMA_SET(_BHH_PORT_TRUNK_UPDATE)
    441 #define MOS_MSG_SUBCLASS_BHH_PORT_TRUNK_UPDATE_REPLY             \
    442     MOS_MSG_SUBCLASS_REPLY(_BHH_PORT_TRUNK_UPDATE)
    443 #define MOS_MSG_SUBCLASS_BHH_PORT_TRUNK_GET                      \
    444     _BHH_PORT_TRUNK_GET
    445 #define MOS_MSG_SUBCLASS_BHH_PORT_TRUNK_GET_REPLY                \
    446     MOS_MSG_SUBCLASS_REPLY(MOS_MSG_DMA_SET(_BHH_PORT_TRUNK_GET))
    447 
    448 #define MOS_MSG_SUBCLASS_BHH_CSF_ADD                          \
    449     MOS_MSG_DMA_SET(_BHH_CSF_ADD)
    450 #define MOS_MSG_SUBCLASS_BHH_CSF_ADD_REPLY                    \
    451     MOS_MSG_SUBCLASS_REPLY(_BHH_CSF_ADD)
    452 #define MOS_MSG_SUBCLASS_BHH_CSF_GET                          \
    453     _BHH_CSF_GET
    454 #define MOS_MSG_SUBCLASS_BHH_CSF_GET_REPLY                    \
    455     MOS_MSG_SUBCLASS_REPLY(MOS_MSG_DMA_SET(_BHH_CSF_GET))
    456 #define MOS_MSG_SUBCLASS_BHH_CSF_DELETE                       \
    457     _BHH_CSF_DELETE
    458 #define MOS_MSG_SUBCLASS_BHH_CSF_DELETE_REPLY                 \
    459     MOS_MSG_SUBCLASS_REPLY(_BHH_CSF_DELETE)
    460 
    461 #define MOS_MSG_SUBCLASS_BHH_ACH_CHANNEL_TYPE                 \
    462     MOS_MSG_DMA_SET(_BHH_ACH_CHANNEL_TYPE)
    463 #define MOS_MSG_SUBCLASS_BHH_ACH_CHANNEL_TYPE_REPLY           \
    464     MOS_MSG_SUBCLASS_REPLY(_BHH_ACH_CHANNEL_TYPE)
    465 
    466 /* BHH EVENT class */
    467 #define   MOS_MSG_CLASS_BHH_EVENT       8
    468 
    469 /* BHH EVENT subclasses */
    470 #define _BHH_EVENT_OAM_PM_EVENT            0x01
    471 
    472 
    473 /*
    474  * LLM
    475  */
    476 #define MOS_MSG_CLASS_LLM                     9
    477 
    478 /* LLM message subclasses */
    479 #define _LLM_APPL_READY                       0x00
    480 #define _LLM_INIT                             0x01
    481 #define _LLM_UNINIT                           0x02
    482 #define _LLM_PON_ATT_MAC_BITMAP_SET           0x03
    483 #define _LLM_PON_ATT_MAC_BITMAP_GET           0x04
    484 #define _LLM_APP_INFO_GET                     0x05
    485 #define _LLM_APP_POINTER_DB_GET               0x06
    486 #define _LLM_APP_PON_ID_DB_GET                0x07
    487 #define _LLM_PON_ATT_MAC_BITMAP_INCREASE      0x08
    488 #define _LLM_PON_ATT_MAC_BITMAP_DECREASE      0x09
    489 #define _LLM_PON_ATT_SERVICE_ENABLE           0x0a
    490 #define _LLM_PON_ATT_UPDATE                   0x0b
    491 #define _LLM_PON_ATT_MAC_RX_MODE_SET          0x0c
    492 #define _LLM_PON_ATT_MAC_MOVE_SET             0x0d
    493 #define _LLM_PON_ATT_MAC_MOVE_GET             0x0e
    494 
    495 
    496 
    497 
    498 #define MOS_MSG_SUBCLASS_LLM_APPL_READY             \
    499     _LLM_APPL_READY
    500 
    501 #define MOS_MSG_SUBCLASS_LLM_INIT                   \
    502     MOS_MSG_DMA_SET(_LLM_INIT)
    503 #define MOS_MSG_SUBCLASS_LLM_INIT_REPLY             \
    504     MOS_MSG_SUBCLASS_REPLY(_LLM_INIT)
    505 
    506 #define MOS_MSG_SUBCLASS_LLM_UNINIT                 \
    507     _LLM_UNINIT
    508 #define MOS_MSG_SUBCLASS_LLM_UNINIT_REPLY           \
    509     MOS_MSG_SUBCLASS_REPLY(_LLM_UNINIT)
    510 
    511 #define MOS_MSG_SUBCLASS_LLM_PON_ATT_MAC_BITMAP_SET                   \
    512     MOS_MSG_DMA_SET(_LLM_PON_ATT_MAC_BITMAP_SET)
    513 #define MOS_MSG_SUBCLASS_LLM_PON_ATT_MAC_BITMAP_SET_REPLY             \
    514     MOS_MSG_SUBCLASS_REPLY(_LLM_PON_ATT_MAC_BITMAP_SET)
    515 
    516 #define MOS_MSG_SUBCLASS_LLM_PON_ATT_MAC_BITMAP_GET                   \
    517     MOS_MSG_DMA_SET(_LLM_PON_ATT_MAC_BITMAP_GET)
    518 #define MOS_MSG_SUBCLASS_LLM_PON_ATT_MAC_BITMAP_GET_REPLY             \
    519     MOS_MSG_SUBCLASS_REPLY(MOS_MSG_DMA_SET(_LLM_PON_ATT_MAC_BITMAP_GET))
    520 
    521 #define MOS_MSG_SUBCLASS_LLM_APP_INFO_GET                   \
    522     MOS_MSG_DMA_SET(_LLM_APP_INFO_GET)
    523 #define MOS_MSG_SUBCLASS_LLM_APP_INFO_GET_REPLY             \
    524     MOS_MSG_SUBCLASS_REPLY(MOS_MSG_DMA_SET(_LLM_APP_INFO_GET))
    525 
    526 #define MOS_MSG_SUBCLASS_LLM_POINTER_DB_INFO_GET                   \
    527     MOS_MSG_DMA_SET(_LLM_APP_POINTER_DB_GET)
    528 #define MOS_MSG_SUBCLASS_LLM_POINTER_DB_INFO_GET_REPLY             \
    529     MOS_MSG_SUBCLASS_REPLY(MOS_MSG_DMA_SET(_LLM_APP_POINTER_DB_GET))
    530 
    531 #define MOS_MSG_SUBCLASS_LLM_PON_ID_DB_GET                   \
    532     MOS_MSG_DMA_SET(_LLM_APP_PON_ID_DB_GET)
    533 #define MOS_MSG_SUBCLASS_LLM_PON_ID_DB_GET_REPLY             \
    534     MOS_MSG_SUBCLASS_REPLY(MOS_MSG_DMA_SET(_LLM_APP_PON_ID_DB_GET))
    535 
    536 #define MOS_MSG_SUBCLASS_LLM_PON_ATT_MAC_BITMAP_INCREASE                   \
    537     MOS_MSG_DMA_SET(_LLM_PON_ATT_MAC_BITMAP_INCREASE)
    538 #define MOS_MSG_SUBCLASS_LLM_PON_ATT_MAC_BITMAP_INCREASE_REPLY             \
    539     MOS_MSG_SUBCLASS_REPLY(_LLM_PON_ATT_MAC_BITMAP_INCREASE)
    540 
    541 #define MOS_MSG_SUBCLASS_LLM_PON_ATT_MAC_BITMAP_DECREASE                   \
    542     MOS_MSG_DMA_SET(_LLM_PON_ATT_MAC_BITMAP_DECREASE)
    543 #define MOS_MSG_SUBCLASS_LLM_PON_ATT_MAC_BITMAP_DECREASE_REPLY             \
    544     MOS_MSG_SUBCLASS_REPLY(_LLM_PON_ATT_MAC_BITMAP_DECREASE)
    545 
    546 
    547 #define MOS_MSG_SUBCLASS_LLM_PON_ATT_SERVICE_ENABLE                   \
    548     MOS_MSG_DMA_SET(_LLM_PON_ATT_SERVICE_ENABLE)
    549 #define MOS_MSG_SUBCLASS_LLM_PON_ATT_SERVICE_ENABLE_REPLY             \
    550     MOS_MSG_SUBCLASS_REPLY(_LLM_PON_ATT_SERVICE_ENABLE)
    551 
    552 #define MOS_MSG_SUBCLASS_LLM_PON_ATT_UPDATE                   \
    553     MOS_MSG_DMA_SET(_LLM_PON_ATT_UPDATE)
    554 #define MOS_MSG_SUBCLASS_LLM_PON_ATT_UPDATE_REPLY             \
    555     MOS_MSG_SUBCLASS_REPLY(_LLM_PON_ATT_UPDATE)
    556 
    557 #define MOS_MSG_SUBCLASS_LLM_PON_ATT_MAC_RX_MODE_SET                   \
    558     MOS_MSG_DMA_SET(_LLM_PON_ATT_MAC_RX_MODE_SET)
    559 #define MOS_MSG_SUBCLASS_LLM_PON_ATT_MAC_RX_MODE_SET_REPLY             \
    560     MOS_MSG_SUBCLASS_REPLY(_LLM_PON_ATT_MAC_RX_MODE_SET)
    561 
    562 #define MOS_MSG_SUBCLASS_LLM_PON_ATT_MAC_MOVE_SET                   \
    563     MOS_MSG_DMA_SET(_LLM_PON_ATT_MAC_MOVE_SET)
    564 #define MOS_MSG_SUBCLASS_LLM_PON_ATT_MAC_MOVE_SET_REPLY             \
    565     MOS_MSG_SUBCLASS_REPLY(_LLM_PON_ATT_MAC_MOVE_SET)
    566 
    567 #define MOS_MSG_SUBCLASS_LLM_PON_ATT_MAC_MOVE_GET                   \
    568     MOS_MSG_DMA_SET(_LLM_PON_ATT_MAC_MOVE_GET)
    569 #define MOS_MSG_SUBCLASS_LLM_PON_ATT_MAC_MOVE_GET_REPLY             \
    570     MOS_MSG_SUBCLASS_REPLY(MOS_MSG_DMA_SET(_LLM_PON_ATT_MAC_MOVE_GET))
    571 
    572 
    573 
    574 
    575 /*
    576  * BroadSync Message Class
    577  */
    578 #define MOS_MSG_CLASS_BS               10
    579 
    580 
    581 /*
    582  * LLM EVENT listiner
    583  */
    584 #define MOS_MSG_CLASS_LLM_EVENT        11
    585                   
    586 /* LLM event subclasses */
    587 #define _LLM_NOTIFICATION                     0x00
    588 #define _LLM_EVENT_MAC_MOVE                   0x01
    589 
    590 #define MOS_MSG_SUBCLASS_LLM_NOTIFICATION                   \
    591     _LLM_NOTIFICATION
    592 
    593 #define MOS_MSG_SUBCLASS_LLM_EVENT_MAC_MOVE                 \
    594     MOS_MSG_DMA_SET(_LLM_EVENT_MAC_MOVE)
    595 
    596 /*
    597  * Test interface
    598  */
    599 #define MOS_MSG_CLASS_TEST              12
    600 #define   MOS_MSG_SUBCLASS_TEST_APPL_READY      0
    601 #define   MOS_MSG_SUBCLASS_TEST_COUNT           1
    602 #define   MOS_MSG_SUBCLASS_TEST_RUN             2
    603 
    604 /*
    605  * PSCAN application
    606  */
    607 #define MOS_MSG_CLASS_PSCAN             13
    608 #define MOS_MSG_SUBCLASS_PSCAN_APPL_READY       0
    609 #define MOS_MSG_SUBCLASS_PSCAN_SCAN_DELAY       1
    610 #define MOS_MSG_SUBCLASS_PSCAN_PORT_CONFIG      2
    611 #define MOS_MSG_SUBCLASS_PSCAN_PORT_BITMAP      MOS_MSG_DMA_SET(3)
    612 #define MOS_MSG_SUBCLASS_PSCAN_PORT_BITMAP_REPLY 4
    613 
    614 #define MOS_MSG_CLASS_PSCAN_EVENT       14
    615 #define MOS_MSG_SUBCLASS_PSCAN_PORT_ALERT       0
    616 
    617 #define MOS_MSG_CLASS_VERSION           15
    618 
    619 /*
    620  * ETH LM/DM application
    621  */
    622 
    623 #define MOS_MSG_CLASS_ETH_LM_DM			16
    624 
    625 #define _ETH_LM_DM_APPL_READY           		0x00
    626 #define _ETH_LM_DM_INIT                         0x01
    627 #define _ETH_LM_DM_UNINIT                       0x02
    628 #define _ETH_LM_DM_SESS_SET                     0x03
    629 #define _ETH_LM_DM_SESS_GET                     0x04
    630 #define _ETH_LM_DM_SESS_DELETE                  0x05
    631 #define _ETH_LM_DM_STAT_GET                     0x06
    632 #define _ETH_LM_DM_LOSS_MEASUREMENT_ADD         0x07
    633 #define _ETH_LM_DM_LOSS_MEASUREMENT_GET         0x08
    634 #define _ETH_LM_DM_LOSS_MEASUREMENT_DELETE      0x09
    635 #define _ETH_LM_DM_DELAY_MEASUREMENT_ADD        0x0a
    636 #define _ETH_LM_DM_DELAY_MEASUREMENT_GET        0x0b
    637 #define _ETH_LM_DM_DELAY_MEASUREMENT_DELETE     0x0c
    638 #define _ETH_LM_DM_PM_RAW_DATA_EVENT_SET        0x0d
    639 #define _ETH_LM_DM_PM_RAW_DATA_EVENT_UNSET      0x0e
    640 #define _ETH_LM_DM_PM_STATS_GET                 0x0f
    641 #define _ETH_LM_DM_PM_PROFILE_ATTACH            0x10
    642 #define _ETH_LM_DM_PM_PROFILE_DETACH            0x11
    643 #define _ETH_LM_DM_VERSION_EXCHANGE             0x12
    644 #define _ETH_LM_DM_EVENT_MASK_SET               0x13
    645 
    646 #define MOS_MSG_SUBCLASS_ETH_LM_DM_APPL_READY             \
    647     _ETH_LM_DM_APPL_READY
    648 #define MOS_MSG_SUBCLASS_ETH_LM_DM_INIT                   \
    649     MOS_MSG_DMA_SET(_ETH_LM_DM_INIT)
    650 #define MOS_MSG_SUBCLASS_ETH_LM_DM_INIT_REPLY             \
    651     MOS_MSG_SUBCLASS_REPLY(_ETH_LM_DM_INIT)
    652 #define MOS_MSG_SUBCLASS_ETH_LM_DM_UNINIT                 \
    653     _ETH_LM_DM_UNINIT
    654 #define MOS_MSG_SUBCLASS_ETH_LM_DM_UNINIT_REPLY           \
    655     MOS_MSG_SUBCLASS_REPLY(_ETH_LM_DM_UNINIT)
    656 #define MOS_MSG_SUBCLASS_ETH_LM_DM_SESS_SET               \
    657     MOS_MSG_DMA_SET(_ETH_LM_DM_SESS_SET)
    658 #define MOS_MSG_SUBCLASS_ETH_LM_DM_SESS_SET_REPLY         \
    659     MOS_MSG_SUBCLASS_REPLY(_ETH_LM_DM_SESS_SET)
    660 #define MOS_MSG_SUBCLASS_ETH_LM_DM_SESS_GET               \
    661     _ETH_LM_DM_SESS_GET
    662 #define MOS_MSG_SUBCLASS_ETH_LM_DM_SESS_GET_REPLY         \
    663     MOS_MSG_SUBCLASS_REPLY(MOS_MSG_DMA_SET(_ETH_LM_DM_SESS_GET))
    664 #define MOS_MSG_SUBCLASS_ETH_LM_DM_SESS_DELETE            \
    665     _ETH_LM_DM_SESS_DELETE
    666 #define MOS_MSG_SUBCLASS_ETH_LM_DM_SESS_DELETE_REPLY      \
    667     MOS_MSG_SUBCLASS_REPLY(_ETH_LM_DM_SESS_DELETE)
    668 #define MOS_MSG_SUBCLASS_ETH_LM_DM_STAT_GET               \
    669     MOS_MSG_DMA_SET(_ETH_LM_DM_STAT_GET)
    670 #define MOS_MSG_SUBCLASS_ETH_LM_DM_STAT_GET_REPLY         \
    671     MOS_MSG_SUBCLASS_REPLY(MOS_MSG_DMA_SET(_ETH_LM_DM_STAT_GET))
    672 #define MOS_MSG_SUBCLASS_ETH_LM_DM_LOSS_MEASUREMENT_ADD        \
    673     MOS_MSG_DMA_SET(_ETH_LM_DM_LOSS_MEASUREMENT_ADD)
    674 #define MOS_MSG_SUBCLASS_ETH_LM_DM_LOSS_MEASUREMENT_ADD_REPLY     \
    675     MOS_MSG_SUBCLASS_REPLY(_ETH_LM_DM_LOSS_MEASUREMENT_ADD)
    676 #define MOS_MSG_SUBCLASS_ETH_LM_DM_LOSS_MEASUREMENT_DELETE        \
    677     MOS_MSG_DMA_SET(_ETH_LM_DM_LOSS_MEASUREMENT_DELETE)
    678 #define MOS_MSG_SUBCLASS_ETH_LM_DM_LOSS_MEASUREMENT_DELETE_REPLY     \
    679     MOS_MSG_SUBCLASS_REPLY(_ETH_LM_DM_LOSS_MEASUREMENT_DELETE)
    680 #define MOS_MSG_SUBCLASS_ETH_LM_DM_LOSS_MEASUREMENT_GET        \
    681     _ETH_LM_DM_LOSS_MEASUREMENT_GET
    682 #define MOS_MSG_SUBCLASS_ETH_LM_DM_LOSS_MEASUREMENT_GET_REPLY     \
    683     MOS_MSG_SUBCLASS_REPLY(MOS_MSG_DMA_SET(_ETH_LM_DM_LOSS_MEASUREMENT_GET))
    684 #define MOS_MSG_SUBCLASS_ETH_LM_DM_DELAY_MEASUREMENT_ADD        \
    685     MOS_MSG_DMA_SET(_ETH_LM_DM_DELAY_MEASUREMENT_ADD)
    686 #define MOS_MSG_SUBCLASS_ETH_LM_DM_DELAY_MEASUREMENT_ADD_REPLY     \
    687     MOS_MSG_SUBCLASS_REPLY(_ETH_LM_DM_DELAY_MEASUREMENT_ADD)
    688 #define MOS_MSG_SUBCLASS_ETH_LM_DM_DELAY_MEASUREMENT_DELETE        \
    689     MOS_MSG_DMA_SET(_ETH_LM_DM_DELAY_MEASUREMENT_DELETE)
    690 #define MOS_MSG_SUBCLASS_ETH_LM_DM_DELAY_MEASUREMENT_DELETE_REPLY     \
    691     MOS_MSG_SUBCLASS_REPLY(_ETH_LM_DM_DELAY_MEASUREMENT_DELETE)
    692 #define MOS_MSG_SUBCLASS_ETH_LM_DM_DELAY_MEASUREMENT_GET        \
    693     _ETH_LM_DM_DELAY_MEASUREMENT_GET
    694 #define MOS_MSG_SUBCLASS_ETH_LM_DM_DELAY_MEASUREMENT_GET_REPLY     \
    695     MOS_MSG_SUBCLASS_REPLY(MOS_MSG_DMA_SET(_ETH_LM_DM_DELAY_MEASUREMENT_GET))
    696 #define MOS_MSG_SUBCLASS_ETH_LM_DM_PM_RAW_DATA_EVENT_SET         \
    697     _ETH_LM_DM_PM_RAW_DATA_EVENT_SET
    698 #define MOS_MSG_SUBCLASS_ETH_LM_DM_PM_RAW_DATA_EVENT_SET_REPLY   \
    699     MOS_MSG_SUBCLASS_REPLY(_ETH_LM_DM_PM_RAW_DATA_EVENT_SET)
    700 #define MOS_MSG_SUBCLASS_ETH_LM_DM_PM_RAW_DATA_EVENT_UNSET         \
    701     _ETH_LM_DM_PM_RAW_DATA_EVENT_UNSET
    702 #define MOS_MSG_SUBCLASS_ETH_LM_DM_PM_RAW_DATA_EVENT_UNSET_REPLY   \
    703     MOS_MSG_SUBCLASS_REPLY(_ETH_LM_DM_PM_RAW_DATA_EVENT_UNSET)
    704 #define MOS_MSG_SUBCLASS_ETH_LM_DM_PM_STATS_GET        \
    705     _ETH_LM_DM_PM_STATS_GET
    706 #define MOS_MSG_SUBCLASS_ETH_LM_DM_PM_STATS_GET_REPLY     \
    707     MOS_MSG_SUBCLASS_REPLY(MOS_MSG_DMA_SET(_ETH_LM_DM_PM_STATS_GET))
    708 #define MOS_MSG_SUBCLASS_ETH_LM_DM_EVENT_MASK_SET                            \
    709     _ETH_LM_DM_EVENT_MASK_SET
    710 #define MOS_MSG_SUBCLASS_ETH_LM_DM_EVENT_MASK_SET_REPLY                      \
    711     MOS_MSG_SUBCLASS_REPLY(_ETH_LM_DM_EVENT_MASK_SET)
    712 
    713 #define MOS_MSG_SUBCLASS_ETH_LM_DM_PM_PROFILE_ATTACH               \
    714     MOS_MSG_DMA_SET(_ETH_LM_DM_PM_PROFILE_ATTACH)
    715 #define MOS_MSG_SUBCLASS_ETH_LM_DM_PM_PROFILE_ATTACH_REPLY         \
    716     MOS_MSG_SUBCLASS_REPLY(_ETH_LM_DM_PM_PROFILE_ATTACH)
    717 
    718 #define MOS_MSG_SUBCLASS_ETH_LM_DM_PM_PROFILE_DETACH            \
    719     _ETH_LM_DM_PM_PROFILE_DETACH
    720 #define MOS_MSG_SUBCLASS_ETH_LM_DM_PM_PROFILE_DETACH_REPLY      \
    721     MOS_MSG_SUBCLASS_REPLY(_ETH_LM_DM_PM_PROFILE_DETACH)
    722 
    723 #define MOS_MSG_SUBCLASS_ETH_LM_DM_VERSION_EXCHANGE       \
    724     MOS_MSG_DMA_SET(_ETH_LM_DM_VERSION_EXCHANGE)
    725 #define MOS_MSG_SUBCLASS_ETH_LM_DM_VER_EXCHANGE_REPLY     \
    726     MOS_MSG_SUBCLASS_REPLY(MOS_MSG_DMA_SET(_ETH_LM_DM_VERSION_EXCHANGE))
    727 /*
    728  * PTP SIM application
    729  */
    730 
    731 #define MOS_MSG_CLASS_PTPSIM            17
    732 
    733 #define   MOS_MSG_SUBCLASS_PTPSIM_APPL_READY     (0)
    734 #define   MOS_MSG_SUBCLASS_PTPSIM_CONFIG         (1)
    735 #define   MOS_MSG_SUBCLASS_PTPSIM_STATS          (2)
    736 
    737 #define   MOS_MSG_SUBCLASS_PTPSIM_CONFIG_REPLY   (1)
    738 #define   MOS_MSG_SUBCLASS_PTPSIM_STATS_REPLY    (2)
    739 
    740 /*
    741  * MPLS_LM_DM
    742  */
    743 #define MOS_MSG_CLASS_MPLS_LM_DM                     18 
    744 
    745 /* MPLS_LM_DM message subclasses */
    746 #define _MPLS_LM_DM_APPL_READY                       0x00
    747 #define _MPLS_LM_DM_INIT                             0x01
    748 #define _MPLS_LM_DM_UNINIT                           0x02
    749 #define _MPLS_LM_DM_LOSS_MEASUREMENT_ADD             0x03
    750 #define _MPLS_LM_DM_LOSS_MEASUREMENT_GET             0x04
    751 #define _MPLS_LM_DM_LOSS_MEASUREMENT_DELETE          0x05
    752 #define _MPLS_LM_DM_DELAY_MEASUREMENT_ADD            0x06
    753 #define _MPLS_LM_DM_DELAY_MEASUREMENT_GET            0x07
    754 #define _MPLS_LM_DM_DELAY_MEASUREMENT_DELETE         0x08
    755 #define _MPLS_LM_DM_EVENT_MASK_SET                   0x09
    756 #define _MPLS_LM_DM_STAT_GET                         0x0A
    757 #define _MPLS_LM_DM_PM_STATS_GET                     0x0B
    758 #define _MPLS_LM_DM_PM_PROFILE_ATTACH                0x0C
    759 #define _MPLS_LM_DM_PM_PROFILE_DETACH                0x0D
    760 #define _MPLS_LM_DM_PM_RAW_DATA_EVENT_SET            0x0E
    761 #define _MPLS_LM_DM_PM_RAW_DATA_EVENT_UNSET          0x0F
    762 
    763 #define MOS_MSG_SUBCLASS_MPLS_LM_DM_APPL_READY                                \
    764     _MPLS_LM_DM_APPL_READY
    765 #define MOS_MSG_SUBCLASS_MPLS_LM_DM_INIT                                      \
    766     MOS_MSG_DMA_SET(_MPLS_LM_DM_INIT)
    767 #define MOS_MSG_SUBCLASS_MPLS_LM_DM_INIT_REPLY                                \
    768     MOS_MSG_SUBCLASS_REPLY(_MPLS_LM_DM_INIT)
    769 #define MOS_MSG_SUBCLASS_MPLS_LM_DM_UNINIT                                    \
    770     _MPLS_LM_DM_UNINIT
    771 #define MOS_MSG_SUBCLASS_MPLS_LM_DM_UNINIT_REPLY                              \
    772     MOS_MSG_SUBCLASS_REPLY(_MPLS_LM_DM_UNINIT)
    773 #define MOS_MSG_SUBCLASS_MPLS_LM_DM_STAT_GET                                  \
    774     MOS_MSG_DMA_SET(_MPLS_LM_DM_STAT_GET)
    775 #define MOS_MSG_SUBCLASS_MPLS_LM_DM_STAT_GET_REPLY                            \
    776     MOS_MSG_SUBCLASS_REPLY(MOS_MSG_DMA_SET(_MPLS_LM_DM_STAT_GET))
    777 #define MOS_MSG_SUBCLASS_MPLS_LM_DM_EVENT_MASK_SET                            \
    778     _MPLS_LM_DM_EVENT_MASK_SET
    779 #define MOS_MSG_SUBCLASS_MPLS_LM_DM_EVENT_MASK_SET_REPLY                      \
    780     MOS_MSG_SUBCLASS_REPLY(_MPLS_LM_DM_EVENT_MASK_SET)
    781 #define MOS_MSG_SUBCLASS_MPLS_LM_DM_LOSS_MEASUREMENT_ADD                      \
    782     MOS_MSG_DMA_SET(_MPLS_LM_DM_LOSS_MEASUREMENT_ADD)
    783 #define MOS_MSG_SUBCLASS_MPLS_LM_DM_LOSS_MEASUREMENT_ADD_REPLY                \
    784     MOS_MSG_SUBCLASS_REPLY(_MPLS_LM_DM_LOSS_MEASUREMENT_ADD)
    785 #define MOS_MSG_SUBCLASS_MPLS_LM_DM_LOSS_MEASUREMENT_DELETE                   \
    786     MOS_MSG_DMA_SET(_MPLS_LM_DM_LOSS_MEASUREMENT_DELETE)
    787 #define MOS_MSG_SUBCLASS_MPLS_LM_DM_LOSS_MEASUREMENT_DELETE_REPLY             \
    788     MOS_MSG_SUBCLASS_REPLY(_MPLS_LM_DM_LOSS_MEASUREMENT_DELETE)
    789 #define MOS_MSG_SUBCLASS_MPLS_LM_DM_LOSS_MEASUREMENT_GET                      \
    790     MOS_MSG_DMA_SET(_MPLS_LM_DM_LOSS_MEASUREMENT_GET)
    791 #define MOS_MSG_SUBCLASS_MPLS_LM_DM_LOSS_MEASUREMENT_GET_REPLY                \
    792     MOS_MSG_SUBCLASS_REPLY(MOS_MSG_DMA_SET(_MPLS_LM_DM_LOSS_MEASUREMENT_GET))
    793 #define MOS_MSG_SUBCLASS_MPLS_LM_DM_DELAY_MEASUREMENT_ADD                     \
    794     MOS_MSG_DMA_SET(_MPLS_LM_DM_DELAY_MEASUREMENT_ADD)
    795 #define MOS_MSG_SUBCLASS_MPLS_LM_DM_DELAY_MEASUREMENT_ADD_REPLY               \
    796     MOS_MSG_SUBCLASS_REPLY(_MPLS_LM_DM_DELAY_MEASUREMENT_ADD)
    797 #define MOS_MSG_SUBCLASS_MPLS_LM_DM_DELAY_MEASUREMENT_DELETE                  \
    798     MOS_MSG_DMA_SET(_MPLS_LM_DM_DELAY_MEASUREMENT_DELETE)
    799 #define MOS_MSG_SUBCLASS_MPLS_LM_DM_DELAY_MEASUREMENT_DELETE_REPLY            \
    800     MOS_MSG_SUBCLASS_REPLY(_MPLS_LM_DM_DELAY_MEASUREMENT_DELETE)
    801 #define MOS_MSG_SUBCLASS_MPLS_LM_DM_DELAY_MEASUREMENT_GET                     \
    802     MOS_MSG_DMA_SET(_MPLS_LM_DM_DELAY_MEASUREMENT_GET)
    803 #define MOS_MSG_SUBCLASS_MPLS_LM_DM_DELAY_MEASUREMENT_GET_REPLY               \
    804     MOS_MSG_SUBCLASS_REPLY(MOS_MSG_DMA_SET(_MPLS_LM_DM_DELAY_MEASUREMENT_GET))
    805 #define MOS_MSG_SUBCLASS_MPLS_LM_DM_PM_RAW_DATA_EVENT_SET   \
    806     _MPLS_LM_DM_PM_RAW_DATA_EVENT_SET
    807 #define MOS_MSG_SUBCLASS_MPLS_LM_DM_PM_RAW_DATA_EVENT_SET_REPLY   \
    808     MOS_MSG_SUBCLASS_REPLY(_MPLS_LM_DM_PM_RAW_DATA_EVENT_SET)
    809 #define MOS_MSG_SUBCLASS_MPLS_LM_DM_PM_RAW_DATA_EVENT_UNSET         \
    810     _MPLS_LM_DM_PM_RAW_DATA_EVENT_UNSET
    811 #define MOS_MSG_SUBCLASS_MPLS_LM_DM_PM_RAW_DATA_EVENT_UNSET_REPLY   \
    812     MOS_MSG_SUBCLASS_REPLY(_MPLS_LM_DM_PM_RAW_DATA_EVENT_UNSET)
    813 #define MOS_MSG_SUBCLASS_MPLS_LM_DM_PM_STATS_GET        \
    814     _MPLS_LM_DM_PM_STATS_GET
    815 #define MOS_MSG_SUBCLASS_MPLS_LM_DM_PM_STATS_GET_REPLY     \
    816     MOS_MSG_SUBCLASS_REPLY(MOS_MSG_DMA_SET(_MPLS_LM_DM_PM_STATS_GET))
    817 
    818 #define MOS_MSG_SUBCLASS_MPLS_LM_DM_PM_PROFILE_ATTACH               \
    819     MOS_MSG_DMA_SET(_MPLS_LM_DM_PM_PROFILE_ATTACH)
    820 #define MOS_MSG_SUBCLASS_MPLS_LM_DM_PM_PROFILE_ATTACH_REPLY         \
    821     MOS_MSG_SUBCLASS_REPLY(_MPLS_LM_DM_PM_PROFILE_ATTACH)
    822 
    823 #define MOS_MSG_SUBCLASS_MPLS_LM_DM_PM_PROFILE_DETACH            \
    824     _MPLS_LM_DM_PM_PROFILE_DETACH
    825 #define MOS_MSG_SUBCLASS_MPLS_LM_DM_PM_PROFILE_DETACH_REPLY      \
    826     MOS_MSG_SUBCLASS_REPLY(_MPLS_LM_DM_PM_PROFILE_DETACH)
    827 
    828 
    829 /* MPLS LM DM event class */
    830 #define   MOS_MSG_CLASS_MPLS_LM_DM_EVENT       19
    831 
    832 /* MPLS LM DM event subclasses */
    833 #define _MPLS_LM_DM_EVENT_OAM_PM_EVENT         0x0
    834 
    835 #define MOS_MSG_CLASS_OAM_PM			20
    836 
    837 #define _OAM_PM_BHH                     		0x00
    838 #define _OAM_PM_MPLS_LM_DM                		0x01
    839 #define _OAM_PM_ETH_LM_DM                		0x02
    840 
    841 #define MOS_MSG_SUBCLASS_OAM_PM_BHH         \
    842     MOS_MSG_DMA_SET(_OAM_PM_BHH)
    843 
    844 /* Ethernet LM DM event class */
    845 #define MOS_MSG_CLASS_ETH_LM_DM_EVENT         21
    846 
    847 /* Ethernet LM DM event subclasses */
    848 #define _ETH_LM_DM_EVENT_OAM_PM_EVENT         0x0
    849 
    850 
    851 #define MOS_MSG_CLASS_CCM                       22
    852 
    853 #define _CCM_APPL_READY                         0x00
    854 #define _CCM_INIT                               0x01
    855 #define _CCM_GROUP_SET                          0x02
    856 #define _CCM_GROUP_GET                          0x03
    857 #define _CCM_GROUP_GET_FAULTS_ONLY              0x04
    858 #define _CCM_GROUP_DELETE                       0x05
    859 #define _CCM_MEP_SET                            0x06
    860 #define _CCM_MEP_GET                            0x07
    861 #define _CCM_MEP_GET_FAULTS_ONLY                0x08
    862 #define _CCM_MEP_DELETE                         0x09
    863 #define _CCM_EVENT_MASK_SET                     0x0A
    864 #define _CCM_UNINT                              0x0B
    865 #define _CCM_GET_APP_DATA                       0x0C
    866 #define _CCM_PORT_TRUNK_UPDATE                  0x0D
    867 #define _CCM_PORT_TRUNK_GET                     0x0E
    868 
    869 #define MOS_MSG_SUBCLASS_CCM_APPL_READY                                       \
    870     _CCM_APPL_READY
    871 #define MOS_MSG_SUBCLASS_CCM_INIT                                             \
    872     MOS_MSG_DMA_SET(_CCM_INIT)
    873 #define MOS_MSG_SUBCLASS_CCM_INIT_REPLY                                       \
    874     MOS_MSG_SUBCLASS_REPLY(_CCM_INIT)
    875 
    876 #define MOS_MSG_SUBCLASS_CCM_GROUP_SET                                        \
    877     MOS_MSG_DMA_SET(_CCM_GROUP_SET)
    878 #define MOS_MSG_SUBCLASS_CCM_GROUP_SET_REPLY                                  \
    879     MOS_MSG_SUBCLASS_REPLY(_CCM_GROUP_SET)
    880 #define MOS_MSG_SUBCLASS_CCM_GROUP_GET                                        \
    881     _CCM_GROUP_GET
    882 #define MOS_MSG_SUBCLASS_CCM_GROUP_GET_REPLY                                  \
    883         MOS_MSG_SUBCLASS_REPLY(MOS_MSG_DMA_SET(_CCM_GROUP_GET))
    884 #define MOS_MSG_SUBCLASS_CCM_GROUP_GET_FAULTS_ONLY                            \
    885     _CCM_GROUP_GET_FAULTS_ONLY
    886 #define MOS_MSG_SUBCLASS_CCM_GROUP_DELETE                                     \
    887     _CCM_GROUP_DELETE
    888 #define MOS_MSG_SUBCLASS_CCM_GROUP_DELETE_REPLY                               \
    889     MOS_MSG_SUBCLASS_REPLY(_CCM_GROUP_DELETE)
    890 
    891 #define MOS_MSG_SUBCLASS_CCM_MEP_SET                                          \
    892     MOS_MSG_DMA_SET(_CCM_MEP_SET)
    893 #define MOS_MSG_SUBCLASS_CCM_MEP_SET_REPLY                                    \
    894     MOS_MSG_SUBCLASS_REPLY(_CCM_MEP_SET)
    895 #define MOS_MSG_SUBCLASS_CCM_MEP_GET                                          \
    896     _CCM_MEP_GET
    897 #define MOS_MSG_SUBCLASS_CCM_MEP_GET_REPLY                                    \
    898     MOS_MSG_SUBCLASS_REPLY(MOS_MSG_DMA_SET(_CCM_MEP_GET))
    899 #define MOS_MSG_SUBCLASS_CCM_MEP_GET_FAULTS_ONLY                              \
    900     _CCM_MEP_GET_FAULTS_ONLY
    901 #define MOS_MSG_SUBCLASS_CCM_MEP_DELETE                                       \
    902     _CCM_MEP_DELETE
    903 #define MOS_MSG_SUBCLASS_CCM_MEP_DELETE_REPLY                                 \
    904     MOS_MSG_SUBCLASS_REPLY(_CCM_MEP_DELETE)    
    905 
    906 #define MOS_MSG_SUBCLASS_CCM_EVENT_MASK_SET                                   \
    907     _CCM_EVENT_MASK_SET
    908 #define MOS_MSG_SUBCLASS_CCM_EVENT_MASK_SET_REPLY                             \
    909         MOS_MSG_SUBCLASS_REPLY(_CCM_EVENT_MASK_SET)
    910 
    911 #define MOS_MSG_SUBCLASS_CCM_UNINIT                                           \
    912     _CCM_UNINT
    913 #define MOS_MSG_SUBCLASS_CCM_UNINIT_REPLY                                     \
    914     MOS_MSG_SUBCLASS_REPLY(_CCM_UNINT)
    915 
    916 #define MOS_MSG_SUBCLASS_CCM_GET_APP_DATA                                     \
    917     _CCM_GET_APP_DATA
    918 #define MOS_MSG_SUBCLASS_CCM_GET_APP_DATA_REPLY                               \
    919     MOS_MSG_SUBCLASS_REPLY(MOS_MSG_DMA_SET(_CCM_GET_APP_DATA))
    920 
    921 #define MOS_MSG_SUBCLASS_CCM_PORT_TRUNK_UPDATE                                \
    922     MOS_MSG_DMA_SET(_CCM_PORT_TRUNK_UPDATE)
    923 #define MOS_MSG_SUBCLASS_CCM_PORT_TRUNK_UPDATE_REPLY                          \
    924     MOS_MSG_SUBCLASS_REPLY(_CCM_PORT_TRUNK_UPDATE)
    925 
    926 #define MOS_MSG_SUBCLASS_CCM_PORT_TRUNK_GET                                   \
    927     _CCM_PORT_TRUNK_GET
    928 #define MOS_MSG_SUBCLASS_CCM_PORT_TRUNK_GET_REPLY                             \
    929     MOS_MSG_SUBCLASS_REPLY(MOS_MSG_DMA_SET(_CCM_PORT_TRUNK_GET))
    930 
    931 
    932 #define MOS_MSG_CLASS_CCM_EVENT                 23
    933 
    934 #define MOS_MSG_CLASS_THREAD_INFO               24
    935 
    936 /*
    937  * KBP
    938  */
    939 #define MOS_MSG_CLASS_KBP                       25
    940 #define   _KBP_APPL_READY                       1 /* Send Link bmp to uC */
    941 #define   _MOS_MSG_SUBCLASS_KBP_ROP_REQ         2 /* Send Link bmp to uC */
    942 #define   _MOS_MSG_SUBCLASS_KBP_ROP_RSP         3 /* Send Link bmp to uC */
    943 #define   _MOS_MSG_SUBCLASS_KBP_TEST_REQ        4 /* Send Link bmp to uC */
    944 #define   _MOS_MSG_SUBCLASS_KBP_TEST_RSP        5 /* Send Link bmp to uC */
    945 #define   _MOS_MSG_SUBCLASS_KBP_CONFIG_REQ      6 /* Send Link bmp to uC */
    946 #define   _MOS_MSG_SUBCLASS_KBP_CONFIG_RSP      7 /* Send Link bmp to uC */
    947 
    948 
    949 #define MOS_MSG_SUBCLASS_KBP_APPL_READY             \
    950         _KBP_APPL_READY
    951 #define MOS_MSG_SUBCLASS_KBP_ROP_REQ        \
    952         MOS_MSG_DMA_SET(_MOS_MSG_SUBCLASS_KBP_ROP_REQ)
    953 #define MOS_MSG_SUBCLASS_KBP_ROP_RSP       \
    954         _MOS_MSG_SUBCLASS_KBP_ROP_RSP
    955 #define MOS_MSG_SUBCLASS_KBP_TEST_REQ       \
    956         _MOS_MSG_SUBCLASS_KBP_TEST_REQ
    957 #define MOS_MSG_SUBCLASS_KBP_TEST_RSP      \
    958         _MOS_MSG_SUBCLASS_KBP_TEST_RSP
    959 #define MOS_MSG_SUBCLASS_KBP_CONFIG_REQ       \
    960         MOS_MSG_DMA_SET(_MOS_MSG_SUBCLASS_KBP_CONFIG_REQ)
    961 #define MOS_MSG_SUBCLASS_KBP_CONFIG_RSP      \
    962         _MOS_MSG_SUBCLASS_KBP_CONFIG_RSP
    963 
    964 /* FT Messages */
    965 
    966 #define MOS_MSG_CLASS_FT                        26
    967 
    968 #define _FT_APPL_READY                         0x00
    969 #define _FT_INIT                               0x01
    970 #define _FT_SHUTDOWN                           0x02
    971 #define _FT_EM_KEY_FORMAT                      0x03
    972 #define _FT_GROUP_CREATE                       0x04
    973 #define _FT_GROUP_GET                          0x05
    974 #define _FT_GROUP_DELETE                       0x06
    975 #define _FT_GROUP_UPDATE                       0x07
    976 #define _FT_GROUP_FLOW_DATA_GET                0x08
    977 #define _FT_TEMPLATE_CREATE                    0x09
    978 #define _FT_TEMPLATE_GET                       0x0A
    979 #define _FT_TEMPLATE_DELETE                    0x0B
    980 #define _FT_COLLECTOR_CREATE                   0x0C
    981 #define _FT_COLLECTOR_GET                      0x0D
    982 #define _FT_COLLECTOR_DELETE                   0x0E
    983 #define _FT_SER_EVENT                          0x0F
    984 #define _FT_TEMPLATE_XMIT                      0x10
    985 #define _FT_TEMPLATE_XMIT_GET                  0x11 /* Unimplemented */
    986 #define _FT_ELPH_PROFILE_CREATE                0x12
    987 #define _FT_ELPH_PROFILE_GET                   0x13
    988 #define _FT_ELPH_PROFILE_DELETE                0x14
    989 #define _FT_STATS_LEARN_GET                    0x15
    990 #define _FT_STATS_EXPORT_GET                   0x16
    991 #define _FT_STATS_AGE_GET                      0x17
    992 #define _FT_STATS_ELPH_GET                     0x18
    993 #define _FT_FEATURES_EXCHANGE                  0x19
    994 #define _FT_EM_GROUP_CREATE                    0x20
    995 #define _FT_EM_GROUP_DELETE                    0x21
    996 #define _FT_GROUP_ACTIONS_SET                  0x22
    997 #define _FT_EXPORT_INTERVAL_UPDATE             0x23
    998 
    999 #define MOS_MSG_SUBCLASS_FT_APPL_READY                                       \
   1000     _FT_APPL_READY
   1001 
   1002 #define MOS_MSG_SUBCLASS_FT_INIT                                             \
   1003     MOS_MSG_DMA_SET(_FT_INIT)
   1004 
   1005 #define MOS_MSG_SUBCLASS_FT_INIT_REPLY                                        \
   1006     MOS_MSG_SUBCLASS_REPLY(_FT_INIT)
   1007 
   1008 #define MOS_MSG_SUBCLASS_FT_SHUTDOWN                                          \
   1009     _FT_SHUTDOWN
   1010 
   1011 #define MOS_MSG_SUBCLASS_FT_SHUTDOWN_REPLY                                    \
   1012     MOS_MSG_SUBCLASS_REPLY(_FT_SHUTDOWN)
   1013 
   1014 #define MOS_MSG_SUBCLASS_FT_EM_KEY_FORMAT                                     \
   1015     MOS_MSG_DMA_SET(_FT_EM_KEY_FORMAT)
   1016 
   1017 #define MOS_MSG_SUBCLASS_FT_EM_KEY_FORMAT_REPLY                               \
   1018     MOS_MSG_SUBCLASS_REPLY(_FT_EM_KEY_FORMAT)
   1019 
   1020 #define MOS_MSG_SUBCLASS_FT_GROUP_CREATE                                      \
   1021     MOS_MSG_DMA_SET(_FT_GROUP_CREATE)
   1022 
   1023 #define MOS_MSG_SUBCLASS_FT_GROUP_CREATE_REPLY                                \
   1024     MOS_MSG_SUBCLASS_REPLY(_FT_GROUP_CREATE)
   1025 
   1026 #define MOS_MSG_SUBCLASS_FT_GROUP_GET                                         \
   1027     _FT_GROUP_GET
   1028 
   1029 #define MOS_MSG_SUBCLASS_FT_GROUP_GET_REPLY                                   \
   1030     MOS_MSG_SUBCLASS_REPLY(MOS_MSG_DMA_SET(_FT_GROUP_GET))
   1031 
   1032 #define MOS_MSG_SUBCLASS_FT_GROUP_DELETE                                      \
   1033     _FT_GROUP_DELETE
   1034 
   1035 #define MOS_MSG_SUBCLASS_FT_GROUP_DELETE_REPLY                                \
   1036     MOS_MSG_SUBCLASS_REPLY(_FT_GROUP_DELETE)
   1037 
   1038 #define MOS_MSG_SUBCLASS_FT_GROUP_UPDATE                                      \
   1039     MOS_MSG_DMA_SET(_FT_GROUP_UPDATE)
   1040 
   1041 #define MOS_MSG_SUBCLASS_FT_GROUP_UPDATE_REPLY                                \
   1042     MOS_MSG_SUBCLASS_REPLY(_FT_GROUP_UPDATE)
   1043 
   1044 #define MOS_MSG_SUBCLASS_FT_GROUP_FLOW_DATA_GET                               \
   1045     MOS_MSG_DMA_SET(_FT_GROUP_FLOW_DATA_GET)
   1046 
   1047 #define MOS_MSG_SUBCLASS_FT_GROUP_FLOW_DATA_GET_REPLY                         \
   1048     MOS_MSG_SUBCLASS_REPLY(MOS_MSG_DMA_SET(_FT_GROUP_FLOW_DATA_GET))
   1049 
   1050 #define MOS_MSG_SUBCLASS_FT_TEMPLATE_CREATE                                    \
   1051     MOS_MSG_DMA_SET(_FT_TEMPLATE_CREATE)
   1052 
   1053 #define MOS_MSG_SUBCLASS_FT_TEMPLATE_CREATE_REPLY                              \
   1054     MOS_MSG_SUBCLASS_REPLY(_FT_TEMPLATE_CREATE)
   1055 
   1056 #define MOS_MSG_SUBCLASS_FT_TEMPLATE_GET                                        \
   1057     _FT_TEMPLATE_GET
   1058 
   1059 #define MOS_MSG_SUBCLASS_FT_TEMPLATE_GET_REPLY                                  \
   1060     MOS_MSG_SUBCLASS_REPLY(MOS_MSG_DMA_SET(_FT_TEMPLATE_GET))
   1061 
   1062 #define MOS_MSG_SUBCLASS_FT_TEMPLATE_DELETE                                     \
   1063     _FT_TEMPLATE_DELETE
   1064 
   1065 #define MOS_MSG_SUBCLASS_FT_TEMPLATE_DELETE_REPLY                               \
   1066     MOS_MSG_SUBCLASS_REPLY(_FT_TEMPLATE_DELETE)
   1067 
   1068 #define MOS_MSG_SUBCLASS_FT_COLLECTOR_CREATE                                    \
   1069     MOS_MSG_DMA_SET(_FT_COLLECTOR_CREATE)
   1070 
   1071 #define MOS_MSG_SUBCLASS_FT_COLLECTOR_CREATE_REPLY                              \
   1072     MOS_MSG_SUBCLASS_REPLY(_FT_COLLECTOR_CREATE)
   1073 
   1074 #define MOS_MSG_SUBCLASS_FT_COLLECTOR_GET                                        \
   1075     _FT_COLLECTOR_GET
   1076 
   1077 #define MOS_MSG_SUBCLASS_FT_COLLECTOR_GET_REPLY                                  \
   1078     MOS_MSG_SUBCLASS_REPLY(MOS_MSG_DMA_SET(_FT_COLLECTOR_GET))
   1079 
   1080 #define MOS_MSG_SUBCLASS_FT_COLLECTOR_DELETE                                     \
   1081     _FT_COLLECTOR_DELETE
   1082 
   1083 #define MOS_MSG_SUBCLASS_FT_COLLECTOR_DELETE_REPLY                               \
   1084     MOS_MSG_SUBCLASS_REPLY(_FT_COLLECTOR_DELETE)
   1085 
   1086 #define MOS_MSG_SUBCLASS_FT_SER_EVENT                                            \
   1087     MOS_MSG_DMA_SET(_FT_SER_EVENT)
   1088 
   1089 #define MOS_MSG_SUBCLASS_FT_SER_EVENT_REPLY                                      \
   1090     MOS_MSG_SUBCLASS_REPLY(_FT_SER_EVENT)
   1091 
   1092 #define MOS_MSG_SUBCLASS_FT_TEMPLATE_XMIT                                        \
   1093     MOS_MSG_DMA_SET(_FT_TEMPLATE_XMIT)
   1094 
   1095 #define MOS_MSG_SUBCLASS_FT_TEMPLATE_XMIT_REPLY                                  \
   1096     MOS_MSG_SUBCLASS_REPLY(_FT_TEMPLATE_XMIT)
   1097 
   1098 #define MOS_MSG_SUBCLASS_FT_ELPH_PROFILE_CREATE                                  \
   1099     MOS_MSG_DMA_SET(_FT_ELPH_PROFILE_CREATE)
   1100 
   1101 #define MOS_MSG_SUBCLASS_FT_ELPH_PROFILE_CREATE_REPLY                            \
   1102     MOS_MSG_SUBCLASS_REPLY(_FT_ELPH_PROFILE_CREATE)
   1103 
   1104 #define MOS_MSG_SUBCLASS_FT_ELPH_PROFILE_GET                                     \
   1105     _FT_ELPH_PROFILE_GET
   1106 
   1107 #define MOS_MSG_SUBCLASS_FT_ELPH_PROFILE_GET_REPLY                               \
   1108     MOS_MSG_SUBCLASS_REPLY(MOS_MSG_DMA_SET(_FT_ELPH_PROFILE_GET))
   1109 
   1110 #define MOS_MSG_SUBCLASS_FT_ELPH_PROFILE_DELETE                                  \
   1111     _FT_ELPH_PROFILE_DELETE
   1112 
   1113 #define MOS_MSG_SUBCLASS_FT_ELPH_PROFILE_DELETE_REPLY                            \
   1114     MOS_MSG_SUBCLASS_REPLY(_FT_ELPH_PROFILE_DELETE)
   1115 
   1116 #define MOS_MSG_SUBCLASS_FT_STATS_LEARN_GET                                      \
   1117     _FT_STATS_LEARN_GET
   1118 
   1119 #define MOS_MSG_SUBCLASS_FT_STATS_LEARN_GET_REPLY                                \
   1120     MOS_MSG_SUBCLASS_REPLY(MOS_MSG_DMA_SET(_FT_STATS_LEARN_GET))
   1121 
   1122 #define MOS_MSG_SUBCLASS_FT_STATS_EXPORT_GET                                     \
   1123     _FT_STATS_EXPORT_GET
   1124 
   1125 #define MOS_MSG_SUBCLASS_FT_STATS_EXPORT_GET_REPLY                               \
   1126     MOS_MSG_SUBCLASS_REPLY(MOS_MSG_DMA_SET(_FT_STATS_EXPORT_GET))
   1127 
   1128 #define MOS_MSG_SUBCLASS_FT_STATS_AGE_GET                                        \
   1129     _FT_STATS_AGE_GET
   1130 
   1131 #define MOS_MSG_SUBCLASS_FT_STATS_AGE_GET_REPLY                                  \
   1132     MOS_MSG_SUBCLASS_REPLY(MOS_MSG_DMA_SET(_FT_STATS_AGE_GET))
   1133 
   1134 #define MOS_MSG_SUBCLASS_FT_STATS_ELPH_GET                                       \
   1135     _FT_STATS_ELPH_GET
   1136 
   1137 #define MOS_MSG_SUBCLASS_FT_STATS_ELPH_GET_REPLY                                 \
   1138     MOS_MSG_SUBCLASS_REPLY(MOS_MSG_DMA_SET(_FT_STATS_ELPH_GET))
   1139 
   1140 #define MOS_MSG_SUBCLASS_FT_FEATURES_EXCHANGE                                    \
   1141     MOS_MSG_DMA_SET(_FT_FEATURES_EXCHANGE)
   1142 
   1143 #define MOS_MSG_SUBCLASS_FT_FEATURES_EXCHANGE_REPLY                              \
   1144     MOS_MSG_SUBCLASS_REPLY(MOS_MSG_DMA_SET(_FT_FEATURES_EXCHANGE))
   1145 
   1146 #define MOS_MSG_SUBCLASS_FT_EM_GROUP_CREATE                                      \
   1147     MOS_MSG_DMA_SET(_FT_EM_GROUP_CREATE)
   1148 
   1149 #define MOS_MSG_SUBCLASS_FT_EM_GROUP_CREATE_REPLY                                \
   1150     MOS_MSG_SUBCLASS_REPLY(_FT_EM_GROUP_CREATE)
   1151 
   1152 #define MOS_MSG_SUBCLASS_FT_EM_GROUP_DELETE                                      \
   1153     _FT_EM_GROUP_DELETE
   1154 
   1155 #define MOS_MSG_SUBCLASS_FT_EM_GROUP_DELETE_REPLY                                \
   1156     MOS_MSG_SUBCLASS_REPLY(_FT_EM_GROUP_DELETE)
   1157 
   1158 #define MOS_MSG_SUBCLASS_FT_GROUP_ACTIONS_SET                                    \
   1159     MOS_MSG_DMA_SET(_FT_GROUP_ACTIONS_SET)
   1160 
   1161 #define MOS_MSG_SUBCLASS_FT_GROUP_ACTIONS_SET_REPLY                              \
   1162     MOS_MSG_SUBCLASS_REPLY(_FT_GROUP_ACTIONS_SET)
   1163 
   1164 #define MOS_MSG_SUBCLASS_FT_EXPORT_INTERVAL_UPDATE                                    \
   1165     (_FT_EXPORT_INTERVAL_UPDATE)
   1166 
   1167 #define MOS_MSG_SUBCLASS_FT_EXPORT_INTERVAL_UPDATE_REPLY                              \
   1168     MOS_MSG_SUBCLASS_REPLY(_FT_EXPORT_INTERVAL_UPDATE)
   1169 
   1170 
   1171 #define MOS_MSG_CLASS_IFA                        27
   1172 
   1173 #define _IFA_APPL_READY                         0x00
   1174 #define _IFA_INIT                               0x01
   1175 #define _IFA_SHUTDOWN                           0x02
   1176 #define _IFA_COLLECTOR_SET                      0x03
   1177 #define _IFA_COLLECTOR_GET                      0x04
   1178 #define _IFA_CONFIG_SET                         0x05
   1179 #define _IFA_CONFIG_GET                         0x06
   1180 #define _IFA_STAT_GET                           0x07
   1181 #define _IFA_STAT_SET                           0x08
   1182 
   1183 #define MOS_MSG_SUBCLASS_IFA_APPL_READY                                      \
   1184     _IFA_APPL_READY
   1185 
   1186 #define MOS_MSG_SUBCLASS_IFA_INIT                                            \
   1187     MOS_MSG_DMA_SET(_IFA_INIT)
   1188 
   1189 #define MOS_MSG_SUBCLASS_IFA_INIT_REPLY                                      \
   1190     MOS_MSG_SUBCLASS_REPLY(_IFA_INIT)
   1191 
   1192 #define MOS_MSG_SUBCLASS_IFA_SHUTDOWN                                        \
   1193     _IFA_SHUTDOWN
   1194 
   1195 #define MOS_MSG_SUBCLASS_IFA_SHUTDOWN_REPLY                                  \
   1196     MOS_MSG_SUBCLASS_REPLY(_IFA_SHUTDOWN)
   1197 
   1198 #define MOS_MSG_SUBCLASS_IFA_COLLECTOR_SET                                   \
   1199     MOS_MSG_DMA_SET(_IFA_COLLECTOR_SET)
   1200 
   1201 #define MOS_MSG_SUBCLASS_IFA_COLLECTOR_SET_REPLY                             \
   1202     MOS_MSG_SUBCLASS_REPLY(_IFA_COLLECTOR_SET)
   1203 
   1204 #define MOS_MSG_SUBCLASS_IFA_COLLECTOR_GET                                   \
   1205     _IFA_COLLECTOR_GET
   1206 
   1207 #define MOS_MSG_SUBCLASS_IFA_COLLECTOR_GET_REPLY                             \
   1208     MOS_MSG_SUBCLASS_REPLY(MOS_MSG_DMA_SET(_IFA_COLLECTOR_GET))
   1209 
   1210 #define MOS_MSG_SUBCLASS_IFA_CONFIG_SET                                      \
   1211     MOS_MSG_DMA_SET(_IFA_CONFIG_SET)
   1212 
   1213 #define MOS_MSG_SUBCLASS_IFA_CONFIG_SET_REPLY                                \
   1214     MOS_MSG_SUBCLASS_REPLY(_IFA_CONFIG_SET)
   1215 
   1216 #define MOS_MSG_SUBCLASS_IFA_CONFIG_GET                                      \
   1217     _IFA_CONFIG_GET
   1218 
   1219 #define MOS_MSG_SUBCLASS_IFA_CONFIG_GET_REPLY                                \
   1220     MOS_MSG_SUBCLASS_REPLY(MOS_MSG_DMA_SET(_IFA_CONFIG_GET))
   1221 
   1222 #define MOS_MSG_SUBCLASS_IFA_STAT_GET                                        \
   1223     _IFA_STAT_GET
   1224 
   1225 #define MOS_MSG_SUBCLASS_IFA_STAT_GET_REPLY                                  \
   1226     MOS_MSG_SUBCLASS_REPLY(MOS_MSG_DMA_SET(_IFA_STAT_GET))
   1227 
   1228 #define MOS_MSG_SUBCLASS_IFA_STAT_SET                                        \
   1229     MOS_MSG_DMA_SET(_IFA_STAT_SET)
   1230 
   1231 #define MOS_MSG_SUBCLASS_IFA_STAT_SET_REPLY                                  \
   1232     MOS_MSG_SUBCLASS_REPLY(_IFA_STAT_SET)
   1233 
   1234 /* ST Messages */
   1235 
   1236 #define MOS_MSG_CLASS_ST                        28
   1237 
   1238 #define _ST_APPL_READY                         0x00
   1239 #define _ST_INIT                               0x01
   1240 #define _ST_SHUTDOWN                           0x02
   1241 #define _ST_PORTS_ADD                          0x03
   1242 #define _ST_PORTS_GET                          0x04
   1243 #define _ST_PORTS_DELETE                       0x05
   1244 #define _ST_INSTANCE_CREATE                    0x06
   1245 #define _ST_INSTANCE_GET                       0x07
   1246 #define _ST_INSTANCE_DELETE                    0x08
   1247 /* Create a collector in the FW */
   1248 #define _ST_COLLECTOR_CREATE                   0x09
   1249 #define _ST_COLLECTOR_DELETE                   0x0A
   1250 /* Enable the collector by attaching to instance */
   1251 #define _ST_INSTANCE_COLLECTOR_ATTACH          0x0B
   1252 #define _ST_INSTANCE_COLLECTOR_DETACH          0x0C
   1253 #define _ST_SYSTEM_ID_SET                      0x0D
   1254 #define _ST_SYSTEM_ID_GET                      0x0E
   1255 #define _ST_INSTANCE_EXPORT_STATS_GET          0x0F
   1256 #define _ST_INSTANCE_EXPORT_STATS_SET          0x10
   1257 
   1258 #define MOS_MSG_SUBCLASS_ST_APPL_READY                                      \
   1259     _ST_APPL_READY
   1260 
   1261 #define MOS_MSG_SUBCLASS_ST_INIT                                            \
   1262     MOS_MSG_DMA_SET(_ST_INIT)
   1263 
   1264 #define MOS_MSG_SUBCLASS_ST_INIT_REPLY                                      \
   1265     MOS_MSG_SUBCLASS_REPLY(_ST_INIT)
   1266 
   1267 #define MOS_MSG_SUBCLASS_ST_SHUTDOWN                                        \
   1268     _ST_SHUTDOWN
   1269 
   1270 #define MOS_MSG_SUBCLASS_ST_SHUTDOWN_REPLY                                  \
   1271     MOS_MSG_SUBCLASS_REPLY(_ST_SHUTDOWN)
   1272 
   1273 #define MOS_MSG_SUBCLASS_ST_PORT_CONFIG_SET                                 \
   1274     MOS_MSG_DMA_SET(_ST_PORT_CONFIG_SET)
   1275 
   1276 #define MOS_MSG_SUBCLASS_ST_PORT_CONFIG_SET_REPLY                           \
   1277     MOS_MSG_SUBCLASS_REPLY(_ST_PORT_CONFIG_SET)
   1278 
   1279 #define MOS_MSG_SUBCLASS_ST_PORTS_ADD                                       \
   1280     MOS_MSG_DMA_SET(_ST_PORTS_ADD)
   1281 
   1282 #define MOS_MSG_SUBCLASS_ST_PORTS_ADD_REPLY                                 \
   1283     MOS_MSG_SUBCLASS_REPLY(_ST_PORTS_ADD)
   1284 
   1285 #define MOS_MSG_SUBCLASS_ST_PORTS_GET                                       \
   1286     _ST_PORTS_GET
   1287 
   1288 #define MOS_MSG_SUBCLASS_ST_PORTS_GET_REPLY                                 \
   1289     MOS_MSG_SUBCLASS_REPLY(MOS_MSG_DMA_SET(_ST_PORTS_GET))
   1290 
   1291 #define MOS_MSG_SUBCLASS_ST_PORTS_DELETE                                    \
   1292     MOS_MSG_DMA_SET(_ST_PORTS_DELETE)
   1293 
   1294 #define MOS_MSG_SUBCLASS_ST_PORTS_DELETE_REPLY                              \
   1295     MOS_MSG_SUBCLASS_REPLY(_ST_PORTS_DELETE)
   1296 
   1297 #define MOS_MSG_SUBCLASS_ST_INSTANCE_CREATE                                 \
   1298     MOS_MSG_DMA_SET(_ST_INSTANCE_CREATE)
   1299 
   1300 #define MOS_MSG_SUBCLASS_ST_INSTANCE_CREATE_REPLY                           \
   1301     MOS_MSG_SUBCLASS_REPLY(_ST_INSTANCE_CREATE)
   1302 
   1303 #define MOS_MSG_SUBCLASS_ST_INSTANCE_GET                                    \
   1304     _ST_INSTANCE_GET
   1305 
   1306 #define MOS_MSG_SUBCLASS_ST_INSTANCE_GET_REPLY                              \
   1307     MOS_MSG_SUBCLASS_REPLY(MOS_MSG_DMA_SET(_ST_INSTANCE_GET))
   1308 
   1309 #define MOS_MSG_SUBCLASS_ST_INSTANCE_DELETE                                 \
   1310     _ST_INSTANCE_DELETE
   1311 
   1312 #define MOS_MSG_SUBCLASS_ST_INSTANCE_DELETE_REPLY                           \
   1313     MOS_MSG_SUBCLASS_REPLY(_ST_INSTANCE_DELETE)
   1314 
   1315 #define MOS_MSG_SUBCLASS_ST_COLLECTOR_CREATE                                \
   1316     MOS_MSG_DMA_SET(_ST_COLLECTOR_CREATE)
   1317 
   1318 #define MOS_MSG_SUBCLASS_ST_COLLECTOR_CREATE_REPLY                          \
   1319     MOS_MSG_SUBCLASS_REPLY(_ST_COLLECTOR_CREATE)
   1320 
   1321 #define MOS_MSG_SUBCLASS_ST_COLLECTOR_DELETE                                \
   1322     _ST_COLLECTOR_DELETE
   1323 
   1324 #define MOS_MSG_SUBCLASS_ST_COLLECTOR_DELETE_REPLY                          \
   1325     MOS_MSG_SUBCLASS_REPLY(_ST_COLLECTOR_DELETE)
   1326 
   1327 #define MOS_MSG_SUBCLASS_ST_INSTANCE_COLLECTOR_ATTACH                       \
   1328     MOS_MSG_DMA_SET(_ST_INSTANCE_COLLECTOR_ATTACH)
   1329 
   1330 #define MOS_MSG_SUBCLASS_ST_INSTANCE_COLLECTOR_ATTACH_REPLY                 \
   1331     MOS_MSG_SUBCLASS_REPLY(_ST_INSTANCE_COLLECTOR_ATTACH)
   1332 
   1333 #define MOS_MSG_SUBCLASS_ST_INSTANCE_COLLECTOR_DETACH                        \
   1334     _ST_INSTANCE_COLLECTOR_DETACH
   1335 
   1336 #define MOS_MSG_SUBCLASS_ST_INSTANCE_COLLECTOR_DETACH_REPLY                  \
   1337     MOS_MSG_SUBCLASS_REPLY(_ST_INSTANCE_COLLECTOR_DETACH)
   1338 
   1339 #define MOS_MSG_SUBCLASS_ST_SYSTEM_ID_SET                                   \
   1340     MOS_MSG_DMA_SET(_ST_SYSTEM_ID_SET)
   1341 
   1342 #define MOS_MSG_SUBCLASS_ST_SYSTEM_ID_SET_REPLY                 \
   1343     MOS_MSG_SUBCLASS_REPLY(_ST_SYSTEM_ID_SET)
   1344 
   1345 #define MOS_MSG_SUBCLASS_ST_SYSTEM_ID_GET                                   \
   1346     _ST_SYSTEM_ID_GET
   1347 
   1348 #define MOS_MSG_SUBCLASS_ST_SYSTEM_ID_GET_REPLY                 \
   1349     MOS_MSG_SUBCLASS_REPLY(MOS_MSG_DMA_SET(_ST_SYSTEM_ID_GET))
   1350 
   1351 #define MOS_MSG_SUBCLASS_ST_INSTANCE_EXPORT_STATS_GET                       \
   1352     _ST_INSTANCE_EXPORT_STATS_GET
   1353 
   1354 #define MOS_MSG_SUBCLASS_ST_INSTANCE_EXPORT_STATS_GET_REPLY                 \
   1355     MOS_MSG_SUBCLASS_REPLY(MOS_MSG_DMA_SET(_ST_INSTANCE_EXPORT_STATS_GET))
   1356 
   1357 #define MOS_MSG_SUBCLASS_ST_INSTANCE_EXPORT_STATS_SET                       \
   1358     MOS_MSG_DMA_SET(_ST_INSTANCE_EXPORT_STATS_SET)
   1359 
   1360 #define MOS_MSG_SUBCLASS_ST_INSTANCE_EXPORT_STATS_SET_REPLY                 \
   1361     MOS_MSG_SUBCLASS_REPLY(_ST_INSTANCE_EXPORT_STATS_SET)
   1362 
   1363 #define MOS_MSG_CLASS_INT                        29
   1364 
   1365 #define _INT_APPL_READY                         0x00
   1366 #define _INT_INIT                               0x01
   1367 #define _INT_SHUTDOWN                           0x02
   1368 #define _INT_CONFIG_SET                         0x03
   1369 #define _INT_CONFIG_GET                         0x04
   1370 #define _INT_STAT_GET                           0x05
   1371 
   1372 #define MOS_MSG_SUBCLASS_INT_APPL_READY                                      \
   1373     _INT_APPL_READY
   1374 
   1375 #define MOS_MSG_SUBCLASS_INT_INIT                                            \
   1376     MOS_MSG_DMA_SET(_INT_INIT)
   1377 
   1378 #define MOS_MSG_SUBCLASS_INT_INIT_REPLY                                      \
   1379     MOS_MSG_SUBCLASS_REPLY(_INT_INIT)
   1380 
   1381 #define MOS_MSG_SUBCLASS_INT_SHUTDOWN                                        \
   1382     _INT_SHUTDOWN
   1383 
   1384 #define MOS_MSG_SUBCLASS_INT_SHUTDOWN_REPLY                                  \
   1385     MOS_MSG_SUBCLASS_REPLY(_INT_SHUTDOWN)
   1386 
   1387 #define MOS_MSG_SUBCLASS_INT_CONFIG_SET                                      \
   1388     MOS_MSG_DMA_SET(_INT_CONFIG_SET)
   1389 
   1390 #define MOS_MSG_SUBCLASS_INT_CONFIG_SET_REPLY                                \
   1391     MOS_MSG_SUBCLASS_REPLY(_INT_CONFIG_SET)
   1392 
   1393 #define MOS_MSG_SUBCLASS_INT_CONFIG_GET                                      \
   1394     _INT_CONFIG_GET
   1395 
   1396 #define MOS_MSG_SUBCLASS_INT_CONFIG_GET_REPLY                                \
   1397     MOS_MSG_SUBCLASS_REPLY(MOS_MSG_DMA_SET(_INT_CONFIG_GET))
   1398 
   1399 #define MOS_MSG_SUBCLASS_INT_STAT_GET                                        \
   1400     _INT_STAT_GET
   1401 
   1402 #define MOS_MSG_SUBCLASS_INT_STAT_GET_REPLY                                  \
   1403     MOS_MSG_SUBCLASS_REPLY(MOS_MSG_DMA_SET(_INT_STAT_GET))
   1404 
   1405 
   1406 #define MOS_MSG_CLASS_SUM                        30
   1407 
   1408 #define _SUM_APPL_READY                         0x00
   1409 #define _SUM_INIT                               0x01
   1410 #define _SUM_SHUTDOWN                           0x02
   1411 #define _SUM_CONFIG_SET                         0x03
   1412 #define _SUM_CONFIG_GET                         0x04
   1413 #define _SUM_STAT_GET                           0x05
   1414 
   1415 #define MOS_MSG_SUBCLASS_SUM_APPL_READY                                      \
   1416     _SUM_APPL_READY
   1417 
   1418 #define MOS_MSG_SUBCLASS_SUM_INIT                                            \
   1419     _SUM_INIT
   1420 
   1421 #define MOS_MSG_SUBCLASS_SUM_INIT_REPLY                                      \
   1422     MOS_MSG_SUBCLASS_REPLY(_SUM_INIT)
   1423 
   1424 #define MOS_MSG_SUBCLASS_SUM_SHUTDOWN                                        \
   1425     _SUM_SHUTDOWN
   1426 
   1427 #define MOS_MSG_SUBCLASS_SUM_SHUTDOWN_REPLY                                  \
   1428     MOS_MSG_SUBCLASS_REPLY(_SUM_SHUTDOWN)
   1429 
   1430 #define MOS_MSG_SUBCLASS_SUM_CONFIG_SET                                      \
   1431     MOS_MSG_DMA_SET(_SUM_CONFIG_SET)
   1432 
   1433 #define MOS_MSG_SUBCLASS_SUM_CONFIG_SET_REPLY                                \
   1434     MOS_MSG_SUBCLASS_REPLY(_SUM_CONFIG_SET)
   1435 
   1436 #define MOS_MSG_SUBCLASS_SUM_CONFIG_GET                                      \
   1437     _SUM_CONFIG_GET
   1438 
   1439 #define MOS_MSG_SUBCLASS_SUM_CONFIG_GET_REPLY                                \
   1440     MOS_MSG_SUBCLASS_REPLY(MOS_MSG_DMA_SET(_SUM_CONFIG_GET))
   1441 
   1442 #define MOS_MSG_SUBCLASS_SUM_STAT_GET                                        \
   1443     _SUM_STAT_GET
   1444 
   1445 #define MOS_MSG_SUBCLASS_SUM_STAT_GET_REPLY                                  \
   1446     MOS_MSG_SUBCLASS_REPLY(MOS_MSG_DMA_SET(_SUM_STAT_GET))
   1447 
   1448 /* Notes:
   1449  *  - Changing MOS_MSG_CLASS numbers will break backwards compatibility.
   1450  *  - Please contact stakeholders before modifying MOS_MSG_CLASS sections
   1451  *  - MAX_MOS_MSG_CLASS should == the value of the highest MOS_MSG_CLASS
   1452  */
   1453 
   1454 #define MAX_MOS_MSG_CLASS                       30
   1455 
   1456 #define MOS_MSG_INCR(val) (((val) + 1) & (NUM_MOS_MSG_SLOTS - 1))
   1457 
   1458 /* Message area per processor pair/direction */
   1459 typedef struct {
   1460     mos_msg_host_status_t status;
   1461     mos_msg_data_t data[NUM_MOS_MSG_SLOTS];
   1462 } mos_msg_area_t;
   1463 
   1464 #define MOS_MSG_HOST_SDK 0
   1465 #define MOS_MSG_HOST_UC0 1
   1466 #define MOS_MSG_HOST_UC1 2
   1467 #define MOS_MSG_HOST_UC2 3
   1468 
   1469 
   1470 typedef struct {
   1471     uint32 config;
   1472     uint32 clk_ctrl;
   1473     uint32 heartbeat_ctrl;
   1474     uint32 heartbeat_down_duration;
   1475     uint32 heartbeat_up_duration;
   1476 } mos_msg_bs_reg_cache_t;
   1477 
   1478 /* Structure for containing 32/48/64-bit hardware timestamp */
   1479 typedef struct {
   1480     uint32 ts_hi;
   1481     uint32 ts_lo;
   1482 } mos_msg_hw_ts_t;
   1483 
   1484 /* Area for storage of most recent timestamps from timestamp FIFO
   1485  * together with system (PTP / Broadsync) time
   1486  */
   1487 #if defined(BCM_MONTEREY_SUPPORT) || defined(MONTEREY)
   1488 
   1489 #define MOS_MSG_MAX_TS_EVENTS (19)
   1490 #else
   1491 #define MOS_MSG_MAX_TS_EVENTS (19)
   1492 #endif
   1493 typedef struct {
   1494     uint32 capture_mask;
   1495     uint32 full_time_seconds_hi;
   1496     uint32 full_time_seconds_low;
   1497     uint32 full_time_nanoseconds;
   1498 
   1499     mos_msg_hw_ts_t ts0_timestamp;
   1500     mos_msg_hw_ts_t ts1_timestamp;
   1501 
   1502     mos_msg_hw_ts_t event_timestamp[MOS_MSG_MAX_TS_EVENTS];
   1503     mos_msg_hw_ts_t prev_event_timestamp[MOS_MSG_MAX_TS_EVENTS];
   1504 } mos_msg_timestamps_t;
   1505 
   1506 /* ukernel debug data structures */
   1507 #define MOS_UCDBG_MAX_LOG_ENTRIES_HOST  (512)
   1508 #define MOS_UCDBG_MAX_LOG_ENTRIES_UC    (512)
   1509 #define MOS_UCDBG_LOG_BUFF_SIZE         (128)
   1510 
   1511 typedef enum mos_msg_ucdbg_logtype_e {
   1512     _bcmCmicUcDbgLogHostMcsLoad     = (1<<0),
   1513     _bcmCmicUcDbgLogHostUcMsg       = (1<<1),
   1514     _bcmCmicUcDbgLogHostPtpRx       = (1<<2),
   1515     _bcmCmicUcDbgLogHostPtp         = (1<<3),
   1516     _bcmCmicUcDbgLogUcMcsLoad       = (1<<4),
   1517     _bcmCmicUcDbgLogUcPtp           = (1<<5) 
   1518 } mos_msg_ucdbg_logtype_t;
   1519 
   1520 typedef union {
   1521     uint32 word;
   1522     struct {
   1523         uint8   valid;
   1524         uint8   unused;
   1525         uint16  logtype;
   1526     } h;
   1527 } mos_msg_ucdbg_entry_hdr_t;
   1528 
   1529 typedef struct {
   1530     mos_msg_ucdbg_entry_hdr_t   hdr;
   1531     char                        log[MOS_UCDBG_LOG_BUFF_SIZE];
   1532 } mos_msg_ucdbg_entry_t;
   1533 
   1534 typedef enum mos_msg_ucdbg_capture_mode_e {
   1535     _bcmUcDbgLogCaptureDisabled     = 0,
   1536     _bcmUcDbgLogCaptureFreerun      = 1, /* default circular write from wrindx */
   1537     _bcmUcDbgLogCaptureOneShot      = 2  /* one shot write wrptr to rdptr */
   1538 } mos_msg_ucdbg_capture_mode_t;
   1539 
   1540 typedef enum mos_msg_ucdbg_mod_state_e {
   1541     _bcmUcDbgUcUnInitialized            =0,
   1542     _bcmUcDbgUcSP408InitComplete        =1,
   1543     _bcmUcDbgUcUARTInitComplete         =2,
   1544     _bcmUcDbgUcCmicIRQInitComplete      =3,
   1545     _bcmUcDbgUcTimesyncIRQInitComplete  =4,
   1546     _bcmUcDbgUcMosDMAInitComplete       =5,
   1547     _bcmUcDbgUcPKTDMAInitComplete       =6,
   1548     _bcmUcDbgUcSBUSDMAInitComplete      =7,
   1549     _bcmUcDbgUcMoSMsgInitStarted        =8,
   1550     _bcmUcDbgUcBoardInitComplete        =9,
   1551     _bcmUcDbgUcWaitingForHostSync       =10,
   1552     _bcmUcDbgUcRunning                  =11,
   1553     _bcmUcDbgUcDMAFail                  =12,
   1554     _bcmUcDbgHostInitialized            =13,
   1555     _bcmUcDbgHostRunning                =14,
   1556     _bcmUcDbgMaxState                   =15
   1557 }mos_msg_ucdbg_mod_state_t;
   1558 
   1559 typedef struct {
   1560     uint32  area_in;
   1561     uint32  area_out;
   1562 } mos_msg_ucbdg_msg_area_t;
   1563 
   1564 typedef union {
   1565     uint32 word[12];             /* 2 words used by Host, 1 by UC */
   1566     struct {
   1567         uint32  state_host;
   1568         uint32  state_uc; 
   1569         uint32  capture_mode;
   1570         uint32  filter_mask;
   1571         uint32  rdindx;         
   1572         uint32  wrindx;
   1573         uint32  debug[6];
   1574     }s;
   1575 } mos_msg_ucdbg_hdr_t;
   1576 
   1577 #define UCBDG_OFFSET_STATE_HOST   0
   1578 #define UCDBG_OFFSET_STATE_UC     1
   1579 #define UCDBG_OFFSET_CAPTURE_MODE 2
   1580 #define UCDBG_OFFSET_WR_INDX      5
   1581 #define UCDBG_OFFSET_MSG_AREA     (sizeof(mos_msg_ucdbg_hdr_t)/sizeof(uint32)) 
   1582 
   1583 
   1584 typedef struct {
   1585     mos_msg_ucdbg_hdr_t      hdr;
   1586     mos_msg_ucbdg_msg_area_t msg_host[2 + 2];
   1587     uint32                   msg_area_base;
   1588     uint32                   ucdbg_msg_base;
   1589     uint32                   uc_processor_num;
   1590     void   *puclog_buff; /*arr of ptr - mos_msg_ucdbg_entry_t*/
   1591 } mos_msg_cmic_ucdbg_t;
   1592 
   1593 
   1594 /*  Fixed memory locations */
   1595 
   1596 /* The host-to UC message areas are first */
   1597 #define MSG_AREA_HOST_TO_ARM(base, arm) ((base) + (sizeof(mos_msg_area_t) * (arm)))
   1598 
   1599 /* The ARM areas are next with the uC to host area taking the slot that
   1600    would be for self messages */
   1601 #define MSG_AREA_ARM_TO_HOST(base, arm) ((base) + (sizeof(mos_msg_area_t) * (NUM_UCS + (NUM_UCS * (arm)) + (arm))))
   1602 #define MSG_AREA_ARM_TO_ARM(base, FROM, TO) ((base) + (sizeof(mos_msg_area_t) * (NUM_UCS  + (NUM_UCS * (FROM)) + (TO))))
   1603 
   1604 #define MSG_AREA_END(base) ((base) + sizeof(mos_msg_area_t) * 2 * (NUM_UCS+1) * NUM_UCS)
   1605 
   1606 extern uint32 bfd_firmware_version;
   1607 extern uint32 bhh_firmware_version;
   1608 
   1609 #if defined(INCLUDE_ETH_LM_DM)
   1610 extern uint32 eth_lm_dm_firmware_version;
   1611 #endif  /* INCLUDE_ETH_LM_DM */
   1612 
   1613 #define MOS_MSG_EVENT_QUEUE_SIZE 1000
   1614 #endif