FD.io VPP
v20.09-64-g4f7b92f0a
Vector Packet Processing
|
Go to the source code of this file.
Data Structures | |
struct | ip6_address_and_mask_t |
struct | ip6_header_t |
Macros | |
#define | foreach_ip6_multicast_address_scope |
#define | foreach_ip6_multicast_link_local_group_id |
#define | IP6_MLDP_ALERT_TYPE 0x5 |
#define | foreach_ext_hdr_type |
#define | ip6_ext_header_len(p) ((((ip6_ext_header_t *)(p))->n_data_u64s+1) << 3) |
#define | ip6_ext_authhdr_len(p) ((((ip6_ext_header_t *)(p))->n_data_u64s+2) << 2) |
#define | ip6_frag_hdr_offset(hdr) (clib_net_to_host_u16((hdr)->fragment_offset_and_more) >> 3) |
#define | ip6_frag_hdr_offset_bytes(hdr) (8 * ip6_frag_hdr_offset(hdr)) |
#define | ip6_frag_hdr_more(hdr) (clib_net_to_host_u16((hdr)->fragment_offset_and_more) & 0x1) |
#define | ip6_frag_hdr_offset_and_more(offset, more) clib_host_to_net_u16(((offset) << 3) + !!(more)) |
Enumerations | |
enum | ip6_multicast_address_scope_t { foreach_ip6_multicast_address_scope } |
enum | ip6_multicast_link_local_group_id_t { foreach_ip6_multicast_link_local_group_id } |
Functions | |
STATIC_ASSERT_SIZEOF (ip6_address_t, 16) | |
typedef | CLIB_PACKED (struct { ip6_address_t ip6_addr;u32 fib_index;}) ip6_address_fib_t |
static void | ip6_addr_fib_init (ip6_address_fib_t *addr_fib, const ip6_address_t *address, u32 fib_index) |
static uword | ip6_address_is_multicast (const ip6_address_t *a) |
static void | ip6_address_copy (ip6_address_t *dst, const ip6_address_t *src) |
static void | ip6_set_reserved_multicast_address (ip6_address_t *a, ip6_multicast_address_scope_t scope, u16 id) |
static void | ip6_set_solicited_node_multicast_address (ip6_address_t *a, u32 id) |
static void | ip6_multicast_ethernet_address (u8 *ethernet_address, u32 group_id) |
static uword | ip6_address_is_equal (const ip6_address_t *a, const ip6_address_t *b) |
static uword | ip6_address_is_equal_masked (const ip6_address_t *a, const ip6_address_t *b, const ip6_address_t *mask) |
static void | ip6_address_mask (ip6_address_t *a, const ip6_address_t *mask) |
static void | ip6_address_set_zero (ip6_address_t *a) |
static void | ip6_address_mask_from_width (ip6_address_t *a, u32 width) |
static uword | ip6_address_is_zero (const ip6_address_t *a) |
static uword | ip6_address_is_unspecified (const ip6_address_t *a) |
static uword | ip6_address_is_loopback (const ip6_address_t *a) |
static uword | ip6_address_is_link_local_unicast (const ip6_address_t *a) |
static uword | ip6_address_is_local_unicast (const ip6_address_t *a) |
static uword | ip6_address_is_global_unicast (const ip6_address_t *a) |
static uword | ip6_is_solicited_node_multicast_address (const ip6_address_t *a) |
static u32 | ip6_address_hash_to_u32 (const ip6_address_t *a) |
static u64 | ip6_address_hash_to_u64 (const ip6_address_t *a) |
static ip_dscp_t | ip6_traffic_class (const ip6_header_t *i) |
static_always_inline ip_dscp_t | ip6_traffic_class_network_order (const ip6_header_t *ip6) |
static_always_inline ip_dscp_t | ip6_dscp_network_order (const ip6_header_t *ip6) |
static_always_inline ip_ecn_t | ip6_ecn_network_order (const ip6_header_t *ip6) |
static_always_inline void | ip6_set_traffic_class_network_order (ip6_header_t *ip6, ip_dscp_t dscp) |
static_always_inline void | ip6_set_dscp_network_order (ip6_header_t *ip6, ip_dscp_t dscp) |
static_always_inline void | ip6_set_ecn_network_order (ip6_header_t *ip6, ip_ecn_t ecn) |
static void * | ip6_next_header (ip6_header_t *i) |
static void | ip6_copy_header (ip6_header_t *dst, const ip6_header_t *src) |
static void | ip6_tcp_reply_x1 (ip6_header_t *ip0, tcp_header_t *tcp0) |
static void | ip6_tcp_reply_x2 (ip6_header_t *ip0, ip6_header_t *ip1, tcp_header_t *tcp0, tcp_header_t *tcp1) |
typedef | CLIB_PACKED (struct { u8 data;}) ip6_pad1_option_t |
typedef | CLIB_PACKED (struct { u8 type;u8 len;u8 data[0];}) ip6_padN_option_t |
typedef | CLIB_PACKED (struct { #define IP6_MLDP_ALERT_TYPE u8 type;u8 len;u16 value;}) ip6_router_alert_option_t |
typedef | CLIB_PACKED (struct { u8 next_hdr;u8 n_data_u64s;}) ip6_ext_header_t |
static u8 | ip6_ext_hdr (u8 nexthdr) |
static void * | ip6_ext_next_header (ip6_ext_header_t *ext_hdr) |
static int | vlib_object_within_buffer_data (vlib_main_t *vm, vlib_buffer_t *b, void *obj, size_t len) |
static void * | ip6_ext_header_find (vlib_main_t *vm, vlib_buffer_t *b, ip6_header_t *ip6_header, u8 header_type, ip6_ext_header_t **prev_ext_header) |
static int | ip6_walk_ext_hdr (vlib_main_t *vm, vlib_buffer_t *b, const ip6_header_t *ip6_header, u8 find_hdr, u32 *length, ip6_ext_header_t **ext_hdr, ip6_ext_header_t **last_ext_hdr) |
typedef | CLIB_PACKED (struct { u8 next_hdr;u8 n_data_u64s;u8 data[0];}) ip6_hop_by_hop_ext_t |
typedef | CLIB_PACKED (struct { u8 next_hdr;u8 rsv;u16 fragment_offset_and_more;u32 identification;}) ip6_frag_hdr_t |
#define foreach_ext_hdr_type |
Definition at line 476 of file ip6_packet.h.
#define foreach_ip6_multicast_address_scope |
Definition at line 90 of file ip6_packet.h.
#define foreach_ip6_multicast_link_local_group_id |
Definition at line 98 of file ip6_packet.h.
#define ip6_ext_authhdr_len | ( | p | ) | ((((ip6_ext_header_t *)(p))->n_data_u64s+2) << 2) |
Definition at line 510 of file ip6_packet.h.
#define ip6_ext_header_len | ( | p | ) | ((((ip6_ext_header_t *)(p))->n_data_u64s+1) << 3) |
Definition at line 509 of file ip6_packet.h.
#define ip6_frag_hdr_more | ( | hdr | ) | (clib_net_to_host_u16((hdr)->fragment_offset_and_more) & 0x1) |
Definition at line 670 of file ip6_packet.h.
#define ip6_frag_hdr_offset | ( | hdr | ) | (clib_net_to_host_u16((hdr)->fragment_offset_and_more) >> 3) |
Definition at line 664 of file ip6_packet.h.
#define ip6_frag_hdr_offset_and_more | ( | offset, | |
more | |||
) | clib_host_to_net_u16(((offset) << 3) + !!(more)) |
Definition at line 673 of file ip6_packet.h.
#define ip6_frag_hdr_offset_bytes | ( | hdr | ) | (8 * ip6_frag_hdr_offset(hdr)) |
Definition at line 667 of file ip6_packet.h.
#define IP6_MLDP_ALERT_TYPE 0x5 |
Enumerator | |
---|---|
foreach_ip6_multicast_address_scope |
Definition at line 106 of file ip6_packet.h.
Enumerator | |
---|---|
foreach_ip6_multicast_link_local_group_id |
Definition at line 113 of file ip6_packet.h.
typedef CLIB_PACKED | ( | struct { ip6_address_t ip6_addr;u32 fib_index;} | ) |
typedef CLIB_PACKED | ( | struct { u8 next_hdr;u8 rsv;u16 fragment_offset_and_more;u32 identification;} | ) |
|
inlinestatic |
|
inlinestatic |
|
inlinestatic |
|
inlinestatic |
|
inlinestatic |
|
inlinestatic |
|
inlinestatic |
|
inlinestatic |
|
inlinestatic |
|
inlinestatic |
Definition at line 244 of file ip6_packet.h.
|
inlinestatic |
|
inlinestatic |
Definition at line 237 of file ip6_packet.h.
|
inlinestatic |
|
inlinestatic |
|
inlinestatic |
Definition at line 211 of file ip6_packet.h.
|
inlinestatic |
|
inlinestatic |
Definition at line 377 of file ip6_packet.h.
static_always_inline ip_dscp_t ip6_dscp_network_order | ( | const ip6_header_t * | ip6 | ) |
static_always_inline ip_ecn_t ip6_ecn_network_order | ( | const ip6_header_t * | ip6 | ) |
|
inlinestatic |
Definition at line 539 of file ip6_packet.h.
|
inlinestatic |
|
inlinestatic |
Definition at line 274 of file ip6_packet.h.
|
inlinestatic |
static_always_inline void ip6_set_dscp_network_order | ( | ip6_header_t * | ip6, |
ip_dscp_t | dscp | ||
) |
static_always_inline void ip6_set_ecn_network_order | ( | ip6_header_t * | ip6, |
ip_ecn_t | ecn | ||
) |
|
inlinestatic |
|
inlinestatic |
static_always_inline void ip6_set_traffic_class_network_order | ( | ip6_header_t * | ip6, |
ip_dscp_t | dscp | ||
) |
|
inlinestatic |
Definition at line 392 of file ip6_packet.h.
|
inlinestatic |
|
inlinestatic |
Definition at line 314 of file ip6_packet.h.
static_always_inline ip_dscp_t ip6_traffic_class_network_order | ( | const ip6_header_t * | ip6 | ) |
|
inlinestatic |
Definition at line 600 of file ip6_packet.h.
STATIC_ASSERT_SIZEOF | ( | ip6_address_t | , |
16 | |||
) |
|
inlinestatic |
Definition at line 519 of file ip6_packet.h.