From: Florin Coras Date: Wed, 27 Oct 2021 17:53:41 +0000 (-0700) Subject: tcp: fix use of invalid local sw_if_index X-Git-Tag: v22.06-rc0~353 X-Git-Url: https://gerrit.fd.io/r/gitweb?a=commitdiff_plain;h=e2f3aa16e27857929c1a8fbd921426a51ecb5538;p=vpp.git tcp: fix use of invalid local sw_if_index Type: fix Signed-off-by: Florin Coras Change-Id: Id58ac44d45fb8b8a0d803f02e0242ec6f4b3db05 --- diff --git a/src/plugins/unittest/session_test.c b/src/plugins/unittest/session_test.c index 87fd708ecd8..6a292c783eb 100644 --- a/src/plugins/unittest/session_test.c +++ b/src/plugins/unittest/session_test.c @@ -290,11 +290,11 @@ session_test_endpoint_cfg (vlib_main_t * vm, unformat_input_t * input) /* * Create the loopbacks */ - intf_addr[0].as_u32 = clib_host_to_net_u32 (0x01010101), - session_create_lookpback (0, &sw_if_index[0], &intf_addr[0]); + intf_addr[0].as_u32 = clib_host_to_net_u32 (0x01010101); + session_create_lookpback (0, &sw_if_index[0], &intf_addr[0]); - intf_addr[1].as_u32 = clib_host_to_net_u32 (0x02020202), - session_create_lookpback (1, &sw_if_index[1], &intf_addr[1]); + intf_addr[1].as_u32 = clib_host_to_net_u32 (0x02020202); + session_create_lookpback (1, &sw_if_index[1], &intf_addr[1]); session_add_del_route_via_lookup_in_table (0, 1, &intf_addr[1], 32, 1 /* is_add */ ); diff --git a/src/vnet/tcp/tcp.c b/src/vnet/tcp/tcp.c index 4825bf62856..d4b1d77f556 100644 --- a/src/vnet/tcp/tcp.c +++ b/src/vnet/tcp/tcp.c @@ -837,7 +837,8 @@ tcp_session_open (transport_endpoint_cfg_t * rmt) /* The other connection vars will be initialized after SYN ACK */ tcp_connection_timers_init (tc); tc->mss = rmt->mss; - tc->sw_if_index = rmt->peer.sw_if_index; + if (rmt->peer.sw_if_index != ENDPOINT_INVALID_INDEX) + tc->sw_if_index = rmt->peer.sw_if_index; tc->next_node_index = rmt->next_node_index; tc->next_node_opaque = rmt->next_node_opaque;