Home | History | Annotate | Download | only in include
      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