{
/**
* This table stores the routes that are used to forward traffic.
- * The key is the prefix, the result the adjacnecy to forward on.
+ * The key is the prefix, the result the adjacency to forward on.
*/
IP6_FIB_TABLE_FWDING,
/**
#define IP6_FIB_NUM_TABLES (IP6_FIB_TABLE_NON_FWDING+1)
/**
- * A represenation of a single IP6 table
+ * A representation of a single IP6 table
*/
typedef struct ip6_fib_table_instance_t_
{
} ip6_fib_table_instance_t;
/**
- * A represenation of a single IP6 mfib table
+ * A representation of a single IP6 mfib table
*/
typedef struct ip6_mfib_table_instance_t_
{
int *bogus_lengthp);
void ip6_register_protocol (u32 protocol, u32 node_index);
+void ip6_unregister_protocol (u32 protocol);
void ip6_local_hop_by_hop_register_protocol (u32 protocol, u32 node_index);
serialize_function_t serialize_vnet_ip6_main, unserialize_vnet_ip6_main;
void ip6_punt_policer_add_del (u8 is_add, u32 policer_index);
void ip6_punt_redirect_add (u32 rx_sw_if_index,
u32 tx_sw_if_index, ip46_address_t * nh);
+void ip6_punt_redirect_add_paths (u32 rx_sw_if_index,
+ fib_route_path_t * paths);
void ip6_punt_redirect_del (u32 rx_sw_if_index);
int vnet_set_ip6_classify_intfc (vlib_main_t * vm, u32 sw_if_index,
sizeof (ip6h->src_address));
clib_memcpy_fast (ip6h->dst_address.as_u8, dst->as_u8,
sizeof (ip6h->src_address));
- b->flags |= VNET_BUFFER_F_IS_IP6;
+ vnet_buffer (b)->l3_hdr_offset = (u8 *) ip6h - b->data;
+ b->flags |= VNET_BUFFER_F_IS_IP6 | VNET_BUFFER_F_L3_HDR_OFFSET_VALID;
return ip6h;
}