-
Notifications
You must be signed in to change notification settings - Fork 174
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
SfpUtilBase: not all EEPROM data are parsed #179
Comments
One more question - shouldn't the reset/set_xxx() functions be performed via xcvrd since that is the driver which does port initializations, transceiver status change event handlings ? There could be potential contention issues if they are done by 2 separate contexts (depending on the underlying device access). |
Hi @wjaco. Thanks for opening this issue.
When you refer to "parser handlers," are you referring to these methods in the SfpBase API class?
If so, I do agree that all of the above should be implemented in what is currently sfputilbase.py (however, low-power mode ('get_lpmode()
True. This data should ultimately get polled by xcvrd and stored in the State DB.
Optimally, yes, xcvrd should be the arbiter of the transceivers, which will prevent any contention. We are currently designing a refactor of the sonic_sfp package in sonic-platform-common, which will ultimately replace sfputilbase.py and create a more complete and well-structured API for handling common SFP transceiver interactions, thus eliminating the need for platform vendors to basically re-invent the wheel by writing similar EEPROM parsing code. Separate from the sonic_sfp refactor, we also intend to update xcvrd such that it instantiates objects to interact with the transceivers, and all interaction goes through xcvrd, thus eliminating an potential contention. Therefore, the CLI for resetting a transceiver will need to be changed to send a message to xcvrd asking it to reset a transceiver. I am moving this issue to the sonic-platfrom-common repo for the time being until the sonic_sfp refactor is complete. |
Thanks @jleveque . Thanks and regards, |
Thanks @jleveque for the detail update. Just trying to see, tentatively how long these enhancements/refactoring would take? |
We are still in the early stages of the design for the refactor of sonic_sfp. I don't expect it to be done for a few months. After that we will work on refactoring xcvrd. I don't have any ETAs at the moment. |
@jleveque following up on this, any updates or ETA that you could share with us? |
@sachinv-msft can you please check the latest SFP-refactor code. HLD for the same. |
@prgeor has there been a refactored code to address this issue? how is it that i can verify we are not failing on test cases because of this? |
@sachinv-msft yes this has been addressed in SFP-refactor in latest master. Ref. SFP-refactor HLD. Dell platform (use as an example) changes to use SFP-refactor: sonic-net/sonic-buildimage#9016 |
@wjaco @sachinv-msft can this be closed? |
Added "hardware revision" field to list of platform fields to sync to STATE_DB for the PSU. Also updated relevant unit tests. Now that hardware revision exists as a platform 2.0 field for all devices, it is appropriate to synchronize this field to STATE_DB for PSUs as is done with all other fields. This will allow this field to be exposed to CLI tools through psushow in the future which reads state from STATE_DB.
To complete the below get/set function, it is found those information are not parsed from EEPROM though there are parser handlers found.
We are on 202012 branch.
Not found in the DB too - which I think is brought into by the sfputil base class only via xcvrd right ? Are these going to be available ?
The text was updated successfully, but these errors were encountered: