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);
}