From c7409dc906ebff22d9803940e1ad73a0b79887c4 Mon Sep 17 00:00:00 2001 From: Neale Ranns Date: Fri, 19 May 2017 02:54:32 -0700 Subject: mfib CLI bugs (VPP-852) Change-Id: I1b71010e20742eee02693d672e24c85897e37759 Signed-off-by: Neale Ranns --- src/vnet/ip/lookup.c | 2 ++ src/vnet/mfib/ip4_mfib.c | 9 ++++++--- src/vnet/mfib/ip6_mfib.c | 13 ++++++++----- 3 files changed, 16 insertions(+), 8 deletions(-) (limited to 'src') diff --git a/src/vnet/ip/lookup.c b/src/vnet/ip/lookup.c index b9b5caa542f..6547cad51b1 100755 --- a/src/vnet/ip/lookup.c +++ b/src/vnet/ip/lookup.c @@ -813,12 +813,14 @@ vnet_ip_mroute_cmd (vlib_main_t * vm, unformat_ip4_address, &pfx.fp_grp_addr.ip4, &pfx.fp_len)) { + memset (&pfx.fp_src_addr.ip4, 0, sizeof (pfx.fp_src_addr.ip4)); pfx.fp_proto = FIB_PROTOCOL_IP4; } else if (unformat (line_input, "%U/%d", unformat_ip6_address, &pfx.fp_grp_addr.ip6, &pfx.fp_len)) { + memset (&pfx.fp_src_addr.ip6, 0, sizeof (pfx.fp_src_addr.ip6)); pfx.fp_proto = FIB_PROTOCOL_IP6; } else if (unformat (line_input, "%U", diff --git a/src/vnet/mfib/ip4_mfib.c b/src/vnet/mfib/ip4_mfib.c index 3ed7cba7b6f..1849a3a4201 100644 --- a/src/vnet/mfib/ip4_mfib.c +++ b/src/vnet/mfib/ip4_mfib.c @@ -382,14 +382,17 @@ ip4_show_mfib (vlib_main_t * vm, matching = 1; mask = 64; } + else if (unformat (input, "%U/%d", unformat_ip4_address, &grp, &mask)) + { + memset(&src, 0, sizeof(src)); + matching = 1; + } else if (unformat (input, "%U", unformat_ip4_address, &grp)) { + memset(&src, 0, sizeof(src)); matching = 1; mask = 32; } - else if (unformat (input, "%U/%d", - unformat_ip4_address, &grp, &mask)) - matching = 1; else if (unformat (input, "table %d", &table_id)) ; else if (unformat (input, "index %d", &fib_index)) diff --git a/src/vnet/mfib/ip6_mfib.c b/src/vnet/mfib/ip6_mfib.c index 116fee2222a..5c6f8126e3a 100644 --- a/src/vnet/mfib/ip6_mfib.c +++ b/src/vnet/mfib/ip6_mfib.c @@ -585,16 +585,19 @@ ip6_show_mfib (vlib_main_t * vm, unformat_ip6_address, &grp)) { matching = 1; - mask = 64; + mask = 256; } - else if (unformat (input, "%U", unformat_ip6_address, &grp)) + else if (unformat (input, "%U/%d", unformat_ip6_address, &grp, &mask)) { + memset(&src, 0, sizeof(src)); matching = 1; - mask = 32; } - else if (unformat (input, "%U/%d", - unformat_ip6_address, &grp, &mask)) + else if (unformat (input, "%U", unformat_ip6_address, &grp)) + { + memset(&src, 0, sizeof(src)); matching = 1; + mask = 128; + } else if (unformat (input, "table %d", &table_id)) ; else if (unformat (input, "index %d", &fib_index)) -- cgit 1.2.3-korg