📄 net_config.h
字号:
#define DHCP_OPT_DNS_SERVER 6
#define DHCP_OPT_HOST_NAME 12
#define DHCP_OPT_POP3_SERVER 70
#define DHCP_OPT_REQUESTED_IP 50
#define DHCP_OPT_LEASE_TIME 51
#define DHCP_OPT_OVERLOAD 52
#define DHCP_OPT_MSG_TYPE 53
#define DHCP_OPT_SERV_IDENT 54
#define DHCP_OPT_PARAM_REQUEST 55
#define DHCP_OPT_T1_VALUE 58
#define DHCP_OPT_T2_VALUE 59
#define DHCP_OPT_CLIENT_IDENT 61
/* DNS defines */
#define DNS_SERVER_PORT 53 /* DNS Server UDP standard port */
#define DNS_FLAGS_STQUER 0x0100 /* Name Querry Flags */
/* DNS States */
#define DNS_STATE_READY 0 /* DNS Ready, waiting for user request */
#define DNS_STATE_BUSY 1 /* DNS Busy with resolving host IP */
#define DNS_STATE_RESEND 2 /* Request timed out, resending */
/* DNS user event codes */
#define DNS_EVT_SUCCESS 0 /* Host name successfully resolved */
#define DNS_EVT_NONAME 1 /* DNS Error, no such name */
#define DNS_EVT_TIMEOUT 2 /* Timeout resolving host */
#define DNS_EVT_ERROR 3 /* Erroneous response packet */
/* DNS 'get_host_by_name()' result codes */
#define DNS_RES_OK 0 /* Function finished OK */
#define DNS_ERROR_BUSY 1 /* DNS Client busy, can't process request */
#define DNS_ERROR_LABEL 2 /* Host name Label too long */
#define DNS_ERROR_NAME 3 /* Host name loo long */
#define DNS_ERROR_NOSRV 4 /* Prim. DNS server not specified (0.0.0.0)*/
#define DNS_ERROR_UDPSEND 5 /* UDP Send frame error */
/* Debug Module Definitions */
#define MEM 0 /* Dynamic Memory Module ID */
#define ETH 1 /* Ethernet Module ID */
#define PPP 2 /* PPP Module ID */
#define SLIP 3 /* SLIP Module ID */
#define ARP 4 /* ARP Module ID */
#define IP 5 /* IP Module ID */
#define ICMP 6 /* ICMP Module ID */
#define IGMP 7 /* IGMP Module ID */
#define UDP 8 /* UDP Module ID */
#define TCP 9 /* TCP Module ID */
#define NBNS 10 /* NBNS Module ID */
#define DHCP 11 /* DHCP Module ID */
#define DNS 12 /* DNS Module ID */
#define APP 13 /* Application Modules ID */
/*---------------------------------------------------------------------------*/
#ifdef __cplusplus // EC++
extern "C" {
#endif
typedef struct mem { /* << Memory Pool management struct >> */
struct mem *next; /* Next Memory Block in the list */
U32 len; /* Length of following block */
U8 content[1]; /* Memory Block Data content */
} MEMP;
typedef struct os_frame { /* << TcpNet system frame buffer struct >> */
U16 length; /* Total Length of data in frame */
U16 index; /* Buffer Position Index */
U8 data[1]; /* Buffer data (protocol headers + data) */
} OS_FRAME;
typedef struct eth_header { /* << Ethernet Header format >> */
U8 DestHwAdr[ETH_ADRLEN]; /* Ethernet destination hardware address */
U8 SrcHwAdr[ETH_ADRLEN]; /* Ethernet source hardware address */
U16 Prot; /* Protocol field of the Ethernet header. */
U8 Data[1]; /* Frame data 46-1500 bytes */
} ETH_HEADER;
#define ETH_FRAME(frame) ((ETH_HEADER *)&frame->data[0])
typedef struct ppp_header { /* << PPP Header format >> */
U16 Fcs; /* PPP frame control checksum - appended */
U8 Unused[8]; /* Unused array. */
U8 Adr; /* PPP Address Field - usually 0xFF */
U8 Ctrl; /* PPP Control Field - usually 0x03 */
U16 Prot; /* Protocol field of the PPP header */
U8 Data[1]; /* Frame data 46-1500 bytes */
} PPP_HEADER;
#define PPP_FRAME(frame) ((PPP_HEADER *)&frame->data[0])
typedef struct lcp_header { /* << LCP Header format >> */
U8 Code; /* LCP Code field */
U8 Id; /* Code identification */
U16 Len; /* Code length */
} LCP_HEADER;
#define LCP_FRAME(frame) ((LCP_HEADER *)&frame->data[PPP_FRMOFS+PPP_HEADER_LEN])
/* PPP-PAP Header is the same format as LCP */
#define PAP_HEADER LCP_HEADER
#define PAP_FRAME LCP_FRAME
/* PPP-IPCP Header is the same format as LCP */
#define IPCP_HEADER LCP_HEADER
#define IPCP_FRAME LCP_FRAME
/* PPP-CP Header - common header for PPP Control Protocols */
#define PPP_CP_FRAME LCP_FRAME
#define PPP_CP_CODE_REJ LCP_CODE_REJ
#define PPP_CP_PROT_REJ LCP_PROT_REJ
#define PPP_CP_HEADER_LEN LCP_HEADER_LEN
typedef struct arp_header { /* << ARP Header format >> */
U16 HwAdrSpace; /* Hardware Address Space */
U16 ProtAdrSpace; /* Protocol Address Space */
U8 HwLen; /* MAC address len */
U8 ProtLen; /* IP address length */
U16 OpCode; /* ARP/RARP Opcode */
U8 SrcHwAdr[ETH_ADRLEN]; /* Source Hardware Address */
U8 SrcIpAdr[IP_ADRLEN]; /* Source IP Address */
U8 DestHwAdr[ETH_ADRLEN]; /* Destination Hardware Address */
U8 DestIpAdr[IP_ADRLEN]; /* Destination IP Address */
} ARP_HEADER;
#define ARP_FRAME(frame) ((ARP_HEADER *)Ð_FRAME(frame)->Data[0])
typedef struct ip_header { /* << IP Header format >> */
U8 VerHLen; /* Version & Header Length field */
U8 Tos; /* Type Of Service field */
U16 Len; /* Total Length of IP packet */
U16 Id; /* IP Identification number */
U16 FragOfs; /* IP Flags & Fragment offsett */
U8 Ttl; /* Time to live */
U8 Prot; /* High level Protocol over IP */
U16 Chksum; /* IP Header Checksum */
U8 SrcIpAdr[IP_ADRLEN]; /* Source IP address */
U8 DestIpAdr[IP_ADRLEN]; /* Destination IP address */
} IP_HEADER;
#define IP_FRAME(frame) ((IP_HEADER *)Ð_FRAME(frame)->Data[0])
typedef struct icmp_header { /* << ICMP Header format >> */
U8 Type; /* Type of the message */
U8 Code; /* Message Code byte */
U16 Chksum; /* Checksum of ICMP header */
U8 Data[1]; /* ICMP frame start of Data field */
} ICMP_HEADER;
typedef struct igmp_header { /* << IGMP Header format >> */
U8 VerType; /* Version & Type of the message */
U8 Unused; /* Unused field */
U16 Chksum; /* Checksum of IGMP message */
U8 GrpIpAdr[IP_ADRLEN]; /* Group IP address */
} IGMP_HEADER;
#define IGMP_FRAME(frame) ((IGMP_HEADER *)&frame->data[IP_DATA_OFS])
typedef struct udp_header { /* << UDP Header format >> */
U16 SrcPort; /* Source port */
U16 DestPort; /* Destination port */
U16 Len; /* Length of UDP frame */
U16 Chksum; /* UDP frame checksum */
U8 Data[1]; /* UDP frame start of Data field */
} UDP_HEADER;
typedef struct tcp_header { /* << TCP Header format >> */
U16 SrcPort; /* Source port */
U16 DestPort; /* Destination port */
U32 SeqNr; /* Frame Sequence Number */
U32 AckNr; /* Frame Acknowledgment Number */
U8 HLen; /* Header Lenght of frame */
U8 Flags; /* TCP Frame Flags */
U16 Window; /* Size of Window */
U16 Chksum; /* TCP frame checksum */
U16 UrgentPtr; /* Urgent pointer */
} TCP_HEADER;
typedef struct nbns_header { /* << NBNS Header Format >> */
U16 TransId; /* NBNS Transaction Id */
U16 Flags; /* NBNS Frame Flags */
U16 QdCount; /* Num.of entries in Question section */
U16 AnCount; /* Answer Name Count */
U16 NsCount; /* Name Service Resource Record Count */
U16 ArCount; /* Name Service Additional Record Count */
U8 Data[1]; /* Message Data Field starts here */
} NBNS_HEADER;
#define NBNS_FRAME(buf) ((NBNS_HEADER *)buf)
#define DNS_FRAME(buf) ((NBNS_HEADER *)buf)
typedef struct arp_info { /* << ARP Cache Entry info >> */
U8 State; /* ARP Cache entry current state */
U8 Type; /* Cache Entry type */
U8 Retries; /* Number of Retries left */
U8 Tout; /* Cache Entry Timeout */
U8 HwAdr[ETH_ADRLEN]; /* Ethernet Hardware Address */
U8 IpAdr[IP_ADRLEN]; /* Ethernet IP Address */
} ARP_INFO;
typedef struct igmp_info { /* << IGMP Group info >> */
U8 State; /* Group membership current state */
U8 Tout; /* Timeout Timer for sending reports */
U8 GrpIpAdr[IP_ADRLEN]; /* Group IP address */
} IGMP_INFO;
typedef struct udp_info { /* << UDP Socket info >> */
U8 State; /* UDP Socket entry current state */
U8 McastTtl; /* MultiCast Time To Live */
U16 LocPort; /* Local UDP port of Socket */
U8 Tos; /* UDP Type of Service */
U8 Opt; /* UDP Socket Options */
/* Application Event CallBack function */
U16 (*cb_func)(U8 socket, U8 *rem_ip, U16 port, U8 *buf, U16 len);
} UDP_INFO;
typedef struct tcp_info { /* << TCP Socket info >> */
U8 State; /* TCP Socket entry current state */
U8 Type; /* TCP Socket type */
U8 Flags; /* State machine flags */
U8 Tos; /* Type of service allocated */
U8 RemIpAdr[IP_ADRLEN]; /* Remote IP address */
U16 RemPort; /* Remote TCP port */
U16 LocPort; /* Local TCP port */
U16 MaxSegSize; /* Transmit Max. Segment Size */
U16 WinSize; /* Receive Window Size */
U32 SendSeq; /* Current Send Sequence Number not acked */
U32 SendSeqNext; /* Next Send Sequence Number */
U32 RecSeqNext; /* Next Receive Sequence Number */
U16 Tout; /* Socket idle timeout (in seconds) */
U16 AliveTimer; /* Keep Alive timer value */
U16 RetryTimer; /* Retransmission timer value */
U8 TxFlags; /* TCP Transmit Flags */
U8 Retries; /* Number of retries left before aborting */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -