diff options
-rwxr-xr-x | src/vnet/ip/lookup.c | 2 | ||||
-rw-r--r-- | src/vnet/mfib/ip4_mfib.c | 9 | ||||
-rw-r--r-- | src/vnet/mfib/ip6_mfib.c | 13 |
3 files changed, 16 insertions, 8 deletions
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)) |