vcl: add api to retrieve num bytes for tx
Type: improvement Signed-off-by: Florin Coras <fcoras@cisco.com> Change-Id: Iaa1b026e2baea1c03f8c75e7d6879d0ff6d379d6
This commit is contained in:
Florin Coras
committed by
Dave Barach
parent
a8d266a7a4
commit
8ae63db020
@ -613,7 +613,13 @@ ioctl (int fd, unsigned long int cmd, ...)
|
||||
case FIONREAD:
|
||||
rv = vls_attr (vlsh, VPPCOM_ATTR_GET_NREAD, 0, 0);
|
||||
break;
|
||||
|
||||
case TIOCOUTQ:
|
||||
{
|
||||
u32 *buf = va_arg (ap, void *);
|
||||
u32 *buflen = va_arg (ap, u32 *);
|
||||
rv = vls_attr (vlsh, VPPCOM_ATTR_GET_NWRITEQ, buf, buflen);
|
||||
}
|
||||
break;
|
||||
case FIONBIO:
|
||||
{
|
||||
u32 flags = *(va_arg (ap, int *)) ? O_NONBLOCK : 0;
|
||||
|
@ -3585,7 +3585,19 @@ vppcom_session_attr (uint32_t session_handle, uint32_t op,
|
||||
VDBG (2, "VPPCOM_ATTR_GET_NWRITE: sh %u, nwrite = %d", session_handle,
|
||||
rv);
|
||||
break;
|
||||
|
||||
case VPPCOM_ATTR_GET_NWRITEQ:
|
||||
if (PREDICT_FALSE (!buffer || !buflen || *buflen != sizeof (int)))
|
||||
{
|
||||
rv = VPPCOM_EINVAL;
|
||||
break;
|
||||
}
|
||||
if (!session->tx_fifo || session->session_state == VCL_STATE_DETACHED)
|
||||
{
|
||||
rv = VPPCOM_EINVAL;
|
||||
break;
|
||||
}
|
||||
*(int *) buffer = svm_fifo_max_dequeue (session->tx_fifo);
|
||||
break;
|
||||
case VPPCOM_ATTR_GET_FLAGS:
|
||||
if (PREDICT_TRUE (buffer && buflen && (*buflen >= sizeof (*flags))))
|
||||
{
|
||||
|
@ -184,6 +184,7 @@ typedef enum
|
||||
VPPCOM_ATTR_SET_IP_PKTINFO,
|
||||
VPPCOM_ATTR_GET_IP_PKTINFO,
|
||||
VPPCOM_ATTR_GET_ORIGINAL_DST,
|
||||
VPPCOM_ATTR_GET_NWRITEQ,
|
||||
} vppcom_attr_op_t;
|
||||
|
||||
typedef struct _vcl_poll
|
||||
|
Reference in New Issue
Block a user