Lines Matching refs:to
5 This readme tries to provide some background on the hows and whys of RDS,
16 applications to use a single socket to talk to any other process in the
18 to N*N if you use a connection-oriented socket transport like TCP.
20 RDS is not Infiniband-specific; it was designed to support different
21 transports. The current implementation used to support RDS over TCP as well
22 as IB. Work is in progress to support RDS over iWARP, and using DCE to
23 guarantee no dropped packets on Ethernet, it may be possible to use RDS over
29 RDS uses IPv4 addresses and 16bit port numbers to identify
35 transport has to be IP-based. In fact, RDS over IB uses a
36 reliable IB connection; the IP address is used exclusively to
52 attaches it to the socket. Once bound, the transport assignment
55 doesn't move to a different transport.
65 AF_RDS and PF_RDS are the domain type to be used with socket(2)
66 to create RDS sockets. SOL_RDS is the socket-level to be used
75 You are not allowed to queue more than SO_SNDSIZE bytes to
82 continue to accept and queue incoming messages, even if that
84 mark the port as "congested" and send a congestion update to
85 the source node. The source node is supposed to throttle any
86 processes sending to this congested port.
89 This binds the socket to a local IP address and port, and a
93 Sends a message to the indicated recipient. The kernel will
97 An attempt to send a message that exceeds SO_SNDSIZE will
100 An attempt to send a message that would take the total number
104 An attempt to send a message to a destination that is marked
108 Receives a message that was queued to this socket. The sockets
111 a congestion update is sent to all peers.
113 Applications can ask the RDS kernel module to receive
121 RDS supports the poll interface to allow the application
122 to implement async I/O.
125 incoming message queued to the socket, or a pending notification,
129 to any destination, RDS will always signal POLLOUT as long as
133 However, the kernel will refuse to accept messages to
135 forever if you rely on poll to tell you what to do.
141 This allows the application to discard all messages queued to a
144 This allows the application to cancel outstanding messages if
145 it detects a timeout. For instance, if it tried to send a message,
148 operation. In this case, it would use RDS_CANCEL_SENT_TO to
186 indicate to other end of connection that
200 to ack messages that have been received. The problem is that IB
207 Sending an ack immediately would allow the sender to free the sent
209 traffic to be used for acks. RDS piggybacks acks on sent data
210 packets. Ack-only packets are reduced by only allowing one to be
212 its send buffers start to fill up. All retransmissions are also
217 RDS's IB transport uses a credit-based mechanism to verify that
227 is congested. All sends attempted to this socket's address
230 Applications are expected to be reasonably tuned such that this
243 is much easier to implement than some finer-grained
245 inexpensive bit test to test if the port it's about to send to
267 aka possibly "rds_outgoing", the generic RDS layer copies data to
272 a generic struct referring to incoming data that can be handed from
273 the transport to the general code and queued by the general code
274 while the socket is awoken. It is then passed back to the transport
275 code to handle the actual copy-to-user.
281 pointers to transport-specific functions
293 The first time an attempt is made by an RDS socket to send data to
299 partially-sent datagrams to be retransmitted when the connection is
317 calls transport to send either non-RDMA or RDMA message
321 adds any new send credits available to peer (h_credits)
325 post send to connection's queue pair
337 copy header to rds_ib_incoming struct if start of a new datagram
338 add to ibinc's fraglist
345 respond to pings
347 add to sock queue
353 return to application