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

📄 net_config.h

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