MAC dissector format

LTE MAC

MAC Configuration

===Packet header===:

{UINT, "Version", 1},
{UINT, "Num SubPkt", 1},
{SKIP, NULL, 2}

===Subpacket header===:

{UINT, "SubPacket ID", 1},
{UINT, "Version", 1},
{UINT, "SubPacket Size", 2}

===Subpacket types===:

{0, "Config Type Subpacket"},
{1, "DL Config SubPacket"},
{2, "UL Config SubPacket"},
{3, "RACH Config SubPacket"},
{4, "LC Config SubPacket"},
{7, "DL Transport Block"},
{8, "UL Transport Block"},
{13, "eMBMS Config SubPacket"}

====Subpacket - Config Type====:

{UINT, "SubPacket ID", 1},
{UINT, "Version", 1},
{UINT, "SubPacket Size", 2}

====Subpacket - Config Reason====:

{2050, "CONNECTION RELEASE"}

====Subpacket - DL Config====:

{UINT, "TA Timer", 2}, // 0xFF need to be read as infinity
{SKIP, "NULL", 2}

====Subpacket - UL Config====:

{UINT, "SR periodicity", 3},
{UINT, "BSR timer", 2},
{UINT, "SPS Number of Tx released", 2},
{UINT, "Retx BSR timer", 2}, // 0xFF need to be read as infinity
{SKIP, "NULL", 3}

====Subpacket - RACH Config====:

{RSRQ, "Preamble initial power", 2},
{UINT, "Power ramping step", 1},
{UINT, "RA index1", 1},
{UINT, "RA index2", 1},
{UINT, "Preamble trans max", 1},
{UINT, "Contention resolution timer", 1},
{SKIP, "NULL", 4},
{UINT, "PMax", 2},
{UINT, "Delta preamble Msg3", 2},
{UINT, "PRACH config", 1},
{UINT, "CS zone length", 1},
{UINT, "Root seq index", 2},
{UINT, "PRACH Freq Offset", 2},
{UINT, "Max retx Msg3", 1},
{UINT, "RA rsp win size", 1},
{SKIP, "NULL", 1},

====Subpacket - LC Config====:

{UINT, "Number of deleted LT", 1},
{SKIP, "NULL", 32},
{UINT, "Number of added/modified LC", 1}

=====Subpacket - LC Config - LC=====:

{UINT, "LC ID", 1},
{UINT, "PBR(KBytes/s)", 2},
{UINT, "Priority", 1},
{UINT, "LC group", 1},
{UINT, "Token bucket size (bytes)", 4}

====Subpacket - eMBMS Config====:

{SKIP, "NULL", 100} // TODO: temporarily can not decode, may contain info about "Num eMBMS Active LCs"

MAC DL Transport Block

===Packet header===::

{UINT, “Version”, 1}, {UINT, “Num SubPkt”, 1}, {SKIP, NULL, 2}

====Subpacket Header====::

{UINT, “SubPacket ID”, 1}, {UINT, “Version”, 1}, {UINT, “SubPacket Size”, 2}, {UINT, “Num Samples”, 1},

====Subpacket version2 - Sample====::

{SKIP, “SFN and Sub-FN”, 2}, // not byte aligned {UINT, “RNTI Type”, 1}, {UINT, “HARQ ID”, 1}, {SKIP, “Area ID & PMCH ID”, 2}, {UINT, “DL TBS (bytes)”, 2}, {UINT, “RLC PDUs”, 1}, // QCAT shows a “EMBMS PDUs” but there’s no corresponding hex data {UINT, “Padding (bytes)”, 2}, {UINT, “HDR LEN”, 1}, //{SKIP, “Mac Hdr + CE”, ??}, // a flexible length field of Hex value in “Mac Hdr + CE”, in parser we modified “offset” to skip those //{SKIP, “NULL”, 2}

=====RNTI Type=====::

{0, “C-RNTI”}, {2, “P-RNTI”}, {3, “RA-RNTI”}, {4, “T-C-RNTI”}, {5, “SI-RNTI”}

MAC UL Transport Block

===Packet header===:

{UINT, "Version", 1},
{UINT, "Num SubPkt", 1},
{SKIP, NULL, 2}

====Subpacket header====:

{UINT, "SubPacket ID", 1},
{UINT, "Version", 1},
{UINT, "SubPacket Size", 2},
{UINT, "Num Samples", 1},
{SKIP, "NULL", 2}

====Subpacket version1 - samples====:

{SKIP, "SFN and Sub-FN", 2}, // not byte aligned
// QCAT show "RNTI Type" and "HARQ ID" before Grant, but there's no corresponding hex data
{UINT, "Grant (bytes)", 2},
{UINT, "RLC PDUs", 1},
{UINT, "Padding (bytes)", 2},
{UINT, "BSR event", 1},
{UINT, "BSR trig", 1},
{UINT, "HDR LEN", 1},
//
//{SKIP, "Mac Hdr + CE", 5}, // a flexible length field of Hex value in "Mac Hdr + CE", parser modified offset to skip those
//{SKIP, "NULL", 2}

=====BSR event=====:

{2, "High Data Arrival"},
{1, "Periodic"},

=====BSR trig=====:

{4, "S-BSR"},
{3, "Pad L-BSR"}

MAC UL Tx Statistics

===Packet Header===:

{UINT, "Version", 1},
{UINT, "Num SubPkt", 1},
{SKIP, NULL, 2},

====Lte Mac UL Tx Statistics Subpkt Header====:

{UINT, "SubPacket ID", 1},
{UINT, "Version", 1},
{UINT, "SubPacket Size", 2},

====Lte Mac UL Tx Statistics UL Tx Stats SubPacket====:

{UINT, "Number of samples", 1},
{UINT, "Number of padding BSR", 1},
{UINT, "Number of regular BSR", 1},
{UINT, "Number of periodic BSR", 1},
{UINT, "Number of cancel BSR", 1},
{UINT, "Grant received", 4},
{UINT, "Grant utilized", 4},
{SKIP, NULL, 3},

Lte Mac UL Buffer Status Internal

===Packet Header===:

{UINT, "Version", 1},
{UINT, "Num SubPkt", 1},
{SKIP, NULL, 2},

====Lte Mac UL Buffer Status Internal Subpkt Header====:

{UINT, "SubPacket ID", 1},
{UINT, "Version", 1},
{UINT, "SubPacket Size", 2},
{UINT, "Num Samples", 1},

=====Lte Mac UL Buffer Status Internal UL Buffer Status SubPacket Sample=====:

//{UINT, "SFN", 1.5},
//{UINT, "Sub FN", 0.5},
{UINT, "SFN and Sub FN", 2},
{UINT, "Number of active LCID", 1}

======Lte Mac UL Buffer Status Internal UL Buffer Status SubPacket LCID======:

{UINT, "Ld Id", 1},
{UINT, "Priority", 1},
{UINT, "New bytes", 4},
{UINT, "Ret bytes", 4},
{UINT, "Ctrl bytes", 2},