tcp session: next node config on connects

Type: improvement

Signed-off-by: Florin Coras <fcoras@cisco.com>
Change-Id: Ief06b1509d31b55efc8d1436b6ff9e01c6037a32
diff --git a/src/vnet/session/transport_types.h b/src/vnet/session/transport_types.h
index 9fabac5..9ea1f21 100644
--- a/src/vnet/session/transport_types.h
+++ b/src/vnet/session/transport_types.h
@@ -202,11 +202,15 @@
   TRANSPORT_CFG_F_UNIDIRECTIONAL = 1 << 1,
 } transport_endpt_cfg_flags_t;
 
+/* clang-format off */
 #define foreach_transport_endpoint_cfg_fields				\
   foreach_transport_endpoint_fields					\
-  _(transport_endpoint_t, peer)						\
-  _(u16, mss)								\
-  _(u8, transport_flags)						\
+  _ (transport_endpoint_t, peer)            				\
+  _ (u32, next_node_index) 						\
+  _ (u32, next_node_opaque)						\
+  _ (u16, mss)           						\
+  _ (u8, transport_flags)						\
+/* clang-format on */
 
 typedef struct transport_endpoint_pair_
 {
diff --git a/src/vnet/tcp/tcp.c b/src/vnet/tcp/tcp.c
index c54a994..4b1dd8e 100644
--- a/src/vnet/tcp/tcp.c
+++ b/src/vnet/tcp/tcp.c
@@ -831,6 +831,8 @@
   /* The other connection vars will be initialized after SYN ACK */
   tcp_connection_timers_init (tc);
   tc->mss = rmt->mss;
+  tc->next_node_index = rmt->next_node_index;
+  tc->next_node_opaque = rmt->next_node_opaque;
 
   TCP_EVT (TCP_EVT_OPEN, tc);
   tc->state = TCP_STATE_SYN_SENT;