WiMAX Solution


Overview

The WiMAX solution provides the TSN.1 message definitions for the MAC management messages of the IEEE 802.16-2009 standard including all TLVs.

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

DL-MAP Message

wimax_mac_DL_MAP_IE
(
   var INC_CID  1,
   InSUB_MAP    1,
   RCIDType     2
) ::=
{
   DIUC  4;

   if(DIUC == 14)
   {
      // Extended-2 DIUC dependent IE
      Extended2DIUC  4;
      Length         8;

      Data2  Length * 8  : case Extended2DIUC of
      {
         0 =>
            MBS_MAP_IE  :
            {
               MBSZoneIdentifier       7;
               MacroDiversityEnhanced  1;

               if(MacroDiversityEnhanced == 1)
               {
                  Permutation           2;
                  DLPermBase            5;
                  PRBS_ID               2;
                  OFDMASymbolOffset     7;
                  DIUCChangeIndication  1;
                  reserve               3;

                  if(DIUCChangeIndication == 1)
                  {
                     reserve                     3;
                     Boosting                    3;
                     DIUC                        4;
                     NumSubchannels              6;
                     NumOFDMASymbols             6;
                     RepetitionCodingIndication  2;
                  }
               }
               else
               {
                  DIUC                        4;
                  CID                         16;
                  OFDMASymbolOffset           8;
                  SubchannelOffset            6;
                  Boosting                    3;
                  SLC3Indication              1;
                  NumOFDMASymbols             6;
                  NumSubchannels              6;
                  RepetitionCodingIndication  2;

                  if(SLC3Indication == 1)
                  {
                     NextMBS_MAP_IEFrameOffset  8;
                  }
               }
            }
         1 =>
            HO_Active_Anchor_DL_MAP_IE  :
            {
               Bursts[]  :
               {
                  ActivePreamble              8;
                  AnchorCID                   16;
                  DIUC                        4;
                  OFDMASymbolOffset           8;
                  RepetitionCodingIndication  2;
                  SubchannelOffset            6;
                  NumOFDMASymbols             7;
                  NumSubchannels              6;
                  Boosting                    3;
               }
            }
         2 =>
            HO_Anchor_Active_DL_MAP_IE  :
            {
               Bursts[]  :
               {
                  AnchorPreamble              8;
                  AnchorCID                   16;
                  DIUC                        4;
                  OFDMASymbolOffset           8;
                  SubchannelOffset            6;
                  RepetitionCodingIndication  2;
               }
            }
         3 =>
            HO_CID_Translation_MAP_IE  :
            {
               Bursts[]  :
               {
                  AnchorPreamble  8;
                  AnchorCID       16;
                  ActiveCID       16;
               }
            }
         6 =>
            Skip_IE  :
            {
               Mode     1;
               reserve  7;
            }
         9 =>
            Enhanced_DL_MAP_IE  :
            {
               NumAssignment  4;

               Assignments[NumAssignment]  :
               {
                  if(INC_CID == 1)
                  {
                     NumCID  8;

                     CIDs[NumCID]  16;
                  }

                  DIUC                        4;
                  Boosting                    3;
                  RepetitionCodingIndication  2;
                  RegionID                    8;
                  reserve                     3;
               }
            }
      }
   }
   else if(DIUC == 15)
   {
      // Extended DIUC dependent IE
      ExtendedDIUC  4;
      Length        4;

      Data  Length * 8  : case ExtendedDIUC of
      {
         0 =>
            Channel_Measurement_IE  :
            {
               ChannelNr          8;
               OFDMASymbolOffset  8;
               CID                16;
            }
         1 =>
            STC_DL_ZONE_IE  :
            {
               OFDMASymbolOffset  8;
               Permutation        2;
               UseAllSCIndicator  1;
               STC                2;
               MatrixIndicator    2;
               DL_PermBase        5;
               PRBS_ID            2;
               AMCType            2;
               MidamblePresence   1;
               MidambleBoosting   1;
               AntennasSelect     1;
               DedicatedPilots    1;
               reserve            4;
            }
         2 =>
            AAS_DL_IE  :
            {
               OFDMASymbolOffset  8;
               Permutation        3;
               DLPermBase         6;
               DLPreambleConfig   2;
               PreambleType       1;
               PRBS_ID            2;
               DiversityMap       1;
               reserve            1;
            }
         3 =>
            Data_location_in_another_BS_IE  :
            {
               Segment                     2;
               UsedSubchannels             6;
               DIUC                        4;
               FrameAdvance                3;
               reserve                     1;
               OFDMASymbolOffset           8;
               SubchannelOffset            6;
               Boosting                    3;
               PreambleIndex               7;
               NumOFDMSymbols              8;
               NumSubchannels              6;
               RepetitionCodingIndication  2;
               CID                         16;
            }
         4 =>
            CID_Switch_IE  :
            {
               if(INC_CID == 0)
               {
                  INC_CID = 1;
               }
               else
               {
                  INC_CID = 0;
               }
            }
         8 =>
            PHYMOD_DL_IE  :
            {
               PreambleModifierType  1;

               if(PreambleModifierType == 0)
               {
                  PreambleFrequencyShiftIndex  4;
               }
               else
               {
                  PreambleTimeShiftIndex  4;
               }

               PilotPatternModifier  1;
               PilotPatternIndex     2;
               reserve               3;
            }
         10 =>
            Broadcast_ControL_Pointer_IE  :
            {
               DCD_UCDConfigurationChangeCounter  4;
               DCD_UCDTransmissionFrame           8;
               SkipBroadcastSysmteUpdate          1;

               if(SkipBroadcastSysmteUpdate == 0)
               {
                  BroadcastSysmteUpdateType               3;
                  BroadcastSysmteUpdateTransmissionFrame  8;
               }
               else
               {
                  reserve  3;
               }
            }
         11 =>
            DL_PUSC_Burst_Allocatin_in_Other_Segment_IE  :
            {
               CID                         16;
               DIUC                        4;
               Segment                     2;
               Boosting                    3;
               IDcell                      5;
               DLPermBase                  5;
               PRBS_ID                     2;
               RepetitioncodingIndication  2;
               UsedSubchannels             6;
               OFDMASymbolOffset           8;
               reserve                     1;
               NumOFDMASymbols             7;
               SubchannelOffset            6;
               NumSubchannels              6;
               reserve                     7;
            }
         15 =>
            UL_interference_and_noise_level_IE  :
            {
               Bitmap  8;

               if((Bitmap & 0x1) == 1)
               {
                  CQI_ACKPeriodicRangingRegionNI  8;
               }

               if((Bitmap & 0x2) == 1)
               {
                  PUSCRegionNI  8;
               }

               if((Bitmap & 0x4) == 1)
               {
                  OptionalPUSCRegionNI  8;
               }

               if((Bitmap & 0x8) == 1)
               {
                  AMCRegionNI  8;
               }

               if((Bitmap & 0x10) == 1)
               {
                  AASRegionNI  8;
               }

               if((Bitmap & 0x20) == 1)
               {
                  PeriodicRangingRegionNI  8;
               }

               if((Bitmap & 0x40) == 1)
               {
                  SoundingRegionNI  8;
               }

               if((Bitmap & 0x80) == 1)
               {
                  MIMORegionNI  8;
               }
            }
      }
   }
   else
   {
      if(INC_CID == 1)
      {
         NumCID  8;

         if(InSUB_MAP == 1)
         {
            RCID[NumCID]  : wimax_mac_RCID_IE(RCIDType);
         }
         else
         {
            CID[NumCID]  16;
         }
      }

      OFDMASymbolOffset  8;

      SubchannelOffset  6;
      Boosting          3;
      NumOFDMASymbols   7;
      NumSubchannels    6;

      RepetitionCodingIndication  2;
   }
}

wimax_mac_DL_MAP() ::=
{
   var INC_CID  1;

   MessageType  8 = WIMAX_MAC_DL_MAP;

   // PHY Synchronization Field
   FrameDurationCode  8;
   FrameNumber        24;

   DCDCount       8;
   BaseStationID  48;

   // PHY Specific Section
   NumOFDMASymbols  8;

   IEs[]  : wimax_mac_DL_MAP_IE(INC_CID, 0, 0);

   align(8);
}