summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xsrc/plugins/gtpu/gtpu.c14
-rw-r--r--src/vnet/geneve/geneve.c14
-rw-r--r--src/vnet/gre/interface.c30
-rw-r--r--src/vnet/interface_cli.c110
-rw-r--r--src/vnet/vxlan-gpe/vxlan_gpe.c67
-rw-r--r--src/vnet/vxlan/vxlan.c29
6 files changed, 118 insertions, 146 deletions
diff --git a/src/plugins/gtpu/gtpu.c b/src/plugins/gtpu/gtpu.c
index 80069a77b09..96399f38579 100755
--- a/src/plugins/gtpu/gtpu.c
+++ b/src/plugins/gtpu/gtpu.c
@@ -75,18 +75,18 @@ format_gtpu_tunnel (u8 * s, va_list * args)
gtpu_tunnel_t *t = va_arg (*args, gtpu_tunnel_t *);
gtpu_main_t *ngm = &gtpu_main;
- s = format (s, "[%d] src %U dst %U teid %d sw_if_index %d ",
+ s = format (s, "[%d] src %U dst %U teid %d fib-idx %d sw-if-idx %d ",
t - ngm->tunnels,
format_ip46_address, &t->src, IP46_TYPE_ANY,
format_ip46_address, &t->dst, IP46_TYPE_ANY,
- t->teid, t->sw_if_index);
+ t->teid, t->encap_fib_index, t->sw_if_index);
- if (ip46_address_is_multicast (&t->dst))
- s = format (s, "mcast_sw_if_index %d ", t->mcast_sw_if_index);
+ s = format (s, "encap-dpo-idx %d ", t->next_dpo.dpoi_index);
+ s = format (s, "decap-next-%U ", format_decap_next, t->decap_next_index);
+
+ if (PREDICT_FALSE (ip46_address_is_multicast (&t->dst)))
+ s = format (s, "mcast-sw-if-idx %d ", t->mcast_sw_if_index);
- s = format (s, "encap_fib_index %d fib_entry_index %d decap_next %U\n",
- t->encap_fib_index, t->fib_entry_index,
- format_decap_next, t->decap_next_index);
return s;
}
diff --git a/src/vnet/geneve/geneve.c b/src/vnet/geneve/geneve.c
index 56db5ee775e..6bc4b67d10d 100644
--- a/src/vnet/geneve/geneve.c
+++ b/src/vnet/geneve/geneve.c
@@ -60,18 +60,18 @@ format_geneve_tunnel (u8 * s, va_list * args)
geneve_tunnel_t *t = va_arg (*args, geneve_tunnel_t *);
geneve_main_t *ngm = &geneve_main;
- s = format (s, "[%d] local %U remote %U vni %d sw_if_index %d ",
+ s = format (s, "[%d] lcl %U rmt %U vni %d fib-idx %d sw-if-idx %d ",
t - ngm->tunnels,
format_ip46_address, &t->local, IP46_TYPE_ANY,
format_ip46_address, &t->remote, IP46_TYPE_ANY,
- t->vni, t->sw_if_index);
+ t->vni, t->encap_fib_index, t->sw_if_index);
- if (ip46_address_is_multicast (&t->remote))
- s = format (s, "mcast_sw_if_index %d ", t->mcast_sw_if_index);
+ s = format (s, "encap-dpo-idx %d ", t->next_dpo.dpoi_index);
+ s = format (s, "decap-next-%U ", format_decap_next, t->decap_next_index);
+
+ if (PREDICT_FALSE (ip46_address_is_multicast (&t->remote)))
+ s = format (s, "mcast-sw-if-idx %d ", t->mcast_sw_if_index);
- s = format (s, "encap_fib_index %d fib_entry_index %d decap_next %U\n",
- t->encap_fib_index, t->fib_entry_index,
- format_decap_next, t->decap_next_index);
return s;
}
diff --git a/src/vnet/gre/interface.c b/src/vnet/gre/interface.c
index 8b1ad6b7dbe..ce9685d55a3 100644
--- a/src/vnet/gre/interface.c
+++ b/src/vnet/gre/interface.c
@@ -28,34 +28,18 @@
static const char *gre_tunnel_type_names[] = GRE_TUNNEL_TYPE_NAMES;
static u8 *
-format_gre_tunnel_type (u8 * s, va_list * args)
-{
- gre_tunnel_type_t type = va_arg (*args, gre_tunnel_type_t);
-
- return (format (s, "%s", gre_tunnel_type_names[type]));
-}
-
-static u8 *
format_gre_tunnel (u8 * s, va_list * args)
{
gre_tunnel_t *t = va_arg (*args, gre_tunnel_t *);
gre_main_t *gm = &gre_main;
- u8 is_ipv6 = t->tunnel_dst.fp_proto == FIB_PROTOCOL_IP6 ? 1 : 0;
- if (!is_ipv6)
- s = format (s,
- "[%d] %U (src) %U (dst) payload %U outer_fib_index %d",
- t - gm->tunnels,
- format_ip4_address, &t->tunnel_src.ip4,
- format_ip4_address, &t->tunnel_dst.fp_addr.ip4,
- format_gre_tunnel_type, t->type, t->outer_fib_index);
- else
- s = format (s,
- "[%d] %U (src) %U (dst) payload %U outer_fib_index %d",
- t - gm->tunnels,
- format_ip6_address, &t->tunnel_src.ip6,
- format_ip6_address, &t->tunnel_dst.fp_addr.ip6,
- format_gre_tunnel_type, t->type, t->outer_fib_index);
+ s = format (s, "[%d] src %U dst %U fib-idx %d sw-if-idx %d ",
+ t - gm->tunnels,
+ format_ip46_address, &t->tunnel_src, IP46_TYPE_ANY,
+ format_ip46_address, &t->tunnel_dst.fp_addr, IP46_TYPE_ANY,
+ t->outer_fib_index, t->sw_if_index);
+
+ s = format (s, "payload %s", gre_tunnel_type_names[t->type]);
return s;
}
diff --git a/src/vnet/interface_cli.c b/src/vnet/interface_cli.c
index 0debdb4d0b7..5509e3ffa57 100644
--- a/src/vnet/interface_cli.c
+++ b/src/vnet/interface_cli.c
@@ -365,11 +365,7 @@ show_sw_interfaces (vlib_main_t * vm,
ip_lookup_main_t *lm4 = &im4->lookup_main;
ip_lookup_main_t *lm6 = &im6->lookup_main;
ip_interface_address_t *ia = 0;
- ip4_address_t *r4;
- ip6_address_t *r6;
u32 fib_index4 = 0, fib_index6 = 0;
- ip4_fib_t *fib4;
- ip6_fib_t *fib6;
if (vec_len (im4->fib_index_by_sw_if_index) > si->sw_if_index)
fib_index4 = vec_elt (im4->fib_index_by_sw_if_index,
@@ -379,85 +375,69 @@ show_sw_interfaces (vlib_main_t * vm,
fib_index6 = vec_elt (im6->fib_index_by_sw_if_index,
si->sw_if_index);
- fib4 = ip4_fib_get (fib_index4);
- fib6 = ip6_fib_get (fib_index6);
+ ip4_fib_t *fib4 = ip4_fib_get (fib_index4);
+ ip6_fib_t *fib6 = ip6_fib_get (fib_index6);
if (si->flags & VNET_SW_INTERFACE_FLAG_UNNUMBERED)
vlib_cli_output
(vm, "%U (%s): \n unnumbered, use %U",
- format_vnet_sw_if_index_name,
- vnm, si->sw_if_index,
+ format_vnet_sw_if_index_name, vnm, si->sw_if_index,
(si->flags & VNET_SW_INTERFACE_FLAG_ADMIN_UP) ? "up" : "dn",
format_vnet_sw_if_index_name, vnm, si->unnumbered_sw_if_index);
-
else
- {
- vlib_cli_output (vm, "%U (%s):",
- format_vnet_sw_if_index_name,
- vnm, si->sw_if_index,
- (si->flags & VNET_SW_INTERFACE_FLAG_ADMIN_UP)
- ? "up" : "dn");
- }
+ vlib_cli_output
+ (vm, "%U (%s):",
+ format_vnet_sw_if_index_name, vnm, si->sw_if_index,
+ (si->flags & VNET_SW_INTERFACE_FLAG_ADMIN_UP) ? "up" : "dn");
/* Display any L2 info */
l2_input_config_t *l2_input = l2input_intf_config (si->sw_if_index);
if (l2_input->bridge)
{
+ bd_main_t *bdm = &bd_main;
u32 bd_id = l2input_main.bd_configs[l2_input->bd_index].bd_id;
- vlib_cli_output (vm, " l2 bridge bd_id %d%s%d", bd_id,
- l2_input->bvi ? " bvi shg " : " shg ",
- l2_input->shg);
+ vlib_cli_output (vm, " L2 bridge bd-id %d idx %d shg %d %s",
+ bd_id, bd_find_index (bdm, bd_id), l2_input->shg,
+ l2_input->bvi ? "bvi" : " ");
}
else if (l2_input->xconnect)
- {
- vlib_cli_output (vm, " l2 xconnect %U",
- format_vnet_sw_if_index_name,
- vnm, l2_input->output_sw_if_index);
- }
+ vlib_cli_output (vm, " L2 xconnect %U",
+ format_vnet_sw_if_index_name, vnm,
+ l2_input->output_sw_if_index);
+ /* *INDENT-OFF* */
/* Display any IP4 addressing info */
- /* *INDENT-OFF* */
- foreach_ip_interface_address (lm4, ia, si->sw_if_index,
- 1 /* honor unnumbered */,
- ({
- r4 = ip_interface_address_get_address (lm4, ia);
- if (fib4->table_id)
- {
- vlib_cli_output (vm, " %U/%d table %d",
- format_ip4_address, r4,
- ia->address_length,
- fib4->table_id);
- }
- else
- {
- vlib_cli_output (vm, " %U/%d",
- format_ip4_address, r4,
- ia->address_length);
- }
- }));
- /* *INDENT-ON* */
-
+ foreach_ip_interface_address (lm4, ia, si->sw_if_index,
+ 1 /* honor unnumbered */,
+ ({
+ ip4_address_t *r4 = ip_interface_address_get_address (lm4, ia);
+ if (fib4->table_id)
+ vlib_cli_output (vm, " L3 %U/%d ip4 table-id %d fib-idx %d",
+ format_ip4_address, r4, ia->address_length,
+ fib4->table_id,
+ ip4_fib_index_from_table_id (fib4->table_id));
+ else
+ vlib_cli_output (vm, " L3 %U/%d",
+ format_ip4_address, r4, ia->address_length);
+ }));
+ /* *INDENT-ON* */
+
+ /* *INDENT-OFF* */
/* Display any IP6 addressing info */
- /* *INDENT-OFF* */
- foreach_ip_interface_address (lm6, ia, si->sw_if_index,
- 1 /* honor unnumbered */,
- ({
- r6 = ip_interface_address_get_address (lm6, ia);
- if (fib6->table_id)
- {
- vlib_cli_output (vm, " %U/%d table %d",
- format_ip6_address, r6,
- ia->address_length,
- fib6->table_id);
- }
- else
- {
- vlib_cli_output (vm, " %U/%d",
- format_ip6_address, r6,
- ia->address_length);
- }
- }));
- /* *INDENT-ON* */
+ foreach_ip_interface_address (lm6, ia, si->sw_if_index,
+ 1 /* honor unnumbered */,
+ ({
+ ip6_address_t *r6 = ip_interface_address_get_address (lm6, ia);
+ if (fib6->table_id)
+ vlib_cli_output (vm, " L3 %U/%d ip6 table-id %d fib-idx %d",
+ format_ip6_address, r6, ia->address_length,
+ fib6->table_id,
+ ip6_fib_index_from_table_id (fib6->table_id));
+ else
+ vlib_cli_output (vm, " L3 %U/%d",
+ format_ip6_address, r6, ia->address_length);
+ }));
+ /* *INDENT-ON* */
}
}
else
diff --git a/src/vnet/vxlan-gpe/vxlan_gpe.c b/src/vnet/vxlan-gpe/vxlan_gpe.c
index b0c6a682ef7..918a982d70d 100644
--- a/src/vnet/vxlan-gpe/vxlan_gpe.c
+++ b/src/vnet/vxlan-gpe/vxlan_gpe.c
@@ -44,51 +44,62 @@
vxlan_gpe_main_t vxlan_gpe_main;
-/**
- * @brief Tracing function for VXLAN GPE tunnel packets
- *
- * @param *s formatting string
- * @param *args
- *
- * @return *s formatted string
- *
- */
-u8 *
-format_vxlan_gpe_tunnel (u8 * s, va_list * args)
+static u8 *
+format_decap_next (u8 * s, va_list * args)
{
vxlan_gpe_tunnel_t *t = va_arg (*args, vxlan_gpe_tunnel_t *);
- vxlan_gpe_main_t *ngm = &vxlan_gpe_main;
-
- s = format (s, "[%d] local: %U remote: %U ",
- t - ngm->tunnels,
- format_ip46_address, &t->local, IP46_TYPE_ANY,
- format_ip46_address, &t->remote, IP46_TYPE_ANY);
-
- s = format (s, " vxlan VNI %d ", t->vni);
switch (t->protocol)
{
case VXLAN_GPE_PROTOCOL_IP4:
- s = format (s, "next-protocol ip4");
+ s = format (s, "protocol ip4 fib-idx %d", t->decap_fib_index);
break;
case VXLAN_GPE_PROTOCOL_IP6:
- s = format (s, "next-protocol ip6");
+ s = format (s, "protocol ip6 fib-idx %d", t->decap_fib_index);
break;
case VXLAN_GPE_PROTOCOL_ETHERNET:
- s = format (s, "next-protocol ethernet");
+ s = format (s, "protocol ethernet");
break;
case VXLAN_GPE_PROTOCOL_NSH:
- s = format (s, "next-protocol nsh");
+ s = format (s, "protocol nsh");
break;
default:
- s = format (s, "next-protocol unknown %d", t->protocol);
+ s = format (s, "protocol unknown %d", t->protocol);
}
- if (ip46_address_is_multicast (&t->remote))
- s = format (s, "mcast_sw_if_index %d ", t->mcast_sw_if_index);
+ return s;
+}
+
+/**
+ * @brief Format function for VXLAN GPE tunnel
+ *
+ * @param *s formatting string
+ * @param *args
+ *
+ * @return *s formatted string
+ *
+ */
+u8 *
+format_vxlan_gpe_tunnel (u8 * s, va_list * args)
+{
+ vxlan_gpe_tunnel_t *t = va_arg (*args, vxlan_gpe_tunnel_t *);
+ vxlan_gpe_main_t *ngm = &vxlan_gpe_main;
- s = format (s, " fibs: (encap %d, decap %d)",
- t->encap_fib_index, t->decap_fib_index);
+ s = format (s, "[%d] lcl %U rmt %U vni %d fib-idx %d sw-if-idx %d ",
+ t - ngm->tunnels,
+ format_ip46_address, &t->local, IP46_TYPE_ANY,
+ format_ip46_address, &t->remote, IP46_TYPE_ANY,
+ t->vni, t->encap_fib_index, t->sw_if_index);
+
+#if 0
+ /* next_dpo not yet used by vxlan-gpe-encap node */
+ s = format (s, "encap-dpo-idx %d ", t->next_dpo.dpoi_index);
+ */
+#endif
+ s = format (s, "decap-next-%U ", format_decap_next, t);
+
+ if (PREDICT_FALSE (ip46_address_is_multicast (&t->remote)))
+ s = format (s, "mcast-sw-if-idx %d ", t->mcast_sw_if_index);
return s;
}
diff --git a/src/vnet/vxlan/vxlan.c b/src/vnet/vxlan/vxlan.c
index 5926062b8c6..edd8733741b 100644
--- a/src/vnet/vxlan/vxlan.c
+++ b/src/vnet/vxlan/vxlan.c
@@ -44,15 +44,10 @@ static u8 * format_decap_next (u8 * s, va_list * args)
{
u32 next_index = va_arg (*args, u32);
- switch (next_index)
- {
- case VXLAN_INPUT_NEXT_DROP:
- return format (s, "drop");
- case VXLAN_INPUT_NEXT_L2_INPUT:
- return format (s, "l2");
- default:
- return format (s, "index %d", next_index);
- }
+ if (next_index == VXLAN_INPUT_NEXT_DROP)
+ return format (s, "drop");
+ else
+ return format (s, "index %d", next_index);
return s;
}
@@ -61,18 +56,20 @@ u8 * format_vxlan_tunnel (u8 * s, va_list * args)
vxlan_tunnel_t * t = va_arg (*args, vxlan_tunnel_t *);
vxlan_main_t * ngm = &vxlan_main;
- s = format (s, "[%d] src %U dst %U vni %d sw_if_index %d ",
+ s = format (s, "[%d] src %U dst %U vni %d fib-idx %d sw-if-idx %d ",
t - ngm->tunnels,
format_ip46_address, &t->src, IP46_TYPE_ANY,
format_ip46_address, &t->dst, IP46_TYPE_ANY,
- t->vni, t->sw_if_index);
+ t->vni, t->encap_fib_index, t->sw_if_index);
+
+ s = format (s, "encap-dpo-idx %d ", t->next_dpo.dpoi_index);
+
+ if (PREDICT_FALSE (t->decap_next_index != VXLAN_INPUT_NEXT_L2_INPUT))
+ s = format (s, "decap-next-%U ", format_decap_next, t->decap_next_index);
- if (ip46_address_is_multicast (&t->dst))
- s = format (s, "mcast_sw_if_index %d ", t->mcast_sw_if_index);
+ if (PREDICT_FALSE (ip46_address_is_multicast (&t->dst)))
+ s = format (s, "mcast-sw-if-idx %d ", t->mcast_sw_if_index);
- s = format (s, "encap_fib_index %d fib_entry_index %d decap_next %U\n",
- t->encap_fib_index, t->fib_entry_index,
- format_decap_next, t->decap_next_index);
return s;
}