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},