From fae4039ad2af251690e4cb79d5842a6e97029032 Mon Sep 17 00:00:00 2001 From: Marco Varlese Date: Wed, 14 Feb 2018 15:38:35 +0100 Subject: SCTP: fix corrupted buffers seen in output node The issue observed in the output-node was actually caused by one of the input-node pushing buffers to the output node when not required. That is the case with the parsing/handling of incoming packets like the COOKIE_ACK, HEARTBEAT_ACK, DATA, SACK which do not require a response to be sent to the other peer. In all the mentioned cases the packets (buffers) need to be consumed and dropped instead of heading to the output-node. Change-Id: I3dcbe5de1cedb2ab8b06fff4364749b525cc7ac6 Signed-off-by: Marco Varlese --- src/vnet/sctp/sctp.h | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'src/vnet/sctp/sctp.h') diff --git a/src/vnet/sctp/sctp.h b/src/vnet/sctp/sctp.h index bc974d948de..25fae37b6f7 100644 --- a/src/vnet/sctp/sctp.h +++ b/src/vnet/sctp/sctp.h @@ -251,7 +251,8 @@ void sctp_send_init (sctp_connection_t * sctp_conn); void sctp_send_shutdown (sctp_connection_t * sctp_conn); void sctp_send_shutdown_ack (sctp_connection_t * sctp_conn, vlib_buffer_t * b); -void sctp_send_shutdown_complete (sctp_connection_t * sctp_conn); +void sctp_send_shutdown_complete (sctp_connection_t * sctp_conn, + vlib_buffer_t * b0); void sctp_send_heartbeat (sctp_connection_t * sctp_conn); void sctp_flush_frame_to_output (vlib_main_t * vm, u8 thread_index, u8 is_ip4); @@ -718,6 +719,9 @@ sctp_pick_conn_idx_on_chunk (sctp_chunk_type chunk_type) case CWR: case SHUTDOWN_COMPLETE: idx = MAIN_SCTP_SUB_CONN_IDX; + break; + default: + idx = 0; } return idx; } -- cgit 1.2.3-korg