#ifndef ce_tx_mme_h #define ce_tx_mme_h /* Cesar project {{{ * * Copyright (C) 2009 Spidcom * * <<>> * * }}} */ /** * \file ce/tx/mme.h * \brief CE in TX to manage reception of CE MME (public part). * \ingroup ce_tx * * This header contains the functions to manage the reception of the MME used * by the CE: CM_CHAN_EST.IND and CM_TM_UPDATE.IND. */ /** * MME decoding error codes. */ typedef enum ce_tx_mme_error_code_t { /** No error. */ CE_TX_MME_OK = 0, /** Broadcast. */ CE_TX_MME_BROADCAST, /** Unknown station. */ CE_TX_MME_UNKNOWN_STA, /** Error in header. */ CE_TX_MME_HEADER, /** Error in TMI enabled list. */ CE_TX_MME_TMI_LIST, /** Default TMI not enabled. */ CE_TX_MME_DEFAULT_TMI_DISABLED, /** Error in default TMI. */ CE_TX_MME_DEFAULT_TMI, /** Intervals list error. */ CE_TX_MME_INTERVAL, /** New TMI is invalid. */ CE_TX_MME_NEW_TMI, /** New TMI not enabled. */ CE_TX_MME_NEW_TMI_DISABLED, /** Bad attached tone map. */ CE_TX_MME_BAD_TM, /** Tone map ROBO or < 3 attached. */ CE_TX_MME_NEW_TMI_ROBO, /** MME too short. */ CE_TX_MME_TOO_SHORT, /** Wrong old TMI. */ CE_TX_MME_OLD_TMI, /** Old TMI is not know by station. */ CE_TX_MME_OLD_TMI_NOT_FOUND, /** Size of the enum or unknown error. */ CE_TX_MME_NB, } ce_tx_mme_error_code_t; /** * Handle reception of a CM_CHAN_EST.IND. * \param ctx Control Plane context. * \param mme CM_CHAN_EST.IND MME received. * \return CE_TX_MME_OK if no error, error code otherwise. * * This function decodes the CM_CHAN_EST.IND MME and update tone map in the * CE in TX. */ ce_tx_mme_error_code_t ce_tx_cm_chan_est_ind_receive (cp_t *ctx, cp_mme_rx_t *mme); /** * Handle reception of a CM_TM_UPDATE.IND. * \param ctx Control Plane context. * \param mme CM_TM_UPDATE.IND MME received. * \return CE_TX_MME_OK if no error, error code otherwise. * * This function decodes a CM_TM_UPDATE.IND and update tone map in the CE in * TX. */ ce_tx_mme_error_code_t ce_tx_cm_tm_update_ind_receive (cp_t *ctx, cp_mme_rx_t *mme); #endif /* ce_tx_mme_h */