/* *------------------------------------------------------------------ * Copyright (c) 2018 Cisco and/or its affiliates. * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at: * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. *------------------------------------------------------------------ */ option version = "1.1.0"; import "vnet/interface_types.api"; import "vnet/ethernet/ethernet_types.api"; /** \brief @param client_index - opaque cookie to identify the sender @param context - sender context, to match reply w/ request @param pci_addr - pci address as unsigned 32bit integer: 0-15 domain, 16-23 bus, 24-28 slot, 29-31 function ddddddddddddddddbbbbbbbbsssssfff @param enable_elog - turn on elog (optional - default is off) @param rxq_size - receive queue size (optional - default is 1024) @param rxq_num - number of receive queues (optional - default is 1) @param txq_size - transmit queue size (optional - default is 1024) @param txq_num - number of transmit queues (optional - default is 1) @param bind - automatically bind PCI to vfio-pci module (optional - default is 0) @param enable_gso - enable gso (optional - default is 0) */ define vmxnet3_create { u32 client_index; u32 context; u32 pci_addr; i32 enable_elog; u16 rxq_size; u16 rxq_num; u16 txq_size; u16 txq_num; u8 bind; bool enable_gso; option vat_help = "<pci-address> [rx-queue-size <size>] [tx-queue-size <size>] [num-tx-queues <num>] [num-rx-queues <num>] [bind] [gso]"; }; /** \brief @param context - sender context, to match reply w/ request @param retval - return value for request @param sw_if_index - software index for the new vmxnet3 interface */ define vmxnet3_create_reply { u32 context; i32 retval; vl_api_interface_index_t sw_if_index; }; /** \brief @param client_index - opaque cookie to identify the sender @param context - sender context, to match reply w/ request @param sw_if_index - interface index */ autoreply define vmxnet3_delete { u32 client_index; u32 context; vl_api_interface_index_t sw_if_index; option vat_help = "sw_if_index <sw_if_index>"; }; /** \brief vmxnet3_tx_list structure @param tx_qsize - tx queue size @param tx_next - tx next index @param tx_produce - tx produce index @param tx_consume - tx consume index */ typedef vmxnet3_tx_list { u16 tx_qsize; u16 tx_next; u16 tx_produce; u16 tx_consume; }; /** \brief vmxnet3_rx_list structure @param rx_qsize - rx queue size @param rx_fill - rx fill count @param rx_next - rx next index @param rx_produce - rx produce index @param rx_consume - rx consume index */ typedef vmxnet3_rx_list { u16 rx_qsize; u16 rx_fill[2]; u16 rx_next; u16 rx_produce[2]; u16 rx_consume[2]; }; /** \brief Memory interface details structure @param context - sender context, to match reply w/ request (memif_dump) @param sw_if_index - index of the interface @param if_name - name of the interface @param hw_addr - interface MAC address @param pci_addr - pci address of the interface @param version - vmxnet3 hardware version @param admin_up_down - interface administrative status @param rx_count - number of elements in rx_list @param rx_list - list of vmxnet3_rx_list @param tx_count - number of elements in tx_list @param tx_list - list of vmnxnet3_tx_list */ define vmxnet3_details { u32 context; vl_api_interface_index_t sw_if_index; string if_name[64]; vl_api_mac_address_t hw_addr; u32 pci_addr; u8 version; bool admin_up_down; u8 rx_count; vl_api_vmxnet3_rx_list_t rx_list[16]; u8 tx_count; vl_api_vmxnet3_tx_list_t tx_list[8]; }; /** \brief Dump all vmxnet3 interfaces @param client_index - opaque cookie to identify the sender @param context - sender context, to match reply w/ request */ define vmxnet3_dump { u32 client_index; u32 context; }; /* * Local Variables: * eval: (c-set-style "gnu") * End: */