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
committed by
Ole Trøan
parent
3ae5262712
commit
97c998c281
11
MAINTAINERS
11
MAINTAINERS
@ -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
|
||||
|
9
src/vnet/devices/af_packet/FEATURE.yaml
Normal file
9
src/vnet/devices/af_packet/FEATURE.yaml
Normal file
@ -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
|
||||
*/
|
||||
|
9
src/vnet/devices/netmap/FEATURE.yaml
Normal file
9
src/vnet/devices/netmap/FEATURE.yaml
Normal file
@ -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]
|
11
src/vnet/devices/pipe/FEATURE.yaml
Normal file
11
src/vnet/devices/pipe/FEATURE.yaml
Normal file
@ -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 *
|
||||
|
10
src/vnet/devices/tap/FEATURE.yaml
Normal file
10
src/vnet/devices/tap/FEATURE.yaml
Normal file
@ -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
|
||||
|
9
src/vnet/devices/virtio/FEATURE.yaml
Normal file
9
src/vnet/devices/virtio/FEATURE.yaml
Normal file
@ -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. */ \
|
||||
|
Reference in New Issue
Block a user