📄 tcp_ip_cfg.h
字号:
#include "stdio.h"
#define IN_RAM
#define EX_RAM
#define IN_CODE
#define USE_DATA
//#define Big_End
#define Little_End
#define MAX_REC_BUFF 1
union REC_BUFF_UNION
{
uint32 Dwords[384];
uint16 words[768];
uint8 bytes[1536];
};
#define IN_RAM
#define EX_RAM
#define IN_CODE
#define USE_DATA
#define ETHERNET_EXT
#define MAX_NET_PORT 0x01
#define MAX_ARP_TERM 50
#define MAX_TCP_DATA 1460
#define MAX_TCP_UDP_DATA_link_buf_len 16384
#define MAX_TCP_LINKS 15
#define MAX_UDP_LINKS 4
/* I P在首部中存入一个长度为
8 b i t的数值,称作协议域。1表示为I C M P协议,2表示为I G M P协议,6表示为T C P协议,1 7表
示为U D P协议*/
#define ICMP 1
#define IGMP 2
#define TCP 6
#define UDP 17
/*定义MAC_IP地址表的长度*/
#define Maximum_Item_for_MAC_IP_MAPTABLE 100
#define MAX_UDP_Listening_Ports 20
#define MAX_TCP_Listening_Ports 20
/*本地端口分配表的长度*/
#define MAX_Local_PORT_Pool_SIZE 100
#define IP_PACKET 0x0008
#define ARP_PACKET 0x0608
typedef struct {
uint8 DestMacId[6]; /*目的网卡地址*/
uint8 SourceMacId[6]; /*源网卡地址*/
uint16 NextProtocal; /*下一层协议*/
} ipethernet;
struct _pkst{
struct _pkst *STPTR;
unsigned int length;
unsigned char *DAPTR;
};//typedef
struct a_t{
unsigned char TTL;
unsigned char IP_NUM[4];
unsigned char MAC_NUM[6];
};
union w { uint32 dwords;
struct {uint16 low;uint16 high;}words;
struct {uint8 byte0;uint8 byte1;uint8 byte2;uint8 byte3;}bytes;
};
typedef struct {
uint8 My_Ip[4];
uint8 My_Gateway[4];
uint8 My_Ip_Mark[4];
uint8 My_Mac[6];
uint8 My_Gateway_Mac[6];
uint8 Gateway_IP_TTL;
struct a_t ARP_TERM[MAX_ARP_TERM];
} NetP;
typedef struct{
u8 DEST_Port[2];
u8 SRC_Port [2];
u8 DEST_IP_Address[4];
u8 SRC_IP_Address [4];
u8 UDP_Buff_Queue[MAX_TCP_UDP_DATA_link_buf_len];
u8 Queue_Full;
u8 EN;
u16 Queue_Rear;
u16 Queue_Front;
u8 SRC_SN[4];
u8 DEST_SN[4];
u8 SRC_WIN[2];
u8 DEST_WIN[2];
u8 PROTOCOL;
u8 status;
u8 ACK_Unsended;
u16 last_pkt_len;
u32 timeout_ack;
u32 timeout;
u8 type;
}SOCKET;
struct UDP_Header{
u16 SRC_Port;
u16 DEST_Port;
u16 UDP_Len;
u16 checksum;
};
struct TCP_Header{
u16 SRC_Port;
u16 DEST_Port;
u32 SN;
u32 SN_For_Confirm;
u16 Control;
u16 Win;
u16 checksum;
u16 Urgent_Ptr;
u8 Optional_Item[8];
};
struct sockaddr{
u8 sin_family;
u8 sin_addr[4];
u16 sin_port;
};
#define UDP_PROTOCOL 0
#define TCP_PROTOCOL 1
#define Listening 1
#define NOT_Listening 0
/*TCP_Socket的状态宏定义*/
#define Closed 0
#define Link_established 1
#define Half_closed 2 /*半关闭状态*/
#define Data_Transmition_State 3
/*TCP 首部标记比特*/
#define URG (1 << 5)
#define ACK (1 << 4)
#define PSH (1 << 3)
#define RST (1 << 2)
#define SYN (1 << 1)
#define FIN 1
/************** first Net Port Config **************************/
#define My_Mac_1ID {0x12,0x34,0x56,0x78,0x9a,0xbc}//将RTL8019的物理地址存储在程序空间?
#define IP_MARK_1ID {255,255,255,0} //255.255.255.0,子网掩码
#define MY_IP_1ID {192,168,0,174}
#define MY_GATEWAY_1ID {192,168,0,1}
/**************End Net Port Config **************************/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -