commit | a7a11f4631218fbdf00170342825570bc67f8f42 | [log] [tgz] |
---|---|---|
author | Patrick Venture <venture@google.com> | Thu Mar 07 17:12:51 2019 -0800 |
committer | Patrick Venture <venture@google.com> | Thu Mar 07 17:17:31 2019 -0800 |
tree | e7b76bfaa4374303e1880e468c21f6056d84aca8 | |
parent | 6e1725abcb38046b2d168d0fb16e5752eb86ecd7 [diff] |
drop zero-length array if_name Historically an empty array name can be used to cleanly jump into a structure without actually taking up space. The idea behind this was that the array itself was somewhat optional. I'm certain there was more to it than this, but it's used primarily to indicate there's something of unknown length following a well-defined structure. ISO C++ forbids zero-size array. One can get around this limitation by just jumping by the length of the structure. Change-Id: Ie5fe0d01f4b159d9150c5135591c0422fb2c79e0 Signed-off-by: Patrick Venture <venture@google.com>
There is the need to read a specific ethernet-level statistic value from the BMC. This is driven primarily to detect link errors that require hardware swaps during manufacturing.
This command will be well structured such that there is a request and response which mirror to some extent.
The request will specify the ethernet interface by name, as a length-prepended string, and the field they're requesting by identifier (an unsigned byte).
If the command is not supported, the IPMI OEM handler will respond accordingly, however, if the field is not supported or not recognized, the command will return 0xcc (invalid field).
The current ethernet statistics available (all future additions must append):
Identifier | Human Readable Name |
---|---|
0 | rx_bytes |
1 | rx_compressed |
2 | rx_crc_errors |
3 | rx_dropped |
4 | rx_errors |
5 | rx_fifo_errors |
6 | rx_frame_errors |
7 | rx_length_errors |
8 | rx_missed_errors |
9 | rx_nohandler |
10 | rx_over_errors |
11 | rx_packets |
12 | tx_aborted_errors |
13 | tx_bytes |
14 | tx_carrier_errors |
15 | tx_compressed |
16 | tx_dropped |
17 | tx_errors |
18 | tx_fifo_errors |
19 | tx_heartbeat_errors |
20 | tx_packets |
21 | tx_window_errors |
Request
Byte(s) | Value | Data |
---|---|---|
0x00 | Statistic ID | The identifier of the desired statistic. |
0x01 | Length | Length of string (not including null termination). |
0x02.. | The name | The string, not null-terminated. |
Response
Byte(s) | Value | Data |
---|---|---|
0x00 | Stat ID | The identifier of the desired statistic. |
0x01.... | Uint64 | The value. Because these are counters we don't anticipate negative values, and we don't expect overflow. |