Skip to content

[VOQHLD] Update for cli commands #801

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 4 commits into from
Jul 19, 2021
Merged
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
100 changes: 96 additions & 4 deletions doc/voq/voq_hld.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# VOQ SONiC
# High Level Design Document
### Rev 1.1
### Rev 1.2

# Table of Contents
* [List of Tables](#list-of-tables)
Expand Down Expand Up @@ -61,8 +61,8 @@
| Rev | Date | Author | Change Description |
|:---:|:-----------:|:----------------------------------------------------------------------------------:|-----------------------------------|
| 1.0 | 06/29/2020 | Sureshkannan Duraisamy, Srikanth Keesara, Vedavinayagam Ganesan (Nokia Sonic Team) | Initial public version |
| 1.1 | 09/08/2020 | Sureshkannan Duraisamy, Srikanth Keesara, Vedavinayagam Ganesan (Nokia Sonic Team) | Updates after reviews |
| | | Eswaran Bhaskaran, Kartik Chandran (Arista Networks) | |
| 1.1 | 09/08/2020 | Sureshkannan Duraisamy, Srikanth Keesara, Vedavinayagam Ganesan (Nokia Sonic Team) Eswaran Bhaskaran, Kartik Chandran (Arista Networks) | Updates after reviews |
| 1.2 | 06/14/2021 | Vedavinayagam Ganesan (Nokia) | Updates for cli commands |

# About this Manual
This document describes the design details for supporting SONiC on a Distributed VOQ System. It aligns with the SONiC Distributed VOQ-Architecture and should be read in conjunction with that document. It also adopts the SONiC Multi-ASIC architecture is adopted - which allows each asic within an FSI to be controlled independently by a separate instance of the "SONiC Network Stack" (comprising bgp, swss, syncd, lldp, teamd etc ..).
Expand Down Expand Up @@ -477,7 +477,99 @@ The system port configuration has the parameters listed below.

## 2.7 CLI

TO BE COMPLETED.
CLI commands for VOQ chassis are for system ports and system neighbors. There are only show commands for these objects. As mentioned earlier, for now, since system ports are not dynamically configured and are required to be statically supplied before boot up there is no configuration commands for system ports. Since system neigobors also do not have any configurations there is no configuration commands for system neighbors.

The show commands are under **show chassis** commands group as shown below

**Help info of show chassis command group**
```
admin@Linecard2:~$ show chassis -h
Usage: show chassis [OPTIONS] COMMAND [ARGS]...

Chassis commands group

Options:
-?, -h, --help Show this message and exit.

Commands:
modules Show chassis-modules information
system-neighbors Show VOQ system neighbors information
system-ports Show VOQ system ports information
admin@Linecard2:~$
```
### 2.7.1 System ports show command
The information for the system ports are taken from the **SYSTEM_PORT_TABLE** of **APPL_DB** from a specific namespace
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is this show cmd to dump config or status of system port? If it dumps status, should we dump from chassis_app_db?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This command is to show the config only.

#### Syntax
```
admin@Linecard2:~$ show chassis system-ports -h
Usage: show chassis system-ports [OPTIONS] [SYSTEMPORTNAME]

Show VOQ system ports information

Options:
-d, --display [all] Show internal interfaces [default: all]
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think the output of the command show chassis system-ports and show chassis system-ports -d all will be the same. I think we don't need the -d option

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes. I'll remove the -d option.

Copy link
Contributor Author

@vganesan-nokia vganesan-nokia Jul 9, 2021

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fixed. Removed -d option. Also namespace option is made "required" as suggested in the code PR.

-n, --namespace [] Namespace name or all
--verbose Enable verbose output
-h, -?, --help Show this message and exit.
admin@Linecard2:~$
```
#### Sample output
```
admin@Linecard2:~$ show chassis system-ports
System Port Name Port Id Switch Id Core Core Port Speed
---------------------------- --------- ----------- ------ ----------- -------
Linecard2|Asic0|Asic0 192 6 0 0 10G
Linecard2|Asic0|Ethernet0 193 6 0 1 100G
Linecard2|Asic0|Ethernet1 194 6 0 2 100G
Linecard2|Asic0|Ethernet2 195 6 0 3 100G
Linecard2|Asic0|Ethernet-IB0 229 6 1 37 10G
.
.
.
Linecard4|Asic0|Asic0 576 18 0 0 10G
Linecard4|Asic0|Ethernet0 577 18 0 1 100G
Linecard4|Asic0|Ethernet1 578 18 0 2 100G
Linecard4|Asic0|Ethernet2 579 18 0 3 100G
Linecard4|Asic0|Ethernet-IB0 613 18 1 37 10G
.
.
.
```
**Note:**

- In multi asic voq systems, for system ports since the configurations in all asics are required to be identical, the output of show for system ports in all namespaces will show multiple entries of the same system port info. The number of entries will be equal to the number of namespaces in the host.

### 2.7.2 System neighbors show command
The information for the system neighbors are taken from the **SYSTEM_NEIGH_TABLE** of **CHASSIS_APP_DB** in the supervisor card.
#### Syntax
```
admin@Linecard2:~$ show chassis system-neighbors -h
Usage: show chassis system-neighbors [OPTIONS]

Show VOQ system neighbors information

Options:
-d, --display [all] Show internal interfaces [default: all]
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Help string is wrong

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'll remove this.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fixed. Removed the "-d" option.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Same as above. Do we need the -d option ?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No. We do not need this. I'll remove this.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fixed. Removed "-d" option.

-n, --namespace [] Namespace name or all
--verbose Enable verbose output
-h, -?, --help Show this message and exit.
admin@Linecard2:~$
```
#### Sample output
```
admin@Linecard2:~$ show chassis system-neighbors
System Port Interface Neighbor MAC Encap Index
---------------------------- ---------- ----------------- -------------
Linecard2|Asic0|Ethernet21 10.0.0.5 fa:6e:44:e3:cf:30 1074790407
Linecard2|Asic0|Ethernet21 fc00::a fa:6e:44:e3:cf:30 1074790406
Linecard2|Asic0|Ethernet-IB0 3.3.3.4 40:55:82:a1:fa:c5 1074790404
Linecard2|Asic0|Ethernet-IB0 3333::3:4 40:55:82:a1:fa:c5 1074790405
Linecard4|Asic0|Ethernet25 10.0.0.11 42:f4:47:d7:71:45 1074790407
Linecard4|Asic0|Ethernet25 fc00::16 42:f4:47:d7:71:45 1074790406
Linecard4|Asic0|Ethernet-IB0 3.3.3.10 40:55:82:a1:fb:21 1074790404
Linecard4|Asic0|Ethernet-IB0 3333::3:10 40:55:82:a1:fb:21 1074790405
admin@Linecard2:~$
```

## 2.8 VOQ Monitoring and Telemetry
In a distributed VOQ System, queue and buffer utilization statistics for a port are collected separately on all the asics in the system. There may be a need to aggregate these statistics in order to have a view of the statistics against a port. This section will be updated once the scope of such requirements is clear.
Expand Down