• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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