From c01edf283dca792d1eecedd5c03b69b7eebb6f23 Mon Sep 17 00:00:00 2001 From: Patrick Venture Date: Fri, 22 Dec 2017 14:03:06 -0800 Subject: multiple-channel configuration via yaml Handles converting a yaml file mapping IPMI channel to ethernet device and using this instead of a hard-coded map. Change-Id: Iedfe7cb52a2d0663b9c8a0f6f9d37fe733b63a58 Signed-off-by: Patrick Venture --- net.cpp | 17 +++++------------ 1 file changed, 5 insertions(+), 12 deletions(-) (limited to 'net.cpp') diff --git a/net.cpp b/net.cpp index 6c492a2..17be41e 100644 --- a/net.cpp +++ b/net.cpp @@ -1,6 +1,8 @@ #include #include +#include "utils.hpp" + // Not sure if this should live in utils. Because it's really a per-system // configuration, instead of just hard-coding channel 1 to be eth0, one could // conceivably configure it however they pleased. @@ -12,23 +14,14 @@ namespace ipmi namespace network { -// This map should come from a configuration yaml. -// Also, no need to really be a map, could be just an array -// we index into by channel. :D -std::map ethDeviceMap = { - {1, "eth0"}, - {2, "eth1"}, -}; - +extern const ipmi::network::ChannelEthMap ethdevices; // Given a channel number, return a matching ethernet device, or empty string // if there is no match. -// TODO provide this from a configuration: -// https://github.com/openbmc/openbmc/issues/2667 std::string ChanneltoEthernet(int channel) { - auto dev = ethDeviceMap.find(channel); - if (dev == ethDeviceMap.end()) + auto dev = ethdevices.find(channel); + if (dev == ethdevices.end()) { return ""; } -- cgit v1.2.3