5 #ifndef ctrlplane_mac_address_h
6 #define ctrlplane_mac_address_h
9 #include <boost/system/error_code.hpp>
11 #include <net/ethernet.h>
12 #include <sys/socket.h>
30 MacAddress(
unsigned int a,
unsigned int b,
unsigned int c,
31 unsigned int d,
unsigned int e,
unsigned int f);
34 boost::system::error_code *error = NULL);
58 return sizeof(
struct ether_addr);
62 return (
sizeof(
struct ether_addr) * 8);
66 return ((u_int8_t *)&
addr_)[i];
70 return ((u_int8_t *)&
addr_)[i];
91 bool ToArray(u_int8_t *p,
size_t s)
const;
93 operator ether_addr() {
97 operator ether_addr&() {
101 operator sockaddr()
const {
102 struct sockaddr sa = { 0 };
103 ToArray((u_int8_t *)sa.sa_data,
sizeof(sa));
107 operator const ether_addr&()
const {
111 operator const u_int8_t *()
const {
112 return (
const u_int8_t *)&
addr_;
115 operator u_int8_t *() {
116 return (u_int8_t *)&
addr_;
119 operator const int8_t *()
const {
120 return (
const int8_t *)&
addr_;
123 operator int8_t *() {
124 return (int8_t *)&
addr_;
128 return ((u_int8_t *)&
addr_)[5];
147 boost::system::error_code *error = NULL);
static const MacAddress & ZeroMac()
MacAddress & operator=(const struct ether_addr &ea)
bool operator==(const MacAddress &rhs) const
MacAddress(const struct ether_addr *a)
bool ToArray(u_int8_t *p, size_t s) const
static const MacAddress kMulticastMac
static const MacAddress kZeroMac
bool operator<(const MacAddress &rhs) const
u_int8_t & operator[](size_t i)
std::string ToString() const
static const MacAddress & MulticastMac()
static const MacAddress kBroadcastMac
int CompareTo(const MacAddress &rhs, int len=0) const
bool operator>(const MacAddress &rhs) const
static const MacAddress & BroadcastMac()
u_int8_t operator[](size_t i) const
bool operator==(const MacAddress *rhs) const
MacAddress(const MacAddress &rhs)
MacAddress & operator=(const u_int8_t *c)
bool operator!=(const MacAddress &rhs) const
MacAddress & operator=(const MacAddress &rhs)
const uint8_t * GetData() const
MacAddress(const struct ether_addr &a)
MacAddress & operator=(const struct sockaddr &sa)
static MacAddress FromString(const std::string &str, boost::system::error_code *error=NULL)