* limitations under the License.
*/
-option version = "1.0.3";
+option version = "1.4.0";
/** \brief client->vpp, attach application to session layer
@param client_index - opaque cookie to identify the sender
@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
+ @param app_index - index of the newly created app
*/
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];
+ u32 app_index;
};
/** \brief Application add TLS certificate
/** \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
+ @param segment_handle - unique identifier for segment
*/
autoreply define map_another_segment {
u32 client_index;
u32 context;
+ u8 fd_flags;
u32 segment_size;
u8 segment_name[128];
+ u64 segment_handle;
};
/** \brief vpp->client unmap 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 segment_name - segment name
+ @param segment_handle - handle of the segment to be unmapped
*/
autoreply define unmap_segment {
u32 client_index;
u32 context;
- u8 segment_name[128];
+ u64 segment_handle;
};
/** \brief Bind to a given URI
u32 accept_cookie;
u8 uri[128];
};
-
+/** *** Will be DEPRECATED. Use message queue instead. *** */
define bind_uri_reply {
u32 context;
u64 handle;
};
/** \brief vpp->client, accept this session
+ *** Will be DEPRECATED. Use message queue instead. ***
@param context - sender context, to match reply w/ request
@param listener_handle - tells client which listener this pertains to
@param handle - unique session identifier
};
/** \brief client->vpp, reply to an accept message
+ *** Will be DEPRECATED. Use message queue instead. ***
@param context - sender context, to match reply w/ request
@param retval - return code for the request
@param session_index - session index from accept_session / connect_reply
};
/** \brief bidirectional disconnect reply API
+ *** Will be DEPRECATED. Use message queue instead. ***
@param client_index - opaque cookie to identify the sender
client to vpp direction only
@param context - sender context, to match reply w/ request
};
/** \brief vpp->client reset session API
+ *** Will be DEPRECATED. Use message queue instead. ***
@param client_index - opaque cookie to identify the sender
client to vpp direction only
@param context - sender context, to match reply w/ request
};
/** \brief client->vpp reset session reply
- @param client_index - opaque cookie to identify the sender
- client to vpp direction only
+ *** Will be DEPRECATED. Use message queue instead. ***
@param context - sender context, to match reply w/ request
@param retval - return code for the request
@param handle - session handle obtained via accept/connect
*/
define reset_session_reply {
- u32 client_index;
u32 context;
i32 retval;
u64 handle;
/** \brief Bind to an ip:port pair for a given transport protocol
@param client_index - opaque cookie to identify the sender
@param context - sender context, to match reply w/ request
+ @param wrk_index - index of worker requesting the bind
@param vrf - bind namespace
@param is_ip4 - flag that is 1 if ip address family is IPv4
@param ip - ip address
define bind_sock {
u32 client_index;
u32 context;
+ u32 wrk_index;
u32 vrf;
u8 is_ip4;
u8 ip[16];
/** \brief Unbind
@param client_index - opaque cookie to identify the sender
@param context - sender context, to match reply w/ request
+ @param wrk_index - index of worker requesting the bind
@param handle - bind handle obtained from bind reply
*/
autoreply define unbind_sock {
u32 client_index;
u32 context;
+ u32 wrk_index;
u64 handle;
};
/** \brief Connect to a remote peer
@param client_index - opaque cookie to identify the sender
@param context - sender context, to match reply w/ request
+ @param wrk_index - worker that requests the connect
@param client_queue_address - client's API queue address. Non-zero when
used to perform redirects
@param options - socket options, fifo sizes, etc. when doing redirects
autoreply define connect_sock {
u32 client_index;
u32 context;
+ u32 wrk_index;
u64 client_queue_address;
u64 options[16];
u32 vrf;
};
/** \brief Bind reply
+ *** Will be DEPRECATED. Use message queue instead. ***
@param context - sender context, to match reply w/ request
@param handle - bind handle
@param retval - return code for the request
};
/** \brief vpp/server->client, connect reply -- used for all connect_* messages
+ *** Will be DEPRECATED. Use message queue instead. ***
@param context - sender context, to match reply w/ request
@param retval - return code for the request
@param handle - connection handle
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 wrk_index - index of worker to receive the registration
+ @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;
+ u32 wrk_index;
+ u8 n_fds;
+ u8 fd_flags;
+};
+
+/** \brief add/del application worker
+ @param client_index - opaque cookie to identify the sender
+ client to vpp direction only
+ @param context - sender context, to match reply w/ request
+ @param app_index - application index
+ @param wrk_index - worker index, if a delete
+ @param is_add - set if an add
+*/
+define app_worker_add_del
+{
+ u32 client_index;
+ u32 context;
+ u32 app_index;
+ u32 wrk_index;
+ u8 is_add;
+};
+
+/** \brief Reply for app worker add/del
+ @param context - returned sender context, to match reply w/ request
+ @param retval - return code
+ @param wrk_index - worker index, if add
+ @param app_event_queue_address - vpp event queue address of new worker
+ @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_name_length - length of segment name
+ @param segment_name - name of segment client needs to attach to
+ @param segment_handle - handle for segment
+*/
+define app_worker_add_del_reply
+{
+ u32 context;
+ i32 retval;
+ u32 wrk_index;
+ u64 app_event_queue_address;
+ u8 n_fds;
+ u8 fd_flags;
+ u8 segment_name_length;
+ u8 segment_name[128];
+ u64 segment_handle;
+ u8 is_add;
+};
+
/** \brief enable/disable session layer
@param client_index - opaque cookie to identify the sender
client to vpp direction only