|
FD.io VPP
v21.06-3-gbb25fbf28
Vector Packet Processing
|
Go to the documentation of this file.
29 #include <vmxnet3/vmxnet3.api_enum.h>
30 #include <vmxnet3/vmxnet3.api_types.h>
60 rmp->sw_if_index = ntohl (args.sw_if_index);
71 vl_api_vmxnet3_delete_reply_t *rmp;
81 rv = VNET_API_ERROR_INVALID_SW_IF_INDEX;
110 mp->_vl_msg_id = htons (VL_API_VMXNET3_DETAILS + vmxm->
msg_id_base);
128 vl_api_vmxnet3_rx_list_t *rx_list = &mp->
rx_list[qid];
131 rx_list->rx_qsize = htons (rxq->
size);
136 rx_list->rx_fill[rid] = htons (ring->
fill);
137 rx_list->rx_produce[rid] = htons (ring->
produce);
138 rx_list->rx_consume[rid] = htons (ring->
consume);
146 vl_api_vmxnet3_tx_list_t *tx_list = &mp->
tx_list[qid];
149 tx_list->tx_qsize = htons (txq->
size);
183 _vec_len (if_name) = 0;
203 u32 filter_sw_if_index;
210 if ((filter_sw_if_index != ~0) &&
212 goto bad_sw_if_index;
217 if ((filter_sw_if_index == ~0) ||
224 _vec_len (if_name) = 0;
234 #include <vmxnet3/vmxnet3.api.c>
vmxnet3_main_t vmxnet3_main
Dump all vmxnet3 interfaces.
static vl_api_registration_t * vl_api_client_index_to_registration(u32 index)
void vmxnet3_create_if(vlib_main_t *vm, vmxnet3_create_if_args_t *args)
#define REPLY_MACRO2(t, body)
static void send_vmxnet3_details(vl_api_registration_t *reg, vmxnet3_device_t *vd, vnet_sw_interface_t *swif, u8 *interface_name, u32 context)
static void vl_api_send_msg(vl_api_registration_t *rp, u8 *elem)
#define pool_elt_at_index(p, i)
Returns pointer to element at given index.
vl_api_interface_index_t sw_if_index[default=0xffffffff]
@ VNET_SW_INTERFACE_FLAG_ADMIN_UP
vlib_main_t * vm
X-connect all packets from the HOST to the PHY.
static vnet_sw_interface_t * vnet_get_sw_interface(vnet_main_t *vnm, u32 sw_if_index)
static uword vnet_sw_interface_is_api_valid(vnet_main_t *vnm, u32 sw_if_index)
static void setup_message_id_table(api_main_t *am)
#define pool_foreach(VAR, POOL)
Iterate through pool.
vl_api_interface_index_t sw_if_index
#define vec_len(v)
Number of elements in vector (rvalue-only, NULL tolerant)
#define vec_elt_at_index(v, i)
Get vector value at index i checking that i is in bounds.
vnet_main_t * vnet_get_main(void)
vl_api_interface_index_t sw_if_index
An API client registration, only in vpp/vlib.
static void vl_api_sw_vmxnet3_interface_dump_t_handler(vl_api_sw_vmxnet3_interface_dump_t *mp)
Message handler for vmxnet3_dump API.
static vnet_hw_interface_t * vnet_get_sup_hw_interface_api_visible_or_null(vnet_main_t *vnm, u32 sw_if_index)
vmxnet3_tx_comp_ring tx_comp_ring
#define vec_foreach_index(var, v)
Iterate over vector indices.
vmxnet3_rx_comp_ring rx_comp_ring
vl_api_vmxnet3_tx_list_t tx_list[8]
#define BAD_SW_IF_INDEX_LABEL
#define VMXNET3_RX_RING_SIZE
vl_api_mac_address_t hw_addr
#define vec_free(V)
Free vector's memory (no header).
vl_api_vmxnet3_rx_list_t rx_list[16]
static void vl_api_vmxnet3_create_t_handler(vl_api_vmxnet3_create_t *mp)
static void vl_api_vmxnet3_dump_t_handler(vl_api_vmxnet3_dump_t *mp)
Message handler for vmxnet3_dump API.
description fragment has unexpected format
static vnet_hw_interface_t * vnet_get_sup_hw_interface(vnet_main_t *vnm, u32 sw_if_index)
static void vl_api_vmxnet3_delete_t_handler(vl_api_vmxnet3_delete_t *mp)
vmxnet3_rx_ring rx_ring[VMXNET3_RX_RING_SIZE]
clib_memset(h->entries, 0, sizeof(h->entries[0]) *entries)
static vlib_main_t * vlib_get_main(void)
Memory interface details structure.
void vmxnet3_delete_if(vlib_main_t *vm, vmxnet3_device_t *vd)
clib_error_t * vmxnet3_plugin_api_hookup(vlib_main_t *vm)
vmxnet3_device_t * devices
format_function_t format_vnet_sw_interface_name
void * vl_msg_api_alloc(int nbytes)
vnet_device_class_t vmxnet3_device_class