session: API cleanup
Use consistent API types. Type: fix Signed-off-by: Jakub Grajciar <jgrajcia@cisco.com> Change-Id: Ib752a3425c076eb53bc5255a48039cbb74b1fcce Signed-off-by: Jakub Grajciar <jgrajcia@cisco.com>
This commit is contained in:
committed by
Florin Coras
parent
5893747d72
commit
b4e5e50fe8
@@ -44,9 +44,7 @@ echo_send_attach (echo_main_t * em)
|
||||
bmp->options[APP_OPTIONS_EVT_QUEUE_SIZE] = em->evt_q_size;
|
||||
if (em->appns_id)
|
||||
{
|
||||
bmp->namespace_id_len = vec_len (em->appns_id);
|
||||
clib_memcpy_fast (bmp->namespace_id, em->appns_id,
|
||||
bmp->namespace_id_len);
|
||||
vl_api_vec_to_api_string (em->appns_id, &bmp->namespace_id);
|
||||
bmp->options[APP_OPTIONS_FLAGS] |= em->appns_flags;
|
||||
bmp->options[APP_OPTIONS_NAMESPACE_SECRET] = em->appns_secret;
|
||||
}
|
||||
@@ -276,9 +274,11 @@ static void
|
||||
vl_api_app_attach_reply_t_handler (vl_api_app_attach_reply_t * mp)
|
||||
{
|
||||
echo_main_t *em = &echo_main;
|
||||
int *fds = 0, i;
|
||||
int *fds = 0, i, rv;
|
||||
u32 n_fds = 0;
|
||||
u64 segment_handle;
|
||||
char *segment_name = 0;
|
||||
|
||||
segment_handle = clib_net_to_host_u64 (mp->segment_handle);
|
||||
ECHO_LOG (2, "Attached returned app %u", htons (mp->app_index));
|
||||
|
||||
@@ -289,13 +289,6 @@ vl_api_app_attach_reply_t_handler (vl_api_app_attach_reply_t * mp)
|
||||
return;
|
||||
}
|
||||
|
||||
if (mp->segment_name_length == 0)
|
||||
{
|
||||
ECHO_FAIL (ECHO_FAIL_VL_API_MISSING_SEGMENT_NAME,
|
||||
"segment_name_length zero");
|
||||
return;
|
||||
}
|
||||
|
||||
if (!mp->app_mq)
|
||||
{
|
||||
ECHO_FAIL (ECHO_FAIL_VL_API_NULL_APP_MQ, "NULL app_mq");
|
||||
@@ -323,14 +316,21 @@ vl_api_app_attach_reply_t_handler (vl_api_app_attach_reply_t * mp)
|
||||
}
|
||||
|
||||
if (mp->fd_flags & SESSION_FD_F_MEMFD_SEGMENT)
|
||||
if (echo_ssvm_segment_attach ((char *) mp->segment_name,
|
||||
SSVM_SEGMENT_MEMFD, fds[n_fds++]))
|
||||
{
|
||||
ECHO_FAIL (ECHO_FAIL_VL_API_SVM_FIFO_SEG_ATTACH,
|
||||
"svm_fifo_segment_attach ('%s') "
|
||||
"failed on SSVM_SEGMENT_MEMFD", mp->segment_name);
|
||||
goto failed;
|
||||
}
|
||||
{
|
||||
segment_name = vl_api_from_api_to_new_c_string (&mp->segment_name);
|
||||
rv = echo_ssvm_segment_attach (segment_name,
|
||||
SSVM_SEGMENT_MEMFD, fds[n_fds++]);
|
||||
if (rv != 0)
|
||||
{
|
||||
ECHO_FAIL (ECHO_FAIL_VL_API_SVM_FIFO_SEG_ATTACH,
|
||||
"svm_fifo_segment_attach ('%s') "
|
||||
"failed on SSVM_SEGMENT_MEMFD", segment_name);
|
||||
vec_free (segment_name);
|
||||
goto failed;
|
||||
}
|
||||
vec_free (segment_name);
|
||||
}
|
||||
|
||||
if (mp->fd_flags & SESSION_FD_F_MQ_EVENTFD)
|
||||
svm_msg_q_set_consumer_eventfd (em->app_mq, fds[n_fds++]);
|
||||
|
||||
@@ -338,14 +338,17 @@ vl_api_app_attach_reply_t_handler (vl_api_app_attach_reply_t * mp)
|
||||
}
|
||||
else
|
||||
{
|
||||
if (echo_ssvm_segment_attach
|
||||
((char *) mp->segment_name, SSVM_SEGMENT_SHM, -1))
|
||||
segment_name = vl_api_from_api_to_new_c_string (&mp->segment_name);
|
||||
rv = echo_ssvm_segment_attach (segment_name, SSVM_SEGMENT_SHM, -1);
|
||||
if (rv != 0)
|
||||
{
|
||||
ECHO_FAIL (ECHO_FAIL_VL_API_SVM_FIFO_SEG_ATTACH,
|
||||
"svm_fifo_segment_attach ('%s') "
|
||||
"failed on SSVM_SEGMENT_SHM", mp->segment_name);
|
||||
return;
|
||||
"failed on SSVM_SEGMENT_SHM", segment_name);
|
||||
vec_free (segment_name);
|
||||
goto failed;
|
||||
}
|
||||
vec_free (segment_name);
|
||||
}
|
||||
echo_segment_handle_add_del (em, segment_handle, 1 /* add */ );
|
||||
ECHO_LOG (2, "Mapped segment 0x%lx", segment_handle);
|
||||
|
||||
@@ -77,9 +77,9 @@ class QUICTestCase(VppTestCase):
|
||||
table_id += 1
|
||||
|
||||
# Configure namespaces
|
||||
self.vapi.app_namespace_add_del(namespace_id=b"server",
|
||||
self.vapi.app_namespace_add_del(namespace_id="server",
|
||||
sw_if_index=self.loop0.sw_if_index)
|
||||
self.vapi.app_namespace_add_del(namespace_id=b"client",
|
||||
self.vapi.app_namespace_add_del(namespace_id="client",
|
||||
sw_if_index=self.loop1.sw_if_index)
|
||||
|
||||
# Add inter-table routes
|
||||
|
||||
+47
-29
@@ -19699,8 +19699,7 @@ api_app_namespace_add_del (vat_main_t * vam)
|
||||
}
|
||||
M (APP_NAMESPACE_ADD_DEL, mp);
|
||||
|
||||
clib_memcpy (mp->namespace_id, ns_id, vec_len (ns_id));
|
||||
mp->namespace_id_len = vec_len (ns_id);
|
||||
vl_api_vec_to_api_string (ns_id, &mp->namespace_id);
|
||||
mp->secret = clib_host_to_net_u64 (secret);
|
||||
mp->sw_if_index = clib_host_to_net_u32 (sw_if_index);
|
||||
mp->ip4_fib_id = clib_host_to_net_u32 (ip4_fib_id);
|
||||
@@ -19774,15 +19773,20 @@ static void
|
||||
vl_api_session_rules_details_t_handler (vl_api_session_rules_details_t * mp)
|
||||
{
|
||||
vat_main_t *vam = &vat_main;
|
||||
fib_prefix_t lcl, rmt;
|
||||
|
||||
if (mp->is_ip4)
|
||||
ip_prefix_decode (&mp->lcl, &lcl);
|
||||
ip_prefix_decode (&mp->rmt, &rmt);
|
||||
|
||||
if (lcl.fp_proto == FIB_PROTOCOL_IP4)
|
||||
{
|
||||
print (vam->ofp,
|
||||
"appns %u tp %u scope %d %U/%d %d %U/%d %d action: %d tag: %s",
|
||||
clib_net_to_host_u32 (mp->appns_index), mp->transport_proto,
|
||||
mp->scope, format_ip4_address, &mp->lcl_ip, mp->lcl_plen,
|
||||
mp->scope, format_ip4_address, &lcl.fp_addr.ip4, lcl.fp_len,
|
||||
clib_net_to_host_u16 (mp->lcl_port), format_ip4_address,
|
||||
&mp->rmt_ip, mp->rmt_plen, clib_net_to_host_u16 (mp->rmt_port),
|
||||
&rmt.fp_addr.ip4, rmt.fp_len,
|
||||
clib_net_to_host_u16 (mp->rmt_port),
|
||||
clib_net_to_host_u32 (mp->action_index), mp->tag);
|
||||
}
|
||||
else
|
||||
@@ -19790,9 +19794,10 @@ vl_api_session_rules_details_t_handler (vl_api_session_rules_details_t * mp)
|
||||
print (vam->ofp,
|
||||
"appns %u tp %u scope %d %U/%d %d %U/%d %d action: %d tag: %s",
|
||||
clib_net_to_host_u32 (mp->appns_index), mp->transport_proto,
|
||||
mp->scope, format_ip6_address, &mp->lcl_ip, mp->lcl_plen,
|
||||
mp->scope, format_ip6_address, &lcl.fp_addr.ip6, lcl.fp_len,
|
||||
clib_net_to_host_u16 (mp->lcl_port), format_ip6_address,
|
||||
&mp->rmt_ip, mp->rmt_plen, clib_net_to_host_u16 (mp->rmt_port),
|
||||
&rmt.fp_addr.ip6, rmt.fp_len,
|
||||
clib_net_to_host_u16 (mp->rmt_port),
|
||||
clib_net_to_host_u32 (mp->action_index), mp->tag);
|
||||
}
|
||||
}
|
||||
@@ -19806,6 +19811,11 @@ vl_api_session_rules_details_t_handler_json (vl_api_session_rules_details_t *
|
||||
struct in6_addr ip6;
|
||||
struct in_addr ip4;
|
||||
|
||||
fib_prefix_t lcl, rmt;
|
||||
|
||||
ip_prefix_decode (&mp->lcl, &lcl);
|
||||
ip_prefix_decode (&mp->rmt, &rmt);
|
||||
|
||||
if (VAT_JSON_ARRAY != vam->json_tree.type)
|
||||
{
|
||||
ASSERT (VAT_JSON_NONE == vam->json_tree.type);
|
||||
@@ -19814,7 +19824,6 @@ vl_api_session_rules_details_t_handler_json (vl_api_session_rules_details_t *
|
||||
node = vat_json_array_add (&vam->json_tree);
|
||||
vat_json_init_object (node);
|
||||
|
||||
vat_json_object_add_uint (node, "is_ip4", mp->is_ip4 ? 1 : 0);
|
||||
vat_json_object_add_uint (node, "appns_index",
|
||||
clib_net_to_host_u32 (mp->appns_index));
|
||||
vat_json_object_add_uint (node, "transport_proto", mp->transport_proto);
|
||||
@@ -19825,21 +19834,21 @@ vl_api_session_rules_details_t_handler_json (vl_api_session_rules_details_t *
|
||||
clib_net_to_host_u16 (mp->lcl_port));
|
||||
vat_json_object_add_uint (node, "rmt_port",
|
||||
clib_net_to_host_u16 (mp->rmt_port));
|
||||
vat_json_object_add_uint (node, "lcl_plen", mp->lcl_plen);
|
||||
vat_json_object_add_uint (node, "rmt_plen", mp->rmt_plen);
|
||||
vat_json_object_add_uint (node, "lcl_plen", lcl.fp_len);
|
||||
vat_json_object_add_uint (node, "rmt_plen", rmt.fp_len);
|
||||
vat_json_object_add_string_copy (node, "tag", mp->tag);
|
||||
if (mp->is_ip4)
|
||||
if (lcl.fp_proto == FIB_PROTOCOL_IP4)
|
||||
{
|
||||
clib_memcpy (&ip4, mp->lcl_ip, sizeof (ip4));
|
||||
clib_memcpy (&ip4, &lcl.fp_addr.ip4, sizeof (ip4));
|
||||
vat_json_object_add_ip4 (node, "lcl_ip", ip4);
|
||||
clib_memcpy (&ip4, mp->rmt_ip, sizeof (ip4));
|
||||
clib_memcpy (&ip4, &rmt.fp_addr.ip4, sizeof (ip4));
|
||||
vat_json_object_add_ip4 (node, "rmt_ip", ip4);
|
||||
}
|
||||
else
|
||||
{
|
||||
clib_memcpy (&ip6, mp->lcl_ip, sizeof (ip6));
|
||||
clib_memcpy (&ip6, &lcl.fp_addr.ip6, sizeof (ip6));
|
||||
vat_json_object_add_ip6 (node, "lcl_ip", ip6);
|
||||
clib_memcpy (&ip6, mp->rmt_ip, sizeof (ip6));
|
||||
clib_memcpy (&ip6, &rmt.fp_addr.ip6, sizeof (ip6));
|
||||
vat_json_object_add_ip6 (node, "rmt_ip", ip6);
|
||||
}
|
||||
}
|
||||
@@ -19856,6 +19865,7 @@ api_session_rule_add_del (vat_main_t * vam)
|
||||
u8 is_ip4 = 1, conn_set = 0;
|
||||
u8 is_add = 1, *tag = 0;
|
||||
int ret;
|
||||
fib_prefix_t lcl, rmt;
|
||||
|
||||
while (unformat_check_input (i) != UNFORMAT_END_OF_INPUT)
|
||||
{
|
||||
@@ -19910,26 +19920,34 @@ api_session_rule_add_del (vat_main_t * vam)
|
||||
|
||||
M (SESSION_RULE_ADD_DEL, mp);
|
||||
|
||||
mp->is_ip4 = is_ip4;
|
||||
mp->transport_proto = proto;
|
||||
clib_memset (&lcl, 0, sizeof (lcl));
|
||||
clib_memset (&rmt, 0, sizeof (rmt));
|
||||
if (is_ip4)
|
||||
{
|
||||
ip_set (&lcl.fp_addr, &lcl_ip4, 1);
|
||||
ip_set (&rmt.fp_addr, &rmt_ip4, 1);
|
||||
lcl.fp_len = lcl_plen;
|
||||
rmt.fp_len = rmt_plen;
|
||||
}
|
||||
else
|
||||
{
|
||||
ip_set (&lcl.fp_addr, &lcl_ip6, 0);
|
||||
ip_set (&rmt.fp_addr, &rmt_ip6, 0);
|
||||
lcl.fp_len = lcl_plen;
|
||||
rmt.fp_len = rmt_plen;
|
||||
}
|
||||
|
||||
|
||||
ip_prefix_encode (&lcl, &mp->lcl);
|
||||
ip_prefix_encode (&rmt, &mp->rmt);
|
||||
mp->lcl_port = clib_host_to_net_u16 ((u16) lcl_port);
|
||||
mp->rmt_port = clib_host_to_net_u16 ((u16) rmt_port);
|
||||
mp->lcl_plen = lcl_plen;
|
||||
mp->rmt_plen = rmt_plen;
|
||||
mp->transport_proto =
|
||||
proto ? TRANSPORT_PROTO_API_UDP : TRANSPORT_PROTO_API_TCP;
|
||||
mp->action_index = clib_host_to_net_u32 (action);
|
||||
mp->appns_index = clib_host_to_net_u32 (appns_index);
|
||||
mp->scope = scope;
|
||||
mp->is_add = is_add;
|
||||
if (is_ip4)
|
||||
{
|
||||
clib_memcpy (mp->lcl_ip, &lcl_ip4, sizeof (lcl_ip4));
|
||||
clib_memcpy (mp->rmt_ip, &rmt_ip4, sizeof (rmt_ip4));
|
||||
}
|
||||
else
|
||||
{
|
||||
clib_memcpy (mp->lcl_ip, &lcl_ip6, sizeof (lcl_ip6));
|
||||
clib_memcpy (mp->rmt_ip, &rmt_ip6, sizeof (rmt_ip6));
|
||||
}
|
||||
if (tag)
|
||||
{
|
||||
clib_memcpy (mp->tag, tag, vec_len (tag));
|
||||
|
||||
@@ -120,9 +120,9 @@ class VCLTestCase(VppTestCase):
|
||||
table_id += 1
|
||||
|
||||
# Configure namespaces
|
||||
self.vapi.app_namespace_add_del(namespace_id=b"1", secret=1234,
|
||||
self.vapi.app_namespace_add_del(namespace_id="1", secret=1234,
|
||||
sw_if_index=self.loop0.sw_if_index)
|
||||
self.vapi.app_namespace_add_del(namespace_id=b"2", secret=5678,
|
||||
self.vapi.app_namespace_add_del(namespace_id="2", secret=5678,
|
||||
sw_if_index=self.loop1.sw_if_index)
|
||||
|
||||
# Add inter-table routes
|
||||
@@ -161,9 +161,9 @@ class VCLTestCase(VppTestCase):
|
||||
table_id += 1
|
||||
|
||||
# Configure namespaces
|
||||
self.vapi.app_namespace_add_del(namespace_id=b"1", secret=1234,
|
||||
self.vapi.app_namespace_add_del(namespace_id="1", secret=1234,
|
||||
sw_if_index=self.loop0.sw_if_index)
|
||||
self.vapi.app_namespace_add_del(namespace_id=b"2", secret=5678,
|
||||
self.vapi.app_namespace_add_del(namespace_id="2", secret=5678,
|
||||
sw_if_index=self.loop1.sw_if_index)
|
||||
|
||||
# Add inter-table routes
|
||||
|
||||
+36
-14
@@ -73,8 +73,9 @@ vl_api_app_attach_reply_t_handler (vl_api_app_attach_reply_t * mp)
|
||||
vcl_worker_t *wrk = vcl_worker_get (0);
|
||||
svm_msg_q_t *ctrl_mq;
|
||||
u64 segment_handle;
|
||||
int *fds = 0, i;
|
||||
int *fds = 0, i, rv;
|
||||
u32 n_fds = 0;
|
||||
char *segment_name = 0;
|
||||
|
||||
if (mp->retval)
|
||||
{
|
||||
@@ -108,9 +109,16 @@ vl_api_app_attach_reply_t_handler (vl_api_app_attach_reply_t * mp)
|
||||
goto failed;
|
||||
|
||||
if (mp->fd_flags & SESSION_FD_F_MEMFD_SEGMENT)
|
||||
if (vcl_segment_attach (segment_handle, (char *) mp->segment_name,
|
||||
SSVM_SEGMENT_MEMFD, fds[n_fds++]))
|
||||
goto failed;
|
||||
{
|
||||
segment_name = vl_api_from_api_to_new_c_string (&mp->segment_name);
|
||||
rv =
|
||||
vcl_segment_attach (segment_handle, segment_name,
|
||||
SSVM_SEGMENT_MEMFD, fds[n_fds++]);
|
||||
vec_free (segment_name);
|
||||
if (rv != 0)
|
||||
goto failed;
|
||||
}
|
||||
|
||||
|
||||
if (mp->fd_flags & SESSION_FD_F_MQ_EVENTFD)
|
||||
{
|
||||
@@ -123,8 +131,12 @@ vl_api_app_attach_reply_t_handler (vl_api_app_attach_reply_t * mp)
|
||||
}
|
||||
else
|
||||
{
|
||||
if (vcl_segment_attach (segment_handle, (char *) mp->segment_name,
|
||||
SSVM_SEGMENT_SHM, -1))
|
||||
segment_name = vl_api_from_api_to_new_c_string (&mp->segment_name);
|
||||
rv =
|
||||
vcl_segment_attach (segment_handle, segment_name, SSVM_SEGMENT_SHM,
|
||||
-1);
|
||||
vec_free (segment_name);
|
||||
if (rv != 0)
|
||||
goto failed;
|
||||
}
|
||||
|
||||
@@ -143,10 +155,11 @@ static void
|
||||
vl_api_app_worker_add_del_reply_t_handler (vl_api_app_worker_add_del_reply_t *
|
||||
mp)
|
||||
{
|
||||
int n_fds = 0, *fds = 0, i;
|
||||
int n_fds = 0, *fds = 0, i, rv;
|
||||
u64 segment_handle;
|
||||
vcl_worker_t *wrk;
|
||||
u32 wrk_index;
|
||||
char *segment_name = 0;
|
||||
|
||||
if (mp->retval)
|
||||
{
|
||||
@@ -189,9 +202,15 @@ vl_api_app_worker_add_del_reply_t_handler (vl_api_app_worker_add_del_reply_t *
|
||||
goto failed;
|
||||
|
||||
if (mp->fd_flags & SESSION_FD_F_MEMFD_SEGMENT)
|
||||
if (vcl_segment_attach (segment_handle, (char *) mp->segment_name,
|
||||
SSVM_SEGMENT_MEMFD, fds[n_fds++]))
|
||||
goto failed;
|
||||
{
|
||||
segment_name = vl_api_from_api_to_new_c_string (&mp->segment_name);
|
||||
rv =
|
||||
vcl_segment_attach (segment_handle, segment_name,
|
||||
SSVM_SEGMENT_MEMFD, fds[n_fds++]);
|
||||
vec_free (segment_name);
|
||||
if (rv != 0)
|
||||
goto failed;
|
||||
}
|
||||
|
||||
if (mp->fd_flags & SESSION_FD_F_MQ_EVENTFD)
|
||||
{
|
||||
@@ -204,8 +223,12 @@ vl_api_app_worker_add_del_reply_t_handler (vl_api_app_worker_add_del_reply_t *
|
||||
}
|
||||
else
|
||||
{
|
||||
if (vcl_segment_attach (segment_handle, (char *) mp->segment_name,
|
||||
SSVM_SEGMENT_SHM, -1))
|
||||
segment_name = vl_api_from_api_to_new_c_string (&mp->segment_name);
|
||||
rv =
|
||||
vcl_segment_attach (segment_handle, segment_name, SSVM_SEGMENT_SHM,
|
||||
-1);
|
||||
vec_free (segment_name);
|
||||
if (rv != 0)
|
||||
goto failed;
|
||||
}
|
||||
vcm->app_state = STATE_APP_READY;
|
||||
@@ -313,8 +336,7 @@ vppcom_app_send_attach (void)
|
||||
bmp->options[APP_OPTIONS_TLS_ENGINE] = tls_engine;
|
||||
if (nsid_len)
|
||||
{
|
||||
bmp->namespace_id_len = nsid_len;
|
||||
clib_memcpy_fast (bmp->namespace_id, vcm->cfg.namespace_id, nsid_len);
|
||||
vl_api_vec_to_api_string (vcm->cfg.namespace_id, &bmp->namespace_id);
|
||||
bmp->options[APP_OPTIONS_NAMESPACE_SECRET] = vcm->cfg.namespace_secret;
|
||||
}
|
||||
vl_msg_api_send_shmem (wrk->vl_input_queue, (u8 *) & bmp);
|
||||
|
||||
@@ -383,7 +383,7 @@ vcl_segment_attach (u64 segment_handle, char *name, ssvm_segment_type_t type,
|
||||
int rv;
|
||||
|
||||
memset (a, 0, sizeof (*a));
|
||||
a->segment_name = (char *) name;
|
||||
a->segment_name = name;
|
||||
a->segment_type = type;
|
||||
|
||||
if (type == SSVM_SEGMENT_MEMFD)
|
||||
|
||||
@@ -13,7 +13,22 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
option version = "1.7.0";
|
||||
option version = "2.0.0";
|
||||
|
||||
import "vnet/interface_types.api";
|
||||
import "vnet/ip/ip_types.api";
|
||||
|
||||
|
||||
enum transport_proto : u8
|
||||
{
|
||||
TRANSPORT_PROTO_API_TCP,
|
||||
TRANSPORT_PROTO_API_UDP,
|
||||
TRANSPORT_PROTO_API_SCTP,
|
||||
TRANSPORT_PROTO_API_NONE,
|
||||
TRANSPORT_PROTO_API_TLS,
|
||||
TRANSPORT_PROTO_API_UDPC,
|
||||
TRANSPORT_PROTO_API_QUIC,
|
||||
};
|
||||
|
||||
/** \brief client->vpp, attach application to session layer
|
||||
### WILL BE DEPRECATED POST 20.01 ###
|
||||
@@ -22,16 +37,14 @@ option version = "1.7.0";
|
||||
@param initial_segment_size - size of the initial shm segment to be
|
||||
allocated
|
||||
@param options - segment size, fifo sizes, etc.
|
||||
@param namespace_id_len - length of the namespace id c-string
|
||||
@param namespace_id - 0 terminted c-string
|
||||
@param namespace_id - string
|
||||
*/
|
||||
define application_attach {
|
||||
u32 client_index;
|
||||
u32 context;
|
||||
u32 initial_segment_size;
|
||||
u64 options[17];
|
||||
u8 namespace_id_len;
|
||||
u8 namespace_id [64];
|
||||
string namespace_id[];
|
||||
};
|
||||
|
||||
/** \brief Application attach reply
|
||||
@@ -44,10 +57,9 @@ option version = "1.7.0";
|
||||
@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
|
||||
@param segment_handle - handle for segment
|
||||
@param segment_name - name of segment client needs to attach to
|
||||
*/
|
||||
define application_attach_reply {
|
||||
u32 context;
|
||||
@@ -56,25 +68,22 @@ define application_attach_reply {
|
||||
u8 n_fds;
|
||||
u8 fd_flags;
|
||||
u32 segment_size;
|
||||
u8 segment_name_length;
|
||||
u8 segment_name[128];
|
||||
u32 app_index;
|
||||
u64 segment_handle;
|
||||
string segment_name[];
|
||||
};
|
||||
|
||||
/** \brief Application attach to session layer
|
||||
@param client_index - opaque cookie to identify the sender
|
||||
@param context - sender context, to match reply w/ request
|
||||
@param options - segment size, fifo sizes, etc.
|
||||
@param namespace_id_len - length of the namespace id c-string
|
||||
@param namespace_id - 0 terminted c-string
|
||||
@param namespace_id - string
|
||||
*/
|
||||
define app_attach {
|
||||
u32 client_index;
|
||||
u32 context;
|
||||
u64 options[17];
|
||||
u8 namespace_id_len;
|
||||
u8 namespace_id[64];
|
||||
string namespace_id[];
|
||||
};
|
||||
|
||||
/** \brief Application attach reply
|
||||
@@ -89,9 +98,8 @@ define application_attach_reply {
|
||||
@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 segment_handle - handle for segment
|
||||
@param segment_name - name of segment client needs to attach to
|
||||
*/
|
||||
define app_attach_reply {
|
||||
u32 context;
|
||||
@@ -103,9 +111,8 @@ define app_attach_reply {
|
||||
u8 n_fds;
|
||||
u8 fd_flags;
|
||||
u32 segment_size;
|
||||
u8 segment_name_length;
|
||||
u8 segment_name[128];
|
||||
u64 segment_handle;
|
||||
string segment_name[];
|
||||
};
|
||||
|
||||
/** \brief Add certificate and key
|
||||
@@ -202,7 +209,7 @@ autoreply define map_another_segment {
|
||||
u32 context;
|
||||
u8 fd_flags;
|
||||
u32 segment_size;
|
||||
u8 segment_name[128];
|
||||
string segment_name[128];
|
||||
u64 segment_handle;
|
||||
};
|
||||
|
||||
@@ -301,7 +308,6 @@ define disconnect_session_reply {
|
||||
@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
|
||||
@param port - port
|
||||
@param proto - protocol 0 - TCP 1 - UDP
|
||||
@@ -312,10 +318,9 @@ autoreply define bind_sock {
|
||||
u32 context;
|
||||
u32 wrk_index;
|
||||
u32 vrf;
|
||||
u8 is_ip4;
|
||||
u8 ip[16];
|
||||
vl_api_address_t ip;
|
||||
u16 port;
|
||||
u8 proto;
|
||||
vl_api_transport_proto_t proto;
|
||||
u64 options[16];
|
||||
};
|
||||
|
||||
@@ -342,7 +347,6 @@ autoreply define unbind_sock {
|
||||
used to perform redirects
|
||||
@param options - socket options, fifo sizes, etc. when doing redirects
|
||||
@param vrf - connection namespace
|
||||
@param is_ip4 - flag that is 1 if ip address family is IPv4
|
||||
@param ip - ip address
|
||||
@param port - port
|
||||
@param proto - protocol 0 - TCP 1 - UDP
|
||||
@@ -358,13 +362,11 @@ autoreply define connect_sock {
|
||||
u64 client_queue_address;
|
||||
u64 options[16];
|
||||
u32 vrf;
|
||||
u8 is_ip4;
|
||||
u8 ip[16];
|
||||
vl_api_address_t ip;
|
||||
u16 port;
|
||||
u8 proto;
|
||||
vl_api_transport_proto_t proto;
|
||||
u64 parent_handle;
|
||||
u8 hostname_len;
|
||||
u8 hostname[hostname_len];
|
||||
string hostname[];
|
||||
};
|
||||
|
||||
/** \brief ask app to add a new cut-through registration
|
||||
@@ -404,7 +406,7 @@ define app_worker_add_del
|
||||
u32 context;
|
||||
u32 app_index;
|
||||
u32 wrk_index;
|
||||
u8 is_add;
|
||||
bool is_add [default=true];
|
||||
};
|
||||
|
||||
/** \brief Reply for app worker add/del
|
||||
@@ -415,9 +417,9 @@ define app_worker_add_del
|
||||
@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
|
||||
@param is_add - add if non zero, else delete
|
||||
@param segment_name - name of segment client needs to attach to
|
||||
*/
|
||||
define app_worker_add_del_reply
|
||||
{
|
||||
@@ -427,10 +429,9 @@ define app_worker_add_del_reply
|
||||
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;
|
||||
bool is_add [default=true];
|
||||
string segment_name[];
|
||||
};
|
||||
|
||||
/** \brief enable/disable session layer
|
||||
@@ -442,7 +443,7 @@ define app_worker_add_del_reply
|
||||
autoreply define session_enable_disable {
|
||||
u32 client_index;
|
||||
u32 context;
|
||||
u8 is_enable;
|
||||
bool is_enable [default=true];
|
||||
};
|
||||
|
||||
/** \brief add/del application namespace
|
||||
@@ -456,18 +457,16 @@ autoreply define session_enable_disable {
|
||||
if sw_if_index set.
|
||||
@param ip6_fib_id - id of ip6 fib that "supports" the namespace. Ignored
|
||||
if sw_if_index set.
|
||||
@param namespace_id_len - length of namespace id lower
|
||||
@param namespace_id - namespace id
|
||||
*/
|
||||
define app_namespace_add_del {
|
||||
u32 client_index;
|
||||
u32 context;
|
||||
u64 secret;
|
||||
u32 sw_if_index;
|
||||
vl_api_interface_index_t sw_if_index;
|
||||
u32 ip4_fib_id;
|
||||
u32 ip6_fib_id;
|
||||
u8 namespace_id_len;
|
||||
u8 namespace_id[64];
|
||||
string namespace_id[];
|
||||
};
|
||||
|
||||
/** \brief Reply for app namespace add/del
|
||||
@@ -482,11 +481,17 @@ define app_namespace_add_del_reply
|
||||
u32 appns_index;
|
||||
};
|
||||
|
||||
enum session_rule_scope {
|
||||
SESSION_RULE_SCOPE_API_GLOBAL = 0,
|
||||
SESSION_RULE_SCOPE_API_LOCAL = 1,
|
||||
SESSION_RULE_SCOPE_API_BOTH = 2,
|
||||
};
|
||||
|
||||
/** \brief add/del session rule
|
||||
@param client_index - opaque cookie to identify the sender
|
||||
client to vpp direction only
|
||||
@param context - sender context, to match reply w/ request
|
||||
@param transport_proto - transport protocol (0 - tcp 1 - udp)
|
||||
@param transport_proto - transport protocol
|
||||
@param is_ip4 - flag to indicate if ip addresses are ip4 or 6
|
||||
@param lcl_ip - local ip
|
||||
@param lcl_plen - local prefix length
|
||||
@@ -498,25 +503,23 @@ define app_namespace_add_del_reply
|
||||
application with index action_index
|
||||
@param is_add - flag to indicate if add or del
|
||||
@param appns_index - application namespace where rule is to be applied to
|
||||
@param scope - flag that indicates scope of the rule: global or local.
|
||||
@param scope - enum that indicates scope of the rule: global or local.
|
||||
If 0, default is global, 1 is global 2 is local, 3 is both
|
||||
@param tag - tag
|
||||
*/
|
||||
autoreply define session_rule_add_del {
|
||||
u32 client_index;
|
||||
u32 context;
|
||||
u8 transport_proto;
|
||||
u8 is_ip4;
|
||||
u8 lcl_ip[16];
|
||||
u8 lcl_plen;
|
||||
u8 rmt_ip[16];
|
||||
u8 rmt_plen;
|
||||
vl_api_transport_proto_t transport_proto;
|
||||
vl_api_prefix_t lcl;
|
||||
vl_api_prefix_t rmt;
|
||||
u16 lcl_port;
|
||||
u16 rmt_port;
|
||||
u32 action_index;
|
||||
u8 is_add;
|
||||
bool is_add [default=true];
|
||||
u32 appns_index;
|
||||
u8 scope;
|
||||
u8 tag[64];
|
||||
vl_api_session_rule_scope_t scope;
|
||||
string tag[64];
|
||||
};
|
||||
|
||||
/** \brief Dump session rules
|
||||
@@ -531,7 +534,7 @@ define session_rules_dump
|
||||
|
||||
/** \brief Session rules details
|
||||
@param context - sender context, to match reply w/ request
|
||||
@param transport_proto - transport protocol (0 - tcp 1 - udp)
|
||||
@param transport_proto - transport protocol
|
||||
@param is_ip4 - flag to indicate if ip addresses are ip4 or 6
|
||||
@param lcl_ip - local ip
|
||||
@param lcl_plen - local prefix length
|
||||
@@ -542,24 +545,22 @@ define session_rules_dump
|
||||
@param action_index - the only action defined now is forward to
|
||||
application with index action_index
|
||||
@param appns_index - application namespace where rule is to be applied to
|
||||
@param scope - flag that indicates scope of the rule: global or local.
|
||||
@param scope - enum that indicates scope of the rule: global or local.
|
||||
If 0, default is global, 1 is global 2 is local, 3 is both
|
||||
@param tag - tag
|
||||
*/
|
||||
define session_rules_details
|
||||
{
|
||||
u32 context;
|
||||
u8 transport_proto;
|
||||
u8 is_ip4;
|
||||
u8 lcl_ip[16];
|
||||
u8 lcl_plen;
|
||||
u8 rmt_ip[16];
|
||||
u8 rmt_plen;
|
||||
vl_api_transport_proto_t transport_proto;
|
||||
vl_api_prefix_t lcl;
|
||||
vl_api_prefix_t rmt;
|
||||
u16 lcl_port;
|
||||
u16 rmt_port;
|
||||
u32 action_index;
|
||||
u32 appns_index;
|
||||
u8 scope;
|
||||
u8 tag[64];
|
||||
vl_api_session_rule_scope_t scope;
|
||||
string tag[64];
|
||||
};
|
||||
|
||||
/*
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
+16
-12
@@ -3382,13 +3382,13 @@ static void *vl_api_app_namespace_add_del_t_print
|
||||
(vl_api_app_namespace_add_del_t * mp, void *handle)
|
||||
{
|
||||
u8 *s;
|
||||
u8 len = clib_min (mp->namespace_id_len,
|
||||
ARRAY_LEN (mp->namespace_id) - 1);
|
||||
mp->namespace_id[len] = 0;
|
||||
|
||||
s = format (0, "SCRIPT: app_namespace_add_del ");
|
||||
s = format (s, "ns-id %s secret %lu sw_if_index %d ipv4_fib_id %d "
|
||||
"ipv6_fib_id %d", (char *) mp->namespace_id, mp->secret,
|
||||
(mp->sw_if_index), (mp->ip4_fib_id), (mp->ip6_fib_id));
|
||||
"ipv6_fib_id %d",
|
||||
vl_api_from_api_to_new_c_string (&mp->namespace_id),
|
||||
mp->secret, (mp->sw_if_index), (mp->ip4_fib_id),
|
||||
(mp->ip6_fib_id));
|
||||
FINISH;
|
||||
}
|
||||
|
||||
@@ -3437,21 +3437,25 @@ static void *vl_api_session_rule_add_del_t_print
|
||||
(vl_api_session_rule_add_del_t * mp, void *handle)
|
||||
{
|
||||
u8 *s;
|
||||
fib_prefix_t lcl, rmt;
|
||||
char *proto = mp->transport_proto == 0 ? "tcp" : "udp";
|
||||
s = format (0, "SCRIPT: session_rule_add_del ");
|
||||
mp->tag[sizeof (mp->tag) - 1] = 0;
|
||||
if (mp->is_ip4)
|
||||
ip_prefix_decode (&mp->lcl, &lcl);
|
||||
ip_prefix_decode (&mp->rmt, &rmt);
|
||||
|
||||
if (lcl.fp_proto == FIB_PROTOCOL_IP4)
|
||||
s = format (s, "appns %d scope %d %s %U/%d %d %U/%d %d action %u tag %s",
|
||||
mp->appns_index, mp->scope, proto, format_ip4_address,
|
||||
(ip4_address_t *) mp->lcl_ip, mp->lcl_plen,
|
||||
format_ip4_address, (ip4_address_t *) mp->rmt_ip,
|
||||
mp->rmt_plen, mp->action_index, mp->tag);
|
||||
&lcl.fp_addr.ip4, lcl.fp_len,
|
||||
format_ip4_address, &rmt.fp_addr.ip4,
|
||||
rmt.fp_len, mp->action_index, mp->tag);
|
||||
else
|
||||
s = format (s, "appns %d scope %d %s %U/%d %d %U/%d %d action %u tag %s",
|
||||
mp->appns_index, mp->scope, proto, format_ip6_address,
|
||||
(ip6_address_t *) mp->lcl_ip, mp->lcl_plen,
|
||||
format_ip6_address, (ip6_address_t *) mp->rmt_ip,
|
||||
mp->rmt_plen, mp->action_index, mp->tag);
|
||||
&lcl.fp_addr.ip6, lcl.fp_len,
|
||||
format_ip6_address, &rmt.fp_addr.ip6,
|
||||
rmt.fp_len, mp->action_index, mp->tag);
|
||||
FINISH;
|
||||
}
|
||||
|
||||
|
||||
@@ -37,9 +37,9 @@ class TestSession(VppTestCase):
|
||||
table_id += 1
|
||||
|
||||
# Configure namespaces
|
||||
self.vapi.app_namespace_add_del(namespace_id=b"0",
|
||||
self.vapi.app_namespace_add_del(namespace_id="0",
|
||||
sw_if_index=self.loop0.sw_if_index)
|
||||
self.vapi.app_namespace_add_del(namespace_id=b"1",
|
||||
self.vapi.app_namespace_add_del(namespace_id="1",
|
||||
sw_if_index=self.loop1.sw_if_index)
|
||||
|
||||
def tearDown(self):
|
||||
|
||||
+2
-2
@@ -36,9 +36,9 @@ class TestTCP(VppTestCase):
|
||||
table_id += 1
|
||||
|
||||
# Configure namespaces
|
||||
self.vapi.app_namespace_add_del(namespace_id=b"0",
|
||||
self.vapi.app_namespace_add_del(namespace_id="0",
|
||||
sw_if_index=self.loop0.sw_if_index)
|
||||
self.vapi.app_namespace_add_del(namespace_id=b"1",
|
||||
self.vapi.app_namespace_add_del(namespace_id="1",
|
||||
sw_if_index=self.loop1.sw_if_index)
|
||||
|
||||
def tearDown(self):
|
||||
|
||||
+2
-2
@@ -82,9 +82,9 @@ class TestTLS(VppTestCase):
|
||||
table_id += 1
|
||||
|
||||
# Configure namespaces
|
||||
self.vapi.app_namespace_add_del(namespace_id=b"0",
|
||||
self.vapi.app_namespace_add_del(namespace_id="0",
|
||||
sw_if_index=self.loop0.sw_if_index)
|
||||
self.vapi.app_namespace_add_del(namespace_id=b"1",
|
||||
self.vapi.app_namespace_add_del(namespace_id="1",
|
||||
sw_if_index=self.loop1.sw_if_index)
|
||||
|
||||
def tearDown(self):
|
||||
|
||||
+2
-2
@@ -277,9 +277,9 @@ class TestUDP(VppTestCase):
|
||||
table_id += 1
|
||||
|
||||
# Configure namespaces
|
||||
self.vapi.app_namespace_add_del(namespace_id="0".encode('ascii'),
|
||||
self.vapi.app_namespace_add_del(namespace_id="0",
|
||||
sw_if_index=self.loop0.sw_if_index)
|
||||
self.vapi.app_namespace_add_del(namespace_id="1".encode('ascii'),
|
||||
self.vapi.app_namespace_add_del(namespace_id="1",
|
||||
sw_if_index=self.loop1.sw_if_index)
|
||||
|
||||
def tearDown(self):
|
||||
|
||||
@@ -1564,8 +1564,7 @@ class VppPapiProvider(object):
|
||||
'sw_if_index': sw_if_index,
|
||||
'ip4_fib_id': ip4_fib_id,
|
||||
'ip6_fib_id': ip6_fib_id,
|
||||
'namespace_id': namespace_id,
|
||||
'namespace_id_len': len(namespace_id)})
|
||||
'namespace_id': namespace_id})
|
||||
|
||||
def punt_socket_register(self, reg, pathname,
|
||||
header_version=1):
|
||||
|
||||
Reference in New Issue
Block a user