This looks fine to me now. Acked-by: Jon Maloy > -----Original Message----- > From: Parthasarathy Bhuvaragan > Sent: Monday, 19 September, 2016 14:56 > To: tipc-discussion@lists.sourceforge.net; Jon Maloy <jon.ma...@ericsson.com>; > ma...@donjonn.com; Ying Xue <ying....@windriver.com> > Subject: [PATCH net-next v4 00/14] tipc: create socket FSM using sk_state > > The following issues with the current socket layer hinders socket diagnostics > implementation, which led to this patch series. The series does not add any > functional change. > > 1. tipc socket state is derived from multiple variables like > sock->state, tsk->probing_state and tsk->connected. This style forces > us to export multiple attributes to the user space, which has to be > backward compatible. > > 2. Abuse of sock->state cannot be exported to user-space without > requiring tipc specific hacks in the user-space. > - For connection less (CL) sockets sock->state is overloaded to > tipc state SS_READY. > - For connection oriented (CO) listening socket sock->state is > overloaded to tipc state SS_LISTEN. > > This series is split into four: > 1. A bug fix in patch#1 > 2. Minor cleanups in patch#2-3 > 3. Express all tipc states using a single variable. This is done in patch#4-7. > 4. Migrate the new tipc states to sk->sk_state. This is done in patch#8-14. > > The figures below represents the FSM after this series: > > For connectionless sockets: > +-----------+ +--------------+ > | TIPC_OPEN |------>| TIPC_CLOSING | > +-----------+ +--------------+ > > Stream Server Listening Socket: > +-----------+ +-------------+ > | TIPC_OPEN |------>| TIPC_LISTEN | > +-----------+ +-------------+ > | > +--------------+ | > | TIPC_CLOSING |<-----------+ > +--------------+ > > Stream Server Data Socket: > +-----------+ +------------------+ > | TIPC_OPEN |------>| TIPC_ESTABLISHED |<---+ > +-----------+ +------------------+ | > ^ | | | > | | +----------+ > | v > +--------------+ > | TIPC_PROBING | > +--------------+ > | > | > v > +--------------+ +--------------------+ > | TIPC_CLOSING |<---| TIPC_DISCONNECTING | > +--------------+ +--------------------+ > > Stream Socket Client: > +-----------+ +-----------------+ > | TIPC_OPEN |------>| TIPC_CONNECTING | > +-----------+ +-----------------+ > | > | > v > +------------------+ > | TIPC_ESTABLISHED |<---+ > +------------------+ | > ^ | | | > | | +---------+ > | v > +--------------+ > | TIPC_PROBING | > +--------------+ > | > | > v > +--------------+ +--------------------+ > | TIPC_CLOSING |<---| TIPC_DISCONNECTING | > +--------------+ +--------------------+ > > NOTE: > This is just a base refractoring required for socket diagnostics. > Implementation of TIPC socket diagnostics will be sent as a > separate series. > > --- > I plan to submit this series after v4.8 release cycle. > > v4: Addressed comments from Jon Maloy: > - Added a new patch #2 to rename variable. > Make state names more readable and consistent: > - Renamed the state TIPC_UNCONNECTED to TIPC_OPEN. > - Adjusted the scope for TIPC_DISCONNECTING in patch#11. > - Added a new state TIPC_CLOSING in patch#12. > > v3: - Address comments from Ying Xue <ying....@windriver.com> in > patch #7, #11. > - Rebase on latest netnext which contains fixes for broadcast NACK > that seems to make ptts regression stable. > - Ran ptts suits for 6000 iterations for 5+ hours. > > Parthasarathy Bhuvaragan (14): > tipc: set kern=0 in sk_alloc() during tipc_accept() > tipc: rename struct tipc_skb_cb member handle to bytes_read > tipc: rename tsk->remote to tsk->peer for consistent naming > tipc: remove tsk->connected for connectionless sockets > tipc: remove tsk->connected from tipc_sock > tipc: remove probing_intv from tipc_sock > tipc: remove socket state SS_READY > tipc: create TIPC_LISTEN as a new sk_state > tipc: create TIPC_PROBING/TIPC_ESTABLISHED as new sk_states > tipc: create TIPC_OPEN as a new sk_state > tipc: create TIPC_DISCONNECTING as a new sk_state > tipc: create TIPC_CLOSING as a new sk_state > tipc: create TIPC_CONNECTING as a new sk_state > tipc: remove SS_CONNECTED sock state > > include/uapi/linux/tipc.h | 13 ++ > net/tipc/msg.h | 2 +- > net/tipc/socket.c | 380 > +++++++++++++++++++++++++--------------------- > 3 files changed, 217 insertions(+), 178 deletions(-) > > -- > 2.1.4
------------------------------------------------------------------------------ _______________________________________________ tipc-discussion mailing list tipc-discussion@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/tipc-discussion