📄 plugins-wimax-mac_hd_generic_decoder.c
字号:
FT_UINT24, BASE_HEX, NULL, FEEDBACK_REQUEST_FRAME_OFFSET_MASK,
"", HFILL
}
},
{
&hf_mac_header_generic_ext_subheader_sn_req_rep_ind_1,
{
"First SN Report Indication", "wimax.genericExtSubhd.SnReqRepInd1",
FT_UINT8, BASE_DEC, VALS(sn_rep_msg), SN_REQUEST_SUBHEADER_SN_REPORT_INDICATION_1_MASK,
"", HFILL
}
},
{
&hf_mac_header_generic_ext_subheader_sn_req_rep_ind_2,
{
"Second SN Report Indication", "wimax.genericExtSubhd.SnReqRepInd2",
FT_UINT8, BASE_DEC, VALS(sn_rep_msg), SN_REQUEST_SUBHEADER_SN_REPORT_INDICATION_2_MASK,
"", HFILL
}
},
{
&hf_mac_header_generic_ext_subheader_sn_req_rsv,
{
"Reserved", "wimax.genericExtSubhd.SnReqRsv",
FT_UINT8, BASE_DEC, NULL, SN_REQUEST_SUBHEADER_RESERVED_MASK,
"", HFILL
}
},
{
&hf_mac_header_generic_ext_subheader_mimo_mode_fb_type,
{
"Feedback Type", "wimax.genericExtSubhd.MimoFbType",
FT_UINT8, BASE_DEC, VALS(mimo_fb_types), MIMO_FEEDBACK_TYPE_MASK,
"", HFILL
}
},
{
&hf_mac_header_generic_ext_subheader_mimo_fb_content,
{
"Feedback Content", "wimax.genericExtSubhd.MimoFbContent",
FT_UINT8, BASE_DEC, NULL, MIMO_FEEDBACK_CONTENT_MASK,
"", HFILL
}
},
{
&hf_mac_header_generic_ext_subheader_ul_tx_pwr_rep,
{
"UL TX Power", "wimax.genericExtSubhd.UlTxPwr",
FT_UINT8, BASE_DEC, NULL, 0x0,
"", HFILL
}
},
{
&hf_mac_header_generic_ext_subheader_mini_fb_type,
{
"Feedback Type", "wimax.genericExtSubhd.MiniFbType",
FT_UINT16, BASE_DEC, VALS(fb_types), MINI_FEEDBACK_TYPE_MASK,
"", HFILL
}
},
{
&hf_mac_header_generic_ext_subheader_mini_fb_content,
{
"Feedback Content", "wimax.genericExtSubhd.MiniFbContent",
FT_UINT16, BASE_DEC, NULL, MINI_FEEDBACK_CONTENT_MASK,
"", HFILL
}
},
{
&hf_mac_header_generic_ext_subheader_pdu_sn_short,
{
"PDU Sequence Number", "wimax.genericExtSubhd.PduSnShort",
FT_UINT8, BASE_DEC, NULL, 0x0,
"", HFILL
}
},
{
&hf_mac_header_generic_ext_subheader_pdu_sn_long,
{
"PDU Sequence Number", "wimax.genericExtSubhd.PduSnLong",
FT_UINT16, BASE_DEC, NULL, 0x0,
"", HFILL
}
}
};
/* Mesh Subheader */
static gint hf_mac_header_generic_mesh_subheader = -1;
/* Mesh Subheader display */
static hf_register_info hf_mesh[] =
{
{
&hf_mac_header_generic_mesh_subheader,
{
"Xmt Node Id", "wimax.genericMeshSubhd",
FT_UINT16, BASE_DEC, NULL, 0x0,
"", HFILL
}
}
};
/* Fragmentation Subheader (table 8) */
#define FRAGMENTATION_SUBHEADER_FC_MASK 0xC000 /*0x0003*/
#define FRAGMENTATION_SUBHEADER_BSN_MASK 0x3FF8 /*0x1FFC*/
#define FRAGMENTATION_SUBHEADER_RSV_EXT_MASK 0x0007 /*0xE000*/
#define FRAGMENTATION_SUBHEADER_FSN_MASK 0x38 /*0x1C*/
#define FRAGMENTATION_SUBHEADER_RSV_MASK 0x07 /*0xE0*/
#define FRAGMENT_TYPE_MASK 0xC0
#define SEQ_NUMBER_MASK 0x38
#define SEQ_NUMBER_MASK_11 0x3FF8
#define NO_FRAG 0
#define LAST_FRAG 1
#define FIRST_FRAG 2
#define MIDDLE_FRAG 3
static gint hf_mac_header_generic_frag_subhd_fc = -1;
static gint hf_mac_header_generic_frag_subhd_fc_ext = -1;
static gint hf_mac_header_generic_frag_subhd_bsn = -1;
static gint hf_mac_header_generic_frag_subhd_fsn = -1;
static gint hf_mac_header_generic_frag_subhd_fsn_ext = -1;
static gint hf_mac_header_generic_frag_subhd_rsv = -1;
static gint hf_mac_header_generic_frag_subhd_rsv_ext = -1;
/* Fragment Types */
static const value_string frag_types[] =
{
{ 0, "No fragmentation" },
{ 1, "Last fragment" },
{ 2, "First fragment" },
{ 3, "Continuing (middle) fragment" },
{ 0, NULL}
};
/* Fragmentation Subheader display */
static hf_register_info hf_frag[] =
{
{
&hf_mac_header_generic_frag_subhd_fc,
{
"Fragment Type", "wimax.genericFragSubhd.Fc",
FT_UINT8, BASE_DEC, VALS(frag_types), FRAGMENTATION_SUBHEADER_FC_MASK,
"", HFILL
}
},
{
&hf_mac_header_generic_frag_subhd_fc_ext,
{
"Fragment Type", "wimax.genericFragSubhd.FcExt",
FT_UINT16, BASE_DEC, VALS(frag_types), FRAGMENTATION_SUBHEADER_FC_MASK,
"", HFILL
}
},
{
&hf_mac_header_generic_frag_subhd_bsn,
{
"Block Sequence Number (BSN)", "wimax.genericFragSubhd.Bsn",
FT_UINT16, BASE_DEC, NULL, FRAGMENTATION_SUBHEADER_BSN_MASK,
"", HFILL
}
},
{
&hf_mac_header_generic_frag_subhd_fsn,
{
"Fragment Sequence Number (FSN)", "wimax.genericFragSubhd.Fsn",
FT_UINT8, BASE_DEC, NULL, FRAGMENTATION_SUBHEADER_FSN_MASK,
"", HFILL
}
},
{
&hf_mac_header_generic_frag_subhd_fsn_ext,
{
"Fragment Sequence Number (FSN)", "wimax.genericFragSubhd.FsnExt",
FT_UINT16, BASE_DEC, NULL, FRAGMENTATION_SUBHEADER_BSN_MASK,
"", HFILL
}
},
{
&hf_mac_header_generic_frag_subhd_rsv,
{
"Reserved", "wimax.genericFragSubhd.Rsv",
FT_UINT8, BASE_DEC, NULL, FRAGMENTATION_SUBHEADER_RSV_MASK,
"", HFILL
}
},
{
&hf_mac_header_generic_frag_subhd_rsv_ext,
{
"Reserved", "wimax.genericFragSubhd.RsvExt",
FT_UINT16, BASE_DEC, NULL, FRAGMENTATION_SUBHEADER_RSV_EXT_MASK,
"", HFILL
}
}
};
/* Packing Subheader (table 11) */
#define PACKING_SUBHEADER_FC_MASK 0xC00000
#define PACKING_SUBHEADER_BSN_MASK 0x3FF800
#define PACKING_SUBHEADER_FSN_MASK 0x38
#define PACKING_SUBHEADER_LENGTH_MASK 0x07FF
#define PACKING_SUBHEADER_LENGTH_EXT_MASK 0x0007FF
#define FRAG_LENGTH_MASK 0x0007FF00
static gint hf_mac_header_generic_packing_subhd_fc = -1;
static gint hf_mac_header_generic_packing_subhd_fc_ext = -1;
static gint hf_mac_header_generic_packing_subhd_bsn = -1;
static gint hf_mac_header_generic_packing_subhd_fsn = -1;
static gint hf_mac_header_generic_packing_subhd_fsn_ext = -1;
static gint hf_mac_header_generic_packing_subhd_len = -1;
static gint hf_mac_header_generic_packing_subhd_len_ext = -1;
/* Packing Subheader display */
static hf_register_info hf_pack[] =
{
{
&hf_mac_header_generic_packing_subhd_fc,
{
"Fragment Type", "wimax.genericPackSubhd.Fc",
FT_UINT16, BASE_DEC, VALS(frag_types), PACKING_SUBHEADER_FC_MASK,
"", HFILL
}
},
{
&hf_mac_header_generic_packing_subhd_fc_ext,
{
"Fragment Type", "wimax.genericPackSubhd.FcExt",
FT_UINT24, BASE_HEX, VALS(frag_types), PACKING_SUBHEADER_FC_MASK,
"", HFILL
}
},
{
&hf_mac_header_generic_packing_subhd_bsn,
{
"First Block Sequence Number", "wimax.genericPackSubhd.Bsn",
FT_UINT24, BASE_DEC, NULL, PACKING_SUBHEADER_BSN_MASK,
"", HFILL
}
},
{
&hf_mac_header_generic_packing_subhd_fsn,
{
"Fragment Number", "wimax.genericPackSubhd.Fsn",
FT_UINT16, BASE_DEC, NULL, PACKING_SUBHEADER_FSN_MASK,
"", HFILL
}
},
{
&hf_mac_header_generic_packing_subhd_fsn_ext,
{
"Fragment Number", "wimax.genericPackSubhd.FsnExt",
FT_UINT24, BASE_DEC, NULL, PACKING_SUBHEADER_BSN_MASK,
"", HFILL
}
},
{
&hf_mac_header_generic_packing_subhd_len,
{
"Length", "wimax.genericPackSubhd.Len",
FT_UINT16, BASE_DEC, NULL, PACKING_SUBHEADER_LENGTH_MASK,
"", HFILL
}
},
{
&hf_mac_header_generic_packing_subhd_len_ext,
{
"Length", "wimax.genericPackSubhd.LenExt",
FT_UINT24, BASE_DEC, NULL, PACKING_SUBHEADER_LENGTH_EXT_MASK,
"", HFILL
}
}
};
/* Fast-feedback Allocation Subheader (table 13) */
#define FAST_FEEDBACK_ALLOCATION_OFFSET_MASK 0xFC /*0x3F*/
#define FAST_FEEDBACK_FEEDBACK_TYPE_MASK 0x03 /*0xC0*/
static gint hf_mac_header_generic_fast_fb_subhd_alloc_offset = -1;
static gint hf_mac_header_generic_fast_fb_subhd_fb_type = -1;
/* Fast-feedback Allocation Subheader display */
static hf_register_info hf_fast[] =
{
{
&hf_mac_header_generic_fast_fb_subhd_alloc_offset,
{
"Allocation Offset", "wimax.genericFastFbSubhd.AllocOffset",
FT_UINT8, BASE_DEC, NULL, FAST_FEEDBACK_ALLOCATION_OFFSET_MASK,
"", HFILL
}
},
{
&hf_mac_header_generic_fast_fb_subhd_fb_type,
{
"Feedback Type", "wimax.genericFastFbSubhd.FbType",
FT_UINT8, BASE_DEC, VALS(fast_fb_types), FAST_FEEDBACK_FEEDBACK_TYPE_MASK,
"", HFILL
}
}
};
/* Grant Management Subheader (table 9 & 10) */
#define GRANT_MGMT_SUBHEADER_UGS_SI_MASK 0x8000 /*0x0001*/
#define GRANT_MGMT_SUBHEADER_UGS_PM_MASK 0x4000 /*0x0002*/
#define GRANT_MGMT_SUBHEADER_UGS_FLI_MASK 0x2000 /*0x0004*/
#define GRANT_MGMT_SUBHEADER_UGS_FL_MASK 0x1E00 /*0x0078*/
#define GRANT_MGMT_SUBHEADER_UGS_RSV_MASK 0x01FF /*0xFF80*/
#define GRANT_MGMT_SUBHEADER_EXT_PBR_MASK 0xFFE0 /*0x07FF*/
#define GRANT_MGMT_SUBHEADER_EXT_FLI_MASK 0x0010 /*0x0800*/
#define GRANT_MGMT_SUBHEADER_EXT_FL_MASK 0x000F /*0xF000*/
enum
{
SCHEDULE_SERVICE_TYPE_RSVD,
SCHEDULE_SERVICE_TYPE_UNDEFINED,
SCHEDULE_SERVICE_TYPE_BE,
SCHEDULE_SERVICE_TYPE_NRTPS,
SCHEDULE_SERVICE_TYPE_RTPS,
SCHEDULE_SERVICE_TYPE_EXT_RTPS,
SCHEDULE_SERVICE_TYPE_UGS
} SCHEDULE_SERVICE_TYPE;
static gint hf_mac_header_generic_grant_mgmt_ugs_tree = -1;
static gint hf_mac_header_generic_grant_mgmt_subhd_ugs_si = -1;
static gint hf_mac_header_generic_grant_mgmt_subhd_ugs_pm = -1;
static gint hf_mac_header_generic_grant_mgmt_subhd_ugs_fli = -1;
static gint hf_mac_header_generic_grant_mgmt_subhd_ugs_fl = -1;
static gint hf_mac_header_generic_grant_mgmt_subhd_ugs_rsv = -1;
static gint hf_mac_header_generic_grant_mgmt_ext_rtps_tree = -1;
static gint hf_mac_header_generic_grant_mgmt_subhd_ext_pbr = -1;
static gint hf_mac_header_generic_grant_mgmt_subhd_ext_fli = -1;
static gint hf_mac_header_generic_grant_mgmt_subhd_ext_fl = -1;
static gint hf_mac_header_generic_grant_mgmt_ext_pbr_tree = -1;
static gint hf_mac_header_generic_grant_mgmt_subhd_pbr = -1;
/* Slip Indicators */
static const value_string si_msgs[] =
{
{ 0, "No action" },
{ 1, "A slip of UL grants relative to the UL queue depth" },
{ 0, NULL}
};
/* Poll-Me Messages */
static const value_string pm_msgs[] =
{
{ 0, "No action" },
{ 1, "Request a bandwidth poll" },
{ 0, NULL}
};
/* Frame Latency Indications */
static const value_string fli_msgs[] =
{
{ 0, "Frame latency field disabled" },
{ 1, "Frame latency field enabled" },
{ 0, NULL}
};
/* Grant Management Subheader display */
static hf_register_info hf_grant[] =
{
{
&hf_mac_header_generic_grant_mgmt_ext_pbr_tree,
{
"Scheduling Service Type (Default)",
"wimax.genericGrantSubhd.Default",
FT_UINT16, BASE_DEC, NULL, 0x0,
"", HFILL
}
},
{
&hf_mac_header_generic_grant_mgmt_subhd_pbr,
{
"PiggyBack Request", "wimax.genericGrantSubhd.Pbr",
FT_UINT16, BASE_DEC, NULL, 0x0,
"", HFILL
}
},
{
&hf_mac_header_generic_grant_mgmt_ugs_tree,
{
"Scheduling Service Type (UGS)", "wimax.genericGrantSubhd.UGS",
FT_UINT16, BASE_DEC, NULL, 0x0,
"", HFILL
}
},
{
&hf_mac_header_generic_grant_mgmt_subhd_ugs_si,
{
"Slip Indicator", "wimax.genericGrantSubhd.Si",
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -