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