diff options
author | Neale Ranns <nranns@cisco.com> | 2016-11-15 09:46:51 +0000 |
---|---|---|
committer | Damjan Marion <dmarion.lists@gmail.com> | 2016-11-22 21:26:55 +0000 |
commit | 177bbdcd8fa4e7621c5bdd3afd8c6e74b603e096 (patch) | |
tree | cf234b5bf8d79dac6a43570a903a11de44e26497 /vnet/vnet/interface_output.c | |
parent | 7afe9e38269a30682a5e392b0e876e18d1465c31 (diff) |
GRE tests and fixes
Change-Id: I234240e9bdd4b69ad64a17b1449ae1e81c0edaca
Signed-off-by: Neale Ranns <nranns@cisco.com>
Diffstat (limited to 'vnet/vnet/interface_output.c')
-rw-r--r-- | vnet/vnet/interface_output.c | 29 |
1 files changed, 22 insertions, 7 deletions
diff --git a/vnet/vnet/interface_output.c b/vnet/vnet/interface_output.c index 1d1546f6..46e8a98c 100644 --- a/vnet/vnet/interface_output.c +++ b/vnet/vnet/interface_output.c @@ -58,15 +58,30 @@ format_vnet_interface_output_trace (u8 * s, va_list * va) if (t->sw_if_index != (u32) ~ 0) { - si = vnet_get_sw_interface (vnm, t->sw_if_index); indent = format_get_indent (s); - s = format (s, "%U\n%U%U", - format_vnet_sw_interface_name, vnm, si, - format_white_space, indent, - node->format_buffer ? node-> - format_buffer : format_hex_bytes, t->data, - sizeof (t->data)); + if (pool_is_free_index + (vnm->interface_main.sw_interfaces, t->sw_if_index)) + { + /* the interface may have been deleted by the time the trace is printed */ + s = format (s, "sw_if_index: %d\n%U%U", + t->sw_if_index, + format_white_space, indent, + node->format_buffer ? node-> + format_buffer : format_hex_bytes, t->data, + sizeof (t->data)); + } + else + { + si = vnet_get_sw_interface (vnm, t->sw_if_index); + + s = format (s, "%U\n%U%U", + format_vnet_sw_interface_name, vnm, si, + format_white_space, indent, + node->format_buffer ? node-> + format_buffer : format_hex_bytes, t->data, + sizeof (t->data)); + } } return s; } |