The IPv6 header.
More...
#include "rohc_utils.h"
#include <stdint.h>
#include <stddef.h>
#include "config.h"
Go to the source code of this file.
◆ IPV6_ADDR_CMP
#define IPV6_ADDR_CMP |
( |
|
x, |
|
|
|
y |
|
) |
| |
Value:((x)->u32[0] == (y)->u32[0] && (x)->u32[1] == (y)->u32[1] && \
(x)->u32[2] == (y)->u32[2] && (x)->u32[3] == (y)->u32[3])
Compare two IPv6 addresses in (struct ipv6_addr *) format
◆ IPV6_ADDR_FORMAT
#define IPV6_ADDR_FORMAT "%02x%02x:%02x%02x:%02x%02x:%02x%02x:%02x%02x:%02x%02x:%02x%02x:%02x%02x" |
The format to print an IPv6 address
◆ IPV6_ADDR_IN6
The data to print an IPv6 address in (struct ipv6_addr *) format
◆ IPV6_ADDR_RAW
#define IPV6_ADDR_RAW |
( |
|
x | ) |
|
Value:(x)[0], (x)[1], (x)[2], (x)[3], (x)[4], (x)[5], (x)[6], (x)[7], \
(x)[8], (x)[9], (x)[10], (x)[11], (x)[12], (x)[13], (x)[14], (x)[15]
The data to print an IPv6 address in raw format
◆ IPV6_FLOW_MASK
#define IPV6_FLOW_MASK 0x000fffffU |
The mask for the Flow Label field
◆ IPV6_OPT_CTXT_LEN_MAX
The maximum length for the IPv6 extension header context
◆ IPV6_OPT_HDR_LEN_FIELD_MAX_VAL
#define IPV6_OPT_HDR_LEN_FIELD_MAX_VAL 0xffU |
The maximum value of the length field of one IPv6 extension header
◆ IPV6_OPT_HDR_LEN_MAX
The maximum length of one IPv6 extension header
◆ IPV6_TC_MASK
#define IPV6_TC_MASK 0x0ff00000U |
The mask for the Traffic Class (TC) field
◆ IPV6_VERSION_MASK
#define IPV6_VERSION_MASK 0xf0000000U |
The mask for the Traffic Class (TC) field
◆ ipv6_get_dscp()
static uint8_t ipv6_get_dscp |
( |
const struct ipv6_hdr *const |
ipv6 | ) |
|
|
inlinestatic |
Get the Differentiated Services Code Point (DSCP) of the given IPv6 packet.
- Parameters
-
ipv6 | The header of the IPv6 packet |
- Returns
- The 6-bit DSCP
◆ ipv6_get_flow_label()
static uint32_t ipv6_get_flow_label |
( |
const struct ipv6_hdr *const |
ipv6 | ) |
|
|
inlinestatic |
Get the Flow Label of the given IPv6 packet.
- Parameters
-
ipv6 | The header of the IPv6 packet |
- Returns
- The 20-bit Flow Label
◆ ipv6_get_tc()
static uint8_t ipv6_get_tc |
( |
const struct ipv6_hdr *const |
ipv6 | ) |
|
|
inlinestatic |
Get the Traffic Class (TC) of the given IPv6 packet.
- Parameters
-
ipv6 | The header of the IPv6 packet |
- Returns
- The 8-bit Traffic Class (TC)
◆ ipv6_opt_get_length()
static size_t ipv6_opt_get_length |
( |
const struct ipv6_opt *const |
opt | ) |
|
|
inlinestatic |
get the length (in bytes) of the IPv6 option header
- Parameters
-
opt | The IPv6 option header |
- Returns
- The length (in bytes) of the IPv6 option header
◆ ipv6_set_dscp()
static void ipv6_set_dscp |
( |
struct ipv6_hdr *const |
ipv6, |
|
|
const uint8_t |
dscp |
|
) |
| |
|
inlinestatic |
Set the Differentiated Services Code Point (DSCP) of the given IPv6 packet.
- Parameters
-
[in,out] | ipv6 | The header of the IPv6 packet |
| dscp | The 6-bit DSCP |
◆ ipv6_set_dscp_ecn()
static void ipv6_set_dscp_ecn |
( |
struct ipv6_hdr *const |
ipv6, |
|
|
const uint8_t |
dscp, |
|
|
const uint8_t |
ecn |
|
) |
| |
|
inlinestatic |
Set the DSCP and ECN of the given IPv6 packet.
- Parameters
-
[in,out] | ipv6 | The header of the IPv6 packet |
| dscp | The 6-bit DSCP |
| ecn | The 2-bit ECN |
◆ ipv6_set_flow_label()
static void ipv6_set_flow_label |
( |
struct ipv6_hdr *const |
ipv6, |
|
|
const uint32_t |
flow_label |
|
) |
| |
|
inlinestatic |
Set the Flow Label of the given IPv6 packet.
- Parameters
-
[in,out] | ipv6 | The header of the IPv6 packet |
| flow_label | The 20-bit Flow Label |
◆ ipv6_set_tc()
static void ipv6_set_tc |
( |
struct ipv6_hdr *const |
ipv6, |
|
|
const uint8_t |
tc |
|
) |
| |
|
inlinestatic |
Set the Traffic Class (TC) of the given IPv6 packet.
- Parameters
-
[in,out] | ipv6 | The header of the IPv6 packet |
| tc | The 8-bit Traffic Class (TC) |