diff options
author | Florin Coras <fcoras@cisco.com> | 2019-01-04 17:05:43 -0800 |
---|---|---|
committer | Florin Coras <florin.coras@gmail.com> | 2019-01-07 16:37:55 +0000 |
commit | 7baeb71f92826ee6ef02ab2c3d16484bb64d9301 (patch) | |
tree | d6c39a6276c6e067e4df24ecd0531417c1250b05 /src/vcl/vcl_locked.h | |
parent | 8dc146e00098f1c5846d44a3ca5f8db6fbfaff0f (diff) |
vcl/ldp: add locked sessions shim layer
Moves LDP logic that allows sharing of sessions between multi-process
app workers into a separate VCL shim layer. Also refactors LDP to use
the new layer.
Change-Id: I8198b51eae7d099a8c486e36b29e3a0cb8cee8e9
Signed-off-by: Florin Coras <fcoras@cisco.com>
Diffstat (limited to 'src/vcl/vcl_locked.h')
-rw-r--r-- | src/vcl/vcl_locked.h | 60 |
1 files changed, 60 insertions, 0 deletions
diff --git a/src/vcl/vcl_locked.h b/src/vcl/vcl_locked.h new file mode 100644 index 00000000000..4f40f434cc5 --- /dev/null +++ b/src/vcl/vcl_locked.h @@ -0,0 +1,60 @@ +/* + * Copyright (c) 2019 Cisco and/or its affiliates. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this + * 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. + * + * VCL Locked Sessions + */ + +#ifndef SRC_VCL_VCL_LOCKED_H_ +#define SRC_VCL_VCL_LOCKED_H_ + +#include <vcl/vppcom.h> + +#define VLS_INVALID_HANDLE ((int)-1) + +typedef int vls_handle_t; + +vls_handle_t vls_create (uint8_t proto, uint8_t is_nonblocking); +int vls_close (vls_handle_t vlsh); +int vls_bind (vls_handle_t vlsh, vppcom_endpt_t * ep); +int vls_listen (vls_handle_t vlsh, int q_len); +int vls_connect (vls_handle_t vlsh, vppcom_endpt_t * server_ep); +vls_handle_t vls_accept (vls_handle_t vlsh, vppcom_endpt_t * ep, int flags); +ssize_t vls_read (vls_handle_t vlsh, void *buf, size_t nbytes); +ssize_t vls_recvfrom (vls_handle_t vlsh, void *buffer, uint32_t buflen, + int flags, vppcom_endpt_t * ep); +int vls_write (vls_handle_t vlsh, void *buf, size_t nbytes); +int vls_write_msg (vls_handle_t vlsh, void *buf, size_t nbytes); +int vls_sendto (vls_handle_t vlsh, void *buf, int buflen, int flags, + vppcom_endpt_t * ep); +int vls_attr (vls_handle_t vlsh, uint32_t op, void *buffer, + uint32_t * buflen); +vls_handle_t vls_epoll_create (void); +int vls_epoll_ctl (vls_handle_t ep_vlsh, int op, vls_handle_t vlsh, + struct epoll_event *event); +int vls_epoll_wait (vls_handle_t ep_vlsh, struct epoll_event *events, + int maxevents, double wait_for_time); +vcl_session_handle_t vlsh_to_sh (vls_handle_t vlsh); +vcl_session_handle_t vlsh_to_session_index (vls_handle_t vlsh); +vls_handle_t vls_session_index_to_vlsh (uint32_t session_index); +int vls_app_create (char *app_name); + +#endif /* SRC_VCL_VCL_LOCKED_H_ */ + +/* + * fd.io coding-style-patch-verification: ON + * + * Local Variables: + * eval: (c-set-style "gnu") + * End: + */ |