Skip to content
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

Add CMIS_and_C-CMIS_support_for_ZR.md #769

Closed
wants to merge 465 commits into from

Conversation

qinchuanares
Copy link
Contributor

@qinchuanares qinchuanares commented Apr 5, 2021

The markdown file "CMIS_and_C-CMIS_support_for_ZR.md" describes the work to provide CMIS and C-CMIS support on 400G ZR, a new generation of coherent optical modules to run on SONiC platforms. The markdown article focuses on how to access the registers with the definitions given in CMIS and C-CMIS documents and to achieve certain high-level tasks/functions at the module level. It breaks the process down to four architectural layers and shows each layer at a high level.

Repo PR Title State
sonic-utilities fix for non-coherent cmis modules Merged
sonic-utilities [sfputil] Firmware download/upgrade CLI support for QSFP-DD Merged
sonic-utilities Add transceiver-info items advertised for cmis-supported moddules Merged
sonic-platform-daemons Include changes from xcvr_api in transceiver_info table Merged
sonic-platform-common Skip CDB and VDM for flat memory modules Merged
sonic-platform-common [CMIS]Fix low-power to high power mode transition Merged
sonic-platform-common Firmware upgrade CLI support for QSFP-DD transceivers Merged
sonic-platform-common fix for firmware functions Merged
sonic-platform-common Gracefully handle CMIS APIs for passive modules Merged
sonic-platform-common code fix for copper cable modules with flat memory Merged
sonic-platform-common 400zr initial support Merged
sonic-platform-daemons Xcvrd changes to support 400G ZR configuration Merged
sonic-utilities portconfig option to configure Tx power and laser frequency of ZR transceiver module Merged
sonic-buildimage Yang model for xcvr tx power and frequency configuration Merged

@ghost
Copy link

ghost commented Apr 5, 2021

CLA assistant check
All CLA requirements met.

@lguohan lguohan requested a review from jleveque April 6, 2021 20:22
@jleveque
Copy link
Contributor

jleveque commented May 6, 2021

@qinchuanares: CMIS spec supports firmware updates, which we will want to support in SONiC. I don't see that covered here. Is this something you have considered?

@qinchuanares
Copy link
Contributor Author

@jleveque Good points. I have not covered the FW upgrade part yet. I will work on this feature in the following week and add it in the document.

@liat-grozovik
Copy link
Collaborator

A general comment: in the HLD for SONiC integration we need to see flows.my suggestion is to extend the https://github.com/Azure/SONiC/blob/master/doc/xrcvd/transceiver-monitor-hld.md with the SONiC flows and the additional functionality required. this current md file can be used as a reference to understand what it means and with the code sample examples. but it is too detailed for understanding the damon behaviour, DBs relations and what are the CLIs that you are expected to add including which DBs are affected and what is the schema. especially if you are referring to new parameters that need to be used in order to configure and control it.

Copy link
Contributor

@prgeor prgeor left a comment

Choose a reason for hiding this comment

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

@qinchuanares could address comments?

doc/platform_api/CMIS_and_C-CMIS_support_for_ZR.md Outdated Show resolved Hide resolved
doc/platform_api/CMIS_and_C-CMIS_support_for_ZR.md Outdated Show resolved Hide resolved
host_intput_loopback_lane7 = FLOAT ; host side intput loopback enable lane7
host_intput_loopback_lane8 = FLOAT ; host side intput loopback enable lane8

##### 2.1.3 Transceiver Status Table #####
Copy link
Contributor

Choose a reason for hiding this comment

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

Can we have separate state table for Module and Datapath as CMIS spec distinguishes states of module and datapath?

doc/platform_api/CMIS_and_C-CMIS_support_for_ZR.md Outdated Show resolved Hide resolved

- Example (configure module firmware download):
```
admin@sonic:~$ configure interfaces transceiver firmware download qsfp_dd_ver_xx_xx_xx.bin Ethernet0
Copy link
Contributor

Choose a reason for hiding this comment

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

Will the CLI restrict the firmware type to "binary" only? or "ASCII" format is also supported?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

CLI does not restrict the firmware file type. But my code opens the file in "rb" mode.

Done
```

- Example (configure module firmware commit):
Copy link
Contributor

Choose a reason for hiding this comment

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

Can you state in the CLI help what does "commit" firmware do?

Module firmware download starts...
```

- Example (configure module firmware download abort):
Copy link
Contributor

Choose a reason for hiding this comment

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

When is user supposed to use this CLI?


- Example (Display presence of SFP transceiver connected to Ethernet0):
```
admin@sonic:~$ show interfaces transceiver presence Ethernet0
Copy link
Contributor

Choose a reason for hiding this comment

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

This CLI is already present in SONiC. Let's not change the output of this existing CLI. To show module statue add new CLI:-

show interfaces transceiver module-status Ethernet0

qinchuanares and others added 19 commits August 26, 2022 11:35
add section number and update CLI for module firmware upgrade
…m; re-organize the HLD structure to align with the diagram description
Clean up the diagram flowchart
Update configure CLI command:

configured_frequency -> frequency

configured_tx_power -> tx_power
Added items:
1. vendor revision (Page 0, Offset 164-165)
2. inactive firmware (Page 1, Offset 128-129)

Removed items:
1. type (same item as ext_identifier)
2. ext_rateselect_compliance (not applicable)
3. encoding (not applicable)
4. cable_type (same item as module_media_type)
5. cable_length (not applicable for ZR)
6. nominal_bit_rate (not applicable for ZR)
1. Separate loopback status as new table in state_db
2. add supported laser frequency and supported tx power into state_db
@qinchuanares
Copy link
Contributor Author

/easycla

@prgeor
Copy link
Contributor

prgeor commented Aug 31, 2022

"/easycla"

@zhangyanzhao
Copy link
Collaborator

Close this PR and use #1076 to track.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

9 participants