From: John Lo Date: Wed, 10 Jul 2019 20:44:32 +0000 (-0400) Subject: nsim: cross-connect mode crash at interface output node X-Git-Tag: v20.01-rc0~182 X-Git-Url: https://gerrit.fd.io/r/gitweb?a=commitdiff_plain;h=b966b96aa4ec125cea9dcd0b9f2d4268709f3896;p=vpp.git nsim: cross-connect mode crash at interface output node Type: fix Change-Id: If99c1d8a7ec97a726430a927eab0d3b57222af1f Signed-off-by: John Lo --- diff --git a/MAINTAINERS b/MAINTAINERS index d74398fb9c6..b7575afcca5 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -366,6 +366,7 @@ M: Dave Barach F: src/plugins/mactime/ Plugin - Network Delay Simulator +I: nsim M: Dave Barach F: src/plugins/nsim/ diff --git a/src/plugins/nsim/node.c b/src/plugins/nsim/node.c index 559147b1280..96a712cb35d 100644 --- a/src/plugins/nsim/node.c +++ b/src/plugins/nsim/node.c @@ -162,7 +162,7 @@ nsim_inline (vlib_main_t * vm, ep->rx_sw_if_index = vnet_buffer (b[0])->sw_if_index[VLIB_RX]; if (is_cross_connect) { - ep->tx_sw_if_index = + ep->tx_sw_if_index = vnet_buffer (b[0])->sw_if_index[VLIB_TX] = (vnet_buffer (b[0])->sw_if_index[VLIB_RX] == nsm->sw_if_index0) ? nsm->sw_if_index1 : nsm->sw_if_index0; ep->output_next_index = @@ -204,7 +204,7 @@ nsim_inline (vlib_main_t * vm, ep->rx_sw_if_index = vnet_buffer (b[1])->sw_if_index[VLIB_RX]; if (is_cross_connect) { - ep->tx_sw_if_index = + ep->tx_sw_if_index = vnet_buffer (b[1])->sw_if_index[VLIB_TX] = (vnet_buffer (b[1])->sw_if_index[VLIB_RX] == nsm->sw_if_index0) ? nsm->sw_if_index1 : nsm->sw_if_index0; ep->output_next_index = @@ -245,7 +245,7 @@ nsim_inline (vlib_main_t * vm, ep->rx_sw_if_index = vnet_buffer (b[2])->sw_if_index[VLIB_RX]; if (is_cross_connect) { - ep->tx_sw_if_index = + ep->tx_sw_if_index = vnet_buffer (b[2])->sw_if_index[VLIB_TX] = (vnet_buffer (b[2])->sw_if_index[VLIB_RX] == nsm->sw_if_index0) ? nsm->sw_if_index1 : nsm->sw_if_index0; ep->output_next_index = @@ -286,7 +286,7 @@ nsim_inline (vlib_main_t * vm, ep->rx_sw_if_index = vnet_buffer (b[3])->sw_if_index[VLIB_RX]; if (is_cross_connect) { - ep->tx_sw_if_index = + ep->tx_sw_if_index = vnet_buffer (b[3])->sw_if_index[VLIB_TX] = (vnet_buffer (b[3])->sw_if_index[VLIB_RX] == nsm->sw_if_index0) ? nsm->sw_if_index1 : nsm->sw_if_index0; ep->output_next_index = @@ -362,7 +362,7 @@ slow_path: ep->rx_sw_if_index = vnet_buffer (b[0])->sw_if_index[VLIB_RX]; if (is_cross_connect) { - ep->tx_sw_if_index = + ep->tx_sw_if_index = vnet_buffer (b[0])->sw_if_index[VLIB_TX] = (vnet_buffer (b[0])->sw_if_index[VLIB_RX] == nsm->sw_if_index0) ? nsm->sw_if_index1 : nsm->sw_if_index0; ep->output_next_index = diff --git a/src/plugins/nsim/nsim_input.c b/src/plugins/nsim/nsim_input.c index def6fcd9f26..3ce89bc9847 100644 --- a/src/plugins/nsim/nsim_input.c +++ b/src/plugins/nsim/nsim_input.c @@ -127,7 +127,7 @@ nsim_input_inline (vlib_main_t * vm, vlib_node_runtime_t * node, if (is_trace) { - b0 = vlib_get_buffer (vm, ep->buffer_index); + b0 = vlib_get_buffer (vm, bi0); if (b0->flags & VLIB_BUFFER_IS_TRACED) { nsim_tx_trace_t *t =