[PATCH v3 net-next 2/2] tools: psock_tpacket: block Rx until socket filter has been added and socket has been bound to loopback.

2017-01-04 Thread Sowmini Varadhan
packets that will be passed up are those received on loopback that pass the attached filter. Signed-off-by: Sowmini Varadhan <sowmini.varad...@oracle.com> --- v2: patch reworked based on comments from Willem de Bruijn tools/testing/selftests/net/psock_tpacket.c |6 +++--- 1 files chan

[PATCH v3 net-next 1/2] tools: psock_lib: tighten conditions checked in sock_setfilter

2017-01-04 Thread Sowmini Varadhan
the conditions checked by the filter so that only UDP/IPv4 packets with the matching length and test-character will be permitted by the filter. The filter has been cleaned up to explicitly use the BPF macros to make it more readable. Signed-off-by: Sowmini Varadhan <sowmini.varad...@oracle.com>

[PATCH v2 net-next 2/2] tools: psock_tpacket: block Rx until socket filter has been added and socket has been bound to loopback.

2017-01-04 Thread Sowmini Varadhan
packets that will be passed up are those received on loopback that pass the attached filter. Signed-off-by: Sowmini Varadhan <sowmini.varad...@oracle.com> --- v2: patch reworked based on comments from Willem de Bruijn tools/testing/selftests/net/psock_tpacket.c |6 +++--- 1 files chan

[PATCH v2 net-next 0/2] tools: psock_tpacket bug fixes

2017-01-04 Thread Sowmini Varadhan
re binding the socket to ETH_P_ALL and lo. Changes from v2: patch 2 reworked based on review comments. Sowmini Varadhan (2): tools: tighten conditions checked in sock_setfilter tools: psock_tpacket: block Rx until socket filter has been added and socket has been bound to loopback. too

[PATCH v2 net-next 1/2] tools: psock_lib: tighten conditions checked in sock_setfilter

2017-01-04 Thread Sowmini Varadhan
the conditions checked by the filter so that only UDP/IPv4 packets with the matching length and test-character will be permitted by the filter. The filter has been cleaned up to explicitly use the BPF macros to make it more readable. Signed-off-by: Sowmini Varadhan <sowmini.varad...@oracle.com>

Re: [PATCH net-next 2/2] tools: psock_tpacket: verify that packet was received on lo before counting it

2017-01-04 Thread Sowmini Varadhan
On (01/04/17 11:24), Willem de Bruijn wrote: > > Oh, good point. It may require some more refactoring. Feel free to > leave it for me if you prefer. actually it may not be so bad, let me do it, since I already have a reliable way of reproducing this.. --Sowmini

Re: [PATCH net-next 2/2] tools: psock_tpacket: verify that packet was received on lo before counting it

2017-01-04 Thread Sowmini Varadhan
On (01/04/17 11:07), Willem de Bruijn wrote: > > Please do. Then the patch is just a one-line change to > the third argument of the socket call. Thanks! ok but it's going to be more than a one-line change. Today you have sock = pfsocket(version); memset(, 0, sizeof(ring));

Re: [PATCH net-next 2/2] tools: psock_tpacket: verify that packet was received on lo before counting it

2017-01-04 Thread Sowmini Varadhan
ndex is simpler. Do you want me to change this to first set up pfsocket() with proto 0, then set up filter, and then bind_ring() to the desired ifindex with ETH_P_ALL? I can spin out v2 (and if I have to that, I can also fix the comments) if you feel strongly about it. --Sowmini

Re: [PATCH net-next 2/2] tools: psock_tpacket: verify that packet was received on lo before counting it

2017-01-04 Thread Sowmini Varadhan
of that too (and I've seen that done in one commercial implementation), but given that tpacket nicely returns the incoming interface, I figured, why not use the test prog to use this (thus verifying it, and also showing how to use it) --Sowmini

[PATCH net-next 2/2] tools: psock_tpacket: verify that packet was received on lo before counting it

2017-01-03 Thread Sowmini Varadhan
these packets by examining the sll_ifindex sent up in each frame and ensuring that this is the same as the ifindex that was used in bind_ring() Signed-off-by: Sowmini Varadhan <sowmini.varad...@oracle.com> --- tools/testing/selftests/net/psock_tpacket.c | 25 - 1 files chang

[PATCH net-next 1/2] tools: psock_lib: tighten conditions checked in sock_setfilter

2017-01-03 Thread Sowmini Varadhan
-by: Sowmini Varadhan <sowmini.varad...@oracle.com> --- tools/testing/selftests/net/psock_lib.h | 28 +--- 1 files changed, 21 insertions(+), 7 deletions(-) diff --git a/tools/testing/selftests/net/psock_lib.h b/tools/testing/selftests/net/psock_lib.h index 2

[PATCH net-next 0/2] tools: psock_tpacket bug fixes

2017-01-03 Thread Sowmini Varadhan
tpacket rx frame and making sure that packets counted toward the test are those received on lo. Sowmini Varadhan (2): tools: tighten conditions checked in sock_setfilter tools: psock_tpacket: verify that packet was received on lo before counting it tools/testing/selftests/net/p

[PATCH v3 net-next 1/2] af_packet: TX_RING support for TPACKET_V3

2017-01-03 Thread Sowmini Varadhan
only support fixed size Tx frames for TPACKET_V3, and requires that tp_next_offset must be zero. Signed-off-by: Sowmini Varadhan <sowmini.varad...@oracle.com> --- v2: sanity checks on tp_next_offset and corresponding Doc updates as suggested by Willem de Bruijn v3: additional sanity ch

[PATCH v3 net-next 0/2] TPACKET_V3 TX_RING support

2017-01-03 Thread Sowmini Varadhan
: additional sanity checks for setsockopt input for TX_RING/TPACKET_V3. Refactored psock_tpacket.c test code to avoid code duplication from V2. Sowmini Varadhan (2): af_packet: TX_RING support for TPACKET_V3 tools: test case for TPACKET_V3/TX_RING support Documentation/networking

[PATCH v3 net-next 2/2] tools: test case for TPACKET_V3/TX_RING support

2017-01-03 Thread Sowmini Varadhan
Add a test case and sample code for (TPACKET_V3, PACKET_TX_RING) Signed-off-by: Sowmini Varadhan <sowmini.varad...@oracle.com> --- v2: Added test case. v3: refactored code to have a single walk_tx() function that handles all three TPACKET versions. tools/testing/selftes

Re: [PATCH v2 net-next 1/2] af_packet: TX_RING support for TPACKET_V3

2017-01-02 Thread Sowmini Varadhan
o me. Ok, I'll send out v3 tomorrow, with the test case also updated to share code with walk_v1_v2_tx as cleanly as possible. Thanks for the review feedback! --Sowmini

Re: [PATCH v2 net-next 2/2] tools: test case for TPACKET_V3/TX_RING support

2017-01-02 Thread Sowmini Varadhan
} I can change it as above, if you think this would help. --Sowmini

[PATCH v2 net-next 1/2] af_packet: TX_RING support for TPACKET_V3

2017-01-01 Thread Sowmini Varadhan
only support fixed size Tx frames for TPACKET_V3, and requires that tp_next_offset must be zero. Signed-off-by: Sowmini Varadhan <sowmini.varad...@oracle.com> --- v2: sanity checks on tp_next_offset and corresponding Doc updates as suggested by Willem de Bruijn Documentation/netw

[PATCH v2 net-next 2/2] tools: test case for TPACKET_V3/TX_RING support

2017-01-01 Thread Sowmini Varadhan
Add a test case and sample code for (TPACKET_V3, PACKET_TX_RING) Signed-off-by: Sowmini Varadhan <sowmini.varad...@oracle.com> --- v2: Added test case. tools/testing/selftests/net/psock_tpacket.c | 110 ++- 1 files changed, 109 insertions(+), 1 deletions(-) diff

[PATCH v2 net-next 0/2] TPACKET_V3 TX_RING support

2017-01-01 Thread Sowmini Varadhan
are supported on TX_RING for TPACKET_V3. - patch 2 in this series adds a test case and sample code for (TPACKET_V3, PACKET_TX_RING) in testing/selftests Sowmini Varadhan (2): af_packet: TX_RING support for TPACKET_V3 tools: test case for TPACKET_V3/TX_RING support Documentation/networking

Re: [PATCH net-next] af_packet: Provide a TPACKET_V2 compatible Tx path for TPACKET_V3

2016-12-31 Thread Sowmini Varadhan
is to patchv2, along with extra test cases. --Sowmini

Re: [PATCH net-next] af_packet: Provide a TPACKET_V2 compatible Tx path for TPACKET_V3

2016-12-30 Thread Sowmini Varadhan
not thought too deeply about it. But if we think this may be needed in the future can't it be accomodated by additional sockopts (or even per-packet cmsghdr?) on top of V3? > Could you also extend the TX_RING test in > tools/testing/selftests/net/psock_tpacket.c if there are no other > blocking issues? sure, I can do that. Let me do this for patchv2. --Sowmini

Re: [PATCH net-next] af_packet: Provide a TPACKET_V2 compatible Tx path for TPACKET_V3

2016-12-30 Thread Sowmini Varadhan
tx and rx. > relevant to Tx. The current implementation does not consult > tpacket3_hdr->tp_next_offset and would preclude adding that > later. When is "later"? its been 6+ years. --Sowmini

[PATCH net-next] af_packet: Provide a TPACKET_V2 compatible Tx path for TPACKET_V3

2016-12-30 Thread Sowmini Varadhan
. This patch enables TPACKET_V2 compatible Tx features in TPACKET_V3 so that _v3 supports at least as many features as _v2. Signed-off-by: Sowmini Varadhan <sowmini.varad...@oracle.com> --- Documentation/networking/packet_mmap.txt |6 -- net/packet/af_packet.c

Re: Initial thoughts on TXDP

2016-12-01 Thread Sowmini Varadhan
benefit is somewhat > unclear. Under the wrong conditions, like all cwnds have collapsed or I think Rick's already bringing up this one. --Sowmini

Re: Initial thoughts on TXDP

2016-12-01 Thread Sowmini Varadhan
t isnt that an issue if you bypass sk_buff usage? But I should probably go and review your patchset.. --Sowmini

[PATCH net] RDS: TCP: unregister_netdevice_notifier() in error path of rds_tcp_init_net

2016-12-01 Thread Sowmini Varadhan
If some error is encountered in rds_tcp_init_net, make sure to unregister_netdevice_notifier(), else we could trigger a panic later on, when the modprobe from a netns fails. Signed-off-by: Sowmini Varadhan <sowmini.varad...@oracle.com> --- net/rds/tcp.c |2 ++ 1 files changed, 2 inse

[PATCH net-next 2/3] RDS: TCP: Track peer's connection generation number

2016-11-16 Thread Sowmini Varadhan
ng request or response and will allow the receiver to reset rds_connection state. Signed-off-by: Sowmini Varadhan <sowmini.varad...@oracle.com> Acked-by: Santosh Shilimkar <santosh.shilim...@oracle.com> --- net/rds/af_rds.c |4 net/rds/connection.c |2 ++ net/rds/message.

[PATCH net-next 3/3] RDS: TCP: Force every connection to be initiated by numerically smaller IP address

2016-11-16 Thread Sowmini Varadhan
g. A side-effect of enforcing this condition in rds_tcp_state_change() is that rds_tcp_accept_one_path() can now be refactored for simplicity. It is also no longer possible to encounter an RDS_CONN_UP connection in the arbitration logic in rds_tcp_accept_one(). Signed-off-by: Sowmini Varadhan <s

[PATCH net-next 1/3] RDS: TCP: set RDS_FLAG_RETRANSMITTED in cp_retrans list

2016-11-16 Thread Sowmini Varadhan
is predicated on the RDS_FLAG_RETRANSMITTED flag in the rds_message, so make sure the flag is set on messages queued for retransmission. Signed-off-by: Sowmini Varadhan <sowmini.varad...@oracle.com> Acked-by: Santosh Shilimkar <santosh.shilim...@oracle.com> --- net/rds/tcp_send.c |3 +++ 1 f

[PATCH net-next 0/3] RDS: TCP: HA/Failover fixes

2016-11-16 Thread Sowmini Varadhan
any issues. Each patch has a detailed description of the root-cause fixed by the patch. Sowmini Varadhan (3): RDS: TCP: set RDS_FLAG_RETRANSMITTED in cp_retrans list RDS: TCP: Track peer's connection generation number RDS: TCP: Force every connection to be initiated by numerically

[PATCH net-next 2/2] RDS: TCP: start multipath acceptor loop at 0

2016-11-04 Thread Sowmini Varadhan
-off-by: Sowmini Varadhan <sowmini.varad...@oracle.com> Acked-by: Santosh Shilimkar <santosh.shilim...@oracle.com> --- net/rds/tcp_listen.c |2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/net/rds/tcp_listen.c b/net/rds/tcp_listen.c index e0b23fb..c9c4968 1006

[PATCH net-next 0/2] RDS: TCP: bug fixes

2016-11-04 Thread Sowmini Varadhan
A couple of bug fixes identified during testing. Sowmini Varadhan (2): RDS: TCP: report addr/port info based on TCP socket in rds-info RDS: TCP: start multipath acceptor loop at 0 net/rds/tcp.c| 20 +--- net/rds/tcp_listen.c |2 +- 2 files changed, 14

[PATCH net-next 1/2] RDS: TCP: report addr/port info based on TCP socket in rds-info

2016-11-04 Thread Sowmini Varadhan
The socket argument passed to rds_tcp_tc_info() is a PF_RDS socket, so it is incorrect to report the address port info based on rds_getname() as part of TCP state report. Invoke inet_getname() for the t_sock associated with the rds_tcp_connection instead. Signed-off-by: Sowmini Varadhan

Re: [Intel-wired-lan] [PATCH V3 RFC 2/2] ixgbe: ixgbe_atr() compute l4_proto only if non-paged data has network/transport headers

2016-10-17 Thread Sowmini Varadhan
On (10/17/16 15:37), Jeff Kirsher wrote: > > Reviewed-by: Alexander Duyck <alexander.h.du...@intel.com> > > Sowmini, can you re-submit this to intel-wired-lan but without the RFC in > the title? V4 resubmitted.. I think I just inadvertently forgot to add Alex as the re

Re: [Intel-wired-lan] [PATCH V2 RFC 2/2] ixgbe: ixgbe_atr() compute l4_proto only if non-paged data has network/transport headers

2016-10-17 Thread Sowmini Varadhan
e l4_proto computation > > above? > > Sort of. The problem is IPv6 can include extension headers and that > can totally mess with us. So we need to do one more check to verify > that we have enough space for IPv6 w/ TCP which would be hdr.raw + 20 > + hlenl. Yes, you are right. So given that I already check that I have at least 40 bytes past the network header, and ipv6_find_hdr will pull up exthdrs as needed, my checks are not needed, and the real ones should happen after we come out of that switch(). --Sowmini

[PATCH v3 RFC 0/2] ixgbe: ixgbe_atr() bug fixes

2016-10-17 Thread Sowmini Varadhan
Two bug fixes: - ixgbe_atr() should check for protocol == udp in the skb->encapsulation case (instead of !=) - ixgbe_atr() should make sure the non-paged data has the needed network/transport header for computing l4_proto. v3: Alex Duyck comments Sowmini Varadhan (2): ixgbe: ixgbe_

[PATCH V3 RFC 2/2] ixgbe: ixgbe_atr() compute l4_proto only if non-paged data has network/transport headers

2016-10-17 Thread Sowmini Varadhan
are already available in the non-paged header dat. The assumption is that the caller has set this up if l4_proto based Tx steering is desired. Signed-off-by: Sowmini Varadhan <sowmini.varad...@oracle.com> --- v3: add unlikely(); remove needless check for hdr.network against skb_tail_p

[PATCH V3 RFC 1/2] ixgbe: ixgbe_atr() should access udp_hdr(skb) only for UDP packets

2016-10-17 Thread Sowmini Varadhan
Commit 9f12df906cd8 ("ixgbe: Store VXLAN port number in network order") incorrectly checks for hdr.ipv4->protocol != IPPROTO_UDP in ixgbe_atr(). This check should be for "==" instead. Signed-off-by: Sowmini Varadhan <sowmini.varad...@oracle.com> --- drivers/net/ethe

Re: [Intel-wired-lan] [PATCH V2 RFC 2/2] ixgbe: ixgbe_atr() compute l4_proto only if non-paged data has network/transport headers

2016-10-17 Thread Sowmini Varadhan
break; > > I believe one more check is needed after this block to verify the TCP > header fields are present. > > So you probably need to add a check for "skb_tail_pointer(skb) < > (hdr.network + hlen + 20)". But isnt that the same thing as the checks before l4_proto computation above? --Sowmini

[PATCH V2 RFC 2/2] ixgbe: ixgbe_atr() compute l4_proto only if non-paged data has network/transport headers

2016-10-17 Thread Sowmini Varadhan
are already available in the non-paged header dat. The assumption is that the caller has set this up if l4_proto based Tx steering is desired. Signed-off-by: Sowmini Varadhan <sowmini.varad...@oracle.com> --- drivers/net/ethernet/intel/ixgbe/ixgbe_main.c | 18 ++ 1 files c

[PATCH V2 RFC 1/2] ixgbe: ixgbe_atr() should access udp_hdr(skb) only for UDP packets

2016-10-17 Thread Sowmini Varadhan
Commit 9f12df906cd8 ("ixgbe: Store VXLAN port number in network order") incorrectly checks for hdr.ipv4->protocol != IPPROTO_UDP in ixgbe_atr(). This check should be for "==" instead. Signed-off-by: Sowmini Varadhan <sowmini.varad...@oracle.com> --- drivers/net/ethe

[PATCH V2 RFC 0/2] ixgbe: ixgbe_atr() bug fixes

2016-10-17 Thread Sowmini Varadhan
Two bug fixes: - ixgbe_atr() should check for protocol == udp in the skb->encapsulation case (instead of !=) - ixgbe_atr() should make sure the non-paged data has the needed network/transport header for computing l4_proto. Sowmini Varadhan (2): ixgbe: ixgbe_atr() should access udp_hdr(

[PATCH RFC] ixgbe: ixgbe_atr() must check if network header is available in headlen

2016-10-15 Thread Sowmini Varadhan
short", and does not attempt to call skb_header_pointer() to get the needed bytes: the assumption is that the caller should set things up properly if the l4_proto based tx steering is desired. Signed-off-by: Sowmini Varadhan <sowmini.varad...@oracle.com> --- drivers/net/ethernet/intel/ix

Re: [rds-devel] [PATCH 2/2] rds: Remove duplicate prefix from rds_conn_path_error use

2016-10-15 Thread Sowmini Varadhan
On (10/15/16 11:53), Joe Perches wrote: > > rds_conn_path_error already prefixes "RDS:" to the output. > > Signed-off-by: Joe Perches <j...@perches.com> Acked-by: Sowmini Varadhan <sowmini.varad...@oracle.com>

Re: [rds-devel] [PATCH 1/2] rds: Remove unused rds_conn_error

2016-10-15 Thread Sowmini Varadhan
igned-off-by: Joe Perches <j...@perches.com> Acked-by: Sowmini Varadhan <sowmini.varad...@oracle.com>

Re: bug in ixgbe_atr

2016-10-14 Thread Sowmini Varadhan
On (10/14/16 16:09), Duyck, Alexander H wrote: > Sorry I was thinking of a different piece of code. In the case of the > atr code it would be hdr.network, not hdr.raw. Basically the thought > was to validate that there is enough data in skb_headlen() that we can > verify that from where the

Re: bug in ixgbe_atr

2016-10-13 Thread Sowmini Varadhan
. If we do that then the whole problem > becomes moot. Dropping it is fine with me I guess - maybe just return, if the skb_headlen() doesnt have enough bytes for a network header, i.e., skb_headlen is at least ETH_HLEN + sizeof (struct iphdr) for ETH_P_IP, or ETH_HLEN + sizeof (struct ipv6hdr) for ETH_P_IPV6? --Sowmini

bug in ixgbe_atr

2016-10-13 Thread Sowmini Varadhan
refinement to work for more complex encapsulations? And other drivers may need a similar fix too, I've not checked yet. --Sowmini diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c b/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c index a244d9a..be453c6 100644 --- a/drivers/net/ethernet/i

Re: [PATCH net-next] net/vxlan: Avoid unaligned access in vxlan_build_skb()

2016-09-28 Thread Sowmini Varadhan
ng about this in great detail > next week at netdev/netconf.. :-) Agree. --Sowmini

Re: [PATCH net-next] net/vxlan: Avoid unaligned access in vxlan_build_skb()

2016-09-28 Thread Sowmini Varadhan
On (09/23/16 17:43), Alexander Duyck wrote: > > On (09/23/16 10:38), Alexander Duyck wrote: ; > >> almost think of it as us doing something like the inverse of > >> pskb_pull_tail. The general idea here is we want to actually leave > >> the data in skb->data, but just reference it from

Re: [PATCH net-next] net/vxlan: Avoid unaligned access in vxlan_build_skb()

2016-09-23 Thread Sowmini Varadhan
something along this line could do the trick.. I tried hacking it a bit today for vxlan, and it could be extended for all these encaps protocols. Let me fix/test this more next week, maybe we can discuss in Tokyo. --Sowmini

Re: [PATCH net-next] net/vxlan: Avoid unaligned access in vxlan_build_skb()

2016-09-23 Thread Sowmini Varadhan
r the > inner headers would remain valid, though they would be past the point > of skb->tail. I am not sure I follow, can you elaborate? Doesnt this also assume that every skb is necessarily non-linear? --Sowmini

Re: [PATCH net-next] net/vxlan: Avoid unaligned access in vxlan_build_skb()

2016-09-22 Thread Sowmini Varadhan
e this can be found, please)? Is this basically about, e.g., putting the vxlanhdr in its own skb_frag_t, or something else? --Sowmini

[PATCH net-next V2] net/vxlan: Avoid unaligned access in vxlan_build_skb()

2016-09-20 Thread Sowmini Varadhan
The vxlan header may not be aligned to 4 bytes in vxlan_build_skb (e.g., for MLD packets). This patch avoids unaligned access traps from vxlan_build_skb (in platforms like sparc) by making struct vxlanhdr __packed. Signed-off-by: Sowmini Varadhan <sowmini.varad...@oracle.com> --- inclu

Re: [PATCH net-next] net/vxlan: Avoid unaligned access in vxlan_build_skb()

2016-09-20 Thread Sowmini Varadhan
that point too. For the immediate pain, Hannes' suggestion of making vxlanhdr __packed takes care of the noise from vxlan_build_skb, so I will spin out a v2 that takes care of this one, at least. --Sowmini

Re: [PATCH net-next] net/vxlan: Avoid unaligned access in vxlan_build_skb()

2016-09-20 Thread Sowmini Varadhan
want? I think you can check this easily by using printk's predicated on IS_ALIGNED checks in vxlan_build_skb(). IPv6 MLD triggers this quite easily. I will try out Hannes' solution (which makes sense) in a moment, and report back. --Sowmini

Re: [PATCH net-next] net/vxlan: Avoid unaligned access in vxlan_build_skb()

2016-09-20 Thread Sowmini Varadhan
On (09/20/16 18:11), Jiri Benc wrote: > > The vxlan header is at offset (14 + 20 + 8) into the packet, > > so the vxh is not aligned in vxlan_build_skb. Use [get/put]_unaligned > > functions to modify flags and vni field in the vxh. > > How did you calculate that? IP header should be aligned to 4

Re: [PATCH net-next] net/vxlan: Avoid unaligned access in vxlan_build_skb()

2016-09-20 Thread Sowmini Varadhan
On (09/20/16 08:31), Tom Herbert wrote: > > On Tue, Sep 20, 2016 at 7:27 AM, Sowmini Varadhan > <sowmini.varad...@oracle.com> wrote: > > The vxlan header is at offset (14 + 20 + 8) into the packet, > > so the vxh is not aligned in vxlan_build_skb. Use [get/put]_unalig

[PATCH net-next] net/vxlan: Avoid unaligned access in vxlan_build_skb()

2016-09-20 Thread Sowmini Varadhan
The vxlan header is at offset (14 + 20 + 8) into the packet, so the vxh is not aligned in vxlan_build_skb. Use [get/put]_unaligned functions to modify flags and vni field in the vxh. Signed-off-by: Sowmini Varadhan <sowmini.varad...@oracle.com> --- drivers/net/vxlan.c | 10 ++ 1

Re: icmpv6: issue with routing table entries from link local addresses

2016-09-12 Thread Sowmini Varadhan
licitly did the 'ip route change' to tell the kernel to ecmp that prefix). Lets see what Andreas reports.. --Sowmini

Re: icmpv6: issue with routing table entries from link local addresses

2016-09-12 Thread Sowmini Varadhan
I dont know if some variant of this (latter observation) may be the reason for the behavior that Andreas reports. --Sowmini

[PATCH net-next 5/5] Documentation: RDS: Document Multipath RDS (mprds)

2016-07-14 Thread Sowmini Varadhan
Document the design of mprds, covering a brief description of the motivation, data-structures and modifications to the RDS control plane. Acked-by: Santosh Shilimkar <santosh.shilim...@oracle.com> Signed-off-by: Sowmini Varadhan <sowmini.varad...@oracle.com> --- Documentation/networ

[PATCH net-next 1/5] RDS: TCP: avoid bad page reference in rds_tcp_listen_data_ready

2016-07-14 Thread Sowmini Varadhan
page fault on ready In the above sequence, we end up with a panic on a bad page reference when trying to execute (*ready)(). Instead we need to call sock_def_readable() safely, which is what this patch achieves. Acked-by: Santosh Shilimkar <santosh.shilim...@oracle.com> Signed-off-by: Sowm

[PATCH net-next 4/5] Documentation: RDS: updates for SO_RDS_TRANSPORT socket option

2016-07-14 Thread Sowmini Varadhan
Update the documentation to describe the changes added by commit 8ba38460f363 ("net/rds Add getsockopt support for SO_RDS_TRANSPORT") Acked-by: Santosh Shilimkar <santosh.shilim...@oracle.com> Signed-off-by: Sowmini Varadhan <sowmini.varad...@oracle.com> --- Documentat

[PATCH net-next 0/5] RDS: TCP: Enable mprds for rds-tcp

2016-07-14 Thread Sowmini Varadhan
-condition that has always existed, but is now more easily encountered with mprds. Patch 2 is code refactoring. Patches 4 and 5 are Documentation updates. Sowmini Varadhan (5): RDS: TCP: avoid bad page reference in rds_tcp_listen_data_ready RDS: TCP: Reduce code duplication in rds_tcp_reset_callbacks

[PATCH net-next 3/5] RDS: TCP: Enable multipath RDS for TCP

2016-07-14 Thread Sowmini Varadhan
lim...@oracle.com> Signed-off-by: Sowmini Varadhan <sowmini.varad...@oracle.com> --- net/rds/bind.c|6 net/rds/connection.c | 17 +-- net/rds/message.c |1 + net/rds/rds.h | 25 +++- net/rds/recv.c

[PATCH net-next 2/5] RDS: TCP: Reduce code duplication in rds_tcp_reset_callbacks()

2016-07-14 Thread Sowmini Varadhan
Some code duplication in rds_tcp_reset_callbacks() can be avoided by having the function call rds_tcp_restore_callbacks() and rds_tcp_set_callbacks(). Acked-by: Santosh Shilimkar <santosh.shilim...@oracle.com> Signed-off-by: Sowmini Varadhan <sowmini.varad...@oracle.com> --- net/rds/

Re: [PATCH] RDS: fix rds_tcp_init() error path

2016-07-03 Thread Sowmini Varadhan
> If register_pernet_subsys() fails, we shouldn't try to call > unregister_pernet_subsys(). Acked-by: Sowmini Varadhan <sowmini.varad...@oracle.com>

[PATCH net-next 5/9] RDS: TCP: make ->sk_user_data point to a rds_conn_path

2016-06-30 Thread Sowmini Varadhan
The socket callbacks should all operate on a struct rds_conn_path, in preparation for a MP capable RDS-TCP. Acked-by: Santosh Shilimkar <santosh.shilim...@oracle.com> Signed-off-by: Sowmini Varadhan <sowmini.varad...@oracle.com> --- net/rds/tcp.c | 25 +-

[PATCH net-next 6/9] RDS: TCP: make receive path use the rds_conn_path

2016-06-30 Thread Sowmini Varadhan
The ->sk_user_data contains a pointer to the rds_conn_path for the socket. Use this consistently in the rds_tcp_data_ready callbacks to get the rds_conn_path for rds_recv_incoming. Acked-by: Santosh Shilimkar <santosh.shilim...@oracle.com> Signed-off-by: Sowmini Varadhan <s

[PATCH net-next 1/9] RDS: Rework path specific indirections

2016-06-30 Thread Sowmini Varadhan
le.com> Signed-off-by: Sowmini Varadhan <sowmini.varad...@oracle.com> --- net/rds/connection.c |5 + net/rds/ib.c |4 ++-- net/rds/ib.h |4 ++-- net/rds/ib_cm.c |3 ++- net/rds/ib_send.c |3 ++- net/rds/loop.c|4 ++--

[PATCH net-next 2/9] RDS: TCP: Remove dead logic around c_passive in rds-tcp

2016-06-30 Thread Sowmini Varadhan
The c_passive bit is only intended for the IB transport and will never be encountered in rds-tcp, so remove the dead logic that predicates on this bit. Acked-by: Santosh Shilimkar <santosh.shilim...@oracle.com> Signed-off-by: Sowmini Varadhan <sowmini.varad...@oracle.com> --- n

[PATCH net-next 9/9] RDS: Do not send a pong to an incoming ping with 0 src port

2016-06-30 Thread Sowmini Varadhan
ping messages with a 0 src port. Acked-by: Santosh Shilimkar <santosh.shilim...@oracle.com> Signed-off-by: Sowmini Varadhan <sowmini.varad...@oracle.com> --- net/rds/recv.c |4 1 files changed, 4 insertions(+), 0 deletions(-) diff --git a/net/rds/recv.c b/net/rds/recv.c i

[PATCH net-next 8/9] RDS: TCP: Simplify reconnect to avoid duelling reconnnect attempts

2016-06-30 Thread Sowmini Varadhan
When reconnecting, the peer with the smaller IP address will initiate the reconnect, to avoid needless duelling SYN issues. Acked-by: Santosh Shilimkar <santosh.shilim...@oracle.com> Signed-off-by: Sowmini Varadhan <sowmini.varad...@oracle.com> --- net/rds/connection.c |4 +

[PATCH net-next 4/9] RDS: TCP: Refactor connection destruction to handle multiple paths

2016-06-30 Thread Sowmini Varadhan
<santosh.shilim...@oracle.com> Signed-off-by: Sowmini Varadhan <sowmini.varad...@oracle.com> --- net/rds/tcp.c | 46 +++--- 1 files changed, 39 insertions(+), 7 deletions(-) diff --git a/net/rds/tcp.c b/net/rds/tcp.c index c6b47f6..b327727 100644 --- a/n

[PATCH net-next 7/9] RDS: TCP: Hooks to set up a single connection path

2016-06-30 Thread Sowmini Varadhan
This patch adds ->conn_path_connect callbacks in the rds_transport that are used to set up a single connection path. Acked-by: Santosh Shilimkar <santosh.shilim...@oracle.com> Signed-off-by: Sowmini Varadhan <sowmini.varad...@oracle.com> --- net/rds/ib.c |2 +

[PATCH net-next 3/9] RDS: TCP: Make rds_tcp_connection track the rds_conn_path

2016-06-30 Thread Sowmini Varadhan
le.com> Signed-off-by: Sowmini Varadhan <sowmini.varad...@oracle.com> --- net/rds/connection.c | 30 +++--- net/rds/tcp.c | 44 +--- net/rds/tcp.h |6 +++--- net/rds/tcp_connect.c |6 +++--- net/rds/tcp_l

[PATCH net-next 0/9] RDS:TCP data structure changes for multipath support

2016-06-30 Thread Sowmini Varadhan
. The ->sk_user_data in turn is a pointer to the rds_conn_path. With this set of changes, rds_tcp has the needed plumbing to handle multiple paths(socket) per rds_connection. Sowmini Varadhan (9): RDS: Rework path specific indirections RDS: TCP: Remove dead logic around c_passive in rds-tcp RDS: TCP: M

net.git commit 3bb549ae4c51

2016-06-29 Thread Sowmini Varadhan
t the port, or something else? --Sowmini

[PATCH net] RDS: TCP: rds_tcp_accept_one() should transition socket from RESETTING to UP

2016-06-17 Thread Sowmini Varadhan
-path quiescence by rds_tcp_accept_one()") Signed-off-by: Sowmini Varadhan <sowmini.varad...@oracle.com> --- net/rds/tcp_listen.c |2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/net/rds/tcp_listen.c b/net/rds/tcp_listen.c index 686b1d0..245542c 100644 --- a/net/

Re: [PATCH -next] RDS: TCP: Fix non static symbol warnings

2016-06-17 Thread Sowmini Varadhan
.c:60:5: warning: > symbol 'rds_tcp_min_rcvbuf' was not declared. Should it be static? Acked-by: Sowmini Varadhan <sowmini.varad...@oracle.com>

[PATCH net-next 09/17] RDS: Pass rds_conn_path to rds_send_xmit()

2016-06-13 Thread Sowmini Varadhan
to rds_send_xmit() Signed-off-by: Sowmini Varadhan <sowmini.varad...@oracle.com> --- net/rds/ib_cm.c |2 +- net/rds/rds.h |4 +- net/rds/send.c| 149 + net/rds/threads.c |2 +- 4 files changed, 87 insertions(+), 70 deletions(-)

[PATCH net-next 10/17] RDS: Extract rds_conn_path from i_conn_path in rds_send_drop_to() for MP-capable transports

2016-06-13 Thread Sowmini Varadhan
Explicitly set up rds_conn_path, either from i_conn_path (for MP capable transpots) or as c_path[0], and use this in rds_send_drop_to() Signed-off-by: Sowmini Varadhan <sowmini.varad...@oracle.com> --- net/rds/send.c | 11 --- 1 files changed, 8 insertions(+), 3 deletions(-)

[PATCH net-next 11/17] RDS: Make rds_send_pong() take a rds_conn_path argument

2016-06-13 Thread Sowmini Varadhan
This commit allows rds_send_pong() callers to send back the rds pong message on some path other than c_path[0] by passing in a struct rds_conn_path * argument. It also removes the last dependency on the #defines in rds_single.h from send.c Signed-off-by: Sowmini Varadhan <sowmini.va

[PATCH net-next 06/17] RDS: Add rds_send_path_drop_acked()

2016-06-13 Thread Sowmini Varadhan
rds_send_path_drop_acked() is the path-specific version of rds_send_drop_acked() to be invoked by MP capable callers. Signed-off-by: Sowmini Varadhan <sowmini.varad...@oracle.com> --- net/rds/rds.h |2 ++ net/rds/send.c | 18 +- 2 files changed, 15 insertions

[PATCH net-next 13/17] RDS: update rds-info related functions to traverse multiple conn_paths

2016-06-13 Thread Sowmini Varadhan
This commit updates the callbacks related to the rds-info command so that they walk through all the rds_conn_path structures and report the requested info. Signed-off-by: Sowmini Varadhan <sowmini.varad...@oracle.com> --- net/rds/connection.c

[PATCH net-next 02/17] RDS: add t_mp_capable bit to be set by MP capable transports

2016-06-13 Thread Sowmini Varadhan
The t_mp_capable bit will be used in the core rds module to support multipathing logic when the transport supports it. Signed-off-by: Sowmini Varadhan <sowmini.varad...@oracle.com> --- net/rds/rds.h |7 ++- 1 files changed, 6 insertions(+), 1 deletions(-) diff --git a/net/rds/r

[PATCH net-next 08/17] RDS: Make rds_send_queue_rm() rds_conn_path aware

2016-06-13 Thread Sowmini Varadhan
rds_single_path.h Signed-off-by: Sowmini Varadhan <sowmini.varad...@oracle.com> --- net/rds/send.c | 17 +++-- 1 files changed, 11 insertions(+), 6 deletions(-) diff --git a/net/rds/send.c b/net/rds/send.c index 3fb280b..076ee41 100644 --- a/net/rds/send.c +++ b/net/rds/

[PATCH net-next 01/17] RDS: split out connection specific state from rds_connection to rds_conn_path

2016-06-13 Thread Sowmini Varadhan
work with rds_conn_path. This commit allows for one rds_conn_path per rds_connection, and will be extended into multiple conn_paths in subsequent commits. Signed-off-by: Sowmini Varadhan <sowmini.varad...@oracle.com> --- net/rds/cong.c|3 +- net/rds/connection.c

[PATCH net-next 16/17] RDS: Update rds_conn_shutdown to work with rds_conn_path

2016-06-13 Thread Sowmini Varadhan
This commit changes rds_conn_shutdown to take a rds_conn_path * argument, allowing it to shutdown paths other than c_path[0] for MP-capable transports. Signed-off-by: Sowmini Varadhan <sowmini.varad...@oracle.com> --- net/rds/connection.c

[PATCH net-next 00/17] RDS: multiple connection paths for scaling

2016-06-13 Thread Sowmini Varadhan
to use a single path with the refactored data-structures. A subsequent patchset will add the changes to the rds-tcp module to actually use mprds in rds-tcp. Sowmini Varadhan (17): RDS: split out connection specific state from rds_connection to rds_conn_path RDS: add t_mp_capable bit

[PATCH net-next 03/17] RDS: recv path gets the conn_path from rds_incoming for MP capable transports

2016-06-13 Thread Sowmini Varadhan
Transports that are t_mp_capable should set the rds_conn_path on which the datagram was recived in the ->i_conn_path field of struct rds_incoming. Signed-off-by: Sowmini Varadhan <sowmini.varad...@oracle.com> --- net/rds/rds.h |1 + net/rds/recv.c | 12 2 files c

[PATCH net-next 14/17] RDS: Add rds_conn_path_error()

2016-06-13 Thread Sowmini Varadhan
rds_conn_path_error() is the MP-aware analog of rds_conn_error, to be used by multipath-capable callers. Signed-off-by: Sowmini Varadhan <sowmini.varad...@oracle.com> --- net/rds/connection.c | 12 net/rds/rds.h|4 net/rds/threads.c|3 ++- 3 files c

[PATCH net-next 12/17] RDS: Add rds_conn_path_connect_if_down() for MP-aware callers

2016-06-13 Thread Sowmini Varadhan
rds_conn_path_connect_if_down() works on the rds_conn_path that it is passed. Callers who are not t_m_capable may continue calling rds_conn_connect_if_down, which will invoke rds_conn_path_connect_if_down() with the default c_path[0]. Signed-off-by: Sowmini Varadhan <sowmini.varad...@oracle.

[PATCH net-next 17/17] RDS: Update rds_conn_destroy to be MP capable

2016-06-13 Thread Sowmini Varadhan
Refactor rds_conn_destroy() so that the per-path dismantling is done in rds_conn_path_destroy, and then iterate as needed over rds_conn_path_destroy(). Signed-off-by: Sowmini Varadhan <sowmini.varad...@oracle.com> --- net/rds/connection.c

[PATCH net-next 04/17] RDS: rds_inc_path_init() helper function for MP capable transports

2016-06-13 Thread Sowmini Varadhan
t_mp_capable transports can use rds_inc_path_init to initialize all fields in struct rds_incoming, including the i_conn_path. Signed-off-by: Sowmini Varadhan <sowmini.varad...@oracle.com> --- net/rds/rds.h |2 ++ net/rds/recv.c | 14 ++ 2 files changed, 16 insertions

[PATCH net-next 15/17] RDS: Initialize all RDS_MPATH_WORKERS in __rds_conn_create

2016-06-13 Thread Sowmini Varadhan
Add a for() loop in __rds_conn_create to initialize all the conn_paths, in preparate for MP capable transports. Signed-off-by: Sowmini Varadhan <sowmini.varad...@oracle.com> --- net/rds/connection.c | 65 ++--- 1 files changed, 45 insertions(

[PATCH net-next 07/17] RDS: Remove stale function rds_send_get_message()

2016-06-13 Thread Sowmini Varadhan
The only caller of rds_send_get_message() was rds_iw_send_cq_comp_handler() which was removed as part of commit dcdede0406d3 ("RDS: Drop stale iWARP RDMA transport"), so remove rds_send_get_message() for the same reason. Signed-off-by: Sowmini Varadhan <sowmini.varad...@oracle.com&

[PATCH net-next 05/17] RDS: Add rds_send_path_reset()

2016-06-13 Thread Sowmini Varadhan
rds_send_path_reset() is the path specific version of rds_send_reset() intended for MP capable callers. Signed-off-by: Sowmini Varadhan <sowmini.varad...@oracle.com> --- net/rds/send.c | 39 ++- 1 files changed, 22 insertions(+), 17 deletions(-) diff

<    1   2   3   4   5   6   7   >