⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 plugins-wimax-mac_hd_generic_decoder.c

📁 Intel的WIMAX代码,主要是mac层code
💻 C
📖 第 1 页 / 共 5 页
字号:
			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 + -