Re: [tipc-discussion] [PATCH net-next v4 00/14] tipc: create socket FSM using sk_state

2016-10-08 Thread Xue, Ying
Good job!
The series is good for me.
Acked-by: Ying Xue 

-Original Message-
From: Jon Maloy [mailto:jon.ma...@ericsson.com] 
Sent: Monday, September 19, 2016 11:49 PM
To: Parthasarathy Bhuvaragan; tipc-discussion@lists.sourceforge.net; 
ma...@donjonn.com; Xue, Ying
Subject: RE: [PATCH net-next v4 00/14] tipc: create socket FSM using sk_state

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 
> ; ma...@donjonn.com; Ying Xue 
> 
> 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  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 

Re: [tipc-discussion] [PATCH net-next v4 00/14] tipc: create socket FSM using sk_state

2016-09-19 Thread Jon Maloy
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 ;
> ma...@donjonn.com; Ying Xue 
> 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  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

[tipc-discussion] [PATCH net-next v4 00/14] tipc: create socket FSM using sk_state

2016-09-19 Thread Parthasarathy Bhuvaragan
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  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