📄 net_config.h
字号:
/*----------------------------------------------------------------------------
* R T L - T C P N E T
*----------------------------------------------------------------------------
* Name: NET_CONFIG.H
* Purpose: Common TcpNet Definitions
* Rev.: V3.22
*----------------------------------------------------------------------------
* This code is part of the RealView Run-Time Library.
* Copyright (c) 2004-2008 KEIL - An ARM Company. All rights reserved.
*---------------------------------------------------------------------------*/
#ifndef __NET_CONFIG_H__
#define __NET_CONFIG_H__
#include "RTL.h"
/*----------------------------------------------------------------------------
* General Data Types
*---------------------------------------------------------------------------*/
#ifndef NULL
#ifdef __cplusplus // EC++
#define NULL 0
#else
#define NULL ((void *) 0)
#endif
#endif
#ifndef __RTL_EXT__
#define __RTL_EXT__
typedef char S8;
typedef unsigned char U8;
typedef short S16;
typedef unsigned short U16;
typedef int S32;
typedef unsigned int U32;
typedef long long S64;
typedef unsigned long long U64;
typedef unsigned char BIT;
typedef unsigned int BOOL;
#ifndef __TRUE
#define __TRUE 1
#endif
#ifndef __FALSE
#define __FALSE 0
#endif
#endif
#define SWAPB(w) ((w>>8)|(w<<8)&0xFFFF)/* Swap-exchange Hi<->Lo Bytes */
#define HIB(w) (U8)(w>>8) /* Extract Hi byte of Word */
#define LOB(w) (U8)(w) /* Extract Lo byte of Word */
#define OS_HEADER_LEN 4 /* TcpNet 'os_frame' header size */
/* Network Interfaces */
#define NETIF_ETH 0 /* Network interface: Ethernet */
#define NETIF_PPP 1 /* Network interface: PPP */
#define NETIF_SLIP 2 /* Network interface: Slip */
/* Ethernet Defines */
#define ETH_ADRLEN 6 /* Ethernet Address Length in bytes */
#define IP_ADRLEN 4 /* IP Address Length in bytes */
/* Frame Header length common for all */
#define PHY_HEADER_LEN (2*ETH_ADRLEN + 2) /* network interfaces. */
#define ARP_HEADER_LEN (2*(ETH_ADRLEN + IP_ADRLEN) + 8)
#define ETH_MTU 1514 /* Ethernet Frame Max Transfer Unit */
#define HW_TYPE_ETH 0x0001 /* Hardware type: Ethernet */
#define ETH_PROT_IP 0x0800 /* Ethernet Protocol type: IP */
#define ETH_PROT_ARP 0x0806 /* Ethernet Protocol type: ARP, RARP */
/* PPP Defines */
#define PPP_ESC 0x7D /* PPP ESC character */
#define PPP_FLAG 0x7E /* PPP Start/Stop framing flag */
#define PPP_MTU 1500 /* PPP Frame Max Transfer Unit */
#define PPP_FRMOFS (2*ETH_ADRLEN - 2)
#define PPP_HEADER_LEN 4 /* PPP Header Length */
#define PPP_PROT_LCP 0xC021 /* PPP Protocol type: LCP */
#define PPP_PROT_PAP 0xC023 /* PPP Protocol type: PAP */
#define PPP_PROT_CHAP 0xC223 /* PPP Protocol type: CHAP */
#define PPP_PROT_IPCP 0x8021 /* PPP Protocol type: IPCP */
#define PPP_PROT_IP 0x0021 /* PPP Protocol type: IP */
/* PPP-LCP Defines */
#define LCP_HEADER_LEN 4 /* LCP Header length */
#define LCP_CONF_RQ 1 /* LCP Configure-Request */
#define LCP_CONF_ACK 2 /* LCP Configure-Ack */
#define LCP_CONF_NAK 3 /* LCP Configure-Nak */
#define LCP_CONF_REJ 4 /* LCP Configure-Reject */
#define LCP_TERM_RQ 5 /* LCP Terminate-Request */
#define LCP_TERM_ACK 6 /* LCP Terminate-Ack */
#define LCP_CODE_REJ 7 /* LCP Code-Reject */
#define LCP_PROT_REJ 8 /* LCP Protocol-Reject */
#define LCP_ECHO_RQ 9 /* LCP Echo-Request */
#define LCP_ECHO_REP 10 /* LCP Echo-Reply */
#define LCP_DISC_RQ 11 /* LCP Discard-Request */
/* PPP-LCP Options */
#define LCP_OPT_MRU 1 /* LCP Opt: Maximum Receive Unit */
#define LCP_OPT_ACCMAP 2 /* LCP Opt: Async Control Character Map */
#define LCP_OPT_AUTHP 3 /* LCP Opt: Authentication Protocol */
#define LCP_OPT_QUALP 4 /* LCP Opt: Quality Protocol */
#define LCP_OPT_MAGIC 5 /* LCP Opt: Magic Number */
#define LCP_OPT_PROTC 7 /* LCP Opt: Protocol Field Compression */
#define LCP_OPT_ADDRC 8 /* LCP Opt: Addr and Ctrl Field Comression */
/* PPP State Flags */
#define PPP_SYNC 0x01 /* Synchronized, HDLC open flag received */
#define PPP_IS_ESC 0x02 /* Previous char received was ESC char */
#define PPP_MALLOC 0x04 /* PPP memory buffer allocated */
#define PPP_IS_FRAME 0x08 /* PPP valid frame received */
#define PPP_TX_ESC 0x10 /* PPP transmit ESC character */
#define PPP_PAP_AUTH 0x20 /* PPP PAP authent. start for client mode */
#define PPP_LCP_CONF 0x40 /* PPP LCP config. start for client mode */
#define PPP_IPCP_CONF 0x80 /* PPP IPCP config. start for client mode */
/* PPP-PAP Defines */
#define PAP_HEADER_LEN 4 /* PAP Header length */
#define PAP_AUTH_RQ 1 /* PAP Authenticate request */
#define PAP_AUTH_ACK 2 /* PAP Authenticate acknowledge */
#define PAP_AUTH_NAK 3 /* PAP Authenticate Not acknowledge */
/* PPP-IPCP Defines */
#define IPCP_HEADER_LEN 4 /* IPCP Header length */
#define IPCP_CONF_RQ 1 /* IPCP Configure-Request */
#define IPCP_CONF_ACK 2 /* IPCP Configure-Ack */
#define IPCP_CONF_NAK 3 /* IPCP Configure-Nak */
#define IPCP_CONF_REJ 4 /* IPCP Configure-Reject */
#define IPCP_TERM_RQ 5 /* IPCP Terminate-Request */
#define IPCP_TERM_ACK 6 /* IPCP Terminate-Ack */
#define IPCP_CODE_REJ 7 /* IPCP Code-Reject */
/* PPP-IPCP Options */
#define IPCP_OPT_IPADDRS 1 /* IPCP Opt: IP Addressess */
#define IPCP_OPT_IPCOMPR 2 /* IPCP Opt: IP Compression Protocol */
#define IPCP_OPT_IPADDR 3 /* IPCP Opt: IP Address */
/* SLIP Defines */
#define SLIP_END 0xC0 /* SLIP end of packet */
#define SLIP_ESC 0xDB /* SLIP escape characters (bit stuffing) */
#define SLIP_ESC_END 0xDC /* SLIP end data byte */
#define SLIP_ESC_ESC 0xDD /* SLIP esc data byte */
#define SLIP_MTU 1500 /* SLIP Frame Max Transfer Unit */
#define SLIP_FRMOFS PHY_HEADER_LEN /* SLIP frame offset */
/* SLIP State Flags */
#define SLIP_SYNC 0x01 /* Synchronized, Start of Packet received */
#define SLIP_IS_ESC 0x02 /* Previous char received was ESC char */
#define SLIP_MALLOC 0x04 /* PPP memory buffer allocated */
#define SLIP_IS_FRAME 0x08 /* PPP valid frame received */
#define SLIP_TX_ESC 0x10 /* PPP transmit ESC character */
/* ARP, RARP Opcode for 'Operation Field' value */
#define ARP_RQ 0x0001 /* ARP Request opcode */
#define ARP_REP 0x0002 /* ARP Reply 'opcode */
#define RARP_RQ 0x0003 /* RARP Request opcode */
#define RARP_REP 0x0004 /* RARP Reply opcode */
/* ARP Info States */
#define ARP_STATE_FREE 0 /* Unused entry (initial value) */
#define ARP_STATE_RESERVED 1 /* Reserved entry (allocated) */
#define ARP_STATE_PENDING 2 /* Entry is used but incomplete */
#define ARP_STATE_RESOLVED 3 /* Resolved entry */
#define ARP_STATE_REFRESH 4 /* Entry is being refreshed */
/* ARP Info Types */
#define ARP_FIXED_IP 0 /* Fixed IP adrs is refreshed after tout */
#define ARP_TEMP_IP 1 /* Temp adrs is removed after timeout */
/* IP Defines */
#define IP_HEADER_LEN 20 /* IP Header Length in bytes */
#define IP_OPT_LEN 40 /* Max IP Header option field length */
#define IP_MAX_HLEN (IP_HEADER_LEN + IP_OPT_LEN)
#define IP_DATA_OFS (PHY_HEADER_LEN + IP_HEADER_LEN)
#define IP_DEF_VERHLEN 0x45 /* Default IP Version and Header Length */
#define IP_NO_FRAGMENT 0x4000 /* Don't Fragment Flag */
#define IP_FRAGOFFMASK 0x1FFF /* Fragment offset mask */
#define IP_MOREFRAGS 0x2000 /* More fragments Flag */
/* Protocol over IP */
#define IP_ICMP 0x01 /* ICMP over IP */
#define IP_IGMP 0x02 /* IGMP over IP */
#define IP_UDP 0x11 /* UDP over IP */
#define IP_TCP 0x06 /* TCP over IP */
/* ICMP Defines */
#define ICMP_HEADER_LEN 4 /* ICMP Header Length in bytes */
/* ICMP message types */
#define ICMP_ECHO_REP 0 /* ICMP Echo Reply */
#define ICMP_ECHO_RQ 8 /* ICMP Echo Request */
/* IGMP Defines */
#define IGMP_HEADER_LEN 8 /* IGMP Header Length in bytes */
/* IGMP Info States */
#define IGMP_STATE_NON 0 /* Non-Member - free Entry */
#define IGMP_STATE_DELAY 1 /* Delaying Member wait for Querry/Report */
#define IGMP_STATE_IDLE 2 /* Idle Member of a group */
/* IGMP message types */
#define IGMP_MEM_QUERRY 0x11 /* IGMP Host Membership Querry (IGMPv1) */
#define IGMP_MEM_REPORT 0x12 /* IGMP Host Membership Report (IGMPv1) */
/* UDP Defines */
#define UDP_HEADER_LEN 8 /* UDP Header Length in bytes */
#define UDP_DATA_OFS (PHY_HEADER_LEN + IP_HEADER_LEN + UDP_HEADER_LEN)
#define UDP_MTU (ETH_MTU - PHY_HEADER_LEN - IP_HEADER_LEN)
/* UDP Options */
#define UDP_OPT_SEND_CS 0x01 /* Calculate Checksum for UDP send frames */
#define UDP_OPT_CHK_CS 0x02 /* Verify Checksum for received UDP frames */
/* UDP States */
#define UDP_STATE_FREE 0 /* Entry is free and unused */
#define UDP_STATE_CLOSED 1 /* Entry allocated, socket still closed */
#define UDP_STATE_OPENED 2 /* Socket opened for communication */
/* TCP Defines */
#define TCP_HEADER_LEN 20 /* TCP Header Length in bytes */
#define TCP_OPT_LEN 40 /* Max TCP Header option field length */
#define TCP_MAX_HLEN (TCP_HEADER_LEN + TCP_OPT_LEN)
#define TCP_DATA_OFS (PHY_HEADER_LEN + IP_HEADER_LEN + TCP_HEADER_LEN)
#define TCP_TOS_NORMAL 0 /* TCP Type of Service */
#define TCP_MTU 1460 /* TCP default max. transfer unit */
#define TCP_DEF_MSS 1460 /* TCP default max. segment size option */
#define TCP_DEF_WINSIZE 4380 /* TCP default window size */
/* TCP Flags */
#define TCP_FLAG_URG 0x20 /* Urgent Pointer Field significant */
#define TCP_FLAG_ACK 0x10 /* Acknowledgment field significant */
#define TCP_FLAG_PSH 0x08 /* Push Function */
#define TCP_FLAG_RST 0x04 /* Reset the connection */
#define TCP_FLAG_SYN 0x02 /* Synchronize sequence numbers */
#define TCP_FLAG_FIN 0x01 /* Finished, No more data from sender */
#define TCP_FLAG_MASK 0x3F /* Mask of all TCP Flags */
/* TCP Internal Flags */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -