-
Notifications
You must be signed in to change notification settings - Fork 1.1k
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
PoE design proposal HLD document #1631
base: master
Are you sure you want to change the base?
Conversation
Signed-off-by: Volodymyr Mytnyk <volodymyr.mytnyk@plvision.eu>
community review recording https://zoom.us/rec/share/Rx4P62u1hfWkAH2kMgyIP-SoWcQfeQrkgM3hvuv8AsMjNJMWQT70dBOcx6GqmnXe.52gMDrInKWQmT0E4 |
Design is not according to SONiC design philosophy. Without significant requirement or necessity another syncD has been added for POE. Multiple syncD module in SONiC architecture is not a SONiC design philosophy. Also PoE is a hardware feature i.e. feature attached to physical interface and not related to ASIC forwarding. Hence using syncD module for management of this feature is not a right way of feature designing in SONiC. Here we have to follow management POE feature same way how PMON manages fan and power using PDDF framework. In recording team was mentioning about performance impact if we use PDDF framework but I could not get right justification. |
- add SWSS cahnges - include LLDP interaction - add example PoE config - mention about warm reboot requirements Signed-off-by: Volodymyr Mytnyk <volodymyr.mytnyk@plvision.eu>
My review comment is not addressed yet. |
We want to utilize SAI as the standard API for PoE. This will allow PoE chip vendors to provide SAI library for their PoE devices. Usually, NPU and PoE chips are from different vendors, thus a need for a separate syncd container. |
Is there any plan about SNMP? I think SNMP can also control the PoE. |
Can we also have the code PRs listed in this HLD PR? Thanks. |
|
||
#### PoE SYNCD | ||
|
||
New PoE SYNCD container componnents: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
what is the reason to have a poe syncd? why normal syncd won't work. isn't that poe feature is captured with SAI api, then normal syncd can support poe as long as the sai library support poe?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I believe the motivation is to allow use of an additional instance of SAI. one for NPU and one for PoE. This is assuming that NPU and PoE HW and drivers are developed by different vendors
|
||
### PoE Abstraction Interface | ||
|
||
The PoE Manager uses a new SAI PoE library that implements the PoE Abstraction Interface. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
can you share the poe sai library pr? is it already merged in sai?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
SAI PR -opencomputeproject/SAI#1977 (merged)
Implementation will be (PoE HW) vendor specific, we will be providing an example, working implementation for MicroChip PSE (in development)
@rk946043 pls help review |
|
||
In order to isolate PoE functionality and complexity from existing SONiC design, the following main changes are made: | ||
|
||
- Add separate container for PoE control plane routine configuration. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
How this design address the platform dependencies?
Since there is a separate docker/container for the PoE, How this can resolve the platform dependencies like the dynamic detection of PSU and their power budget etc.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There are 2 options here:
- HW - depends on the HW design.
- SW - the PoE config manager could subscribe to the PSE-related events and during SAI PoE library initialization (power budget configuration).
### Memory Consumption | ||
This sub-section covers the memory consumption analysis for the new feature: no memory consumption is expected when the feature is disabled via compilation and no growing memory consumption while feature is disabled by configuration. | ||
|
||
### Restrictions/Limitations |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Can you please confirm if we support Legacy PDs ? If not please capture them in Limitations
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The control plane does not limit the support of the "Legacy PDs" according to SAI PoE definitions.
current = 1*3.3DIGIT ; the current of the PoE port | ||
|
||
|
||
### Warmboot and Fastboot Design Impact |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Please capture if we are planning to support persistent supply of power to PD from PSE during reboot.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It's already in the current design.
key = POE_PORT|ifname ; ifname with prefix POE_PORT | ||
; field = value | ||
enabled = "enable" / "disable" ; enable/disable PoE on port, default "disable" | ||
power_limit = 1*3.1DIGIT ; power limit on PoE port |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Please confirm whether power budget will get updated when the PSU gets removed from the switch. Whether this will be taken care by the hardware ?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Typically it is done by the HW, from the SW point of view we just need to initialize the power banks.
The current design does not limit this, all the PoE-related configurations and states are reflected on Redis DB, so it could be extended to support the SNMP. |
code PRs can be found from sonic-net/sonic-buildimage#19636 |
PRs are not merged yet, move to backlog |
Add PoE design proposal HLD document with the following content:
In order to isolate PoE functionality and complexity from existing SONiC design, the following main changes are made:
SAI community changes #1977