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
rtarget_route.cc
Go to the documentation of this file.
1
/*
2
* Copyright (c) 2013 Juniper Networks, Inc. All rights reserved.
3
*/
4
5
#include "
bgp/rtarget/rtarget_route.h
"
6
#include "
bgp/rtarget/rtarget_table.h
"
7
8
#include <algorithm>
9
10
using
std::copy;
11
using
std::string;
12
using
std::vector;
13
14
RTargetRoute::RTargetRoute
(
const
RTargetPrefix
&prefix)
15
: prefix_(prefix) {
16
}
17
18
int
RTargetRoute::CompareTo
(
const
Route
&rhs)
const
{
19
const
RTargetRoute
&rt_rhs =
static_cast<
const
RTargetRoute
&
>
(rhs);
20
return
prefix_
.
CompareTo
(rt_rhs.
prefix_
);
21
}
22
23
string
RTargetRoute::ToString
()
const
{
24
return
prefix_
.
ToString
();
25
}
26
27
void
RTargetRoute::SetKey
(
const
DBRequestKey
*reqkey) {
28
const
RTargetTable::RequestKey
*key =
29
static_cast<
const
RTargetTable::RequestKey
*
>
(reqkey);
30
prefix_
= key->
prefix
;
31
}
32
33
void
RTargetRoute::BuildProtoPrefix
(
BgpProtoPrefix
*prefix,
34
const
BgpAttr
*attr,
35
uint32_t label,
36
uint32_t l3_label)
const
{
37
prefix_
.
BuildProtoPrefix
(prefix);
38
}
39
40
void
RTargetRoute::BuildBgpProtoNextHop
(vector<uint8_t> &nh,
41
IpAddress
nexthop)
const
{
42
nh.resize(4);
43
const
Ip4Address::bytes_type &addr_bytes = nexthop.to_v4().to_bytes();
44
copy(addr_bytes.begin(), addr_bytes.end(), nh.begin());
45
}
46
47
DBEntryBase::KeyPtr
RTargetRoute::GetDBRequestKey
()
const
{
48
RTargetTable::RequestKey
*key =
49
new
RTargetTable::RequestKey
(
GetPrefix
(), NULL);
50
return
KeyPtr
(key);
51
}
RTargetRoute::SetKey
virtual void SetKey(const DBRequestKey *reqkey)
Definition:
rtarget_route.cc:27
RTargetPrefix::CompareTo
int CompareTo(const RTargetPrefix &rhs) const
Definition:
rtarget_prefix.cc:107
RTargetTable::RequestKey
Definition:
rtarget_table.h:20
IpAddress
boost::asio::ip::address IpAddress
Definition:
address.h:13
Route
Definition:
route.h:14
RTargetRoute::CompareTo
virtual int CompareTo(const Route &rhs) const
Definition:
rtarget_route.cc:18
RTargetRoute::BuildProtoPrefix
virtual void BuildProtoPrefix(BgpProtoPrefix *prefix, const BgpAttr *attr=NULL, uint32_t label=0, uint32_t l3_label=0) const
Definition:
rtarget_route.cc:33
DBEntryBase::KeyPtr
std::unique_ptr< DBRequestKey > KeyPtr
Definition:
db_entry.h:25
RTargetRoute::GetPrefix
const RTargetPrefix & GetPrefix() const
Definition:
rtarget_route.h:27
RTargetPrefix
Definition:
rtarget_prefix.h:16
BgpProtoPrefix
Definition:
bgp_attr_base.h:97
DBRequestKey
Definition:
db_table.h:26
RTargetRoute::prefix_
RTargetPrefix prefix_
Definition:
rtarget_route.h:47
RTargetRoute::ToString
virtual std::string ToString() const
Definition:
rtarget_route.cc:23
rtarget_table.h
RTargetRoute
Definition:
rtarget_route.h:20
RTargetPrefix::BuildProtoPrefix
void BuildProtoPrefix(BgpProtoPrefix *prefix) const
Definition:
rtarget_prefix.cc:53
RTargetRoute::RTargetRoute
RTargetRoute(const RTargetPrefix &prefix)
Definition:
rtarget_route.cc:14
RTargetTable::RequestKey::prefix
RTargetPrefix prefix
Definition:
rtarget_table.h:24
rtarget_route.h
RTargetRoute::BuildBgpProtoNextHop
virtual void BuildBgpProtoNextHop(std::vector< uint8_t > &nh, IpAddress nexthop) const
Definition:
rtarget_route.cc:40
RTargetRoute::GetDBRequestKey
virtual KeyPtr GetDBRequestKey() const
Definition:
rtarget_route.cc:47
BgpAttr
Definition:
bgp_attr.h:825
RTargetPrefix::ToString
std::string ToString() const
Definition:
rtarget_prefix.cc:103
contrail
controller
src
bgp
rtarget
rtarget_route.cc
Generated by
1.8.5