Lines Matching refs:be
6 that can be used to perform RxRPC remote operations. This is done over sockets
67 manage security on the client end. The server end must of necessity be
99 endpoint, thus allowing the endpoints to be shared, even to the same
103 to multiple services. A service may be considered the RxRPC equivalent of
106 (*) Client-originating packets are marked, thus a transport endpoint can be
110 (*) Up to a billion connections may be supported concurrently between one
123 billion calls, but only up to four calls may be in progress on a
143 connection lapse before the client, the security will be renegotiated if
152 been received but may yet be discarded and re-requested. The sender may
162 (*) An call may be aborted by either end at any time up to its completion.
175 connections are handled transparently. One client socket may be used to
179 (*) Additional parallel client connections will be initiated to support extra
192 would otherwise share the connection). Non-secured calls would also be
203 (*) If an ICMP error is received, all calls affected by that error will be
215 (*) The first sendmsg for a request to be sent from a client contains a tag to
216 be used in all other sendmsgs or recvmsgs associated with that call. The
220 socket. This may be overridden by supplying an alternate address to the
226 (*) A server socket may also be used to make client calls. To do this, the
231 the tag is guaranteed not to be seen again, and so it can be used to pin
232 client resources. A new call can then be initiated with the same tag
248 (*) A call may be aborted by adding an abort control message to the control
250 Any messages waiting in the receive queue for that call will be discarded.
253 and control data messages will be set to indicate the context. Receiving
270 is done, the first part of the request data will be delivered by recvmsg.
303 then the remainder of that message will be left on the front of the queue
304 for the next taker. MSG_TRUNC will never be flagged.
306 (4) If there is more data to be had on a call (it hasn't copied the last byte
307 of the last data message in that phase yet), then MSG_MORE will be
341 This is can be used by an application to abort a call by passing it to
342 sendmsg, or it can be delivered by recvmsg to indicate a remote abort was
343 received. Either way, it must be associated with an RXRPC_USER_CALL_ID to
345 will be returned if there is no call with that user ID.
350 of a call was received from the client. It will be associated with an
357 errno-class integer value will be included in the control message data
364 rejected by the server due to the server being busy. It will be
371 errno-class integer value will be included in the control message data
379 as a user ID must subsequently be assigned by doing an RXRPC_ACCEPT.
384 assign it a user ID. It should be associated with an RXRPC_USER_CALL_ID
385 to indicate the user ID to be assigned. If there is no call to be
388 then error EBADSLT will be returned.
399 This is used to specify the description of the key to be used. The key is
401 should be of "rxrpc" type.
413 This is used to request that new connections should be used for each call
414 made subsequently on this socket. optval should be NULL and optlen 0.
442 (security index 2 - rxkad). This requires the rxkad module to be loaded and,
443 on the client, tickets of the appropriate type to be obtained from the AFS
445 normally done using the klog program. An example simple klog program can be
450 The payload provided to add_key() on the client should be of the following
466 For the server, keys of type "rxrpc_s" must be made available to the server.
468 rxkad key for the AFS VL service). When such a key is created, it should be
476 incoming connections are made. This can be seen in an example program that can
477 be found at:
493 socket used - usually IPv4 but it can also be IPv6 [TODO].
495 (2) A local address can optionally be bound:
507 This specifies the local UDP port to be used. If not given, a random
508 non-privileged port will be used. A UDP port may be shared between
518 context. The minimum security level can be set:
524 (4) The server to be contacted can then be specified (alternatively this can
525 be done through sendmsg):
537 (5) The request data should then be posted to the server socket using a series
542 MSG_MORE should be set in msghdr::msg_flags on all but the last part of
543 the request. Multiple requests may be made simultaneously.
546 specified through connect(), then msghdr::msg_name should be set on the
549 (6) The reply data will then be posted to the server socket for recvmsg() to
550 pick up. MSG_MORE will be flagged by recvmsg() if there's more reply data
551 for a particular call to be read. MSG_EOR will be set on the terminal
554 All data will be delivered with the following control message attached:
558 If an abort or error occurred, this will be returned in the control data
559 buffer instead, and MSG_EOR will be flagged to indicate the end of that
567 A server would be set up to accept operations in the following manner:
588 The keyring can be manipulated after it has been given to the socket. This
591 (2) A local address must then be bound:
614 The address that can be passed back by recvmsg() at this point should be
617 will be accepted.
625 (6) The first request data packet will then be posted to the server socket for
627 be read from the address fields in the msghdr struct.
629 Subsequent request data will be posted to the server socket for recvmsg()
631 be delivered with MSG_MORE flagged.
633 All data will be delivered with the following control message attached:
637 (8) The reply data should then be posted to the server socket using a series
642 MSG_MORE should be set in msghdr::msg_flags on all but the last message
645 (9) The final ACK from the client will be posted for retrieval by recvmsg()
652 MSG_EOR will be flagged to indicate that this is the final message for
655 (10) Up to the point the final packet of reply data is sent, the call can be
662 Any packets waiting in the socket's receive queue will be discarded if
689 (4) Avoid the overhead of using the recvmsg() call. RxRPC messages can be
694 bind an address as appropriate and listen if it's to be a server socket, but
709 call and connection numbers. The call will be made on the UDP port that
714 If a key is supplied then this will be used to secure the call instead of
723 returned. The caller now holds a reference on this and it must be
731 from AF_RXRPC's knowledge and will not be seen again in association with
741 data buffers to be used. msg_iov may not be NULL and must point
742 exclusively to in-kernel virtual addresses. msg.msg_flags may be given
743 MSG_MORE if there will be subsequent data sends for this call.
753 abort code specified will be placed in the ABORT message sent.
767 then diverted to this function. Note that care must be taken to process
786 The remote abort message can be probed with rxrpc_kernel_get_abort_code().
787 The two error messages can be probed with rxrpc_kernel_get_error_number().
788 A new call can be accepted with rxrpc_kernel_accept_call().
791 socket buffer manipulation functions. A data message can be determined to
792 be the last one in a sequence with rxrpc_kernel_is_data_last(). When a
793 data message has been used up, rxrpc_kernel_data_delivered() should be
796 Non-data messages should be handled to rxrpc_kernel_free_skb() to dispose
809 be ended in the same way.
812 returned. The caller now holds a reference on this and it must be
821 Other errors may be returned if the call had been aborted (-ECONNABORTED)
829 update the ACK state for the call. The socket buffer will be freed.
843 to be received for a call (true will be returned if it does, false
846 The data message will be part of the reply on a client call and the
847 request on an incoming call. In the latter case there will be more
867 This is used to allocate a null RxRPC key that can be used to indicate
875 The RxRPC protocol driver has a number of configurable parameters that can be
886 ACK permits several packets to be ACK'd in one go.
908 The maximum amount of time in seconds that a call may be in progress
922 the security must be renegotiated.