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

📄 plugins-wimax-wimax_compact_dlmap_ie_decoder.c

📁 Intel的WIMAX代码,主要是mac层code
💻 C
📖 第 1 页 / 共 5 页
字号:
};

/* HARQ MAP HARQ Control IE display indexies */
static gint hf_harq_control_ie_prefix = -1;
static gint hf_harq_control_ie_ai_sn = -1;
static gint hf_harq_control_ie_spid = -1;
static gint hf_harq_control_ie_acid = -1;
static gint hf_harq_control_ie_reserved = -1;
static gint hf_harq_control_ie_prefix_1 = -1;
static gint hf_harq_control_ie_ai_sn_1 = -1;
static gint hf_harq_control_ie_spid_1 = -1;
static gint hf_harq_control_ie_acid_1 = -1;
static gint hf_harq_control_ie_reserved_1 = -1;

/* Masks */
#define WIMAX_HARQ_CONTROL_IE_PREFIX_MASK      0x80
#define WIMAX_HARQ_CONTROL_IE_AI_SN_MASK       0x40
#define WIMAX_HARQ_CONTROL_IE_SPID_MASK        0x30
#define WIMAX_HARQ_CONTROL_IE_ACID_MASK        0x0F
#define WIMAX_HARQ_CONTROL_IE_RESERVED_MASK    0x70
#define WIMAX_HARQ_CONTROL_IE_PREFIX_MASK_1    0x0800
#define WIMAX_HARQ_CONTROL_IE_AI_SN_MASK_1     0x0400
#define WIMAX_HARQ_CONTROL_IE_SPID_MASK_1      0x0300
#define WIMAX_HARQ_CONTROL_IE_ACID_MASK_1      0x00F0
#define WIMAX_HARQ_CONTROL_IE_RESERVED_MASK_1  0x0700

/* HARQ MAP HARQ Control IE display */
static hf_register_info hf_harq_control[] =
{
	{
		&hf_harq_control_ie_prefix,
		{"Prefix", "wimax.harq_map.harq_control_ie.prefix", FT_BOOLEAN, 8, TFS(&tfs_prefix), WIMAX_HARQ_CONTROL_IE_PREFIX_MASK, "", HFILL}
	},
	{
		&hf_harq_control_ie_ai_sn,
		{"HARQ ID Sequence Number(AI_SN)", "wimax.harq_map.harq_control_ie.ai_sn", FT_UINT8, BASE_HEX, NULL, WIMAX_HARQ_CONTROL_IE_AI_SN_MASK, "", HFILL}
	},
	{
		&hf_harq_control_ie_spid,
		{"Subpacket ID (SPID)", "wimax.harq_map.harq_control_ie.spid", FT_UINT8, BASE_HEX, NULL, WIMAX_HARQ_CONTROL_IE_SPID_MASK, "", HFILL}
	},
	{
		&hf_harq_control_ie_acid,
		{"HARQ CH ID (ACID)", "wimax.harq_map.harq_control_ie.acid", FT_UINT8, BASE_HEX, NULL, WIMAX_HARQ_CONTROL_IE_ACID_MASK, "", HFILL}
	},
	{
		&hf_harq_control_ie_reserved,
		{"Reserved", "wimax.harq_map.harq_control_ie.reserved", FT_UINT8, BASE_HEX, NULL, WIMAX_HARQ_CONTROL_IE_RESERVED_MASK, "", HFILL}
	},
	{
		&hf_harq_control_ie_prefix_1,
		{"Prefix", "wimax.harq_map.harq_control_ie.prefix", FT_BOOLEAN, 16, TFS(&tfs_prefix), WIMAX_HARQ_CONTROL_IE_PREFIX_MASK_1, "", HFILL}
	},
	{
		&hf_harq_control_ie_ai_sn_1,
		{"HARQ ID Sequence Number(AI_SN)", "wimax.harq_map.harq_control_ie.ai_sn", FT_UINT16, BASE_HEX, NULL, WIMAX_HARQ_CONTROL_IE_AI_SN_MASK_1, "", HFILL}
	},
	{
		&hf_harq_control_ie_spid_1,
		{"Subpacket ID (SPID)", "wimax.harq_map.harq_control_ie.spid", FT_UINT16, BASE_HEX, NULL, WIMAX_HARQ_CONTROL_IE_SPID_MASK_1, "", HFILL}
	},
	{
		&hf_harq_control_ie_acid_1,
		{"HARQ CH ID (ACID)", "wimax.harq_map.harq_control_ie.acid", FT_UINT16, BASE_HEX, NULL, WIMAX_HARQ_CONTROL_IE_ACID_MASK_1, "", HFILL}
	},
	{
		&hf_harq_control_ie_reserved_1,
		{"Reserved", "wimax.harq_map.harq_control_ie.reserved", FT_UINT16, BASE_HEX, NULL, WIMAX_HARQ_CONTROL_IE_RESERVED_MASK_1, "", HFILL}
	}
};

/* HARQ MAP CQICH Control IE display indexies */
static gint hf_cqich_control_ie_indicator = -1;
static gint hf_cqich_control_ie_alloc_id = -1;
static gint hf_cqich_control_ie_period = -1;
static gint hf_cqich_control_ie_frame_offset = -1;
static gint hf_cqich_control_ie_duration = -1;
static gint hf_cqich_control_ie_cqi_rep_threshold = -1;
static gint hf_cqich_control_ie_indicator_1 = -1;
static gint hf_cqich_control_ie_alloc_id_1 = -1;
static gint hf_cqich_control_ie_period_1 = -1;
static gint hf_cqich_control_ie_frame_offset_1 = -1;
static gint hf_cqich_control_ie_duration_1 = -1;
static gint hf_cqich_control_ie_cqi_rep_threshold_1 = -1;

/* Masks */
#define WIMAX_CQICH_CONTROL_IE_INDICATOR_MASK           0x8000
#define WIMAX_CQICH_CONTROL_IE_ALLOCATION_INDEX_MASK    0x7E00
#define WIMAX_CQICH_CONTROL_IE_PERIOD_MASK              0x0180
#define WIMAX_CQICH_CONTROL_IE_FRAME_OFFSET_MASK        0x0070
#define WIMAX_CQICH_CONTROL_IE_DURATION_MASK            0x000F
#define WIMAX_CQICH_CONTROL_IE_CQI_REP_THRESHOLD_MASK   0x7000
#define WIMAX_CQICH_CONTROL_IE_INDICATOR_MASK_1         0x080000
#define WIMAX_CQICH_CONTROL_IE_ALLOCATION_INDEX_MASK_1  0x07E000
#define WIMAX_CQICH_CONTROL_IE_PERIOD_MASK_1            0x001800
#define WIMAX_CQICH_CONTROL_IE_FRAME_OFFSET_MASK_1      0x000700
#define WIMAX_CQICH_CONTROL_IE_DURATION_MASK_1          0x0000F0
#define WIMAX_CQICH_CONTROL_IE_CQI_REP_THRESHOLD_MASK_1 0x070000

/* HARQ MAP CQICH Control IE display */
static hf_register_info hf_cqich_control[] =
{
	{
		&hf_cqich_control_ie_indicator,
		{"CQICH Indicator", "wimax.harq_map.cqich_control_ie.cqich_indicator", FT_BOOLEAN, 16, TFS(&tfs_cqich_ind), WIMAX_CQICH_CONTROL_IE_INDICATOR_MASK, "", HFILL}
	},
	{
		&hf_cqich_control_ie_alloc_id,
		{"Allocation Index", "wimax.harq_map.cqich_control_ie.alloc_id", FT_UINT16, BASE_HEX, NULL, WIMAX_CQICH_CONTROL_IE_ALLOCATION_INDEX_MASK, "", HFILL}
	},
	{
		&hf_cqich_control_ie_period,
		{"PERIOD", "wimax.harq_map.cqich_control_ie.period", FT_UINT16, BASE_HEX, NULL, WIMAX_CQICH_CONTROL_IE_PERIOD_MASK, "", HFILL}
	},
	{
		&hf_cqich_control_ie_frame_offset,
		{"Frame Offset", "wimax.harq_map.cqich_control_ie.frame_offset", FT_UINT16, BASE_HEX, NULL, WIMAX_CQICH_CONTROL_IE_FRAME_OFFSET_MASK, "", HFILL}
	},
	{
		&hf_cqich_control_ie_duration,
		{"Duration", "wimax.harq_map.cqich_control_ie.duration", FT_UINT16, BASE_HEX, NULL, WIMAX_CQICH_CONTROL_IE_DURATION_MASK, "", HFILL}
	},
	{
		&hf_cqich_control_ie_cqi_rep_threshold,
		{"CQI Reporting Threshold", "wimax.harq_map.cqich_control_ie.cqi_rep_threshold", FT_UINT16, BASE_HEX, NULL, WIMAX_CQICH_CONTROL_IE_CQI_REP_THRESHOLD_MASK, "", HFILL}
	},
	{
		&hf_cqich_control_ie_indicator_1,
		{"CQICH Indicator", "wimax.harq_map.cqich_control_ie.cqich_indicator", FT_BOOLEAN, 24, TFS(&tfs_cqich_ind), WIMAX_CQICH_CONTROL_IE_INDICATOR_MASK_1, "", HFILL}
	},
	{
		&hf_cqich_control_ie_alloc_id_1,
		{"Allocation Index", "wimax.harq_map.cqich_control_ie.alloc_id", FT_UINT24, BASE_HEX, NULL, WIMAX_CQICH_CONTROL_IE_ALLOCATION_INDEX_MASK_1, "", HFILL}
	},
	{
		&hf_cqich_control_ie_period_1,
		{"PERIOD", "wimax.harq_map.cqich_control_ie.period", FT_UINT24, BASE_HEX, NULL, WIMAX_CQICH_CONTROL_IE_PERIOD_MASK_1, "", HFILL}
	},
	{
		&hf_cqich_control_ie_frame_offset_1,
		{"Frame Offset", "wimax.harq_map.cqich_control_ie.frame_offset", FT_UINT24, BASE_HEX, NULL, WIMAX_CQICH_CONTROL_IE_FRAME_OFFSET_MASK_1, "", HFILL}
	},
	{
		&hf_cqich_control_ie_duration_1,
		{"Duration", "wimax.harq_map.cqich_control_ie.duration", FT_UINT24, BASE_HEX, NULL, WIMAX_CQICH_CONTROL_IE_DURATION_MASK_1, "", HFILL}
	},
	{
		&hf_cqich_control_ie_cqi_rep_threshold_1,
		{"CQI Reporting Threshold", "wimax.harq_map.cqich_control_ie.cqi_rep_threshold", FT_UINT24, BASE_HEX, NULL, WIMAX_CQICH_CONTROL_IE_CQI_REP_THRESHOLD_MASK_1, "", HFILL}
	}
};

/* Extension Type */
#define EXTENSION_TYPE_MASK         0xE000
#define EXTENSION_TYPE_MASK_1       0x0E00
#define EXTENSION_SUBTYPE_MASK      0x1F00
#define EXTENSION_SUBTYPE_MASK_1    0x01F0
#define EXTENSION_LENGTH_MASK       0x00F0
#define EXTENSION_LENGTH_MASK_1     0x000F

static gint hf_cdlmap_extension_type = -1;
static gint hf_cdlmap_extension_subtype = -1;
static gint hf_cdlmap_extension_length = -1;
static gint hf_cdlmap_extension_type_1 = -1;
static gint hf_cdlmap_extension_subtype_1 = -1;
static gint hf_cdlmap_extension_length_1 = -1;

static gint hf_cdlmap_extension_time_diversity_mbs = -1;
static gint hf_cdlmap_extension_harq_mode = -1;
static gint hf_cdlmap_extension_unknown_sub_type = -1;
static gint hf_cdlmap_extension_time_diversity_mbs_1 = -1;
static gint hf_cdlmap_extension_harq_mode_1 = -1;
static gint hf_cdlmap_extension_unknown_sub_type_1 = -1;

static hf_register_info hf_extension_type[] =
{
	{
		&hf_cdlmap_extension_type,
		{"DL-MAP Type", "wimax.extension_type.dl_map_type", FT_UINT16, BASE_DEC, NULL, EXTENSION_TYPE_MASK, "", HFILL}
	},
	{
		&hf_cdlmap_extension_type_1,
		{"DL-MAP Type", "wimax.extension_type.dl_map_type", FT_UINT16, BASE_DEC, NULL, EXTENSION_TYPE_MASK_1, "", HFILL}
	},
	{
		&hf_cdlmap_extension_subtype,
		{"Extension Subtype", "wimax.extension_type.subtype", FT_UINT16, BASE_DEC, NULL, EXTENSION_SUBTYPE_MASK, "", HFILL}
	},
	{
		&hf_cdlmap_extension_subtype_1,
		{"Extension Subtype", "wimax.extension_type.subtype", FT_UINT16, BASE_DEC, NULL, EXTENSION_SUBTYPE_MASK_1, "", HFILL}
	},
	{
		&hf_cdlmap_extension_length,
		{"Extension Length", "wimax.extension_type.length", FT_UINT16, BASE_DEC, NULL, EXTENSION_LENGTH_MASK, "", HFILL}
	},
	{
		&hf_cdlmap_extension_length_1,
		{"Extension Length", "wimax.extension_type.length", FT_UINT16, BASE_DEC, NULL, EXTENSION_LENGTH_MASK_1, "", HFILL}
	},
	{
		&hf_cdlmap_extension_time_diversity_mbs,
		{"Time Diversity MBS", "wimax.extension_type.time_diversity_mbs", FT_BYTES, BASE_HEX, NULL, 0x0, "", HFILL}
	},
	{
		&hf_cdlmap_extension_time_diversity_mbs_1,
		{"Time Diversity MBS", "wimax.extension_type.time_diversity_mbs", FT_BYTES, BASE_HEX, NULL, 0x0, "", HFILL}
	},
	{
		&hf_cdlmap_extension_harq_mode_1,
		{"HARQ Mode Switch", "wimax.extension_type.harq_mode", FT_UINT16, BASE_HEX, NULL, 0x000F, "", HFILL}
	},
	{
		&hf_cdlmap_extension_harq_mode,
		{"HARQ Mode Switch", "wimax.extension_type.harq_mode", FT_UINT8, BASE_HEX, NULL, MSB_NIBBLE_MASK, "", HFILL}
	},
	{
		&hf_cdlmap_extension_unknown_sub_type,
		{"Unknown Extension Subtype", "wimax.extension_type.unknown_sub_type", FT_BYTES, BASE_HEX, NULL, 0x0, "", HFILL}
	},
	{
		&hf_cdlmap_extension_unknown_sub_type_1,
		{"Unknown Extension Subtype", "wimax.extension_type.unknown_sub_type", FT_BYTES, BASE_HEX, NULL, 0x0, "", HFILL}
	}
};

/* Extended DIUC dependent IE display indexies */
static gint hf_extended_diuc_dependent_ie_diuc = -1;
static gint hf_extended_diuc_dependent_ie_diuc_1 = -1;
static gint hf_extended_diuc_dependent_ie_length = -1;
static gint hf_extended_diuc_dependent_ie_length_1 = -1;
static gint hf_extended_diuc_dependent_ie_channel_measurement = -1;
static gint hf_extended_diuc_dependent_ie_stc_zone = -1;
static gint hf_extended_diuc_dependent_ie_aas_dl = -1;
static gint hf_extended_diuc_dependent_ie_data_location = -1;
static gint hf_extended_diuc_dependent_ie_cid_switch = -1;
static gint hf_extended_diuc_dependent_ie_mimo_dl_basic = -1;
static gint hf_extended_diuc_dependent_ie_mimo_dl_enhanced = -1;
static gint hf_extended_diuc_dependent_ie_harq_map_pointer = -1;
static gint hf_extended_diuc_dependent_ie_phymod_dl = -1;
static gint hf_extended_diuc_dependent_ie_dl_pusc_burst_allocation = -1;
static gint hf_extended_diuc_dependent_ie_ul_interference_and_noise_level = -1;
static gint hf_extended_diuc_dependent_ie_unknown_diuc = -1;

/* Extended DIUC dependent IE */
static hf_register_info hf_extended_diuc[] =
{
	{
		&hf_extended_diuc_dependent_ie_diuc,
		{"Extended DIUC", "wimax.extended_diuc_dependent_ie.diuc", FT_UINT8, BASE_HEX, NULL, MSB_NIBBLE_MASK, "", HFILL }
	},
	{
		&hf_extended_diuc_dependent_ie_diuc_1,
		{"Extended DIUC", "wimax.extended_diuc_dependent_ie.diuc", FT_UINT8, BASE_HEX, NULL, LSB_NIBBLE_MASK, "", HFILL }
	},
	{
		&hf_extended_diuc_dependent_ie_length,
		{"Length", "wimax.extended_diuc_dependent_ie.length", FT_UINT8, BASE_DEC, NULL, MSB_NIBBLE_MASK, "", HFILL }
	},
	{
		&hf_extended_diuc_dependent_ie_length_1,
		{"Length", "wimax.extended_diuc_dependent_ie.length", FT_UINT8, BASE_DEC, NULL, LSB_NIBBLE_MASK, "", HFILL }
	},
	{	/* 8.4.5.3.? Channel_Measurement_IE */
		&hf_extended_diuc_dependent_ie_channel_measurement,
		{"Channel_Measurement_IE (not implemented)", "wimax.extended_diuc_dependent_ie.channel_measurement", FT_BYTES, BASE_HEX, NULL, 0x0, "", HFILL }
	},
	{	/* 8.4.5.3.4 STC_Zone_IE */
		&hf_extended_diuc_dependent_ie_stc_zone,
		{"STC_Zone_IE (not implemented)", "wimax.extended_diuc_dependent_ie.stc_zone", FT_BYTES, BASE_HEX, NULL, 0x0, "", HFILL }
	},
	{	/* 8.4.5.3.3 AAS_DL_IE */
		&hf_extended_diuc_dependent_ie_aas_dl,
		{"AAS_DL_IE (not implemented)", "wimax.extended_diuc_dependent_ie.aas_dl", FT_BYTES, BASE_HEX, NULL, 0x0, "", HFILL }
	},
	{	/* 8.4.5.3.6 Data_location_in_another_BS_IE */
		&hf_extended_diuc_dependent_ie_data_location,
		{"Data_location_in_another_BS_IE (not implemented)", "wimax.extended_diuc_dependent_ie.data_location", FT_BYTES, BASE_HEX, NULL, 0x0, "", HFILL }
	},
	{	/* 8.4.5.3.7 CID_Switch_IE */
		&hf_extended_diuc_dependent_ie_cid_switch,
		{"CID_Switch_IE (not implemented)", "wimax.extended_diuc_dependent_ie.cid_switch", FT_BYTES, BASE_HEX, NULL, 0x0, "", HFILL }
	},

	{	/* 8.4.5.3.8 MIMO_DL_Basic_IE */
		&hf_extended_diuc_dependent_ie_mimo_dl_basic,
		{"MIMO_DL_Basic_IE (not implemented)", "wimax.extended_diuc_dependent_ie.mimo_dl_basic", FT_BYTES, BASE_HEX, NULL, 0x0, "", HFILL }
	},
	{	/* 8.4.5.3.9 MIMO_DL_Enhanced_IE */
		&hf_extended_diuc_dependent_ie_mimo_dl_enhanced,
		{"MIMO_DL_Enhanced_IE (not implemented)", "wimax.extended_diuc_dependent_ie.mimo_dl_enhanced", FT_BYTES, BASE_HEX, NULL, 0x0, "", HFILL }
	},
	{	/* 8.4.5.3.10 HARQ_Map_Pointer_IE */
		&hf_extended_diuc_dependent_ie_harq_map_pointer,
		{"HARQ_Map_Pointer_IE (not implemented)", "wimax.extended_diuc_dependent_ie.harq_map_pointer", FT_BYTES, BASE_HEX, NULL, 0x0, "", HFILL }
	},
	{	/* 8.4.5.3.11 PHYMOD_DL_IE */
		&hf_extended_diuc_dependent_ie_phymod_dl,
		{"PHYMOD_DL_IE (not implemented)", "wimax.extended_diuc_dependent_ie.phymod_dl", FT_BYTES, BASE_HEX, NULL, 0x0, "", HFILL }
	},
	{	/* 8.4.5.3.13 DL PUSC Burst Allocation in Other Segment IE */
		&hf_extended_diuc_dependent_ie_dl_pusc_burst_allocation,
		{"DL_PUSC_Burst_Allocation_in_Other_Segment_IE (not implemented)", "wimax.extended_diuc_dependent_ie.dl_pusc_burst_allocation", FT_BYTES, BASE_HEX, NULL, 0x0, "", HFILL }
	},
	{	/* 8.4.5.3.19 UL_interference_and_noise_level_IE */
		&hf_extended_diuc_dependent_ie_ul_interference_and_noise_level,
		{"UL_interference_and_noise_level_IE (not implemented)", "wimax.extended_diuc_dependent_ie.ul_interference_and_noise_level", FT_BYTES, BASE_HEX, NULL, 0x0, "", HFILL }
	},
	{	/* unknown DIUC */
		&hf_extended_diuc_dependent_ie_unknown_diuc,
		{"Unknown Extended DIUC", "wimax.extended_diuc_dependent_ie.unknown_diuc", FT_BYTES, BASE_HEX, NULL, 0x0, "", HFILL }
	}
};

/* Register Wimax Compact DL-MAP IE Protocol */
void proto_register_wimax_compact_dlmap_ie(void)
{
	if (proto_wimax_compact_dlmap_ie_decoder == -1)
	{
		proto_wimax_compact_dlmap_ie_decoder = proto_wimax;

		proto_register_subtree_array(ett, array_length(ett));
		proto_register_field_array(proto_wimax_compact_dlmap_ie_decoder, hf_compact_dlmap, array_length(hf_compact_dlmap));
		proto_register_field_array(proto_wimax_compact_dlmap_ie_decoder, hf_format_config, array_length(hf_format_config));
		proto_register_field_array(proto_wimax_compact_dlmap_ie_decoder, hf_rcid, array_length(hf_rcid));
		proto_register_field_array(proto_wimax_compact_dlmap_ie_decoder, hf_harq_control, array_length(hf_harq_control));
		proto_register_field_array(proto_wimax_compact_dlmap_ie_decoder, hf_cqich_control, array_length(hf_cqich_control));
		proto_register_field_array(proto_wimax_compact_dlmap_ie_decoder, hf_extension_type, array_length(hf_extension_type));
		proto_register_field_array(proto_wimax_compact_dlmap_ie_decoder, hf_extended_diuc, array_length(hf_extended_diuc));
	}
}

/* Compact DL-MAP IE Types (table 89) */
#define COMPACT_DL_MAP_TYPE_NORMAL_SUBCHANNEL	0
#define COMPACT_DL_MAP_TYPE_BAND_AMC		1

⌨️ 快捷键说明

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