Contiki-NG
Functions | Variables

The uIP TCP/IPv6 stack code. More...

#include "sys/cc.h"
#include "net/ipv6/uip.h"
#include "net/ipv6/uip-arch.h"
#include "net/ipv6/uipopt.h"
#include "net/ipv6/uip-icmp6.h"
#include "net/ipv6/uip-nd6.h"
#include "net/ipv6/uip-ds6.h"
#include "net/ipv6/multicast/uip-mcast6.h"
#include "net/routing/routing.h"
#include "sys/log.h"

Go to the source code of this file.

Macros

Reassembly buffer definition
#define FBUF   ((struct uip_ip_hdr *)&uip_reassbuf[0])
 
TCP defines
#define TCP_FIN   0x01
 
#define TCP_SYN   0x02
 
#define TCP_RST   0x04
 
#define TCP_PSH   0x08
 
#define TCP_ACK   0x10
 
#define TCP_URG   0x20
 
#define TCP_CTL   0x3f
 
#define TCP_OPT_END   0 /* End of TCP options list */
 
#define TCP_OPT_NOOP   1 /* "No-operation" TCP option */
 
#define TCP_OPT_MSS   2 /* Maximum segment size TCP option */
 
#define TCP_OPT_MSS_LEN   4 /* Length of TCP MSS option. */
 

Functions

void uip_add32 (uint8_t *op32, uint16_t op16)
 Carry out a 32-bit addition. More...
 
uint16_t uip_chksum (uint16_t *data, uint16_t len)
 Calculate the Internet checksum over a buffer. More...
 
uint16_t uip_ipchksum (void)
 Calculate the IP header checksum of the packet header in uip_buf. More...
 
uint16_t uip_icmp6chksum (void)
 Calculate the ICMP checksum of the packet in uip_buf. More...
 
uint16_t uip_tcpchksum (void)
 Calculate the TCP checksum of the packet in uip_buf and uip_appdata. More...
 
void uip_init (void)
 uIP initialization function. More...
 
bool uip_remove_ext_hdr (void)
 Removes all IPv6 extension headers from uip_buf, updates length fields (uip_len and uip_ext_len) More...
 
struct uip_udp_connuip_udp_new (const uip_ipaddr_t *ripaddr, uint16_t rport)
 Set up a new UDP connection. More...
 
void uip_unlisten (uint16_t port)
 Stop listening to the specified port. More...
 
void uip_listen (uint16_t port)
 Start listening to the specified port. More...
 
void uip_reass_over (void)
 Abandon the reassembly of the current packet. More...
 
static uint8_t ext_hdr_options_process (uint8_t *ext_buf)
 Process the options in Destination and Hop By Hop extension headers.
 
void uip_process (uint8_t flag)
 process the options within a hop by hop or destination option header More...
 
uint16_t uip_htons (uint16_t val)
 Convert a 16-bit quantity from host byte order to network byte order. More...
 
void uip_send (const void *data, int len)
 Send data on the current connection. More...
 

Variables

struct etimer uip_reass_timer
 Timer for reassembly.
 
Layer 2 variables
uip_lladdr_t uip_lladdr = {{0x00,0x06,0x98,0x00,0x02,0x32}}
 Host L2 address.
 
Layer 3 variables
uint8_t uip_ext_bitmap = 0
 bitmap we use to record which IPv6 headers we have already seen
 
uint16_t uip_ext_len = 0
 Total length of all IPv6 extension headers. More...
 
uint8_t uip_last_proto = 0
 The final protocol after IPv6 extension headers: UIP_PROTO_TCP, UIP_PROTO_UDP or UIP_PROTO_ICMP6.
 
Buffer variables
uip_buf_t uip_aligned_buf
 Packet buffer for incoming and outgoing packets.
 
void * uip_appdata
 Pointer to the application data in the packet buffer. More...
 
void * uip_sappdata
 
uint16_t uip_len
 The length of the packet in the uip_buf buffer. More...
 
uint16_t uip_slen
 
General variables
uint8_t uip_flags
 
struct uip_connuip_conn
 Pointer to the current TCP connection. More...
 
static uint16_t lastport
 
TCP variables
struct uip_conn uip_conns [UIP_TCP_CONNS]
 
uint16_t uip_listenports [UIP_LISTENPORTS]
 
static uint8_t iss [4]
 
uint8_t uip_acc32 [4]
 4-byte array used for the 32-bit sequence number calculations.
 
UDP variables
struct uip_udp_connuip_udp_conn
 The current UDP connection.
 
struct uip_udp_conn uip_udp_conns [UIP_UDP_CONNS]
 
ICMPv6 variables
struct uip_icmp6_conn uip_icmp6_conns
 single possible icmpv6 "connection"
 

Detailed Description

The uIP TCP/IPv6 stack code.

Author
Adam Dunkels adam@.nosp@m.sics.nosp@m..se
Julien Abeille jabei.nosp@m.lle@.nosp@m.cisco.nosp@m..com (IPv6 related code)
Mathilde Durvy mdurv.nosp@m.y@ci.nosp@m.sco.c.nosp@m.om (IPv6 related code)

Definition in file uip6.c.