summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rwxr-xr-xsrc/vnet/ip/lookup.c2
-rw-r--r--src/vnet/mfib/ip4_mfib.c9
-rw-r--r--src/vnet/mfib/ip6_mfib.c13
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))