typedef enum {
LB_NEXT_LOOKUP,
+ LB_NEXT_REWRITE,
LB_NEXT_DROP,
LB_N_NEXT,
} lb_next_t;
u32 as_index;
} lb_trace_t;
-u8 *lb_format_adjacency(u8 * s,
- struct ip_lookup_main_t * lm,
- ip_adjacency_t *adj)
-{
- lb_main_t *lbm = &lb_main;
- lb_adj_data_t *ad = (lb_adj_data_t *) &adj->opaque;
- __attribute__((unused)) lb_vip_t *vip = pool_elt_at_index (lbm->vips, ad->vip_index);
- return format(s, "idx:%d", ad->vip_index);
-}
+/* u8 *lb_format_adjacency(u8 * s, va_list * va) */
+/* { */
+/* lb_main_t *lbm = &lb_main; */
+/* __attribute((unused)) ip_lookup_main_t *lm = va_arg (*va, ip_lookup_main_t *); */
+/* ip_adjacency_t *adj = va_arg (*va, ip_adjacency_t *); */
+/* lb_adj_data_t *ad = (lb_adj_data_t *) &adj->opaque; */
+/* __attribute__((unused)) lb_vip_t *vip = pool_elt_at_index (lbm->vips, ad->vip_index); */
+/* return format(s, "vip idx:%d", ad->vip_index); */
+/* } */
u8 *
format_lb_trace (u8 * s, va_list * args)
clib_host_to_net_u16(0x0800):
clib_host_to_net_u16(0x86DD);
+ vnet_buffer(p0)->ip.adj_index[VLIB_TX] = as0->adj_index;
+ next0 = (as0->adj_index != ~0)?LB_NEXT_REWRITE:next0;
+
if (PREDICT_FALSE (p0->flags & VLIB_BUFFER_IS_TRACED))
{
lb_trace_t *tr = vlib_add_trace (vm, node, p0, sizeof (*tr));
.next_nodes =
{
[LB_NEXT_LOOKUP] = "ip6-lookup",
+ [LB_NEXT_REWRITE] = "ip6-rewrite",
[LB_NEXT_DROP] = "error-drop"
},
};
-VNET_IP6_REGISTER_ADJACENCY(lb6_gre6) = {
- .node_name = "lb6-gre6",
- .fn = lb_format_adjacency,
- .next_index = &lb_main.ip_lookup_next_index[LB_VIP_TYPE_IP6_GRE6]
-};
+/* VNET_IP6_REGISTER_ADJACENCY(lb6_gre6) = { */
+/* .node_name = "lb6-gre6", */
+/* .fn = lb_format_adjacency, */
+/* .next_index = &lb_main.ip_lookup_next_index[LB_VIP_TYPE_IP6_GRE6] */
+/* }; */
VLIB_REGISTER_NODE (lb6_gre4_node) =
{
.next_nodes =
{
[LB_NEXT_LOOKUP] = "ip4-lookup",
+ [LB_NEXT_REWRITE]= "ip4-rewrite-transit",
[LB_NEXT_DROP] = "error-drop"
},
};
-VNET_IP6_REGISTER_ADJACENCY(lb6_gre4) = {
- .node_name = "lb6-gre4",
- .fn = lb_format_adjacency,
- .next_index = &lb_main.ip_lookup_next_index[LB_VIP_TYPE_IP6_GRE4]
-};
+/* VNET_IP6_REGISTER_ADJACENCY(lb6_gre4) = { */
+/* .node_name = "lb6-gre4", */
+/* .fn = lb_format_adjacency, */
+/* .next_index = &lb_main.ip_lookup_next_index[LB_VIP_TYPE_IP6_GRE4] */
+/* }; */
VLIB_REGISTER_NODE (lb4_gre6_node) =
{
.next_nodes =
{
[LB_NEXT_LOOKUP] = "ip6-lookup",
+ [LB_NEXT_REWRITE] = "ip6-rewrite",
[LB_NEXT_DROP] = "error-drop"
},
};
-VNET_IP4_REGISTER_ADJACENCY(lb4_gre6) = {
- .node_name = "lb4-gre6",
- .fn = lb_format_adjacency,
- .next_index = &lb_main.ip_lookup_next_index[LB_VIP_TYPE_IP4_GRE6]
-};
+/* VNET_IP4_REGISTER_ADJACENCY(lb4_gre6) = { */
+/* .node_name = "lb4-gre6", */
+/* .fn = lb_format_adjacency, */
+/* .next_index = &lb_main.ip_lookup_next_index[LB_VIP_TYPE_IP4_GRE6] */
+/* }; */
VLIB_REGISTER_NODE (lb4_gre4_node) =
{
.next_nodes =
{
[LB_NEXT_LOOKUP] = "ip4-lookup",
+ [LB_NEXT_REWRITE]= "ip4-rewrite-transit",
[LB_NEXT_DROP] = "error-drop"
},
};
-VNET_IP4_REGISTER_ADJACENCY(lb4_gre4) = {
- .node_name = "lb4-gre4",
- .fn = lb_format_adjacency,
- .next_index = &lb_main.ip_lookup_next_index[LB_VIP_TYPE_IP4_GRE4]
-};
+/* VNET_IP4_REGISTER_ADJACENCY(lb4_gre4) = { */
+/* .node_name = "lb4-gre4", */
+/* .fn = lb_format_adjacency, */
+/* .next_index = &lb_main.ip_lookup_next_index[LB_VIP_TYPE_IP4_GRE4] */
+/* }; */