void PduR_ARC_RouteRxIndication(const PduRDestPdu_type * destination, const PduInfoType *PduInfo) {

	switch (destination->DestModule) {
	case ARC_PDUR_COM:
#if PDUR_COM_SUPPORT == STD_ON
		Com_RxIndication(destination->DestPduId, PduInfo);
#endif
		break;
	case ARC_PDUR_DCM:
#if PDUR_DCM_SUPPORT == STD_ON
		Dcm_RxIndication(destination->DestPduId, *PduInfo->SduDataPtr);
#endif
		break;
	default:
		break;
	}
	// TODO error reporting here.
}
void PduR_ARC_RouteRxIndication(const PduRDestPdu_type * destination, const PduInfoType *PduInfo) {

	switch (destination->DestModule) {
	case ARC_PDUR_COM:
#if PDUR_COM_SUPPORT == STD_ON
		Com_RxIndication(destination->DestPduId, (PduInfoType *)PduInfo);
#endif
		break;
	case ARC_PDUR_DCM:
#if PDUR_DCM_SUPPORT == STD_ON
		Dcm_TpRxIndication(destination->DestPduId, *PduInfo->SduDataPtr);
#endif
		break;
	case ARC_PDUR_IPDUM:
#if PDUR_IPDUM_SUPPORT == STD_ON
		IpduM_RxIndication(destination->DestPduId, (PduInfoType *)PduInfo);
#endif
		break;
	default:
		break;
	}

}
Std_ReturnType PduR_ARC_RouteTransmit(const PduRDestPdu_type * destination, const PduInfoType * pduInfo) {

    /* @req PDUR160 */
    /* @req PDUR629 */
    /* @req PDUR0745 */
    /* @req PDUR625 */

    Std_ReturnType retVal = E_NOT_OK;
    switch (destination->DestModule) {
    case ARC_PDUR_CANIF:
#if PDUR_CANIF_SUPPORT == STD_ON
        retVal = CanIf_Transmit(destination->DestPduId, pduInfo);
#endif
        break;
    case ARC_PDUR_COM:
#if PDUR_COM_SUPPORT == STD_ON
        Com_RxIndication(destination->DestPduId, (PduInfoType *)pduInfo);
#endif
        break;
    case ARC_PDUR_LINIF:
#if PDUR_LINIF_SUPPORT == STD_ON
        retVal = LinIf_Transmit(destination->DestPduId, pduInfo);
#endif
        break;
    case ARC_PDUR_CANTP:
#if PDUR_CANTP_SUPPORT == STD_ON
        retVal = CanTp_Transmit(destination->DestPduId, pduInfo);
#endif
        break;
    case ARC_PDUR_SOADIF:
#if PDUR_SOAD_SUPPORT == STD_ON
        retVal = SoAdIf_Transmit(destination->DestPduId, pduInfo);
#endif
        break;
    case ARC_PDUR_SOADTP:
#if PDUR_SOAD_SUPPORT == STD_ON
        retVal = SoAdTp_Transmit(destination->DestPduId, pduInfo);
#endif
        break;
    case ARC_PDUR_J1939TP:
#if PDUR_J1939TP_SUPPORT == STD_ON
        retVal = J1939Tp_Transmit(destination->DestPduId, pduInfo);
#endif
        break;
    case ARC_PDUR_IPDUM:
#if PDUR_IPDUM_SUPPORT == STD_ON
        retVal = IpduM_Transmit(destination->DestPduId, pduInfo);
#endif
        break;
    case ARC_PDUR_FRIF:
#if PDUR_FRIF_SUPPORT == STD_ON
        retVal = FrIf_Transmit(destination->DestPduId, pduInfo);
#endif
        break;
    case ARC_PDUR_FRTP:
#if PDUR_FRTP_SUPPORT == STD_ON
        retVal = FrTp_Transmit(destination->DestPduId, pduInfo);
#endif
        break;
    default:
        retVal = E_NOT_OK;
        break;
    }

    return retVal;
}