Code Review
/
vpp.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
review
|
tree
raw
|
inline
| side by side
VPP-1083 "ip punt redirect add" crashed if not mentioned any other parameter
[vpp.git]
/
src
/
vnet
/
ip
/
ip6_punt_drop.c
diff --git
a/src/vnet/ip/ip6_punt_drop.c
b/src/vnet/ip/ip6_punt_drop.c
index
4c4240e
..
8852775
100644
(file)
--- a/
src/vnet/ip/ip6_punt_drop.c
+++ b/
src/vnet/ip/ip6_punt_drop.c
@@
-207,14
+207,15
@@
VLIB_CLI_COMMAND (ip6_punt_policer_command, static) =
.function = ip6_punt_police_cmd,
.short_help = "ip6 punt policer [add|del] <index>",
};
.function = ip6_punt_police_cmd,
.short_help = "ip6 punt policer [add|del] <index>",
};
-/* *INDENT-ON* */
+
ip_punt_redirect_t ip6_punt_redirect_cfg = {
.any_rx_sw_if_index = {
ip_punt_redirect_t ip6_punt_redirect_cfg = {
.any_rx_sw_if_index = {
-
.tx_sw_if_index = ~0,
- }
- ,
+ .tx_sw_if_index = ~0,
+ .adj_index = ADJ_INDEX_INVALID,
+
}
,
};
};
+/* *INDENT-ON* */
#define foreach_ip6_punt_redirect_error \
_(DROP, "ip6 punt redirect drop")
#define foreach_ip6_punt_redirect_error \
_(DROP, "ip6 punt redirect drop")
@@
-300,8
+301,8
@@
ip6_punt_redirect_cmd (vlib_main_t * vm,
{
unformat_input_t _line_input, *line_input = &_line_input;
clib_error_t *error = 0;
{
unformat_input_t _line_input, *line_input = &_line_input;
clib_error_t *error = 0;
- u32 rx_sw_if_index;
- u32 tx_sw_if_index;
+ u32 rx_sw_if_index
= 0
;
+ u32 tx_sw_if_index
= 0
;
ip46_address_t nh;
vnet_main_t *vnm;
u8 is_add;
ip46_address_t nh;
vnet_main_t *vnm;
u8 is_add;
@@
-339,9
+340,19
@@
ip6_punt_redirect_cmd (vlib_main_t * vm,
}
if (is_add)
}
if (is_add)
- ip6_punt_redirect_add (rx_sw_if_index, tx_sw_if_index, &nh);
+ {
+ if (rx_sw_if_index && tx_sw_if_index)
+ {
+ ip6_punt_redirect_add (rx_sw_if_index, tx_sw_if_index, &nh);
+ }
+ }
else
else
- ip6_punt_redirect_del (rx_sw_if_index);
+ {
+ if (rx_sw_if_index)
+ {
+ ip6_punt_redirect_del (rx_sw_if_index);
+ }
+ }
done:
unformat_free (line_input);
done:
unformat_free (line_input);