~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/net/rds/tcp.h

Version: ~ [ linux-5.8-rc5 ] ~ [ linux-5.7.8 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.51 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.132 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.188 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.230 ] ~ [ linux-4.8.17 ] ~ [ linux-4.7.10 ] ~ [ linux-4.6.7 ] ~ [ linux-4.5.7 ] ~ [ linux-4.4.230 ] ~ [ linux-4.3.6 ] ~ [ linux-4.2.8 ] ~ [ linux-4.1.52 ] ~ [ linux-4.0.9 ] ~ [ linux-3.19.8 ] ~ [ linux-3.18.140 ] ~ [ linux-3.17.8 ] ~ [ linux-3.16.85 ] ~ [ linux-3.15.10 ] ~ [ linux-3.14.79 ] ~ [ linux-3.13.11 ] ~ [ linux-3.12.74 ] ~ [ linux-3.11.10 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.5 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

  1 /* SPDX-License-Identifier: GPL-2.0 */
  2 #ifndef _RDS_TCP_H
  3 #define _RDS_TCP_H
  4 
  5 #define RDS_TCP_PORT    16385
  6 
  7 struct rds_tcp_incoming {
  8         struct rds_incoming     ti_inc;
  9         struct sk_buff_head     ti_skb_list;
 10 };
 11 
 12 struct rds_tcp_connection {
 13 
 14         struct list_head        t_tcp_node;
 15         bool                    t_tcp_node_detached;
 16         struct rds_conn_path    *t_cpath;
 17         /* t_conn_path_lock synchronizes the connection establishment between
 18          * rds_tcp_accept_one and rds_tcp_conn_path_connect
 19          */
 20         struct mutex            t_conn_path_lock;
 21         struct socket           *t_sock;
 22         void                    *t_orig_write_space;
 23         void                    *t_orig_data_ready;
 24         void                    *t_orig_state_change;
 25 
 26         struct rds_tcp_incoming *t_tinc;
 27         size_t                  t_tinc_hdr_rem;
 28         size_t                  t_tinc_data_rem;
 29 
 30         /* XXX error report? */
 31         struct work_struct      t_conn_w;
 32         struct work_struct      t_send_w;
 33         struct work_struct      t_down_w;
 34         struct work_struct      t_recv_w;
 35 
 36         /* for info exporting only */
 37         struct list_head        t_list_item;
 38         u32                     t_last_sent_nxt;
 39         u32                     t_last_expected_una;
 40         u32                     t_last_seen_una;
 41 };
 42 
 43 struct rds_tcp_statistics {
 44         uint64_t        s_tcp_data_ready_calls;
 45         uint64_t        s_tcp_write_space_calls;
 46         uint64_t        s_tcp_sndbuf_full;
 47         uint64_t        s_tcp_connect_raced;
 48         uint64_t        s_tcp_listen_closed_stale;
 49 };
 50 
 51 /* tcp.c */
 52 void rds_tcp_tune(struct socket *sock);
 53 void rds_tcp_nonagle(struct socket *sock);
 54 void rds_tcp_set_callbacks(struct socket *sock, struct rds_conn_path *cp);
 55 void rds_tcp_reset_callbacks(struct socket *sock, struct rds_conn_path *cp);
 56 void rds_tcp_restore_callbacks(struct socket *sock,
 57                                struct rds_tcp_connection *tc);
 58 u32 rds_tcp_write_seq(struct rds_tcp_connection *tc);
 59 u32 rds_tcp_snd_una(struct rds_tcp_connection *tc);
 60 u64 rds_tcp_map_seq(struct rds_tcp_connection *tc, u32 seq);
 61 extern struct rds_transport rds_tcp_transport;
 62 void rds_tcp_accept_work(struct sock *sk);
 63 
 64 /* tcp_connect.c */
 65 int rds_tcp_conn_path_connect(struct rds_conn_path *cp);
 66 void rds_tcp_conn_path_shutdown(struct rds_conn_path *conn);
 67 void rds_tcp_state_change(struct sock *sk);
 68 
 69 /* tcp_listen.c */
 70 struct socket *rds_tcp_listen_init(struct net *);
 71 void rds_tcp_listen_stop(struct socket *sock, struct work_struct *acceptor);
 72 void rds_tcp_listen_data_ready(struct sock *sk);
 73 int rds_tcp_accept_one(struct socket *sock);
 74 int rds_tcp_keepalive(struct socket *sock);
 75 void *rds_tcp_listen_sock_def_readable(struct net *net);
 76 void rds_tcp_set_linger(struct socket *sock);
 77 
 78 /* tcp_recv.c */
 79 int rds_tcp_recv_init(void);
 80 void rds_tcp_recv_exit(void);
 81 void rds_tcp_data_ready(struct sock *sk);
 82 int rds_tcp_recv_path(struct rds_conn_path *cp);
 83 void rds_tcp_inc_free(struct rds_incoming *inc);
 84 int rds_tcp_inc_copy_to_user(struct rds_incoming *inc, struct iov_iter *to);
 85 
 86 /* tcp_send.c */
 87 void rds_tcp_xmit_path_prepare(struct rds_conn_path *cp);
 88 void rds_tcp_xmit_path_complete(struct rds_conn_path *cp);
 89 int rds_tcp_xmit(struct rds_connection *conn, struct rds_message *rm,
 90                  unsigned int hdr_off, unsigned int sg, unsigned int off);
 91 void rds_tcp_write_space(struct sock *sk);
 92 
 93 /* tcp_stats.c */
 94 DECLARE_PER_CPU(struct rds_tcp_statistics, rds_tcp_stats);
 95 #define rds_tcp_stats_inc(member) rds_stats_inc_which(rds_tcp_stats, member)
 96 unsigned int rds_tcp_stats_info_copy(struct rds_info_iterator *iter,
 97                                      unsigned int avail);
 98 
 99 #endif
100 

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | Wiki (Japanese) | Wiki (English) | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

osdn.jp