Note

For a complete list of CLI Debug commands refer to the Debug CLI section of the Source Code Documents .

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:

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:

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:

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:

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:

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:

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:

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

Show IP Arp

Show IP-Arp

Show IP Fib

Show IP-Fib