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.
Files | |
file | uip_arch.h |
Functions | |
void | uip_add32 (u8_t *op32, u16_t op16) |
u16_t | uip_chksum (u16_t *buf, u16_t len) |
u16_t | uip_ipchksum (void) |
u16_t | uip_tcpchksum (void) |
Variables | |
volatile u8_t | uip_acc32 [4] |
|
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.
Definition at line 44 of file uip_arch.c. References uip_acc32. Referenced by uip_add_rcv_nxt(). |
|
Calculate the Internet checksum over a buffer. The Internet checksum is the one's complement of the one's complement sum of all 16-bit words in the buffer. See RFC1071.
Definition at line 72 of file uip_arch.c. Referenced by uip_ipchksum(), and uip_tcpchksum(). |
|
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.
Definition at line 98 of file uip_arch.c. References uip_buf, uip_chksum(), and UIP_LLH_LEN. |
|
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.
Definition at line 104 of file uip_arch.c. References BUF, htons(), IP_PROTO_TCP, uip_appdata, uip_buf, uip_chksum(), and UIP_LLH_LEN. |
|
4-byte array used for the 32-bit sequence number calculations. Definition at line 139 of file uip.c. Referenced by uip_add32(). |