ip: always set ip rx_sw_if_index
[vpp.git] / src / vnet / tcp / tcp_inlines.h
index 68eb4b1..d57b305 100644 (file)
@@ -66,10 +66,7 @@ tcp_listener_get (u32 tli)
 always_inline tcp_connection_t *
 tcp_half_open_connection_get (u32 conn_index)
 {
-  tcp_connection_t *tc = 0;
-  if (!pool_is_free_index (tcp_main.half_open_connections, conn_index))
-    tc = pool_elt_at_index (tcp_main.half_open_connections, conn_index);
-  return tc;
+  return tcp_connection_get (conn_index, 0);
 }
 
 /**
@@ -240,6 +237,10 @@ tcp_input_lookup_buffer (vlib_buffer_t * b, u8 thread_index, u32 * error,
   tcp_header_t *tcp;
   u8 result = 0;
 
+  /* Set the sw_if_index[VLIB_RX] to the interface we received
+   * the connection on (the local interface) */
+  vnet_buffer (b)->sw_if_index[VLIB_RX] = vnet_buffer (b)->ip.rx_sw_if_index;
+
   if (is_ip4)
     {
       ip4_header_t *ip4 = vlib_buffer_get_current (b);