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-1092 Correcting ip punt delete flow, when recv if index valid but doesnt exist...
[vpp.git]
/
src
/
vnet
/
ip
/
ip4_punt_drop.c
diff --git
a/src/vnet/ip/ip4_punt_drop.c
b/src/vnet/ip/ip4_punt_drop.c
index
ceb1bb8
..
5f40e14
100644
(file)
--- a/
src/vnet/ip/ip4_punt_drop.c
+++ b/
src/vnet/ip/ip4_punt_drop.c
@@
-115,6
+115,7
@@
format_ip_punt_redirect_trace (u8 * s, va_list * args)
ip_punt_redirect_t ip4_punt_redirect_cfg = {
.any_rx_sw_if_index = {
.tx_sw_if_index = ~0,
ip_punt_redirect_t ip4_punt_redirect_cfg = {
.any_rx_sw_if_index = {
.tx_sw_if_index = ~0,
+ .adj_index = ADJ_INDEX_INVALID,
},
};
/* *INDENT-ON* */
},
};
/* *INDENT-ON* */
@@
-309,6
+310,7
@@
VLIB_CLI_COMMAND (ip4_punt_policer_command, static) =
*/
ip_punt_redirect_rx_t uninit_rx_redirect = {
.tx_sw_if_index = ~0,
*/
ip_punt_redirect_rx_t uninit_rx_redirect = {
.tx_sw_if_index = ~0,
+ .adj_index = ADJ_INDEX_INVALID,
};
void
};
void
@@
-351,6
+353,9
@@
ip_punt_redirect_del (ip_punt_redirect_t * cfg, u32 rx_sw_if_index)
old = &cfg->redirect_by_rx_sw_if_index[rx_sw_if_index];
}
old = &cfg->redirect_by_rx_sw_if_index[rx_sw_if_index];
}
+ if ((old == NULL) || (old->adj_index == ADJ_INDEX_INVALID))
+ return;
+
adj_unlock (old->adj_index);
*old = uninit_rx_redirect;
}
adj_unlock (old->adj_index);
*old = uninit_rx_redirect;
}