41,43 → 41,43 |
#include <byteorder.h> |
#include <sys/types.h> |
|
/** Returns the actual IP header length. |
* @param header The IP packet header. Input parameter. |
/** Returns the actual IP header length in bytes. |
* @param[in] header The IP packet header. |
*/ |
#define IP_HEADER_LENGTH( header ) (( header )->header_length * 4u ) |
|
/** Returns the actual IP header length. |
* @param header The IP packet header. Input parameter. |
/** Returns the IP header length. |
* @param[in] length The IP header length in bytes. |
*/ |
#define IP_COMPUTE_HEADER_LENGTH( length ) (( uint8_t ) (( length ) / 4u )) |
|
/** Returns the actual IP packet total length. |
* @param header The IP packet header. Input parameter. |
* @param[in] header The IP packet header. |
*/ |
#define IP_TOTAL_LENGTH( header ) ntohs(( header )->total_length ) |
|
/** Returns the actual IP packet data length. |
* @param header The IP packet header. Input parameter. |
* @param[in] header The IP packet header. |
*/ |
#define IP_HEADER_DATA_LENGTH( header ) ( IP_TOTAL_LENGTH( header ) - IP_HEADER_LENGTH( header )) |
|
/** Returns the IP packet header checksum. |
* @param header The IP packet header. Input parameter. |
* @param[in] header The IP packet header. |
*/ |
#define IP_HEADER_CHECKSUM( header ) ( htons( ip_checksum(( uint8_t * )( header ), IP_HEADER_LENGTH( header )))) |
|
/** Returns the fragment offest. |
* @param header The IP packet header. Input parameter. |
* @param[in] header The IP packet header. |
*/ |
#define IP_FRAGMENT_OFFSET( header ) (((( header )->fragment_offset_high << 8 ) + ( header )->fragment_offset_low ) * 8u ) |
|
/** Returns the fragment offest high bits. |
* @param length The prefixed data total length. Input parameter. |
* @param[in] length The prefixed data total length. |
*/ |
#define IP_COMPUTE_FRAGMENT_OFFSET_HIGH( length ) (((( length ) / 8u ) & 0x1F00 ) >> 8 ) |
|
/** Returns the fragment offest low bits. |
* @param length The prefixed data total length. Input parameter. |
* @param[in] length The prefixed data total length. |
*/ |
#define IP_COMPUTE_FRAGMENT_OFFSET_LOW( length ) ((( length ) / 8u ) & 0xFF ) |
|