blob: ca3542147d89beef58b4f34142248809996e0de6 [file] [log] [blame]
Ratan Gupta82549cc2017-04-21 08:45:23 +05301#pragma once
2
Ratan Gupta3681a502017-06-17 19:20:04 +05303#include <ifaddrs.h>
4
Ratan Gupta82549cc2017-04-21 08:45:23 +05305#include <list>
6#include <string>
7#include <vector>
8#include <map>
Ratan Gupta3681a502017-06-17 19:20:04 +05309#include <memory>
Ratan Gupta82549cc2017-04-21 08:45:23 +053010
11namespace phosphor
12{
13namespace network
14{
15
16using IntfName = std::string;
17
18struct AddrInfo {
19 uint8_t addrType;
20 std::string ipaddress;
21 uint16_t prefix;
22};
23
Ratan Gupta3681a502017-06-17 19:20:04 +053024using Addr_t = ifaddrs*;
25
26struct AddrDeleter
27{
28 void operator()(Addr_t ptr) const
29 {
30 freeifaddrs(ptr);
31 }
32};
33
34using AddrPtr = std::unique_ptr<ifaddrs, AddrDeleter>;
35
36
Ratan Gupta82549cc2017-04-21 08:45:23 +053037using AddrList = std::list<AddrInfo>;
38using IntfAddrMap = std::map<IntfName, AddrList>;
39
40
41}//namespace network
42}//namespace phosphor