1 #pragma once 2 3 #include <span> 4 5 namespace phosphor 6 { 7 namespace network 8 { 9 namespace ncsi 10 { 11 12 constexpr auto DEFAULT_VALUE = -1; 13 constexpr auto NONE = 0; 14 15 /* @brief This function will ask underlying NCSI driver 16 * to send an OEM command (command type 0x50) with 17 * the specified payload as the OEM data. 18 * This function talks with the NCSI driver over 19 * netlink messages. 20 * @param[in] ifindex - Interface Index. 21 * @param[in] package - NCSI Package. 22 * @param[in] channel - Channel number with in the package. 23 * @param[in] payload - OEM data to send. 24 * @returns 0 on success and negative value for failure. 25 */ 26 int sendOemCommand(int ifindex, int package, int channel, 27 std::span<const unsigned char> payload); 28 29 /* @brief This function will ask underlying NCSI driver 30 * to set a specific package or package/channel 31 * combination as the preferred choice. 32 * This function talks with the NCSI driver over 33 * netlink messages. 34 * @param[in] ifindex - Interface Index. 35 * @param[in] package - NCSI Package. 36 * @param[in] channel - Channel number with in the package. 37 * @returns 0 on success and negative value for failure. 38 */ 39 int setChannel(int ifindex, int package, int channel); 40 41 /* @brief This function will ask underlying NCSI driver 42 * to clear any preferred setting from the given 43 * interface. 44 * This function talks with the NCSI driver over 45 * netlink messages. 46 * @param[in] ifindex - Interface Index. 47 * @returns 0 on success and negative value for failure. 48 */ 49 int clearInterface(int ifindex); 50 51 /* @brief This function is used to dump all the info 52 * of the package and the channels underlying 53 * the package. 54 * @param[in] ifindex - Interface Index. 55 * @param[in] package - NCSI Package. 56 * @returns 0 on success and negative value for failure. 57 */ 58 int getInfo(int ifindex, int package); 59 60 } // namespace ncsi 61 } // namespace network 62 } // namespace phosphor 63