This page explain how to use the SR cli. The example used in the example uses sr-3node.conf configuration file, which is explained in the Configuration ONOS section <LINK>

Show switch information

The folllowing shows all commands that SR cli supports. Among them, we explain show, watch, and configure, which are mainly used for segment routing application.

onos-vm# <tab>
clear      configure  date       enable     exit       history    no         show       trace      watch      
clearterm  connect    echo       end        help       logout     ping       test       version


show switch : show the switches connected to the controller (NOTE: any switch not configured in the config file is not shown)

onos-vm# sh link 
# Src Switch DPID                     Src Port Dst Switch DPID                     Dst Port Type
-|-----------------------------------|--------|-----------------------------------|--------|------
1 00:00:00:00:00:00:00:01 (Dallas-R1) 7        00:00:00:00:00:00:00:02 (Dallas-R2) 3        packet
2 00:00:00:00:00:00:00:02 (Dallas-R2) 1        00:00:00:00:00:00:00:01 (Dallas-R1) 6        packet
3 00:00:00:00:00:00:00:03 (Dallas-R3) 2        00:00:00:00:00:00:00:02 (Dallas-R2) 2        packet


show switch <switch DPID> : shows the detail of the switch

onos-vm# sh switch 00:00:00:00:00:00:00:01 
# Switch DPID             Alias     Connected Since              Connected At      Type   Controller
-|-----------------------|---------|----------------------------|-----------------|------|----------
1 00:00:00:00:00:00:00:01 Dallas-R1 Wed Dec 03 16:06:40 PST 2014 192.168.0.3:52922 packet onos-vm


show switch <switch DPID> table <acl/ip/mpls> : shows the specific table  of the switch

onos-vm# sh switch 00:00:00:00:00:00:00:01 table acl
# Bytes Packets Dur(s) Cookie Priority In Port Src MAC Dst MAC EthType Src IP Dst IP Protocol Src Port Dst Port Instructions
-|-----|-------|------|------|--------|-------|-------|-------|-------|------|------|--------|--------|--------|------------
1 0     0       525    0      0        *       *       *       *       *      *      *        *        *


onos-vm# sh switch 00:00:00:00:00:00:00:01 table ip
# Bytes Packets Dur(s) Cookie Priority Dst IP         Instructions
-|-----|-------|------|------|--------|--------------|-----------------------------------------------------
1 0     0       423    0      65535    192.168.0.2/32 {goto: {tableid: acl}, write: {dec_nw_ttl, group: 1}}
2 0     0       423    0      65535    192.168.0.3/32 {goto: {tableid: acl}, write: {group: 2}}
3 0     0       423    0      49104    7.7.7.0/24     {goto: {tableid: acl}, write: {group: 2}}
4 0     0       444    0      0        *              {goto: {tableid: acl}, write: {output: controller}}
 
onos-vm# sh switch 00:00:00:00:00:00:00:01 table mpls
# Bytes Packets Dur(s) Priority MPLS Label MPLS BOS MPLS TC Instructions
-|-----|-------|------|--------|----------|--------|-------|-----------------------------------------------------------------------------------------------------------------------------------------------
1 0     0       426    65535    102        false    *       {goto: {tableid: acl}, write: {pop_mpls: 0x8847, copy_ttl_in, group: 1, dec_mpls_ttl}}
2 0     0       426    65535    102        true     *       {goto: {tableid: acl}, write: {pop_mpls: 0x800, dec_nw_ttl, copy_ttl_in, group: 1}}
3 0     0       426    65535    103        true     *       {goto: {tableid: acl}, write: {group: 1, dec_mpls_ttl}}
4 0     0       426    65535    103        false    *       {goto: {tableid: acl}, write: {group: 1, dec_mpls_ttl}}
5 0     0       426    65535    101006     true     *       {goto: {tableid: acl}, write: {pop_mpls: 0x800, dst_mac: 00:00:02:02:02:80, dec_nw_ttl, src_mac: 00:00:01:01:01:80, output: 6, copy_ttl_in}}
6 0     0       426    65535    101006     false    *       {goto: {tableid: acl}, write: {dec_mpls_ttl, pop_mpls: 0x8847, dst_mac: 00:00:02:02:02:80, src_mac: 00:00:01:01:01:80, output: 6, copy_ttl_in}}
7 0     0       426    65535    101007     true     *       {goto: {tableid: acl}, write: {pop_mpls: 0x800, dst_mac: 00:00:02:02:02:80, dec_nw_ttl, src_mac: 00:00:01:01:01:80, output: 7, copy_ttl_in}}
8 0     0       426    65535    101007     false    *       {goto: {tableid: acl}, write: {dec_mpls_ttl, pop_mpls: 0x8847, dst_mac: 00:00:02:02:02:80, src_mac: 00:00:01:01:01:80, output: 7, copy_ttl_in}}
9 0     0       447    0        *          *        *       {goto: {tableid: acl}, write: {output: controller}}


show switch <switch DPID> port : show the port information of the switch

 onos-vm# sh switch 00:00:00:00:00:00:00:01 port
# OF Port #     Status Rcv Bytes Rcv Pkts Rcv Errs Rcv Dropped Rcv CRC Rcv Overruns Rcv Frame Errs Xmit Bytes Xmit Pkts Xmit Errs Xmit Dropped Collisions
-|-------------|------|---------|--------|--------|-----------|-------|------------|--------------|----------|---------|---------|------------|----------
1 1 (s1-eth1)   up     480       6        0        0           0       0            0              2948       44        0         0            0
2 2 (s1-eth2)   up     558       7        0        0           0       0            0              2948       44        0         0            0
3 3 (s1-eth3)   up     558       7        0        0           0       0            0              2948       44        0         0            0
4 4 (s1-eth4)   up     558       7        0        0           0       0            0              2948       44        0         0            0
5 5 (s1-eth5)   up     558       7        0        0           0       0            0              2948       44        0         0            0
6 6 (s1-eth6)   up     3015      45       0        0           0       0            0              2948       44        0         0            0
7 7 (s1-eth7)   up     3015      45       0        0           0       0            0              2948       44        0         0            0
8 8 (s1-eth8)   up     3015      45       0        0           0       0            0              2948       44        0         0            0
9 65534 (local) up     0         0        0        0           0       0            0              0          0         0         0            0


show switch <switch DPID> group : show the group information of the switch

onos-vm# sh switch 00:00:00:00:00:00:00:01 group 
# Group Type Group Id Pkts Bytes Bucket Pkts Bucket Bytes Set Src Mac       Set Dst Mac       Push Mpls Set Bos COPY TTL Dec Mpls TTL Outport Group
-|----------|--------|----|-----|-----------|------------|-----------------|-----------------|---------|-------|--------|------------|-------|-----
1 SELECT     1        0    0     0           0            00:00:01:01:01:80 00:00:02:02:02:80                                         6
2 SELECT              0    0     0           0            00:00:01:01:01:80 00:00:02:02:02:80                                         7
3 SELECT     2        0    0     0           0            00:00:01:01:01:80 00:00:02:02:02:80 103       true    True     True         6
4 SELECT              0    0     0           0            00:00:01:01:01:80 00:00:02:02:02:80 103       true    True     True         7

 

show link: show the links discovered by the controller (NOTE: any link not configured in the config file is not shown)

onos-vm# sh link 
# Src Switch DPID                     Src Port Dst Switch DPID                     Dst Port Type
-|-----------------------------------|--------|-----------------------------------|--------|------
1 00:00:00:00:00:00:00:01 (Dallas-R1) 7        00:00:00:00:00:00:00:02 (Dallas-R2) 3        packet
2 00:00:00:00:00:00:00:02 (Dallas-R2) 1        00:00:00:00:00:00:00:01 (Dallas-R1) 6        packet
3 00:00:00:00:00:00:00:03 (Dallas-R3) 2        00:00:00:00:00:00:00:02 (Dallas-R2) 2        packet


watch <any command> : repeats the command every two second. It is useful to see any statistics changes

onos-vm# watch sh switch 00:00:00:00:00:00:00:01 port 
# OF Port #     Status Rcv Bytes Rcv Pkts Rcv Errs Rcv Dropped Rcv CRC Rcv Overruns Rcv Frame Errs Xmit Bytes Xmit Pkts Xmit Errs Xmit Dropped Collisions
-|-------------|------|---------|--------|--------|-----------|-------|------------|--------------|----------|---------|---------|------------|----------
1 1 (s1-eth1)   up     1880      22       0        0           0       0            0              5651       80        0         0            0
2 2 (s1-eth2)   up     600       8        0        0           0       0            0              4531       68        0         0            0
3 3 (s1-eth3)   up     558       7        0        0           0       0            0              4531       68        0         0            0
4 4 (s1-eth4)   up     558       7        0        0           0       0            0              4489       67        0         0            0
5 5 (s1-eth5)   up     558       7        0        0           0       0            0              4489       67        0         0            0
6 6 (s1-eth6)   up     5144      74       0        0           0       0            0              5101       73        0         0            0
7 7 (s1-eth7)   up     5046      73       0        0           0       0            0              4999       72        0         0            0
8 8 (s1-eth8)   up     4556      68       0        0           0       0            0              4489       67        0         0            0
9 65534 (local) up     0         0        0        0           0       0            0              0          0         0         0            0
Executing sh switch 00:00:00:00:00:00:00:01 port  
# OF Port #     Status Rcv Bytes Rcv Pkts Rcv Errs Rcv Dropped Rcv CRC Rcv Overruns Rcv Frame Errs Xmit Bytes Xmit Pkts Xmit Errs Xmit Dropped Collisions
-|-------------|------|---------|--------|--------|-----------|-------|------------|--------------|----------|---------|---------|------------|----------
1 1 (s1-eth1)   up     2076      24       0        0           0       0            0              5847       82        0         0            0
2 2 (s1-eth2)   up     600       8        0        0           0       0            0              4531       68        0         0            0
3 3 (s1-eth3)   up     558       7        0        0           0       0            0              4531       68        0         0            0
4 4 (s1-eth4)   up     558       7        0        0           0       0            0              4489       67        0         0            0
5 5 (s1-eth5)   up     558       7        0        0           0       0            0              4489       67        0         0            0
6 6 (s1-eth6)   up     5242      75       0        0           0       0            0              5203       74        0         0            0
7 7 (s1-eth7)   up     5144      74       0        0           0       0            0              5101       73        0         0            0
8 8 (s1-eth8)   up     4556      68       0        0           0       0            0              4489       67        0         0            0
9 65534 (local) up     0         0        0        0           0       0            0              0          0         0         0            0


show policy : show the policy information created by operators (NOTE: Configuring switches section describe how to create a policy)

onos-vm(config)# sh policy 
# Policy Id Policy Type Priority Dst Mac Src Mac Ether Type Dst IP     IP Protocol Src IP      Dst TcpPort Src TcpPort Tunnel Used
-|---------|-----------|--------|-------|-------|----------|----------|-----------|-----------|-----------|-----------|-----------
1 p1        TUNNEL_FLOW 10000    *       *       0x2048     7.7.7.7/32 *           10.0.1.1/32 *           *           t1


show tunnel : show the tunnel information created by operators (NOTE: Configuring switches section describe how to create a tunnel)

onos-vm(config)# sh tunnel 
# Id Policies Tunnel Path [Head-->Tail] Label Stack [Outer-->Inner]
-|--|--------|-------------------------|---------------------------
1 t1          [101, 102, 103]           [[103]]

 

Configuring switches

configure: enter configuration mode

onos-vm# configure 
onos-vm(config)# <tab>
clear        connect      enable       feature      logout       policy       tag-mapping  tunnel       
clearterm    date         end          help         no           show         test         version      
configure    echo         exit         history      ping         tag          trace        watch  


tunnel <tunnel ID> : Create a tunnel for a tunnel policy. Specify the node SID of all routers of the tunnel, following node keyword.  end suspends the tunnel creation and exit the configuration mode.

onos-vm(config)# tunnel t1
onos-vm(config-tunnel)# node 101
onos-vm(config-tunnel)# node 102
onos-vm(config-tunnel)# node 103
onos-vm(config-tunnel)# exit


policy <policy ID> policy-type <policy type>: Create a specific type of policy. Only tunnel-flow type is supported now. flow-entry, tunnel, and priority must be specified. IP, TCP, and UDP are supported as the flow-entry type. The first subnet is the source, and the second subnet is the destination.

onos-vm(config)# policy p1 policy-type tunnel-flow 
onos-vm(config-policy)# flow-entry ip 10.0.1.1/32 7.7.7.7/32
onos-vm(config-policy)# tunnel t1
onos-vm(config-policy)# priority 10000
onos-vm(config-policy)# exit 


no policy <policy ID>: remove the policy with the policy ID.

onos-vm(config)# sh policy 
# Policy Id Policy Type Priority Dst Mac Src Mac Ether Type Dst IP     IP Protocol Src IP      Dst TcpPort Src TcpPort Tunnel Used
-|---------|-----------|--------|-------|-------|----------|----------|-----------|-----------|-----------|-----------|-----------
1 p1        TUNNEL_FLOW 10000    *       *       0x2048     7.7.7.7/32 *           10.0.1.1/32 *           *           t1
onos-vm(config)# no policy p1
onos-vm(config)# sh policy 
None.


no tunnel <tunnel ID>: remove the tunnel with the tunnel ID. If the tunnel is being used by any policy, then it is not removed.

onos-vm(config)# sh tunnel 
# Id Policies Tunnel Path [Head-->Tail] Label Stack [Outer-->Inner]
-|--|--------|-------------------------|---------------------------
1 t1          [101, 102, 103]           [[103]]
onos-vm(config)# no tunnel t`
Error: Invalid argument: Invalid Alphabetic character, followed by alphanumerics: t`; Invalid characters in identifier
onos-vm(config)# no tunnel t1
onos-vm(config)# sh tunnel 
None.