/* * Copyright (c) 2019 Cisco and/or its affiliates. * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at: * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef SRC_VNET_SESSION_APPLICATION_LOCAL_H_ #define SRC_VNET_SESSION_APPLICATION_LOCAL_H_ #include #include #define foreach_ct_flags \ _ (CLIENT, "client") \ _ (HALF_OPEN, "half-open") enum { #define _(sym, str) CT_CONN_BIT_F_##sym, foreach_ct_flags #undef _ }; typedef enum { #define _(sym, str) CT_CONN_F_##sym = 1 << CT_CONN_BIT_F_##sym, foreach_ct_flags #undef _ } ct_connection_flags_t; typedef struct ct_connection_ { transport_connection_t connection; u32 client_wrk; u32 server_wrk; u32 client_opaque; u32 peer_index; u64 segment_handle; u32 seg_ctx_index; u32 ct_seg_index; svm_fifo_t *client_rx_fifo; svm_fifo_t *client_tx_fifo; transport_proto_t actual_tp; ct_connection_flags_t flags; } ct_connection_t; session_t *ct_session_get_peer (session_t * s); void ct_session_endpoint (session_t * ll, session_endpoint_t * sep); int ct_session_connect_notify (session_t * ls); int ct_session_tx (session_t * s); #endif /* SRC_VNET_SESSION_APPLICATION_LOCAL_H_ */ /* * fd.io coding-style-patch-verification: ON * * Local Variables: * eval: (c-set-style "gnu") * End: */