blob: 24ee8be40068ee84bb2066167ecef3e12c388923 [file] [log] [blame]
Ratan Guptab8e99552017-07-27 07:07:48 +05301#pragma once
2
Ratan Gupta533d03b2017-07-30 10:39:22 +05303#include "types.hpp"
Ratan Guptab8e99552017-07-27 07:07:48 +05304#include <string>
Adriana Kobylak5d6481f2015-10-29 21:44:55 -05005// IPMI commands for Transport net functions.
6enum ipmi_netfn_storage_cmds
7{
8 // Get capability bits
9 IPMI_CMD_SET_LAN = 0x01,
10 IPMI_CMD_GET_LAN = 0x02,
11};
12
13// Command specific completion codes
14enum ipmi_transport_return_codes
15{
16 IPMI_CC_PARM_NOT_SUPPORTED = 0x80,
17};
18
Adriana Kobylake08fbc62016-02-09 16:17:23 -060019// Parameters
20static const int LAN_PARM_INPROGRESS = 0;
21static const int LAN_PARM_AUTHSUPPORT = 1;
22static const int LAN_PARM_AUTHENABLES = 2;
23static const int LAN_PARM_IP = 3;
24static const int LAN_PARM_MAC = 5;
25static const int LAN_PARM_SUBNET = 6;
26static const int LAN_PARM_GATEWAY = 12;
Ratan Gupta533d03b2017-07-30 10:39:22 +053027static const int LAN_PARM_VLAN = 20;
Adriana Kobylake08fbc62016-02-09 16:17:23 -060028
Ratan Guptab8e99552017-07-27 07:07:48 +053029struct ChannelConfig_t
30{
31 std::string ipaddr;
32 std::string netmask;
33 std::string gateway;
34 std::string macAddress;
Ratan Gupta533d03b2017-07-30 10:39:22 +053035 // IPMI stores the vlan info in 16 bits,32 bits is to aligned
36 // with phosphor-dbus interfaces.
37 // vlan id is in 12 bits and the 16th bit is for enable mask.
38 uint32_t vlanID = ipmi::network::VLAN_ID_MASK;
39
Ratan Guptab8e99552017-07-27 07:07:48 +053040 void clear()
41 {
42 ipaddr.clear();
43 netmask.clear();
44 gateway.clear();
45 macAddress.clear();
Ratan Gupta533d03b2017-07-30 10:39:22 +053046 vlanID = ipmi::network::VLAN_ID_MASK;
Ratan Guptab8e99552017-07-27 07:07:48 +053047 }
Nan Li3d0df912016-10-18 19:51:41 +080048};