/** Vector of FIBs. */
struct fib_table_t_ *fibs;
- /** Vector of MTries. */
- struct ip4_fib_t_ *v4_fibs;
-
/** Vector of MFIBs. */
struct mfib_table_t_ *mfibs;
u8 pad[2];
} host_config;
+
+ u16 msg_id_base;
} ip4_main_t;
#define ARP_THROTTLE_BITS (512)
/** Global ip4 main structure. */
extern ip4_main_t ip4_main;
-extern char *ip4_error_strings[];
/** Global ip4 input node. Errors get attached to ip4 input node. */
extern vlib_node_registration_t ip4_input_node;
return ip4_destination_matches_route (im, key, a, ia->address_length);
}
-always_inline int
-ip4_src_address_for_packet (ip_lookup_main_t * lm,
- u32 sw_if_index, ip4_address_t * src)
-{
- u32 if_add_index = lm->if_address_pool_index_by_sw_if_index[sw_if_index];
- if (PREDICT_TRUE (if_add_index != ~0))
- {
- ip_interface_address_t *if_add =
- pool_elt_at_index (lm->if_address_pool, if_add_index);
- ip4_address_t *if_ip = ip_interface_address_get_address (lm, if_add);
- *src = *if_ip;
- return 0;
- }
- else
- {
- src->as_u32 = 0;
- }
- return (!0);
-}
-
/* Find interface address which matches destination. */
always_inline ip4_address_t *
ip4_interface_address_matching_destination (ip4_main_t * im,
ip_interface_address_t *ia;
ip4_address_t *result = 0;
- /* *INDENT-OFF* */
foreach_ip_interface_address (lm, ia, sw_if_index,
1 /* honor unnumbered */,
({
break;
}
}));
- /* *INDENT-ON* */
if (result_ia)
*result_ia = result ? ia : 0;
return result;
serialize_function_t serialize_vnet_ip4_main, unserialize_vnet_ip4_main;
-int vnet_set_ip4_flow_hash (u32 table_id,
- flow_hash_config_t flow_hash_config);
-
int vnet_set_ip4_classify_intfc (vlib_main_t * vm, u32 sw_if_index,
u32 table_index);
void ip4_punt_policer_add_del (u8 is_add, u32 policer_index);
-void ip4_punt_redirect_add (u32 rx_sw_if_index,
- u32 tx_sw_if_index, ip46_address_t * nh);
void ip4_punt_redirect_add_paths (u32 rx_sw_if_index,
- fib_route_path_t * paths);
+ const fib_route_path_t *paths);
void ip4_punt_redirect_del (u32 rx_sw_if_index);