return 1;
}
+u8 *
+echo_format_bytes_per_sec (u8 * s, va_list * args)
+{
+ f64 bps = va_arg (*args, f64) * 8;
+ if (bps > 1e9)
+ return format (s, "%.3f Gb/s", bps / 1e9);
+ else if (bps > 1e6)
+ return format (s, "%.3f Mb/s", bps / 1e6);
+ else if (bps > 1e3)
+ return format (s, "%.3f Kb/s", bps / 1e3);
+ else
+ return format (s, "%.3f b/s", bps);
+}
+
u8 *
echo_format_timing_event (u8 * s, va_list * args)
{
*proto = TRANSPORT_PROTO_TCP;
else if (unformat (input, "TCP"))
*proto = TRANSPORT_PROTO_TCP;
- else if (unformat (input, "udpc"))
- *proto = TRANSPORT_PROTO_UDPC;
- else if (unformat (input, "UDPC"))
- *proto = TRANSPORT_PROTO_UDPC;
else if (unformat (input, "udp"))
*proto = TRANSPORT_PROTO_UDP;
else if (unformat (input, "UDP"))
*proto = TRANSPORT_PROTO_UDP;
- else if (unformat (input, "sctp"))
- *proto = TRANSPORT_PROTO_SCTP;
- else if (unformat (input, "SCTP"))
- *proto = TRANSPORT_PROTO_SCTP;
else if (unformat (input, "tls"))
*proto = TRANSPORT_PROTO_TLS;
else if (unformat (input, "TLS"))
case TRANSPORT_PROTO_UDP:
s = format (s, "UDP");
break;
- case TRANSPORT_PROTO_SCTP:
- s = format (s, "SCTP");
- break;
case TRANSPORT_PROTO_NONE:
s = format (s, "NONE");
break;
case TRANSPORT_PROTO_TLS:
s = format (s, "TLS");
break;
- case TRANSPORT_PROTO_UDPC:
- s = format (s, "UDPC");
- break;
case TRANSPORT_PROTO_QUIC:
s = format (s, "QUIC");
break;
{
svm_msg_q_msg_t msg;
echo_rpc_msg_t *evt;
- if (PREDICT_FALSE (svm_msg_q_lock (em->rpc_msq_queue)))
+ if (PREDICT_FALSE (svm_msg_q_lock (&em->rpc_msq_queue)))
{
ECHO_FAIL (ECHO_FAIL_RPC_SIZE, "RPC lock failed");
return -1;
}
- if (PREDICT_FALSE (svm_msg_q_ring_is_full (em->rpc_msq_queue, 0)))
+ if (PREDICT_FALSE (svm_msg_q_ring_is_full (&em->rpc_msq_queue, 0)))
{
- svm_msg_q_unlock (em->rpc_msq_queue);
+ svm_msg_q_unlock (&em->rpc_msq_queue);
ECHO_FAIL (ECHO_FAIL_RPC_SIZE, "RPC ring is full");
return -2;
}
- msg = svm_msg_q_alloc_msg_w_ring (em->rpc_msq_queue, 0);
- evt = (echo_rpc_msg_t *) svm_msg_q_msg_data (em->rpc_msq_queue, &msg);
+ msg = svm_msg_q_alloc_msg_w_ring (&em->rpc_msq_queue, 0);
+ evt = (echo_rpc_msg_t *) svm_msg_q_msg_data (&em->rpc_msq_queue, &msg);
evt->fp = fp;
clib_memcpy (&evt->args, args, sizeof (evt->args));
- svm_msg_q_add_and_unlock (em->rpc_msq_queue, &msg);
+ svm_msg_q_add_and_unlock (&em->rpc_msq_queue, &msg);
return 0;
}
return pool_elt_at_index (em->sessions, p[0]);
}
-int
-wait_for_segment_allocation (u64 segment_handle)
-{
- echo_main_t *em = &echo_main;
- f64 timeout;
- timeout = clib_time_now (&em->clib_time) + TIMEOUT;
- uword *segment_present;
- ECHO_LOG (3, "Waiting for segment 0x%lx...", segment_handle);
- while (clib_time_now (&em->clib_time) < timeout)
- {
- clib_spinlock_lock (&em->segment_handles_lock);
- segment_present = hash_get (em->shared_segment_handles, segment_handle);
- clib_spinlock_unlock (&em->segment_handles_lock);
- if (segment_present != 0)
- return 0;
- if (em->time_to_stop == 1)
- return 0;
- }
- ECHO_LOG (2, "timeout wait_for_segment_allocation (0x%lx)", segment_handle);
- return -1;
-}
-
int
wait_for_state_change (echo_main_t * em, connection_state_t state,
f64 timeout)