linux/include/linux/sunrpc/xprtsock.h
<<
>>
Prefs
   1/* SPDX-License-Identifier: GPL-2.0 */
   2/*
   3 *  linux/include/linux/sunrpc/xprtsock.h
   4 *
   5 *  Declarations for the RPC transport socket provider.
   6 */
   7
   8#ifndef _LINUX_SUNRPC_XPRTSOCK_H
   9#define _LINUX_SUNRPC_XPRTSOCK_H
  10
  11#ifdef __KERNEL__
  12
  13int             init_socket_xprt(void);
  14void            cleanup_socket_xprt(void);
  15
  16#define RPC_MIN_RESVPORT        (1U)
  17#define RPC_MAX_RESVPORT        (65535U)
  18#define RPC_DEF_MIN_RESVPORT    (665U)
  19#define RPC_DEF_MAX_RESVPORT    (1023U)
  20
  21struct sock_xprt {
  22        struct rpc_xprt         xprt;
  23
  24        /*
  25         * Network layer
  26         */
  27        struct socket *         sock;
  28        struct sock *           inet;
  29
  30        /*
  31         * State of TCP reply receive
  32         */
  33        __be32                  tcp_fraghdr,
  34                                tcp_xid,
  35                                tcp_calldir;
  36
  37        u32                     tcp_offset,
  38                                tcp_reclen;
  39
  40        unsigned long           tcp_copied,
  41                                tcp_flags;
  42
  43        /*
  44         * Connection of transports
  45         */
  46        unsigned long           sock_state;
  47        struct delayed_work     connect_worker;
  48        struct work_struct      recv_worker;
  49        struct mutex            recv_mutex;
  50        struct sockaddr_storage srcaddr;
  51        unsigned short          srcport;
  52
  53        /*
  54         * UDP socket buffer size parameters
  55         */
  56        size_t                  rcvsize,
  57                                sndsize;
  58
  59        struct rpc_timeout      tcp_timeout;
  60
  61        /*
  62         * Saved socket callback addresses
  63         */
  64        void                    (*old_data_ready)(struct sock *);
  65        void                    (*old_state_change)(struct sock *);
  66        void                    (*old_write_space)(struct sock *);
  67        void                    (*old_error_report)(struct sock *);
  68};
  69
  70/*
  71 * TCP receive state flags
  72 */
  73#define TCP_RCV_LAST_FRAG       (1UL << 0)
  74#define TCP_RCV_COPY_FRAGHDR    (1UL << 1)
  75#define TCP_RCV_COPY_XID        (1UL << 2)
  76#define TCP_RCV_COPY_DATA       (1UL << 3)
  77#define TCP_RCV_READ_CALLDIR    (1UL << 4)
  78#define TCP_RCV_COPY_CALLDIR    (1UL << 5)
  79
  80/*
  81 * TCP RPC flags
  82 */
  83#define TCP_RPC_REPLY           (1UL << 6)
  84
  85#define XPRT_SOCK_CONNECTING    1U
  86#define XPRT_SOCK_DATA_READY    (2)
  87#define XPRT_SOCK_UPD_TIMEOUT   (3)
  88
  89#endif /* __KERNEL__ */
  90
  91#endif /* _LINUX_SUNRPC_XPRTSOCK_H */
  92