162306a36Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0 */ 262306a36Sopenharmony_ci/* Copyright (c) 2023 Meta Platforms, Inc. and affiliates. */ 362306a36Sopenharmony_ci 462306a36Sopenharmony_ci/* Define states of a socket to tracking messages sending to and from the 562306a36Sopenharmony_ci * socket. 662306a36Sopenharmony_ci * 762306a36Sopenharmony_ci * These states are based on rfc9293 with some modifications to support 862306a36Sopenharmony_ci * tracking of messages sent out from a socket. For example, when a SYN is 962306a36Sopenharmony_ci * received, a new socket is transiting to the SYN_RECV state defined in 1062306a36Sopenharmony_ci * rfc9293. But, we put it in SYN_RECV_SENDING_SYN_ACK state and when 1162306a36Sopenharmony_ci * SYN-ACK is sent out, it moves to SYN_RECV state. With this modification, 1262306a36Sopenharmony_ci * we can track the message sent out from a socket. 1362306a36Sopenharmony_ci */ 1462306a36Sopenharmony_ci 1562306a36Sopenharmony_ci#ifndef __CGROUP_TCP_SKB_H__ 1662306a36Sopenharmony_ci#define __CGROUP_TCP_SKB_H__ 1762306a36Sopenharmony_ci 1862306a36Sopenharmony_cienum { 1962306a36Sopenharmony_ci INIT, 2062306a36Sopenharmony_ci CLOSED, 2162306a36Sopenharmony_ci SYN_SENT, 2262306a36Sopenharmony_ci SYN_RECV_SENDING_SYN_ACK, 2362306a36Sopenharmony_ci SYN_RECV, 2462306a36Sopenharmony_ci ESTABLISHED, 2562306a36Sopenharmony_ci FIN_WAIT1, 2662306a36Sopenharmony_ci FIN_WAIT2, 2762306a36Sopenharmony_ci CLOSE_WAIT_SENDING_ACK, 2862306a36Sopenharmony_ci CLOSE_WAIT, 2962306a36Sopenharmony_ci CLOSING, 3062306a36Sopenharmony_ci LAST_ACK, 3162306a36Sopenharmony_ci TIME_WAIT_SENDING_ACK, 3262306a36Sopenharmony_ci TIME_WAIT, 3362306a36Sopenharmony_ci}; 3462306a36Sopenharmony_ci 3562306a36Sopenharmony_ci#endif /* __CGROUP_TCP_SKB_H__ */ 36