#include <stdint.h>
#include <netinet/in.h>
#include <rte_byteorder.h>
#include <rte_mbuf.h>
Go to the source code of this file.
IP-related defines
Definition in file rte_ip.h.
#define IPv4 |
( |
|
a, |
|
|
|
b, |
|
|
|
c, |
|
|
|
d |
|
) |
| |
#define IPV4_MAX_PKT_LEN 65535 |
Maximal IPv4 packet length (including a header)
Definition at line 113 of file rte_ip.h.
#define IPV4_HDR_IHL_MASK (0x0f) |
#define IPV4_IHL_MULTIPLIER (4) |
Internet header length field multiplier (IHL field specifies overall header length in number of 4-byte words)
- Examples:
- l2fwd-crypto/main.c.
Definition at line 121 of file rte_ip.h.
#define IPV4_ANY ((uint32_t)0x00000000) |
#define IPV4_LOOPBACK ((uint32_t)0x7f000001) |
#define IPV4_BROADCAST ((uint32_t)0xe0000000) |
#define IPV4_ALLHOSTS_GROUP ((uint32_t)0xe0000001) |
#define IPV4_ALLRTRS_GROUP ((uint32_t)0xe0000002) |
#define IPV4_MAX_LOCAL_GROUP ((uint32_t)0xe00000ff) |
#define IPV4_MIN_MCAST IPv4(224, 0, 0, 0) |
Minimal IPv4-multicast address
Definition at line 148 of file rte_ip.h.
#define IPV4_MAX_MCAST IPv4(239, 255, 255, 255) |
Maximum IPv4 multicast address
Definition at line 149 of file rte_ip.h.
static uint16_t rte_raw_cksum |
( |
const void * |
buf, |
|
|
size_t |
len |
|
) |
| |
|
inlinestatic |
Process the non-complemented checksum of a buffer.
- Parameters
-
buf | Pointer to the buffer. |
len | Length of the buffer. |
- Returns
- The non-complemented checksum.
Definition at line 225 of file rte_ip.h.
static int rte_raw_cksum_mbuf |
( |
const struct rte_mbuf * |
m, |
|
|
uint32_t |
off, |
|
|
uint32_t |
len, |
|
|
uint16_t * |
cksum |
|
) |
| |
|
inlinestatic |
Compute the raw (non complemented) checksum of a packet.
- Parameters
-
m | The pointer to the mbuf. |
off | The offset in bytes to start the checksum. |
len | The length in bytes of the data to ckecksum. |
cksum | A pointer to the checksum, filled on success. |
- Returns
- 0 on success, -1 on error (bad length or offset).
Definition at line 248 of file rte_ip.h.
static uint16_t rte_ipv4_cksum |
( |
const struct ipv4_hdr * |
ipv4_hdr | ) |
|
|
inlinestatic |
Process the IPv4 checksum of an IPv4 header.
The checksum field must be set to 0 by the caller.
- Parameters
-
ipv4_hdr | The pointer to the contiguous IPv4 header. |
- Returns
- The complemented checksum to set in the IP packet.
Definition at line 315 of file rte_ip.h.
static uint16_t rte_ipv4_phdr_cksum |
( |
const struct ipv4_hdr * |
ipv4_hdr, |
|
|
uint64_t |
ol_flags |
|
) |
| |
|
inlinestatic |
Process the pseudo-header checksum of an IPv4 header.
The checksum field must be set to 0 by the caller.
Depending on the ol_flags, the pseudo-header checksum expected by the drivers is not the same. For instance, when TSO is enabled, the IP payload length must not be included in the packet.
When ol_flags is 0, it computes the standard pseudo-header checksum.
- Parameters
-
ipv4_hdr | The pointer to the contiguous IPv4 header. |
ol_flags | The ol_flags of the associated mbuf. |
- Returns
- The non-complemented checksum to set in the L4 header.
- Examples:
- tep_termination/vxlan.c, and vhost/main.c.
Definition at line 341 of file rte_ip.h.
static uint16_t rte_ipv4_udptcp_cksum |
( |
const struct ipv4_hdr * |
ipv4_hdr, |
|
|
const void * |
l4_hdr |
|
) |
| |
|
inlinestatic |
Process the IPv4 UDP or TCP checksum.
The IPv4 header should not contains options. The IP and layer 4 checksum must be set to 0 in the packet by the caller.
- Parameters
-
ipv4_hdr | The pointer to the contiguous IPv4 header. |
l4_hdr | The pointer to the beginning of the L4 header. |
- Returns
- The complemented checksum to set in the IP packet.
Definition at line 379 of file rte_ip.h.
static uint16_t rte_ipv6_phdr_cksum |
( |
const struct ipv6_hdr * |
ipv6_hdr, |
|
|
uint64_t |
ol_flags |
|
) |
| |
|
inlinestatic |
Process the pseudo-header checksum of an IPv6 header.
Depending on the ol_flags, the pseudo-header checksum expected by the drivers is not the same. For instance, when TSO is enabled, the IPv6 payload length must not be included in the packet.
When ol_flags is 0, it computes the standard pseudo-header checksum.
- Parameters
-
ipv6_hdr | The pointer to the contiguous IPv6 header. |
ol_flags | The ol_flags of the associated mbuf. |
- Returns
- The non-complemented checksum to set in the L4 header.
- Examples:
- tep_termination/vxlan.c, and vhost/main.c.
Definition at line 427 of file rte_ip.h.
static uint16_t rte_ipv6_udptcp_cksum |
( |
const struct ipv6_hdr * |
ipv6_hdr, |
|
|
const void * |
l4_hdr |
|
) |
| |
|
inlinestatic |
Process the IPv6 UDP or TCP checksum.
The IPv4 header should not contains options. The layer 4 checksum must be set to 0 in the packet by the caller.
- Parameters
-
ipv6_hdr | The pointer to the contiguous IPv6 header. |
l4_hdr | The pointer to the beginning of the L4 header. |
- Returns
- The complemented checksum to set in the IP packet.
Definition at line 463 of file rte_ip.h.