Implement Ethernet Interface Properties

i.kononenko i.kononenko at yadro.com
Thu Jan 20 20:07:56 AEDT 2022


Hi Spencer!

On 20.01.2022 11:42, Spencer Ku (古世瑜) wrote:
> 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
> 

I'd suggest referring to the [1] **9.7. Resource extensibility** to examine the proper 
way of OEM-properties definition.


> 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": [

Looks like "@odata.type" required field is missed. The **9.7.4. OEM property examples** 
contains the example of the right way to define OEM-properties.

>       {
>         "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 ...

Does it require to have the integer values? I guess each mentioned field might contain string values. 

> 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
> 

Links:
[1] DSP0266 Redfish Specification: 
    https://www.dmtf.org/sites/default/files/standards/documents/DSP0266_1.8.0.pdf

-- 
Best regards,

Igor Kononenko


More information about the openbmc mailing list