#include <vlibapi/api.h>
#include <vlibmemory/api.h>
#include <vpp/api/vpe_msg_enum.h>
-#include <svm/svm_fifo_segment.h>
#include <pthread.h>
#include <vnet/session/application_interface.h>
+#include <svm/fifo_segment.h>
#define vl_typedefs /* define message structures */
#include <vpp/api/vpe_all_api_h.h>
uword *session_index_by_vpp_handles;
/* fifo segment */
- svm_fifo_segment_private_t *seg;
+ fifo_segment_t *seg;
/* intermediate rx buffer */
u8 *rx_buf;
/* VNET_API_ERROR_FOO -> "Foo" hash table */
uword *error_string_by_error_number;
- svm_fifo_segment_main_t segment_main;
+ fifo_segment_main_t segment_main;
u8 *connect_test_data;
vl_api_application_attach_reply_t_handler (vl_api_application_attach_reply_t *
mp)
{
- svm_fifo_segment_create_args_t _a = { 0 }, *a = &_a;
+ fifo_segment_create_args_t _a = { 0 }, *a = &_a;
udp_echo_main_t *utm = &udp_echo_main;
- svm_fifo_segment_main_t *sm = &utm->segment_main;
+ fifo_segment_main_t *sm = &utm->segment_main;
int rv;
if (mp->retval)
ASSERT (mp->app_event_queue_address);
/* Attach to the segment vpp created */
- rv = svm_fifo_segment_attach (sm, a);
+ rv = fifo_segment_attach (sm, a);
if (rv)
{
clib_warning ("svm_fifo_segment_attach ('%s') failed",
u64 server_bytes_received, server_bytes_sent;
-static void *
+__clib_unused static void *
cut_through_thread_fn (void *arg)
{
app_session_t *s;
{
/* We read from the tx fifo and write to the rx fifo */
if (utm->have_return || do_dequeue)
- actual_transfer = svm_fifo_dequeue_nowait (rx_fifo,
- vec_len
- (my_copy_buffer),
- my_copy_buffer);
+ actual_transfer = svm_fifo_dequeue (rx_fifo,
+ vec_len (my_copy_buffer),
+ my_copy_buffer);
else
{
/* We don't do anything with the data, drop it */
buffer_offset = 0;
while (actual_transfer > 0)
{
- rv = svm_fifo_enqueue_nowait (tx_fifo, actual_transfer,
- my_copy_buffer + buffer_offset);
+ rv = svm_fifo_enqueue (tx_fifo, actual_transfer,
+ my_copy_buffer + buffer_offset);
if (rv > 0)
{
actual_transfer -= rv;
u64 test_buf_len, bytes_this_chunk, test_buf_offset;
u8 *test_data = utm->connect_test_data;
- u32 bytes_to_snd, enq_space, min_chunk;
+ u32 enq_space;
int written;
test_buf_len = vec_len (test_data);
client_test (udp_echo_main_t * utm)
{
f64 start_time, timeout = 100.0;
- app_session_t *session;
svm_msg_q_msg_t msg;
session_event_t *e;
static void
vl_api_map_another_segment_t_handler (vl_api_map_another_segment_t * mp)
{
- svm_fifo_segment_create_args_t _a, *a = &_a;
+ fifo_segment_create_args_t _a, *a = &_a;
udp_echo_main_t *utm = &udp_echo_main;
- svm_fifo_segment_main_t *sm = &utm->segment_main;
- svm_fifo_segment_private_t *seg;
+ fifo_segment_main_t *sm = &utm->segment_main;
+ fifo_segment_t *seg;
int rv;
clib_memset (a, 0, sizeof (*a));
a->segment_name = (char *) mp->segment_name;
a->segment_size = mp->segment_size;
/* Attach to the segment vpp created */
- rv = svm_fifo_segment_attach (sm, a);
+ rv = fifo_segment_attach (sm, a);
if (rv)
{
clib_warning ("svm_fifo_segment_attach ('%s') failed",
mp->segment_name);
return;
}
- seg = svm_fifo_segment_get_segment (sm, a->new_segment_indices[0]);
+ seg = fifo_segment_get_segment (sm, a->new_segment_indices[0]);
clib_warning ("Mapped new segment '%s' size %d", seg->ssvm.name,
seg->ssvm.ssvm_size);
hash_set (utm->segments_table, clib_net_to_host_u64 (mp->segment_handle),
vl_api_unmap_segment_t_handler (vl_api_unmap_segment_t * mp)
{
udp_echo_main_t *utm = &udp_echo_main;
- svm_fifo_segment_main_t *sm = &utm->segment_main;
- svm_fifo_segment_private_t *seg;
+ fifo_segment_main_t *sm = &utm->segment_main;
+ fifo_segment_t *seg;
uword *seg_indexp;
u64 segment_handle;
return;
}
hash_unset (utm->segments_table, segment_handle);
- seg = svm_fifo_segment_get_segment (sm, (u32) seg_indexp[0]);
- svm_fifo_segment_delete (sm, seg);
+ seg = fifo_segment_get_segment (sm, (u32) seg_indexp[0]);
+ fifo_segment_delete (sm, seg);
clib_warning ("Unmapped segment '%s'", segment_handle);
}
session_event_t *e;
svm_msg_q_msg_t msg;
svm_msg_q_t *mq = utm->our_event_queue;
- int i;
while (utm->state != STATE_READY)
sleep (5);
main (int argc, char **argv)
{
udp_echo_main_t *utm = &udp_echo_main;
- svm_fifo_segment_main_t *sm = &utm->segment_main;
+ fifo_segment_main_t *sm = &utm->segment_main;
u8 *uri = (u8 *) "udp://6.0.1.1/1234";
unformat_input_t _argv, *a = &_argv;
int i_am_server = 1;
clib_mem_init_thread_safe (0, 256 << 20);
- svm_fifo_segment_main_init (sm, HIGH_SEGMENT_BASEVA, 20);
+ fifo_segment_main_init (sm, HIGH_SEGMENT_BASEVA, 20);
vec_validate (utm->rx_buf, 128 << 10);
utm->session_index_by_vpp_handles = hash_create (0, sizeof (uword));