| /* ------------------------------------------------------------------ |
| * Copyright (C) 1998-2009 PacketVideo |
| * |
| * Licensed under the Apache License, Version 2.0 (the "License"); |
| * you may not use this file except in compliance with the License. |
| * You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, software |
| * distributed under the License is distributed on an "AS IS" BASIS, |
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either |
| * express or implied. |
| * See the License for the specific language governing permissions |
| * and limitations under the License. |
| * ------------------------------------------------------------------- |
| */ |
| // ---------------------------------------------------------------------- |
| // |
| // This Software is an original work of authorship of PacketVideo Corporation. |
| // Portions of the Software were developed in collaboration with NTT DoCoMo, |
| // Inc. or were derived from the public domain or materials licensed from |
| // third parties. Title and ownership, including all intellectual property |
| // rights in and to the Software shall remain with PacketVideo Corporation |
| // and NTT DoCoMo, Inc. |
| // |
| // ----------------------------------------------------------------------- |
| /************************************************************************/ |
| /* file name : sedisp.c */ |
| /* file contents : Receive Data Dispatch Management */ |
| /* : Primitive and Timeout and Message */ |
| /* draw : '96.11.28 */ |
| /*----------------------------------------------------------------------*/ |
| /* amendment : */ |
| /* Copyright (C) 1996 NTT DoCoMo */ |
| /************************************************************************/ |
| |
| |
| /************************************************************************/ |
| /* Headerfile Include */ |
| /************************************************************************/ |
| #include "h245pri.h" |
| #include "oscl_timer.h" |
| #include "semsgque.h" |
| #include "se.h" |
| #include "msd.h" |
| #include "blc.h" |
| #include "lc.h" |
| #include "clc.h" |
| #include "annex.h" |
| #include "ce.h" |
| #include "mt.h" |
| #include "rtd.h" |
| #include "ml.h" |
| #include "mr.h" |
| #include "rme.h" |
| #include "h245.h" |
| #include "oscl_snprintf.h" |
| #include "pvlogger.h" |
| |
| /* PVANALYZER */ |
| #define ANALYZER_SE 0x0020 // (Assume tag is fixed) |
| void Show245(uint16 tag, uint16 indent, char *inString); |
| |
| /************************************************************************/ |
| /* External Variable Definition: Primitive Event No Table */ |
| /************************************************************************/ |
| static const S_EventNoTable EventNoTblForPri[ ] = |
| { |
| // { EVENT_PTV_MSD_DTM_REQ , E_PtvId_Msd_Dtm_Req ,"MSDSE --> DETERMINE.request" }, |
| // { EVENT_PTV_CE_TRF_REQ , E_PtvId_Ce_Trf_Req ,"CESE --> TRANSFER.request" }, |
| // { EVENT_PTV_CE_TRF_RPS , E_PtvId_Ce_Trf_Rps ,"CESE --> TRANSFER.response" }, |
| // { EVENT_PTV_CE_RJT_REQ , E_PtvId_Ce_Rjt_Req ,"CESE --> REJECT.request" }, |
| { EVENT_PTV_LCBLC_ETB_REQ , E_PtvId_Lc_Etb_Req , "LCSE --> ESTABLISH.request" }, |
| { EVENT_PTV_LCBLC_ETB_RPS , E_PtvId_Lc_Etb_Rps , "LCSE --> ESTABLISH.response" }, |
| { EVENT_PTV_LCBLC_RLS_REQ , E_PtvId_Lc_Rls_Req , "LCSE --> RELEASE.request" }, |
| { EVENT_PTV_LCBLC_ETB_REQ , E_PtvId_Blc_Etb_Req , "BLCSE --> ESTABLISH.request" }, |
| { EVENT_PTV_LCBLC_ETB_RPS , E_PtvId_Blc_Etb_Rps , "BLCSE --> ESTABLISH.response" }, |
| { EVENT_PTV_LCBLC_RLS_REQ , E_PtvId_Blc_Rls_Req , "BLCSE --> RELEASE.request" }, |
| { EVENT_PTV_CLC_CLS_REQ , E_PtvId_Clc_Cls_Req , "CLCSE --> CLOSE.request" }, |
| { EVENT_PTV_CLC_CLS_RPS , E_PtvId_Clc_Cls_Rps , "CLCSE --> CLOSE.response" }, |
| { EVENT_PTV_CLC_RJT_REQ , E_PtvId_Clc_Rjt_Req , "CLCSE --> REJECT.request" }, |
| { EVENT_PTV_MT_TRF_REQ , E_PtvId_Mt_Trf_Req , "MTSE --> TRANSFER.request" }, |
| { EVENT_PTV_MT_TRF_RPS , E_PtvId_Mt_Trf_Rps , "MTSE --> TRANSFER.response" }, |
| { EVENT_PTV_MT_RJT_REQ , E_PtvId_Mt_Rjt_Req , "MTSE --> REJECT.request" }, |
| { EVENT_PTV_RME_SEND_REQ , E_PtvId_Rme_Send_Req , "RMESE --> SEND.request" }, |
| { EVENT_PTV_RME_SEND_RPS , E_PtvId_Rme_Send_Rps , "RMESE --> SEND.responsse" }, |
| { EVENT_PTV_RME_RJT_REQ , E_PtvId_Rme_Rjt_Req , "RMESE --> REJECT.request" }, |
| { EVENT_PTV_MR_TRF_REQ , E_PtvId_Mr_Trf_Req , "MRSE --> TRANSFER.request" }, |
| { EVENT_PTV_MR_TRF_RPS , E_PtvId_Mr_Trf_Rps , "MRSE --> TRANSFER.response" }, |
| { EVENT_PTV_MR_RJT_REQ , E_PtvId_Mr_Rjt_Req , "MRSE --> REJECT.request" }, |
| { EVENT_PTV_RTD_TRF_REQ , E_PtvId_Rtd_Trf_Req , "RTDSE --> TRANSFER.request" }, |
| { EVENT_PTV_ML_LOOP_REQ , E_PtvId_Ml_Loop_Req , "MLSE --> LOOP.request" }, |
| { EVENT_PTV_ML_LOOP_RPS , E_PtvId_Ml_Loop_Rps , "MLSE --> LOOP.response" }, |
| { EVENT_PTV_ML_RLS_REQ , E_PtvId_Ml_Rls_Req , "MLSE --> RELEASE.request" }, |
| { EVENT_PTV_NSD_REQ , E_PtvId_Nsd_Req , "NSDSE --> NonstandardMessage REQUEST" }, |
| { EVENT_PTV_NSD_RPS , E_PtvId_Nsd_Rps , "NSDSE --> NonstandardMessage RESPONSE" }, |
| { EVENT_PTV_NSD_CMD , E_PtvId_Nsd_Cmd , "NSDSE --> NonstandardMessage COMMAND" }, |
| { EVENT_PTV_NSD_IDC , E_PtvId_Nsd_Idc , "NSDSE --> NonstandardMessage INDICATION" }, |
| { EVENT_PTV_CM_REQ , E_PtvId_Cm_Req , "CMSE --> CommunicationMode REQUEST" }, |
| { EVENT_PTV_CM_RPS , E_PtvId_Cm_Rps , "CMSE --> CommunicationMode RESPONSE" }, |
| { EVENT_PTV_CM_CMD , E_PtvId_Cm_Cmd , "CMSE --> CommunicationMode COMMAND" }, |
| { EVENT_PTV_H223AAR , E_PtvId_H223aar , "H223AAR --> H223AnnexA RECONFIG" }, |
| { EVENT_PTV_H223AAR_ACK , E_PtvId_H223aar_Ack , "H223AAR --> H223AnnexA RECONFIG ACK" }, |
| { EVENT_PTV_H223AAR_RJT , E_PtvId_H223aar_Rjt , "H223AAR --> H223AnnexA RECONFIG REJECT" }, |
| { EVENT_PTV_CNF_REQ , E_PtvId_Cnf_Req , "CNF --> Conference REQUEST" }, |
| { EVENT_PTV_CNF_RPS , E_PtvId_Cnf_Rps , "CNF --> Conference RESPONSE" }, |
| { EVENT_PTV_CMD_STCS , E_PtvId_Cmd_Stcs , "CMD --> SEND TerminalCapabilitySet" }, |
| { EVENT_PTV_CMD_ECRPT , E_PtvId_Cmd_Ecrpt , "CMD --> Encryption COMMAND" }, |
| { EVENT_PTV_CMD_FC , E_PtvId_Cmd_Fc , "CMD --> FlowControl COMMAND" }, |
| { EVENT_PTV_CMD_ES , E_PtvId_Cmd_Es , "CMD --> EndSession COMMAND" }, |
| { EVENT_PTV_CMD_MSCL , E_PtvId_Cmd_Mscl , "CMD --> Miscellaneous COMMAND" }, |
| { EVENT_PTV_CMD_CNF , E_PtvId_Cmd_Cnf , "CMD --> Conference COMMAND" }, |
| { EVENT_PTV_CMD_HMR , E_PtvId_Cmd_Hmr , "CMD --> H223 Multiplex RECONFIG" }, |
| { EVENT_PTV_IDC_FNU , E_PtvId_Idc_Fnu , "IDC --> FunctionNotUnderstood" }, |
| { EVENT_PTV_IDC_MSCL , E_PtvId_Idc_Mscl , "IDC --> Miscellaneous INDICATION" }, |
| { EVENT_PTV_IDC_JTR , E_PtvId_Idc_Jtr , "IDC --> Jitter INDICATION" }, |
| { EVENT_PTV_IDC_H223SKW , E_PtvId_Idc_H223skw , "IDC --> H223 Skew INDICATION" }, |
| { EVENT_PTV_IDC_NWATMVC , E_PtvId_Idc_Nwatmvc , "IDC --> NewATMVC INDICATION" }, |
| { EVENT_PTV_IDC_UI , E_PtvId_Idc_Ui , "IDC --> UserInput INDICATION" }, |
| { EVENT_PTV_IDC_CNF , E_PtvId_Idc_Cnf , "IDC --> Conference INDICATION" }, |
| { EVENT_PTV_IDC_H2250MXSKW , E_PtvId_Idc_H2250mxskw, "IDC --> H2250 Maximum Skew INDICATION" }, |
| { EVENT_PTV_IDC_MCLCT , E_PtvId_Idc_Mclct , "IDC --> McLocation INDICATION" }, |
| { EVENT_PTV_IDC_VI , E_PtvId_Idc_Vi , "IDC --> Vendor ID" }, |
| { EVENT_PTV_IDC_FNS , E_PtvId_Idc_Fns , "IDC --> FunctionNotSupported" }, |
| |
| /* Table End */ |
| |
| { STOPPER , STOPPER , "Undefined PRIMATIVE" }, |
| } ; |
| |
| |
| /************************************************************************/ |
| /* External Variable Definition: Timeout Event No Table */ |
| /************************************************************************/ |
| static const S_EventNoTable EventNoTblForTo[ ] = |
| { |
| // { EVENT_TIM_MSD_T106 , E_TmrId_Msd_T106 ,"Timeout T106 (MSD)" }, |
| // { EVENT_TIM_CE_T101 , E_TmrId_Ce_T101 ,"Timeout T101 (CE)" }, |
| { EVENT_TIM_LCBLC_T103 , E_TmrId_LcBlc_T103 , "Timeout T103 (LC/BLC)"}, |
| { EVENT_TIM_CLC_T108 , E_TmrId_Clc_T108 , "Timeout T108 (CLC)" }, |
| { EVENT_TIM_MT_T104 , E_TmrId_Mt_T104 , "Timeout T104 (MT)" }, |
| { EVENT_TIM_RME_T107 , E_TmrId_Rme_T107 , "Timeout T107 (RME)" }, |
| { EVENT_TIM_MR_T109 , E_TmrId_Mr_T109 , "Timeout T109 (MR)" }, |
| { EVENT_TIM_RTD_T105 , E_TmrId_Rtd_T105 , "Timeout T105 (RTD)" }, |
| { EVENT_TIM_ML_T102 , E_TmrId_Ml_T102 , "Timeout T102 (ML)" }, |
| |
| /* Table End */ |
| |
| { STOPPER , STOPPER , "Undefined TIMEOUT" }, |
| } ; |
| |
| |
| /************************************************************************/ |
| /* External Variable Definition: Request Message Event No Table */ |
| /************************************************************************/ |
| static const S_EventNoTable EventNoTblForReqMsg[ ] = |
| { |
| { EVENT_MSG_NSD_REQ , MSGTYP_NSD_REQ , "NonStandardMessageRequest RECEIVED" }, |
| { EVENT_MSG_MSD , MSGTYP_MSD , "MasterSlaveDetermination RECEIVED" }, |
| { EVENT_MSG_CE , MSGTYP_CE , "TerminalCapabilitySet RECEIVED" }, |
| { EVENT_MSG_LCBLC_OP , MSGTYP_LCBLC_OP , "OpenLogicalChannel (LC/BLC) RECEIVED" }, |
| { EVENT_MSG_LCBLC_CL , MSGTYP_LCBLC_CL , "CloseLogicalChannel (LC/BLC) RECEIVED" }, |
| { EVENT_MSG_CLC , MSGTYP_CLC , "RequestChannelClose RECEIVED" }, |
| { EVENT_MSG_MT , MSGTYP_MT , "MultiplexEntrySend RECEIVED" }, |
| { EVENT_MSG_RME , MSGTYP_RME , "RequestMultiplexEntry RECEIVED" }, |
| { EVENT_MSG_MR , MSGTYP_MR , "RequestMode RECEIVED" }, |
| { EVENT_MSG_RTD_REQ , MSGTYP_RTD_REQ , "RoundTripDelayRequest RECEIVED" }, |
| { EVENT_MSG_ML_REQ , MSGTYP_ML_REQ , "MaintenanceLoopRequest RECEIVED" }, |
| { EVENT_MSG_CM_REQ , MSGTYP_CM_REQ , "CommunicationModeRequest RECEIVED" }, |
| { EVENT_MSG_CNF_REQ , MSGTYP_CNF_REQ , "ConferenceRequest RECEIVED" }, |
| { EVENT_MSG_H223AAR , MSGTYP_H223AAR , "H223AnnexAReconfiguration RECEIVED" }, |
| /* (Not a codeword -- Not supported (RAN)) */ |
| /* Table End */ |
| |
| { STOPPER , STOPPER , "Undefined REQUEST MESSAGE" }, |
| } ; |
| |
| |
| /************************************************************************/ |
| /* External Variable Definition: Response Message Event No Table */ |
| /************************************************************************/ |
| static const S_EventNoTable EventNoTblForRpsMsg[ ] = |
| { |
| { EVENT_MSG_NSD_RPS , MSGTYP_NSD_RPS , "NonStandardMessageResponse RECEIVED" }, |
| { EVENT_MSG_MSD_ACK , MSGTYP_MSD_ACK , "MasterSlaveDeterminationAck RECEIVED" }, |
| { EVENT_MSG_MSD_RJT , MSGTYP_MSD_RJT , "MasterSlaveDeterminationReject RECEIVED" }, |
| { EVENT_MSG_CE_ACK , MSGTYP_CE_ACK , "TerminalCapabilitySetAck RECEIVED" }, |
| { EVENT_MSG_CE_RJT , MSGTYP_CE_RJT , "TerminalCapabilitySetReject RECEIVED" }, |
| { EVENT_MSG_LCBLC_OP_ACK , MSGTYP_LCBLC_OP_ACK , "OpenLogicalChannelAck (LC/BLC) RECEIVED" }, |
| { EVENT_MSG_LCBLC_OP_RJT , MSGTYP_LCBLC_OP_RJT , "OpenLogicalChannelReject (LC/BLC) RECEIVED" }, |
| { EVENT_MSG_LCBLC_CL_ACK , MSGTYP_LCBLC_CL_ACK , "CloseLogicalChannelAck (LC/BLC) RECEIVED" }, |
| { EVENT_MSG_CLC_ACK , MSGTYP_CLC_ACK , "RequestChannelCloseAck RECEIVED" }, |
| { EVENT_MSG_CLC_RJT , MSGTYP_CLC_RJT , "RequestChannelCloseReject RECEIVED" }, |
| { EVENT_MSG_MT_ACK , MSGTYP_MT_ACK , "MultiplexEntrySendAck RECEIVED" }, |
| { EVENT_MSG_MT_RJT , MSGTYP_MT_RJT , "MultiplexEntrySendReject RECEIVED" }, |
| { EVENT_MSG_RME_ACK , MSGTYP_RME_ACK , "RequestMultiplexEntryAck RECEIVED" }, |
| { EVENT_MSG_RME_RJT , MSGTYP_RME_RJT , "RequestMultiplexEntryReject RECEIVED" }, |
| { EVENT_MSG_MR_ACK , MSGTYP_MR_ACK , "RequestModeAck RECEIVED" }, |
| { EVENT_MSG_MR_RJT , MSGTYP_MR_RJT , "RequestModeReject RECEIVED" }, |
| { EVENT_MSG_RTD_RPS , MSGTYP_RTD_RPS , "RoundTripDelayResponse RECEIVED" }, |
| { EVENT_MSG_ML_ACK , MSGTYP_ML_ACK , "MaintenanceLoopAck RECEIVED" }, |
| { EVENT_MSG_ML_RJT , MSGTYP_ML_RJT , "MaintenanceLoopReject RECEIVED" }, |
| { EVENT_MSG_CM_RPS , MSGTYP_CM_RPS , "CommunicationModeResponse RECEIVED" }, |
| { EVENT_MSG_CNF_RPS , MSGTYP_CNF_RPS , "ConferenceResponse RECEIVED" }, |
| { EVENT_MSG_H223AAR_ACK , MSGTYP_H223AAR_ACK , "H223AnnexAReconfigurationAck RECEIVED" }, |
| { EVENT_MSG_H223AAR_RJT , MSGTYP_H223AAR_RJT , "H223AnnexAReconfigurationReject RECEIVED" }, |
| /* (Not a codeword -- Not supported (RAN)) */ |
| /* Table End */ |
| |
| { STOPPER , STOPPER , "Undefined RESPONSE MESSAGE" }, |
| } ; |
| |
| |
| /************************************************************************/ |
| /* External Variable Definition: Command Message Event No Table */ |
| /************************************************************************/ |
| static const S_EventNoTable EventNoTblForCmdMsg[ ] = |
| { |
| { EVENT_MSG_NSD_CMD , MSGTYP_NSD_CMD , "NonStandardMessageCommand RECEIVED" }, |
| { EVENT_MSG_ML_OFF_CMD , MSGTYP_ML_OFF_CMD , "MaintenanceLoopOffCommand RECEIVED" }, |
| { EVENT_MSG_CMD_STCS , MSGTYP_CMD_STCS , "SendTerminalCapabilitySet RECEIVED" }, |
| { EVENT_MSG_CMD_ECRPT , MSGTYP_CMD_ECRPT , "EncryptionCommand RECEIVED" }, |
| { EVENT_MSG_CMD_FC , MSGTYP_CMD_FC , "FlowControlCommand RECEIVED" }, |
| { EVENT_MSG_CMD_ES , MSGTYP_CMD_ES , "EndSessionCommand RECEIVED" }, |
| { EVENT_MSG_CMD_MSCL , MSGTYP_CMD_MSCL , "MiscellaneousCommand RECEIVED" }, |
| { EVENT_MSG_CM_CMD , MSGTYP_CM_CMD , "CommunicationModeCommand RECEIVED" }, |
| { EVENT_MSG_CMD_CNF , MSGTYP_CMD_CNF , "ConferenceCommand RECEIVED" }, |
| { EVENT_MSG_CMD_HMR , MSGTYP_CMD_HMR , "H223MultiplexReconfiguration RECEIVED" }, |
| |
| /* Table End */ |
| |
| { STOPPER , STOPPER , "Undefined COMMAND MESSAGE" }, |
| } ; |
| |
| |
| /************************************************************************/ |
| /* External Variable Definition: Indication Message Event No Table */ |
| /************************************************************************/ |
| static const S_EventNoTable EventNoTblForIdcMsg[ ] = |
| { |
| { EVENT_MSG_NSD_IDC , MSGTYP_NSD_IDC , "NonStandardMessageIndication RECEIVED" }, |
| { EVENT_MSG_IDC_FNU , MSGTYP_IDC_FNU , "FunctionNotUnderstood RECEIVED" }, |
| { EVENT_MSG_MSD_RLS , MSGTYP_MSD_RLS , "MasterSlaveDeterminationRelease RECEIVED" }, |
| { EVENT_MSG_CE_RLS , MSGTYP_CE_RLS , "TerminalCapabilitySetRelease RECEIVED" }, |
| { EVENT_MSG_LCBLC_OP_CFM , MSGTYP_LCBLC_OP_CFM , "OpenLogicalChannelConfirm (BLC) RECEIVED" }, |
| { EVENT_MSG_CLC_RLS , MSGTYP_CLC_RLS , "RequestChannelCloseRelease RECEIVED" }, |
| { EVENT_MSG_MT_RLS , MSGTYP_MT_RLS , "MultiplexEntrySendRelease RECEIVED" }, |
| { EVENT_MSG_RME_RLS , MSGTYP_RME_RLS , "RequestMultiplexEntryRelease RECEIVED" }, |
| { EVENT_MSG_MR_RLS , MSGTYP_MR_RLS , "RequestModeRelease RECEIVED" }, |
| { EVENT_MSG_IDC_MSCL , MSGTYP_IDC_MSCL , "MiscellaneousIndication RECEIVED" }, |
| { EVENT_MSG_IDC_JTR , MSGTYP_IDC_JTR , "JitterIndication RECEIVED" }, |
| { EVENT_MSG_IDC_H223SKW , MSGTYP_IDC_H223SKW , "H223SkewIndication RECEIVED" }, |
| { EVENT_MSG_IDC_NWATMVC , MSGTYP_IDC_NWATMVC , "NewATMVCIndication RECEIVED" }, |
| { EVENT_MSG_IDC_UI , MSGTYP_IDC_UI , "UserInputIndication RECEIVED" }, |
| { EVENT_MSG_IDC_H2250MXSKW , MSGTYP_IDC_H2250MXSKW , "H2250MaximumSkewIndication RECEIVED" }, |
| { EVENT_MSG_IDC_MCLCT , MSGTYP_IDC_MCLCT , "MCLocationIndication RECEIVED" }, |
| { EVENT_MSG_IDC_CNF , MSGTYP_IDC_CNF , "ConferenceIndication RECEIVED" }, |
| { EVENT_MSG_IDC_VI , MSGTYP_IDC_VI , "VendorIdentification RECEIVED" }, |
| { EVENT_MSG_IDC_FNS , MSGTYP_IDC_FNS , "FunctionNotSupported RECEIVED" }, |
| { EVENT_MSG_IDC_FC , MSGTYP_IDC_FC , "FlowControlIndication RECEIVED" }, |
| |
| /* Table End */ |
| |
| { STOPPER , STOPPER , "Undefined INDICATION MESSAGE" }, |
| } ; |
| |
| |
| /************************************************************************/ |
| /* function name : SE class constructor */ |
| /************************************************************************/ |
| OSCL_EXPORT_REF SE::SE() : MyPER(0), MyH245(0), MyTimer("SETimer") |
| { |
| |
| MyTimer.SetObserver(this); |
| MyMSD.SetSE(this); |
| MyBLC.SetSE(this); |
| MyLC.SetSE(this); |
| MyCLC.SetSE(this); |
| MyNSD.SetSE(this); |
| MyCM.SetSE(this); |
| MyCNF.SetSE(this); |
| MyCMD.SetSE(this); |
| MyIDC.SetSE(this); |
| MyCE.SetSE(this); |
| MyMT.SetSE(this); |
| MyRTD.SetSE(this); |
| MyML.SetSE(this); |
| MyMR.SetSE(this); |
| MyRME.SetSE(this); |
| |
| /* Signalling Entity Initialize */ |
| MyBLC.SetMSD(&MyMSD); |
| MyLC.SetMSD(&MyMSD); |
| |
| LCBLCOutgoing.SetDirection(LC_OUTGOING); |
| LCBLCIncoming.SetDirection(LC_INCOMING); |
| |
| oscl_memset(&iTimerValues, 0, sizeof(H245TimerValues)); |
| |
| Logger = PVLogger::GetLoggerObject("3g324m.h245.se"); |
| } |
| |
| /************************************************************************/ |
| /* function name : SE class destructor */ |
| /************************************************************************/ |
| OSCL_EXPORT_REF SE::~SE() |
| { |
| } |
| |
| /************************************************************************/ |
| /* */ |
| /************************************************************************/ |
| OSCL_EXPORT_REF void SE::Reset() |
| { |
| // reset the states for the SEs |
| MyTimer.Clear(); |
| MyMSD.Reset(); |
| MyBLC.Reset(); |
| MyLC.Reset(); |
| MyCLC.Reset(); |
| MyNSD.Reset(); |
| MyCM.Reset(); |
| MyCNF.Reset(); |
| MyCMD.Reset(); |
| MyIDC.Reset(); |
| MyCE.Reset(); |
| MyMT.Reset(); |
| MyRTD.Reset(); |
| MyML.Reset(); |
| MyMR.Reset(); |
| MyRME.Reset(); |
| LCBLCOutgoing.Reset(); |
| LCBLCIncoming.Reset(); |
| } |
| |
| /************************************************************************/ |
| /* */ |
| /************************************************************************/ |
| OSCL_EXPORT_REF void SE::SetPer(PER *per) |
| { |
| MyPER = per; |
| MyMSD.SetPer(per); |
| MyBLC.SetPer(per); |
| MyLC.SetPer(per); |
| MyCLC.SetPer(per); |
| MyNSD.SetPer(per); |
| MyCM.SetPer(per); |
| MyCNF.SetPer(per); |
| MyCMD.SetPer(per); |
| MyIDC.SetPer(per); |
| MyCE.SetPer(per); |
| MyMT.SetPer(per); |
| MyRTD.SetPer(per); |
| MyML.SetPer(per); |
| MyMR.SetPer(per); |
| MyRME.SetPer(per); |
| } |
| |
| /************************************************************************/ |
| /* */ |
| /************************************************************************/ |
| OSCL_EXPORT_REF void SE::SetH245(H245 *h245) |
| { |
| MyH245 = h245; |
| MyMSD.SetH245(h245); |
| MyBLC.SetH245(h245); |
| MyLC.SetH245(h245); |
| MyCLC.SetH245(h245); |
| MyNSD.SetH245(h245); |
| MyCM.SetH245(h245); |
| MyCNF.SetH245(h245); |
| MyCMD.SetH245(h245); |
| MyIDC.SetH245(h245); |
| MyCE.SetH245(h245); |
| MyMT.SetH245(h245); |
| MyRTD.SetH245(h245); |
| MyML.SetH245(h245); |
| MyMR.SetH245(h245); |
| MyRME.SetH245(h245); |
| } |
| |
| /************************************************************************/ |
| /* */ |
| /************************************************************************/ |
| void SE::TimeoutOccurred(int32 timerID , int32 timeoutInfo) |
| { |
| Print(" SE::TimeoutOccurred timerId, timeoutInfo=", timerID, timeoutInfo); |
| |
| S_InfHeader infHeader; |
| |
| infHeader.InfType = H245_TIMEOUT ; |
| infHeader.InfId = (timerID & 0x0000FFFF) ; |
| infHeader.InfSupplement1 = timeoutInfo ; |
| infHeader.InfSupplement2 = ((timerID >> 16) & 0x0000FFFF) ; |
| infHeader.pParameter = NULL; |
| |
| InformationRecv(&infHeader); |
| } |
| |
| |
| /************************************************************************/ |
| /* function name : InformationRecv */ |
| /* function outline : Receive Information From Upper Layer */ |
| /* : Primitive and Timeout */ |
| /* function discription: InformationRecv( PS_InfHeader ) */ |
| /* input data : PS_InfHeader p_InfHeader */ |
| /* output data : None */ |
| /* draw time : '96.11.26 */ |
| /*----------------------------------------------------------------------*/ |
| /* amendent career : */ |
| /* */ |
| /* Copyright (C) 1996 NTT DoCoMo */ |
| /************************************************************************/ |
| OSCL_EXPORT_REF void SE::InformationRecv(PS_InfHeader p_InfHeader) |
| { |
| PS_EventNoTable p_EventNoTable ; |
| uint32 Event_No ; |
| |
| p_EventNoTable = TablePointerGetUpperLayer(p_InfHeader->InfType) ; |
| if (p_EventNoTable != NULL) /* Search Table Pointer Get OK */ |
| { |
| /* Event No Decision */ |
| Event_No = EventNoDecision(p_EventNoTable , p_InfHeader->InfId) ; |
| if (Event_No != STOPPER) /* Event No Decision OK */ |
| { |
| int32 leave_status = 0; |
| OsclSharedPtr<uint8> parameter(p_InfHeader->pParameter, NULL); |
| OSCL_TRY(leave_status, Dispatch(Event_No , parameter , p_InfHeader->InfSupplement1 , p_InfHeader->InfSupplement2)); |
| OSCL_FIRST_CATCH_ANY(leave_status, Print("SE::InformationRecv - Dispatch LEAVE")); |
| } |
| else /* Event No Decision NG ( Information Id Error ) */ |
| { |
| /* Internal Error Notification ( To TSC ) */ |
| ItnErrNotificationSend(ITN_ERR_CODE_0000 , p_InfHeader->InfId) ; |
| } |
| } |
| else /* Search Table Pointer Get NG ( Message Type1 Error ) */ |
| { |
| /* Internal Error Notification ( To TSC ) */ |
| ItnErrNotificationSend(ITN_ERR_CODE_0000 , (uint32) p_InfHeader->InfType) ; |
| } |
| return ; |
| } |
| |
| /************************************************************************/ |
| /* function name : MessageRecv */ |
| /* function outline : Receive Information From Lower Layer */ |
| /* : Message */ |
| /* function discription: MessageRecv( PS_H245Msg ) */ |
| /* input data : PS_H245Msg p_H245Msg */ |
| /* output data : None */ |
| /* draw time : '96.11.26 */ |
| /*----------------------------------------------------------------------*/ |
| /* amendent career : */ |
| /* */ |
| /* Copyright (C) 1996 NTT DoCoMo */ |
| /************************************************************************/ |
| void SE::MessageRecv(uint8 Type1, uint8 Type2, OsclSharedPtr<uint8> Data, uint8* EncodedMsg, uint32 EncodedMsgSize) |
| { |
| PS_EventNoTable p_EventNoTable ; |
| uint32 Event_No ; |
| |
| p_EventNoTable = TablePointerGetLowerLayer(Type1) ; |
| if (p_EventNoTable != NULL) /* Search Table Pointer Get OK */ |
| { |
| /* Event No Decision */ |
| Event_No = EventNoDecision(p_EventNoTable , (uint32)Type2) ; |
| if (Event_No != STOPPER) /* Event No Decision OK */ |
| { |
| int32 leave_status = 0; |
| OSCL_TRY(leave_status, Dispatch(Event_No , Data , 0 , 0, EncodedMsg, EncodedMsgSize)); |
| OSCL_FIRST_CATCH_ANY(leave_status, Print("SE::MessageRecv - Dispatch() LEAVE")); |
| } |
| else /* Event No Decision NG ( Message Type1 Error ) */ |
| { |
| /* Internal Error Notification ( To TSC ) */ |
| ItnErrNotificationSend(ITN_ERR_CODE_0001 , (uint32) Type2) ; |
| } |
| } |
| else /* Search Table Pointer Get NG ( Message Type1 Error ) */ |
| { |
| /* Internal Error Notification ( To TSC ) */ |
| ItnErrNotificationSend(ITN_ERR_CODE_0000 , (uint32) Type1) ; |
| } |
| return ; |
| } |
| |
| |
| /************************************************************************/ |
| /* function name : Se_TablePointerGetUpperLayer */ |
| /* function outline : Table Pointer Get ( From Upper Layer ) */ |
| /* function discription: Se_TablePointerGetUpperLayer( uint32 ) */ |
| /* input data : uint32 InfType_2 */ |
| /* output data : PS_EventNoTable p_EventNoTable */ |
| /* draw time : '96.11.26 */ |
| /*----------------------------------------------------------------------*/ |
| /* amendent career : */ |
| /* */ |
| /* Copyright (C) 1996 NTT DoCoMo */ |
| /************************************************************************/ |
| PS_EventNoTable SE::TablePointerGetUpperLayer(uint32 InfType_2) |
| { |
| PS_EventNoTable p_EventNoTable ; |
| |
| switch (InfType_2) /* Information Type 2 */ |
| { |
| case H245_PRIMITIVE : /* H.245 Primitive Information Receive */ |
| p_EventNoTable = (PS_EventNoTable)EventNoTblForPri ; |
| break ; |
| case H245_TIMEOUT : /* H.245 Timeout Information Receive */ |
| p_EventNoTable = (PS_EventNoTable)EventNoTblForTo ; |
| break ; |
| default : /* Receive Information Error */ |
| p_EventNoTable = NULL ; |
| break ; |
| } |
| /* Return Event No Table Pointer */ |
| return(p_EventNoTable) ; |
| } |
| |
| |
| /************************************************************************/ |
| /* function name : Se_TablePointerGetLowerLayer */ |
| /* function outline : Table Pointer Get ( From Lower Layer ) */ |
| /* function discription: Se_TablePointerGetLowerLayer( uint32 ) */ |
| /* input data : uint32 InfType_2 */ |
| /* output data : PS_EventNoTable p_EventNoTable */ |
| /* draw time : '96.11.26 */ |
| /*----------------------------------------------------------------------*/ |
| /* amendent career : */ |
| /* */ |
| /* Copyright (C) 1996 NTT DoCoMo */ |
| /************************************************************************/ |
| PS_EventNoTable SE::TablePointerGetLowerLayer(uint32 InfType_2) |
| { |
| PS_EventNoTable p_EventNoTable ; |
| |
| switch (InfType_2) /* Information Type 2 */ |
| { |
| case H245_MSG_REQ : /* Request Message Information Receive */ |
| p_EventNoTable = (PS_EventNoTable) EventNoTblForReqMsg ; |
| break ; |
| case H245_MSG_RPS : /* Response Message Information Receive */ |
| p_EventNoTable = (PS_EventNoTable) EventNoTblForRpsMsg ; |
| break ; |
| case H245_MSG_CMD : /* Command Message Information Receive */ |
| p_EventNoTable = (PS_EventNoTable) EventNoTblForCmdMsg ; |
| break ; |
| case H245_MSG_IDC : /* Indication Message Information Receive */ |
| p_EventNoTable = (PS_EventNoTable) EventNoTblForIdcMsg ; |
| break ; |
| default : /* Receive Information Error */ |
| p_EventNoTable = NULL ; |
| break ; |
| } |
| /* Return Event No Table Pointer */ |
| return(p_EventNoTable) ; |
| } |
| |
| |
| /************************************************************************/ |
| /* function name : Se_EventNoDecision */ |
| /* function outline : Event No Decision */ |
| /* function discription: Se_EventNoDecision( PS_EventNoTable , uint32 ) */ |
| /* input data : PS_EventNoTable p_EventNoTable */ |
| /* : uint32 InfType_2 */ |
| /* output data : uint32 Event_No */ |
| /* : STOPPER : Event No Decision NG */ |
| /* : Other : Event No Decision OK */ |
| /* draw time : '96.11.26 */ |
| /*----------------------------------------------------------------------*/ |
| /* amendent career : */ |
| /* */ |
| /* Copyright (C) 1996 NTT DoCoMo */ |
| /************************************************************************/ |
| uint32 SE::EventNoDecision(PS_EventNoTable p_EventNoTable , uint32 InfType_2) |
| { |
| uint32 Event_No ; |
| |
| /* Event No Initialize */ |
| Event_No = STOPPER ; |
| |
| while (p_EventNoTable->InfType2 != STOPPER) /* Until Information Type2 Equal Stopper */ |
| { |
| if (p_EventNoTable->InfType2 == InfType_2) /* Information Type2 Equal */ |
| { |
| /* Event No Set */ |
| Event_No = p_EventNoTable->EventNo ; |
| break ; |
| } |
| p_EventNoTable ++ ; |
| } |
| |
| #ifdef PVANALYZER /* --------SE Analyzer Tool -------- */ |
| EventNoShow(p_EventNoTable->Comment); /* PVANALYZER (RAN) */ |
| #endif /* --------------------------------- */ |
| |
| /* Event No Return */ |
| return(Event_No) ; |
| } |
| |
| #ifdef PVANALYZER /* --------SE Analyzer Tool -------- */ |
| // ========================================================= |
| // Se_EventNoShow() |
| // |
| // This function displays the SE event which is about to |
| // be handled by Se_Dispatch(). |
| // ========================================================= |
| void SE::EventNoShow(char *comment) |
| { |
| Show245(ANALYZER_SE, 0, "Signaling Entity Event:"); |
| Show245(ANALYZER_SE, 2, comment); |
| Show245(ANALYZER_SE, 0, " "); |
| } |
| #endif /* --------------------------------- */ |
| |
| /************************************************************************/ |
| /* function name : Se_Dispatch */ |
| /* function outline : Dispatch */ |
| /* function discription: Se_DispatchMain( uint32 , uint8 , uint32 , uint32 ) */ |
| /* input data : uint32 Event_No */ |
| /* : uint8* pParameter */ |
| /* : uint32 Supplement_1 */ |
| /* : uint32 Supplement_2 */ |
| /* output data : None */ |
| /* draw time : '96.11.28 */ |
| /*----------------------------------------------------------------------*/ |
| /* amendent career : */ |
| /* */ |
| /* Copyright (C) 1996 NTT DoCoMo */ |
| /************************************************************************/ |
| void SE::Dispatch(uint32 Event_No , OsclSharedPtr<uint8> pParameter , uint32 Supplement_1 , uint32 Supplement_2, |
| uint8* EncodedMsg, uint32 EncodedMsgSize) |
| { |
| uint8 Se_Status ; |
| uint8 Se_Status2; |
| LCEntry* pLCEntry; |
| uint8 Directional ; |
| PS_ForwardReverseParam p_ForwardReverseParam ; |
| PS_OpenLogicalChannel p_OpenLogicalChannel ; |
| int32 lcn; /* Temp holder for FwdLCN. RAN */ |
| |
| switch (Event_No & 0XFF000000) /* Signalling Entity Check */ |
| { |
| case EVENT_MSDSE : /* Master Slave Determination Signalling Entity */ |
| switch (Event_No) /* Event No Check */ |
| { |
| case EVENT_MSG_MSD : /* MasterSlaveDetermination */ |
| MyMSD.Handler((PS_MasterSlaveDetermination)((uint8*)pParameter)); |
| break ; |
| case EVENT_MSG_MSD_ACK : /* MasterSlaveDeterminationAck */ |
| MyMSD.Handler((PS_MasterSlaveDeterminationAck)((uint8*)pParameter)); |
| break ; |
| case EVENT_MSG_MSD_RJT: /* MasterSlaveDeterminationReject */ |
| MyMSD.Handler((PS_MasterSlaveDeterminationReject)((uint8*)pParameter)); |
| break ; |
| case EVENT_MSG_MSD_RLS : /* MasterSlaveDeterminationRelease */ |
| MyMSD.Handler((PS_MasterSlaveDeterminationRelease)((uint8*)pParameter)); |
| break; |
| } |
| break ; |
| case EVENT_CESE : /* Capability Exchange Signalling Entity */ |
| switch (Event_No) /* Event No Check */ |
| { |
| case EVENT_MSG_CE : /* TerminalCapabilitySet */ |
| { |
| OsclSharedPtr<S_TerminalCapabilitySet> param; |
| param.Bind((PS_TerminalCapabilitySet)pParameter.GetRep(), pParameter.GetRefCounter()); |
| if (param.GetRefCounter())(param.GetRefCounter())->addRef(); |
| MyCE.Handler(param); |
| } |
| break ; |
| case EVENT_MSG_CE_ACK : /* TerminalCapabilitySetAck */ |
| MyCE.Handler((PS_TerminalCapabilitySetAck)((uint8*)pParameter)); |
| break ; |
| case EVENT_MSG_CE_RJT : /* TerminalCapabilitySetReject */ |
| MyCE.Handler((PS_TerminalCapabilitySetReject)((uint8*)pParameter)); |
| break ; |
| case EVENT_MSG_CE_RLS : /* TerminalCapabilitySetRelease */ |
| MyCE.Handler((PS_TerminalCapabilitySetRelease)((uint8*)pParameter)); |
| break ; |
| } |
| break ; |
| case EVENT_LCBLCSE : /* Uni-Directional and Bi-Directional Logical Channel Signalling Entity */ |
| pLCEntry = NULL ; |
| switch (Event_No) /* Event No Check */ |
| { |
| case EVENT_PTV_LCBLC_ETB_REQ : /* ESTABLISH.request */ |
| Print("Received LCBLC Establish.Request\n"); |
| pLCEntry = LCBLCOutgoing.GetLCEntry(Supplement_1); |
| /* if LC doesn't exist then create it */ |
| if (pLCEntry == NULL) |
| { |
| Print(" Creating New Logical Channel Entry : Outgoing %d\n", Supplement_1); |
| pLCEntry = LCBLCOutgoing.NewLCEntry(Supplement_1); |
| } |
| else |
| { |
| Print(" Using existing Logical Channel Entry : Outgoing %d %d\n", pLCEntry->FwdLcnRead(), pLCEntry->RvsLcnRead()); |
| } |
| |
| if (pLCEntry->DirectionalRead() == NO_DIRECTIONAL) /* Unsettled Directional */ |
| { /* (true for new LCB's) */ |
| p_ForwardReverseParam = (PS_ForwardReverseParam)((uint8*)pParameter) ; |
| if (p_ForwardReverseParam->option_of_reverseLogicalChannelParameters == false) /* Uni-Directional */ |
| { |
| Directional = UNI_DIRECTIONAL ; |
| } |
| else /* Bi-Directional */ |
| { |
| Directional = BI_DIRECTIONAL ; |
| } |
| pLCEntry->DirectionalWrite(Directional); |
| } |
| /* Uni-Directional and Bi-Directional Logical Channel Status Read ( Each Logical Channel Number ) */ |
| Se_Status = pLCEntry->StatusRead(); |
| if (pLCEntry->DirectionalRead() == UNI_DIRECTIONAL) /* Uni-Directional */ |
| { |
| Print(" Channel Uni-Directional\n"); |
| switch (Se_Status) /* Uni-Directional Logical Channel Status Read */ |
| { |
| case LCBLC_OUTGOING_RLSED : /* Outgoing Released */ |
| MyLC._0200_0000(pLCEntry , (PS_ForwardReverseParam)((uint8*)pParameter)) ; |
| break ; |
| case LCBLC_OUTGOING_AWTING_ETBMNT : /* Outgoing Awaiting Establishment */ |
| case LCBLC_OUTGOING_ETBED : /* Outgoing Established */ |
| /* Internal Error Notification ( To TSC ) */ |
| ItnErrNotificationSend(ITN_ERR_CODE_0002 , EVENT_LCSE & Se_Status) ; |
| break ; |
| case LCBLC_OUTGOING_AWTING_RLS : /* Outgoing Awaiting Release */ |
| MyLC._0200_0030(pLCEntry , (PS_ForwardReverseParam)((uint8*)pParameter)) ; |
| break ; |
| case LCBLC_INCOMING_RLSED : /* Incoming Released */ |
| /* (RAN) Comment: this path is not appropriate; */ |
| /* It should never be called. */ |
| MyLC._0200_0000(pLCEntry , (PS_ForwardReverseParam)((uint8*)pParameter)) ; |
| break ; |
| case LCBLC_INCOMING_AWTING_ETBMNT : /* Incoming Awaiting Establishment */ |
| case LCBLC_INCOMING_AWTING_CNFMTN : /* Incoming Awaiting Confirmation */ |
| case LCBLC_INCOMING_ETBED : /* Incoming Established */ |
| /* Internal Error Notification ( To TSC ) */ |
| ItnErrNotificationSend(ITN_ERR_CODE_0002 , EVENT_LCSE & Se_Status) ; |
| break ; |
| } |
| } |
| else /* Bi-Directional */ |
| { |
| Print(" Channel Bi-Directional\n"); |
| switch (Se_Status) /* Bi-Directional Logical Channel Status Read */ |
| { |
| case LCBLC_OUTGOING_RLSED : /* Outgoing Released */ |
| MyBLC._0300_0000(pLCEntry , (PS_ForwardReverseParam)((uint8*)pParameter)) ; |
| break ; |
| case LCBLC_OUTGOING_AWTING_ETBMNT : /* Outgoing Awaiting Establishment */ |
| case LCBLC_OUTGOING_ETBED : /* Outgoing Established */ |
| /* Internal Error Notification ( To TSC ) */ |
| ItnErrNotificationSend(ITN_ERR_CODE_0002 , EVENT_BLCSE & Se_Status) ; |
| break ; |
| case LCBLC_OUTGOING_AWTING_RLS : /* Outgoing Awaiting Release */ |
| MyBLC._0300_0030(pLCEntry , (PS_ForwardReverseParam)((uint8*)pParameter)) ; |
| break ; |
| case LCBLC_INCOMING_RLSED : /* Incoming Released */ |
| /* (RAN) Comment: this path is not appropriate; */ |
| /* It should never be called. */ |
| MyBLC._0300_0000(pLCEntry , (PS_ForwardReverseParam)((uint8*)pParameter)) ; |
| break ; |
| case LCBLC_INCOMING_AWTING_ETBMNT : /* Incoming Awaiting Establishment */ |
| case LCBLC_INCOMING_AWTING_CNFMTN : /* Incoming Awaiting Confirmation */ |
| case LCBLC_INCOMING_ETBED : /* Incoming Established */ |
| /* Internal Error Notification ( To TSC ) */ |
| ItnErrNotificationSend(ITN_ERR_CODE_0002 , EVENT_BLCSE & Se_Status) ; |
| break ; |
| } |
| } |
| break ; |
| case EVENT_MSG_LCBLC_OP : /* OpenLogicalChannel */ |
| Print("Received LCBLC OpenLogicalChannel\n"); |
| pLCEntry = LCBLCIncoming.GetLCEntry(((PS_OpenLogicalChannel)((uint8*)pParameter))->forwardLogicalChannelNumber) ; |
| if (pLCEntry == NULL) |
| { |
| Print(" Creating New Logical Channel Entry : Incoming %d\n", ((PS_OpenLogicalChannel)((uint8*)pParameter))->forwardLogicalChannelNumber); |
| pLCEntry = LCBLCIncoming.NewLCEntry(((PS_OpenLogicalChannel)((uint8*)pParameter))->forwardLogicalChannelNumber); |
| } |
| else |
| { |
| Print(" Using existing Logical Channel Entry : Incoming %d %d\n", pLCEntry->FwdLcnRead(), pLCEntry->RvsLcnRead()); |
| } |
| if (pLCEntry->DirectionalRead() == NO_DIRECTIONAL) /* Unsettled Directional */ |
| { |
| p_OpenLogicalChannel = (PS_OpenLogicalChannel)((uint8*)pParameter) ; |
| if (p_OpenLogicalChannel->option_of_reverseLogicalChannelParameters == false) /* Uni-Directional */ |
| { |
| Directional = UNI_DIRECTIONAL ; |
| } |
| else /* Bi-Directional */ |
| { |
| Directional = BI_DIRECTIONAL ; |
| } |
| pLCEntry->DirectionalWrite(Directional); |
| } |
| /* Uni-Directional and Bi-Directional Logical Channel Status Read ( Each Logical Channel Number ) */ |
| Se_Status = pLCEntry->StatusRead(); |
| if (pLCEntry->DirectionalRead() == UNI_DIRECTIONAL) /* Uni-Directional */ |
| { |
| Print(" Channel Uni-Directional\n"); |
| switch (Se_Status) /* Uni-Directional Logical Channel Status Read */ |
| { |
| case LCBLC_OUTGOING_RLSED : /* Outgoing Released */ |
| /* (RAN) Comment: this path is not appropriate; */ |
| /* It should never be called. */ |
| MyLC._0201_0001(pLCEntry , (PS_OpenLogicalChannel)((uint8*)pParameter)) ; |
| break ; |
| case LCBLC_OUTGOING_AWTING_ETBMNT : /* Outgoing Awaiting Establishment */ |
| /* (RAN) Comment: this path is not appropriate; */ |
| /* It should never be called. */ |
| MyLC._0201_0010(pLCEntry , (PS_OpenLogicalChannel)((uint8*)pParameter)) ; |
| break ; |
| case LCBLC_OUTGOING_ETBED : /* Outgoing Established */ |
| case LCBLC_OUTGOING_AWTING_RLS : /* Outgoing Awaiting Release */ |
| /* Internal Error Notification ( To TSC ) */ |
| ItnErrNotificationSend(ITN_ERR_CODE_0002 , EVENT_LCSE & Se_Status) ; |
| break ; |
| case LCBLC_INCOMING_RLSED : /* Incoming Released */ |
| MyLC._0201_0001(pLCEntry , (PS_OpenLogicalChannel)((uint8*)pParameter)) ; |
| break ; |
| case LCBLC_INCOMING_AWTING_ETBMNT : /* Incoming Awaiting Establishment */ |
| MyLC._0201_0011(pLCEntry , (PS_OpenLogicalChannel)((uint8*)pParameter)) ; |
| break ; |
| case LCBLC_INCOMING_AWTING_CNFMTN : /* Incoming Awaiting Confirmation */ |
| /* Internal Error Notification ( To TSC ) */ |
| ItnErrNotificationSend(ITN_ERR_CODE_0002 , EVENT_LCSE & Se_Status) ; |
| break ; |
| case LCBLC_INCOMING_ETBED : /* Incoming Established */ |
| MyLC._0201_0011(pLCEntry , (PS_OpenLogicalChannel)((uint8*)pParameter)) ; |
| break ; |
| } |
| } |
| else /* Bi-Directional */ |
| { |
| Print(" Channel Bi-Directional\n"); |
| switch (Se_Status) /* Bi-Directional Logical Channel Status Read */ |
| { |
| case LCBLC_OUTGOING_RLSED : /* Outgoing Released */ |
| /* (RAN) Comment: this path is not appropriate; */ |
| /* It should never be called. */ |
| MyBLC._0301_0001(pLCEntry , (PS_OpenLogicalChannel)((uint8*)pParameter)) ; |
| break ; |
| case LCBLC_OUTGOING_AWTING_ETBMNT : /* Outgoing Awaiting Establishment */ |
| /* (RAN) Comment: this path is not appropriate; */ |
| /* It should never be called. */ |
| MyBLC._0301_0010(pLCEntry , (PS_OpenLogicalChannel)((uint8*)pParameter)) ; |
| break ; |
| case LCBLC_OUTGOING_ETBED : /* Outgoing Established */ |
| case LCBLC_OUTGOING_AWTING_RLS : /* Outgoing Awaiting Release */ |
| /* Internal Error Notification ( To TSC ) */ |
| ItnErrNotificationSend(ITN_ERR_CODE_0002 , Event_No & Se_Status) ; |
| break ; |
| case LCBLC_INCOMING_RLSED : /* Incoming Released */ |
| MyBLC._0301_0001(pLCEntry , (PS_OpenLogicalChannel)((uint8*)pParameter)) ; |
| break ; |
| case LCBLC_INCOMING_AWTING_ETBMNT : /* Incoming Awaiting Establishment */ |
| MyBLC._0301_0011(pLCEntry , (PS_OpenLogicalChannel)((uint8*)pParameter)) ; |
| break ; |
| case LCBLC_INCOMING_AWTING_CNFMTN : /* Incoming Awaiting Confirmation */ |
| MyBLC._0301_0021(pLCEntry , (PS_OpenLogicalChannel)((uint8*)pParameter)) ; |
| break ; |
| case LCBLC_INCOMING_ETBED : /* Incoming Established */ |
| MyBLC._0301_0011(pLCEntry , (PS_OpenLogicalChannel)((uint8*)pParameter)) ; |
| break ; |
| } |
| } |
| break ; |
| case EVENT_PTV_LCBLC_ETB_RPS : /* ESTABLISH.response */ |
| Print("Received LCBLC Establish.Response\n"); |
| pLCEntry = LCBLCIncoming.GetLCEntry(Supplement_1); |
| if (pLCEntry == NULL) |
| { |
| ItnErrNotificationSend(ITN_ERR_CODE_0002 , EVENT_LCSE) ; |
| break; |
| } |
| else |
| { |
| Print(" Using existing Logical Channel Entry : Incoming %d %d\n", pLCEntry->FwdLcnRead(), pLCEntry->RvsLcnRead()); |
| } |
| /* Uni-Directional and Bi-Directional Logical Channel Status Read ( Each Logical Channel Number ) */ |
| Se_Status = pLCEntry->StatusRead(); |
| if (pLCEntry->DirectionalRead() == UNI_DIRECTIONAL) /* Uni-Directional */ |
| { |
| Print(" Channel Uni-Directional\n"); |
| switch (Se_Status) /* Uni-Directional Logical Channel Status Read */ |
| { |
| case LCBLC_OUTGOING_RLSED : /* Outgoing Released */ |
| case LCBLC_OUTGOING_AWTING_ETBMNT : /* Outgoing Awaiting Establishment */ |
| case LCBLC_OUTGOING_ETBED : /* Outgoing Established */ |
| case LCBLC_OUTGOING_AWTING_RLS : /* Outgoing Awaiting Release */ |
| /* Internal Error Notification ( To TSC ) */ |
| ItnErrNotificationSend(ITN_ERR_CODE_0002 , EVENT_LCSE & Se_Status) ; |
| break ; |
| case LCBLC_INCOMING_RLSED : /* Incoming Released */ |
| /* Internal Error Notification ( To TSC ) */ |
| ItnErrNotificationSend(ITN_ERR_CODE_0002 , EVENT_LCSE & Se_Status) ; |
| break ; |
| case LCBLC_INCOMING_AWTING_ETBMNT : /* Incoming Awaiting Establishment */ |
| MyLC._0202_0011(pLCEntry , (PS_ReverseData)((uint8*)pParameter)) ; |
| break ; |
| case LCBLC_INCOMING_AWTING_CNFMTN : /* Incoming Awaiting Confirmation */ |
| case LCBLC_INCOMING_ETBED : /* Incoming Established */ |
| /* Internal Error Notification ( To TSC ) */ |
| ItnErrNotificationSend(ITN_ERR_CODE_0002 , EVENT_LCSE & Se_Status) ; |
| break ; |
| } |
| } |
| else /* Bi-Directional */ |
| { |
| Print(" Channel Bi-Directional\n"); |
| switch (Se_Status) /* Bi-Directional Logical Channel Status Read */ |
| { |
| case LCBLC_OUTGOING_RLSED : /* Outgoing Released */ |
| case LCBLC_OUTGOING_AWTING_ETBMNT : /* Outgoing Awaiting Establishment */ |
| case LCBLC_OUTGOING_ETBED : /* Outgoing Established */ |
| case LCBLC_OUTGOING_AWTING_RLS : /* Outgoing Awaiting Release */ |
| /* Internal Error Notification ( To TSC ) */ |
| ItnErrNotificationSend(ITN_ERR_CODE_0002 , EVENT_BLCSE & Se_Status) ; |
| break ; |
| case LCBLC_INCOMING_RLSED : /* Incoming Released */ |
| /* Internal Error Notification ( To TSC ) */ |
| ItnErrNotificationSend(ITN_ERR_CODE_0002 , EVENT_BLCSE & Se_Status) ; |
| break ; |
| case LCBLC_INCOMING_AWTING_ETBMNT : /* Incoming Awaiting Establishment */ |
| MyBLC._0302_0011(pLCEntry , (PS_ReverseData)((uint8*)pParameter) , (uint16) Supplement_2) ; |
| break ; |
| case LCBLC_INCOMING_AWTING_CNFMTN : /* Incoming Awaiting Confirmation */ |
| case LCBLC_INCOMING_ETBED : /* Incoming Established */ |
| /* Internal Error Notification ( To TSC ) */ |
| ItnErrNotificationSend(ITN_ERR_CODE_0002 , EVENT_BLCSE & Se_Status) ; |
| break ; |
| } |
| } |
| break ; |
| case EVENT_PTV_LCBLC_RLS_REQ : /* RELEASE.request */ |
| Print("Received LCBLC Release.Request\n"); |
| if (((uint8*)pParameter) != NULL) /* WWU_VOAL2: incoming SE */ |
| { |
| pLCEntry = LCBLCIncoming.GetLCEntry(Supplement_1); |
| if (pLCEntry != NULL) |
| { |
| Print(" Using existing Logical Channel Entry : Incoming %d %d\n", pLCEntry->FwdLcnRead(), pLCEntry->RvsLcnRead()); |
| } |
| } |
| else /* WWU_VOAL2: outgoing SE */ |
| { |
| pLCEntry = LCBLCOutgoing.GetLCEntry(Supplement_1); |
| if (pLCEntry != NULL) |
| { |
| Print(" Using existing Logical Channel Entry : Outgoing %d %d\n", pLCEntry->FwdLcnRead(), pLCEntry->RvsLcnRead()); |
| } |
| } |
| if (pLCEntry == NULL) |
| { |
| ItnErrNotificationSend(ITN_ERR_CODE_0002 , EVENT_LCSE) ; |
| break; |
| } |
| /* Uni-Directional and Bi-Directional Logical Channel Status Read ( Each Logical Channel Number ) */ |
| Se_Status = pLCEntry->StatusRead(); |
| if (pLCEntry->DirectionalRead() == UNI_DIRECTIONAL) /* Uni-Directional */ |
| { |
| Print(" Channel Uni-Directional\n"); |
| switch (Se_Status) /* Uni-Directional Logical Channel Status Read */ |
| { |
| case LCBLC_OUTGOING_RLSED : /* Outgoing Released */ |
| /* Internal Error Notification ( To TSC ) */ |
| ItnErrNotificationSend(ITN_ERR_CODE_0002 , EVENT_LCSE & Se_Status) ; |
| break ; |
| case LCBLC_OUTGOING_AWTING_ETBMNT : /* Outgoing Awaiting Establishment */ |
| MyLC._0203_0010(pLCEntry , (PS_OlcRejectCause)((uint8*)pParameter)) ; |
| break ; |
| case LCBLC_OUTGOING_ETBED : /* Outgoing Established */ |
| MyLC._0203_0020(pLCEntry , (PS_OlcRejectCause)((uint8*)pParameter)) ; |
| break ; |
| case LCBLC_OUTGOING_AWTING_RLS : /* Outgoing Awaiting Release */ |
| /* Internal Error Notification ( To TSC ) */ |
| ItnErrNotificationSend(ITN_ERR_CODE_0002 , EVENT_LCSE & Se_Status) ; |
| break ; |
| case LCBLC_INCOMING_RLSED : /* Incoming Released */ |
| /* Internal Error Notification ( To TSC ) */ |
| ItnErrNotificationSend(ITN_ERR_CODE_0002 , EVENT_LCSE & Se_Status) ; |
| break ; |
| case LCBLC_INCOMING_AWTING_ETBMNT : /* Incoming Awaiting Establishment */ |
| MyLC._0203_0011(pLCEntry , (PS_OlcRejectCause)((uint8*)pParameter)) ; |
| break ; |
| case LCBLC_INCOMING_AWTING_CNFMTN : /* Incoming Awaiting Confirmation */ |
| case LCBLC_INCOMING_ETBED : /* Incoming Established */ |
| /* Internal Error Notification ( To TSC ) */ |
| ItnErrNotificationSend(ITN_ERR_CODE_0002 , EVENT_LCSE & Se_Status) ; |
| break ; |
| } |
| } |
| else /* Bi-Directional */ |
| { |
| Print(" Channel Bi-Directional\n"); |
| switch (Se_Status) /* Bi-Directional Logical Channel Status Read */ |
| { |
| case LCBLC_OUTGOING_RLSED : /* Outgoing Released */ |
| /* Internal Error Notification ( To TSC ) */ |
| ItnErrNotificationSend(ITN_ERR_CODE_0002 , EVENT_BLCSE & Se_Status) ; |
| break ; |
| case LCBLC_OUTGOING_AWTING_ETBMNT : /* Outgoing Awaiting Establishment */ |
| MyBLC._0303_0010(pLCEntry , (PS_OlcRejectCause)((uint8*)pParameter)) ; |
| break ; |
| case LCBLC_OUTGOING_ETBED : /* Outgoing Established */ |
| MyBLC._0303_0020(pLCEntry , (PS_OlcRejectCause)((uint8*)pParameter)) ; |
| break ; |
| case LCBLC_OUTGOING_AWTING_RLS : /* Outgoing Awaiting Release */ |
| /* Internal Error Notification ( To TSC ) */ |
| ItnErrNotificationSend(ITN_ERR_CODE_0002 , EVENT_BLCSE & Se_Status) ; |
| break ; |
| case LCBLC_INCOMING_RLSED : /* Incoming Released */ |
| /* Internal Error Notification ( To TSC ) */ |
| ItnErrNotificationSend(ITN_ERR_CODE_0002 , EVENT_BLCSE & Se_Status) ; |
| break ; |
| case LCBLC_INCOMING_AWTING_ETBMNT : /* Incoming Awaiting Establishment */ |
| MyBLC._0303_0011(pLCEntry , (PS_OlcRejectCause)((uint8*)pParameter)) ; |
| break ; |
| case LCBLC_INCOMING_AWTING_CNFMTN : /* Incoming Awaiting Confirmation */ |
| case LCBLC_INCOMING_ETBED : /* Incoming Established */ |
| /* Internal Error Notification ( To TSC ) */ |
| ItnErrNotificationSend(ITN_ERR_CODE_0002 , EVENT_BLCSE & Se_Status) ; |
| break ; |
| } |
| } |
| break ; |
| case EVENT_MSG_LCBLC_OP_ACK : /* OpenLogicalChannelAck */ |
| Print("Received LCBLC OpenLogicalChannelAck\n"); |
| pLCEntry = LCBLCOutgoing.GetLCEntry(((PS_OpenLogicalChannelAck)((uint8*)pParameter))->forwardLogicalChannelNumber) ; |
| if (pLCEntry == NULL) |
| { |
| ItnErrNotificationSend(ITN_ERR_CODE_0002 , EVENT_LCSE) ; |
| break; |
| } |
| else |
| { |
| Print(" Using existing Logical Channel Entry : Outgoing %d %d\n", pLCEntry->FwdLcnRead(), pLCEntry->RvsLcnRead()); |
| } |
| /* Uni-Directional and Bi-Directional Logical Channel Status Read ( Each Logical Channel Number ) */ |
| Se_Status = pLCEntry->StatusRead(); |
| if (pLCEntry->DirectionalRead() == UNI_DIRECTIONAL) /* Uni-Directional */ |
| { |
| Print(" Channel Uni-Directional\n"); |
| switch (Se_Status) /* Uni-Directional Logical Channel Status Read */ |
| { |
| case LCBLC_OUTGOING_RLSED : /* Outgoing Released */ |
| MyLC._0204_0000(pLCEntry , (PS_OpenLogicalChannelAck)((uint8*)pParameter)) ; |
| break ; |
| case LCBLC_OUTGOING_AWTING_ETBMNT : /* Outgoing Awaiting Establishment */ |
| MyLC._0204_0010(pLCEntry , (PS_OpenLogicalChannelAck)((uint8*)pParameter)) ; |
| break ; |
| case LCBLC_OUTGOING_ETBED : /* Outgoing Established */ |
| case LCBLC_OUTGOING_AWTING_RLS : /* Outgoing Awaiting Release */ |
| Nop_XXXX_XXXX() ; |
| break ; |
| case LCBLC_INCOMING_RLSED : /* Incoming Released */ |
| case LCBLC_INCOMING_AWTING_ETBMNT : /* Incoming Awaiting Establishment */ |
| case LCBLC_INCOMING_AWTING_CNFMTN : /* Incoming Awaiting Confirmation */ |
| case LCBLC_INCOMING_ETBED : /* Incoming Established */ |
| /* Internal Error Notification ( To TSC ) */ |
| ItnErrNotificationSend(ITN_ERR_CODE_0002 , EVENT_LCSE & Se_Status) ; |
| break ; |
| } |
| } |
| else /* Bi-Directional */ |
| { |
| Print(" Channel Bi-Directional\n"); |
| switch (Se_Status) /* Bi-Directional Logical Channel Status Read */ |
| { |
| case LCBLC_OUTGOING_RLSED : /* Outgoing Released */ |
| MyBLC._0304_0000(pLCEntry , (PS_OpenLogicalChannelAck)((uint8*)pParameter)) ; |
| break ; |
| case LCBLC_OUTGOING_AWTING_ETBMNT : /* Outgoing Awaiting Establishment */ |
| MyBLC._0304_0010(pLCEntry , (PS_OpenLogicalChannelAck)((uint8*)pParameter)) ; |
| break ; |
| case LCBLC_OUTGOING_ETBED : /* Outgoing Established */ |
| case LCBLC_OUTGOING_AWTING_RLS : /* Outgoing Awaiting Release */ |
| Nop_XXXX_XXXX() ; |
| break ; |
| case LCBLC_INCOMING_RLSED : /* Incoming Released */ |
| case LCBLC_INCOMING_AWTING_ETBMNT : /* Incoming Awaiting Establishment */ |
| case LCBLC_INCOMING_AWTING_CNFMTN : /* Incoming Awaiting Confirmation */ |
| case LCBLC_INCOMING_ETBED : /* Incoming Established */ |
| /* Internal Error Notification ( To TSC ) */ |
| ItnErrNotificationSend(ITN_ERR_CODE_0002 , EVENT_BLCSE & Se_Status) ; |
| break ; |
| } |
| } |
| break ; |
| case EVENT_MSG_LCBLC_OP_CFM : /* OpenLogicalChannelConfirm ( Bi-Directional Only ) */ |
| Print("Received LCBLC OpenLogicalChannelConfirm\n"); |
| pLCEntry = LCBLCIncoming.GetLCEntry(((PS_OpenLogicalChannelConfirm)((uint8*)pParameter))->forwardLogicalChannelNumber) ; |
| if (pLCEntry == NULL) |
| { |
| ItnErrNotificationSend(ITN_ERR_CODE_0002 , EVENT_LCSE) ; |
| break; |
| } |
| else |
| { |
| Print(" Using existing Logical Channel Entry : Incoming %d %d\n", pLCEntry->FwdLcnRead(), pLCEntry->RvsLcnRead()); |
| } |
| /* Uni-Directional and Bi-Directional Logical Channel Status Read ( Each Logical Channel Number ) */ |
| Se_Status = pLCEntry->StatusRead(); |
| if (pLCEntry->DirectionalRead() == UNI_DIRECTIONAL) /* Uni-Directional */ |
| { |
| Print(" Channel Uni-Directional\n"); |
| switch (Se_Status) /* Uni-Directional Logical Channel Status Read */ |
| { |
| case LCBLC_OUTGOING_RLSED : /* Outgoing Released */ |
| case LCBLC_OUTGOING_AWTING_ETBMNT : /* Outgoing Awaiting Establishment */ |
| case LCBLC_OUTGOING_ETBED : /* Outgoing Established */ |
| case LCBLC_OUTGOING_AWTING_RLS : /* Outgoing Awaiting Release */ |
| case LCBLC_INCOMING_RLSED : /* Incoming Released */ |
| case LCBLC_INCOMING_AWTING_ETBMNT : /* Incoming Awaiting Establishment */ |
| case LCBLC_INCOMING_AWTING_CNFMTN : /* Incoming Awaiting Confirmation */ |
| case LCBLC_INCOMING_ETBED : /* Incoming Established */ |
| /* Internal Error Notification ( To TSC ) */ |
| ItnErrNotificationSend(ITN_ERR_CODE_0002 , EVENT_LCSE & Se_Status) ; |
| break ; |
| } |
| } |
| else /* Bi-Directional */ |
| { |
| Print(" Channel Bi-Directional\n"); |
| switch (Se_Status) /* Bi-Directional Logical Channel Status Read */ |
| { |
| case LCBLC_OUTGOING_RLSED : /* Outgoing Released */ |
| case LCBLC_OUTGOING_AWTING_ETBMNT : /* Outgoing Awaiting Establishment */ |
| case LCBLC_OUTGOING_ETBED : /* Outgoing Established */ |
| case LCBLC_OUTGOING_AWTING_RLS : /* Outgoing Awaiting Release */ |
| /* Internal Error Notification ( To TSC ) */ |
| ItnErrNotificationSend(ITN_ERR_CODE_0002 , EVENT_BLCSE & Se_Status) ; |
| break ; |
| case LCBLC_INCOMING_RLSED : /* Incoming Released */ |
| Nop_XXXX_XXXX() ; /* (RAN) Replaced error notn with NOP() as in SDL */ |
| /* ItnErrNotificationSend( ITN_ERR_CODE_0002 , EVENT_BLCSE & Se_Status ) ;*/ |
| break ; |
| case LCBLC_INCOMING_AWTING_ETBMNT : /* Incoming Awaiting Establishment */ |
| MyBLC._0305_0011(pLCEntry , (PS_OpenLogicalChannelConfirm)((uint8*)pParameter)) ; |
| break ; |
| case LCBLC_INCOMING_AWTING_CNFMTN : /* Incoming Awaiting Confirmation */ |
| MyBLC._0305_0021(pLCEntry , (PS_OpenLogicalChannelConfirm)((uint8*)pParameter)) ; |
| break ; |
| case LCBLC_INCOMING_ETBED : /* Incoming Established */ |
| Nop_XXXX_XXXX() ; |
| break ; |
| } |
| } |
| break ; |
| case EVENT_MSG_LCBLC_OP_RJT : /* OpenLogicalChannelReject */ |
| Print("Received LCBLC OpenLogicalChannelReject\n"); |
| pLCEntry = LCBLCOutgoing.GetLCEntry(((PS_OpenLogicalChannelReject)((uint8*)pParameter))->forwardLogicalChannelNumber) ; |
| if (pLCEntry == NULL) |
| { |
| ItnErrNotificationSend(ITN_ERR_CODE_0002 , EVENT_LCSE) ; |
| break; |
| } |
| else |
| { |
| Print(" Using existing Logical Channel Entry : Outgoing %d %d\n", pLCEntry->FwdLcnRead(), pLCEntry->RvsLcnRead()); |
| } |
| /* Uni-Directional and Bi-Directional Logical Channel Status Read ( Each Logical Channel Number ) */ |
| Se_Status = pLCEntry->StatusRead(); |
| if (pLCEntry->DirectionalRead() == UNI_DIRECTIONAL) /* Uni-Directional */ |
| { |
| Print(" Channel Uni-Directional\n"); |
| switch (Se_Status) /* Uni-Directional Logical Channel Status Read */ |
| { |
| case LCBLC_OUTGOING_RLSED : /* Outgoing Released */ |
| MyLC._0206_0000(pLCEntry , (PS_OpenLogicalChannelReject)((uint8*)pParameter)) ; |
| break ; |
| case LCBLC_OUTGOING_AWTING_ETBMNT : /* Outgoing Awaiting Establishment */ |
| MyLC._0206_0010(pLCEntry , (PS_OpenLogicalChannelReject)((uint8*)pParameter)) ; |
| break ; |
| case LCBLC_OUTGOING_ETBED : /* Outgoing Established */ |
| MyLC._0206_0020(pLCEntry , (PS_OpenLogicalChannelReject)((uint8*)pParameter)) ; |
| break ; |
| case LCBLC_OUTGOING_AWTING_RLS : /* Outgoing Awaiting Release */ |
| MyLC._0206_0030(pLCEntry , (PS_OpenLogicalChannelReject)((uint8*)pParameter)) ; |
| break ; |
| case LCBLC_INCOMING_RLSED : /* Incoming Released */ |
| case LCBLC_INCOMING_AWTING_ETBMNT : /* Incoming Awaiting Establishment */ |
| case LCBLC_INCOMING_AWTING_CNFMTN : /* Incoming Awaiting Confirmation */ |
| case LCBLC_INCOMING_ETBED : /* Incoming Established */ |
| /* Internal Error Notification ( To TSC ) */ |
| ItnErrNotificationSend(ITN_ERR_CODE_0002 , EVENT_LCSE & Se_Status) ; |
| break ; |
| } |
| } |
| else /* Bi-Directional */ |
| { |
| Print(" Channel Bi-Directional\n"); |
| switch (Se_Status) /* Bi-Directional Logical Channel Status Read */ |
| { |
| case LCBLC_OUTGOING_RLSED : /* Outgoing Released */ |
| MyBLC._0306_0000(pLCEntry , (PS_OpenLogicalChannelReject)((uint8*)pParameter)) ; |
| break ; |
| case LCBLC_OUTGOING_AWTING_ETBMNT : /* Outgoing Awaiting Establishment */ |
| MyBLC._0306_0010(pLCEntry , (PS_OpenLogicalChannelReject)((uint8*)pParameter)) ; |
| break ; |
| case LCBLC_OUTGOING_ETBED : /* Outgoing Established */ |
| MyBLC._0306_0020(pLCEntry , (PS_OpenLogicalChannelReject)((uint8*)pParameter)) ; |
| break ; |
| case LCBLC_OUTGOING_AWTING_RLS : /* Outgoing Awaiting Release */ |
| MyBLC._0306_0030(pLCEntry , (PS_OpenLogicalChannelReject)((uint8*)pParameter)) ; |
| break ; |
| case LCBLC_INCOMING_RLSED : /* Incoming Released */ |
| case LCBLC_INCOMING_AWTING_ETBMNT : /* Incoming Awaiting Establishment */ |
| case LCBLC_INCOMING_AWTING_CNFMTN : /* Incoming Awaiting Confirmation */ |
| case LCBLC_INCOMING_ETBED : /* Incoming Established */ |
| /* Internal Error Notification ( To TSC ) */ |
| ItnErrNotificationSend(ITN_ERR_CODE_0002 , EVENT_BLCSE & Se_Status) ; |
| break ; |
| } |
| } |
| break ; |
| case EVENT_TIM_LCBLC_T103 : /* Timer T103 Timeout */ |
| Print("Received LCBLC T103 Timeout\n"); |
| pLCEntry = LCBLCOutgoing.GetLCEntry(Supplement_2); |
| if (pLCEntry == NULL) |
| { |
| ItnErrNotificationSend(ITN_ERR_CODE_0002 , EVENT_LCSE) ; |
| break; |
| } |
| else |
| { |
| Print(" Using existing Logical Channel Entry : Outgoing %d %d\n", pLCEntry->FwdLcnRead(), pLCEntry->RvsLcnRead()); |
| } |
| /* Uni-Directional and Bi-Directional Logical Channel Status Read ( Each Logical Channel Number ) */ |
| Se_Status = pLCEntry->StatusRead(); |
| if (pLCEntry->DirectionalRead() == UNI_DIRECTIONAL) /* Uni-Directional */ |
| { |
| Print(" Channel Uni-Directional\n"); |
| switch (Se_Status) /* Uni-Directional Logical Channel Status Read */ |
| { |
| case LCBLC_OUTGOING_RLSED : /* Outgoing Released */ |
| Nop_XXXX_XXXX() ; |
| break ; |
| case LCBLC_OUTGOING_AWTING_ETBMNT : /* Outgoing Awaiting Establishment */ |
| MyLC._0207_0010(pLCEntry , Supplement_1) ; |
| break ; |
| case LCBLC_OUTGOING_ETBED : /* Outgoing Established */ |
| Nop_XXXX_XXXX() ; |
| break ; |
| case LCBLC_OUTGOING_AWTING_RLS : /* Outgoing Awaiting Release */ |
| MyLC._0207_0030(pLCEntry , Supplement_1) ; |
| break ; |
| case LCBLC_INCOMING_RLSED : /* Incoming Released */ |
| case LCBLC_INCOMING_AWTING_ETBMNT : /* Incoming Awaiting Establishment */ |
| case LCBLC_INCOMING_AWTING_CNFMTN : /* Incoming Awaiting Confirmation */ |
| case LCBLC_INCOMING_ETBED : /* Incoming Established */ |
| Nop_XXXX_XXXX() ; |
| break ; |
| } |
| } |
| else /* Bi-Directional */ |
| { |
| Print(" Channel Bi-Directional\n"); |
| switch (Se_Status) /* Bi-Directional Logical Channel Status Read */ |
| { |
| case LCBLC_OUTGOING_RLSED : /* Outgoing Released */ |
| Nop_XXXX_XXXX() ; |
| break ; |
| case LCBLC_OUTGOING_AWTING_ETBMNT : /* Outgoing Awaiting Establishment */ |
| MyBLC._0307_0010(pLCEntry , Supplement_1) ; |
| break ; |
| case LCBLC_OUTGOING_ETBED : /* Outgoing Established */ |
| Nop_XXXX_XXXX() ; |
| break ; |
| case LCBLC_OUTGOING_AWTING_RLS : /* Outgoing Awaiting Release */ |
| MyBLC._0307_0030(pLCEntry , Supplement_1) ; |
| break ; |
| case LCBLC_INCOMING_RLSED : /* Incoming Released */ |
| case LCBLC_INCOMING_AWTING_ETBMNT : /* Incoming Awaiting Establishment */ |
| Nop_XXXX_XXXX() ; |
| break ; |
| case LCBLC_INCOMING_AWTING_CNFMTN : /* Incoming Awaiting Confirmation */ |
| MyBLC._0307_0021(pLCEntry , Supplement_1) ; |
| break ; |
| case LCBLC_INCOMING_ETBED : /* Incoming Established */ |
| Nop_XXXX_XXXX() ; |
| break ; |
| } |
| } |
| break ; |
| case EVENT_MSG_LCBLC_CL : /* CloseLogicalChannel */ |
| Print("Received LCBLC CloseLogicalChannel\n"); |
| /* WWU_H245_TWOWAY */ |
| pLCEntry = LCBLCIncoming.GetLCEntry(((PS_CloseLogicalChannel)((uint8*)pParameter))->forwardLogicalChannelNumber) ; |
| if (pLCEntry == NULL) |
| { |
| ItnErrNotificationSend(ITN_ERR_CODE_0002 , EVENT_LCSE) ; |
| break; |
| } |
| else |
| { |
| Print(" Using existing Logical Channel Entry : Incoming %d %d\n", pLCEntry->FwdLcnRead(), pLCEntry->RvsLcnRead()); |
| } |
| /* Uni-Directional and Bi-Directional Logical Channel Status Read ( Each Logical Channel Number ) */ |
| Se_Status = pLCEntry->StatusRead(); |
| if (pLCEntry->DirectionalRead() == UNI_DIRECTIONAL) /* Uni-Directional */ |
| { |
| Print(" Channel Uni-Directional\n"); |
| switch (Se_Status) /* Uni-Directional Logical Channel Status Read */ |
| { |
| case LCBLC_OUTGOING_RLSED : /* Outgoing Released */ |
| case LCBLC_OUTGOING_AWTING_ETBMNT : /* Outgoing Awaiting Establishment */ |
| case LCBLC_OUTGOING_ETBED : /* Outgoing Established */ |
| case LCBLC_OUTGOING_AWTING_RLS : /* Outgoing Awaiting Release */ |
| /* Internal Error Notification ( To TSC ) */ |
| ItnErrNotificationSend(ITN_ERR_CODE_0002 , EVENT_LCSE & Se_Status) ; |
| break ; |
| case LCBLC_INCOMING_RLSED : /* Incoming Released */ |
| MyLC._0208_0001(pLCEntry , (PS_CloseLogicalChannel)((uint8*)pParameter)) ; |
| break ; |
| case LCBLC_INCOMING_AWTING_ETBMNT : /* Incoming Awaiting Establishment */ |
| MyLC._0208_0011(pLCEntry , (PS_CloseLogicalChannel)((uint8*)pParameter)) ; |
| break ; |
| case LCBLC_INCOMING_AWTING_CNFMTN : /* Incoming Awaiting Confirmation */ |
| /* Internal Error Notification ( To TSC ) */ |
| ItnErrNotificationSend(ITN_ERR_CODE_0002 , EVENT_LCSE & Se_Status) ; |
| break ; |
| case LCBLC_INCOMING_ETBED : /* Incoming Established */ |
| MyLC._0208_0011(pLCEntry , (PS_CloseLogicalChannel)((uint8*)pParameter)) ; |
| break ; |
| } |
| } |
| else /* Bi-Directional */ |
| { |
| Print(" Channel Bi-Directional\n"); |
| switch (Se_Status) /* Bi-Directional Logical Channel Status Read */ |
| { |
| case LCBLC_OUTGOING_RLSED : /* Outgoing Released */ |
| case LCBLC_OUTGOING_AWTING_ETBMNT : /* Outgoing Awaiting Establishment */ |
| case LCBLC_OUTGOING_ETBED : /* Outgoing Established */ |
| case LCBLC_OUTGOING_AWTING_RLS : /* Outgoing Awaiting Release */ |
| /* Internal Error Notification ( To TSC ) */ |
| ItnErrNotificationSend(ITN_ERR_CODE_0002 , EVENT_BLCSE & Se_Status) ; |
| break ; |
| case LCBLC_INCOMING_RLSED : /* Incoming Released */ |
| MyBLC._0308_0001(pLCEntry , (PS_CloseLogicalChannel)((uint8*)pParameter)) ; |
| break ; |
| case LCBLC_INCOMING_AWTING_ETBMNT : /* Incoming Awaiting Establishment */ |
| MyBLC._0308_0011(pLCEntry , (PS_CloseLogicalChannel)((uint8*)pParameter)) ; |
| break ; |
| case LCBLC_INCOMING_AWTING_CNFMTN : /* Incoming Awaiting Confirmation */ |
| MyBLC._0308_0021(pLCEntry , (PS_CloseLogicalChannel)((uint8*)pParameter)) ; |
| break ; |
| case LCBLC_INCOMING_ETBED : /* Incoming Established */ |
| MyBLC._0308_0011(pLCEntry , (PS_CloseLogicalChannel)((uint8*)pParameter)) ; |
| break ; |
| } |
| } |
| break ; |
| case EVENT_MSG_LCBLC_CL_ACK : /* CloseLogicalChannelAck */ |
| Print("Received LCBLC CloseLogicalChannelAck\n"); |
| pLCEntry = LCBLCOutgoing.GetLCEntry(((PS_CloseLogicalChannelAck)((uint8*)pParameter))->forwardLogicalChannelNumber) ; |
| if (pLCEntry == NULL) |
| { |
| ItnErrNotificationSend(ITN_ERR_CODE_0002 , EVENT_LCSE) ; |
| break; |
| } |
| else |
| { |
| Print(" Using existing Logical Channel Entry : Outgoing %d %d\n", pLCEntry->FwdLcnRead(), pLCEntry->RvsLcnRead()); |
| } |
| /* Uni-Directional and Bi-Directional Logical Channel Status Read ( Each Logical Channel Number ) */ |
| Se_Status = pLCEntry->StatusRead(); |
| if (pLCEntry->DirectionalRead() == UNI_DIRECTIONAL) /* Uni-Directional */ |
| { |
| Print(" Channel Uni-Directional\n"); |
| switch (Se_Status) /* Uni-Directional Logical Channel Status Read */ |
| { |
| case LCBLC_OUTGOING_RLSED : /* Outgoing Released */ |
| case LCBLC_OUTGOING_AWTING_ETBMNT : /* Outgoing Awaiting Establishment */ |
| Nop_XXXX_XXXX() ; |
| break ; |
| case LCBLC_OUTGOING_ETBED : /* Outgoing Established */ |
| MyLC._0209_0020(pLCEntry , (PS_CloseLogicalChannelAck)((uint8*)pParameter)) ; |
| break ; |
| case LCBLC_OUTGOING_AWTING_RLS : /* Outgoing Awaiting Release */ |
| MyLC._0209_0030(pLCEntry , (PS_CloseLogicalChannelAck)((uint8*)pParameter)) ; |
| break ; |
| case LCBLC_INCOMING_RLSED : /* Incoming Released */ |
| case LCBLC_INCOMING_AWTING_ETBMNT : /* Incoming Awaiting Establishment */ |
| case LCBLC_INCOMING_AWTING_CNFMTN : /* Incoming Awaiting Confirmation */ |
| case LCBLC_INCOMING_ETBED : /* Incoming Established */ |
| /* Internal Error Notification ( To TSC ) */ |
| ItnErrNotificationSend(ITN_ERR_CODE_0002 , EVENT_LCSE & Se_Status) ; |
| break ; |
| } |
| } |
| else /* Bi-Directional */ |
| { |
| Print(" Channel Bi-Directional\n"); |
| switch (Se_Status) /* Bi-Directional Logical Channel Status Read */ |
| { |
| case LCBLC_OUTGOING_RLSED : /* Outgoing Released */ |
| case LCBLC_OUTGOING_AWTING_ETBMNT : /* Outgoing Awaiting Establishment */ |
| Nop_XXXX_XXXX() ; |
| break ; |
| case LCBLC_OUTGOING_ETBED : /* Outgoing Established */ |
| MyBLC._0309_0020(pLCEntry , (PS_CloseLogicalChannelAck)((uint8*)pParameter)) ; |
| break ; |
| case LCBLC_OUTGOING_AWTING_RLS : /* Outgoing Awaiting Release */ |
| MyBLC._0309_0030(pLCEntry , (PS_CloseLogicalChannelAck)((uint8*)pParameter)) ; |
| break ; |
| case LCBLC_INCOMING_RLSED : /* Incoming Released */ |
| case LCBLC_INCOMING_AWTING_ETBMNT : /* Incoming Awaiting Establishment */ |
| case LCBLC_INCOMING_AWTING_CNFMTN : /* Incoming Awaiting Confirmation */ |
| case LCBLC_INCOMING_ETBED : /* Incoming Established */ |
| /* Internal Error Notification ( To TSC ) */ |
| ItnErrNotificationSend(ITN_ERR_CODE_0002 , EVENT_BLCSE & Se_Status) ; |
| break ; |
| } |
| } |
| break ; |
| } |
| break ; |
| |
| case EVENT_CLCSE : /* Close Logical Channel Signalling Entity */ |
| /* Close Logical channel Status Read */ |
| pLCEntry = NULL; |
| switch (Event_No) /* Event No Check */ |
| { |
| case EVENT_PTV_CLC_CLS_REQ : /* CLOSE.request */ |
| Print("Received CLC Close.Request\n"); |
| lcn = Supplement_1; |
| pLCEntry = LCBLCIncoming.GetLCEntry(lcn); |
| if (pLCEntry == NULL) |
| { |
| ItnErrNotificationSend(ITN_ERR_CODE_0002 , EVENT_LCSE) ; |
| break; |
| } |
| else |
| { |
| Print(" Using existing Logical Channel Entry : Incoming %d %d\n", pLCEntry->FwdLcnRead(), pLCEntry->RvsLcnRead()); |
| } |
| Se_Status = pLCEntry->ClcStatusRead(); |
| switch (Se_Status) /* Close Logical Chennel Status Check */ |
| { |
| case CLS_OUTGOING_IDLE : /* Outgoing Idle */ |
| MyCLC._0400_0000(pLCEntry) ; |
| break ; |
| case CLS_OUTGOING_AWTING_RPS : /* Outgoing Awaiting Response */ |
| break ; |
| case CLS_INCOMING_IDLE : /* Incoming Idle */ |
| break ; |
| case CLS_INCOMING_AWTING_RPS : /* Incoming Awaiting Response */ |
| break ; |
| } |
| break ; |
| case EVENT_MSG_CLC : /* RequestChannelClose */ |
| Print("Received CLC RequestChannelClose\n"); |
| lcn = ((PS_RequestChannelClose)((uint8*)pParameter))->forwardLogicalChannelNumber; |
| pLCEntry = LCBLCOutgoing.GetLCEntry(lcn); |
| if (pLCEntry == NULL) |
| { |
| ItnErrNotificationSend(ITN_ERR_CODE_0002 , EVENT_LCSE) ; |
| break; |
| } |
| else |
| { |
| Print(" Using existing Logical Channel Entry : Outgoing %d %d\n", pLCEntry->FwdLcnRead(), pLCEntry->RvsLcnRead()); |
| } |
| Se_Status = pLCEntry->ClcStatusRead(); |
| switch (Se_Status) /* Close Logical Chennel Status Check */ |
| { |
| case CLS_OUTGOING_IDLE : /* Outgoing Idle */ |
| break ; |
| case CLS_OUTGOING_AWTING_RPS : /* Outgoing Awaiting Response */ |
| break ; |
| case CLS_INCOMING_IDLE : /* Incoming Idle */ |
| MyCLC._0401_0001(pLCEntry) ; |
| break ; |
| case CLS_INCOMING_AWTING_RPS : /* Incoming Awaiting Response */ |
| MyCLC._0401_0011(pLCEntry) ; |
| break ; |
| } |
| break ; |
| case EVENT_PTV_CLC_CLS_RPS : /* CLOSE.response */ |
| Print("Received CLC Close.Response\n"); |
| lcn = Supplement_1; |
| pLCEntry = LCBLCOutgoing.GetLCEntry(lcn); |
| if (pLCEntry == NULL) |
| { |
| ItnErrNotificationSend(ITN_ERR_CODE_0002 , EVENT_LCSE) ; |
| break; |
| } |
| else |
| { |
| Print(" Using existing Logical Channel Entry : Outgoing %d %d\n", pLCEntry->FwdLcnRead(), pLCEntry->RvsLcnRead()); |
| } |
| Se_Status = pLCEntry->ClcStatusRead(); |
| switch (Se_Status) /* Close Logical Chennel Status Check */ |
| { |
| case CLS_OUTGOING_IDLE : /* Outgoing Idle */ |
| break ; |
| case CLS_OUTGOING_AWTING_RPS : /* Outgoing Awaiting Response */ |
| break ; |
| case CLS_INCOMING_IDLE : /* Incoming Idle */ |
| break ; |
| case CLS_INCOMING_AWTING_RPS : /* Incoming Awaiting Response */ |
| MyCLC._0402_0011(pLCEntry) ; |
| break ; |
| } |
| break ; |
| case EVENT_PTV_CLC_RJT_REQ : /* REJECT.request */ |
| Print("Received CLC Reject.Request\n"); |
| lcn = Supplement_1; |
| pLCEntry = LCBLCOutgoing.GetLCEntry(lcn); |
| if (pLCEntry == NULL) |
| { |
| ItnErrNotificationSend(ITN_ERR_CODE_0002 , EVENT_LCSE) ; |
| break; |
| } |
| else |
| { |
| Print(" Using existing Logical Channel Entry : Outgoing %d %d\n", pLCEntry->FwdLcnRead(), pLCEntry->RvsLcnRead()); |
| } |
| Se_Status = pLCEntry->ClcStatusRead(); |
| switch (Se_Status) /* Close Logical Chennel Status Check */ |
| { |
| case CLS_OUTGOING_IDLE : /* Outgoing Idle */ |
| break ; |
| case CLS_OUTGOING_AWTING_RPS : /* Outgoing Awaiting Response */ |
| break ; |
| case CLS_INCOMING_IDLE : /* Incoming Idle */ |
| break ; |
| case CLS_INCOMING_AWTING_RPS : /* Incoming Awaiting Response */ |
| MyCLC._0403_0011(pLCEntry, (PS_RccRejectCause)((uint8*)pParameter)) ; |
| break ; |
| } |
| break ; |
| case EVENT_MSG_CLC_ACK : /* RequestChannelCloseAck */ |
| Print("Received CLC RequestChannelCloseAck\n"); |
| lcn = ((PS_RequestChannelCloseAck)((uint8*)pParameter))->forwardLogicalChannelNumber; |
| pLCEntry = LCBLCIncoming.GetLCEntry(lcn); |
| if (pLCEntry == NULL) |
| { |
| ItnErrNotificationSend(ITN_ERR_CODE_0002 , EVENT_LCSE) ; |
| break; |
| } |
| else |
| { |
| Print(" Using existing Logical Channel Entry : Incoming %d %d\n", pLCEntry->FwdLcnRead(), pLCEntry->RvsLcnRead()); |
| } |
| Se_Status = pLCEntry->ClcStatusRead(); |
| switch (Se_Status) /* Close Logical Chennel Status Check */ |
| { |
| case CLS_OUTGOING_IDLE : /* Outgoing Idle */ |
| break ; |
| case CLS_OUTGOING_AWTING_RPS : /* Outgoing Awaiting Response */ |
| MyCLC._0404_0010(pLCEntry) ; |
| break ; |
| case CLS_INCOMING_IDLE : /* Incoming Idle */ |
| break ; |
| case CLS_INCOMING_AWTING_RPS : /* Incoming Awaiting Response */ |
| break ; |
| } |
| break ; |
| case EVENT_MSG_CLC_RJT : /* RequestChannelCloseReject */ |
| Print("Received CLC RequestChannelCloseReject\n"); |
| lcn = ((PS_RequestChannelCloseReject)((uint8*)pParameter))->forwardLogicalChannelNumber; |
| pLCEntry = LCBLCIncoming.GetLCEntry(lcn); |
| if (pLCEntry == NULL) |
| { |
| ItnErrNotificationSend(ITN_ERR_CODE_0002 , EVENT_LCSE) ; |
| break; |
| } |
| else |
| { |
| Print(" Using existing Logical Channel Entry : Incoming %d %d\n", pLCEntry->FwdLcnRead(), pLCEntry->RvsLcnRead()); |
| } |
| Se_Status = pLCEntry->ClcStatusRead(); |
| switch (Se_Status) /* Close Logical Chennel Status Check */ |
| { |
| case CLS_OUTGOING_IDLE : /* Outgoing Idle */ |
| break ; |
| case CLS_OUTGOING_AWTING_RPS : /* Outgoing Awaiting Response */ |
| MyCLC._0405_0010(pLCEntry, (PS_RequestChannelCloseReject)((uint8*)pParameter)) ; |
| break ; |
| case CLS_INCOMING_IDLE : /* Incoming Idle */ |
| break ; |
| case CLS_INCOMING_AWTING_RPS : /* Incoming Awaiting Response */ |
| break ; |
| } |
| break ; |
| case EVENT_TIM_CLC_T108 : /* Timer T108 Timeout */ |
| Print("Received CLC Timeout T108\n"); |
| lcn = Supplement_2; |
| pLCEntry = LCBLCIncoming.GetLCEntry(lcn); |
| if (pLCEntry == NULL) |
| { |
| ItnErrNotificationSend(ITN_ERR_CODE_0002 , EVENT_LCSE) ; |
| break; |
| } |
| else |
| { |
| Print(" Using existing Logical Channel Entry : Incoming %d %d\n", pLCEntry->FwdLcnRead(), pLCEntry->RvsLcnRead()); |
| } |
| Se_Status = pLCEntry->ClcStatusRead(); |
| switch (Se_Status) /* Close Logical Chennel Status Check */ |
| { |
| case CLS_OUTGOING_IDLE : /* Outgoing Idle */ |
| break ; |
| case CLS_OUTGOING_AWTING_RPS : /* Outgoing Awaiting Response */ |
| MyCLC._0406_0010(pLCEntry, Supplement_1) ; |
| break ; |
| case CLS_INCOMING_IDLE : /* Incoming Idle */ |
| break ; |
| case CLS_INCOMING_AWTING_RPS : /* Incoming Awaiting Response */ |
| break ; |
| } |
| break ; |
| case EVENT_MSG_CLC_RLS : /* RequestChannelCloseRelease */ |
| Print("Received CLC RequestChannelCloseRelease\n"); |
| lcn = ((PS_RequestChannelCloseRelease)((uint8*)pParameter))->forwardLogicalChannelNumber; |
| pLCEntry = LCBLCOutgoing.GetLCEntry(lcn); |
| if (pLCEntry == NULL) |
| { |
| ItnErrNotificationSend(ITN_ERR_CODE_0002 , EVENT_LCSE) ; |
| break; |
| } |
| else |
| { |
| Print(" Using existing Logical Channel Entry : Outgoing %d %d\n", pLCEntry->FwdLcnRead(), pLCEntry->RvsLcnRead()); |
| } |
| Se_Status = pLCEntry->ClcStatusRead(); |
| switch (Se_Status) /* Close Logical Chennel Status Check */ |
| { |
| case CLS_OUTGOING_IDLE : /* Outgoing Idle */ |
| break ; |
| case CLS_OUTGOING_AWTING_RPS : /* Outgoing Awaiting Response */ |
| break ; |
| case CLS_INCOMING_IDLE : /* Incoming Idle */ |
| break ; |
| case CLS_INCOMING_AWTING_RPS : /* Incoming Awaiting Response */ |
| MyCLC._0407_0011(pLCEntry) ; |
| break ; |
| } |
| break ; |
| } |
| break ; |
| case EVENT_MTSE : /* Multiplex Table Signalling Entity */ |
| /* Multiplex Table Status Read */ |
| Se_Status2 = MyMT.StatusRead2() ; /* WWU_H245_TWOWAY */ |
| switch (Event_No) /* Event No Check */ |
| { |
| case EVENT_PTV_MT_TRF_REQ : /* TRANSFER.request */ |
| Print("Received MT Transfer.Request\n"); |
| MyMT.TransferRequest((PS_MuxDescriptor)((uint8*)pParameter)) ; |
| break ; |
| case EVENT_MSG_MT : /* MultiplexEntrySend */ |
| Print("Received MT MultiplexEntrySend\n"); |
| switch (Se_Status2) /* Multiplex Table Status Check */ |
| { |
| case MT_INCOMING_IDLE : /* Incoming Idle */ |
| MyMT._0501_0001((PS_MultiplexEntrySend)((uint8*)pParameter)) ; |
| break ; |
| case MT_INCOMING_AWTING_RPS : /* Incoming Awaiting Response */ |
| MyMT._0501_0011((PS_MultiplexEntrySend)((uint8*)pParameter)) ; |
| break ; |
| } |
| break ; |
| case EVENT_PTV_MT_TRF_RPS : /* TRANSFER.response */ |
| Print("Received MT Transfer.Response\n"); |
| switch (Se_Status2) /* Multiplex Table Status Check */ |
| { |
| case MT_INCOMING_IDLE : /* Incoming Idle */ |
| /* Internal Error Notification ( To TSC ) */ |
| ItnErrNotificationSend(ITN_ERR_CODE_0002 , Event_No & Se_Status2) ; |
| break ; |
| case MT_INCOMING_AWTING_RPS : /* Incoming Awaiting Response */ |
| MyMT._0502_0011(Supplement_1, (PS_MuxDescriptor)((uint8*)pParameter)) ; |
| break ; |
| } |
| break ; |
| case EVENT_PTV_MT_RJT_REQ : /* REJECT.request */ |
| Print("Received MT Reject.Request\n"); |
| switch (Se_Status2) /* Multiplex Table Status Check */ |
| { |
| case MT_OUTGOING_IDLE : /* Outgoing Idle */ |
| case MT_OUTGOING_AWTING_RPS : /* Outgoing Awaiting Response */ |
| case MT_INCOMING_IDLE : /* Incoming Idle */ |
| /* Internal Error Notification ( To TSC ) */ |
| ItnErrNotificationSend(ITN_ERR_CODE_0002 , Event_No & Se_Status2) ; |
| break ; |
| case MT_INCOMING_AWTING_RPS : /* Incoming Awaiting Response */ |
| MyMT._0503_0011((PS_MeRejectCause)((uint8*)pParameter)) ; |
| break ; |
| } |
| break ; |
| case EVENT_MSG_MT_ACK : /* MultiplexEntrySendAck */ |
| Print("Received MT MultiplexEntrySendAck\n"); |
| MyMT.MultiplexEntrySendAck((PS_MultiplexEntrySendAck)((uint8*)pParameter)) ; |
| break ; |
| case EVENT_MSG_MT_RJT : /* MultiplexEntrySendReject */ |
| Print("Received MT MultiplexEntrySendReject\n"); |
| MyMT.MultiplexEntrySendReject((PS_MultiplexEntrySendReject)((uint8*)pParameter)); |
| break ; |
| case EVENT_MSG_MT_RLS : /* MultiplexEntrySendRelease */ |
| Print("Received MT MultiplexEntrySendRelease\n"); |
| switch (Se_Status2) /* Multiplex Table Status Check */ |
| { |
| case MT_OUTGOING_IDLE : /* Outgoing Idle */ |
| case MT_OUTGOING_AWTING_RPS : /* Outgoing Awaiting Response */ |
| /* Internal Error Notification ( To TSC ) */ |
| ItnErrNotificationSend(ITN_ERR_CODE_0002 , Event_No & Se_Status2) ; |
| break ; |
| case MT_INCOMING_IDLE : /* Incoming Idle */ |
| Nop_XXXX_XXXX() ; |
| break ; |
| case MT_INCOMING_AWTING_RPS : /* Incoming Awaiting Response */ |
| MyMT._0507_0011() ; |
| break ; |
| } |
| break ; |
| } |
| break ; |
| case EVENT_RMESE : /* Request Multiplex Entry Signalling Entity */ |
| /* Request Multiplex Entry Status Read */ |
| Se_Status = MyRME.StatusRead() ; |
| Se_Status2 = MyRME.StatusRead2() ; /* H245_TWOWAY */ |
| /* Note: Se_Status is OUTGOING, Se_Status2 is INCOMING */ |
| switch (Event_No) /* Event No Check */ |
| { |
| case EVENT_PTV_RME_SEND_REQ : /* SEND.request */ |
| Print("Received RME Send.Request\n"); |
| switch (Se_Status) /* Request Multiplex Entry Status Check */ |
| { |
| case RME_OUTGOING_IDLE : /* Outgoing Idle */ |
| MyRME._0600_0000() ; |
| break ; |
| case RME_OUTGOING_AWTING_RPS : /* Outgoing Awaitimg Response */ |
| break ; |
| case RME_INCOMING_IDLE : /* Incoming Idle */ |
| break ; |
| case RME_INCOMING_AWTING_RPS : /* Incoming Awaiting Response */ |
| break ; |
| } |
| break ; |
| case EVENT_MSG_RME : /* RequestMultiplexEntry */ |
| Print("Received RME RequestMultiplexEntry\n"); |
| switch (Se_Status2) /* Request Multiplex Entry Status Check */ |
| { |
| case RME_OUTGOING_IDLE : /* Outgoing Idle */ |
| break ; |
| case RME_OUTGOING_AWTING_RPS : /* Outgoing Awaitimg Response */ |
| break ; |
| case RME_INCOMING_IDLE : /* Incoming Idle */ |
| MyRME._0601_0001((PS_RequestMultiplexEntry)((uint8*)pParameter)) ; |
| break ; |
| case RME_INCOMING_AWTING_RPS : /* Incoming Awaiting Response */ |
| MyRME._0601_0011((PS_RequestMultiplexEntry)((uint8*)pParameter)) ; |
| break ; |
| } |
| break ; |
| case EVENT_PTV_RME_SEND_RPS : /* SEND.responsse */ |
| Print("Received RME Send.Response\n"); |
| switch (Se_Status2) /* Request Multiplex Entry Status Check */ |
| { |
| case RME_OUTGOING_IDLE : /* Outgoing Idle */ |
| break ; |
| case RME_OUTGOING_AWTING_RPS : /* Outgoing Awaitimg Response */ |
| break ; |
| case RME_INCOMING_IDLE : /* Incoming Idle */ |
| break ; |
| case RME_INCOMING_AWTING_RPS : /* Incoming Awaiting Response */ |
| MyRME._0602_0011() ; |
| break ; |
| } |
| break ; |
| case EVENT_PTV_RME_RJT_REQ : /* REJECT.request */ |
| Print("Received RME Reject.Request\n"); |
| switch (Se_Status2) /* Request Multiplex Entry Status Check */ |
| { |
| case RME_OUTGOING_IDLE : /* Outgoing Idle */ |
| break ; |
| case RME_OUTGOING_AWTING_RPS : /* Outgoing Awaitimg Response */ |
| break ; |
| case RME_INCOMING_IDLE : /* Incoming Idle */ |
| break ; |
| case RME_INCOMING_AWTING_RPS : /* Incoming Awaiting Response */ |
| MyRME._0603_0011((PS_RmeRejectCause)((uint8*)pParameter)) ; |
| break ; |
| } |
| break ; |
| case EVENT_MSG_RME_ACK : /* RequestMultiplexEntryAck */ |
| Print("Received RME RequestMultiplexEntryAck\n"); |
| switch (Se_Status) /* Request Multiplex Entry Status Check */ |
| { |
| case RME_OUTGOING_IDLE : /* Outgoing Idle */ |
| break ; |
| case RME_OUTGOING_AWTING_RPS : /* Outgoing Awaitimg Response */ |
| MyRME._0604_0010((PS_RequestMultiplexEntryAck)((uint8*)pParameter)) ; |
| break ; |
| case RME_INCOMING_IDLE : /* Incoming Idle */ |
| break ; |
| case RME_INCOMING_AWTING_RPS : /* Incoming Awaiting Response */ |
| break ; |
| } |
| break ; |
| case EVENT_MSG_RME_RJT : /* RequestMultiplexEntryReject */ |
| Print("Received RME RequestMultiplexEntryReject\n"); |
| switch (Se_Status) /* Request Multiplex Entry Status Check */ |
| { |
| case RME_OUTGOING_IDLE : /* Outgoing Idle */ |
| break ; |
| case RME_OUTGOING_AWTING_RPS : /* Outgoing Awaitimg Response */ |
| MyRME._0605_0010((PS_RequestMultiplexEntryReject)((uint8*)pParameter)) ; |
| break ; |
| case RME_INCOMING_IDLE : /* Incoming Idle */ |
| break ; |
| case RME_INCOMING_AWTING_RPS : /* Incoming Awaiting Response */ |
| break ; |
| } |
| break ; |
| case EVENT_TIM_RME_T107 : /* Timer T107 Timeout */ |
| Print("Received RME Timeout T107\n"); |
| switch (Se_Status) /* Request Multiplex Entry Status Check */ |
| { |
| case RME_OUTGOING_IDLE : /* Outgoing Idle */ |
| break ; |
| case RME_OUTGOING_AWTING_RPS : /* Outgoing Awaitimg Response */ |
| MyRME._0606_0010(Supplement_1) ; |
| break ; |
| case RME_INCOMING_IDLE : /* Incoming Idle */ |
| break ; |
| case RME_INCOMING_AWTING_RPS : /* Incoming Awaiting Response */ |
| break ; |
| } |
| break ; |
| case EVENT_MSG_RME_RLS : /* RequestMultiplexEntryRelease */ |
| Print("Received RME RequestMultiplexEntryRelease\n"); |
| switch (Se_Status2) /* Request Multiplex Entry Status Check */ |
| { |
| case RME_OUTGOING_IDLE : /* Outgoing Idle */ |
| break ; |
| case RME_OUTGOING_AWTING_RPS : /* Outgoing Awaitimg Response */ |
| break ; |
| case RME_INCOMING_IDLE : /* Incoming Idle */ |
| break ; |
| case RME_INCOMING_AWTING_RPS : /* Incoming Awaiting Response */ |
| MyRME._0607_0011((PS_RequestMultiplexEntryRelease)((uint8*)pParameter)) ; |
| break ; |
| } |
| break ; |
| } |
| break ; |
| case EVENT_MRSE : /* Mode Request Signalling Entry */ |
| /* Mode Request Status Read */ |
| Se_Status = MyMR.StatusRead() ; |
| Se_Status2 = MyMR.StatusRead2() ; |
| switch (Event_No) /* Event No Check */ |
| { |
| case EVENT_PTV_MR_TRF_REQ : /* TRANSFER.request */ |
| Print("Received MR Transfer.Request\n"); |
| switch (Se_Status) /* Mode Request Status Check */ |
| { |
| case MR_OUTGOING_IDLE : /* OutGoing Idle */ |
| MyMR._0700_0000((PS_RequestMode)((uint8*)pParameter)) ; |
| break ; |
| case MR_OUTGOING_AWTING_RPS : /* Outgoing Awaiting Response */ |
| MyMR._0700_0010((PS_RequestMode)((uint8*)pParameter)) ; |
| break ; |
| case MR_INCOMING_IDLE : /* Incoming Idle */ |
| break ; |
| case MR_INCOMING_AWTING_RPS : /* Incoming Awaiting Response */ |
| break ; |
| } |
| break ; |
| case EVENT_MSG_MR : /* RequestMode */ |
| Print("Received MR RequestMode\n"); |
| switch (Se_Status2) /* Mode Request Status Check */ |
| { |
| case MR_OUTGOING_IDLE : /* OutGoing Idle */ |
| break ; |
| case MR_OUTGOING_AWTING_RPS : /* Outgoing Awaiting Response */ |
| break ; |
| case MR_INCOMING_IDLE : /* Incoming Idle */ |
| MyMR._0701_0001((PS_RequestMode)((uint8*)pParameter)) ; |
| break ; |
| case MR_INCOMING_AWTING_RPS : /* Incoming Awaiting Response */ |
| MyMR._0701_0011((PS_RequestMode)((uint8*)pParameter)) ; |
| break ; |
| } |
| break ; |
| case EVENT_PTV_MR_TRF_RPS : /* TRANSFER.response */ |
| Print("Received MR Transfer.Response\n"); |
| switch (Se_Status2) /* Mode Request Status Check */ |
| { |
| case MR_OUTGOING_IDLE : /* OutGoing Idle */ |
| break ; |
| case MR_OUTGOING_AWTING_RPS : /* Outgoing Awaiting Response */ |
| break ; |
| case MR_INCOMING_IDLE : /* Incoming Idle */ |
| break ; |
| case MR_INCOMING_AWTING_RPS : /* Incoming Awaiting Response */ |
| MyMR._0702_0011((PS_Response)((uint8*)pParameter)) ; |
| break ; |
| } |
| break ; |
| case EVENT_PTV_MR_RJT_REQ : /* REJECT.request */ |
| Print("Received MR Reject.Request\n"); |
| switch (Se_Status2) /* Mode Request Status Check */ |
| { |
| case MR_OUTGOING_IDLE : /* OutGoing Idle */ |
| break ; |
| case MR_OUTGOING_AWTING_RPS : /* Outgoing Awaiting Response */ |
| break ; |
| case MR_INCOMING_IDLE : /* Incoming Idle */ |
| break ; |
| case MR_INCOMING_AWTING_RPS : /* Incoming Awaiting Response */ |
| MyMR._0703_0011((PS_RmRejectCause)((uint8*)pParameter)) ; |
| break ; |
| } |
| break ; |
| case EVENT_MSG_MR_ACK : /* RequestModeAck */ |
| Print("Received MR RequestModeAck\n"); |
| switch (Se_Status) /* Mode Request Status Check */ |
| { |
| case MR_OUTGOING_IDLE : /* OutGoing Idle */ |
| break ; |
| case MR_OUTGOING_AWTING_RPS : /* Outgoing Awaiting Response */ |
| MyMR._0704_0010((PS_RequestModeAck)((uint8*)pParameter)) ; |
| break ; |
| case MR_INCOMING_IDLE : /* Incoming Idle */ |
| break ; |
| case MR_INCOMING_AWTING_RPS : /* Incoming Awaiting Response */ |
| break ; |
| } |
| break ; |
| case EVENT_MSG_MR_RJT : /* RequestModeReject */ |
| Print("Received MR RequestModeReject\n"); |
| switch (Se_Status) /* Mode Request Status Check */ |
| { |
| case MR_OUTGOING_IDLE : /* OutGoing Idle */ |
| break ; |
| case MR_OUTGOING_AWTING_RPS : /* Outgoing Awaiting Response */ |
| MyMR._0705_0010((PS_RequestModeReject)((uint8*)pParameter)) ; |
| break ; |
| case MR_INCOMING_IDLE : /* Incoming Idle */ |
| break ; |
| case MR_INCOMING_AWTING_RPS : /* Incoming Awaiting Response */ |
| break ; |
| } |
| break ; |
| case EVENT_TIM_MR_T109 : /* Timer T109 Timeout */ |
| Print("Received MR Timeout T109\n"); |
| switch (Se_Status) /* Mode Request Status Check */ |
| { |
| case MR_OUTGOING_IDLE : /* OutGoing Idle */ |
| break ; |
| case MR_OUTGOING_AWTING_RPS : /* Outgoing Awaiting Response */ |
| MyMR._0706_0010(Supplement_1) ; |
| break ; |
| case MR_INCOMING_IDLE : /* Incoming Idle */ |
| break ; |
| case MR_INCOMING_AWTING_RPS : /* Incoming Awaiting Response */ |
| break ; |
| } |
| break ; |
| case EVENT_MSG_MR_RLS : /* RequestModeReject */ |
| Print("Received MR RequestModeReject\n"); |
| switch (Se_Status2) /* Mode Request Status Check */ |
| { |
| case MR_OUTGOING_IDLE : /* OutGoing Idle */ |
| break ; |
| case MR_OUTGOING_AWTING_RPS : /* Outgoing Awaiting Response */ |
| break ; |
| case MR_INCOMING_IDLE : /* Incoming Idle */ |
| break ; |
| case MR_INCOMING_AWTING_RPS : /* Incoming Awaiting Response */ |
| MyMR._0707_0011() ; |
| break ; |
| } |
| break ; |
| } |
| break ; |
| case EVENT_RTDSE : /* Round Trip Delay Signaling Entity */ |
| /* Round Trip Delay Status Read */ |
| Se_Status = MyRTD.StatusRead() ; |
| switch (Event_No) /* Event No Check */ |
| { |
| case EVENT_PTV_RTD_TRF_REQ : /* TRANSFER.request */ |
| Print("Received RTD Transfer.Request\n"); |
| switch (Se_Status) /* Round Trip Delay Status Check */ |
| { |
| case RTD_IDLE : /* Idle */ |
| MyRTD._0800_0000() ; |
| break ; |
| case RTD_AWTING_RPS : /* Awaiting Response */ |
| MyRTD._0800_0010() ; |
| break ; |
| } |
| break ; |
| case EVENT_MSG_RTD_REQ : /* RoundTripDelayRequest */ |
| Print("Received RTD RoundTripDelayRequest\n"); |
| switch (Se_Status) /* Round Trip Delay Status Check */ |
| { |
| case RTD_IDLE : /* Idle */ |
| case RTD_AWTING_RPS : /* Awaiting Response */ |
| MyRTD._0801_0000((PS_RoundTripDelayRequest)((uint8*)pParameter)) ; |
| break ; |
| } |
| break ; |
| case EVENT_MSG_RTD_RPS : /* RoundTripDelayResponse */ |
| Print("Received RTD RoundTripDelayResponse\n"); |
| switch (Se_Status) /* Round Trip Delay Status Check */ |
| { |
| case RTD_IDLE : /* Idle */ |
| break ; |
| case RTD_AWTING_RPS : /* Awaiting Response */ |
| MyRTD._0802_0010((PS_RoundTripDelayResponse)((uint8*)pParameter)) ; |
| break ; |
| } |
| break ; |
| case EVENT_TIM_RTD_T105 : /* Timer T105 Timeout */ |
| Print("Received RTD Timeout T105\n"); |
| switch (Se_Status) /* Round Trip Delay Status Check */ |
| { |
| case RTD_IDLE : /* Idle */ |
| break ; |
| case RTD_AWTING_RPS : /* Awaiting Response */ |
| MyRTD._0803_0010(Supplement_1) ; |
| break ; |
| } |
| break ; |
| } |
| break ; |
| case EVENT_MLSE : /* Maintenance Loop Signalling Entity */ |
| /* Maintenance Loop Status Read */ |
| Se_Status = MyML.StatusRead() ; |
| switch (Event_No) /* Event No Check */ |
| { |
| case EVENT_PTV_ML_LOOP_REQ : /* LOOP.request */ |
| switch (Se_Status) /* Maintenance Loop Status Check */ |
| { |
| case ML_OUTGOING_NOT_LOOPED : /* Outgoing Not Looped */ |
| MyML._0900_0000((PS_MlRequestType)((uint8*)pParameter)) ; |
| break ; |
| case ML_OUTGOING_AWTING_RPS : /* Outgoing Awaiting Response */ |
| break ; |
| case ML_OUTGOING_LOOPED : /* Outgoing Looped */ |
| break ; |
| case ML_INCOMING_NOT_LOOPED : /* Incoming Not Looped */ |
| break ; |
| case ML_INCOMING_AWTING_RPS : /* Incoming Awaiting Response */ |
| break ; |
| case ML_INCOMING_LOOPED : /* Incoming Looped */ |
| break ; |
| } |
| break ; |
| case EVENT_PTV_ML_RLS_REQ : /* RELEASE.request */ |
| switch (Se_Status) /* Maintenance Loop Status Check */ |
| { |
| case ML_OUTGOING_NOT_LOOPED : /* Outgoing Not Looped */ |
| break ; |
| case ML_OUTGOING_AWTING_RPS : /* Outgoing Awaiting Response */ |
| MyML._0901_0010((PS_MlRejectCause)((uint8*)pParameter)) ; |
| break ; |
| case ML_OUTGOING_LOOPED : /* Outgoing Looped */ |
| MyML._0901_0020((PS_MlRejectCause)((uint8*)pParameter)) ; |
| break ; |
| case ML_INCOMING_NOT_LOOPED : /* Incoming Not Looped */ |
| break ; |
| case ML_INCOMING_AWTING_RPS : /* Incoming Awaiting Response */ |
| MyML._0901_0011((PS_MlRejectCause)((uint8*)pParameter)) ; |
| break ; |
| case ML_INCOMING_LOOPED : /* Incoming Looped */ |
| break ; |
| } |
| break ; |
| case EVENT_MSG_ML_REQ : /* MaintenanceLoopRequest */ |
| switch (Se_Status) /* Maintenance Loop Status Check */ |
| { |
| case ML_OUTGOING_NOT_LOOPED : /* Outgoing Not Looped */ |
| break ; |
| case ML_OUTGOING_AWTING_RPS : /* Outgoing Awaiting Response */ |
| break ; |
| case ML_OUTGOING_LOOPED : /* Outgoing Looped */ |
| break ; |
| case ML_INCOMING_NOT_LOOPED : /* Incoming Not Looped */ |
| MyML._0902_0001((PS_MaintenanceLoopRequest)((uint8*)pParameter)) ; |
| break ; |
| case ML_INCOMING_AWTING_RPS : /* Incoming Awaiting Response */ |
| case ML_INCOMING_LOOPED : /* Incoming Looped */ |
| MyML._0902_0011((PS_MaintenanceLoopRequest)((uint8*)pParameter)) ; |
| break ; |
| } |
| break ; |
| case EVENT_PTV_ML_LOOP_RPS : /* LOOP.response */ |
| switch (Se_Status) /* Maintenance Loop Status Check */ |
| { |
| case ML_OUTGOING_NOT_LOOPED : /* Outgoing Not Looped */ |
| break ; |
| case ML_OUTGOING_AWTING_RPS : /* Outgoing Awaiting Response */ |
| break ; |
| case ML_OUTGOING_LOOPED : /* Outgoing Looped */ |
| break ; |
| case ML_INCOMING_NOT_LOOPED : /* Incoming Not Looped */ |
| break ; |
| case ML_INCOMING_AWTING_RPS : /* Incoming Awaiting Response */ |
| MyML._0903_0011() ; |
| break ; |
| case ML_INCOMING_LOOPED : /* Incoming Looped */ |
| break ; |
| } |
| break ; |
| case EVENT_MSG_ML_ACK : /* MaintenanceLoopAck */ |
| switch (Se_Status) /* Maintenance Loop Status Check */ |
| { |
| case ML_OUTGOING_NOT_LOOPED : /* Outgoing Not Looped */ |
| break ; |
| case ML_OUTGOING_AWTING_RPS : /* Outgoing Awaiting Response */ |
| MyML._0904_0010((PS_MaintenanceLoopAck)((uint8*)pParameter)) ; |
| break ; |
| case ML_OUTGOING_LOOPED : /* Outgoing Looped */ |
| break ; |
| case ML_INCOMING_NOT_LOOPED : /* Incoming Not Looped */ |
| break ; |
| case ML_INCOMING_AWTING_RPS : /* Incoming Awaiting Response */ |
| break ; |
| case ML_INCOMING_LOOPED : /* Incoming Looped */ |
| break ; |
| } |
| break ; |
| case EVENT_MSG_ML_RJT : /* MaintenanceLoopReject */ |
| switch (Se_Status) /* Maintenance Loop Status Check */ |
| { |
| case ML_OUTGOING_NOT_LOOPED : /* Outgoing Not Looped */ |
| break ; |
| case ML_OUTGOING_AWTING_RPS : /* Outgoing Awaiting Response */ |
| MyML._0905_0010((PS_MaintenanceLoopReject)((uint8*)pParameter)) ; |
| break ; |
| case ML_OUTGOING_LOOPED : /* Outgoing Looped */ |
| MyML._0905_0020((PS_MaintenanceLoopReject)((uint8*)pParameter)) ; |
| break ; |
| case ML_INCOMING_NOT_LOOPED : /* Incoming Not Looped */ |
| break ; |
| case ML_INCOMING_AWTING_RPS : /* Incoming Awaiting Response */ |
| break ; |
| case ML_INCOMING_LOOPED : /* Incoming Looped */ |
| break ; |
| } |
| break ; |
| case EVENT_TIM_ML_T102 : /* Timer T102 Timeout */ |
| switch (Se_Status) /* Maintenance Loop Status Check */ |
| { |
| case ML_OUTGOING_NOT_LOOPED : /* Outgoing Not Looped */ |
| break ; |
| case ML_OUTGOING_AWTING_RPS : /* Outgoing Awaiting Response */ |
| MyML._0906_0010(Supplement_1) ; |
| break ; |
| case ML_OUTGOING_LOOPED : /* Outgoing Looped */ |
| break ; |
| case ML_INCOMING_NOT_LOOPED : /* Incoming Not Looped */ |
| break ; |
| case ML_INCOMING_AWTING_RPS : /* Incoming Awaiting Response */ |
| break ; |
| case ML_INCOMING_LOOPED : /* Incoming Looped */ |
| break ; |
| } |
| break ; |
| case EVENT_MSG_ML_OFF_CMD : /* MaintenanceLoopOffCommand */ |
| switch (Se_Status) /* Maintenance Loop Status Check */ |
| { |
| case ML_OUTGOING_NOT_LOOPED : /* Outgoing Not Looped */ |
| break ; |
| case ML_OUTGOING_AWTING_RPS : /* Outgoing Awaiting Response */ |
| break ; |
| case ML_OUTGOING_LOOPED : /* Outgoing Looped */ |
| break ; |
| case ML_INCOMING_NOT_LOOPED : /* Incoming Not Looped */ |
| break ; |
| case ML_INCOMING_AWTING_RPS : /* Incoming Awaiting Response */ |
| case ML_INCOMING_LOOPED : /* Incoming Looped */ |
| MyML._0907_0011() ; |
| break ; |
| } |
| break ; |
| } |
| break ; |
| case EVENT_NSD : /* Non Standard */ |
| switch (Event_No) /* Event No Check */ |
| { |
| case EVENT_PTV_NSD_REQ : /* NonStandardMessageRequest Primitive */ |
| MyNSD._1000_XXXX((PS_NonStandardMessage)((uint8*)pParameter)) ; |
| break ; |
| case EVENT_MSG_NSD_REQ : /* NonStandardMessageRequest */ |
| MyNSD._1001_XXXX((PS_NonStandardMessage)((uint8*)pParameter)) ; |
| break ; |
| case EVENT_PTV_NSD_RPS : /* NonStandardMessageResponse Primitive */ |
| MyNSD._1002_XXXX((PS_NonStandardMessage)((uint8*)pParameter)) ; |
| break ; |
| case EVENT_MSG_NSD_RPS : /* NonStandardMessageResponse */ |
| MyNSD._1003_XXXX((PS_NonStandardMessage)((uint8*)pParameter)) ; |
| break ; |
| case EVENT_PTV_NSD_CMD : /* NonStandardMessageCommand Primitive */ |
| MyNSD._1004_XXXX((PS_NonStandardMessage)((uint8*)pParameter)) ; |
| break ; |
| case EVENT_MSG_NSD_CMD : /* NonStandardMessageCommand */ |
| MyNSD._1005_XXXX((PS_NonStandardMessage)((uint8*)pParameter)) ; |
| break ; |
| case EVENT_PTV_NSD_IDC : /* NonStandardMessageIndication Primitive */ |
| MyNSD._1006_XXXX((PS_NonStandardMessage)((uint8*)pParameter)) ; |
| break ; |
| case EVENT_MSG_NSD_IDC : /* NonStandardMessageIndication */ |
| MyNSD._1007_XXXX((PS_NonStandardMessage)((uint8*)pParameter)) ; |
| break ; |
| } |
| break ; |
| case EVENT_CM : /* Communication Mode */ |
| switch (Event_No) /* Event No Check */ |
| { |
| case EVENT_PTV_CM_REQ : /* CommunicationModeRequest Primitive */ |
| MyCM._1100_XXXX((PS_CommunicationModeRequest)((uint8*)pParameter)) ; |
| break ; |
| case EVENT_MSG_CM_REQ : /* CommunicationModeRequest */ |
| MyCM._1101_XXXX((PS_CommunicationModeRequest)((uint8*)pParameter)) ; |
| break ; |
| case EVENT_PTV_CM_RPS : /* CommunicationModeResponse Primitive */ |
| MyCM._1102_XXXX((PS_CommunicationModeResponse)((uint8*)pParameter)) ; |
| break ; |
| case EVENT_MSG_CM_RPS : /* CommunicationModeResponse */ |
| MyCM._1103_XXXX((PS_CommunicationModeResponse)((uint8*)pParameter)) ; |
| break ; |
| case EVENT_PTV_CM_CMD : /* CommunicationModeCommand Primitive */ |
| MyCM._1104_XXXX((PS_CommunicationModeCommand)((uint8*)pParameter)) ; |
| break ; |
| case EVENT_MSG_CM_CMD : /* CommunicationModeCommand */ |
| MyCM._1105_XXXX((PS_CommunicationModeCommand)((uint8*)pParameter)) ; |
| break ; |
| } |
| break ; |
| case EVENT_H223AAR : /* H223 Annex A Reconfiguration */ |
| /* ---------------------------------- */ |
| /* H223AnnexAReConfiguration Removed. */ |
| /* (Not a 245 codeword) (RAN) */ |
| /* ---------------------------------- */ |
| break ; |
| case EVENT_CNF : /* Conference */ |
| switch (Event_No) /* Event No Check */ |
| { |
| case EVENT_PTV_CNF_REQ : /* ConferenceRequest Primitive */ |
| MyCNF._1300_XXXX((PS_ConferenceRequest)((uint8*)pParameter)) ; |
| break ; |
| case EVENT_MSG_CNF_REQ : /* ConferenceRequest */ |
| MyCNF._1301_XXXX((PS_ConferenceRequest)((uint8*)pParameter)) ; |
| break ; |
| case EVENT_PTV_CNF_RPS : /* ConferenceResponse Primitive */ |
| MyCNF._1302_XXXX((PS_ConferenceResponse)((uint8*)pParameter)) ; |
| break ; |
| case EVENT_MSG_CNF_RPS : /* ConferenceResponse */ |
| MyCNF._1303_XXXX((PS_ConferenceResponse)((uint8*)pParameter)) ; |
| break ; |
| } |
| break ; |
| case EVENT_CMD : /* Command */ |
| switch (Event_No) /* Event No Check */ |
| { |
| case EVENT_PTV_CMD_STCS : /* SendTerminalCapabilitySet Primitive */ |
| MyCMD._1400_XXXX((PS_SendTerminalCapabilitySet)((uint8*)pParameter)) ; |
| break ; |
| case EVENT_MSG_CMD_STCS : /* SendTerminalCapabilitySet */ |
| MyCMD._1401_XXXX((PS_SendTerminalCapabilitySet)((uint8*)pParameter)) ; |
| break ; |
| case EVENT_PTV_CMD_ECRPT : /* EncryptionCommand Primitive */ |
| MyCMD._1402_XXXX((PS_EncryptionCommand)((uint8*)pParameter)) ; |
| break ; |
| case EVENT_MSG_CMD_ECRPT : /* EncryptionCommand */ |
| MyCMD._1403_XXXX((PS_EncryptionCommand)((uint8*)pParameter)) ; |
| break ; |
| case EVENT_PTV_CMD_FC : /* FlowControlCommand Primitive */ |
| MyCMD._1404_XXXX((PS_FlowControlCommand)((uint8*)pParameter)) ; |
| break ; |
| case EVENT_MSG_CMD_FC : /* FlowControlCommand */ |
| MyCMD._1405_XXXX((PS_FlowControlCommand)((uint8*)pParameter), EncodedMsg, EncodedMsgSize) ; |
| break ; |
| case EVENT_PTV_CMD_ES : /* ENDSESSION */ |
| MyCMD._1406_XXXX((PS_EndSessionCommand)((uint8*)pParameter)) ; |
| break ; |
| case EVENT_MSG_CMD_ES : /* EndSessionCommand */ |
| MyCMD._1407_XXXX((PS_EndSessionCommand)((uint8*)pParameter)) ; |
| break ; |
| case EVENT_PTV_CMD_MSCL : /* MiscellaneousCommand Primitive */ |
| MyCMD._1408_XXXX((PS_MiscellaneousCommand)((uint8*)pParameter)) ; |
| break ; |
| case EVENT_MSG_CMD_MSCL : /* MiscellaneousCommand */ |
| MyCMD._1409_XXXX((PS_MiscellaneousCommand)((uint8*)pParameter), EncodedMsg, EncodedMsgSize) ; |
| break ; |
| case EVENT_PTV_CMD_CNF : /* ConferenceCommand Primitive */ |
| MyCMD._140A_XXXX((PS_ConferenceCommand)((uint8*)pParameter)) ; |
| break ; |
| case EVENT_MSG_CMD_CNF : /* ConferenceCommand */ |
| MyCMD._140B_XXXX((PS_ConferenceCommand)((uint8*)pParameter)) ; |
| break ; |
| case EVENT_PTV_CMD_HMR : /* H223MultiplexReconfiguration Primitive */ |
| MyCMD._140C_XXXX((PS_H223MultiplexReconfiguration)((uint8*)pParameter)) ; |
| break ; |
| case EVENT_MSG_CMD_HMR : /* H223MultiplexReconfiguration */ |
| MyCMD._140D_XXXX((PS_H223MultiplexReconfiguration)((uint8*)pParameter), EncodedMsg, EncodedMsgSize) ; |
| break ; |
| |
| } |
| break ; |
| case EVENT_IDC : /* Indication */ |
| switch (Event_No) /* Event No Check */ |
| { |
| case EVENT_PTV_IDC_FNU : /* FunctionNotUnderstood Primitive */ |
| MyIDC._1500_XXXX((PS_FunctionNotUnderstood)((uint8*)pParameter)) ; |
| break ; |
| case EVENT_MSG_IDC_FNU : /* FunctionNotUnderstood */ |
| MyIDC._1501_XXXX((PS_FunctionNotUnderstood)((uint8*)pParameter)) ; |
| break ; |
| case EVENT_PTV_IDC_MSCL : /* MiscellaneousIndication Primitive */ |
| MyIDC._1502_XXXX((PS_MiscellaneousIndication)((uint8*)pParameter)) ; |
| break ; |
| case EVENT_MSG_IDC_MSCL : /* MiscellaneousIndication */ |
| MyIDC._1503_XXXX((PS_MiscellaneousIndication)((uint8*)pParameter)) ; |
| break ; |
| case EVENT_PTV_IDC_JTR : /* JitterIndication Primitive */ |
| MyIDC._1504_XXXX((PS_JitterIndication)((uint8*)pParameter)) ; |
| break ; |
| case EVENT_MSG_IDC_JTR : /* JitterIndication */ |
| MyIDC._1505_XXXX((PS_JitterIndication)((uint8*)pParameter)) ; |
| break ; |
| case EVENT_PTV_IDC_H223SKW : /* H223SkewIndication Primitive */ |
| MyIDC._1506_XXXX((PS_H223SkewIndication)((uint8*)pParameter)) ; |
| break ; |
| case EVENT_MSG_IDC_H223SKW : /* H223SkewIndication */ |
| MyIDC._1507_XXXX((PS_H223SkewIndication)((uint8*)pParameter)) ; |
| break ; |
| case EVENT_PTV_IDC_NWATMVC : /* NewATMVCIndication Primitive */ |
| MyIDC._1508_XXXX((PS_NewATMVCIndication)((uint8*)pParameter)) ; |
| break ; |
| case EVENT_MSG_IDC_NWATMVC : /* NewATMVCIndication */ |
| MyIDC._1509_XXXX((PS_NewATMVCIndication)((uint8*)pParameter)) ; |
| break ; |
| case EVENT_PTV_IDC_UI : /* UserInputIndication Primitive */ |
| MyIDC._150A_XXXX((PS_UserInputIndication)((uint8*)pParameter)) ; |
| break ; |
| case EVENT_MSG_IDC_UI : /* UserInputIndication */ |
| MyIDC._150B_XXXX((PS_UserInputIndication)((uint8*)pParameter)) ; |
| break ; |
| case EVENT_PTV_IDC_CNF : /* ConferenceIndication Primitive */ |
| MyIDC._150C_XXXX((PS_ConferenceIndication)((uint8*)pParameter)) ; |
| break ; |
| case EVENT_MSG_IDC_CNF : /* ConferenceIndication */ |
| MyIDC._150D_XXXX((PS_ConferenceIndication)((uint8*)pParameter)) ; |
| break ; |
| case EVENT_PTV_IDC_H2250MXSKW : /* H2250MaximumSkewIndication Primitive */ |
| MyIDC._150E_XXXX((PS_H2250MaximumSkewIndication)((uint8*)pParameter)) ; |
| break ; |
| case EVENT_MSG_IDC_H2250MXSKW : /* H2250MaximumSkewIndication */ |
| MyIDC._150F_XXXX((PS_H2250MaximumSkewIndication)((uint8*)pParameter)) ; |
| break ; |
| case EVENT_PTV_IDC_MCLCT : /* MCLocationIndication Primitive */ |
| MyIDC._1510_XXXX((PS_MCLocationIndication)((uint8*)pParameter)) ; |
| break ; |
| case EVENT_MSG_IDC_MCLCT : /* MCLocationIndication */ |
| MyIDC._1511_XXXX((PS_MCLocationIndication)((uint8*)pParameter)) ; |
| break ; |
| case EVENT_PTV_IDC_VI : /* VendorIdentification Primitive */ |
| MyIDC._1512_XXXX((PS_VendorIdentification)((uint8*)pParameter)) ; |
| break ; |
| case EVENT_MSG_IDC_VI : /* VendorIdentification */ |
| MyIDC._1513_XXXX((PS_VendorIdentification)((uint8*)pParameter)) ; |
| break ; |
| case EVENT_PTV_IDC_FNS : /* FunctionNotSupported Primitive */ |
| MyIDC._1514_XXXX((PS_FunctionNotSupported)((uint8*)pParameter)) ; |
| break ; |
| case EVENT_MSG_IDC_FNS : /* FunctionNotSupported */ |
| MyIDC._1515_XXXX((PS_FunctionNotSupported)((uint8*)pParameter)) ; |
| break ; |
| case EVENT_MSG_IDC_FC : /* FlowControlIndication */ |
| MyIDC._1516_XXXX((PS_FlowControlIndication)((uint8*)pParameter)) ; |
| break ; |
| case EVENT_PTV_IDC_FC : /* FlowControlIndication Primitive */ |
| MyIDC._1517_XXXX((PS_FlowControlIndication)((uint8*)pParameter)) ; |
| break ; |
| } |
| break ; |
| } |
| |
| return ; |
| } |
| |
| /************************************************************************/ |
| /* function name : ItnErrNotificationSend */ |
| /* function outline : Internal Error Notification */ |
| /* : to Terminal Status Control */ |
| /* function discription: ItnErrNotificationSend( uint32 , uint32 ) */ |
| /* input data : uint32 Error_Inf_1 */ |
| /* : uint32 Error_Inf_2 */ |
| /* output data : None */ |
| /* draw time : '96.11.15 */ |
| /*----------------------------------------------------------------------*/ |
| /* amendent career : */ |
| /* */ |
| /* Copyright (C) 1996 NTT DoCoMo */ |
| /************************************************************************/ |
| void SE::ItnErrNotificationSend(uint32 Error_Inf_1 , uint32 Error_Inf_2) |
| { |
| S_InfHeader infHeader ; |
| |
| infHeader.pParameter = NULL; |
| |
| infHeader.InfType = H245_ERROR ; |
| infHeader.InfId = H245_INTERNAL_ERROR_SE ; |
| infHeader.InfSupplement1 = Error_Inf_1 ; |
| infHeader.InfSupplement2 = Error_Inf_2 ; |
| |
| Print("Sending ItnErrNotification Msg\n"); |
| |
| if (MyH245) |
| { |
| MyH245->ObserverMessage((unsigned char*)&infHeader, sizeof(S_InfHeader)); |
| } |
| } |
| |
| void SE::Print(const char *format, ...) |
| { |
| OSCL_UNUSED_ARG(format); |
| |
| PVLOGGER_LOG_USE_ONLY(va_list args); |
| PVLOGGER_LOG_USE_ONLY(va_start(args, format)); |
| PVLOGGER_LOGMSG_V(PVLOGMSG_INST_LLDBG, Logger, PVLOGMSG_DEBUG, (0, format, args)); |
| PVLOGGER_LOG_USE_ONLY(va_end(args)); |
| } |