docs: add useful debug CLI

Change-Id: I5ef9ecd741f1623ae1b7a23fa0a4fa6db7e243a3
Signed-off-by: Scott Keeler <skeeler@cisco.com>
This commit is contained in:
Scott Keeler
2018-10-23 15:16:46 -04:00
committed by Damjan Marion
parent 8a6928938c
commit 70f28fc4b8
16 changed files with 1058 additions and 249 deletions

View File

@ -1,55 +1,60 @@
.. _cmdreference:
Command Line Reference
======================
This is a reference guide for the vpp debug commands that are referenced in the within these documents. This is **NOT** a complete list. For a complete list refer to the Debug CLI section of the
Useful Debug CLI
==================
This is a reference guide for the vpp debug commands that are referenced within these documents. This is **NOT** a complete list. For a complete list refer to the Debug CLI section of the
`Source Code Documents <https://docs.fd.io/vpp/18.07/clicmd.html>`_.
The debug CLI can be executed from a su shell using the vppctl command.
The debug CLI can be executed from an su shell using the vppctl command.
.. code-block:: console
# sudo bash
# vppctl show interface
Name Idx State Counter Count
Name Idx State Counter Count
TenGigabitEthernet86/0/0 1 up rx packets 6569213
rx bytes 9928352943
tx packets 50384
tx bytes 3329279
TenGigabitEthernet86/0/1 2 down
TenGigabitEthernet86/0/1 2 down
VirtualEthernet0/0/0 3 up rx packets 50384
rx bytes 3329279
tx packets 6569213
tx bytes 9928352943
drops 1498
local0 0 down
local0 0 down
Commands can also be executed from the vppct shell.
.. code-block:: console
# vppctl
_______ _ _ _____ ___
_______ _ _ _____ ___
__/ __/ _ \ (_)__ | | / / _ \/ _ \
_/ _// // / / / _ \ | |/ / ___/ ___/
/_/ /____(_)_/\___/ |___/_/ /_/
vpp# show interface
Name Idx State Counter Count
/_/ /____(_)_/\___/ |___/_/ /_/
vpp# show interface
Name Idx State Counter Count
TenGigabitEthernet86/0/0 1 up rx packets 6569213
rx bytes 9928352943
tx packets 50384
tx bytes 3329279
TenGigabitEthernet86/0/1 2 down
TenGigabitEthernet86/0/1 2 down
VirtualEthernet0/0/0 3 up rx packets 50384
rx bytes 3329279
tx packets 6569213
tx bytes 9928352943
drops 1498
local0 0 down
local0 0 down
.. toctree::
:maxdepth: 3
interface/index.rst
ip/index.rst
show/index.rst
trace/index.rst
vhost/index.rst

View File

@ -1,15 +1,22 @@
.. _intcommands:
Interface Commands
==================
.. _interface:
.. toctree::
Basic Interface Commands
=========================
There are several commands that are associated to Basic Interface:
* `Show Interface`_
* `Clear Interfaces`_
.. note:: For a complete list of CLI Debug commands refer to the Debug CLI section of the `Source Code Documents <https://docs.fd.io/vpp/18.07/clicmd.html>`_ .
.. _showintcommand:
Show Interface
==============
Shows software interface information including counters and features
++++++++++++++++
Shows software interface information including counters and features.
Summary/Usage
-------------
@ -26,18 +33,18 @@ Example of how to show the interface counters:
.. code-block:: console
vpp# show int
Name Idx State Counter Count
Name Idx State Counter Count
TenGigabitEthernet86/0/0 1 up rx packets 6569213
rx bytes 9928352943
tx packets 50384
tx bytes 3329279
TenGigabitEthernet86/0/1 2 down
TenGigabitEthernet86/0/1 2 down
VirtualEthernet0/0/0 3 up rx packets 50384
rx bytes 3329279
tx packets 6569213
tx bytes 9928352943
drops 1498
local0 0 down
local0 0 down
Example of how to display the interface placement:
@ -62,7 +69,7 @@ Example of how to display the interface placement:
VirtualEthernet0/0/13 queue 3 (polling)
Clear Interfaces
================
+++++++++++++++++
Clear the statistics for all interfaces (statistics associated with the
'*show interface*' command).
@ -80,86 +87,3 @@ Example of how to clear the statistics for all interfaces:
.. code-block:: console
vpp# clear interfaces
Set Interface Mac Address
=========================
The '*set interface mac address* ' command allows to set MAC address of
given interface. In case of NIC interfaces the one has to support MAC
address change. A side effect of MAC address change are changes of MAC
addresses in FIB tables (ipv4 and ipv6).
Summary/Usage
-------------
.. code-block:: shell
set interface mac address <interface> <mac-address>.
Examples
--------
Examples of how to change MAC Address of interface:
.. code-block:: console
vpp# set interface mac address GigabitEthernet0/8/0 aa:bb:cc:dd:ee:01
vpp# set interface mac address host-vpp0 aa:bb:cc:dd:ee:02
vpp# set interface mac address tap-0 aa:bb:cc:dd:ee:03
vpp# set interface mac address pg0 aa:bb:cc:dd:ee:04
Set Interface Mtu
=================
.. toctree::
Summary/Usage
-------------
.. code-block:: shell
set interface mtu [packet|ip4|ip6|mpls] <value> <interface>.
Set Interface Promiscuous
=========================
Summary/Usage
-------------
.. code-block:: shell
set interface promiscuous [on|off] <interface>.
.. _setintstate:
Set Interface State
===================
This command is used to change the admin state (up/down) of an
interface.
If an interface is down, the optional '*punt*' flag can also be set. The
'*punt*' flag implies the interface is disabled for forwarding but punt
all traffic to slow-path. Use the '*enable*' flag to clear '*punt*' flag
(interface is still down).
Summary/Usage
-------------
.. code-block:: shell
set interface state <interface> [up|down|punt|enable].
Examples
--------
Example of how to configure the admin state of an interface to **up**:
.. code-block:: console
vpp# set interface state GigabitEthernet2/0/0 up
Example of how to configure the admin state of an interface to **down**:
.. code-block:: console
vpp# set interface state GigabitEthernet2/0/0 down

View File

@ -0,0 +1,222 @@
.. _interface:
.. toctree::
Create Interfaces Commands
===========================
This section contains those interface commands that are associated to creating an interface:
* `Create Host-Interface`_
* `Create Interface Memif`_
* `Create Loopback Interface`_
* `Create Sub-Interfaces`_
.. note:: For a complete list of CLI Debug commands refer to the Debug CLI section of the `Source Code Documents <https://docs.fd.io/vpp/18.07/clicmd.html>`_ .
Create Host-Interface
++++++++++++++++++++++
Summary/Usage
-------------
create host-interface name <*ifname*> [*hw-addr <*mac-addr*>]
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.
This command has the following optional parameters:
hw-addr <*mac-addr*> - Optional ethernet address, can be in either X:X:X:X:X:X unix or X.X.X cisco format
Example Usage
-------------
Example of how to create a host interface tied to one side of an existing linux veth pair named vpp1:
.. code-block:: console
vpp# create host-interface name vpp1
host-vpp1
Once the host interface is created, enable the interface using:
.. code-block:: console
vpp# set interface state host-vpp1 up
Declaration and Implementation
-------------------------------
**Declaration:** af_packet_create_command (src/vnet/devices/af_packet/cli.c line 133)
**Implementation:** af_packet_create_command_fn
Create Interface Memif
+++++++++++++++++++++++
Summary/Usage
-------------
create interface memif [id <*id*>] [socket-id <*socket-id*>] [ring-size <*size*>] [buffer-size <*size*>] [hw-addr <*mac-address*>] <master|slave> [rx-queues <*number*>] [tx-queues <*number*>] [mode ip] [secret <*string*>]
Declaration and Implementation
-------------------------------
**Declaration:** memif_create_command (src/plugins/memif/cli.c line 258)
**Implementation:** memif_create_command_fn
Create Loopback Interface
++++++++++++++++++++++++++
Summary/Usage
--------------
create loopback interface [mac <*mac-addr*>] [instance <*instance*>]
Description
------------
Create a loopback interface. Optionally, a MAC Address can be provided. If not provided, de:ad:00:00:00:<*loopId*> will be used.
Example Usage
--------------
The following two command syntaxes are equivalent:
.. code-block:: console
vpp# loopback create-interface [mac <*mac-addr*>] [instance <*instance*>]
vpp# create loopback interface [mac <*mac-addr*>] [instance <*instance*>]
Example of how to create a loopback interface:
.. code-block:: console
vpp# create loopback interface
Declaration and Implementation
-------------------------------
**Declaration:** create_loopback_interface_command (src/vnet/ethernet/interface.c line 879)
**Implementation:** create_simulated_ethernet_interfaces
Create Sub-Interfaces
++++++++++++++++++++++
This command is used to add VLAN IDs to interfaces, also known as
subinterfaces. The primary input to this command is the *interface*
and *subId* (subinterface Id) parameters. If no additional VLAN ID is
provide, the VLAN ID is assumed to be the *subId*. The VLAN ID and
*subId* can be different, but this is not recommended.
This command has several variations:
- **create sub-interfaces** <*interface*> <*subId*> - Create a subinterface
to process packets with a given 802.1q VLAN ID (same value as the
*subId*).
- **create sub-interfaces** <*interface*> <*subId*> default - Adding the
*default* parameter indicates that packets with VLAN IDs that do
not match any other subinterfaces should be sent to this
subinterface.
- **create sub-interfaces** <*interface*> <*subId*> untagged - Adding the
*untagged* parameter indicates that packets no VLAN IDs should be
sent to this subinterface.
- **create sub-interfaces** <*interface*> <*subId*>-<*subId*> - Create a
range of subinterfaces to handle a range of VLAN IDs.
- **create sub-interfaces** <*interface*> <*subId*> dot1q|dot1ad <*vlanId*>|any
[exact-match] - Use this command to specify the outer VLAN ID, to
either be explicited or to make the VLAN ID different from the
*subId*.
- **create sub-interfaces** <*interface*> <*subId*> dot1q|dot1ad <*vlanId*>|any
inner-dot1q <*vlanId*>|any [exact-match] - Use this command to
specify the outer VLAN ID and the innner VLAN ID.
When *dot1q* or *dot1ad* is explictly entered, subinterfaces can be
configured as either *exact-match* or *non-exact match*. *Non-exact match* is
the CLI default. If *exact-match* is specified, packets must have the
same number of VLAN tags as the configuration. For *non-exact-match*,
packets must at least that number of tags. L3 (routed) interfaces must
be configured as exact-match. L2 interfaces are typically configured as
non-exact-match. If *dot1q* or *dot1ad* is NOT entered, then the
default behavior is *exact-match*.
Use the **show interface** command to display all subinterfaces.
Summary/Usage
-------------
.. code-block:: shell
create sub-interfaces <interface> {<subId> [default|untagged]} | {<subId>-<subId>} | {<subId> dot1q|dot1ad <vlanId>|any [inner-dot1q <vlanId>|any] [exact-match]}
Example Usage
--------------
Example of how to create a VLAN subinterface 11 to process packets on 802.1q VLAN ID 11:
.. code-block:: console
vpp# create sub-interfaces GigabitEthernet2/0/0 11
The previous example is shorthand and is equivalent to:
.. code-block:: console
vpp# create sub-interfaces GigabitEthernet2/0/0 11 dot1q 11 exact-match
Example of how to create a subinterface number that is different from the VLAN ID:
.. code-block:: console
vpp# create sub-interfaces GigabitEthernet2/0/0 11 dot1q 100
Examples of how to create q-in-q and q-in-any subinterfaces:
.. code-block:: console
vpp# create sub-interfaces GigabitEthernet2/0/0 11 dot1q 100 inner-dot1q 200
vpp# create sub-interfaces GigabitEthernet2/0/0 12 dot1q 100 inner-dot1q any
Examples of how to create dot1ad interfaces:
.. code-block:: console
vpp# create sub-interfaces GigabitEthernet2/0/0 11 dot1ad 11
vpp# create sub-interfaces GigabitEthernet2/0/0 12 dot1ad 100 inner-dot1q 200
Examples of *exact-match* versus non-exact match. A packet with outer VLAN 100 and inner VLAN 200 would match this interface, because the default is non-exact match:
.. code-block:: console
vpp# create sub-interfaces GigabitEthernet2/0/0 5 dot1q 100
However, the same packet would NOT match this interface because *exact-match* is specified and only one VLAN is configured, but packet contains two VLANs:
.. code-block:: console
vpp# create sub-interfaces GigabitEthernet2/0/0 5 dot1q 100 exact-match
Example of how to created a subinterface to process untagged packets:
.. code-block:: console
vpp# create sub-interfaces GigabitEthernet2/0/0 5 untagged
Example of how to created a subinterface to process any packet with a VLAN ID that does not match any other subinterface:
.. code-block:: console
vpp# create sub-interfaces GigabitEthernet2/0/0 7 default
When subinterfaces are created, they are in the down state. Example of how to enable a newly created subinterface:
.. code-block:: console
vpp# set interface GigabitEthernet2/0/0.7 up

View File

@ -1,32 +1,87 @@
.. _hardwarecommands:
.. _interface:
.. toctree::
Hardware-Interfaces Commands
=============================
This section contains those interface commands that are related to hardware-interfaces:
* `Show Bridge-Domain`_
* `Show Hardware-Interfaces`_
* `Clear Hardware-Interfaces`_
.. note:: For a complete list of CLI Debug commands refer to the Debug CLI section of the `Source Code Documents <https://docs.fd.io/vpp/18.07/clicmd.html>`_ .
Show Bridge-Domain
+++++++++++++++++++
Summary/Usage
--------------
show bridge-domain [*bridge-domain-id* [detail|int|arp| *bd-tag* ]]
Description
------------
Show a summary of all the bridge-domain instances or detailed view of a single bridge-domain. Bridge-domains are created by adding an interface to a bridge using the **set interface l2 bridge** command.
Example Usage
--------------
.. code-block:: console
Example of displaying all bridge-domains:
vpp# show bridge-domain
ID Index Learning U-Forwrd UU-Flood Flooding ARP-Term BVI-Intf
0 0 off off off off off local0
200 1 on on on on off N/A
Example of displaying details of a single bridge-domains:
vpp# show bridge-domain 200 detail
ID Index Learning U-Forwrd UU-Flood Flooding ARP-Term BVI-Intf
200 1 on on on on off N/A
Interface Index SHG BVI VLAN-Tag-Rewrite
GigabitEthernet0/8/0.200 3 0 - none
GigabitEthernet0/9/0.200 4 0 - none
Declaration and Implementation
-------------------------------
**Declaration:** bd_show_cli (src/vnet/l2/l2_bd.c line 1151)
**Implementation:** bd_show
Show Hardware-Interfaces
========================
+++++++++++++++++++++++++
Display more detailed information about all or a list of given
interfaces. The verboseness of the output can be controlled by the
following optional parameters:
- brief: Only show name, index and state (default for bonded
- **brief**: Only show name, index and state (default for bonded
interfaces).
- verbose: Also display additional attributes (default for all other
- **verbose**: Also display additional attributes (default for all other
interfaces).
- detail: Also display all remaining attributes and extended
- **detail**: Also display all remaining attributes and extended
statistics.
**To limit the output of the command to bonded interfaces and their
slave interfaces, use the '*bond*' optional parameter.**
.. note::
To limit the output of the command to bonded interfaces and their
slave interfaces, use the '*bond*' optional parameter.
Summary/Usage
-------------
--------------
.. code-block:: shell
show hardware-interfaces [brief|verbose|detail] [bond] [<interface> [<interface> [..]]] [<sw_idx> [<sw_idx> [..]]].
Examples
--------
---------
Example of how to display default data for all interfaces:
.. code-block:: console
@ -56,7 +111,7 @@ Example of how to display default data for all interfaces:
local0 0 down local0
local
Example of how to display '*verbose*' data for an interface by name and software index (where 2 is the software index):
Example of how to display *verbose* data for an interface by name and software index (where 2 is the software index):
.. code-block:: console
@ -76,10 +131,10 @@ Example of how to display '*verbose*' data for an interface by name and software
cpu socket 0
Clear Hardware-Interfaces
=========================
+++++++++++++++++++++++++++
Clear the extended statistics for all or a list of given interfaces
(statistics associated with the '*show hardware-interfaces*' command).
(statistics associated with the **show hardware-interfaces** command).
Summary/Usage
@ -88,7 +143,7 @@ Summary/Usage
.. code-block:: shell
clear hardware-interfaces [<interface> [<interface> [..]]] [<sw_idx> [<sw_idx> [..]]].
Examples
--------
@ -100,7 +155,7 @@ Example of how to clear the extended statistics for all interfaces:
vpp# clear hardware-interfaces
Example of how to clear the extended statistics for an interface by name and software index (where 2 is the software index):
Example of how to clear the extended statistics for an interface by name and software index (where 2 is the software index):
.. code-block:: console

View File

@ -1,10 +1,17 @@
.. _interfacecommands:
.. _interface:
.. note:: For a complete list of CLI Debug commands refer to the Debug CLI section of the `Source Code Documents <https://docs.fd.io/vpp/18.07/clicmd.html>`_ .
.. _intcommands:
Interface Commands
==================
This section identifies the following types of interface commands:
.. toctree::
:maxdepth: 2
basic
hardware
interface
subinterface
create_interface
setinterface

View File

@ -0,0 +1,187 @@
.. _interface:
.. toctree::
Set Interface Commands
=======================
This section covers those commands that are related to setting an interface:
* `Set Interface`_
* `Set Interface IP Address`_
* `Set Interface L2 Bridge`_
* `Set Interface Mtu`_
* `Set Interface Promiscuous`_
* `Set Interface State`_
.. note:: For a complete list of CLI Debug commands refer to the Debug CLI section of the `Source Code Documents <https://docs.fd.io/vpp/18.07/clicmd.html>`_ .
Set Interface
++++++++++++++++
Summary/Usage
-------------
Interface commands.
Declaration and Implementation
-------------------------------
**Declaration:** vnet_cli_set_interface_command (src/vnet/interface_cli.c line 484)
Set Interface IP Address
+++++++++++++++++++++++++
Summary/Usage
-------------
set interface ip address [del] <*interface*> <*ip-addr*>/<*mask*> | [all]
Description
-------------
Add an IP Address to an interface or remove and IP Address from an interface. The IP Address can be an IPv4 or an IPv6 address. Interfaces may have multiple IPv4 and IPv6 addresses. There is no concept of primary vs. secondary interface addresses; they're just addresses.
To display the addresses associated with a given interface, use the command **show interface address** <*interface*>.
.. note::
The debug CLI does not enforce classful mask-width / addressing constraints.
Example Usage
--------------
An example of how to add an IPv4 address to an interface:
.. code-block:: console
vpp# set interface ip address GigabitEthernet2/0/0 172.16.2.12/24
An example of how to add an IPv6 address to an interface:
.. code-block:: console
vpp# set interface ip address GigabitEthernet2/0/0 ::a:1:1:0:7/126
To delete a specific interface ip address:
.. code-block:: console
vpp# set interface ip address GigabitEthernet2/0/0 172.16.2.12/24 del
To delete all interfaces addresses (IPv4 and IPv6):
.. code-block:: console
vpp# set interface ip address GigabitEthernet2/0/0 del all
Declaration and Implementation
-------------------------------
**Declaration:** set_interface_ip_address_command (src/vnet/ip/ip46_cli.c line 216)
**Implementation:** add_del_ip_address
Set Interface L2 Bridge
+++++++++++++++++++++++++
Summary/Usage
-------------
set interface l2 bridge <*interface*> <*bridge-domain-id*> [bvi|uu-fwd] [shg]
Description
-------------
Use this command put an interface into Layer 2 bridge domain. If a bridge-domain with the provided bridge-domain-id does not exist, it will be created. Interfaces in a bridge-domain forward packets to other interfaces in the same bridge-domain based on destination mac address. To remove an interface from a the Layer 2 bridge domain, put the interface in a different mode, for example Layer 3 mode.
Optionally, an interface can be added to a Layer 2 bridge-domain as a Bridged Virtual Interface (bvi). Only one interface in a Layer 2 bridge-domain can be a bvi.
Optionally, a split-horizon group can also be specified. This defaults to 0 if not specified.
Example Usage
--------------
Example of how to configure a Layer 2 bridge-domain with three interfaces (where 200 is the bridge-domain-id):
.. code-block:: console
vpp# set interface l2 bridge GigabitEthernet0/8/0.200 200
This interface is added a BVI interface:
.. code-block:: console
vpp# set interface l2 bridge GigabitEthernet0/9/0.200 200 bvi
This interface also has a split-horizon group of 1 specified:
.. code-block:: console
vpp# set interface l2 bridge GigabitEthernet0/a/0.200 200 1
Example of how to remove an interface from a Layer2 bridge-domain:
.. code-block:: console
vpp# set interface l3 GigabitEthernet0/a/0.200
Declaration and Implementation
-------------------------------
**Declaration:** int_l2_bridge_cli (src/vnet/l2/l2_input.c line 949)
**Implementation:** int_l2_bridge
Set Interface Mtu
++++++++++++++++++
Summary/Usage
-------------
.. code-block:: shell
set interface mtu [packet|ip4|ip6|mpls] <value> <interface>
Set Interface Promiscuous
++++++++++++++++++++++++++
Summary/Usage
-------------
.. code-block:: shell
set interface promiscuous [on|off] <interface>.
.. _setintstate:
Set Interface State
++++++++++++++++++++
This command is used to change the admin state (up/down) of an
interface.
If an interface is down, the optional *punt* flag can also be set. The
*punt* flag implies the interface is disabled for forwarding but punt
all traffic to slow-path. Use the *enable* flag to clear *punt* flag
(interface is still down).
Summary/Usage
-------------
.. code-block:: shell
set interface state <interface> [up|down|punt|enable].
Example Usage
----------------
Example of how to configure the admin state of an interface to **up**:
.. code-block:: console
vpp# set interface state GigabitEthernet2/0/0 up
Example of how to configure the admin state of an interface to **down**:
.. code-block:: console
vpp# set interface state GigabitEthernet2/0/0 down

View File

@ -1,117 +0,0 @@
.. _subinterfacecommands:
.. toctree::
Create Sub-Interfaces
=====================
This command is used to add VLAN IDs to interfaces, also known as
subinterfaces. The primary input to this command is the '*interface*'
and '*subId*' (subinterface Id) parameters. If no additional VLAN ID is
provide, the VLAN ID is assumed to be the '*subId*'. The VLAN ID and
'*subId*' can be different, but this is not recommended.
This command has several variations:
- **create sub-interfaces <interface> <subId>** - Create a subinterface
to process packets with a given 802.1q VLAN ID (same value as the
'*subId*').
- **create sub-interfaces <interface> <subId> default** - Adding the
'*default*' parameter indicates that packets with VLAN IDs that do
not match any other subinterfaces should be sent to this
subinterface.
- **create sub-interfaces <interface> <subId> untagged** - Adding the
'*untagged*' parameter indicates that packets no VLAN IDs should be
sent to this subinterface.
- **create sub-interfaces <interface> <subId>-<subId>** - Create a
range of subinterfaces to handle a range of VLAN IDs.
- **create sub-interfaces <interface> <subId> dot1q|dot1ad <vlanId>|any
[exact-match]** - Use this command to specify the outer VLAN ID, to
either be explicited or to make the VLAN ID different from the
'*subId*'.
- **create sub-interfaces <interface> <subId> dot1q|dot1ad <vlanId>|any
inner-dot1q <vlanId>|any [exact-match]** - Use this command to
specify the outer VLAN ID and the innner VLAN ID.
When '*dot1q*' or '*dot1ad*' is explictly entered, subinterfaces can be
configured as either exact-match or non-exact match. Non-exact match is
the CLI default. If '*exact-match*' is specified, packets must have the
same number of VLAN tags as the configuration. For non-exact-match,
packets must at least that number of tags. L3 (routed) interfaces must
be configured as exact-match. L2 interfaces are typically configured as
non-exact-match. If '*dot1q*' or '*dot1ad*' is NOT entered, then the
default behavior is exact-match.
Use the '*show interface*' command to display all subinterfaces.
Summary/Usage
-------------
.. code-block:: shell
create sub-interfaces <interface> {<subId> [default|untagged]} | {<subId>-<subId>} | {<subId> dot1q|dot1ad <vlanId>|any [inner-dot1q <vlanId>|any] [exact-match]}.
Examples
--------
Example of how to create a VLAN subinterface 11 to process packets on 802.1q VLAN ID 11:
.. code-block:: console
vpp# create sub-interfaces GigabitEthernet2/0/0 11
The previous example is shorthand and is equivalent to:
.. code-block:: console
vpp# create sub-interfaces GigabitEthernet2/0/0 11 dot1q 11 exact-match
Example of how to create a subinterface number that is different from the VLAN ID:
.. code-block:: console
vpp# create sub-interfaces GigabitEthernet2/0/0 11 dot1q 100
Examples of how to create q-in-q and q-in-any subinterfaces:
.. code-block:: console
vpp# create sub-interfaces GigabitEthernet2/0/0 11 dot1q 100 inner-dot1q 200
vpp# create sub-interfaces GigabitEthernet2/0/0 12 dot1q 100 inner-dot1q any
Examples of how to create dot1ad interfaces:
.. code-block:: console
vpp# create sub-interfaces GigabitEthernet2/0/0 11 dot1ad 11
vpp# create sub-interfaces GigabitEthernet2/0/0 12 dot1ad 100 inner-dot1q 200
Examples of '*exact-match*' versus non-exact match. A packet with outer VLAN 100 and inner VLAN 200 would match this interface, because the default is non-exact match:
.. code-block:: console
vpp# create sub-interfaces GigabitEthernet2/0/0 5 dot1q 100
However, the same packet would NOT match this interface because '*exact-match*' is specified and only one VLAN is configured, but packet contains two VLANs:
.. code-block:: console
vpp# create sub-interfaces GigabitEthernet2/0/0 5 dot1q 100 exact-match
Example of how to created a subinterface to process untagged packets:
.. code-block:: console
vpp# create sub-interfaces GigabitEthernet2/0/0 5 untagged
Example of how to created a subinterface to process any packet with a VLAN ID that does not match any other subinterface:
.. code-block:: console
vpp# create sub-interfaces GigabitEthernet2/0/0 7 default
When subinterfaces are created, they are in the down state. Example of how to enable a newly created subinterface:
.. code-block:: console
vpp# set interface GigabitEthernet2/0/0.7 up

View File

@ -0,0 +1,12 @@
.. ip:
.. note:: For a complete list of CLI Debug commands refer to the Debug CLI section of the `Source Code Documents <https://docs.fd.io/vpp/18.07/clicmd.html>`_ .
IP Commands
============
This section identifies the following types of IP commands:
.. toctree::
:maxdepth: 2
ip

View File

@ -0,0 +1,145 @@
.. _ip1:
.. toctree::
.. note:: For a complete list of CLI Debug commands refer to the Debug CLI section of the `Source Code Documents <https://docs.fd.io/vpp/18.07/clicmd.html>`_ .
IP Route
==========
Summary/Usage
--------------
`ip route [add|del] [count <*n*>] <*dst-ip-addr*>/<*width*> [table <*table-id*>] via [next-hop-address] [next-hop-interface] [next-hop-table <*value*>] [weight <*value*>] [preference <*value*>] [udp-encap-id <*value*>] [ip4-lookup-in-table <*value*>] [ip6-lookup-in-table <*value*>] [mpls-lookup-in-table <*value*>] [resolve-via-host] [resolve-via-connected] [rx-ip4 <*interface*>] [out-labels <*value value value*>]`
Description
------------
This command is used to add or delete IPv4 or IPv6 routes. All IP Addresses ('<*dst-ip-addr*>/<*width*>', '<*next-hop-ip-addr*>' and '<*adj-hop-ip-addr*>') can be IPv4 or IPv6, but all must be of the same form in a single command. To display the current set of routes, use the commands 'show ip fib' and 'show ip6 fib'.
Example Usage
--------------
Example of how to add a straight forward static route:
.. code-block:: console
vpp# ip route add 6.0.1.2/32 via 6.0.0.1 GigabitEthernet2/0/0
Example of how to delete a straight forward static route:
.. code-block:: console
vpp# ip route del 6.0.1.2/32 via 6.0.0.1 GigabitEthernet2/0/0
Mainly for route add/del performance testing, one can add or delete multiple routes by adding 'count N' to the previous item:
.. code-block:: console
vpp# ip route add count 10 7.0.0.0/24 via 6.0.0.1 GigabitEthernet2/0/0
Add multiple routes for the same destination to create equal-cost multipath:
.. code-block:: console
vpp# ip route add 7.0.0.1/32 via 6.0.0.1 GigabitEthernet2/0/0
vpp# ip route add 7.0.0.1/32 via 6.0.0.2 GigabitEthernet2/0/0
For unequal-cost multipath, specify the desired weights. This combination of weights results in 3/4 of the traffic following the second path, 1/4 following the first path:
.. code-block:: console
vpp# ip route add 7.0.0.1/32 via 6.0.0.1 GigabitEthernet2/0/0 weight 1
vpp# ip route add 7.0.0.1/32 via 6.0.0.2 GigabitEthernet2/0/0 weight 3
To add a route to a particular FIB table (VRF), use:
.. code-block:: console
vpp# ip route add 172.16.24.0/24 table 7 via GigabitEthernet2/0/0
Declaration and Implementation
---------------------------------
**Declaration:** ip_route_command (src/vnet/ip/lookup.c line 641)
**Implementation:** vnet_ip_route_cmd
Ping
=====
Summary/Usage
--------------
ping {<*ip-addr*> | ipv4 <*ip4-addr*> | ipv6 <*ip6-addr*>} [ipv4 <*ip4-addr*> | ipv6 <*ip6-addr*>] [source <*interface*>] [size <*pktsize*>] [interval <*sec*>] [repeat <*cnt*>] [table-id <*id*>] [verbose]
Description
------------
This command sends an ICMP ECHO_REQUEST to network hosts. The address can be an IPv4 or IPv6 address (or both at the same time).
Example Usage
--------------
Example of how ping an IPv4 address:
.. code-block:: console
vpp# ping 172.16.1.2 source GigabitEthernet2/0/0 repeat 2
64 bytes from 172.16.1.2: icmp_seq=1 ttl=64 time=.1090 ms
64 bytes from 172.16.1.2: icmp_seq=2 ttl=64 time=.0914 ms
Statistics: 2 sent, 2 received, 0% packet loss
Example of how ping both an IPv4 address and IPv6 address at the same time:
vpp# ping 172.16.1.2 ipv6 fe80::24a5:f6ff:fe9c:3a36 source GigabitEthernet2/0/0 repeat 2 verbose
Adjacency index: 10, sw_if_index: 1
Adj: ip6-discover-neighbor
Adj Interface: 0
Forced set interface: 1
Adjacency index: 0, sw_if_index: 4294967295
Adj: ip4-miss
Adj Interface: 0
Forced set interface: 1
Source address: 172.16.1.1
64 bytes from 172.16.1.2: icmp_seq=1 ttl=64 time=.1899 ms
Adjacency index: 10, sw_if_index: 1
Adj: ip6-discover-neighbor
Adj Interface: 0
Forced set interface: 1
Adjacency index: 0, sw_if_index: 4294967295
Adj: ip4-miss
Adj Interface: 0
Forced set interface: 1
Source address: 172.16.1.1
64 bytes from 172.16.1.2: icmp_seq=2 ttl=64 time=.0910 ms
Statistics: 4 sent, 2 received, 50% packet loss
Declaration and Implementation
-------------------------------
Declaration: ping_command (src/vnet/ip/ping.c line 899)
Implementation: ping_ip_address
Set Interface IP Address
=========================
`Set Interface IP Address <../interface/setinterface.html#set-interface-ip-address>`_
Show IP Arp
=============
`Show IP-Arp <../show/show.html#show-ip-arp>`_
Show IP Fib
============
`Show IP-Fib <../show/show.html#show-ip-fib>`_

View File

@ -0,0 +1,12 @@
.. _interface:
.. note:: For a complete list of CLI Debug commands refer to the Debug CLI section of the `Source Code Documents <https://docs.fd.io/vpp/18.07/clicmd.html>`_ .
Show Commands
==================
This section identifies the following types of show commands:
.. toctree::
:maxdepth: 2
show

View File

@ -0,0 +1,283 @@
.. _interface:
.. toctree::
.. note:: For a complete list of CLI Debug commands refer to the Debug CLI section of the `Source Code Documents <https://docs.fd.io/vpp/18.07/clicmd.html>`_ .
Show Bridge-Domain
===================
`Show Bridge-Domain <../interface/hardware.html#show-bridge-domain>`_
Show Interface
================
`Show Interface <../interface/basic.html#show-interface>`_
Show IP Arp
============
Summary/Usage
---------------
show ip arp
Description
------------
Display all the IPv4 ARP entries.
Example Usage
--------------
Example of how to display the IPv4 ARP table:
.. code-block:: console
vpp# **show ip arp**
Time FIB IP4 Flags Ethernet Interface
346.3028 0 6.1.1.3 de:ad:be:ef:ba:be GigabitEthernet2/0/0
3077.4271 0 6.1.1.4 S de:ad:be:ef:ff:ff GigabitEthernet2/0/0
2998.6409 1 6.2.2.3 de:ad:be:ef:00:01 GigabitEthernet2/0/0
Proxy arps enabled for:
Fib_index 0 6.0.0.1 - 6.0.0.11
Declaration and Implementation
-------------------------------
**Declaration:** show_ip4_arp_command (src/vnet/ethernet/arp.c line 1465)
**Implementation:** show_ip4_arp
Show IP Fib
=============
Summary/Usage
---------------
show ip fib [summary] [table <*table-id*>] [index <*fib-id*>] [<*ip4-addr*>[/<*mask*>]] [mtrie] [detail]
Description
------------
This command displays the IPv4 FIB Tables (VRF Tables) and the route entries for each table.
.. note::
This command will run for a long time when the FIB tables are comprised of millions of entries. For those senarios, consider displaying a single table or summary mode.
Example Usage
--------------
Example of how to display all the IPv4 FIB tables:
.. code-block:: console
vpp# **show ip fib**
ipv4-VRF:0, fib_index 0, flow hash: src dst sport dport proto
0.0.0.0/0
unicast-ip4-chain
[@0]: dpo-load-balance: [index:0 buckets:1 uRPF:0 to:[0:0]]
[0] [@0]: dpo-drop ip6
0.0.0.0/32
unicast-ip4-chain
[@0]: dpo-load-balance: [index:1 buckets:1 uRPF:1 to:[0:0]]
[0] [@0]: dpo-drop ip6
6.0.1.2/32
unicast-ip4-chain
[@0]: dpo-load-balance: [index:30 buckets:1 uRPF:29 to:[0:0]]
[0] [@3]: arp-ipv4: via 6.0.0.1 af_packet0
7.0.0.1/32
unicast-ip4-chain
[@0]: dpo-load-balance: [index:31 buckets:4 uRPF:30 to:[0:0]]
[0] [@3]: arp-ipv4: via 6.0.0.2 af_packet0
[1] [@3]: arp-ipv4: via 6.0.0.2 af_packet0
[2] [@3]: arp-ipv4: via 6.0.0.2 af_packet0
[3] [@3]: arp-ipv4: via 6.0.0.1 af_packet0
224.0.0.0/8
unicast-ip4-chain
[@0]: dpo-load-balance: [index:3 buckets:1 uRPF:3 to:[0:0]]
[0] [@0]: dpo-drop ip6
240.0.0.0/8
unicast-ip4-chain
[@0]: dpo-load-balance: [index:2 buckets:1 uRPF:2 to:[0:0]]
[0] [@0]: dpo-drop ip6
255.255.255.255/32
unicast-ip4-chain
[@0]: dpo-load-balance: [index:4 buckets:1 uRPF:4 to:[0:0]]
[0] [@0]: dpo-drop ip6
ipv4-VRF:7, fib_index 1, flow hash: src dst sport dport proto
0.0.0.0/0
unicast-ip4-chain
[@0]: dpo-load-balance: [index:12 buckets:1 uRPF:11 to:[0:0]]
[0] [@0]: dpo-drop ip6
0.0.0.0/32
unicast-ip4-chain
[@0]: dpo-load-balance: [index:13 buckets:1 uRPF:12 to:[0:0]]
[0] [@0]: dpo-drop ip6
172.16.1.0/24
unicast-ip4-chain
[@0]: dpo-load-balance: [index:17 buckets:1 uRPF:16 to:[0:0]]
[0] [@4]: ipv4-glean: af_packet0
172.16.1.1/32
unicast-ip4-chain
[@0]: dpo-load-balance: [index:18 buckets:1 uRPF:17 to:[1:84]]
[0] [@2]: dpo-receive: 172.16.1.1 on af_packet0
172.16.1.2/32
unicast-ip4-chain
[@0]: dpo-load-balance: [index:21 buckets:1 uRPF:20 to:[0:0]]
[0] [@5]: ipv4 via 172.16.1.2 af_packet0: IP4: 02:fe:9e:70:7a:2b -> 26:a5:f6:9c:3a:36
172.16.2.0/24
unicast-ip4-chain
[@0]: dpo-load-balance: [index:19 buckets:1 uRPF:18 to:[0:0]]
[0] [@4]: ipv4-glean: af_packet1
172.16.2.1/32
unicast-ip4-chain
[@0]: dpo-load-balance: [index:20 buckets:1 uRPF:19 to:[0:0]]
[0] [@2]: dpo-receive: 172.16.2.1 on af_packet1
224.0.0.0/8
unicast-ip4-chain
[@0]: dpo-load-balance: [index:15 buckets:1 uRPF:14 to:[0:0]]
[0] [@0]: dpo-drop ip6
240.0.0.0/8
unicast-ip4-chain
[@0]: dpo-load-balance: [index:14 buckets:1 uRPF:13 to:[0:0]]
[0] [@0]: dpo-drop ip6
255.255.255.255/32
unicast-ip4-chain
[@0]: dpo-load-balance: [index:16 buckets:1 uRPF:15 to:[0:0]]
[0] [@0]: dpo-drop ip6
Example of how to display a single IPv4 FIB table:
.. code-block:: console
vpp# **show ip fib table 7**
ipv4-VRF:7, fib_index 1, flow hash: src dst sport dport proto
0.0.0.0/0
unicast-ip4-chain
[@0]: dpo-load-balance: [index:12 buckets:1 uRPF:11 to:[0:0]]
[0] [@0]: dpo-drop ip6
0.0.0.0/32
unicast-ip4-chain
[@0]: dpo-load-balance: [index:13 buckets:1 uRPF:12 to:[0:0]]
[0] [@0]: dpo-drop ip6
172.16.1.0/24
unicast-ip4-chain
[@0]: dpo-load-balance: [index:17 buckets:1 uRPF:16 to:[0:0]]
[0] [@4]: ipv4-glean: af_packet0
172.16.1.1/32
unicast-ip4-chain
[@0]: dpo-load-balance: [index:18 buckets:1 uRPF:17 to:[1:84]]
[0] [@2]: dpo-receive: 172.16.1.1 on af_packet0
172.16.1.2/32
unicast-ip4-chain
[@0]: dpo-load-balance: [index:21 buckets:1 uRPF:20 to:[0:0]]
[0] [@5]: ipv4 via 172.16.1.2 af_packet0: IP4: 02:fe:9e:70:7a:2b -*> 26:a5:f6:9c:3a:36
172.16.2.0/24
unicast-ip4-chain
[@0]: dpo-load-balance: [index:19 buckets:1 uRPF:18 to:[0:0]]
[0] [@4]: ipv4-glean: af_packet1
172.16.2.1/32
unicast-ip4-chain
[@0]: dpo-load-balance: [index:20 buckets:1 uRPF:19 to:[0:0]]
[0] [@2]: dpo-receive: 172.16.2.1 on af_packet1
224.0.0.0/8
unicast-ip4-chain
[@0]: dpo-load-balance: [index:15 buckets:1 uRPF:14 to:[0:0]]
[0] [@0]: dpo-drop ip6
240.0.0.0/8
unicast-ip4-chain
[@0]: dpo-load-balance: [index:14 buckets:1 uRPF:13 to:[0:0]]
[0] [@0]: dpo-drop ip6
255.255.255.255/32
unicast-ip4-chain
[@0]: dpo-load-balance: [index:16 buckets:1 uRPF:15 to:[0:0]]
[0] [@0]: dpo-drop ip6
Example of how to display a summary of all IPv4 FIB tables:
.. code-block:: console
vpp# **show ip fib summary**
ipv4-VRF:0, fib_index 0, flow hash: src dst sport dport proto
Prefix length Count
0 1
8 2
32 4
ipv4-VRF:7, fib_index 1, flow hash: src dst sport dport proto
Prefix length Count
0 1
8 2
24 2
32 4
Declaration and Implementation
-------------------------------
**Declaration:** ip4_show_fib_command (src/vnet/fib/ip4_fib.c line 873)
**Implementation:** ip4_show_fib
Show L2fib
============
Summary/Usage
------------------
show l2fib [all] | [bd_id <*nn*> | bd_index <*nn*>] [learn | add] | [raw]
Description
------------
This command displays the MAC Address entries of the L2 FIB table. Output can be filtered to just get the number of MAC Addresses or display each MAC Address for all bridge domains or just a single bridge domain.
Example Usage
--------------
Example of how to display the number of MAC Address entries in the L2 FIB table:
.. code-block:: console
vpp# **show l2fib**
3 l2fib entries
Example of how to display all the MAC Address entries in the L2 FIB table:
vpp# **show l2fib all**
Mac Address BD Idx Interface Index static filter bvi refresh timestamp
52:54:00:53:18:33 1 GigabitEthernet0/8/0.200 3 0 0 0 0 0
52:54:00:53:18:55 1 GigabitEthernet0/8/0.200 3 1 0 0 0 0
52:54:00:53:18:77 1 N/A -1 1 1 0 0 0
3 l2fib entries
Declaration and Implementation
-------------------------------
**Declaration:** show_l2fib_cli (src/vnet/l2/l2_fib.c line 311)
**Implementation:** show_l2fib
Show Trace
===========
Summary/Usage
--------------
show trace buffer [max COUNT]
Declaration and Implementation
------------------------------
**Declaration:** show_trace_cli (src/vlib/trace.c line 347)
**Implementation:** cli_show_trace_buffer
Show Vhost-User
================
`Show Vhost-User <../vhost/vhostuser.html#show-vhost-user>`_

View File

@ -0,0 +1,12 @@
.. _interface:
.. note:: For a complete list of CLI Debug commands refer to the Debug CLI section of the `Source Code Documents <https://docs.fd.io/vpp/18.07/clicmd.html>`_ .
Trace Commands
===============
This section identifies the following types of trace commands:
.. toctree::
:maxdepth: 2
trace

View File

@ -0,0 +1,58 @@
.. _interface:
.. toctree::
.. note:: For a complete list of CLI Debug commands refer to the Debug CLI section of the `Source Code Documents <https://docs.fd.io/vpp/18.07/clicmd.html>`_ .
API Trace
===========
Summary/Usage
--------------
api trace [on|off][first <*n*>][last <*n*>][status][free][post-mortem-on][dump|custom-dump|save|replay <*file*>]
Description
------------
Display, replay, or save a binary API trace.
Declaration and Implementation
-------------------------------
**Declaration:** api_trace_command (src/vlibmemory/vlib_api_cli.c line 783)
**Implementation:** api_trace_command_fn
Clear Trace
=============
Summary/Usage
--------------
Clear trace buffer and free memory.
Declaration and implementation
**Declaration:** clear_trace_cli (src/vlib/trace.c line 519)
**Implementation:** cli_clear_trace_buffer
Show Trace
===========
`Show Trace <../interface/show.html#show-trace>`_
Trace Add
===========
Summary/Usage
--------------
Trace given number of packets.
Declaration and Implementation
-------------------------------
**Declaration:** add_trace_cli (src/vlib/trace.c line 405)
**Implementation:** cli_add_trace_buffer

View File

@ -1,5 +1,7 @@
.. _vhostcommands:
.. note:: For a complete list of CLI Debug commands refer to the Debug CLI section of the `Source Code Documents <https://docs.fd.io/vpp/18.07/clicmd.html>`_ .
Vhost User Commands
===================

View File

@ -1,7 +1,9 @@
.. _vhostusercommands:
.. vhost:
.. toctree::
.. note:: For a complete list of CLI Debug commands refer to the Debug CLI section of the `Source Code Documents <https://docs.fd.io/vpp/18.07/clicmd.html>`_ .
.. _createvhostuser:
Create Vhost-User
@ -13,7 +15,7 @@ next free index.
There are several parameters associated with a vHost interface:
- **socket <socket-filename>** - Name of the linux socket used by
- **socket <*socket-filename*>** - Name of the linux socket used by
hypervisor and VPP to manage the vHost interface. If in '*server*'
mode, VPP will create the socket if it does not already exist. If in
'*client*' mode, hypervisor will create the socket if it does not
@ -227,10 +229,10 @@ previous example but will include the descriptor table for each queue. The outpu
Virtqueue 1 (RX)
qsz 256 last_avail_idx 0 last_used_idx 0
Debug Vhost-User
================
Turn on/off debug for vhost
Turn on/off debug for vhost.
Summary/Usage
@ -238,8 +240,8 @@ Summary/Usage
.. code-block:: shell
debug vhost-user <on | off>.
debug vhost-user <on | off>
Delete Vhost-User
========================
Delete a vHost User interface using the interface name or the software
@ -252,7 +254,7 @@ Summary/Usage
.. code-block:: shell
delete vhost-user {<interface> | sw_if_index <sw_idx>}.
delete vhost-user {<interface> | sw_if_index <sw_idx>}
Examples
--------

View File

@ -7,8 +7,8 @@ Reference
.. toctree::
:maxdepth: 2
cmdreference/index.rst
vppvagrant/index.rst
jvpp.rst
readthedocs/index.rst
github/index.rst
cmdreference/index.rst