}
extern void adj_nbr_update_rewrite_internal (ip_adjacency_t *adj,
- adj_nbr_rewrite_flag_t flags,
+ ip_lookup_next_t adj_next_index,
u32 complete_next_index,
u32 next_index,
u8 *rewrite);
* time for walkies fido.
*/
fib_node_back_walk_ctx_t bw_ctx = {
- .fnbw_reason = FIB_NODE_BW_REASON_ADJ_UPDATE,
+ .fnbw_reason = FIB_NODE_BW_REASON_FLAG_ADJ_UPDATE,
};
fib_walk_sync(FIB_NODE_TYPE_ADJ, adj_get_index(adj), &bw_ctx);
DPO_PROTO_MPLS,
} __attribute__((packed)) dpo_proto_t;
-#define DPO_PROTO_NUM (DPO_PROTO_MPLS+1)
-#define DPO_PROTO_NONE (DPO_PROTO_NUM+1)
+#define DPO_PROTO_NUM ((dpo_proto_t)(DPO_PROTO_MPLS+1))
+#define DPO_PROTO_NONE ((dpo_proto_t)(DPO_PROTO_NUM+1))
#define DPO_PROTOS { \
[DPO_PROTO_IP4] = "ip4", \
}
/* do lookup */
- ip4_src_fib_lookup_one (fib_index0, input_addr0, &lbi0);
- ip4_src_fib_lookup_one (fib_index1, input_addr1, &lbi1);
+ ip4_src_fib_lookup_two (fib_index0, fib_index1,
+ input_addr0, input_addr1,
+ &lbi0, &lbi1);
lb0 = load_balance_get(lbi0);
lb1 = load_balance_get(lbi1);
static void
fib_entry_src_default_route_init (fib_entry_src_t *src)
{
- src->fes_flags = FIB_ENTRY_FLAG_NONE;
+ src->fes_flags = FIB_ENTRY_SRC_FLAG_NONE;
}
static void
{
mpls_eos_bit_t eos;
- src->fes_flags = FIB_ENTRY_FLAG_NONE;
+ src->fes_flags = FIB_ENTRY_SRC_FLAG_NONE;
src->mpls.fesm_label = MPLS_LABEL_INVALID;
FOR_EACH_MPLS_EOS_BIT(eos)
static void
fib_entry_src_special_init (fib_entry_src_t *src)
{
- src->fes_flags = FIB_ENTRY_FLAG_NONE;
+ src->fes_flags = FIB_ENTRY_SRC_FLAG_NONE;
}
/**
static fib_path_cfg_flags_t
fib_path_route_flags_to_cfg_flags (const fib_route_path_t *rpath)
{
- fib_path_cfg_flags_t cfg_flags = FIB_PATH_CFG_ATTRIBUTE_FIRST;
+ fib_path_cfg_flags_t cfg_flags = FIB_PATH_CFG_FLAG_NONE;
if (rpath->frp_flags & FIB_ROUTE_PATH_RESOLVE_VIA_HOST)
cfg_flags |= FIB_PATH_CFG_FLAG_RESOLVE_HOST;
/*
* update the exclusive to use a different DPO
*/
- ip_null_dpo_add_and_lock(FIB_PROTOCOL_IP4,
+ ip_null_dpo_add_and_lock(DPO_PROTO_IP4,
IP_NULL_ACTION_SEND_ICMP_UNREACH,
&ex_dpo);
fib_table_entry_special_dpo_update(fib_index,
/*
* enqueue a walk across the parents children.
*/
- high_ctx.fnbw_reason = FIB_NODE_BW_REASON_RESOLVE;
+ high_ctx.fnbw_reason = FIB_NODE_BW_REASON_FLAG_RESOLVE;
fib_walk_async(FIB_NODE_TYPE_TEST, PARENT_INDEX,
FIB_WALK_PRIORITY_HIGH, &high_ctx);
* we do this by giving the queue draining process zero
* time quanta. it's a do..while loop, so it does something.
*/
- high_ctx.fnbw_reason = FIB_NODE_BW_REASON_RESOLVE;
+ high_ctx.fnbw_reason = FIB_NODE_BW_REASON_FLAG_RESOLVE;
fib_walk_async(FIB_NODE_TYPE_TEST, PARENT_INDEX,
FIB_WALK_PRIORITY_HIGH, &high_ctx);
* park a async walk in the middle of the list, then have an sync walk catch
* it. same expectations as async catches async.
*/
- high_ctx.fnbw_reason = FIB_NODE_BW_REASON_RESOLVE;
+ high_ctx.fnbw_reason = FIB_NODE_BW_REASON_FLAG_RESOLVE;
fib_walk_async(FIB_NODE_TYPE_TEST, PARENT_INDEX,
FIB_WALK_PRIORITY_HIGH, &high_ctx);
case FIB_FORW_CHAIN_TYPE_MPLS_NON_EOS:
return (DPO_PROTO_MPLS);
}
- return (VNET_LINK_IP4);
+ return (DPO_PROTO_IP4);
}
FIB_WALK_SCHEDULED,
FIB_WALK_COMPLETED,
} fib_walk_queue_stats_t;
-#define FIB_WALK_QUEUE_STATS_NUM (FIB_WALK_COMPLETED+1)
+#define FIB_WALK_QUEUE_STATS_NUM ((fib_walk_queue_stats_t)(FIB_WALK_COMPLETED+1))
#define FIB_WALK_QUEUE_STATS { \
[FIB_WALK_SCHEDULED] = "scheduled", \
FIB_WALK_PRIORITY_LOW = 1,
} fib_walk_priority_t;
-#define FIB_WALK_PRIORITY_NUM (FIB_WALK_PRIORITY_LOW+1)
+#define FIB_WALK_PRIORITY_NUM ((fib_walk_priority_t)(FIB_WALK_PRIORITY_LOW+1))
#define FIB_WALK_PRIORITIES { \
[FIB_WALK_PRIORITY_HIGH] = "high", \
VNET_HW_INTERFACE_CLASS (lisp_gpe_hw_class) = {
.name = "LISP_GPE",
.format_header = format_lisp_gpe_header_with_length,
- .build_rewrite = default_build_rewrite,
.build_rewrite = lisp_gpe_build_rewrite,
.update_adjacency = lisp_gpe_update_adjacency,
};
dpo_proto_t dproto;
dproto = (ip_prefix_version (&lfe->key->rmt.ippref) == IP4 ?
- FIB_PROTOCOL_IP4 : FIB_PROTOCOL_IP6);
+ DPO_PROTO_IP4 : DPO_PROTO_IP6);
lfe->src_fib_index = ip_dst_fib_add_route (lfe->eid_fib_index,
&lfe->key->rmt.ippref);
foreach_mpls_adj_incomplete_next
#undef _
},
-
- .format_trace = format_mpls_output_trace,
};
VLIB_NODE_FUNCTION_MULTIARCH (mpls_adj_incomplete_node,