net: tcp2: Implement FIN_WAIT_1 state

On active close, wait for FIN+ACK and subsequently
enter TIME_WAIT state.

Signed-off-by: Oleg Zhurakivskyy <oleg.zhurakivskyy@intel.com>
This commit is contained in:
Oleg Zhurakivskyy 2020-04-07 15:32:08 +03:00 committed by Jukka Rissanen
commit 40799bc986

View file

@ -929,13 +929,18 @@ next_state:
case TCP_CLOSED:
tcp_conn_unref(conn);
break;
case TCP_CLOSING:
case TCP_FIN_WAIT_1:
case TCP_FIN_WAIT_2:
if (th && FL(&fl, ==, (FIN | ACK), th_seq(th) == conn->ack)) {
tcp_send_timer_cancel(conn);
next = TCP_TIME_WAIT;
}
break;
case TCP_TIME_WAIT:
k_delayed_work_submit(&conn->timewait_timer,
K_MSEC(CONFIG_NET_TCP_TIME_WAIT_DELAY));
break;
case TCP_FIN_WAIT_2:
case TCP_CLOSING:
default:
NET_ASSERT(false, "%s is unimplemented",
tcp_state_to_str(conn->state, true));