CDMA2000 1X Solution


Overview

The CDMA2000 1X solution provides the TSN.1 message definitions for the Signaling Layer (Layer 3) messages, 3GPP2 C.S0005, Release 0 and Release A.

What You Can Do

Generate message parsers in C/C++/Java TSN.1 Compiler
Generate Wireshark dissectors TSN.1 Compiler
Implement Java based custom message diagnostic/analysis tools TSN.1 Compiler/TSN.1 Server
Create test vectors TSN.1 Editor
Decode and diagnose message raw data TSN.1 Editor

Example

General Handoff Direction Message

is2000_fdsch_GHDM(P_REV_IN_USE  8) ::=
{
   USE_TIME  1;

   if(P_REV_IN_USE >= P_REV_IS95_B2)
   {
      if(USE_TIME == 1)
      {
         ACTION_TIME  6;
      }
   }
   else
   {
      ACTION_TIME  6;
   }

   HDM_SEQ  2;

   if(P_REV_IN_USE < P_REV_IS95_B2)
   {
      P_REV_1  8;
   }

   SEARCH_INCLUDED  1;

   if(SEARCH_INCLUDED == 1)
   {
      SRCH_WIN_A      4;
      SRCH_WIN_N      4;
      SRCH_WIN_R      4;
      T_ADD           6;
      T_DROP          6;
      T_COMP          4;
      T_TDROP         4;
      SOFT_SLOPE      6;
      ADD_INTERCEPT   6;
      DROP_INTERCEPT  6;
   }

   EXTRA_PARMS  1;

   if(EXTRA_PARMS == 1)
   {
      if(P_REV_IN_USE >= P_REV_IS95_B2)
      {
         P_REV           8;
         PACKET_ZONE_ID  8;
      }

      FRAME_OFFSET   4;
      PRIVATE_LCM    1;
      RESET_L2       1;
      RESET_FPC      1;
      SERV_NEG_TYPE  1;
      ENCRYPT_MODE   2;
      NOM_PWR_EXT    1;
      NOM_PWR        4;
      NUM_PREAMBLE   3;
      BAND_CLASS     5;
      CDMA_FREQ      11;
   }

   if(P_REV_IN_USE >= P_REV_IS95_B2)
   {
      if(EXTRA_PARMS == 1)
      {
         RETURN_IF_HANDOFF_FAIL  1;

         if(RETURN_IF_HANDOFF_FAIL == 1)
         {
            COMPLETE_SEARCH  1;
         }

         PERIODIC_SEARCH  1;
         SCR_INCLUDED     1;

         if(SCR_INCLUDED == 1)
         {
            SERV_CON_SEQ  3;
            RECORD_TYPE   8;
            RECORD_LEN    8;

            TypeSpecificFields  8 * RECORD_LEN  :
               is2000_irec_ServiceConfig(P_REV_IN_USE);
         }
      }
   }
   else
   {
      RETURN_IF_HANDOFF_FAIL  1;

      if(RETURN_IF_HANDOFF_FAIL == 1)
      {
         COMPLETE_SEARCH  1;
      }

      PERIODIC_SEARCH  1;
   }

   if(P_REV_IN_USE >= P_REV_IS95_B2)
   {
      SUP_CHAN_PARMS_INCLUDED  1;
   }

   if(P_REV_IN_USE < P_REV_IS95_B2 ||
      P_REV_IN_USE >= P_REV_IS95_B2 && SUP_CHAN_PARMS_INCLUDED == 1)
   {
      FOR_INCLUDED  1;

      if(FOR_INCLUDED == 1)
      {
         FOR_SUP_CONFIG  2;

         if(FOR_SUP_CONFIG == 2 || FOR_SUP_CONFIG == 3)
         {
            NUM_FOR_SUP  3;
         }

         if(FOR_SUP_CONFIG == 1 || FOR_SUP_CONFIG == 3)
         {
            USE_FOR_DURATION  1;

            if(USE_FOR_DURATION == 1)
            {
               FOR_DURATION  8;
            }
         }
      }

      REV_INCLUDED  1;

      if(REV_INCLUDED == 1)
      {
         if(P_REV_IN_USE >= P_REV_IS95_B2)
         {
            REV_DTX_DURATION  4;
         }

         CLEAR_RETRY_DELAY  1;
         USE_REV_DURATION   1;

         if(USE_REV_DURATION == 1)
         {
            REV_DURATION  8;
         }

         NUM_REV_CODES    3;
         USE_T_ADD_ABORT  1;
      }

      REV_PARMS_INCLUDED  1;

      if(REV_PARMS_INCLUDED == 1)
      {
         T_MULCHAN        3;
         BEGIN_PREAMBLE   3;
         RESUME_PREAMBLE  3;
      }
   }

   USE_PWR_CNTL_STEP  1;

   if(USE_PWR_CNTL_STEP == 1)
   {
      PWR_CNTL_STEP  3;
   }

   NUM_PILOTS  3;
   PILOTS[NUM_PILOTS]  :
   {
      PILOT_PN            9;
      PWR_COMB_IND        1;
      FOR_FUND_CODE_CHAN  8;

      if(P_REV_IN_USE < P_REV_IS95_B2 ||
         P_REV_IN_USE >= P_REV_IS95_B2 && SUP_CHAN_PARMS_INCLUDED == 1)
      {
         if(FOR_INCLUDED == 1)
         {
            if(FOR_SUP_CONFIG == 2 || FOR_SUP_CONFIG == 3)
            {
               FOR_SUP_INCLUDED  1;

               if(FOR_SUP_INCLUDED == 1)
               {
                  FOR_SUP_CHAN_REC  :
                  {
                     EXPL_CODE_CHAN  1;

                     if(EXPL_CODE_CHAN == 0)
                     {
                        BASE_CODE_CHAN  8;
                     }
                     else
                     {
                        FOR_SUP_CODE_CHAN[NUM_FOR_SUP]  8;
                     }
                  }
               }
            }
         }
      }
   }

   if(P_REV_IN_USE >= P_REV_IS2000_0)
   {
      FPC_SUBCHAN_GAIN  5;
      USE_PC_TIME       1;

      if(USE_PC_TIME == 1)
      {
         PC_ACTION_TIME  6;
      }

      if(EXTRA_PARMS == 1)
      {
         RLGAIN_TRAFFIC_PILOT  6;
         DEFAULT_RLAG          1;
         NNSCR_INCLUDED        1;

         if(NNSCR_INCLUDED == 1)
         {
            RECORD_TYPE2  8;
            RECORD_LEN2   8;
            TypeSpecificFields2  8 * RECORD_LEN2  :
               is2000_firec_NNServiceConfig(P_REV_IN_USE);
         }
      }

      REV_FCH_GATING_MODE  1;

      if(REV_FCH_GATING_MODE == 1)
      {
         REV_PWR_CNTL_DELAY_INCL  1;

         if(REV_PWR_CNTL_DELAY_INCL == 1)
         {
            REV_PWR_CNTL_DELAY  2;
         }
      }
   }
}