+/*******************************************************************
+ *
+ * @brief Packs and Sends CRC Ind to MAC
+ *
+ * @details
+ *
+ * Function : packCrcInd
+ *
+ * Functionality:
+ * Packs and Sends CRC Ind to MAC
+ *
+ * @params[in] Post structure pointer
+ * CRC indication
+ * @return ROK - success
+ * RFAILED - failure
+ *
+ * ****************************************************************/
+uint8_t packCrcInd(Pst *pst, CrcInd *crcInd)
+{
+ if(pst->selector == ODU_SELECTOR_LWLC)
+ {
+ Buffer *mBuf = NULLP;
+ if(ODU_GET_MSG_BUF(pst->region, pst->pool, &mBuf) != ROK)
+ {
+ DU_LOG("\nERROR --> LWR_MAC: Memory allocation failed in packCrcInd");
+ return RFAILED;
+ }
+ CMCHKPK(oduPackPointer,(PTR)crcInd, mBuf);
+ return ODU_POST_TASK(pst, mBuf);
+ }
+ return RFAILED;
+}
+
+/**************************************************************************
+ * @brief Function unpack crcInd
+ *
+ * @details
+ *
+ * Function : unpackCrcInd
+ *
+ * Functionality:
+ * unpacks crc indication
+ *
+ * @param[in] function pointer
+ * @param[in] Pst *pst, Post structure of the primitive.
+ * @param[in] Buffer *mBuf
+ * @return ROK - success
+ * RFAILED - failure
+ *
+ ***************************************************************************/
+uint8_t unpackCrcInd(CrcIndFunc func, Pst *pst, Buffer *mBuf)
+{
+ if(pst->selector == ODU_SELECTOR_LWLC)
+ {
+ CrcInd *crcInd = NULLP;
+
+ /* unpack the address of the structure */
+ CMCHKUNPK(oduUnpackPointer, (PTR *)&crcInd, mBuf);
+ ODU_PUT_MSG_BUF(mBuf);
+ return (*func)(pst, crcInd);
+ }
+ return RFAILED;
+}
+
+
+/*******************************************************************
+ *
+ * @brief Packs and Sends Rx Data Ind to MAC
+ *
+ * @details
+ *
+ * Function : packRxDataInd
+ *
+ * Functionality:
+ * Packs and Sends Rx data Ind to MAC
+ *
+ * @params[in] Post structure pointer
+ * Rx Data indication
+ * @return ROK - success
+ * RFAILED - failure
+ *
+ * ****************************************************************/
+uint8_t packRxDataInd(Pst *pst, RxDataInd *rxDataInd)
+{
+ if(pst->selector == ODU_SELECTOR_LWLC)
+ {
+ Buffer *mBuf = NULLP;
+ if(ODU_GET_MSG_BUF(pst->region, pst->pool, &mBuf) != ROK)
+ {
+ DU_LOG("\nERROR --> LWR_MAC: Memory allocation failed in packRxDataInd");
+ return RFAILED;
+ }
+ CMCHKPK(oduPackPointer,(PTR)rxDataInd, mBuf);
+ return ODU_POST_TASK(pst, mBuf);
+ }
+ return RFAILED;
+}
+
+/**************************************************************************
+ * @brief Function unpack RxDataInd
+ *
+ * @details
+ *
+ * Function : unpackRxDataInd
+ *
+ * Functionality:
+ * unpacks Rx Data indication
+ *
+ * @param[in] function pointer
+ * @param[in] Pst *pst, Post structure of the primitive.
+ * @param[in] Buffer *mBuf
+ * @return ROK - success
+ * RFAILED - failure
+ *
+ ***************************************************************************/
+uint8_t unpackRxDataInd(RxDataIndFunc func, Pst *pst, Buffer *mBuf)
+{
+ if(pst->selector == ODU_SELECTOR_LWLC)
+ {
+ RxDataInd *rxDataInd = NULLP;
+
+ /* unpack the address of the structure */
+ CMCHKUNPK(oduUnpackPointer, (PTR *)&rxDataInd, mBuf);
+ ODU_PUT_MSG_BUF(mBuf);
+ return (*func)(pst, rxDataInd);
+ }
+ return RFAILED;
+}
+
+