OpenSDN source code
|
#include <routing_instance.h>
Classes | |
class | DeleteActor |
Public Types | |
typedef std::set< RouteTarget > | RouteTargetList |
typedef std::map< std::string, BgpTable * > | RouteTableList |
typedef std::map < Address::Family, BgpTable * > | RouteTableFamilyList |
Static Public Member Functions | |
static std::string | GetTableName (std::string instance_name, Address::Family fmly) |
static std::string | GetVrfFromTableName (const std::string table) |
Private Member Functions | |
void | AddMvpnRTargetRoute (as_t asn) |
void | DeleteMvpnRTargetRoute (as_t old_asn, Ip4Address old_ip) |
void | AddRTargetRoute (as_t asn, const RouteTarget &rtarget) |
void | DeleteRTargetRoute (as_t asn, const RouteTarget &rtarget) |
void | InitAllRTargetRoutes (as_t asn) |
void | FlushAllRTargetRoutes (as_t asn) |
void | ProcessIdentifierUpdate (as_t asn) |
void | AddRouteTarget (bool import, std::vector< std::string > *change_list, RouteTargetList::const_iterator it) |
void | DeleteRouteTarget (bool import, std::vector< std::string > *change_list, RouteTargetList::iterator it) |
void | Shutdown () |
BgpTable * | VpnTableCreate (Address::Family vpn_family) |
BgpTable * | RTargetTableCreate () |
BgpTable * | VrfTableCreate (Address::Family vrf_family, Address::Family vpn_family) |
void | ClearFamilyRouteTarget (Address::Family vrf_family, Address::Family vpn_family) |
Private Attributes | |
std::string | name_ |
int | index_ |
std::unique_ptr < RouteDistinguisher > | rd_ |
RouteTableList | vrf_tables_by_name_ |
RouteTableFamilyList | vrf_tables_by_family_ |
RouteTargetList | import_ |
RouteTargetList | export_ |
BgpServer * | server_ |
RoutingInstanceMgr * | mgr_ |
const BgpInstanceConfig * | config_ |
bool | is_master_ |
bool | always_subscribe_ |
std::string | virtual_network_ |
int | virtual_network_index_ |
bool | virtual_network_allow_transit_ |
bool | virtual_network_pbb_evpn_enable_ |
int | vxlan_id_ |
SandeshTraceBufferPtr | trace_buffer_ |
boost::scoped_ptr< DeleteActor > | deleter_ |
LifetimeRef< RoutingInstance > | manager_delete_ref_ |
boost::scoped_ptr < IStaticRouteMgr > | inet_static_route_mgr_ |
boost::scoped_ptr < IStaticRouteMgr > | inet6_static_route_mgr_ |
boost::scoped_ptr < IRouteAggregator > | inet_route_aggregator_ |
boost::scoped_ptr < IRouteAggregator > | inet6_route_aggregator_ |
boost::scoped_ptr< PeerManager > | peer_manager_ |
std::string | mvpn_project_manager_network_ |
RoutingPolicyAttachList | routing_policies_ |
Friends | |
class | RoutingInstanceMgr |
Definition at line 54 of file routing_instance.h.
typedef std::map<Address::Family, BgpTable *> RoutingInstance::RouteTableFamilyList |
Definition at line 58 of file routing_instance.h.
typedef std::map<std::string, BgpTable *> RoutingInstance::RouteTableList |
Definition at line 57 of file routing_instance.h.
typedef std::set<RouteTarget> RoutingInstance::RouteTargetList |
Definition at line 56 of file routing_instance.h.
RoutingInstance::RoutingInstance | ( | std::string | name, |
BgpServer * | server, | ||
RoutingInstanceMgr * | mgr, | ||
const BgpInstanceConfig * | config | ||
) |
|
virtual |
Definition at line 1006 of file routing_instance.cc.
|
private |
|
private |
void RoutingInstance::AddRoutingPolicy | ( | RoutingPolicyPtr | policy | ) |
|
private |
void RoutingInstance::AddTable | ( | BgpTable * | tbl | ) |
|
inline |
Definition at line 115 of file routing_instance.h.
void RoutingInstance::ClearConfig | ( | ) |
Definition at line 1398 of file routing_instance.cc.
|
private |
void RoutingInstance::ClearRouteTarget | ( | ) |
|
inline |
Definition at line 123 of file routing_instance.h.
void RoutingInstance::CreateNeighbors | ( | ) |
bool RoutingInstance::deleted | ( | ) | const |
|
private |
LifetimeActor * RoutingInstance::deleter | ( | ) |
Definition at line 1436 of file routing_instance.cc.
const LifetimeActor * RoutingInstance::deleter | ( | ) | const |
Definition at line 1440 of file routing_instance.cc.
|
private |
|
private |
void RoutingInstance::DestroyDBTable | ( | DBTable * | table | ) |
void RoutingInstance::DestroyRouteAggregator | ( | Address::Family | family | ) |
Definition at line 1974 of file routing_instance.cc.
|
private |
void RoutingInstance::FlushRouteAggregationConfig | ( | ) |
void RoutingInstance::FlushStaticRouteConfig | ( | ) |
RoutingInstanceInfo RoutingInstance::GetDataCollection | ( | const char * | operation | ) |
|
inline |
Definition at line 96 of file routing_instance.h.
|
inline |
Definition at line 95 of file routing_instance.h.
int RoutingInstance::GetOriginVnForAggregateRoute | ( | Address::Family | family | ) | const |
|
inline |
Definition at line 99 of file routing_instance.h.
BgpTable * RoutingInstance::GetTable | ( | Address::Family | fmly | ) |
Definition at line 1770 of file routing_instance.cc.
const BgpTable * RoutingInstance::GetTable | ( | Address::Family | fmly | ) | const |
Definition at line 1775 of file routing_instance.cc.
|
static |
|
inline |
Definition at line 65 of file routing_instance.h.
|
inline |
Definition at line 66 of file routing_instance.h.
const string RoutingInstance::GetVirtualNetworkName | ( | ) | const |
Definition at line 1448 of file routing_instance.cc.
|
static |
Definition at line 1780 of file routing_instance.cc.
bool RoutingInstance::HasExportTarget | ( | const ExtCommunity * | extcomm | ) | const |
|
inline |
Definition at line 114 of file routing_instance.h.
|
private |
|
inline |
Definition at line 116 of file routing_instance.h.
bool RoutingInstance::IsServiceChainRoute | ( | const BgpRoute * | route | ) | const |
PeerManager * RoutingInstance::LocatePeerManager | ( | ) |
Definition at line 2014 of file routing_instance.cc.
IRouteAggregator * RoutingInstance::LocateRouteAggregator | ( | Address::Family | family | ) |
IStaticRouteMgr * RoutingInstance::LocateStaticRouteMgr | ( | Address::Family | family | ) |
void RoutingInstance::ManagedDelete | ( | ) |
|
inline |
Definition at line 129 of file routing_instance.h.
|
inline |
Definition at line 130 of file routing_instance.h.
bool RoutingInstance::MayDelete | ( | ) | const |
Definition at line 1432 of file routing_instance.cc.
|
inline |
Definition at line 190 of file routing_instance.h.
|
inline |
Definition at line 193 of file routing_instance.h.
|
inline |
Definition at line 120 of file routing_instance.h.
|
inline |
Definition at line 166 of file routing_instance.h.
|
inline |
Definition at line 167 of file routing_instance.h.
size_t RoutingInstance::peer_manager_size | ( | ) | const |
Definition at line 2010 of file routing_instance.cc.
void RoutingInstance::ProcessConfig | ( | ) |
|
private |
void RoutingInstance::ProcessRouteAggregationConfig | ( | ) |
void RoutingInstance::ProcessRoutingPolicyConfig | ( | ) |
void RoutingInstance::ProcessServiceChainConfig | ( | ) |
If any VN (both internal and non-internal) is connnected to an internal VN via a service-chain, we will create a service chain for EVPN address family as well so that we can re-originate routes from the internal VN RI's EVPN table. For other cases (any VN communicating with a non-internal VN via service chain), we do not need a service chain to watch the EVPN table. Schema-transformer needs to make sure to add the service chain config for EVPN address family to all VNs which need to communicate via a service-chain with an internal VN.
Definition at line 1058 of file routing_instance.cc.
void RoutingInstance::ProcessStaticRouteConfig | ( | ) |
void RoutingInstance::RemoveTable | ( | BgpTable * | tbl | ) |
|
inline |
Definition at line 153 of file routing_instance.h.
|
inline |
Definition at line 170 of file routing_instance.h.
|
inline |
Definition at line 171 of file routing_instance.h.
|
private |
|
inline |
Definition at line 133 of file routing_instance.h.
|
inline |
Definition at line 134 of file routing_instance.h.
void RoutingInstance::set_index | ( | int | index | ) |
|
inline |
Definition at line 196 of file routing_instance.h.
|
private |
|
inline |
Definition at line 142 of file routing_instance.h.
void RoutingInstance::TableDeleteComplete | ( | BgpTable * | table | ) |
SandeshTraceBufferPtr RoutingInstance::trace_buffer | ( | ) | const |
void RoutingInstance::TriggerTableDelete | ( | BgpTable * | table | ) |
void RoutingInstance::UpdateAllStaticRoutes | ( | ) |
void RoutingInstance::UpdateConfig | ( | const BgpInstanceConfig * | config | ) |
void RoutingInstance::UpdateRouteAggregationConfig | ( | ) |
void RoutingInstance::UpdateRoutingPolicyConfig | ( | ) |
void RoutingInstance::UpdateStaticRouteConfig | ( | ) |
bool RoutingInstance::virtual_network_allow_transit | ( | ) | const |
Definition at line 1463 of file routing_instance.cc.
int RoutingInstance::virtual_network_index | ( | ) | const |
Definition at line 1459 of file routing_instance.cc.
bool RoutingInstance::virtual_network_pbb_evpn_enable | ( | ) | const |
Definition at line 1467 of file routing_instance.cc.
|
private |
|
private |
int RoutingInstance::vxlan_id | ( | ) | const |
Definition at line 1471 of file routing_instance.cc.
|
friend |
Definition at line 201 of file routing_instance.h.
|
private |
Definition at line 239 of file routing_instance.h.
|
private |
Definition at line 237 of file routing_instance.h.
|
private |
Definition at line 246 of file routing_instance.h.
|
private |
Definition at line 234 of file routing_instance.h.
|
private |
Definition at line 233 of file routing_instance.h.
|
private |
Definition at line 229 of file routing_instance.h.
|
private |
Definition at line 251 of file routing_instance.h.
|
private |
Definition at line 249 of file routing_instance.h.
|
private |
Definition at line 250 of file routing_instance.h.
|
private |
Definition at line 248 of file routing_instance.h.
|
private |
Definition at line 238 of file routing_instance.h.
|
private |
Definition at line 247 of file routing_instance.h.
|
private |
Definition at line 236 of file routing_instance.h.
|
private |
Definition at line 253 of file routing_instance.h.
|
private |
Definition at line 228 of file routing_instance.h.
|
private |
Definition at line 252 of file routing_instance.h.
|
private |
Definition at line 230 of file routing_instance.h.
|
private |
Definition at line 254 of file routing_instance.h.
|
private |
Definition at line 235 of file routing_instance.h.
|
private |
Definition at line 245 of file routing_instance.h.
|
private |
Definition at line 240 of file routing_instance.h.
|
private |
Definition at line 242 of file routing_instance.h.
|
private |
Definition at line 241 of file routing_instance.h.
|
private |
Definition at line 243 of file routing_instance.h.
|
private |
Definition at line 232 of file routing_instance.h.
|
private |
Definition at line 231 of file routing_instance.h.
|
private |
Definition at line 244 of file routing_instance.h.