Blame view

net/rds/tcp.h 2.57 KB
70041088e   Andy Grover   RDS: Add TCP tran...
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
  #ifndef _RDS_TCP_H
  #define _RDS_TCP_H
  
  #define RDS_TCP_PORT	16385
  
  struct rds_tcp_incoming {
  	struct rds_incoming	ti_inc;
  	struct sk_buff_head	ti_skb_list;
  };
  
  struct rds_tcp_connection {
  
  	struct list_head	t_tcp_node;
  	struct rds_connection   *conn;
  	struct socket		*t_sock;
  	void			*t_orig_write_space;
  	void			*t_orig_data_ready;
  	void			*t_orig_state_change;
  
  	struct rds_tcp_incoming	*t_tinc;
  	size_t			t_tinc_hdr_rem;
  	size_t			t_tinc_data_rem;
  
  	/* XXX error report? */
  	struct work_struct	t_conn_w;
  	struct work_struct	t_send_w;
  	struct work_struct	t_down_w;
  	struct work_struct	t_recv_w;
  
  	/* for info exporting only */
  	struct list_head	t_list_item;
  	u32			t_last_sent_nxt;
  	u32			t_last_expected_una;
  	u32			t_last_seen_una;
  };
  
  struct rds_tcp_statistics {
  	uint64_t	s_tcp_data_ready_calls;
  	uint64_t	s_tcp_write_space_calls;
  	uint64_t	s_tcp_sndbuf_full;
  	uint64_t	s_tcp_connect_raced;
  	uint64_t	s_tcp_listen_closed_stale;
  };
  
  /* tcp.c */
70041088e   Andy Grover   RDS: Add TCP tran...
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
  void rds_tcp_tune(struct socket *sock);
  void rds_tcp_nonagle(struct socket *sock);
  void rds_tcp_set_callbacks(struct socket *sock, struct rds_connection *conn);
  void rds_tcp_restore_callbacks(struct socket *sock,
  			       struct rds_tcp_connection *tc);
  u32 rds_tcp_snd_nxt(struct rds_tcp_connection *tc);
  u32 rds_tcp_snd_una(struct rds_tcp_connection *tc);
  u64 rds_tcp_map_seq(struct rds_tcp_connection *tc, u32 seq);
  extern struct rds_transport rds_tcp_transport;
  
  /* tcp_connect.c */
  int rds_tcp_conn_connect(struct rds_connection *conn);
  void rds_tcp_conn_shutdown(struct rds_connection *conn);
  void rds_tcp_state_change(struct sock *sk);
  
  /* tcp_listen.c */
ef87b7ea3   Zach Brown   RDS: remove __ini...
62
  int rds_tcp_listen_init(void);
70041088e   Andy Grover   RDS: Add TCP tran...
63
64
65
66
  void rds_tcp_listen_stop(void);
  void rds_tcp_listen_data_ready(struct sock *sk, int bytes);
  
  /* tcp_recv.c */
ef87b7ea3   Zach Brown   RDS: remove __ini...
67
  int rds_tcp_recv_init(void);
70041088e   Andy Grover   RDS: Add TCP tran...
68
69
70
  void rds_tcp_recv_exit(void);
  void rds_tcp_data_ready(struct sock *sk, int bytes);
  int rds_tcp_recv(struct rds_connection *conn);
70041088e   Andy Grover   RDS: Add TCP tran...
71
72
73
74
75
76
77
78
79
80
  void rds_tcp_inc_free(struct rds_incoming *inc);
  int rds_tcp_inc_copy_to_user(struct rds_incoming *inc, struct iovec *iov,
  			     size_t size);
  
  /* tcp_send.c */
  void rds_tcp_xmit_prepare(struct rds_connection *conn);
  void rds_tcp_xmit_complete(struct rds_connection *conn);
  int rds_tcp_xmit(struct rds_connection *conn, struct rds_message *rm,
  	         unsigned int hdr_off, unsigned int sg, unsigned int off);
  void rds_tcp_write_space(struct sock *sk);
70041088e   Andy Grover   RDS: Add TCP tran...
81
82
83
84
85
86
87
88
  
  /* tcp_stats.c */
  DECLARE_PER_CPU(struct rds_tcp_statistics, rds_tcp_stats);
  #define rds_tcp_stats_inc(member) rds_stats_inc_which(rds_tcp_stats, member)
  unsigned int rds_tcp_stats_info_copy(struct rds_info_iterator *iter,
  				     unsigned int avail);
  
  #endif