blob: 5b943f411e99b3a257916b4c805d6f9fa4906f23 [file] [log] [blame]
Ratan Gupta00659052017-02-23 17:29:08 +05301#pragma once
2
3#include <stdint.h>
4
5#include <map>
6#include <string>
7
8#include <sdbusplus/server.hpp>
Dhruvaraj Subhashchandrane0af7202017-07-12 06:35:20 -05009#include "sensorhandler.h"
Ratan Gupta00659052017-02-23 17:29:08 +053010
11namespace ipmi
12{
Ratan Guptadcb10672017-07-10 10:33:50 +053013
14using DbusObjectPath = std::string;
15using DbusService = std::string;
16using DbusInterface = std::string;
17using DbusObjectInfo = std::pair<DbusObjectPath, DbusService>;
18using DbusProperty = std::string;
Ratan Guptacc8feb42017-07-25 21:52:10 +053019
20using Value = sdbusplus::message::variant<bool, uint8_t, int16_t,
21 uint16_t, int32_t, uint32_t,
22 int64_t, uint64_t, std::string>;
23
Ratan Guptadcb10672017-07-10 10:33:50 +053024using PropertyMap = std::map<DbusProperty, Value>;
Ratan Guptab8e99552017-07-27 07:07:48 +053025
Ratan Guptadcb10672017-07-10 10:33:50 +053026using ObjectTree = std::map<DbusObjectPath,
27 std::map<DbusService, std::vector<DbusInterface>>>;
Ratan Gupta8c31d232017-08-13 05:49:43 +053028
Ratan Gupta00659052017-02-23 17:29:08 +053029namespace sensor
30{
31
32using Offset = uint8_t;
Ratan Guptadcb10672017-07-10 10:33:50 +053033using Value = ipmi::Value;
Ratan Gupta00659052017-02-23 17:29:08 +053034
35struct Values
36{
37 Value assert;
38 Value deassert;
39};
40
41using OffsetValueMap = std::map<Offset,Values>;
42
Ratan Guptadcb10672017-07-10 10:33:50 +053043using DbusProperty = ipmi::DbusProperty;
Ratan Gupta00659052017-02-23 17:29:08 +053044using DbusPropertyMap = std::map<DbusProperty,OffsetValueMap>;
45
Ratan Guptadcb10672017-07-10 10:33:50 +053046using DbusInterface = ipmi::DbusInterface;
Ratan Gupta00659052017-02-23 17:29:08 +053047using DbusInterfaceMap = std::map<DbusInterface,DbusPropertyMap>;
48
49using InstancePath = std::string;
50using Type = uint8_t;
51using ReadingType = uint8_t;
Emily Shaffer10f49592017-05-10 12:01:10 -070052using Multiplier = uint16_t;
53using OffsetB = uint16_t;
54using Exponent = uint8_t;
55using ScaledOffset = int64_t;
Ratan Gupta00659052017-02-23 17:29:08 +053056
57struct Info
58{
59 Type sensorType;
60 InstancePath sensorPath;
Deepak Kodihalli1bb0d382017-08-12 02:01:27 -050061 DbusInterface sensorInterface;
Ratan Gupta00659052017-02-23 17:29:08 +053062 ReadingType sensorReadingType;
Emily Shaffer10f49592017-05-10 12:01:10 -070063 Multiplier coefficientM;
64 OffsetB coefficientB;
65 Exponent exponentB;
66 ScaledOffset scaledOffset;
Deepak Kodihalli1bb0d382017-08-12 02:01:27 -050067 std::function<uint8_t(SetSensorReadingReq&, const Info&)> updateFunc;
68 DbusInterfaceMap propertyInterfaces;
Ratan Gupta00659052017-02-23 17:29:08 +053069};
70
71using Id = uint8_t;
72using IdInfoMap = std::map<Id,Info>;
73
Ratan Guptadcb10672017-07-10 10:33:50 +053074using PropertyMap = ipmi::PropertyMap;
Tom Josephbe703f72017-03-09 12:34:35 +053075
76using InterfaceMap = std::map<DbusInterface, PropertyMap>;
77
78using Object = sdbusplus::message::object_path;
79using ObjectMap = std::map<Object, InterfaceMap>;
80
Dhruvaraj Subhashchandrane0af7202017-07-12 06:35:20 -050081using IpmiUpdateData = sdbusplus::message::message;
82
Tom Josephdd78a1d2017-05-05 11:04:29 +053083struct SelData
84{
85 Id sensorID;
86 Type sensorType;
87 ReadingType eventReadingType;
88 Offset eventOffset;
89};
90
91using InventoryPath = std::string;
92
93using InvObjectIDMap = std::map<InventoryPath, SelData>;
94
Ratan Gupta8c31d232017-08-13 05:49:43 +053095}// namespace sensor
96
97namespace network
98{
99
100constexpr auto MAC_ADDRESS_FORMAT = "%02hhx:%02hhx:%02hhx:%02hhx:%02hhx:%02hhx";
101constexpr auto IP_ADDRESS_FORMAT = "%u.%u.%u.%u";
102constexpr auto PREFIX_FORMAT = "%hhd";
103constexpr auto ADDR_TYPE_FORMAT = "%hhx";
104
105constexpr auto IPV4_ADDRESS_SIZE_BYTE = 4;
106constexpr auto IPV6_ADDRESS_SIZE_BYTE = 16;
107
108constexpr auto DEFAULT_MAC_ADDRESS = "00:00:00:00:00:00";
109constexpr auto DEFAULT_ADDRESS = "0.0.0.0";
110
Ratan Guptab8e99552017-07-27 07:07:48 +0530111constexpr auto MAC_ADDRESS_SIZE_BYTE = 6;
Ratan Gupta533d03b2017-07-30 10:39:22 +0530112constexpr auto VLAN_SIZE_BYTE = 2;
Ratan Guptab8e99552017-07-27 07:07:48 +0530113constexpr auto BITS_32 = 32;
114constexpr auto MASK_32_BIT = 0xFFFFFFFF;
Ratan Gupta533d03b2017-07-30 10:39:22 +0530115constexpr auto VLAN_ID_MASK = 0x00000FFF;
116constexpr auto VLAN_ENABLE_MASK = 0x8000;
Ratan Guptab8e99552017-07-27 07:07:48 +0530117
Ratan Gupta8c31d232017-08-13 05:49:43 +0530118}//namespace network
Ratan Gupta00659052017-02-23 17:29:08 +0530119}//namespace ipmi