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
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>
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
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
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>
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
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));
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
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
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
-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
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
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
: 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
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
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
}
I can change it as above, if you think this would help.
--Sowmini
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
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
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
is to patchv2, along with extra test cases.
--Sowmini
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
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
.
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
benefit is somewhat
> unclear. Under the wrong conditions, like all cwnds have collapsed or
I think Rick's already bringing up this one.
--Sowmini
t isnt that an issue if you bypass
sk_buff usage? But I should probably go and review your patchset..
--Sowmini
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
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.
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
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
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
-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
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
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
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
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
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_
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
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
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
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
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
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(
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
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>
igned-off-by: Joe Perches <j...@perches.com>
Acked-by: Sowmini Varadhan <sowmini.varad...@oracle.com>
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
. 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
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
ng about this in great detail
> next week at netdev/netconf.. :-)
Agree.
--Sowmini
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
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
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
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
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
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
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
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
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
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
licitly did the 'ip route change' to tell the kernel to
ecmp that prefix).
Lets see what Andreas reports..
--Sowmini
I dont know if some
variant of this (latter observation) may be the reason for the behavior
that Andreas reports.
--Sowmini
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
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
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
-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
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
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/
> If register_pernet_subsys() fails, we shouldn't try to call
> unregister_pernet_subsys().
Acked-by: Sowmini Varadhan <sowmini.varad...@oracle.com>
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 +-
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
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 ++--
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
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
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 +
<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
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 +
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
. 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
t the port, or something else?
--Sowmini
-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/
.c:60:5: warning:
> symbol 'rds_tcp_min_rcvbuf' was not declared. Should it be static?
Acked-by: Sowmini Varadhan <sowmini.varad...@oracle.com>
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(-)
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(-)
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
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
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
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
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/
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
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
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
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
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
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.
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
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
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(
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&
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
301 - 400 of 629 matches
Mail list logo