docs: devices-- add FEATURES.yaml

Type: docs

Change-Id: I039ba9ad5385452b202366fba0b367506a21ea4f
Signed-off-by: Paul Vinciguerra <pvinci@vinciconsulting.com>
This commit is contained in:
Paul Vinciguerra
2019-10-29 16:11:09 -04:00
committed by Ole Trøan
parent 3ae5262712
commit 97c998c281
16 changed files with 73 additions and 20 deletions

@ -80,20 +80,25 @@ F: src/vnet/classify
VNET Device Drivers
I: devices
Y: src/vnet/devices/af_packet/FEATURE.yaml
Y: src/vnet/devices/netmap/FEATURE.yaml
Y: src/vnet/devices/pipe/FEATURE.yaml
M: Damjan Marion <damarion@cisco.com>
F: src/vnet/devices/
VNET TAP Drivers
I: tap
Y: src/vnet/devices/tap/FEATURE.yaml
M: Damjan Marion <damarion@cisco.com>
M: Steven Luong <sluong@cisco.com>
M: Mohsin Kazmi <sykazmi@cisco.com>
F: src/vnet/devices/tap/
VNET Native Virtio Drivers
I: virtio
M: Mohsin Kazmi <sykazmi@cisco.com>
F: src/vnet/devices/virtio/
I: virtio
Y: src/vnet/devices/virtio/FEATURE.yaml
M: Mohsin Kazmi <sykazmi@cisco.com>
F: src/vnet/devices/virtio/
VNET Etherent
I: ethernet

@ -0,0 +1,9 @@
name: host-interface Device (AF_PACKET)
maintainer: Damjan Marion <damarion@cisco.com>
features:
- L4 checksum offload
description: "Create a host interface that will attach to a linux AF_PACKET interface, one side of a veth pair. The veth pair must already exist. Once created, a new host interface will exist in VPP with the name 'host-<ifname>', where '<ifname>' is the name of the specified veth pair. Use the 'show interface' command to display host interface details."
missing:
- API dump details beyond sw_if_index and name
state: production
properties: [API, CLI, STATS, MULTITHREAD]

@ -59,7 +59,7 @@ autoreply define af_packet_delete
string host_if_name[64];
};
/** \brief Set l4 offload ckecksum calculation
/** \brief Set l4 offload checksum calculation
@param client_index - opaque cookie to identify the sender
@param context - sender context, to match reply w/ request
*/

@ -0,0 +1,9 @@
name: Netmap Device
maintainer: Damjan Marion <damarion@cisco.com>
features:
- L4 checksum offload
description: "Create a netmap interface, which is a high speed user-space interface that allows VPP to patch into a linux namespace, a linux container, or a physical NIC without the use of DPDK."
missing:
- API dump
state: production
properties: [API, CLI, STATS, MULTITHREAD]

@ -0,0 +1,11 @@
name: Pipe Device
maintainer: Damjan Marion <damarion@cisco.com>
features:
- L4 checksum offload
description: "Create a pipe device interface, which can pass packets bidirectionally in one side of the pipe to the other side of the pipe. While similar in behavior to a unix pipe, it is not a host-based pipe."
missing:
- does not use hw-address
- does not support tagged traffic
- API dump filtering by sw_if_index
state: production
properties: [API, CLI, STATS, MULTITHREAD]

@ -23,7 +23,7 @@ option version = "1.0.1";
import "vnet/interface_types.api";
/** \brief Initialize a new pipe interface with the given paramters
/** \brief Initialize a new pipe interface with the given parameters
@param client_index - opaque cookie to identify the sender
@param context - sender context, to match reply w/ request
@param is_specified - if non-0, a specific user_instance is being requested
@ -55,7 +55,7 @@ define pipe_create_reply
/** \brief Delete pipe interface
@param client_index - opaque cookie to identify the sender
@param context - sender context, to match reply w/ request
@param sw_if_index - interface index of existing pipe interface
@param sw_if_index - interface index of existing parent pipe interface
*/
autoreply define pipe_delete
{

@ -21,7 +21,7 @@
* @file
* @brief Pipe Interfaces.
*
* A pipe interface, like the UNIX pipe, is a pair of interfaces
* A pipe interface, like the UNIX pipe, is a pair of vpp interfaces
* that are joined.
*/
const static pipe_t PIPE_INVALID = {
@ -30,7 +30,7 @@ const static pipe_t PIPE_INVALID = {
};
/**
* Various 'module' lavel variables
* Various 'module' level variables
*/
typedef struct pipe_main_t_
{
@ -40,7 +40,7 @@ typedef struct pipe_main_t_
uword *instances;
/**
* the per-swif-index array of pipes. Each end of the pipe is stored againt
* the per-swif-index array of pipes. Each end of the pipe is stored against
* its respective sw_if_index
*/
pipe_t *pipes;
@ -51,7 +51,7 @@ static pipe_main_t pipe_main;
/*
* The pipe rewrite is the same size as an ethernet header (since it
* is an ethernet interface and the DP is optimised for writing
* sizeof(ethernet_header_t) rewrites. Hwoever, there are no MAC addresses
* sizeof(ethernet_header_t) rewrites. However, there are no MAC addresses
* since pipes don't have them.
*/
static u8 *

@ -0,0 +1,10 @@
name: Tap Device
maintainer: damarion@cisco.com sluong@cisco.com sykazmi@cisco.com
features:
- Virtio
description: "Create a tap v2 device interface, which connects to a tap interface on the host system."
missing:
- API dump filtering by sw_if_index
state: production
properties: [API, CLI, STATS, MULTITHREAD]

@ -198,7 +198,7 @@ tap_create_if (vlib_main_t * vm, tap_create_if_args_t * args)
_IOCTL (vif->tap_fd, TUNSETVNETHDRSZ, &hdrsz);
_IOCTL (vif->fd, VHOST_SET_OWNER, 0);
/* if namespace is specified, all further netlink messages should be excuted
/* if namespace is specified, all further netlink messages should be executed
after we change our net namespace */
if (args->host_namespace)
{

@ -21,19 +21,19 @@
option version = "2.1.0";
/** \brief Initialize a new tap interface with the given paramters
/** \brief Initialize a new tap interface with the given parameters
@param client_index - opaque cookie to identify the sender
@param context - sender context, to match reply w/ request
@param id - interface id, 0xffffffff means auto
@param use_random_mac - let the system generate a unique mac address
@param mac_address - mac addr to assign to the interface if use_radom not set
@param mac_address - mac addr to assign to the interface if use_random not set
@param tx_ring_sz - the number of entries of TX ring
@param rx_ring_sz - the number of entries of RX ring
@param host_mac_addr_set - host side interface mac address should be set
@param host_mac_addr - host side interface mac address
@param host_if_name_set - host side interface name should be set
@param host_if_name - host side interface name
@param host_namespace_set - host namespece should be set
@param host_namespace_set - host namespace should be set
@param host_namespace - host namespace to attach interface to
@param host_bridge_set - host bridge should be set
@param host_bridge - host bridge to attach interface to

@ -0,0 +1,9 @@
name: Virtio PCI Device
maintainer: Mohsin Kazmi <sykazmi@cisco.com>
features:
- connection to the emulated pci interface presented to vpp from the host interface.
description: "Create a virtio-backed PCI device interface"
missing:
- API dump filtering by sw_if_index
state: production
properties: [API, CLI, STATS, MULTITHREAD]

@ -36,7 +36,7 @@
#define VHOST_USER_PROTOCOL_FEATURES ((1ULL << VHOST_USER_PROTOCOL_F_MQ) | \
(1ULL << VHOST_USER_PROTOCOL_F_LOG_SHMFD))
/* If multiqueue is provided by host, then we suppport it. */
/* If multiqueue is provided by host, then we support it. */
#define VIRTIO_NET_CTRL_MQ 4
#define VIRTIO_NET_CTRL_MQ_VQ_PAIRS_SET 0
#define VIRTIO_NET_CTRL_MQ_VQ_PAIRS_MIN 1

@ -426,7 +426,7 @@ vhost_user_if_input (vlib_main_t * vm,
/*
* For small packets (<2kB), we will not need more than one vlib buffer
* per packet. In case packets are bigger, we will just yeld at some point
* per packet. In case packets are bigger, we will just yield at some point
* in the loop and come back later. This is not an issue as for big packet,
* processing cost really comes from the memory copy.
* The assumption is that big packets will fit in 40 buffers.

@ -571,7 +571,7 @@ done:
* retry.
* The idea is that it is better to waste some time on packets
* that have been processed already than dropping them and get
* more fresh packets with a good likelyhood that they will be dropped too.
* more fresh packets with a good likelihood that they will be dropped too.
* This technique also gives more time to VM driver to pick-up packets.
* In case the traffic flows from physical to virtual interfaces, this
* technique will end-up leveraging the physical NIC buffer in order to

@ -15,13 +15,13 @@
option version = "1.0.0";
/** \brief Initialize a new virtio pci interface with the given paramters
/** \brief Initialize a new virtio pci interface with the given parameters
@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
@param use_random_mac - let the system generate a unique mac address
@param mac_address - mac addr to assign to the interface if use_radom not set
@param mac_address - mac addr to assign to the interface if use_random not set
@param gso_enabled - enable gso feature if available, 1 to enable
@param features - the virtio features which driver should negotiate with device
*/

@ -49,7 +49,7 @@
_ (VIRTIO_NET_F_CTRL_MAC_ADDR, 23) /* Set MAC address */ \
_ (VIRTIO_F_NOTIFY_ON_EMPTY, 24) \
_ (VHOST_F_LOG_ALL, 26) /* Log all write descriptors */ \
_ (VIRTIO_F_ANY_LAYOUT, 27) /* Can the device handle any descripor layout */ \
_ (VIRTIO_F_ANY_LAYOUT, 27) /* Can the device handle any descriptor layout */ \
_ (VIRTIO_RING_F_INDIRECT_DESC, 28) /* Support indirect buffer descriptors */ \
_ (VIRTIO_RING_F_EVENT_IDX, 29) /* The Guest publishes the used index for which it expects an interrupt \
* at the end of the avail ring. Host should ignore the avail->flags field. */ \