common/linkcache.h (17 lines of code) (raw):
#pragma once
#include <netlink/netlink.h>
#include <netlink/route/link.h>
#include <string>
namespace swss {
class LinkCache {
public:
static LinkCache &getInstance();
/* Translate ifindex to name */
std::string ifindexToName(int ifindex);
struct rtnl_link* getLinkByName(const char* name);
private:
LinkCache();
~LinkCache();
nl_cache *m_link_cache;
nl_sock *m_nl_sock;
};
}