⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 net_config.h

📁 工厂环境污染控制数据采集器
💻 H
📖 第 1 页 / 共 4 页
字号:
/*----------------------------------------------------------------------------
 *      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 + -