亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? plugins-wimax-wimax_pdu_decoder.c

?? Intel的WIMAX代碼,主要是mac層code
?? C
字號:
plugins/wimax/wimax_pdu_decoder.c - Google Code Search這是 Google 取自 
      http://anonsvn.wireshark.org/wireshark/trunk 的 
      plugins/wimax/wimax_pdu_decoder.c 緩存副本

      Google 和網頁作者無關,不對網頁的內容負責。



http://anonsvn.wireshark.org/wireshark/trunk/plugins/wimax/
          AUTHORS
COPYING
ChangeLog
Makefile.am
Makefile.common
Makefile.nmake
README.wimax
crc.c
crc.h
crc_data.c
mac_hd_generic_decoder.c
mac_hd_type1_decoder.c
mac_hd_type2_decoder.c
mac_mgmt_msg_decoder.c
moduleinfo.h
moduleinfo.nmake
msg_aas_beam.c
msg_aas_fbck.c
msg_arq.c
msg_clk_cmp.c
msg_dcd.c
msg_dlmap.c
msg_dreg.c
msg_dsa.c
msg_dsc.c
msg_dsd.c
msg_dsx_rvd.c
msg_fpc.c
msg_pkm.c
msg_pmc.c
msg_prc_lt_ctrl.c
msg_reg_req.c
msg_reg_rsp.c
msg_rep.c
msg_res_cmd.c
msg_rng_req.c
msg_rng_rsp.c
msg_sbc.c
msg_ucd.c
msg_ulmap.c
packet-wmx.c
plugin.rc.in
wimax_bits.h
wimax_cdma_code_decoder.c
wimax_compact_dlmap_ie_decoder.c
wimax_compact_ulmap_ie_decoder.c
wimax_fch_decoder.c
wimax_ffb_decoder.c
wimax_hack_decoder.c
wimax_harq_map_decoder.c
wimax_mac.h
wimax_pdu_decoder.c
wimax_phy_attributes_decoder.c
wimax_tlv.c
wimax_tlv.h
wimax_utils.c
wimax_utils.h
    /* wimax_pdu_decoder.c
 * WiMax PDU Burst decoder
 *
 * Copyright (c) 2007 by Intel Corporation.
 *
 * Author: Lu Pan <lu.pan@intel.com>
 *
 * $Id$
 *
 * Wireshark - Network traffic analyzer
 * By Gerald Combs <gerald@wireshark.org>
 * Copyright 1999 Gerald Combs
 *
 * This program is free software; you can redistribute it and/or
 * modify it under the terms of the GNU General Public License
 * as published by the Free Software Foundation; either version 2
 * of the License, or (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
 */

/* Include files */

#ifdef HAVE_CONFIG_H
#include "config.h"
#endif

#include <glib.h>
#include <epan/packet.h>
#include <epan/prefs.h>
#include "crc.h"

extern gint proto_wimax;

extern void proto_register_mac_header_generic(void);
extern void proto_register_mac_header_type_1(void);
extern void proto_register_mac_header_type_2(void);


/* MAC Header dissector prototypes */
extern void dissect_mac_header_generic_decoder(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree);
extern void dissect_mac_header_type_1_decoder(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree);
extern void dissect_mac_header_type_2_decoder(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree);
extern void dissector_wimax_harq_map_decoder(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree);
extern gboolean is_down_link(address *src_address);
extern gint wimax_decode_dlmap_reduced_aas(tvbuff_t *tvb, packet_info *pinfo, proto_tree *base_tree);
extern gint wimax_decode_dlmapc(tvbuff_t *tvb, packet_info *pinfo, proto_tree *pdu_tree);

#define WIMAX_PDU_PADDING_MASK           0xFF
#define WIMAX_INVALID_PDU_MASK           0xF0
#define WIMAX_MAP_TYPE_MASK              0xE0  /* 0b111 */
#define WIMAX_HARQ_MAP_MSG_IND           0xE0  /* 0b111 */
#define WIMAX_COMPRESSED_DL_MAP_IND      0xC0  /* 0b110 */
#define REDUCED_PRIVATE_MAP_MASK         0x0C  /* 0b11 */

#define WIMAX_MAC_HEADER_SIZE            6
#define WIMAX_MAC_HEADER_INFO_FIELDS     5
#define WIMAX_MAC_HEADER_HT_FIELD        0x80
#define WIMAX_MAC_HEADER_EC_FIELD        0x40
#define WIMAX_MAC_HEADER_LENGTH_MSB_MASK 0x07

#define WIMAX_HARQ_MAP_MSG_LENGTH_MASK1  0x07FC
/* Global Variables. */
gboolean first_gmh;

/* forward reference */
static void dissect_wimax_pdu_decoder(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree);

static gint proto_wimax_pdu_decoder = -1;
static gint ett_wimax_pdu_decoder = -1;

static int hf_wimax_value_bytes = -1;

/* PDU display */
static hf_register_info hf[] =
{
	{
		&hf_wimax_value_bytes,
		{
			"Values", "wimax.pdu.value",
			FT_BYTES, BASE_HEX, NULL, 0x0,
			"", HFILL
		}
	},
};

/* Setup protocol subtree array */
static gint *ett[] =
{
	&ett_wimax_pdu_decoder,
};

/* Register Wimax PDU Burst Protocol */
void proto_register_wimax_pdu(void)
{
	if (proto_wimax_pdu_decoder == -1)
	{
		proto_wimax_pdu_decoder = proto_wimax;

		register_dissector("wimax_pdu_burst_handler", dissect_wimax_pdu_decoder, -1);
		proto_register_field_array(proto_wimax_pdu_decoder, hf, array_length(hf));
		proto_register_subtree_array(ett, array_length(ett));

		proto_register_mac_header_generic();
		proto_register_mac_header_type_1();
		proto_register_mac_header_type_2();
	}
}

static void dissect_wimax_pdu_decoder(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
{
	guint offset;
	guint mac_ht, mac_ec;
	guint first_byte, length;
	guint mac_hcs, mac_hcs_calculated;
	proto_item *pdu_item = NULL;
	proto_tree *pdu_tree = NULL;

#ifndef STATIC_DATA
	/* generate the table of CRC32  remainders for all possible bytes */
	wimax_mac_gen_crc32_table();
	/* generate the table of CRC8 remainders for all possible bytes */
	wimax_mac_gen_crc8_table();
#endif

	/* parsing the PDU burst */
	for(offset = 0; offset < tvb_reported_length(tvb); )
	{
		if (offset == 0)
		{
			first_gmh = TRUE;
		}
		else
		{
			first_gmh = FALSE;
		}
		/* get the length of the remainder */
		length = tvb_reported_length_remaining(tvb, offset);
		/* get the first byte at offset */
		first_byte = tvb_get_guint8(tvb, offset);
		/* check for padding */
		if(first_byte == WIMAX_PDU_PADDING_MASK)
		{	/* Padding */
			/* display message */
			pdu_item = proto_tree_add_protocol_format(tree, proto_wimax_pdu_decoder, tvb, offset, length, "Padding (%u bytes)", length);
			/* add subtree */
		        pdu_tree = proto_item_add_subtree(pdu_item, ett_wimax_pdu_decoder);
			/* display the padding in Hex */
			proto_tree_add_item(pdu_tree, hf_wimax_value_bytes, tvb, offset, length, FALSE);
			break;
		}
		else if((first_byte & WIMAX_MAP_TYPE_MASK) == WIMAX_HARQ_MAP_MSG_IND)
		{	/* HARQ MAP message (no mac header) */
			/* get the HARQ MAp Message Length */
			length = ((tvb_get_ntohs(tvb, offset) & WIMAX_HARQ_MAP_MSG_LENGTH_MASK1) >> 2);
			if (length == 0)
			{
				length = 3;	/* At least 3 bytes.  This prevents endless loop */
			}
			dissector_wimax_harq_map_decoder(tvb_new_subset(tvb,offset,length,length), pinfo, tree);
			offset += length;
			continue;
		}
		else if((first_byte & WIMAX_MAP_TYPE_MASK) == WIMAX_COMPRESSED_DL_MAP_IND)
		{
			if(is_down_link(&pinfo->src))
			{	/* decode compressed dl-map without mac header */
				if ((first_byte & REDUCED_PRIVATE_MAP_MASK) == REDUCED_PRIVATE_MAP_MASK)
				{
					length = wimax_decode_dlmap_reduced_aas(tvb, pinfo, tree);
				}
				else
				{
					length = wimax_decode_dlmapc(tvb, pinfo, tree);
				}
				offset += length;
				continue;
			}
		}
		else if((first_byte & WIMAX_INVALID_PDU_MASK) == WIMAX_INVALID_PDU_MASK)
		{	/* Invalid PDU */
			/* update the info column */
			if (check_col(pinfo->cinfo, COL_INFO))
			{
				col_append_sep_str(pinfo->cinfo, COL_INFO, NULL, "Invalid PDU");
			}
			/* display message */
			pdu_item = proto_tree_add_protocol_format(tree, proto_wimax_pdu_decoder, tvb, offset, length, "Invalid PDU  (%u bytes)", length);
			/* add subtree */
			pdu_tree = proto_item_add_subtree(pdu_item, ett_wimax_pdu_decoder);
				/* display the invalid MAC Header in Hex */
			proto_tree_add_item(pdu_tree, hf_wimax_value_bytes, tvb, offset, length, FALSE);
			break;
		}
		/* calculate the MAC header HCS */
		mac_hcs_calculated = wimax_mac_calc_crc8((guint8 *)tvb_get_ptr(tvb, offset, WIMAX_MAC_HEADER_INFO_FIELDS), WIMAX_MAC_HEADER_INFO_FIELDS);
		/* get the Header Check Sequence (HCS) in the header */
		mac_hcs = tvb_get_guint8(tvb, offset + WIMAX_MAC_HEADER_SIZE - 1);
		/* verify the HCS */
		if(mac_hcs != mac_hcs_calculated)
		{
			/* update the info column */
			if (check_col(pinfo->cinfo, COL_INFO))
			{
				col_append_sep_str(pinfo->cinfo, COL_INFO, NULL, "MAC Header CRC error");
			}
			/* display message */
			pdu_item = proto_tree_add_protocol_format(tree, proto_wimax_pdu_decoder, tvb, offset, WIMAX_MAC_HEADER_SIZE, "MAC Header CRC error %X (in header) and %X (calculated)", mac_hcs, mac_hcs_calculated);
			/* add subtree */
		        pdu_tree = proto_item_add_subtree(pdu_item, ett_wimax_pdu_decoder);
			/* display the bad MAC Header in Hex */
			proto_tree_add_item(pdu_tree, hf_wimax_value_bytes, tvb, offset, length, FALSE);
			break;
		}
		/* get the Header Type (HT) */
		mac_ht = ((first_byte & WIMAX_MAC_HEADER_HT_FIELD)?1:0);
		/* get the Encryption Control (EC) */
		mac_ec = ((first_byte & WIMAX_MAC_HEADER_EC_FIELD)?1:0);
		/* update the MAC length for Generic MAC frame */
		if(!mac_ht)
		{	/* Generic MAC Header with payload */
			/* get the MAC length */
			length = (tvb_get_guint8(tvb, offset+1) & WIMAX_MAC_HEADER_LENGTH_MSB_MASK);
			length = ((length<<8) | tvb_get_guint8(tvb, offset+2));
		}
		else	/* MAC signaling Headers or Bandwidth Request Headers */
		{	/* set the mac length */
			length = WIMAX_MAC_HEADER_SIZE;
		}
		/* display PDU frame info */
        /*
		pdu_item = proto_tree_add_protocol_format(tree, proto_wimax_pdu_decoder, tvb, offset, length, "PDU Frame (%u bytes)", length);
        */
		pdu_item = proto_tree_add_protocol_format(tree, proto_wimax_pdu_decoder, tvb, offset, length, "PDU (%u bytes)", length);
		/* add PDU subtree */
		pdu_tree = proto_item_add_subtree(pdu_item, ett_wimax_pdu_decoder);
		if (length == 0) {
			offset += 6;	/* Add header size. */
			/* Must skip the code below or tvb_new_subset()
			 * keeps allocating memory until it runs out. */
			continue;
		}
		/* process the valid MAC header */
		if(mac_ht)
		{	/* MAC signaling Headers or Bandwidth Request Headers */
			/* check the header type */
			if(mac_ec)
			{	/* MAC Signaling Header Type II Header */
				proto_item_append_text(pdu_item, " - Mac Type II Header: ");
				dissect_mac_header_type_2_decoder(tvb_new_subset(tvb,offset,length,length), pinfo, pdu_tree);
			}
			else
			{	/* MAC Signaling Header Type I Header */
				proto_item_append_text(pdu_item, " - Mac Type I Header: ");
				dissect_mac_header_type_1_decoder(tvb_new_subset(tvb,offset,length,length), pinfo, pdu_tree);
			}
		}
		else	/* Generic MAC Header with payload */
		{
			dissect_mac_header_generic_decoder(tvb_new_subset(tvb,offset,length,length), pinfo, pdu_tree);
		}
		offset += length;
	}
}



      取自 
      http://anonsvn.wireshark.org/wireshark/trunk 的 
      plugins/wimax/wimax_pdu_decoder.c - LGPL - C


?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲免费视频成人| 久久久激情视频| 亚洲成a人片在线不卡一二三区| 成人性视频免费网站| 久久精品一区八戒影视| 成人夜色视频网站在线观看| 国产精品热久久久久夜色精品三区| 国产成人在线视频网址| 亚洲欧洲精品成人久久奇米网| av电影一区二区| 夜色激情一区二区| 欧美丰满美乳xxx高潮www| 奇米四色…亚洲| 2023国产精品视频| 99久久伊人网影院| 婷婷亚洲久悠悠色悠在线播放| 日韩免费成人网| 成人av资源在线| 亚洲午夜久久久久| 久久综合色婷婷| 97成人超碰视| 蜜臀av性久久久久蜜臀aⅴ流畅| 2020国产精品自拍| 91年精品国产| 麻豆精品新av中文字幕| 国产精品久久毛片a| 欧美日韩精品一区视频| 国产精品一区二区三区网站| 亚洲精品欧美在线| 欧美xxxxx牲另类人与| av电影一区二区| 久久国产福利国产秒拍| 亚洲美女偷拍久久| 精品国产污污免费网站入口 | 亚洲精品国产精华液| 欧美日韩不卡在线| 成人综合在线观看| 日本视频一区二区| 一区二区三区四区国产精品| 日韩欧美电影在线| 色吊一区二区三区| 国产91精品精华液一区二区三区 | 成人av免费观看| 日精品一区二区| 亚洲天堂免费看| 久久蜜桃香蕉精品一区二区三区| 91美女蜜桃在线| 成人一区二区在线观看| 蜜臀久久久99精品久久久久久| 综合欧美亚洲日本| 国产喂奶挤奶一区二区三区| 91麻豆精品国产91久久久资源速度 | 日韩欧美国产午夜精品| 色成人在线视频| 99久久精品免费看| 粉嫩一区二区三区在线看| 青草国产精品久久久久久| 亚洲综合小说图片| 中文字幕欧美一区| 国产精品美女视频| 久久久久久夜精品精品免费| 欧美一区二区三区四区视频| 欧美日韩一二区| 91看片淫黄大片一级| 成人小视频免费在线观看| 麻豆国产欧美日韩综合精品二区| 亚洲成人精品影院| 亚洲一区二区成人在线观看| 亚洲日本在线看| 中文字幕一区二区三区在线观看| 国产日韩精品一区二区浪潮av | 久久久久久久久免费| 日韩一区二区三| 欧美一区二视频| 91精品国产综合久久精品性色| 在线观看视频91| 欧美视频一区二区三区| 色老汉av一区二区三区| eeuss鲁片一区二区三区| 丁香激情综合五月| aaa亚洲精品| 97se亚洲国产综合在线| 91美女视频网站| 欧洲生活片亚洲生活在线观看| 欧美综合一区二区三区| 在线欧美小视频| 欧美在线不卡视频| 欧美乱妇20p| 日韩女优毛片在线| 国产婷婷色一区二区三区| 国产日韩欧美精品一区| 1000精品久久久久久久久| 亚洲色图欧美在线| 亚洲国产另类av| 日本成人在线电影网| 另类的小说在线视频另类成人小视频在线| 免费人成在线不卡| 国产91精品入口| 欧美综合一区二区| 欧美videos中文字幕| 欧美激情一区二区三区蜜桃视频| 亚洲视频中文字幕| 性久久久久久久久久久久| 蜜桃91丨九色丨蝌蚪91桃色| 国产精选一区二区三区| 99精品久久免费看蜜臀剧情介绍| 欧美三级在线播放| 久久这里只有精品视频网| 亚洲欧洲三级电影| 亚洲第一主播视频| 国产精品一品二品| 欧美三级电影网| 久久影视一区二区| 一区二区三区成人在线视频| 日本在线观看不卡视频| 国产电影一区二区三区| 欧美中文字幕亚洲一区二区va在线 | 国产精品一级在线| 欧洲人成人精品| 国产亚洲欧美色| 亚洲成a人片综合在线| 国产精品18久久久久久久久| 一本到不卡免费一区二区| 欧美一区二区三区免费大片| 日本一区二区三区在线观看| 亚洲成人av电影在线| 国产成人av一区| 亚洲品质自拍视频网站| 免费精品视频最新在线| 99国产精品国产精品毛片| 日韩欧美黄色影院| 亚洲黄网站在线观看| 国产成人精品亚洲777人妖| 欧美日韩国产中文| 亚洲图片你懂的| 国产一区二区三区香蕉| 91精品国产综合久久久久久漫画 | 777xxx欧美| 亚洲乱码中文字幕| 国产91精品久久久久久久网曝门| 91精品国产一区二区三区| 综合色天天鬼久久鬼色| 国产成人综合网| 欧美精品一区二区三区在线播放| 亚洲成av人在线观看| 91蝌蚪国产九色| 18成人在线视频| 国产精品白丝av| 精品国产一区二区三区久久影院| 亚洲一区二区三区国产| 91免费版在线看| 国产精品拍天天在线| 韩日欧美一区二区三区| 欧美一级午夜免费电影| 午夜电影一区二区三区| 欧美中文字幕久久| 亚洲国产日韩综合久久精品| 91丨porny丨户外露出| 国产精品人成在线观看免费 | 另类小说视频一区二区| 欧美日韩久久不卡| 亚洲444eee在线观看| 欧美调教femdomvk| 香蕉影视欧美成人| 欧美吻胸吃奶大尺度电影| 亚洲国产成人tv| 欧美日韩三级一区| 亚洲成在人线在线播放| 欧美精品高清视频| 日韩电影在线一区| 日韩视频永久免费| 久久 天天综合| 国产人成一区二区三区影院| 国产一区二区免费看| 亚洲精品一区二区三区福利 | 欧美一级黄色录像| 日本不卡一区二区三区| 日韩欧美国产1| 国产精品系列在线播放| 国产精品久久久爽爽爽麻豆色哟哟| 国产**成人网毛片九色 | 成人精品一区二区三区中文字幕 | 精品国产三级电影在线观看| 精品亚洲免费视频| 中文字幕二三区不卡| 色综合天天综合网天天看片| 亚洲一区中文在线| 日韩一区二区三区在线视频| 国精品**一区二区三区在线蜜桃| 国产三级三级三级精品8ⅰ区| 成人晚上爱看视频| 亚洲精品免费播放| 91精品婷婷国产综合久久| 韩国一区二区三区| 日韩理论在线观看| 91精品福利在线一区二区三区| 久久精品国产一区二区三 | 久久夜色精品国产欧美乱极品| 成人午夜精品一区二区三区| 亚洲另类春色校园小说|