OpenSDN source code
Main Page
Related Pages
Namespaces
Classes
Files
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Pages
router_mac.cc
Go to the documentation of this file.
1
/*
2
* Copyright (c) 2016 Juniper Networks, Inc. All rights reserved.
3
*/
4
5
#include "
bgp/extended-community/router_mac.h
"
6
7
#include <algorithm>
8
#include <string>
9
10
using
std::copy;
11
using
std::string;
12
13
RouterMac::RouterMac
(
const
MacAddress
&mac_addr) {
14
data_
[0] =
BgpExtendedCommunityType::Evpn
;
15
data_
[1] =
BgpExtendedCommunityEvpnSubType::RouterMac
;
16
copy(mac_addr.
GetData
(), mac_addr.
GetData
() + 6,
data_
.begin() + 2);
17
}
18
19
RouterMac::RouterMac
(
const
bytes_type
&data) {
20
copy(data.begin(), data.end(),
data_
.begin());
21
}
22
23
MacAddress
RouterMac::mac_address
()
const
{
24
uint8_t data[
RouterMac::kSize
];
25
copy(
data_
.begin(),
data_
.end(), &data[0]);
26
if
(data[0] ==
BgpExtendedCommunityType::Evpn
&&
27
data[1] ==
BgpExtendedCommunityEvpnSubType::RouterMac
) {
28
return
MacAddress
(&data[2]);
29
}
30
return
MacAddress::kZeroMac
;
31
}
32
33
string
RouterMac::ToString
() {
34
return
string(
"rtrmac:"
) +
mac_address
().
ToString
();
35
}
RouterMac::RouterMac
RouterMac(const MacAddress &mac_addr)
Definition:
router_mac.cc:13
RouterMac::kSize
static const int kSize
Definition:
router_mac.h:19
RouterMac::bytes_type
boost::array< uint8_t, kSize > bytes_type
Definition:
router_mac.h:20
MacAddress::kZeroMac
static const MacAddress kZeroMac
Definition:
mac_address.h:149
MacAddress
Definition:
mac_address.h:14
MacAddress::ToString
std::string ToString() const
Definition:
mac_address.cc:53
BgpExtendedCommunityEvpnSubType::RouterMac
Definition:
types.h:44
RouterMac::mac_address
MacAddress mac_address() const
Definition:
router_mac.cc:23
router_mac.h
BgpExtendedCommunityType::Evpn
Definition:
types.h:14
RouterMac::data_
bytes_type data_
Definition:
router_mac.h:35
RouterMac::ToString
std::string ToString()
Definition:
router_mac.cc:33
MacAddress::GetData
const uint8_t * GetData() const
Definition:
mac_address.h:143
contrail
controller
src
bgp
extended-community
router_mac.cc
Generated by
1.8.5