OpenSDN source code
|
The class is used to store following information: More...
#include <vxlan_routing_manager.h>
Classes | |
struct | RoutedVrfInfo |
The structure holds information about virtual networks connected to a logical router (LR) More... | |
Public Types | |
typedef std::map < boost::uuids::uuid, RoutedVrfInfo > | LrVrfInfoMap |
A typedef to store map between Logical router UUID and RoutedVrfInfo. More... | |
typedef LrVrfInfoMap::iterator | LrVrfInfoMapIter |
A typedef for iterator of LrVrfInfoMap. More... | |
typedef std::map< const VnEntry *, boost::uuids::uuid > | VnLrSet |
A typedef to store map between pointer to VirtualNetwork (a bridge or routing virtual network connected to some LR) and the LR's UUID. More... | |
typedef VnLrSet::iterator | VnLrSetIter |
A typedef for iterator of VnLrSet. More... | |
typedef std::map< const InetUnicastAgentRouteTable *, DBTable::DBTableWalkRef > | InetTableWalker |
A typedef for a storage of all walkers on Inet tables, if needed the walk can be restarted instead of spawning new one for a table. More... | |
Public Member Functions | |
VxlanRoutingVrfMapper (VxlanRoutingManager *mgr) | |
Constructs a new instance of VxlanRoutingVrfMapper using the given pointer to VxlanRoutingManager. More... | |
virtual | ~VxlanRoutingVrfMapper () |
Destroys an instance of VxlanRoutingVrfMapper(). More... | |
void | BridgeInet4RouteWalkDone (DBTable::DBTableWalkRef walk_ref, DBTableBase *partition) |
Handles completion of route walk in the Inet IPv4 table of a bridge VRF instance. More... | |
void | BridgeInet6RouteWalkDone (DBTable::DBTableWalkRef walk_ref, DBTableBase *partition) |
Handles completion of route walk in an Inet IPv6 table of a bridge VRF instance. More... | |
void | RoutingVrfRouteWalkDone (DBTable::DBTableWalkRef walk_ref, DBTableBase *partition) |
Handles completion of route walk in the EVPN table of a routing VRF instance. More... | |
void | TryDeleteLogicalRouter (LrVrfInfoMapIter &it) |
Attempts to delete the given LR. More... | |
bool | IsEmpty () const |
Determines whether object is empty or not. More... | |
Private Member Functions | |
void | WalkBridgeVrfs (const RoutedVrfInfo &routing_vrf_info) |
Walks Inet tables of all bridge VRF instances connected to a LR (given in routing_vrf_info parameter). More... | |
void | WalkRoutingVrf (const boost::uuids::uuid &lr_uuid, const VnEntry *vn, bool update, bool withdraw) |
Walks the EVPN table of the routing VRF instance of a given LR. More... | |
void | WalkBridgeInetTables (InetUnicastAgentRouteTable *inet4, InetUnicastAgentRouteTable *inet6) |
Walks given Inet tables (IPv4 and IPv6). More... | |
const VrfEntry * | GetRoutingVrfUsingVn (const VnEntry *vn) |
Find the routing VRF instance using a given virtual network. More... | |
const VrfEntry * | GetRoutingVrfUsingAgentRoute (const AgentRoute *rt) |
Find the routing VRF instance using a given route (AgentRoute). More... | |
const VrfEntry * | GetRoutingVrfUsingUuid (const boost::uuids::uuid &lr_uuid) |
Find the routing VRF instance using a given LR UUID. More... | |
const boost::uuids::uuid | GetLogicalRouterUuidUsingRoute (const AgentRoute *rt) |
Find the UUID of the LR using a given route (AgentRoute). More... | |
DISALLOW_COPY_AND_ASSIGN (VxlanRoutingVrfMapper) | |
Private Attributes | |
VxlanRoutingManager * | mgr_ |
A pointer to the VxlanRoutingManager instance. More... | |
LrVrfInfoMap | lr_vrf_info_map_ |
The map between Logical router UUID and RoutedVrfInfo. More... | |
VnLrSet | vn_lr_set_ |
The map between pointer to VirtualNetwork (a bridge or routing virtual network connected to some LR) and the LR's UUID. More... | |
InetTableWalker | inet4_table_walker_ |
The set of walkers for Inet IPv4 tables of bridge VRF instances. More... | |
InetTableWalker | inet6_table_walker_ |
The set of walkers for Inet IPv6 tables of bridge VRF instances. More... | |
Friends | |
class | VxlanRoutingManager |
Allows access to private members for VxlanRoutingManager class. More... | |
The class is used to store following information:
Definition at line 262 of file vxlan_routing_manager.h.
typedef std::map<const InetUnicastAgentRouteTable *, DBTable::DBTableWalkRef> VxlanRoutingVrfMapper::InetTableWalker |
A typedef for a storage of all walkers on Inet tables, if needed the walk can be restarted instead of spawning new one for a table.
Definition at line 326 of file vxlan_routing_manager.h.
typedef std::map<boost::uuids::uuid, RoutedVrfInfo> VxlanRoutingVrfMapper::LrVrfInfoMap |
A typedef to store map between Logical router UUID and RoutedVrfInfo.
Definition at line 309 of file vxlan_routing_manager.h.
typedef LrVrfInfoMap::iterator VxlanRoutingVrfMapper::LrVrfInfoMapIter |
A typedef for iterator of LrVrfInfoMap.
Definition at line 312 of file vxlan_routing_manager.h.
typedef std::map<const VnEntry *, boost::uuids::uuid> VxlanRoutingVrfMapper::VnLrSet |
A typedef to store map between pointer to VirtualNetwork (a bridge or routing virtual network connected to some LR) and the LR's UUID.
Definition at line 317 of file vxlan_routing_manager.h.
typedef VnLrSet::iterator VxlanRoutingVrfMapper::VnLrSetIter |
A typedef for iterator of VnLrSet.
Definition at line 320 of file vxlan_routing_manager.h.
VxlanRoutingVrfMapper::VxlanRoutingVrfMapper | ( | VxlanRoutingManager * | mgr | ) |
Constructs a new instance of VxlanRoutingVrfMapper using the given pointer to VxlanRoutingManager.
Definition at line 124 of file vxlan_routing_manager.cc.
|
virtual |
Destroys an instance of VxlanRoutingVrfMapper().
Definition at line 129 of file vxlan_routing_manager.cc.
void VxlanRoutingVrfMapper::BridgeInet4RouteWalkDone | ( | DBTable::DBTableWalkRef | walk_ref, |
DBTableBase * | partition | ||
) |
Handles completion of route walk in the Inet IPv4 table of a bridge VRF instance.
Definition at line 223 of file vxlan_routing_manager.cc.
void VxlanRoutingVrfMapper::BridgeInet6RouteWalkDone | ( | DBTable::DBTableWalkRef | walk_ref, |
DBTableBase * | partition | ||
) |
Handles completion of route walk in an Inet IPv6 table of a bridge VRF instance.
Definition at line 236 of file vxlan_routing_manager.cc.
|
private |
|
private |
Find the UUID of the LR using a given route (AgentRoute).
Definition at line 298 of file vxlan_routing_manager.cc.
|
private |
Find the routing VRF instance using a given route (AgentRoute).
Definition at line 284 of file vxlan_routing_manager.cc.
|
private |
Find the routing VRF instance using a given LR UUID.
Definition at line 289 of file vxlan_routing_manager.cc.
Find the routing VRF instance using a given virtual network.
Definition at line 275 of file vxlan_routing_manager.cc.
|
inline |
Determines whether object is empty or not.
Definition at line 357 of file vxlan_routing_manager.h.
void VxlanRoutingVrfMapper::RoutingVrfRouteWalkDone | ( | DBTable::DBTableWalkRef | walk_ref, |
DBTableBase * | partition | ||
) |
Handles completion of route walk in the EVPN table of a routing VRF instance.
Definition at line 217 of file vxlan_routing_manager.cc.
void VxlanRoutingVrfMapper::TryDeleteLogicalRouter | ( | LrVrfInfoMapIter & | it | ) |
Attempts to delete the given LR.
Definition at line 322 of file vxlan_routing_manager.cc.
|
private |
Walks given Inet tables (IPv4 and IPv6).
Definition at line 132 of file vxlan_routing_manager.cc.
|
private |
Walks Inet tables of all bridge VRF instances connected to a LR (given in routing_vrf_info parameter).
Definition at line 251 of file vxlan_routing_manager.cc.
|
private |
Walks the EVPN table of the routing VRF instance of a given LR.
Definition at line 173 of file vxlan_routing_manager.cc.
|
friend |
Allows access to private members for VxlanRoutingManager class.
Definition at line 365 of file vxlan_routing_manager.h.
|
private |
The set of walkers for Inet IPv4 tables of bridge VRF instances.
Definition at line 406 of file vxlan_routing_manager.h.
|
private |
The set of walkers for Inet IPv6 tables of bridge VRF instances.
Definition at line 409 of file vxlan_routing_manager.h.
|
private |
The map between Logical router UUID and RoutedVrfInfo.
Definition at line 398 of file vxlan_routing_manager.h.
|
private |
A pointer to the VxlanRoutingManager instance.
Definition at line 394 of file vxlan_routing_manager.h.
|
private |
The map between pointer to VirtualNetwork (a bridge or routing virtual network connected to some LR) and the LR's UUID.
Definition at line 403 of file vxlan_routing_manager.h.