Node Management doc

Improved conditionalization of content.

Signed-off-by: Stone <ronald.stone@windriver.com>
Change-Id: I775822cccc91d1ad9a6dfd16e3563acdb39378d4
This commit is contained in:
Stone
2020-12-24 11:37:01 -05:00
parent 16a5e8806b
commit 0123636bd3
14 changed files with 118 additions and 109 deletions

View File

View File

@@ -0,0 +1,19 @@
.. table:: Table 1. Common OpenStack Labels
:widths: auto
+-----------------------------+---------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Label | Worker/Controller | Description |
+=============================+===========================+=======================================================================================================================================================================+
| **openstack-control-plane** | - Controller | Identifies a node to deploy openstack controller services on. |
| | | |
| | - All-in-One Controller | |
+-----------------------------+---------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| **openstack-compute-node** | Worker | Identifies a node to deploy openstack compute agents on. |
| | | |
| | | .. note:: |
| | | Adding or removing this label, or removing a node with this label from a cluster, triggers the regeneration and application of the helm chart override by Armada. |
+-----------------------------+---------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| **sriov** | - Worker | Identifies a node as supporting sr-iov. |
| | | |
| | - All-in-One Controller | |
+-----------------------------+---------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------+

View File

@@ -0,0 +1,31 @@
- To remove labels from the host, do the following.
.. code-block:: none
~(keystone)admin)$ system host-label-remove compute-0 openstack-compute-node sriov
Deleted host label openstack-compute-node for host compute-0
Deleted host label SRIOV for host compute-0
- To assign Kubernetes labels to identify compute-0 as a compute node with
|SRIOV|, use the following command:
.. code-block:: none
~(keystone)admin)$ system host-label-assign compute-0 openstack-compute-node=enabled sriov=enabled
+-------------+--------------------------------------+
| Property | Value |
+-------------+--------------------------------------+
| uuid | 2909d775-cd6c-4bc1-8268-27499fe38d5e |
| host_uuid | 1f00d8a4-f520-41ee-b608-1b50054b1cd8 |
| label_key | openstack-compute-node |
| label_value | enabled |
+-------------+--------------------------------------+
+-------------+--------------------------------------+
| Property | Value |
+-------------+--------------------------------------+
| uuid | d8e29e62-4173-4445-886c-9a95b0d6fee1 |
| host_uuid | 1f00d8a4-f520-41ee-b608-1b50054b1cd8 |
| label_key | SRIOV |
| label_value | enabled |
+-------------+--------------------------------------+

View File

@@ -37,13 +37,6 @@ partitioned using 1 GiB huge pages by default. You can change this for
individual |NUMA| nodes to use 2 MiB huge individual |NUMA| nodes to use 2 MiB huge
pages for systems without 1 GiB huge page support. pages for systems without 1 GiB huge page support.
When the vSwitch type is set to |AVS|, the application huge
pages size must match the vSwitch huge pages size. For example, if
vSwitch uses 1GiB huge pages, only 1GiB huge pages can be allocated
for the application. You must also provision one 1GiB huge page per
|NUMA| node prior to unlocking a worker or an |AIO| controller if vswitch\_type
is set to |AVS|.
You can use the :command:`system host-memory-list` and You can use the :command:`system host-memory-list` and
:command:`system host-memory-show` commands to see how much memory is :command:`system host-memory-show` commands to see how much memory is
available for applications. This information is also shown on the **Memory** available for applications. This information is also shown on the **Memory**
@@ -51,3 +44,7 @@ tab of the Host Inventory page \(see :ref:`Memory Tab <memory-tab>`\).
For individual containers \(or hosted applications if you are running For individual containers \(or hosted applications if you are running
OpenStack\), you can specify which page size is required. OpenStack\), you can specify which page size is required.
.. only:: partner
.. include:: ../../../_includes/about-host-memory-provisioning.rest

View File

@@ -10,9 +10,6 @@ You can edit the platform, vSwitch, and Application page memory allocations
for a |NUMA| node from the Horizon Web for a |NUMA| node from the Horizon Web
interface using the **Memory** tab on the Host Inventory pane. interface using the **Memory** tab on the Host Inventory pane.
vSwitch supports |AVS| and is only applicable on an openstack-compute labeled
worker node, when running the |prod-os| OpenStack application.
Due to limitations in Kubernetes, only a single huge page size can be used Due to limitations in Kubernetes, only a single huge page size can be used
per host. per host.
@@ -22,8 +19,7 @@ typically also use 1GiB huge pages. However, the vSwitch page size can be
changed to 2MiB, in which case the application would also use 2MiB huge changed to 2MiB, in which case the application would also use 2MiB huge
pages. pages.
You must also provision one 1GiB huge page You must also provision one 1GiB huge page per |NUMA| node prior to unlocking a
per |NUMA| node prior to unlocking a
worker or an |AIO| controller. worker or an |AIO| controller.
.. rubric:: |prereq| .. rubric:: |prereq|
@@ -95,3 +91,7 @@ informative message is displayed.
#. Click **Save**. #. Click **Save**.
#. Unlock the host and wait for it to be reported as **Available**. #. Unlock the host and wait for it to be reported as **Available**.
.. only:: partner
.. include:: ../../../_includes/avs-note.rest

View File

@@ -7,10 +7,7 @@ Allocate Host Memory Using the CLI
================================== ==================================
You can edit the platform, vSwitch and huge page memory allocations for a You can edit the platform, vSwitch and huge page memory allocations for a
|NUMA| node from the CLI. vSwitch |NUMA| node from the CLI.
supports |AVS| and is only
applicable on an **openstack-compute** labeled worker node when running
the |prod-os| OpenStack application.
Due to limitations in Kubernetes, only a single huge page size can be used Due to limitations in Kubernetes, only a single huge page size can be used
per host. per host.
@@ -20,9 +17,8 @@ Since the vSwitch uses 1GiB huge page by default, the application will
typically also use 1GiB huge pages. However, the vSwitch page size can be typically also use 1GiB huge pages. However, the vSwitch page size can be
changed to 2MiB, in which case the application would also use 2MiB huge pages. changed to 2MiB, in which case the application would also use 2MiB huge pages.
You must also provision one 1GiB huge page per You must also provision one 1GiB huge page per |NUMA| node prior to unlocking a
|NUMA| node prior to unlocking a worker worker or an |AIO| controller.
or an |AIO| controller.
.. rubric:: |proc| .. rubric:: |proc|
@@ -168,3 +164,7 @@ or an |AIO| controller.
| 2 | controller-1 | controller | unlocked | enabled | available | | 2 | controller-1 | controller | unlocked | enabled | available |
| 3 | worker-0 | worker | unlocked | enabled | available | | 3 | worker-0 | worker | unlocked | enabled | available |
+----+--------------+-------------+----------------+-------------+--------------+ +----+--------------+-------------+----------------+-------------+--------------+
.. only:: partner
.. include:: ../../../_includes/avs-note.rest

View File

@@ -12,16 +12,10 @@ web interface.
|prod| supports up to four ports in a |LAG|. |prod| supports up to four ports in a |LAG|.
.. note:: For general information about interface provisioning, see :ref:`Interface
When running the |prod-os| OpenStack application with WRS |AVS| vSwitch, Provisioning <interface-provisioning>`. For more about the available settings
you must use |AVS| accelerated data interfaces to use |LACP| or for different types of interface, see :ref:`Interface Settings
active/standby mode on a data interface attached to a data network. <interface-settings>`.
For non-accelerated data interfaces, only load-balanced mode is supported
For general information about interface provisioning,
see :ref:`Interface Provisioning <interface-provisioning>`.
For more about the available settings for different types of interface,
see :ref:`Interface Settings <interface-settings>`.
.. rubric:: |proc| .. rubric:: |proc|
@@ -72,3 +66,7 @@ see :ref:`Interface Settings <interface-settings>`.
.. rubric:: |result| .. rubric:: |result|
The interface is created and attached to the network. The interface is created and attached to the network.
.. only:: partner
.. include:: ../../../_includes/configuring-aggregated-ethernet-interfaces-using-horizon.rest

View File

@@ -11,16 +11,8 @@ Ethernet interfaces to networks.
|prod| supports up to four ports in a |LAG|. |prod| supports up to four ports in a |LAG|.
.. note:: For more about link aggregation modes and policies, see :ref:`Link Aggregation
You must use |AVS| accelerated Settings <link-aggregation-settings>`.
data interfaces to use |LACP|
or active/standby mode on a data interface attached to a data network
when running the |prod-os| application with
the |prod| |AVS| vSwitch. For
non-accelerated data interfaces, only load-balanced mode is supported.
For more about link aggregation modes and policies,
see :ref:`Link Aggregation Settings <link-aggregation-settings>`.
.. rubric:: |proc| .. rubric:: |proc|
@@ -102,3 +94,7 @@ see :ref:`Link Aggregation Settings <link-aggregation-settings>`.
~(keystone_admin)$ system host-if-add controller-0 -a balanced -x layer2 ae0 ae enp0s9 enp0s10 ~(keystone_admin)$ system host-if-add controller-0 -a balanced -x layer2 ae0 ae enp0s9 enp0s10
~(keystone_admin)$ system interface-datanetwork-assign controller-0 ae0 providernet-net-a ~(keystone_admin)$ system interface-datanetwork-assign controller-0 ae0 providernet-net-a
~(keystone_admin)$ system interface-datanetwork-assign controller-0 ae0 providernet-net-b ~(keystone_admin)$ system interface-datanetwork-assign controller-0 ae0 providernet-net-b
.. only:: partner
../../../_includes/configuring-aggregated-ethernet-interfaces-using-the-cli.rest

View File

@@ -27,13 +27,13 @@ the |SRIOV| interfaces.
.. xbooklink See |datanet-doc|:`Adding Data Networks using the CLI <adding-data-networks-using-the-cli>`. .. xbooklink See |datanet-doc|:`Adding Data Networks using the CLI <adding-data-networks-using-the-cli>`.
You must create an |SRIOV| interface before you can provision a VF interface. You must create an |SRIOV| interface before you can provision a |VF| interface.
For more information, see :ref:`Provision SR-IOV Interfaces using the CLI For more information, see :ref:`Provision SR-IOV Interfaces using the CLI
<provisioning-sr-iov-interfaces-using-the-cli>`. <provisioning-sr-iov-interfaces-using-the-cli>`.
.. rubric:: |proc| .. rubric:: |proc|
#. Lock the host to which you will assign a VF interface. #. Lock the host to which you will assign a |VF| interface.
For example: For example:
@@ -89,7 +89,7 @@ For more information, see :ref:`Provision SR-IOV Interfaces using the CLI
**numvfs** **numvfs**
The number of virtual functions to enable on the device. This must The number of virtual functions to enable on the device. This must
be less than the number of VFs configured on the parent |SRIOV| be less than the number of |VFs| configured on the parent |SRIOV|
interface. interface.
**drivername** **drivername**
@@ -103,10 +103,10 @@ For more information, see :ref:`Provision SR-IOV Interfaces using the CLI
.. note:: .. note::
- Applications backed by Mellanox |AVS| should use the - Applications backed by Mellanox AVS should use the
netdevice VF driver netdevice |VF| driver
- If the driver for the VF interface and parent SR-IOV - If the driver for the |VF| interface and parent |SRIOV|
interface differ, a separate data network should be created interface differ, a separate data network should be created
for each interface. for each interface.
@@ -116,7 +116,7 @@ For more information, see :ref:`Provision SR-IOV Interfaces using the CLI
"data-net-a,data-net-b". To specify a single data network, "data-net-a,data-net-b". To specify a single data network,
omit the quotes. omit the quotes.
For example, to create VF interface sriov2 as a subinterface of pci-sriov For example, to create |VF| interface sriov2 as a subinterface of pci-sriov
interface sriov1 with 8 virtual functions bound to vfio and attached data interface sriov1 with 8 virtual functions bound to vfio and attached data
network datanet-b, do the following: network datanet-b, do the following:

View File

@@ -15,29 +15,9 @@ OpenStack role.
.. _using-labels-to-identify-openstack-nodes-table-xyl-qmy-thb: .. _using-labels-to-identify-openstack-nodes-table-xyl-qmy-thb:
.. table:: Table 1. Common OpenStack Labels .. Common OpenStack labels
:widths: auto
+-----------------------------+---------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------+ .. include:: ../../_includes/common-openstack-labels.rest
| Label | Worker/Controller | Description |
+=============================+===========================+=======================================================================================================================================================================+
| **openstack-control-plane** | - Controller | Identifies a node to deploy openstack controller services on. |
| | | |
| | - All-in-One Controller | |
+-----------------------------+---------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| **openstack-compute-node** | Worker | Identifies a node to deploy openstack compute agents on. |
| | | |
| | | .. note:: |
| | | Adding or removing this label, or removing a node with this label from a cluster, triggers the regeneration and application of the helm chart override by Armada. |
+-----------------------------+---------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| **avs** | - Worker | Identifies a node as supporting AVS. |
| | | |
| | - All-in-One Controller | |
+-----------------------------+---------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| **sriov** | - Worker | Identifies a node as supporting sr-iov. |
| | | |
| | - All-in-One Controller | |
+-----------------------------+---------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------+
For more information, see |node-doc|: :ref:`Configure Node Labels from The CLI For more information, see |node-doc|: :ref:`Configure Node Labels from The CLI
<assigning-node-labels-from-the-cli>`. <assigning-node-labels-from-the-cli>`.
@@ -48,42 +28,4 @@ Nodes must be locked before labels can be assigned or removed.
.. rubric:: |proc| .. rubric:: |proc|
- To assign Kubernetes labels to identify compute-0 as a compute node with .. include:: ../../_includes/using-labels-to-identify-openstack-nodes.rest
AVS and SRIOV, use the following command:
.. code-block:: none
~(keystone)admin)$ system host-label-assign compute-0 openstack-compute-node=enabled avs=enabled sriov=enabled
+-------------+--------------------------------------+
| Property | Value |
+-------------+--------------------------------------+
| uuid | 2909d775-cd6c-4bc1-8268-27499fe38d5e |
| host_uuid | 1f00d8a4-f520-41ee-b608-1b50054b1cd8 |
| label_key | openstack-compute-node |
| label_value | enabled |
+-------------+--------------------------------------+
+-------------+--------------------------------------+
| Property | Value |
+-------------+--------------------------------------+
| uuid | 8dafcfcf-e417-4fd0-8829-8baadb3a3981 |
| host_uuid | 1f00d8a4-f520-41ee-b608-1b50054b1cd8 |
| label_key | avs |
| label_value | enabled |
+-------------+--------------------------------------+
+-------------+--------------------------------------+
| Property | Value |
+-------------+--------------------------------------+
| uuid | d8e29e62-4173-4445-886c-9a95b0d6fee1 |
| host_uuid | 1f00d8a4-f520-41ee-b608-1b50054b1cd8 |
| label_key | SRIOV |
| label_value | enabled |
+-------------+--------------------------------------+
- To remove the labels from the host, do the following.
.. code-block:: none
~(keystone)admin)$ system host-label-remove compute-0 openstack-compute-node avs sriov
Deleted host label openstack-compute-node for host compute-0
Deleted host label avs for host compute-0
Deleted host label SRIOV for host compute-0

View File

@@ -67,30 +67,43 @@
.. Please keep this list alphabetical. .. Please keep this list alphabetical.
.. |ACL| replace:: :abbr:`ACL (Access Control List)`
.. |AE| replace:: :abbr:`AE (Aggregated Ethernet)` .. |AE| replace:: :abbr:`AE (Aggregated Ethernet)`
.. |AIO| replace:: :abbr:`AIO (All-In-One)` .. |AIO| replace:: :abbr:`AIO (All-In-One)`
.. |AVS| replace:: :abbr:`AVS (Application Virtual Switch)` .. |AVP| replace:: :abbr:`AVP (Accelerated Virtual Port)`
.. |BGP| replace:: :abbr:`BGP (Border Gateway Protocol)` .. |BGP| replace:: :abbr:`BGP (Border Gateway Protocol)`
.. |BMC| replace:: :abbr:`BMC (Board Management Controller)` .. |BMC| replace:: :abbr:`BMC (Board Management Controller)`
.. |BMCs| replace:: :abbr:`BMCs (Board Management Controllers)` .. |BMCs| replace:: :abbr:`BMCs (Board Management Controllers)`
.. |BOOTP| replace:: :abbr:`BOOTP (Boot Protocol)`
.. |BPDU| replace:: :abbr:`BPDU (Bridge Protocol Data Unit)`
.. |BPDUs| replace:: :abbr:`BPDUs (Bridge Protocol Data Units)`
.. |CA| replace:: :abbr:`CA (Certificate Authority)`
.. |CNI| replace:: :abbr:`CNI (Container Networking Interface)` .. |CNI| replace:: :abbr:`CNI (Container Networking Interface)`
.. |CoW| replace:: :abbr:`CoW (Copy on Write)`
.. |CSK| replace:: :abbr:`CSK (Code Signing Key)` .. |CSK| replace:: :abbr:`CSK (Code Signing Key)`
.. |CSKs| replace:: :abbr:`CSKs (Code Signing Keys)` .. |CSKs| replace:: :abbr:`CSKs (Code Signing Keys)`
.. |DHCP| replace:: :abbr:`DHCP (Dynamic Host Configuration Protoco)`
.. |DPDK| replace:: :abbr:`DPDK (Data Plane Development Kit)` .. |DPDK| replace:: :abbr:`DPDK (Data Plane Development Kit)`
.. |DRBD| replace:: :abbr:`DRBD (Distributed Replicated Block Device)`
.. |DSCP| replace:: :abbr:`DSCP (Differentiated Services Code Point)`
.. |DVR| replace:: :abbr:`DVR (Distributed Virtual Router)`
.. |FEC| replace:: :abbr:`FEC (Forward Error Correction)` .. |FEC| replace:: :abbr:`FEC (Forward Error Correction)`
.. |FPGA| replace:: :abbr:`FPGA (Field Programmable Gate Array)` .. |FPGA| replace:: :abbr:`FPGA (Field Programmable Gate Array)`
.. |FQDN| replace:: :abbr:`FQDN (Fully Qualified Domain Name)`
.. |GNP| replace:: :abbr:`GNP (Global Network Policy)` .. |GNP| replace:: :abbr:`GNP (Global Network Policy)`
.. |IGMP| replace:: :abbr:`IGMP (Internet Group Management Protocol)`
.. |IPMI| replace:: :abbr:`IPMI (Intelligent Platform Management Interface)` .. |IPMI| replace:: :abbr:`IPMI (Intelligent Platform Management Interface)`
.. |LACP| replace:: :abbr:`LACP (Link Aggregation Control Protocol)` .. |LACP| replace:: :abbr:`LACP (Link Aggregation Control Protocol)`
.. |LAG| replace:: :abbr:`LAG (Link Aggregation)` .. |LAG| replace:: :abbr:`LAG (Link Aggregation)`
.. |LDAP| replace:: :abbr:`LDAP (Lightweight Directory Access Protocol)` .. |LDAP| replace:: :abbr:`LDAP (Lightweight Directory Access Protocol)`
.. |LDPC| replace:: :abbr:`LDPC (Low-Density Parity Check)` .. |LDPC| replace:: :abbr:`LDPC (Low-Density Parity Check)`
.. |LLDP| replace:: :abbr:`LLDP (Link Layer Discovery Protocol)` .. |LLDP| replace:: :abbr:`LLDP (Link Layer Discovery Protocol)`
.. |MTU| replace:: :abbr:`MTU (Maximum Transmission Unit)`
.. |MAC| replace:: :abbr:`MAC (Media Access Control)` .. |MAC| replace:: :abbr:`MAC (Media Access Control)`
.. |MEC| replace:: :abbr:`MEC (Multi-access Edge Computing)` .. |MEC| replace:: :abbr:`MEC (Multi-access Edge Computing)`
.. |MLD| replace:: :abbr:`MLD (Multicast Listener Discovery)`
.. |MNFA| replace:: :abbr:`MNFA (Multi-Node Failure Avoidance)` .. |MNFA| replace:: :abbr:`MNFA (Multi-Node Failure Avoidance)`
.. |MOTD| replace:: :abbr:`MOTD (Message of the Day)` .. |MOTD| replace:: :abbr:`MOTD (Message of the Day)`
.. |MTU| replace:: :abbr:`MTU (Maximum Transmission Unit)`
.. |NIC| replace:: :abbr:`NIC (Network Interface Card)` .. |NIC| replace:: :abbr:`NIC (Network Interface Card)`
.. |NICs| replace:: :abbr:`NICs (Network Interface Cards)` .. |NICs| replace:: :abbr:`NICs (Network Interface Cards)`
.. |NTP| replace:: :abbr:`NTP (Network Time Protocol)` .. |NTP| replace:: :abbr:`NTP (Network Time Protocol)`
@@ -102,22 +115,35 @@
.. |PAC| replace:: :abbr:`PAC (Programmable Acceleration Card)` .. |PAC| replace:: :abbr:`PAC (Programmable Acceleration Card)`
.. |PCI| replace:: :abbr:`PCI (Peripheral Component Interconnect)` .. |PCI| replace:: :abbr:`PCI (Peripheral Component Interconnect)`
.. |PDU| replace:: :abbr:`PDU (Packet Data Unit)` .. |PDU| replace:: :abbr:`PDU (Packet Data Unit)`
.. |PHB| replace:: :abbr:`PHB (Per-Hop Behavior)`
.. |PTP| replace:: :abbr:`PTP (Precision Time Protocol)` .. |PTP| replace:: :abbr:`PTP (Precision Time Protocol)`
.. |PVC| replace:: :abbr:`PVC (Persistent Volume Claim)` .. |PVC| replace:: :abbr:`PVC (Persistent Volume Claim)`
.. |PVCs| replace:: :abbr:`PVCs (Persistent Volume Claims)` .. |PVCs| replace:: :abbr:`PVCs (Persistent Volume Claims)`
.. |PXE| replace:: :abbr:`PXE (Preboot Execution Environment)` .. |PXE| replace:: :abbr:`PXE (Preboot Execution Environment)`
.. |QoS| replace:: :abbr:`QoS (Quality of Service)` .. |QoS| replace:: :abbr:`QoS (Quality of Service)`
.. |RAID| replace:: :abbr:`RAID (Redundant Array of Inexpensive Disks)`
.. |RPC| replace:: :abbr:`RPC (Remote Procedure Call)` .. |RPC| replace:: :abbr:`RPC (Remote Procedure Call)`
.. |SAS| replace:: :abbr:`SAS (Serial Attached SCSI)` .. |SAS| replace:: :abbr:`SAS (Serial Attached SCSI)`
.. |SATA| replace:: :abbr:`SATA (Serial AT Attachment)` .. |SATA| replace:: :abbr:`SATA (Serial AT Attachment)`
.. |SNAT| replace:: :abbr:`SNAT (Source Network Address Translation)`
.. |SNMP| replace:: :abbr:`SNMP (Simple Network Management Protocol)` .. |SNMP| replace:: :abbr:`SNMP (Simple Network Management Protocol)`
.. |SRIOV| replace:: :abbr:`SR-IOV (Single Root I/O Virtualization)` .. |SRIOV| replace:: :abbr:`SR-IOV (Single Root I/O Virtualization)`
.. |SSD| replace:: :abbr:`SSD (Solid State Drive)` .. |SSD| replace:: :abbr:`SSD (Solid State Drive)`
.. |SSDs| replace:: :abbr:`SSDs (Solid State Drives)`
.. |SSH| replace:: :abbr:`SSH (Secure Shell)` .. |SSH| replace:: :abbr:`SSH (Secure Shell)`
.. |SSL| replace:: :abbr:`SSL (Secure Socket Layer)`
.. |STP| replace:: :abbr:`STP (Spanning Tree Protocol)`
.. |TPM| replace:: :abbr:`TPM (Trusted Platform Module)`
.. |ToR| replace:: :abbr:`ToR (Top-of-Rack)` .. |ToR| replace:: :abbr:`ToR (Top-of-Rack)`
.. |UDP| replace:: :abbr:`UDP (User Datagram Protocol)` .. |UDP| replace:: :abbr:`UDP (User Datagram Protocol)`
.. |UEFI| replace:: :abbr:`UEFI (Unified Extensible Firmware Interface)`
.. |VF| replace:: :abbr:`VF (Virtual Function)`
.. |VFs| replace:: :abbr:`VFs (Virtual Functions)`
.. |VLAN| replace:: :abbr:`VLAN (Virtual Local Area Network)` .. |VLAN| replace:: :abbr:`VLAN (Virtual Local Area Network)`
.. |VLANs| replace:: :abbr:`VLANs (Virtual Local Area Networks)`
.. |VM| replace:: :abbr:`VM (Virtual Machine)` .. |VM| replace:: :abbr:`VM (Virtual Machine)`
.. |VMs| replace:: :abbr:`VMs (Virtual Machines)` .. |VMs| replace:: :abbr:`VMs (Virtual Machines)`
.. |VNC| replace:: :abbr:`VNC (Virtual Network Computing)` .. |VNC| replace:: :abbr:`VNC (Virtual Network Computing)`
.. |VPC| replace:: :abbr:`VPC (Virtual Port Channel)`
.. |VXLAN| replace:: :abbr:`VXLAN (Virtual eXtensible Local Area Network)` .. |VXLAN| replace:: :abbr:`VXLAN (Virtual eXtensible Local Area Network)`
.. |VXLANs| replace:: :abbr:`VXLANs (Virtual eXtensible Local Area Networks)`