diff options
author | Stefan Raspl <raspl@linux.ibm.com> | 2018-05-23 10:38:11 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2018-05-23 16:02:35 -0400 |
commit | de8474eb9d50fd47b8c73816f34739dec5e96754 (patch) | |
tree | 4d8c4d02508896fefba4c7172162ebf1b8333798 /net/smc/smc.h | |
parent | b9f227c37071d1115cec791b328b684e2c4ba414 (diff) |
net/smc: urgent data support
Add support for out of band data send and receive.
Signed-off-by: Stefan Raspl <raspl@linux.ibm.com>
Signed-off-by: Ursula Braun <ubraun@linux.ibm.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/smc/smc.h')
-rw-r--r-- | net/smc/smc.h | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/net/smc/smc.h b/net/smc/smc.h index a1467e411645..51ae1f10d81a 100644 --- a/net/smc/smc.h +++ b/net/smc/smc.h | |||
@@ -114,6 +114,12 @@ struct smc_host_cdc_msg { /* Connection Data Control message */ | |||
114 | u8 reserved[18]; | 114 | u8 reserved[18]; |
115 | } __aligned(8); | 115 | } __aligned(8); |
116 | 116 | ||
117 | enum smc_urg_state { | ||
118 | SMC_URG_VALID, /* data present */ | ||
119 | SMC_URG_NOTYET, /* data pending */ | ||
120 | SMC_URG_READ /* data was already read */ | ||
121 | }; | ||
122 | |||
117 | struct smc_connection { | 123 | struct smc_connection { |
118 | struct rb_node alert_node; | 124 | struct rb_node alert_node; |
119 | struct smc_link_group *lgr; /* link group of connection */ | 125 | struct smc_link_group *lgr; /* link group of connection */ |
@@ -160,6 +166,15 @@ struct smc_connection { | |||
160 | union smc_host_cursor rx_curs_confirmed; /* confirmed to peer | 166 | union smc_host_cursor rx_curs_confirmed; /* confirmed to peer |
161 | * source of snd_una ? | 167 | * source of snd_una ? |
162 | */ | 168 | */ |
169 | union smc_host_cursor urg_curs; /* points at urgent byte */ | ||
170 | enum smc_urg_state urg_state; | ||
171 | bool urg_tx_pend; /* urgent data staged */ | ||
172 | bool urg_rx_skip_pend; | ||
173 | /* indicate urgent oob data | ||
174 | * read, but previous regular | ||
175 | * data still pending | ||
176 | */ | ||
177 | char urg_rx_byte; /* urgent byte */ | ||
163 | atomic_t bytes_to_rcv; /* arrived data, | 178 | atomic_t bytes_to_rcv; /* arrived data, |
164 | * not yet received | 179 | * not yet received |
165 | */ | 180 | */ |