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

📄 plugins-wimax-wimax_compact_ulmap_ie_decoder.c

📁 Intel的WIMAX代码,主要是mac层code
💻 C
📖 第 1 页 / 共 5 页
字号:
#define EXTENSION_SUBTYPE_MASK_1    0x01F0
#define EXTENSION_LENGTH_MASK       0x00F0
#define EXTENSION_LENGTH_MASK_1     0x000F

static gint hf_culmap_extension_type = -1;
static gint hf_culmap_extension_subtype = -1;
static gint hf_culmap_extension_length = -1;
static gint hf_culmap_extension_type_1 = -1;
static gint hf_culmap_extension_subtype_1 = -1;
static gint hf_culmap_extension_length_1 = -1;

static gint hf_culmap_extension_time_diversity_mbs = -1;
static gint hf_culmap_extension_harq_mode = -1;
static gint hf_culmap_extension_unknown_sub_type = -1;
static gint hf_culmap_extension_time_diversity_mbs_1 = -1;
static gint hf_culmap_extension_harq_mode_1 = -1;
static gint hf_culmap_extension_unknown_sub_type_1 = -1;

static hf_register_info hf_extension_type[] =
{
	{
		&hf_culmap_extension_type,
		{"UL-MAP Type", "wimax.extension_type.ul_map_type", FT_UINT16, BASE_DEC, NULL, EXTENSION_TYPE_MASK, "", HFILL}
	},
	{
		&hf_culmap_extension_type_1,
		{"UL-MAP Type", "wimax.extension_type.ul_map_type", FT_UINT16, BASE_DEC, NULL, EXTENSION_TYPE_MASK_1, "", HFILL}
	},
	{
		&hf_culmap_extension_subtype,
		{"Extension Subtype", "wimax.extension_type.subtype", FT_UINT16, BASE_DEC, NULL, EXTENSION_SUBTYPE_MASK, "", HFILL}
	},
	{
		&hf_culmap_extension_subtype_1,
		{"Extension Subtype", "wimax.extension_type.subtype", FT_UINT16, BASE_DEC, NULL, EXTENSION_SUBTYPE_MASK_1, "", HFILL}
	},
	{
		&hf_culmap_extension_length,
		{"Extension Length", "wimax.extension_type.length", FT_UINT16, BASE_DEC, NULL, EXTENSION_LENGTH_MASK, "", HFILL}
	},
	{
		&hf_culmap_extension_length_1,
		{"Extension Length", "wimax.extension_type.length", FT_UINT16, BASE_DEC, NULL, EXTENSION_LENGTH_MASK_1, "", HFILL}
	},
	{
		&hf_culmap_extension_time_diversity_mbs,
		{"Time Diversity MBS", "wimax.extension_type.time_diversity_mbs", FT_BYTES, BASE_HEX, NULL, 0x0, "", HFILL}
	},
	{
		&hf_culmap_extension_time_diversity_mbs_1,
		{"Time Diversity MBS", "wimax.extension_type.time_diversity_mbs", FT_BYTES, BASE_HEX, NULL, 0x0, "", HFILL}
	},
	{
		&hf_culmap_extension_harq_mode_1,
		{"HARQ Mode Switch", "wimax.extension_type.harq_mode", FT_UINT16, BASE_HEX, NULL, 0x000F, "", HFILL}
	},
	{
		&hf_culmap_extension_harq_mode,
		{"HARQ Mode Switch", "wimax.extension_type.harq_mode", FT_UINT8, BASE_HEX, NULL, MSB_NIBBLE_MASK, "", HFILL}
	},
	{
		&hf_culmap_extension_unknown_sub_type,
		{"Unknown Extension Subtype", "wimax.extension_type.unknown_sub_type", FT_BYTES, BASE_HEX, NULL, 0x0, "", HFILL}
	},
	{
		&hf_culmap_extension_unknown_sub_type_1,
		{"Unknown Extension Subtype", "wimax.extension_type.unknown_sub_type", FT_BYTES, BASE_HEX, NULL, 0x0, "", HFILL}
	}
};

/* UL-MAP CDMA Allocation IE */
#define CDMA_ALLOCATION_DURATION_MASK               0xFC00
#define CDMA_ALLOCATION_UIUC_MASK                   0x03C0
#define CDMA_ALLOCATION_REPETITION_CODE_MASK        0x0030
#define CDMA_ALLOCATION_FRAME_NUMBER_INDEX_MASK     0x000F

#define CDMA_ALLOCATION_RANGING_SUBCHANNEL_MASK     0xFE
#define CDMA_ALLOCATION_BW_REQUEST_MANDATORY_MASK   0x01

#define CDMA_ALLOCATION_DURATION_MASK_1             0x0FC0
#define CDMA_ALLOCATION_UIUC_MASK_1                 0x003C
#define CDMA_ALLOCATION_REPETITION_CODE_MASK_1      0x0003
#define CDMA_ALLOCATION_FRAME_NUMBER_INDEX_MASK_1   0xF0000000
#define CDMA_ALLOCATION_RANGING_CODE_MASK_1         0x0FF00000
#define CDMA_ALLOCATION_RANGING_SYMBOL_MASK_1       0x000FF000
#define CDMA_ALLOCATION_RANGING_SUBCHANNEL_MASK_1   0x00000FE0
#define CDMA_ALLOCATION_BW_REQUEST_MANDATORY_MASK_1 0x00000010

static gint hf_cdma_allocation_duration = -1;
static gint hf_cdma_allocation_uiuc = -1;
static gint hf_cdma_allocation_repetition = -1;
static gint hf_cdma_allocation_frame_number_index = -1;
static gint hf_cdma_allocation_ranging_code = -1;
static gint hf_cdma_allocation_ranging_symbol = -1;
static gint hf_cdma_allocation_ranging_subchannel = -1;
static gint hf_cdma_allocation_bw_req = -1;
static gint hf_cdma_allocation_duration_1 = -1;
static gint hf_cdma_allocation_uiuc_1 = -1;
static gint hf_cdma_allocation_repetition_1 = -1;
static gint hf_cdma_allocation_frame_number_index_1 = -1;
static gint hf_cdma_allocation_ranging_code_1 = -1;
static gint hf_cdma_allocation_ranging_symbol_1 = -1;
static gint hf_cdma_allocation_ranging_subchannel_1 = -1;
static gint hf_cdma_allocation_bw_req_1 = -1;

static hf_register_info hf_cdma_allocation[] =
{
	{	/* display the Duration */
		&hf_cdma_allocation_duration,
		{"Duration", "wimax.cdma_allocation.duration", FT_UINT16, BASE_DEC, NULL, CDMA_ALLOCATION_DURATION_MASK, "", HFILL}
	},
	{	/* display the UIUC */
		&hf_cdma_allocation_uiuc,
		{"UIUC For Transmission", "wimax.cdma_allocation.uiuc", FT_UINT16, BASE_DEC, NULL, CDMA_ALLOCATION_UIUC_MASK, "", HFILL}
	},
	{	/* display the Repetition Coding Indication */
		&hf_cdma_allocation_repetition,
		{"Repetition Coding Indication", "wimax.cdma_allocation.allocation_repetition", FT_UINT16, BASE_DEC, VALS(vals_repetitions), CDMA_ALLOCATION_REPETITION_CODE_MASK, "", HFILL}
	},
	{	/* display the Frame Number Index */
		&hf_cdma_allocation_frame_number_index,
		{"Frame Number Index (LSBs of relevant frame number)", "wimax.cdma_allocation.frame_number_index", FT_UINT16, BASE_DEC, NULL, CDMA_ALLOCATION_FRAME_NUMBER_INDEX_MASK, "", HFILL}
	},
	{	/* display the Ranging Code */
		&hf_cdma_allocation_ranging_code,
		{"Ranging Code", "wimax.cdma_allocation.ranging_code", FT_UINT8, BASE_DEC, NULL, 0x0, "", HFILL}
	},
	{	/* display the Ranging Symbol */
		&hf_cdma_allocation_ranging_symbol,
		{"Ranging Symbol", "wimax.cdma_allocation.ranging_symbol", FT_UINT8, BASE_DEC, NULL, 0x0, "", HFILL}
	},
	{	/* display the Ranging Subchannel */
		&hf_cdma_allocation_ranging_subchannel,
		{"Ranging Subchannel", "wimax.cdma_allocation.ranging_subchannel", FT_UINT8, BASE_DEC, NULL, CDMA_ALLOCATION_RANGING_SUBCHANNEL_MASK, "", HFILL}
	},
	{	/* display the BW Request Mandatory */
		&hf_cdma_allocation_bw_req,
		{"BW Request Mandatory", "wimax.cdma_allocation.bw_req", FT_UINT8, BASE_DEC, TFS(&tfs_yes_no_ie), CDMA_ALLOCATION_BW_REQUEST_MANDATORY_MASK, "", HFILL}
	},
	{	/* display the Duration */
		&hf_cdma_allocation_duration_1,
		{"Duration", "wimax.cdma_allocation.duration", FT_UINT16, BASE_DEC, NULL, CDMA_ALLOCATION_DURATION_MASK_1, "", HFILL}
	},
	{	/* display the UIUC */
		&hf_cdma_allocation_uiuc_1,
		{"UIUC For Transmission", "wimax.cdma_allocation.uiuc", FT_UINT16, BASE_DEC, NULL, CDMA_ALLOCATION_UIUC_MASK_1, "", HFILL}
	},
	{	/* display the Repetition Coding Indication */
		&hf_cdma_allocation_repetition_1,
		{"Repetition Coding Indication", "wimax.cdma_allocation.allocation_repetition", FT_UINT16, BASE_DEC, VALS(vals_repetitions), CDMA_ALLOCATION_REPETITION_CODE_MASK_1, "", HFILL}
	},
	{	/* display the Frame Number Index */
		&hf_cdma_allocation_frame_number_index_1,
		{"Frame Number Index (LSBs of relevant frame number)", "wimax.cdma_allocation.frame_number_index", FT_UINT32, BASE_DEC, NULL, CDMA_ALLOCATION_FRAME_NUMBER_INDEX_MASK_1, "", HFILL}
	},
	{	/* display the Ranging Code */
		&hf_cdma_allocation_ranging_code_1,
		{"Ranging Code", "wimax.cdma_allocation.ranging_code", FT_UINT32, BASE_DEC, NULL, CDMA_ALLOCATION_RANGING_CODE_MASK_1, "", HFILL}
	},
	{	/* display the Ranging Symbol */
		&hf_cdma_allocation_ranging_symbol_1,
		{"Ranging Symbol", "wimax.cdma_allocation.ranging_symbol", FT_UINT32, BASE_DEC, NULL, CDMA_ALLOCATION_RANGING_SYMBOL_MASK_1, "", HFILL}
	},
	{	/* display the Ranging Subchannel */
		&hf_cdma_allocation_ranging_subchannel_1,
		{"Ranging Subchannel", "wimax.cdma_allocation.ranging_subchannel", FT_UINT32, BASE_DEC, NULL, CDMA_ALLOCATION_RANGING_SUBCHANNEL_MASK_1, "", HFILL}
	},
	{	/* display the BW Request Mandatory */
		&hf_cdma_allocation_bw_req_1,
		{"BW Request Mandatory", "wimax.cdma_allocation.bw_req", FT_UINT32, BASE_DEC, TFS(&tfs_yes_no_ie), CDMA_ALLOCATION_BW_REQUEST_MANDATORY_MASK_1, "", HFILL}
	}
};


/* UL-MAP Extended UIUCs (table 290a) */
#define MINI_SUBCHANNEL_CTYPE_MASK           0xC0
#define MINI_SUBCHANNEL_CTYPE_MASK_16        0x0C00
#define MINI_SUBCHANNEL_DURATION_MASK        0x3F
#define MINI_SUBCHANNEL_DURATION_MASK_16     0x03F0
#define MINI_SUBCHANNEL_CID_MASK             0xFFFF00
#define MINI_SUBCHANNEL_UIUC_MASK            0x0000F0
#define MINI_SUBCHANNEL_REPETITION_MASK      0x00000C
#define MINI_SUBCHANNEL_CID_MASK_1           0x0FFFF000
#define MINI_SUBCHANNEL_UIUC_MASK_1          0x00000F00
#define MINI_SUBCHANNEL_REPETITION_MASK_1    0x000000C0
#define MINI_SUBCHANNEL_CID_MASK_2           0x03FFFF00
#define MINI_SUBCHANNEL_UIUC_MASK_2          0x000000F0
#define MINI_SUBCHANNEL_REPETITION_MASK_2    0x0000000C
#define MINI_SUBCHANNEL_CID_MASK_3           0x3FFFF000
#define MINI_SUBCHANNEL_UIUC_MASK_3          0x00000F00
#define MINI_SUBCHANNEL_REPETITION_MASK_3    0x000000C0
#define MINI_SUBCHANNEL_PADDING_MASK         0xF0
#define MINI_SUBCHANNEL_PADDING_MASK_1       0x0000000F

static gint hf_extended_uiuc_ie_uiuc = -1;
static gint hf_extended_uiuc_ie_length = -1;
static gint hf_extended_uiuc_ie_uiuc_1 = -1;
static gint hf_extended_uiuc_ie_length_1 = -1;
static gint hf_extended_uiuc_ie_power_control = -1;
static gint hf_extended_uiuc_ie_power_measurement_frame = -1;
static gint hf_extended_uiuc_ie_power_control_24 = -1;
static gint hf_extended_uiuc_ie_power_measurement_frame_24 = -1;
static gint hf_extended_uiuc_ie_mini_subchannel_alloc_ctype = -1;
static gint hf_extended_uiuc_ie_mini_subchannel_alloc_duration = -1;
static gint hf_extended_uiuc_ie_mini_subchannel_alloc_ctype_16 = -1;
static gint hf_extended_uiuc_ie_mini_subchannel_alloc_duration_16 = -1;
static gint hf_extended_uiuc_ie_mini_subchannel_alloc_cid = -1;
static gint hf_extended_uiuc_ie_mini_subchannel_alloc_uiuc = -1;
static gint hf_extended_uiuc_ie_mini_subchannel_alloc_repetition = -1;
static gint hf_extended_uiuc_ie_mini_subchannel_alloc_padding = -1;
static gint hf_extended_uiuc_ie_mini_subchannel_alloc_cid_1 = -1;
static gint hf_extended_uiuc_ie_mini_subchannel_alloc_uiuc_1 = -1;
static gint hf_extended_uiuc_ie_mini_subchannel_alloc_repetition_1 = -1;
static gint hf_extended_uiuc_ie_mini_subchannel_alloc_cid_2 = -1;
static gint hf_extended_uiuc_ie_mini_subchannel_alloc_uiuc_2 = -1;
static gint hf_extended_uiuc_ie_mini_subchannel_alloc_repetition_2 = -1;
static gint hf_extended_uiuc_ie_mini_subchannel_alloc_cid_3 = -1;
static gint hf_extended_uiuc_ie_mini_subchannel_alloc_uiuc_3 = -1;
static gint hf_extended_uiuc_ie_mini_subchannel_alloc_repetition_3 = -1;
static gint hf_extended_uiuc_ie_mini_subchannel_alloc_padding_1 = -1;
static gint hf_extended_uiuc_ie_aas_ul = -1;
static gint hf_extended_uiuc_ie_cqich_alloc = -1;
static gint hf_extended_uiuc_ie_ul_zone = -1;
static gint hf_extended_uiuc_ie_phymod_ul = -1;
static gint hf_extended_uiuc_ie_mimo_ul_basic = -1;
static gint hf_extended_uiuc_ie_fast_tracking = -1;
static gint hf_extended_uiuc_ie_ul_pusc_burst_allocation = -1;
static gint hf_extended_uiuc_ie_fast_ranging = -1;
static gint hf_extended_uiuc_ie_ul_allocation_start = -1;
static gint hf_extended_uiuc_ie_unknown_uiuc = -1;

static hf_register_info hf_extended_uiuc[] =
{
	{	/* 8.4.5.4.4 Extended UIUC */
		&hf_extended_uiuc_ie_uiuc,
		{"Extended UIUC", "wimax.extended_uiuc_ie.uiuc", FT_UINT8, BASE_HEX, NULL, MSB_NIBBLE_MASK, "", HFILL }
	},
	{	/* 8.4.5.4.4 Extended UIUC */
		&hf_extended_uiuc_ie_uiuc_1,
		{"Extended UIUC", "wimax.extended_uiuc_ie.uiuc", FT_UINT8, BASE_HEX, NULL, LSB_NIBBLE_MASK, "", HFILL }
	},
	{	/* 8.4.5.4.4 IE Length */
		&hf_extended_uiuc_ie_length,
		{"Length", "wimax.extended_uiuc_ie.length", FT_UINT8, BASE_DEC, NULL, MSB_NIBBLE_MASK, "", HFILL }
	},
	{	/* 8.4.5.4.4 IE Length */
		&hf_extended_uiuc_ie_length_1,
		{"Length", "wimax.extended_uiuc_ie.length", FT_UINT24, BASE_DEC, NULL, LSB_NIBBLE_MASK, "", HFILL }
	},
	{	/* 8.4.5.4.5 Power Control IE */
		&hf_extended_uiuc_ie_power_control,
		{"Power Control", "wimax.extended_uiuc_ie.power_control", FT_UINT8, BASE_HEX, NULL, 0x0, "", HFILL }
	},
	{	/* 8.4.5.4.5 Power Control IE */
		&hf_extended_uiuc_ie_power_control_24,
		{"Power Control", "wimax.extended_uiuc_ie.power_control", FT_UINT24, BASE_HEX, NULL, 0x0, "", HFILL }
	},
	{
		&hf_extended_uiuc_ie_power_measurement_frame,
		{"Power Measurement Frame", "wimax.extended_uiuc_ie.power_measurement_frame", FT_UINT8, BASE_HEX, NULL, 0x0, "", HFILL }
	},
	{
		&hf_extended_uiuc_ie_power_measurement_frame_24,
		{"Power Measurement Frame", "wimax.extended_uiuc_ie.power_measurement_frame", FT_UINT24, BASE_HEX, NULL, 0x0, "", HFILL }
	},
	{	/* 8.4.5.4.8 Mini Subchannel Allocation IE */
		&hf_extended_uiuc_ie_mini_subchannel_alloc_ctype,
		{"C Type", "wimax.extended_uiuc_ie.mini_subchannel_alloc.ctype", FT_UINT8, BASE_HEX, VALS(vals_ctypes), MINI_SUBCHANNEL_CTYPE_MASK, "", HFILL }
	},
	{
		&hf_extended_uiuc_ie_mini_subchannel_alloc_ctype_16,
		{"C Type", "wimax.extended_uiuc_ie.mini_subchannel_alloc.ctype", FT_UINT16, BASE_HEX, VALS(vals_ctypes), MINI_SUBCHANNEL_CTYPE_MASK_16, "", HFILL }
	},
	{
		&hf_extended_uiuc_ie_mini_subchannel_alloc_duration,
		{"Duration", "wimax.extended_uiuc_ie.mini_subchannel_alloc.duration", FT_UINT8, BASE_DEC, NULL, MINI_SUBCHANNEL_DURATION_MASK, "", HFILL }
	},
	{
		&hf_extended_uiuc_ie_mini_subchannel_alloc_duration_16,
		{"Duration", "wimax.extended_uiuc_ie.mini_subchannel_alloc.duration", FT_UINT16, BASE_DEC, NULL, MINI_SUBCHANNEL_DURATION_MASK_16, "", HFILL }
	},
	{
		&hf_extended_uiuc_ie_mini_subchannel_alloc_cid,
		{"CID", "wimax.extended_uiuc_ie.mini_subchannel_alloc.cid", FT_UINT24, BASE_HEX, NULL, MINI_SUBCHANNEL_CID_MASK, "", HFILL }
	},
	{
		&hf_extended_uiuc_ie_mini_subchannel_alloc_uiuc,
		{"UIUC", "wimax.extended_uiuc_ie.mini_subchannel_alloc.uiuc", FT_UINT24, BASE_HEX, NULL, MINI_SUBCHANNEL_UIUC_MASK, "", HFILL }
	},
	{
		&hf_extended_uiuc_ie_mini_subchannel_alloc_repetition,
		{"Repetition", "wimax.extended_uiuc_ie.mini_subchannel_alloc.repetition", FT_UINT24, BASE_HEX, VALS(vals_repetitions), MINI_SUBCHANNEL_REPETITION_MASK, "", HFILL }
	},
	{
		&hf_extended_uiuc_ie_mini_subchannel_alloc_cid_1,
		{"CID", "wimax.extended_uiuc_ie.mini_subchannel_alloc.cid", FT_UINT24, BASE_HEX, NULL, MINI_SUBCHANNEL_CID_MASK_1, "", HFILL }
	},
	{
		&hf_extended_uiuc_ie_mini_subchannel_alloc_uiuc_1,
		{"UIUC", "wimax.extended_uiuc_ie.mini_subchannel_alloc.uiuc", FT_UINT24, BASE_HEX, NULL, MINI_SUBCHANNEL_UIUC_MASK_1, "", HFILL }
	},
	{
		&hf_extended_uiuc_ie_mini_subchannel_alloc_repetition_1,
		{"Repetition", "wimax.extended_uiuc_ie.mini_subchannel_alloc.repetition", FT_UINT24, BASE_HEX, VALS(vals_repetitions), MINI_SUBCHANNEL_REPETITION_MASK_1, "", HFILL }
	},
	{
		&hf_extended_uiuc_ie_mini_subchannel_alloc_cid_2,
		{"CID", "wimax.extended_uiuc_ie.mini_subchannel_alloc.cid", FT_UINT24, BASE_HEX, NULL, MINI_SUBCHANNEL_CID_MASK_2, "", HFILL }
	},
	{
		&hf_extended_uiuc_ie_mini_subchannel_alloc_uiuc_2,
		{"UIUC", "wimax.extended_uiuc_ie.mini_subchannel_alloc.uiuc", FT_UINT24, BASE_HEX, NULL, MINI_SUBCHANNEL_UIUC_MASK_2, "", HFILL }
	},
	{
		&hf_extended_uiuc_ie_mini_subchannel_alloc_repetition_2,
		{"Repetition", "wimax.extended_uiuc_ie.mini_subchannel_alloc.repetition", FT_UINT24, BASE_HEX, VALS(vals_repetitions), MINI_SUBCHANNEL_REPETITION_MASK_2, "", HFILL }
	},
	{
		&hf_extended_uiuc_ie_mini_subchannel_alloc_cid_3,
		{"CID", "wimax.extended_uiuc_ie.mini_subchannel_alloc.cid", FT_UINT24, BASE_HEX, NULL, MINI_SUBCHANNEL_CID_MASK_3, "", HFILL }
	},
	{
		&hf_extended_uiuc_ie_mini_subchannel_alloc_uiuc_3,
		{"UIUC", "wimax.extended_uiuc_ie.mini_subchannel_alloc.uiuc", FT_UINT24, BASE_HEX, NULL, MINI_SUBCHANNEL_UIUC_MASK_2, "", HFILL }
	},
	{
		&hf_extended_uiuc_ie_mini_subchannel_alloc_repetition_3,
		{"Repetition", "wimax.extended_uiuc_ie.mini_subchannel_alloc.repetition", FT_UINT24, BASE_HEX, VALS(vals_repetitions), MINI_SUBCHANNEL_REPETITION_MASK_3, "", HFILL }

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -