1 /* ------------------------------------------------------------------ 2 * Copyright (C) 1998-2009 PacketVideo 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 13 * express or implied. 14 * See the License for the specific language governing permissions 15 * and limitations under the License. 16 * ------------------------------------------------------------------- 17 */ 18 // ---------------------------------------------------------------------- 19 // 20 // This Software is an original work of authorship of PacketVideo Corporation. 21 // Portions of the Software were developed in collaboration with NTT DoCoMo, 22 // Inc. or were derived from the public domain or materials licensed from 23 // third parties. Title and ownership, including all intellectual property 24 // rights in and to the Software shall remain with PacketVideo Corporation 25 // and NTT DoCoMo, Inc. 26 // 27 // ----------------------------------------------------------------------- 28 /*****************************************************************************/ 29 /* file name : H245Pri.h */ 30 /* file contents : Primitive Infomation Header */ 31 /* draw : '96.11.28 */ 32 /*---------------------------------------------------------------------------*/ 33 /* amendment */ 34 /* Copyright (C) 1996 NTT DoCoMo */ 35 /*****************************************************************************/ 36 #ifndef _H245PRI_ 37 #define _H245PRI_ 38 39 /************************************************************************/ 40 /* Headerfile Include */ 41 /************************************************************************/ 42 #include "oscl_base.h" 43 #include "oscl_mem.h" 44 #include "h245def.h" 45 46 47 /************************************************************************/ 48 /* Common Value Definition: Error Code Value */ 49 /************************************************************************/ 50 typedef enum _enum_errcode 51 { 52 ErrCode_Msd_A = 0, /* ( 0) no response from remote MSDSE ( Local Timer T106 Expiry ) */ 53 ErrCode_Msd_B , /* ( 1) remote sees no response from local MSDSE ( Remort Timer T106 Expiry ) */ 54 ErrCode_Msd_C , /* ( 2) inappropriate message ( MasterSlaveDetermination ) */ 55 ErrCode_Msd_D , /* ( 3) inappropriate message ( MasterSlaveDeterminationReject ) */ 56 ErrCode_Msd_E , /* ( 4) inconsistent field value ( MasterSlaveDeterminationAck.decision != sv_STATUS ) */ 57 ErrCode_Msd_F , /* ( 5) maximum number of retries ( sv_NCOUNT == N100 ) */ 58 59 /* Outgoing LCSE */ 60 61 ErrCode_Lc_A , /* ( 6) inappropriate message ( OpenLogicalChannelAck ) */ 62 ErrCode_Lc_B , /* ( 7) inappropriate message ( OpenLogicalChannelReject ) */ 63 ErrCode_Lc_C , /* ( 8) inappropriate message ( CloseLogicalChannelAck ) */ 64 ErrCode_Lc_D , /* ( 9) no response from Peer LCSE / B-LCSE ( Timer T103 Expiry ) */ 65 66 /* Outgoing B-LCSE */ 67 68 ErrCode_Blc_A , /* ( 6) inappropriate message ( OpenLogicalChannelAck ) */ 69 ErrCode_Blc_B , /* ( 7) inappropriate message ( OpenLogicalChannelReject ) */ 70 ErrCode_Blc_C , /* ( 8) inappropriate message ( CloseLogicalChannelAck ) */ 71 ErrCode_Blc_D , /* ( 9) no response from Peer LCSE / B-LCSE ( Timer T103 Expiry ) */ 72 73 /* Incoming B-LCSE */ 74 75 ErrCode_Blc_E , /* (10) inappropriate message ( OpenLogicalChannelConfirm ) */ 76 ErrCode_Blc_F , /* (11) no response from Peer B-LCSE ( Timer T103 Expiry ) */ 77 78 /* Outgoing Mlse */ 79 80 ErrCode_Ml_A , /* (12) inappropriate message ( MaintenanceLoopAck ) */ 81 ErrCode_Ml_B /* (13) no response from Peer MLSE ( Timer T102 Expiry ) */ 82 } ENUM_ErrCode ; 83 84 85 /************************************************************************/ 86 /* Common Parameter Definition: Error Code Parameter */ 87 /************************************************************************/ 88 /* ERROR.indication */ 89 typedef struct _errcode 90 { 91 ENUM_ErrCode ErrCode ; /* ERRORCODE Parameter */ 92 } S_ErrCode ; 93 typedef S_ErrCode *PS_ErrCode ; 94 95 96 /************************************************************************/ 97 /* Common Value Definition: Source Value */ 98 /************************************************************************/ 99 typedef enum _esource 100 { 101 Src_USER = 0, /* ( 0) User CESE LCSE B-LCSE CLCSE MTSE RMESE MRSE MLSE */ 102 Src_PROTOCOL , /* ( 1) Protocol CESE CLCSE MTSE RMESE MRSE */ 103 Src_LCSE , /* ( 2) Lcse LCSE */ 104 Src_BLCSE , /* ( 3) Blcse B-LCSE */ 105 Src_MLSE /* ( 4) Mlse MLSE */ 106 } ENUM_Source ; 107 108 // ========================================================== 109 // NOTE: The following "DoCoMo Structures" are used for 110 // communication between TSC and SE. We eliminated many 111 // of the original ones when we integrated the new H.245 112 // PER codec, replacing them with the actual H.245 message 113 // definitions. Here are the ones that we found advantageous 114 // to keep. (RAN) 115 // ========================================================== 116 117 /************************************************************************/ 118 /* Parameter Definition: H223 Multiplex Table */ 119 /************************************************************************/ 120 /* TRANSFER.request */ 121 /* TRANSFER.indication */ 122 typedef struct _muxdescriptor 123 { 124 int32 size_of_multiplexEntryDescriptors ; 125 /* MUX_DESCRIPTOR Parameter */ 126 S_MultiplexEntryDescriptor *multiplexEntryDescriptors ; 127 } S_MuxDescriptor ; 128 typedef S_MuxDescriptor *PS_MuxDescriptor ; 129 130 /* REJECT.indication */ 131 typedef struct _sourcecause_mt 132 { 133 ENUM_Source Source ; /* SOURCE Parameter */ 134 S_MeRejectCause Cause ; /* CAUSE Parameter */ 135 } S_SourceCause_Mt ; 136 typedef S_SourceCause_Mt *PS_SourceCause_Mt ; 137 138 /************************************************************************/ 139 /* Parameter Definition: Capability Exchange */ 140 /************************************************************************/ 141 /* REJECT.indication */ 142 typedef struct _sourcecause_ce 143 { 144 ENUM_Source Source ; /* SOURCE Parameter */ 145 S_TcsRejectCause Cause ; /* CAUSE Parameter */ 146 } S_SourceCause_Ce ; 147 typedef S_SourceCause_Ce *PS_SourceCause_Ce ; 148 149 /************************************************************************/ 150 /* Parameter Definition: Uni-directional Logical Channel */ 151 /* : Bi-directional Logical Channel */ 152 /************************************************************************/ 153 /* ESTABLISH.request */ 154 /* ESTABLISH.indication */ 155 typedef struct _forwardreverseparam 156 { 157 S_ForwardLogicalChannelParameters forwardLogicalChannelParameters ; 158 int32 option_of_reverseLogicalChannelParameters ; /* (Not present for unidirectional) */ 159 S_ReverseLogicalChannelParameters reverseLogicalChannelParameters ; 160 } S_ForwardReverseParam ; 161 typedef S_ForwardReverseParam *PS_ForwardReverseParam ; 162 163 /* ESTABLISH.response */ 164 /* ESTABLISH.confirm */ 165 typedef struct _reversedata 166 { 167 int32 option_of_reverseLogicalChannelParameters ; /* (Not present for unidirectional) */ 168 S_AckReverseLogicalChannelParameters reverseLogicalChannelParameters ; 169 // FwdMuxAckParameters added to 245 library on 9/28/00 (RAN) 170 int32 option_of_forwardMultiplexAckParameters ; 171 S_ForwardMultiplexAckParameters forwardMultiplexAckParameters; 172 } S_ReverseData ; 173 typedef S_ReverseData *PS_ReverseData ; 174 175 /* RELEASE.indication */ 176 typedef struct _sourcecause_lcblc 177 { 178 ENUM_Source Source ; /* SOURCE Parameter */ 179 S_OlcRejectCause Cause ; /* CAUSE Parameter */ 180 } S_SourceCause_LcBlc ; 181 typedef S_SourceCause_LcBlc *PS_SourceCause_LcBlc ; 182 183 /************************************************************************/ 184 /* Parameter Definition: Close Logical Channel */ 185 /************************************************************************/ 186 /* REJECT.indication */ 187 typedef struct _sourcecause_clc 188 { 189 ENUM_Source Source ; /* SOURCE Parameter */ 190 S_RccRejectCause Cause ; /* CAUSE Parameter */ 191 } S_SourceCause_Clc ; 192 typedef S_SourceCause_Clc *PS_SourceCause_Clc ; 193 194 /************************************************************************/ 195 /* Parameter Definition: Round Trip Delay */ 196 /************************************************************************/ 197 /* TRANSFER.confirm */ 198 typedef struct _delay_rtd 199 { 200 int32 Delay_Value ; 201 } S_Delay_Rtd ; 202 typedef S_Delay_Rtd *PS_Delay_Rtd ; 203 204 /************************************************************************/ 205 /* Parameter Definition: Maintenance Loop */ 206 /************************************************************************/ 207 /* RELEASE.indication */ 208 /* Structure Salvaged (RAN) */ 209 typedef struct _sourcecause_ml 210 { 211 ENUM_Source Source ; /* SOURCE Parameter */ 212 S_MlRejectCause Cause ; /* CAUSE Parameter */ 213 } S_SourceCause_Ml ; 214 typedef S_SourceCause_Ml *PS_SourceCause_Ml ; 215 216 /************************************************************************/ 217 /* Parameter Definition: Mode Request */ 218 /************************************************************************/ 219 /* REJECT.indication */ 220 typedef struct _sourcecause_mr 221 { 222 ENUM_Source Source ; /* SOURCE Parameter */ 223 S_RmRejectCause Cause ; /* CAUSE Parameter */ 224 } S_SourceCause_Mr ; 225 typedef S_SourceCause_Mr *PS_SourceCause_Mr ; 226 227 /************************************************************************/ 228 /* Parameter Definition: Request Multiplex Entry */ 229 /************************************************************************/ 230 /* REJECT.indication */ 231 typedef struct _sourcecause_rme 232 { 233 ENUM_Source Source ; /* SOURCE Parameter */ 234 S_RmeRejectCause Cause ; /* CAUSE Parameter */ 235 } S_SourceCause_Rme ; 236 typedef S_SourceCause_Rme *PS_SourceCause_Rme ; 237 238 239 #endif /* _H245PRI_ */ 240