Microchip® Advanced Software Framework

uip6.c File Reference

    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)
#include "uip.h"
#include "uipopt.h"
#include "uip-icmp6.h"
#include "uip-nd6.h"
#include "uip-ds6.h"
#include "uip-mcast6.h"
#include "uip_arch.h"
#include <string.h>
#include "uip-debug.h"

Macros

#define _DEBUG_   DEBUG_NONE
 
#define MIN(a, b)   ((a) < (b)? (a): (b))
 
#define UIP_LOG(m)
 
Buffer defines
#define FBUF   ((struct uip_tcpip_hdr *)&uip_reassbuf[0])
 
#define UIP_IP_BUF   ((struct uip_ip_hdr *)&uip_buf[UIP_LLH_LEN])
 
#define UIP_ICMP_BUF   ((struct uip_icmp_hdr *)&uip_buf[uip_l2_l3_hdr_len])
 
#define UIP_UDP_BUF   ((struct uip_udp_hdr *)&uip_buf[UIP_LLH_LEN + UIP_IPH_LEN])
 
#define UIP_TCP_BUF   ((struct uip_tcp_hdr *)&uip_buf[UIP_LLH_LEN + UIP_IPH_LEN])
 
#define UIP_EXT_BUF   ((struct uip_ext_hdr *)&uip_buf[uip_l2_l3_hdr_len])
 
#define UIP_ROUTING_BUF   ((struct uip_routing_hdr *)&uip_buf[uip_l2_l3_hdr_len])
 
#define UIP_FRAG_BUF   ((struct uip_frag_hdr *)&uip_buf[uip_l2_l3_hdr_len])
 
#define UIP_HBHO_BUF   ((struct uip_hbho_hdr *)&uip_buf[uip_l2_l3_hdr_len])
 
#define UIP_DESTO_BUF   ((struct uip_desto_hdr *)&uip_buf[uip_l2_l3_hdr_len])
 
#define UIP_EXT_HDR_OPT_BUF   ((struct uip_ext_hdr_opt *)&uip_buf[uip_l2_l3_hdr_len + uip_ext_opt_offset])
 
#define UIP_EXT_HDR_OPT_PADN_BUF   ((struct uip_ext_hdr_opt_padn *)&uip_buf[uip_l2_l3_hdr_len + uip_ext_opt_offset])
 
#define UIP_ICMP6_ERROR_BUF   ((struct uip_icmp6_error *)&uip_buf[uip_l2_l3_icmp_hdr_len])
 
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

static uint16_t chksum (uint16_t sum, const uint8_t *data, uint16_t len)
 
static uint8_t ext_hdr_options_process (void)
 Process the options in Destination and Hop By Hop extension headers. More...
 
void remove_ext_hdr (void)
 
uint16_t uip_chksum (uint16_t *data, uint16_t len)
 Calculate the Internet checksum over a buffer. More...
 
uint32_t uip_htonl (uint32_t val)
 
uint16_t uip_htons (uint16_t val)
 Convert a 16-bit quantity from host byte order to network byte order. More...
 
uint16_t uip_icmp6chksum (void)
 Calculate the ICMP checksum of the packet in uip_buf. More...
 
void uip_init (void)
 uIP initialization function. More...
 
uint16_t uip_ipchksum (void)
 Calculate the IP header checksum of the packet header in uip_buf. More...
 
void uip_process (uint8_t flag)
 process the options within a hop by hop or destination option header More...
 
void uip_send (const void *data, int len)
 Send data on the current connection. More...
 
static uint16_t upper_layer_chksum (uint8_t proto)
 

Variables

Layer 2 variables
uip_lladdr_t uip_lladdr = {{0x00,0x06,0x98,0x00,0x02,0x32}}
 Host L2 address. More...
 
Layer 3 variables
uint8_t * uip_next_hdr
 Type of the next header in IPv6 header or extension headers. More...
 
uint8_t uip_ext_bitmap = 0
 bitmap we use to record which IPv6 headers we have already seen More...
 
uint8_t uip_ext_len = 0
 length of the extension headers read. More...
 
uint8_t uip_ext_opt_offset = 0
 length of the header options read More...
 
Buffer variables
uip_buf_t uip_aligned_buf
 Packet buffer for incoming and outgoing packets. More...
 
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...
 

#define MIN (   a,
 
)    ((a) < (b)? (a): (b))

Referenced by uip_send().