Ying Xue | 15 May 09:59 2015

[PATCH net-next] tipc: unconditionally put sock refcnt when sock timer to be deleted is pending

As sock refcnt is taken when sock timer is started with
sk_reset_timer(), the sock refcnt should be put when sock timer
to be deleted is in pending state no matter what "probing_state"
value of sock is.

Signed-off-by: Ying Xue <ying.xue <at> windriver.com>
---
 net/tipc/socket.c |    7 ++-----
 1 file changed, 2 insertions(+), 5 deletions(-)

diff --git a/net/tipc/socket.c b/net/tipc/socket.c
index 9370f95..30ea82a 100644
--- a/net/tipc/socket.c
+++ b/net/tipc/socket.c
 <at>  <at>  -410,7 +410,7  <at>  <at>  static int tipc_release(struct socket *sock)
 	struct net *net;
 	struct tipc_sock *tsk;
 	struct sk_buff *skb;
-	u32 dnode, probing_state;
+	u32 dnode;

 	/*
 	 * Exit if socket isn't fully initialized (occurs when a failed accept()
 <at>  <at>  -448,10 +448,7  <at>  <at>  static int tipc_release(struct socket *sock)
 	}

 	tipc_sk_withdraw(tsk, 0, NULL);
-	probing_state = tsk->probing_state;
-	if (del_timer_sync(&sk->sk_timer) &&
-	    probing_state != TIPC_CONN_PROBING)
(Continue reading)

Ying Xue | 15 May 09:43 2015

[PATCH net-next] tipc: hold node refcnt in tipc_link_find_owner

As we don't hold node refcnt in tipc_link_find_owner(), it's unsafe
for to use its returned node out of RCU lock protection.

Signed-off-by: Ying Xue <ying.xue <at> windriver.com>
---
 net/tipc/link.c |    6 ++++++
 net/tipc/node.c |    2 +-
 net/tipc/node.h |    1 +
 3 files changed, 8 insertions(+), 1 deletion(-)

diff --git a/net/tipc/link.c b/net/tipc/link.c
index fb2a003..b7afff7 100644
--- a/net/tipc/link.c
+++ b/net/tipc/link.c
 <at>  <at>  -1749,6 +1749,7  <at>  <at>  static struct tipc_node *tipc_link_find_owner(struct net *net,
 			if (l_ptr && !strcmp(l_ptr->name, link_name)) {
 				*bearer_id = i;
 				found_node = n_ptr;
+				tipc_node_get(found_node);
 				break;
 			}
 		}
 <at>  <at>  -1907,6 +1908,7  <at>  <at>  int tipc_nl_link_set(struct sk_buff *skb, struct genl_info *info)

 out:
 	tipc_node_unlock(node);
+	tipc_node_put(node);

 	return res;
 }
(Continue reading)

Jon Maloy | 14 May 16:46 2015
Picon

[PATCH net-next 0/8] tipc: some link layer improvements

We continue eliminating redundant complexity at the link layer, and
add a couple of improvements to the packet sending functionality.

Jon Maloy (8):
  tipc: simplify resetting and disabling of bearers
  tipc: simplify link timer handling
  tipc: simplify include dependencies
  tipc: simplify packet sequence number handling
  tipc: rename fields in struct tipc_link
  tipc: simplify link supervision checkpointing
  tipc: improve link congestion algorithm
  tipc: add packet sequence number at instant of transmission

 net/tipc/addr.c   |   7 --
 net/tipc/addr.h   |   8 ++
 net/tipc/bcast.c  |  20 ++---
 net/tipc/bearer.c |  18 ++--
 net/tipc/bearer.h |   2 +-
 net/tipc/core.h   |  37 +++++++--
 net/tipc/link.c   | 243 +++++++++++++++++++++++-------------------------------
 net/tipc/link.h   |  59 +++----------
 net/tipc/msg.c    |  51 ++++++------
 net/tipc/msg.h    |  37 +++++----
 net/tipc/net.c    |   1 +
 net/tipc/node.c   |   3 +-
 net/tipc/node.h   |   2 -
 net/tipc/socket.c |   1 +
 14 files changed, 225 insertions(+), 264 deletions(-)

--

-- 
(Continue reading)

Jon Maloy | 11 May 22:25 2015
Picon

[PATCH net-next v3 0/8] tipc: some link layer improvements

We continue eliminating redundant complexity at the link layer, and
add a couple of improvements to the packet sending functionality.

v2: General: Fixed typos and improved log messages according to input
             from Ying, Erik, and Richard.

    Commit #4: Removed (harmless) stray "link->checkpoint = true" as per
               comment from Ying. Remnant from previously abandoned
               commit. Changed some, but not all, of the fields
               suggested by Ying from u32 to u16. (We need to make
               a systematic effort on this everywhere (tipc_sock,
               tipc_node, tipc_link) at some moment in order to waste
               less memory.)

   Commit #5:  Changed variable names as suggested by Erik and Ying, 
               to make them more compliant with naming in TCP.

   Commit #7:  Improved scheduling algorithm according to earlier suggestion
               from Gergely Kiss. This both solves a fairness problem and
               a gap in the algorithm that I have realized.
               Erik: I didn't add your "Reviewed-by" here, because of the
               above change. Please review again.

   Commit #8: Simplified signature of tipc_msg_bundle() to better
              show that it doesn't affect the send packet list.
              Improved log message.

v3:Commit #6: Didn't compile, due to failed rebase from #5.
              Renaming timer_intv -> keepalive_intv had disappeared
              at one location.
(Continue reading)

Jon Maloy | 11 May 22:03 2015
Picon

[PATCH net-next v2 0/8] tipc: some link layer improvements

We continue eliminating redundant complexity at the link layer, and
add a couple of improvements to the packet sending functionality.

v2: General: Fixed typos and improved log messages according to input
             from Ying, Erik, and Richard.

    Commit #4: Removed (harmless) stray "link->checkpoint = true" as per
               comment from Ying. Remnant from previously abandoned
               commit. Changed some, but not all, of the fields
               suggested by Ying from u32 to u16. (We need to make
               a systematic effort on this everywhere (tipc_sock,
               tipc_node, tipc_link) at some moment in order to waste
               less memory.)

   Commit #5:  Changed variable names as suggested by Erik and Ying, 
               to make them more compliant with naming in TCP.

   Commit #7:  Improved scheduling algorithm according to earlier suggestion
               from Gergely Kiss. This both solves a fairness problem and
               a gap in the algorithm that I have realized.
               Erik: I didn't add your "Reviewed-by" here, because of the
               above change. Please review again.

   Commit #8: Simplified signature of tipc_msg_bundle() to better
              show that it doesn't affect the send packet list.
              Improved log message.

Jon Maloy (8):
  tipc: simplify resetting and disabling of bearers
  tipc: simplify link timer handling
(Continue reading)

erik.hugne | 8 May 16:17 2015
Picon

[PATCH v2] tipc: disconnect socket directly after probe failure

From: Erik Hugne <erik.hugne <at> ericsson.com>

If the TIPC connection timer expires in a probing state, a
self abort message is supposed to be generated and delivered
to the local socket. This is currently broken, and the abort
message is actually sent out to the peer node with invalid
addressing information. This will cause the link to enter
a constant retransmission state and eventually reset.
We fix this by removing the self-abort message creation and
tear down connection immediately instead.

Signed-off-by: Erik Hugne <erik.hugne <at> ericsson.com>
---
v2: honor socket locking rules (comment from Ying)

 net/tipc/socket.c | 48 ++++++++++++++++++++++++++++++++++++++++++------
 1 file changed, 42 insertions(+), 6 deletions(-)

diff --git a/net/tipc/socket.c b/net/tipc/socket.c
index 9074b5c..5a246d7 100644
--- a/net/tipc/socket.c
+++ b/net/tipc/socket.c
 <at>  <at>  -53,6 +53,10  <at>  <at> 
 #define TIPC_MAX_PORT		0xffffffff
 #define TIPC_MIN_PORT		1

+enum tsk_flags {
+	TSK_PROBE_TIMER_DEFERRED = 1
+};
+
(Continue reading)

Jernej Krmelj | 6 May 23:37 2015
Picon

java support

Hi,

a question regarding java support for tipc: is there any activity going on
to support tipc with java?

If not, what would be the appropriate approach to start implementing this
support?

Thanks, Jernej
------------------------------------------------------------------------------
One dashboard for servers and applications across Physical-Virtual-Cloud 
Widest out-of-the-box monitoring support with 50+ applications
Performance metrics, stats and reports that give you Actionable Insights
Deep dive visibility with transaction tracing using APM Insight.
http://ad.doubleclick.net/ddm/clk/290420510;117567292;y
richard.alpe | 6 May 13:58 2015
Picon

[PATCH net-next 1/3] tipc: fix default link prop regression in nl compat

From: Richard Alpe <richard.alpe <at> ericsson.com>

Default link properties can be set for media or bearer. This
functionality was missed when introducing the NL compatibility layer.

This patch implements this functionality in the compat netlink
layer. It works the same way as it did in the old API. We search for
media and bearers matching the "link name". If we find a matching
media or bearer the link tolerance, priority or window is used as
default for new links on that media or bearer.

Fixes: 37e2d4843f9e (tipc: convert legacy nl link prop set to nl compat)
Reported-by: Tomi Ollila <tomi.ollila <at> iki.fi>
Signed-off-by: Richard Alpe <richard.alpe <at> ericsson.com>
Reviewed-by: Erik Hugne <erik.hugne <at> ericsson.com>
Reviewed-by: Ying Xue <ying.xue <at> windriver.com>
---
 net/tipc/bearer.c         |   2 +-
 net/tipc/netlink_compat.c | 135 ++++++++++++++++++++++++++++++++++++++--------
 2 files changed, 114 insertions(+), 23 deletions(-)

diff --git a/net/tipc/bearer.c b/net/tipc/bearer.c
index 70e3dac..99c0bd4 100644
--- a/net/tipc/bearer.c
+++ b/net/tipc/bearer.c
 <at>  <at>  -812,7 +812,7  <at>  <at>  int tipc_nl_bearer_set(struct sk_buff *skb, struct genl_info *info)
 	char *name;
 	struct tipc_bearer *b;
 	struct nlattr *attrs[TIPC_NLA_BEARER_MAX + 1];
-	struct net *net = genl_info_net(info);
(Continue reading)

Ying Xue | 4 May 04:36 2015

[PATCH net-next 0/5] tipc: cleanup topology server

Not only function names declared in subscr.c are very confused, but
also topology server's locking policy is not designed very well, for
instance, usually leading to panic in some special corner cases.

In this series, we attempt to eliminate the confusion of function names
and simplify topology server's locking policy to solve above mentioned
issues. More importantly, the change will make relevant code easily
understandable and maintainable.

Ying Xue (5):
  tipc: rename functions defined in subscr.c
  tipc: introduce tipc_subscrb_create routine
  tipc: involve reference counter for subscriber
  tipc: adjust locking policy of subscription
  tipc: deal with return value of tipc_conn_new callback

 net/tipc/core.c       |    4 +-
 net/tipc/name_table.c |   34 +++----
 net/tipc/server.c     |    4 +
 net/tipc/subscr.c     |  242 ++++++++++++++++++++++---------------------------
 net/tipc/subscr.h     |   18 ++--
 5 files changed, 137 insertions(+), 165 deletions(-)

--

-- 
1.7.9.5

------------------------------------------------------------------------------
One dashboard for servers and applications across Physical-Virtual-Cloud 
Widest out-of-the-box monitoring support with 50+ applications
Performance metrics, stats and reports that give you Actionable Insights
(Continue reading)

erik.hugne | 30 Apr 15:21 2015
Picon

[RFC 1/2] tipc: disconnect socket directly after probe failure

From: Erik Hugne <erik.hugne <at> ericsson.com>

If the TIPC connection timer expires in a probing state, a
self abort message is supposed to be generated and delivered
to the local socket. This is currently broken, and the abort
message is actually sent out to the peer node with invalid
addressing information. This will cause the link to enter
a constant retransmission state and eventually reset.
We fix this by removing the self-abort message creation and
tear down connection immediately instead.

Signed-off-by: Erik Hugne <erik.hugne <at> ericsson.com>
---
 net/tipc/socket.c | 8 +++-----
 1 file changed, 3 insertions(+), 5 deletions(-)

diff --git a/net/tipc/socket.c b/net/tipc/socket.c
index 9074b5c..209dc2f 100644
--- a/net/tipc/socket.c
+++ b/net/tipc/socket.c
 <at>  <at>  -2142,11 +2142,9  <at>  <at>  static void tipc_sk_timeout(unsigned long data)
 	peer_node = tsk_peer_node(tsk);

 	if (tsk->probing_state == TIPC_CONN_PROBING) {
-		/* Previous probe not answered -> self abort */
-		skb = tipc_msg_create(TIPC_CRITICAL_IMPORTANCE,
-				      TIPC_CONN_MSG, SHORT_H_SIZE, 0,
-				      own_node, peer_node, tsk->portid,
-				      peer_port, TIPC_ERR_NO_PORT);
+		sk->sk_socket->state = SS_DISCONNECTING;
(Continue reading)

Ying Xue | 30 Apr 12:08 2015

[PATCH net-next- v2 0/5] tipc: cleanup topology server

Not only function names declared in subscr.c are very confused, but
also topology server's locking policy is not designed very well, for
instance, usually leading to panic in some special cases.

In this series, we attempt to eliminate the confusion of function names
and simplify topology server's locking policy to solve above mentioned
issues. More importantly, the change will make relevant code easily
understandable and maintainable.

Changes:
  v2:
    - Change the prefix of all function associated with subscription
      and subscriber to "tipc_subscrb" or "tipc_subscrp"
    - Change all callback function names of internal server, which
      are all appended with "_cb"

Ying Xue (5):
  tipc: rename functions defined in subscr.c
  tipc: introduce tipc_subscrb_create routine
  tipc: involve reference counter for subscriber
  tipc: adjust locking policy of subscription
  tipc: deal with return value of tipc_conn_new callback

 net/tipc/core.c       |    4 +-
 net/tipc/name_table.c |   34 +++----
 net/tipc/server.c     |    4 +
 net/tipc/subscr.c     |  242 ++++++++++++++++++++++---------------------------
 net/tipc/subscr.h     |   18 ++--
 5 files changed, 137 insertions(+), 165 deletions(-)

(Continue reading)


Gmane