http: fix client parse error handling
[vpp.git] / src / vnet / session / application_local.h
1 /*
2  * Copyright (c) 2019 Cisco and/or its affiliates.
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at:
6  *
7  *     http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * Unless required by applicable law or agreed to in writing, software
10  * distributed under the License is distributed on an "AS IS" BASIS,
11  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12  * See the License for the specific language governing permissions and
13  * limitations under the License.
14  */
15
16
17 #ifndef SRC_VNET_SESSION_APPLICATION_LOCAL_H_
18 #define SRC_VNET_SESSION_APPLICATION_LOCAL_H_
19
20 #include <vnet/session/application.h>
21 #include <vnet/session/transport.h>
22
23 #define foreach_ct_flags                                                      \
24   _ (CLIENT, "client")                                                        \
25   _ (HALF_OPEN, "half-open")                                                  \
26   _ (RESET, "reset")
27
28 enum
29 {
30 #define _(sym, str) CT_CONN_BIT_F_##sym,
31   foreach_ct_flags
32 #undef _
33 };
34
35 typedef enum
36 {
37 #define _(sym, str) CT_CONN_F_##sym = 1 << CT_CONN_BIT_F_##sym,
38   foreach_ct_flags
39 #undef _
40 } ct_connection_flags_t;
41
42 typedef struct ct_connection_
43 {
44   transport_connection_t connection;
45   u32 client_wrk;
46   u32 server_wrk;
47   u32 client_opaque;
48   u32 peer_index;
49   u64 segment_handle;
50   u32 seg_ctx_index;
51   u32 ct_seg_index;
52   svm_fifo_t *client_rx_fifo;
53   svm_fifo_t *client_tx_fifo;
54   transport_proto_t actual_tp;
55   ct_connection_flags_t flags;
56 } ct_connection_t;
57
58 session_t *ct_session_get_peer (session_t * s);
59 void ct_session_endpoint (session_t * ll, session_endpoint_t * sep);
60 int ct_session_connect_notify (session_t *ls, session_error_t err);
61 int ct_session_tx (session_t * s);
62
63 #endif /* SRC_VNET_SESSION_APPLICATION_LOCAL_H_ */
64
65 /*
66  * fd.io coding-style-patch-verification: ON
67  *
68  * Local Variables:
69  * eval: (c-set-style "gnu")
70  * End:
71  */