xref: /openbmc/google-ipmi-sys/eth.hpp (revision c87de558)
14d49ae65SPatrick Venture #pragma once
24d49ae65SPatrick Venture 
3f085d91dSPatrick Venture #include "handler.hpp"
4f085d91dSPatrick Venture 
52c9e1625SWilliam A. Kennington III #include <ipmid/api.h>
64d49ae65SPatrick Venture 
74d49ae65SPatrick Venture namespace google
84d49ae65SPatrick Venture {
94d49ae65SPatrick Venture namespace ipmi
104d49ae65SPatrick Venture {
114d49ae65SPatrick Venture 
125d26d832SPatrick Venture // The reply to the ethdevice command specifies the
1345fad1bbSPatrick Venture // IPMI channel number and the ifName used for the
145d26d832SPatrick Venture // ncis connection.
155d26d832SPatrick Venture struct EthDeviceReply
165d26d832SPatrick Venture {
175d26d832SPatrick Venture     uint8_t subcommand;
185d26d832SPatrick Venture     uint8_t channel;
1945fad1bbSPatrick Venture     // ifNameLength doesn't include the null-terminator.
2045fad1bbSPatrick Venture     uint8_t ifNameLength;
2145fad1bbSPatrick Venture     uint8_t ifName[0];
225d26d832SPatrick Venture } __attribute__((packed));
235d26d832SPatrick Venture 
244d49ae65SPatrick Venture // Handle the eth query command.
2545fad1bbSPatrick Venture // Sys can query the ifName and IPMI channel of the BMC's NCSI ethernet
264d49ae65SPatrick Venture // device.
2745fad1bbSPatrick Venture ipmi_ret_t getEthDevice(const uint8_t* reqBuf, uint8_t* replyBuf,
28*c87de558SPatrick Venture                         size_t* dataLen, const HandlerInterface* handler);
294d49ae65SPatrick Venture 
304d49ae65SPatrick Venture } // namespace ipmi
314d49ae65SPatrick Venture } // namespace google
32