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

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

?? ipv6.c

?? 用于以太網開發
?? C
字號:
#include <inet/datatypes.h>
#include <inet/ethernet.h>
#include <inet/ipv6.h>

#ifndef _htons
#define _htons(A)	((((A) & 0xFF00) >> 8) | \
			 (((A) & 0x00FF) << 8))
#endif

extern MBUF* ETH_CurrentInFrame (void);

/**	\brief Used for storing various information about the incoming IP packet
 *	
 *	Various fields from the IP packet are stored in this structure. These
 *	values are later used from other upper layer protocols (ICMP, UDP, TCP
 *	and possibly others) to extract needed information about the received
 *	packet. See ip_frame definition for struct information.
 */
struct ipv6_frame received_ip_packet;

/**	\brief Used for storing various information about the outgoing IP packet
 *	
 *	Various fields from the IP packet are stored in this structure. These
 *	values are filled based on the information supplied by the upper 
 * 	layer protocols (ICMP, UDP, TCP and possibly others) and used to form
 *	a correct IP packet (correct filed values, checksum,..). See ip_frame
 *	definition for struct information.
 */
struct ipv6_frame send_ip_packet;



/** \brief Process received IP frame
 *	\ingroup periodic_functions
 * 	\author 
 *		\li Jari Lahti
 *	\date 11.06.2002
 *	\param frame pointer to ethernet_frame structure holding information
 *		about the received frame that carries IP datagram.
 *	\return
 *		\li -1 - IP packet not OK
 *		\li >0 - Length of next layer data (IP packet OK)
 *
 *	Process received IP packet by checking necessary header information
 *	and storing it accordingly to received_ip_packet variable. If everything
 *	checks out, return length of the data carried in the IP datagram (for
 *	higher-level protocols), otherwise return -1.
 */
INT16 process_ip_in (struct ethernet_frame* frame)
{
  MBUF *pNBuf = 0;
  (void)frame;
	
	pNBuf = ETH_CurrentInFrame ();
	if ((received_ip_packet.protocol = (signed char)ipv6Input (pNBuf)) > 0)
	{
		memcpy (&received_ip_packet.sip, &((IPv6BUF *)pNBuf->data)->hdr.sip, sizeof(IPv6Addr));
		memcpy (&received_ip_packet.sip, &((IPv6BUF *)pNBuf->data)->hdr.sip, 2*sizeof(IPv6Addr));
		received_ip_packet.buf_index = sizeof(IPv6BUF);
		return _htons(((IPv6BUF *)pNBuf->data)->hdr.len);
	}
	return 0;
}


/******************************************************************************
*
*
******************************************************************************/
INT16 process_ip_out (IPv6Addr *rem_ip, UINT8 pcol, UINT8 tos, 
					  UINT8 ttl, 
					  UINT8* dat, 
					  UINT16 len )
{
	return ipv6Send (rem_ip,pcol,dat,len);
}



/******************************************************************************
 * \brief Used for constructuing IP checksum
 * 	\author 
 *		\li Jari Lahti
 *	\date 24.02.2002
 *	\param cs last checksum value
 *	\param dat byte to be added to checksum
 *	\param count byte indicating whether dat is MSB or LSB byte
 *	\return new checksum value
 *
 *	Based on count value, dat byte is added to checksum either as a MSB
 *	or a LSB byte and the new checksum value is then returned.
 *
 *****************************************************************************/
UINT16 ip_checksum (UINT16 cs, UINT8 dat, UINT8 count)
{
	UINT8 b = dat;
	UINT8 cs_l;
	UINT8 cs_h;
	
	cs_h = (UINT8)(cs >> 8); 
	cs_l = (UINT8)cs;

	if( count & 0x01 ) 
	{		/* We are processing LSB	*/
		
		if( (cs_l = cs_l + b) < b ) 
		{
			if( ++cs_h == 0 )
				cs_l++;
		}
		
	} else {
		/* We are processing MSB	*/
		
		if( (cs_h = cs_h + b) < b )	
		{
			if( ++cs_l == 0 )
				cs_h++;
		}
	}

	return( ( (UINT16)cs_h << 8 ) + cs_l);

}



/******************************************************************************
 *  \brief Used for constructuing IP checksum of a data buffer
 * 	\author 
 *		\li Jari Lahti
 *	\date 03.08.2003
 *	\param cs last checksum value
 *	\param buf buffer who's checksum we're calculating
 *	\param len length of data in buffer
 *	\return new checksum value
 *
 *	Calculates checksum of the data in buffer and returns new
 *	checksum value.
 *
 *****************************************************************************/
UINT32 ip_checksum_buf (UINT16 cs, UINT8* buf, UINT16 len)
{
	UINT16 dat;
	UINT32 temp;
	
	temp = cs;
	
	while(len>1)
	{
		len -= 2;
		dat = *buf++;
		dat <<= 8;
		dat |= *buf++;
		temp += dat;
	}
	
	temp = (temp >> 16) + (temp & 0xFFFF);	/* Add in carry		*/
	temp += (temp >>16);					/* Maybe one more	*/
	
	if(len)
		temp = ip_checksum(temp, *buf, 0);
	
	return( (UINT16) temp );

}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人黄色在线网站| 成人ar影院免费观看视频| 国产高清视频一区| 在线看国产日韩| 精品国产a毛片| 亚洲综合另类小说| 国产精品一卡二| 777a∨成人精品桃花网| 亚洲欧洲一区二区三区| 韩国视频一区二区| 69精品人人人人| 亚洲一区二区三区中文字幕在线| 国产黄色精品视频| 欧美大片顶级少妇| 蜜桃一区二区三区四区| 欧美日韩中字一区| 亚洲男人的天堂在线观看| 国产精品一区二区三区99| 日韩免费高清视频| 蜜臀av一区二区在线观看| 在线亚洲+欧美+日本专区| 国产精品不卡一区| 国产精品一品视频| 久久婷婷一区二区三区| 精品一区二区三区香蕉蜜桃 | 欧美亚洲一区二区三区四区| 精品国产一区二区三区久久影院| 亚洲va天堂va国产va久| 欧美系列在线观看| 一区二区三区在线视频免费观看| 99re视频这里只有精品| 国产精品麻豆网站| 99久久夜色精品国产网站| 国产精品色婷婷| 成人午夜短视频| 欧美国产欧美综合| 波多野结衣中文字幕一区| 国产欧美日韩在线看| 成人免费视频网站在线观看| 中文字幕乱码亚洲精品一区| 不卡一区在线观看| 综合久久久久久久| 欧洲在线/亚洲| 亚洲成人你懂的| 欧美一级午夜免费电影| 久久精品99国产精品日本| 欧美精品久久一区| 日韩国产在线观看一区| 欧美欧美欧美欧美| 老鸭窝一区二区久久精品| 日韩美女主播在线视频一区二区三区| 日韩成人免费电影| 日韩精品一区二区三区蜜臀| 国产一本一道久久香蕉| 国产精品国产三级国产普通话蜜臀| 成人看片黄a免费看在线| 国产精品女同互慰在线看| 91麻豆国产自产在线观看| 一区二区三区精品久久久| 欧美日韩卡一卡二| 国产一区二区三区日韩| 国产精品欧美极品| 欧美日韩精品欧美日韩精品一| 日本欧美肥老太交大片| 国产午夜精品久久久久久免费视| av一区二区不卡| 亚洲第一搞黄网站| 精品国产精品网麻豆系列| eeuss鲁一区二区三区| 午夜视频在线观看一区二区三区| 欧美成人video| 91麻豆精品视频| 久久av老司机精品网站导航| 中文字幕一区二区三区在线播放| 欧美老人xxxx18| 成人午夜碰碰视频| 欧美aa在线视频| 亚洲人精品一区| 精品国产凹凸成av人网站| 色婷婷国产精品| 精品一区二区三区在线观看国产| 亚洲精品视频在线观看免费| 日韩欧美三级在线| 色哟哟一区二区| 国产资源在线一区| 视频一区二区中文字幕| 中文子幕无线码一区tr| 欧美一区二区福利在线| 色哟哟日韩精品| 成人精品国产免费网站| 麻豆成人久久精品二区三区红| 亚洲人成精品久久久久久| 久久人人97超碰com| 91精品国模一区二区三区| 91丨九色丨蝌蚪富婆spa| 亚洲免费视频成人| av爱爱亚洲一区| 美女诱惑一区二区| 亚洲一区二区av电影| 国产精品看片你懂得| 精品国产伦一区二区三区观看体验 | 粉嫩欧美一区二区三区高清影视| 亚洲一区二区三区三| 国产精品热久久久久夜色精品三区| 精品日韩一区二区| 91精品免费在线| 欧美日韩亚洲国产综合| 色香蕉久久蜜桃| 99re热视频精品| 9i看片成人免费高清| 岛国精品在线播放| 日本亚洲天堂网| 国产亚洲一区二区三区四区| 色琪琪一区二区三区亚洲区| 国产成人在线看| 国产激情一区二区三区| 国产一区二区三区av电影| 久久电影网电视剧免费观看| 三级在线观看一区二区| 亚洲国产一区在线观看| 偷拍亚洲欧洲综合| 亚洲一区二区中文在线| 亚洲精品成人精品456| 曰韩精品一区二区| 亚洲综合免费观看高清完整版 | 中文字幕第一区| 久久午夜免费电影| 国产女人18毛片水真多成人如厕| 亚洲小说欧美激情另类| 亚洲成人一区在线| 日韩高清电影一区| 另类中文字幕网| 韩国v欧美v日本v亚洲v| 国产东北露脸精品视频| av在线免费不卡| 欧美日韩精品电影| 欧美成人bangbros| 国产精品欧美一级免费| 一区二区三区成人在线视频| 午夜视频一区二区三区| 麻豆成人av在线| 不卡视频免费播放| 欧美自拍偷拍一区| 日韩三级在线免费观看| 久久久国产精华| 亚洲视频在线一区| 日韩国产精品大片| 国产精品99久久久久久久女警| eeuss鲁一区二区三区| 欧美日韩日日摸| 久久久久久久久伊人| 亚洲自拍偷拍图区| 久久99深爱久久99精品| 91亚洲精品乱码久久久久久蜜桃| 欧美日韩一本到| 久久久久久久久免费| 亚洲成a人片在线观看中文| 色婷婷综合视频在线观看| 欧美性极品少妇| 日韩一区二区三区高清免费看看| 久久免费午夜影院| 亚洲午夜在线视频| 国产在线精品不卡| 欧美日韩免费电影| 日本一区二区久久| 麻豆精品久久久| 在线观看日韩av先锋影音电影院| 欧美大片国产精品| 亚洲第一久久影院| 成人av资源下载| 欧美成人精品高清在线播放| 亚洲日穴在线视频| 国产成人在线看| 日韩欧美国产不卡| 亚洲国产综合人成综合网站| 成人aa视频在线观看| 精品久久人人做人人爰| 亚洲一区在线观看网站| www.亚洲激情.com| 久久精品视频一区| 久久国产精品72免费观看| 69久久夜色精品国产69蝌蚪网| 一区二区三区中文在线| 972aa.com艺术欧美| 久久久久久久电影| 精品一区二区久久久| 欧美精品成人一区二区三区四区| 亚洲色图.com| 91性感美女视频| 中文字幕在线一区免费| 国产电影一区二区三区| 久久夜色精品一区| 久久国产精品72免费观看| 91精品国产综合久久福利软件 | 男男成人高潮片免费网站| 91黄视频在线| 一区二区三区在线观看欧美| 91亚洲国产成人精品一区二区三 | 丁香五精品蜜臀久久久久99网站 | 国产人成一区二区三区影院|