|
FD.io VPP
v21.10.1-2-g0a485f517
Vector Packet Processing
|
Go to the documentation of this file.
40 #ifndef included_ip_ip6_h
41 #define included_ip_ip6_h
92 u32 address_length,
u32 if_address_index,
u32 is_del);
168 #define ND_THROTTLE_BITS 512
190 const ip6_address_t *
key,
191 const ip6_address_t * dest,
uword dest_length)
196 if ((
key->as_uword[
i] ^ dest->as_uword[
i]) &
im->
197 fib_masks[dest_length].as_uword[
i])
216 ip6_address_t * dest,
223 &
im->fib_masks[dest_length].as_uword[
i])
232 const ip6_address_t *
dst,
239 ip6_address_t *result = 0;
254 *result_ia = result ? ia : 0;
261 u32 address_length,
u32 is_del);
328 return (fib_index == (
u32) ~ 0) ?
void ip6_local_hop_by_hop_register_protocol(u32 protocol, u32 node_index)
vnet_interface_main_t * im
vlib_node_registration_t ip6_punt_node
(constructor) VLIB_REGISTER_NODE (ip6_punt_node)
static vlib_cli_command_t trace
(constructor) VLIB_CLI_COMMAND (trace)
static void * ip_interface_address_get_address(ip_lookup_main_t *lm, ip_interface_address_t *a)
u32 ip6_tcp_udp_icmp_validate_checksum(vlib_main_t *vm, vlib_buffer_t *p0)
#define foreach_ip_interface_address(lm, a, sw_if_index, loop, body)
vl_api_ip_port_and_mask_t dst_port
vlib_main_t vlib_node_runtime_t vlib_frame_t * frame
void ip6_punt_redirect_del(u32 rx_sw_if_index)
u16 ip6_tcp_udp_icmp_compute_checksum(vlib_main_t *vm, vlib_buffer_t *p0, ip6_header_t *ip0, int *bogus_lengthp)
static ip6_address_t * ip6_interface_address_matching_destination(ip6_main_t *im, const ip6_address_t *dst, u32 sw_if_index, ip_interface_address_t **result_ia)
#define CLIB_CACHE_LINE_ALIGN_MARK(mark)
vlib_main_t vlib_node_runtime_t * node
void() serialize_function_t(serialize_main_t *m, va_list *va)
ip6_hop_by_hop_main_t ip6_hop_by_hop_main
uword * interface_route_adj_index_by_sw_if_index
vlib_main_t * vm
X-connect all packets from the HOST to the PHY.
struct ip6_mfib_t ip6_mfib_t
vlib_node_registration_t ip6_lookup_node
(constructor) VLIB_REGISTER_NODE (ip6_lookup_node)
struct ip6_main_t ip6_main_t
A protocol Independent IP multicast FIB table.
serialize_function_t unserialize_vnet_ip6_main
#define vec_elt(v, i)
Get vector value at index i.
static uword ip6_destination_matches_route(const ip6_main_t *im, const ip6_address_t *key, const ip6_address_t *dest, uword dest_length)
struct ip6_main_t::@389 host_config
int ip6_hbh_register_option(u8 option, int options(vlib_buffer_t *b, ip6_header_t *ip, ip6_hop_by_hop_option_t *opt), u8 *trace(u8 *s, ip6_hop_by_hop_option_t *opt))
A protocol Independent FIB table.
clib_error_t * ip6_add_del_interface_address(vlib_main_t *vm, u32 sw_if_index, ip6_address_t *address, u32 address_length, u32 is_del)
vlib_node_registration_t ip6_glean_node
(constructor) VLIB_REGISTER_NODE (ip6_glean_node)
void ip6_punt_policer_add_del(u8 is_add, u32 policer_index)
ip6_add_del_interface_address_callback_t * add_del_interface_address_callbacks
vlib_node_registration_t ip6_rewrite_node
(constructor) VLIB_REGISTER_NODE (ip6_rewrite_node)
CLIB_CACHE_LINE_ALIGN_MARK(cacheline0)
vlib_node_registration_t ip6_rewrite_mcast_node
(constructor) VLIB_REGISTER_NODE (ip6_rewrite_mcast_node)
int ip6_address_compare(ip6_address_t *a1, ip6_address_t *a2)
ip6_table_bind_callback_t * table_bind_callbacks
Functions to call when interface to table biding changes.
struct mfib_table_t_ * mfibs
Vector of MFIBs.
#define clib_mem_unaligned(pointer, type)
uword * mfib_index_by_table_id
Hash table mapping table id to multicast fib index.
void ip6_punt_redirect_add_paths(u32 rx_sw_if_index, const fib_route_path_t *paths)
vlib_node_registration_t ip6_discover_neighbor_node
(constructor) VLIB_REGISTER_NODE (ip6_discover_neighbor_node)
u32 * fib_index_by_sw_if_index
manual_print typedef address
struct fib_table_t_ * fibs
vlib_node_registration_t ip6_rewrite_local_node
struct _vlib_node_registration vlib_node_registration_t
vlib_node_registration_t ip6_input_node
(constructor) VLIB_REGISTER_NODE (ip6_input_node)
ip6_address_t * ip6_interface_first_address(ip6_main_t *im, u32 sw_if_index)
get first IPv6 interface address
uword ip6_udp_register_listener(vlib_main_t *vm, u16 dst_port, u32 next_node_index)
void ip6_unregister_protocol(u32 protocol)
serialize_function_t serialize_vnet_ip6_main
u32 * mfib_index_by_sw_if_index
Table index indexed by software interface.
static struct option options[]
vl_api_ip_proto_t protocol
ip6_address_t fib_masks[129]
A representation of a path as described by a route producer.
static uword ip6_destination_matches_interface(ip6_main_t *im, ip6_address_t *key, ip_interface_address_t *ia)
static uword ip6_unaligned_destination_matches_route(ip6_main_t *im, ip6_address_t *key, ip6_address_t *dest, uword dest_length)
void ip6_sw_interface_enable_disable(u32 sw_if_index, u32 is_enable)
ip_lookup_main_t lookup_main
void() ip6_add_del_interface_address_function_t(struct ip6_main_t *im, uword opaque, u32 sw_if_index, ip6_address_t *address, u32 address_length, u32 if_address_index, u32 is_del)
u8 * ip_enabled_by_sw_if_index
void() ip6_table_bind_function_t(struct ip6_main_t *im, uword opaque, u32 sw_if_index, u32 new_fib_index, u32 old_fib_index)
IP prefix management on interfaces.
vlib_node_registration_t ip6_midchain_node
(constructor) VLIB_REGISTER_NODE (ip6_midchain_node)
int vnet_set_ip6_classify_intfc(vlib_main_t *vm, u32 sw_if_index, u32 table_index)
void ip6_register_protocol(u32 protocol, u32 node_index)
int ip6_hbh_unregister_option(u8 option)
void ip6_hbh_set_next_override(uword next)
vl_api_interface_index_t sw_if_index
static u32 vlib_buffer_get_ip6_fib_index(vlib_buffer_t *b)
void ip6_forward_next_trace(vlib_main_t *vm, vlib_node_runtime_t *node, vlib_frame_t *frame, vlib_rx_or_tx_t which_adj_index)
u8 * format_ip6_forward_next_trace(u8 *s, va_list *args)
u8 * format_ip6_hop_by_hop_ext_hdr(u8 *s, va_list *args)
VLIB buffer representation.
uword * fib_index_by_table_id