?? ip.h
字號:
/**---------------------版權(quán) (c)----------------------------------------------------------***
*** 作者:顏章健 ***
*** 郵件:jenkinyan@163.com ***
*** ***
***---------------------File Info---------------------------------------------------------***
*** 創(chuàng) 建 人: 顏章健 ***
*** 創(chuàng)建日期: 2008-03-14 ***
*** 創(chuàng)建版本: ***
*** 文件描述: ***
***---------------------------------------------------------------------------------------***
*** 修 訂 人: ***
*** 修訂日期: ***
*** 修訂版本: ***
*** 修訂描述 ***
***---------------------------------------------------------------------------------------**/
#ifndef __ip_h_
#define __ip_h_
// IP包重組緩沖區(qū)配置:超出MAX_IP_PACKETS個數(shù)的IP包將被丟棄,除非IP包沒有被分片
#define MAX_IP_PACKETS 0 // 緩沖區(qū)個數(shù)
#define MAX_IP_PACKET_LENGTH 1508 // 每個緩沖區(qū)長度
// IP包重組狀態(tài)
#define IPPS_DUMMY 0 // 緩沖區(qū)為空
#define IPPS_BUSY 1 // 正在重組
#define IPPS_REDY 2 // 重組完成
// IP包上層協(xié)議類型
#define IPF_ICMP 1
#define IPF_UDP 17
#define IPF_TCP 6
typedef struct _IP_HEAD_S
{
uint8 VerAndHeadLen; // 版本及頭部
uint8 Service; // 服務(wù)類型
uint16 TotalLen; // 數(shù)據(jù)包總長
uint16 Id; // 標(biāo)識
uint16 FlagAndOffset; // 標(biāo)志及片偏移
uint8 TTL; // 生存時間
uint8 Protocol; // 上層協(xié)議
uint16 CRC; // 頭部檢驗
uint8 SourceIp[4]; // 源IP地址
uint8 DestIp[4]; // 目的IP地址
}IP_HEAD_S;
typedef union _IP_HEAD
{
IP_HEAD_S s;
uint8 b[20];
}IP_HEAD;
typedef struct _NET_LAYER
{
uint16 MTU; // 最大傳輸單元:即IP包最大產(chǎn)度
uint8 *Rxd; // 接收指針
uint16 Rxl; // 接收長度
void (*SendPacket)(uint8 /*Protocol*/,uint8 */*DestIp*/,NET_PKT */*Packet*/);
}NET_LAYER;
//void IpReceiveTask(void); // changed by Yan Zhangjian @ 2008-04-10
void IpReceiveTask(uint8 */*Rxd*/, uint16 /*Rxl*/);
void NetLayerInit(void);
void IpPutPacket(uint8 /*Protocol*/, uint8 */*DestIp*/, NET_PKT */*Packet*/);
#endif
/********************************************************************************************
*** 文件結(jié)束 ***
********************************************************************************************/
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -