aboutsummaryrefslogtreecommitdiffstats
path: root/docs/reference/cmdreference/ip/ip.rst
blob: 32cc30c4275183f96b0db48c0ad469c1692edefa (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
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>`_