weAut_01 / weAutSys    R 2.2.1
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Defines
include/uip/uipopt.h File Reference

Overview

Configuration options for uIP.

This file is used for tweaking various configuration options for uIP. You should make a copy of this file into one of your project's directories instead of editing this example "uipopt.h" file that comes with the uIP distribution.

This file is part of the uIP TCP/IP stack.

Modification for weAutSys by A. Weinert concern: typos, Doxygen errors and adaption.

Adam Dunkels' original copyright notice
  Copyright (c) 2001-2003, Adam Dunkels. All rights reserved.
(contained in this file) still holds. For modifications:


  Copyright © 2011 Albrecht Weinert, Bochum

Author:
Adam Dunkels adam@.nosp@m.dunk.nosp@m.els.c.nosp@m.om
Albrecht Weinert   <a-weinert.de>
Revision:
2
Date:
2017-01-25 17:49:03 +0100 (Mi, 25 Jan 2017)

Defines

Static configuration options

These configuration options can be used for setting the IP address settings statically, but only if UIP_FIXEDADDR is set to 1.

The configuration options for a specific node includes IP address, netmask and default router as well as the Ethernet address. The netmask, default router and Ethernet address are applicable only if uIP should be run over Ethernet.

All of these should be changed to suit your project.

#define UIP_FIXEDADDR
 Determines if uIP should use a fixed IP address or not.
#define UIP_PINGADDRCONF
 Ping IP address assignment.
IP configuration options
#define UIP_TTL
 The IP TTL (time to live) of IP packets sent by uIP.
#define UIP_REASSEMBLY
 Turn on support for IP packet re-assembly.
#define UIP_REASS_MAXAGE
 maximum wait time an IP fragment in the re-assembly buffer
UDP configuration options
#define UIP_UDP
 UDP support should be compiled in (or not)
#define UIP_UDP_CHECKSUMS
 Checksums should be used (or not)
#define UIP_INC_CHECKSUMS   0
 Check incoming checksums on or off.
#define UIP_UDP_CONNS
 Maximum amount of concurrent UDP connections.
TCP configuration options
#define UIP_ACTIVE_OPEN
 Support for opening connections from uIP should be compiled in (ot not)
#define UIP_CONNS
 The maximum number of simultaneously open TCP connections.
#define UIP_LISTENPORTS
 The maximum number of simultaneously listening TCP ports.
#define UIP_URGDATA
 Support for TCP urgent data notification should be compiled in (or not)
#define UIP_RTO
 The initial retransmission timeout counted in timer pulses.
#define UIP_MAXRTX
 The maximum number of times a segment should be retransmitted.
#define UIP_MAXSYNRTX
 The maximum number of times a SYN segment should be retransmitted.
#define UIP_TCP_MSS
 The TCP maximum segment size.
#define UIP_RECEIVE_WINDOW
 The size of the advertised receiver's window.
#define UIP_TIME_WAIT_TIMEOUT
 How long a connection should stay in the TIME_WAIT state.
ARP configuration options
#define UIP_ARPTAB_SIZE
 The size of the ARP table.
#define UIP_ARP_MAXAGE
 The maximum age of ARP table entries measured in 10 seconds unit.
CPU architecture configuration

The CPU architecture configuration is where the endianess of the CPU on which uIP is to be run is specified.

Most CPUs today are little endian, including Intel (x86) and ATmega. The most notable exception are Motorola's CPUs which are big endian. The BYTE_ORDER macro must reflect the CPU architecture on which uIP is to be run.

#define UIP_BYTE_ORDER
 The byte order of the CPU on which uIP is to be run.
#define UIP_ARCH_ADD32
 There is a platform implementation of 32bit big endian addition.

General configuration options

#define UIP_BUFSIZE
 The size of the uIP packet buffer.
#define UIP_STATISTICS
 Statistics support should be compiled in (or not)
#define UIP_LOGGING
 Logging of certain events should be compiled in (or not)
#define UIP_BROADCAST
 Broadcast support.
#define UIP_LLH_LEN
 The link level header length.
void uip_log (char *msg)
 Print out a uIP log message.

Typedefs

Application specific configurations

An uIP application is implemented using a single application function that is called by uIP whenever a TCP/IP event occurs.

The name of this function must be registered with uIP at compile time using the UIP_APPCALL definition.

uIP applications can store the application state within the uip_conn structure by specifying the type of the application structure by typedef'ing the type uip_tcp_appstate_t and uip_udp_appstate_t.

The file containing the definitions must be included in the uipopt.h file.

The following example illustrates how this can look.

void httpd_appcall(void);
#define UIP_APPCALL     httpd_appcall

struct httpd_state {
  uint8_t state;
  uint16_t count;
  char *dataptr;
  char *script;
};
typedef struct httpd_state uip_tcp_appstate_t
typedef uint16_t uip_udp_appstate_t
 The type of appstate in an uip_udp_conn.