Implement Ethernet Interface Properties
Spencer Ku (古世瑜)
Spencer.Ku at quantatw.com
Thu Jan 20 19:42:50 AEDT 2022
Hi All,
We finally decide to implement six properties to Ethernet interface:
RxPackets, TxPackets, RxBytes, TxBytes, RxDropped, and TxDropped.
Those information come from Ethernet statistics and we can read the file
to get the property value directly. (under /sys/class/net/<Ethernet name>/statistics)
For the suitable property in EthernetInterface model, we got the feedback
form Redfish forum and they said OEM properties would be the only other
option at this time. For more discussion detail:
https://redfishforum.com/thread/579/additional-information-ethernet-interface
The following output is the result of my currently OEM implement:
https://${bmc}/redfish/v1/Managers/bmc/EhernetInterfaces/eth0
{
"@odata.id": "/redfish/v1/Managers/bmc/EthernetInterfaces/eth0",
...
"Oem": {
"Statistics": [
{
"RxBytes": 48244026,
"RxDropped": 222856,
"RxPackets": 484315,
"TxBytes": 825845,
"TxDropped": 0,
"TxPackets": 5472
}
]
},
"SpeedMbps": 100,
...
}
But it cannot pass the Redfish validator, and here is the error messages:
ERROR - This complex object RxBytes should be a dictionary or None, but it's of type ...
ERROR - RxBytes: Could not finish check on this property ('int' object is not iterable)
Is there anything I didn't notice? Or has there any spec or example that I can follow to implement?
I had already push the implementation to gerrit and mark as WIP. Here is the link:
https://gerrit.openbmc-project.xyz/c/openbmc/bmcweb/+/50522
We are willing to see any suggestions and alternatives as well. Thanks!
Sincerely,
Spencer Ku
More information about the openbmc
mailing list