VPP-144: Fix that shows the empty segment field in sh sr tunnel 53/1853/3
authorCalvin <calvin.ference@gmail.com>
Mon, 4 Jul 2016 20:30:50 +0000 (16:30 -0400)
committerChris Luke <chris_luke@comcast.com>
Tue, 5 Jul 2016 23:25:40 +0000 (23:25 +0000)
Change-Id: Idc71a48f2eab3b712f6953af8baf1a6ecd54dcaf
Signed-off-by: Calvin <calvin.ference@gmail.com>
vnet/vnet/sr/sr.c

index 845bf95..05d8d81 100644 (file)
@@ -137,6 +137,7 @@ u8 * format_ip6_sr_header_flags (u8 * s, va_list * args)
 u8 * format_ip6_sr_header (u8 * s, va_list * args)
 {
   ip6_sr_header_t * h = va_arg (*args, ip6_sr_header_t *);
+  ip6_address_t placeholder_addr = {{254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254}};
   int print_hmac = va_arg (*args, int);
   int i, pl_index, max_segs;
   int flags_host_byte_order = clib_net_to_host_u16(h->flags);
@@ -160,8 +161,12 @@ u8 * format_ip6_sr_header (u8 * s, va_list * args)
 
   s = format (s, "\n  Segments (in processing order):");
 
-  for (i = h->first_segment; i >= 0; i--)
+  for (i = h->first_segment; i >= 1; i--)
     s = format (s, "\n  %U", format_ip6_address, h->segments + i);
+  if (ip6_address_is_equal(&placeholder_addr, h->segments))
+       s = format (s, "\n  (empty placeholder)");
+  else
+       s = format (s, "\n  %U", format_ip6_address, h->segments);
 
   s = format (s, "\n  Policy List:");