diff options
author | Florin Coras <fcoras@cisco.com> | 2018-08-02 10:45:44 -0700 |
---|---|---|
committer | Dave Barach <openvpp@barachs.net> | 2018-08-10 20:26:24 +0000 |
commit | 993683150202254c6ba8dd43e087a7229edd5d4c (patch) | |
tree | 141ce2cdfe546bfe2ad46e66ac9569a33a895072 /src/vnet/session/session.api | |
parent | f46663c65b0238311af93fcfa3030eefdb56e299 (diff) |
vcl: support for eventfd mq signaling
- support eventfd based mq signaling. Based on configuration, vcl
epoll/select can use either condvars or epoll on mq eventfds.
- add vcl support for memfd segments
- vpp explicitly registers cut-through segments with apps/vcl
- if using eventfd, make ldp allow one call to libc_epoll_create. Needed
for the message queue epfd
- update svm_queue_t to allow blocking calls with eventfd signaling.
Change-Id: I064151ac370bbe29bb16c968bf4e3659c8286bea
Signed-off-by: Florin Coras <fcoras@cisco.com>
Diffstat (limited to 'src/vnet/session/session.api')
-rw-r--r-- | src/vnet/session/session.api | 34 |
1 files changed, 32 insertions, 2 deletions
diff --git a/src/vnet/session/session.api b/src/vnet/session/session.api index 98748d8fbbb..58054ae4ba2 100644 --- a/src/vnet/session/session.api +++ b/src/vnet/session/session.api @@ -13,7 +13,7 @@ * limitations under the License. */ -option version = "1.0.3"; +option version = "1.1.0"; /** \brief client->vpp, attach application to session layer @param client_index - opaque cookie to identify the sender @@ -38,6 +38,9 @@ option version = "1.0.3"; @param retval - return code for the request @param app_event_queue_address - vpp event queue address or 0 if this connection shouldn't send events + @param n_fds - number of fds exchanged + @param fd_flags - set of flags that indicate which fds are to be expected + over the socket (set only if socket transport available) @param segment_size - size of first shm segment @param segment_name_length - length of segment name @param segment_name - name of segment client needs to attach to @@ -46,6 +49,8 @@ define application_attach_reply { u32 context; i32 retval; u64 app_event_queue_address; + u8 n_fds; + u8 fd_flags; u32 segment_size; u8 segment_name_length; u8 segment_name[128]; @@ -91,11 +96,16 @@ autoreply define application_detach { /** \brief vpp->client, please map an additional shared memory segment @param client_index - opaque cookie to identify the sender @param context - sender context, to match reply w/ request - @param segment_name - + @param fd_flags - set of flags that indicate which, if any, fds are + to be expected over the socket. This is set only if + socket transport available + @param segment_size - size of the segment to be mapped + @param segment_name - name of the segment to be mapped */ autoreply define map_another_segment { u32 client_index; u32 context; + u8 fd_flags; u32 segment_size; u8 segment_name[128]; }; @@ -391,6 +401,26 @@ define connect_session_reply { u16 lcl_port; }; +/** \brief ask app to add a new cut-through registration + @param client_index - opaque cookie to identify the sender + client to vpp direction only + @param context - sender context, to match reply w/ request + @param evt_q_address - address of the mq in ssvm segment + @param peer_evt_q_address - address of peer's mq in ssvm segment + @param n_fds - number of fds exchanged + @param fd_flags - flag indicating the fds that will be exchanged over + api socket +*/ +autoreply define app_cut_through_registration_add +{ + u32 client_index; + u32 context; + u64 evt_q_address; + u64 peer_evt_q_address; + u8 n_fds; + u8 fd_flags; +}; + /** \brief enable/disable session layer @param client_index - opaque cookie to identify the sender client to vpp direction only |