Mbed library for ENC28J60 Ethernet modules. Full support for TCP/IP and UDP Server, Client and HTTP server (webserver). DHCP and DNS is included.
Dependents: mBuino_ENC28_MQTT Nucleo_Web_ENC28J60 Nucleo_Web_ENC28J60_ADC Serial_over_Ethernet ... more
Architecture specific UIP functions
[The UIP TCP/IP stack]
The functions in the architecture specific module implement the IP check sum and 32-bit additions. More...
Files | |
file | uip_arch.h |
Declarations of architecture specific functions. | |
Functions | |
void | uip_add32 (u8_t *op32, u16_t op16) |
Carry out a 32-bit addition. | |
u16_t | uip_chksum (u16_t *buf, u16_t len) |
Calculate the Internet checksum over a buffer. | |
u16_t | uip_ipchksum (void) |
Calculate the IP header checksum of the packet header in uip_buf. | |
u16_t | uip_tcpchksum (void) |
Calculate the TCP checksum of the packet in uip_buf and uip_appdata. | |
u16_t | uip_udpchksum (void) |
Calculate the UDP checksum of the packet in uip_buf and uip_appdata. | |
Variables | |
u8_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
void uip_add32 | ( | u8_t * | op32, |
u16_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:
-
op32 A pointer to a 4-byte array representing a 32-bit integer in network byte order (big endian). op16 A 16-bit integer in host byte order.
- Note:
- Parameters:
-
@retval
u16_t uip_chksum | ( | u16_t * | buf, |
u16_t | len | ||
) |
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.
- Note:
- This function is not called in the current version of UIP, but future versions might make use of it.
- Parameters:
-
buf A pointer to the buffer over which the checksum is to be computed. len The length of the buffer over which the checksum is to be computed.
- Returns:
- The Internet checksum of the 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.
- Parameters:
-
buf A pointer to the buffer over which the checksum is to be computed. len The length of the buffer over which the checksum is to be computed.
- Returns:
- The Internet checksum of the buffer.
u16_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.
- Note:
- Parameters:
-
@retval 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 691 of file UipEthernet.cpp.
u16_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.
- Note:
- The uip_appdata pointer that points to the packet data may point anywhere in memory, so it is not possible to simply calculate the Internet checksum of the contents of the uip_buf buffer.
- Returns:
- The TCP checksum of the TCP segment in uip_buf and pointed to by uip_appdata.
- Note:
- Parameters:
-
@retval 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.
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 704 of file UipEthernet.cpp.
u16_t uip_udpchksum | ( | void | ) |
Calculate the UDP checksum of the packet in uip_buf and uip_appdata.
- Note:
- Parameters:
-
@retval
- Note:
- Parameters:
-
@retval The UDP checksum is the Internet checksum of data contents of the UDP segment, and a pseudo-header as defined in RFC768.
- Returns:
- The UDP checksum of the UDP segment in uip_buf and pointed to by uip_appdata.
- Note:
- Parameters:
-
@retval The UDP checksum is the Internet checksum of data contents of the UDP segment, and a pseudo-header as defined in RFC768.
- Returns:
- The UDP checksum of the UDP segment in uip_buf and pointed to by uip_appdata.
Definition at line 717 of file UipEthernet.cpp.
Variable Documentation
Generated on Tue Jul 12 2022 18:48:00 by 1.7.2