Contiki-NG
Architecture specific uIP functions

The functions in the architecture specific module implement the IP check sum and 32-bit additions. More...

Functions

void uip_add32 (uint8_t *op32, uint16_t op16)
 Carry out a 32-bit addition. More...
 
uint16_t uip_ipchksum (void)
 Calculate the IP header checksum of the packet header in uip_buf. More...
 
uint16_t uip_tcpchksum (void)
 Calculate the TCP checksum of the packet in uip_buf and uip_appdata. More...
 

Variables

uint8_t uip_acc32 [4]
 4-byte array used for the 32-bit sequence number calculations.
 

Detailed Description

The functions in the architecture specific module implement the IP check sum and 32-bit additions.

The IP checksum calculation is the most computationally expensive operation in the TCP/IP stack and it therefore pays off to implement this in efficient assembler. The purpose of the uip-arch module is to let the checksum functions to be implemented in architecture specific assembler.

Function Documentation

◆ uip_add32()

void uip_add32 ( uint8_t *  op32,
uint16_t  op16 
)

Carry out a 32-bit addition.

Because not all architectures for which uIP is intended has native 32-bit arithmetic, uIP uses an external C function for doing the required 32-bit additions in the TCP protocol processing. This function should add the two arguments and place the result in the global variable uip_acc32.

Note
The 32-bit integer pointed to by the op32 parameter and the result in the uip_acc32 variable are in network byte order (big endian).
Parameters
op32A pointer to a 4-byte array representing a 32-bit integer in network byte order (big endian).
op16A 16-bit integer in host byte order.

Definition at line 252 of file uip6.c.

References uip_acc32.

◆ uip_ipchksum()

uint16_t uip_ipchksum ( void  )

Calculate the IP header checksum of the packet header in uip_buf.

The IP header checksum is the Internet checksum of the 20 bytes of the IP header.

Returns
The IP header checksum of the IP header in the uip_buf buffer.

Definition at line 320 of file uip6.c.

◆ uip_tcpchksum()

uint16_t uip_tcpchksum ( void  )

Calculate the TCP checksum of the packet in uip_buf and uip_appdata.

The TCP checksum is the Internet checksum of data contents of the TCP segment, and a pseudo-header as defined in RFC793.

Returns
The TCP checksum of the TCP segment in uip_buf and pointed to by uip_appdata.

Definition at line 371 of file uip6.c.