diff options
Diffstat (limited to 'src/vnet/sctp/sctp_output.c')
-rw-r--r-- | src/vnet/sctp/sctp_output.c | 44 |
1 files changed, 29 insertions, 15 deletions
diff --git a/src/vnet/sctp/sctp_output.c b/src/vnet/sctp/sctp_output.c index fba06d942e7..39e5e75ea57 100644 --- a/src/vnet/sctp/sctp_output.c +++ b/src/vnet/sctp/sctp_output.c @@ -261,7 +261,7 @@ sctp_reuse_buffer (vlib_main_t * vm, vlib_buffer_t * b) b->current_length = 0; b->total_length_not_including_first_buffer = 0; vnet_buffer (b)->sctp.flags = 0; - vnet_buffer (b)->sctp.conn_idx = MAX_SCTP_CONNECTIONS; + vnet_buffer (b)->sctp.subconn_idx = MAX_SCTP_CONNECTIONS; /* Leave enough space for headers */ return vlib_buffer_make_headroom (b, MAX_HDRS_LEN); @@ -275,7 +275,7 @@ sctp_init_buffer (vlib_main_t * vm, vlib_buffer_t * b) b->flags |= VNET_BUFFER_F_LOCALLY_ORIGINATED; b->total_length_not_including_first_buffer = 0; vnet_buffer (b)->sctp.flags = 0; - vnet_buffer (b)->sctp.conn_idx = MAX_SCTP_CONNECTIONS; + vnet_buffer (b)->sctp.subconn_idx = MAX_SCTP_CONNECTIONS; VLIB_BUFFER_TRACE_TRAJECTORY_INIT (b); /* Leave enough space for headers */ return vlib_buffer_make_headroom (b, MAX_HDRS_LEN); @@ -478,7 +478,7 @@ sctp_prepare_init_chunk (sctp_connection_t * sctp_conn, u8 idx, sctp_conn->local_tag = init_chunk->initiate_tag; vnet_buffer (b)->sctp.connection_index = sub_conn->c_c_index; - vnet_buffer (b)->sctp.conn_idx = idx; + vnet_buffer (b)->sctp.subconn_idx = idx; SCTP_DBG_STATE_MACHINE ("CONN_INDEX = %u, CURR_CONN_STATE = %u (%s), " "CHUNK_TYPE = %s, " @@ -551,7 +551,7 @@ sctp_prepare_cookie_ack_chunk (sctp_connection_t * sctp_conn, u8 idx, vnet_buffer (b)->sctp.connection_index = sctp_conn->sub_conn[idx].connection.c_index; - vnet_buffer (b)->sctp.conn_idx = idx; + vnet_buffer (b)->sctp.subconn_idx = idx; } void @@ -585,7 +585,7 @@ sctp_prepare_cookie_echo_chunk (sctp_connection_t * sctp_conn, u8 idx, vnet_buffer (b)->sctp.connection_index = sctp_conn->sub_conn[idx].connection.c_index; - vnet_buffer (b)->sctp.conn_idx = idx; + vnet_buffer (b)->sctp.subconn_idx = idx; } /** @@ -728,7 +728,7 @@ sctp_prepare_initack_chunk (sctp_connection_t * sctp_conn, u8 idx, vnet_buffer (b)->sctp.connection_index = sctp_conn->sub_conn[idx].connection.c_index; - vnet_buffer (b)->sctp.conn_idx = idx; + vnet_buffer (b)->sctp.subconn_idx = idx; } /** @@ -764,7 +764,7 @@ sctp_prepare_shutdown_chunk (sctp_connection_t * sctp_conn, u8 idx, vnet_buffer (b)->sctp.connection_index = sctp_conn->sub_conn[idx].connection.c_index; - vnet_buffer (b)->sctp.conn_idx = idx; + vnet_buffer (b)->sctp.subconn_idx = idx; } /* @@ -822,7 +822,7 @@ sctp_prepare_shutdown_ack_chunk (sctp_connection_t * sctp_conn, u8 idx, vnet_buffer (b)->sctp.connection_index = sctp_conn->sub_conn[idx].connection.c_index; - vnet_buffer (b)->sctp.conn_idx = idx; + vnet_buffer (b)->sctp.subconn_idx = idx; } /* @@ -877,7 +877,7 @@ sctp_prepare_sack_chunk (sctp_connection_t * sctp_conn, u8 idx, vnet_buffer (b)->sctp.connection_index = sctp_conn->sub_conn[idx].connection.c_index; - vnet_buffer (b)->sctp.conn_idx = idx; + vnet_buffer (b)->sctp.subconn_idx = idx; } /** @@ -916,7 +916,7 @@ sctp_prepare_heartbeat_ack_chunk (sctp_connection_t * sctp_conn, u8 idx, vnet_buffer (b)->sctp.connection_index = sctp_conn->sub_conn[idx].connection.c_index; - vnet_buffer (b)->sctp.conn_idx = idx; + vnet_buffer (b)->sctp.subconn_idx = idx; } /** @@ -951,7 +951,7 @@ sctp_prepare_heartbeat_chunk (sctp_connection_t * sctp_conn, u8 idx, vnet_buffer (b)->sctp.connection_index = sctp_conn->sub_conn[idx].connection.c_index; - vnet_buffer (b)->sctp.conn_idx = idx; + vnet_buffer (b)->sctp.subconn_idx = idx; } void @@ -1016,7 +1016,7 @@ sctp_prepare_shutdown_complete_chunk (sctp_connection_t * sctp_conn, u8 idx, vnet_buffer (b)->sctp.connection_index = sctp_conn->sub_conn[idx].connection.c_index; - vnet_buffer (b)->sctp.conn_idx = idx; + vnet_buffer (b)->sctp.subconn_idx = idx; } void @@ -1093,7 +1093,12 @@ sctp_push_hdr_i (sctp_connection_t * sctp_conn, vlib_buffer_t * b, vlib_buffer_push_uninit (b, bytes_to_add); u8 idx = sctp_data_subconn_select (sctp_conn); - + SCTP_DBG_OUTPUT + ("SCTP_CONN = %p, IDX = %u, S_INDEX = %u, C_INDEX = %u, LCL_PORT = %u, RMT_PORT = %u", + sctp_conn, idx, sctp_conn->sub_conn[idx].connection.s_index, + sctp_conn->sub_conn[idx].connection.c_index, + sctp_conn->sub_conn[idx].connection.lcl_port, + sctp_conn->sub_conn[idx].connection.rmt_port); data_chunk->sctp_hdr.checksum = 0; data_chunk->sctp_hdr.src_port = sctp_conn->sub_conn[idx].connection.lcl_port; @@ -1133,7 +1138,7 @@ sctp_push_hdr_i (sctp_connection_t * sctp_conn, vlib_buffer_t * b, vnet_buffer (b)->sctp.connection_index = sctp_conn->sub_conn[idx].connection.c_index; - vnet_buffer (b)->sctp.conn_idx = idx; + vnet_buffer (b)->sctp.subconn_idx = idx; } u32 @@ -1142,6 +1147,15 @@ sctp_push_header (transport_connection_t * trans_conn, vlib_buffer_t * b) sctp_connection_t *sctp_conn = sctp_get_connection_from_transport (trans_conn); + SCTP_DBG_OUTPUT ("TRANS_CONN = %p, SCTP_CONN = %p, " + "S_INDEX = %u, C_INDEX = %u," + "LCL_PORT = %u, RMT_PORT = %u", + trans_conn, + sctp_conn, + trans_conn->s_index, + trans_conn->c_index, + trans_conn->lcl_port, trans_conn->rmt_port); + sctp_push_hdr_i (sctp_conn, b, SCTP_STATE_ESTABLISHED); sctp_trajectory_add_start (b0, 3); @@ -1244,7 +1258,7 @@ sctp46_output_inline (vlib_main_t * vm, goto done; } - u8 idx = vnet_buffer (b0)->sctp.conn_idx; + u8 idx = vnet_buffer (b0)->sctp.subconn_idx; th0 = vlib_buffer_get_current (b0); |