OpenSDN source code
StaticRouteMgr< T > Class Template Reference

#include <static_route.h>

Inheritance diagram for StaticRouteMgr< T >:
Collaboration diagram for StaticRouteMgr< T >:

Classes

struct  RouteKey
 

Public Types

typedef T::RouteT RouteT
 
typedef T::VpnRouteT VpnRouteT
 
typedef T::PrefixT PrefixT
 
typedef T::AddressT AddressT
 
typedef StaticRoute< T > StaticRouteT
 
typedef std::map< RouteKey, StaticRoutePtrStaticRouteMap
 

Public Member Functions

 StaticRouteMgr (RoutingInstance *instance)
 
 ~StaticRouteMgr ()
 
virtual void ProcessStaticRouteConfig ()
 
virtual void UpdateStaticRouteConfig ()
 
virtual void FlushStaticRouteConfig ()
 
void EnqueueStaticRouteReq (StaticRouteRequest *req)
 
const StaticRouteMapstatic_route_map () const
 
virtual void NotifyAllRoutes ()
 
virtual void UpdateAllRoutes ()
 
virtual uint32_t GetRouteCount () const
 
virtual uint32_t GetDownRouteCount () const
 
virtual bool FillStaticRouteInfo (RoutingInstance *rtinstance, StaticRouteEntriesInfo *info) const
 
Address::Family GetFamily () const
 
AddressT GetAddress (IpAddress addr) const
 
Address::Family GetFamily () const
 
Address::Family GetFamily () const
 
Ip4Address GetAddress (IpAddress addr) const
 
Ip6Address GetAddress (IpAddress addr) const
 
- Public Member Functions inherited from IStaticRouteMgr
virtual ~IStaticRouteMgr ()
 

Private Types

typedef std::set< StaticRoutePtrStaticRouteProcessList
 
typedef BgpInstanceConfig::StaticRouteList StaticRouteConfigList
 

Private Member Functions

int CompareStaticRoute (typename StaticRouteMap::iterator loc, StaticRouteConfigList::iterator it)
 
void AddStaticRoute (StaticRouteConfigList::iterator it)
 
void DelStaticRoute (typename StaticRouteMap::iterator loc)
 
void UpdateStaticRoute (typename StaticRouteMap::iterator loc, StaticRouteConfigList::iterator it)
 
void LocateStaticRoutePrefix (const StaticRouteConfig &config)
 
void RemoveStaticRoutePrefix (const RouteKey &static_route)
 
void StopStaticRouteDone (BgpTable *table, ConditionMatch *info)
 
void UnregisterAndResolveStaticRoute (StaticRoutePtr entry)
 
bool StaticRouteEventCallback (StaticRouteRequest *req)
 
bool ProcessUnregisterList ()
 
virtual void DisableUnregisterTrigger ()
 
virtual void EnableUnregisterTrigger ()
 
virtual void DisableQueue ()
 
virtual void EnableQueue ()
 
virtual bool IsQueueEmpty ()
 
RoutingInstancerouting_instance ()
 
 DISALLOW_COPY_AND_ASSIGN (StaticRouteMgr)
 
int static_route_task_id_
 
int static_route_task_id_
 

Private Attributes

RoutingInstancertinstance_
 
BgpConditionListenerlistener_
 
StaticRouteMap static_route_map_
 
WorkQueue< StaticRouteRequest * > * static_route_queue_
 
tbb::mutex mutex_
 
StaticRouteProcessList unregister_static_route_list_
 
boost::scoped_ptr< TaskTriggerunregister_list_trigger_
 

Static Private Attributes

static int static_route_task_id_
 

Friends

template<typename U >
class StaticRouteTest
 

Detailed Description

template<typename T>
class StaticRouteMgr< T >

Definition at line 64 of file static_route.h.

Member Typedef Documentation

◆ AddressT

template<typename T >
typedef T::AddressT StaticRouteMgr< T >::AddressT

Definition at line 69 of file static_route.h.

◆ PrefixT

template<typename T >
typedef T::PrefixT StaticRouteMgr< T >::PrefixT

Definition at line 68 of file static_route.h.

◆ RouteT

template<typename T >
typedef T::RouteT StaticRouteMgr< T >::RouteT

Definition at line 66 of file static_route.h.

◆ StaticRouteConfigList

template<typename T >
typedef BgpInstanceConfig::StaticRouteList StaticRouteMgr< T >::StaticRouteConfigList
private

Definition at line 114 of file static_route.h.

◆ StaticRouteMap

template<typename T >
typedef std::map<RouteKey, StaticRoutePtr> StaticRouteMgr< T >::StaticRouteMap

Definition at line 88 of file static_route.h.

◆ StaticRouteProcessList

template<typename T >
typedef std::set<StaticRoutePtr> StaticRouteMgr< T >::StaticRouteProcessList
private

Definition at line 113 of file static_route.h.

◆ StaticRouteT

template<typename T >
typedef StaticRoute<T> StaticRouteMgr< T >::StaticRouteT

Definition at line 70 of file static_route.h.

◆ VpnRouteT

template<typename T >
typedef T::VpnRouteT StaticRouteMgr< T >::VpnRouteT

Definition at line 67 of file static_route.h.

Constructor & Destructor Documentation

◆ StaticRouteMgr()

template<typename T >
StaticRouteMgr< T >::StaticRouteMgr ( RoutingInstance instance)
explicit

Definition at line 598 of file static_route.cc.

Here is the call graph for this function:

◆ ~StaticRouteMgr()

template<typename T >
StaticRouteMgr< T >::~StaticRouteMgr

Definition at line 830 of file static_route.cc.

Member Function Documentation

◆ AddStaticRoute()

template<typename T >
void StaticRouteMgr< T >::AddStaticRoute ( StaticRouteConfigList::iterator  it)
private

Definition at line 870 of file static_route.cc.

◆ CompareStaticRoute()

template<typename T >
int StaticRouteMgr< T >::CompareStaticRoute ( typename StaticRouteMap::iterator  loc,
StaticRouteConfigList::iterator  it 
)
private

Definition at line 859 of file static_route.cc.

◆ DelStaticRoute()

template<typename T >
void StaticRouteMgr< T >::DelStaticRoute ( typename StaticRouteMap::iterator  loc)
private

Definition at line 875 of file static_route.cc.

◆ DisableQueue()

template<typename T >
virtual void StaticRouteMgr< T >::DisableQueue ( )
inlineprivatevirtual

Implements IStaticRouteMgr.

Definition at line 138 of file static_route.h.

Here is the call graph for this function:

◆ DisableUnregisterTrigger()

template<typename T >
void StaticRouteMgr< T >::DisableUnregisterTrigger
privatevirtual

Implements IStaticRouteMgr.

Definition at line 908 of file static_route.cc.

◆ DISALLOW_COPY_AND_ASSIGN()

template<typename T >
StaticRouteMgr< T >::DISALLOW_COPY_AND_ASSIGN ( StaticRouteMgr< T >  )
private

◆ EnableQueue()

template<typename T >
virtual void StaticRouteMgr< T >::EnableQueue ( )
inlineprivatevirtual

Implements IStaticRouteMgr.

Definition at line 139 of file static_route.h.

Here is the call graph for this function:

◆ EnableUnregisterTrigger()

template<typename T >
void StaticRouteMgr< T >::EnableUnregisterTrigger
privatevirtual

Implements IStaticRouteMgr.

Definition at line 913 of file static_route.cc.

◆ EnqueueStaticRouteReq()

template<typename T >
void StaticRouteMgr< T >::EnqueueStaticRouteReq ( StaticRouteRequest req)

Definition at line 637 of file static_route.cc.

◆ FillStaticRouteInfo()

template<typename T >
bool StaticRouteMgr< T >::FillStaticRouteInfo ( RoutingInstance rtinstance,
StaticRouteEntriesInfo *  info 
) const
virtual

Implements IStaticRouteMgr.

Definition at line 937 of file static_route.cc.

Here is the call graph for this function:

◆ FlushStaticRouteConfig()

template<typename T >
void StaticRouteMgr< T >::FlushStaticRouteConfig
virtual

Implements IStaticRouteMgr.

Definition at line 850 of file static_route.cc.

◆ GetAddress() [1/3]

Ip4Address StaticRouteMgr< StaticRouteInet >::GetAddress ( IpAddress  addr) const

Definition at line 625 of file static_route.cc.

◆ GetAddress() [2/3]

Ip6Address StaticRouteMgr< StaticRouteInet6 >::GetAddress ( IpAddress  addr) const

Definition at line 631 of file static_route.cc.

◆ GetAddress() [3/3]

template<typename T >
AddressT StaticRouteMgr< T >::GetAddress ( IpAddress  addr) const

◆ GetDownRouteCount()

template<typename T >
uint32_t StaticRouteMgr< T >::GetDownRouteCount
virtual

Implements IStaticRouteMgr.

Definition at line 924 of file static_route.cc.

Here is the call graph for this function:

◆ GetFamily() [1/3]

Definition at line 615 of file static_route.cc.

◆ GetFamily() [2/3]

Definition at line 620 of file static_route.cc.

◆ GetFamily() [3/3]

template<typename T >
Address::Family StaticRouteMgr< T >::GetFamily ( ) const

◆ GetRouteCount()

template<typename T >
uint32_t StaticRouteMgr< T >::GetRouteCount
virtual

Implements IStaticRouteMgr.

Definition at line 918 of file static_route.cc.

◆ IsQueueEmpty()

template<typename T >
virtual bool StaticRouteMgr< T >::IsQueueEmpty ( )
inlineprivatevirtual

Implements IStaticRouteMgr.

Definition at line 140 of file static_route.h.

Here is the call graph for this function:

◆ LocateStaticRoutePrefix()

template<typename T >
void StaticRouteMgr< T >::LocateStaticRoutePrefix ( const StaticRouteConfig config)
private

Definition at line 736 of file static_route.cc.

Here is the call graph for this function:

◆ NotifyAllRoutes()

template<typename T >
void StaticRouteMgr< T >::NotifyAllRoutes
virtual

Implements IStaticRouteMgr.

Definition at line 886 of file static_route.cc.

Here is the call graph for this function:

◆ ProcessStaticRouteConfig()

template<typename T >
void StaticRouteMgr< T >::ProcessStaticRouteConfig
virtual

Implements IStaticRouteMgr.

Definition at line 818 of file static_route.cc.

◆ ProcessUnregisterList()

template<typename T >
bool StaticRouteMgr< T >::ProcessUnregisterList
private

Definition at line 704 of file static_route.cc.

Here is the call graph for this function:

◆ RemoveStaticRoutePrefix()

template<typename T >
void StaticRouteMgr< T >::RemoveStaticRoutePrefix ( const RouteKey static_route)
private

Definition at line 803 of file static_route.cc.

Here is the call graph for this function:

◆ routing_instance()

template<typename T >
RoutingInstance* StaticRouteMgr< T >::routing_instance ( )
inlineprivate

Definition at line 141 of file static_route.h.

◆ static_route_map()

template<typename T >
const StaticRouteMap& StaticRouteMgr< T >::static_route_map ( ) const
inline

Definition at line 99 of file static_route.h.

◆ static_route_task_id_() [1/2]

int StaticRouteMgr< StaticRouteInet >::static_route_task_id_
private

Definition at line 593 of file static_route.cc.

◆ static_route_task_id_() [2/2]

int StaticRouteMgr< StaticRouteInet6 >::static_route_task_id_
private

Definition at line 595 of file static_route.cc.

◆ StaticRouteEventCallback()

template<typename T >
bool StaticRouteMgr< T >::StaticRouteEventCallback ( StaticRouteRequest req)
private

Definition at line 642 of file static_route.cc.

Here is the call graph for this function:

◆ StopStaticRouteDone()

template<typename T >
void StaticRouteMgr< T >::StopStaticRouteDone ( BgpTable table,
ConditionMatch info 
)
private

Definition at line 791 of file static_route.cc.

Here is the call graph for this function:

◆ UnregisterAndResolveStaticRoute()

template<typename T >
void StaticRouteMgr< T >::UnregisterAndResolveStaticRoute ( StaticRoutePtr  entry)
private

Definition at line 729 of file static_route.cc.

◆ UpdateAllRoutes()

template<typename T >
void StaticRouteMgr< T >::UpdateAllRoutes
virtual

Implements IStaticRouteMgr.

Definition at line 897 of file static_route.cc.

Here is the call graph for this function:

◆ UpdateStaticRoute()

template<typename T >
void StaticRouteMgr< T >::UpdateStaticRoute ( typename StaticRouteMap::iterator  loc,
StaticRouteConfigList::iterator  it 
)
private

Definition at line 880 of file static_route.cc.

◆ UpdateStaticRouteConfig()

template<typename T >
void StaticRouteMgr< T >::UpdateStaticRouteConfig
virtual

Implements IStaticRouteMgr.

Definition at line 836 of file static_route.cc.

Here is the call graph for this function:

Friends And Related Function Documentation

◆ StaticRouteTest

template<typename T >
template<typename U >
friend class StaticRouteTest
friend

Definition at line 112 of file static_route.h.

Member Data Documentation

◆ listener_

template<typename T >
BgpConditionListener* StaticRouteMgr< T >::listener_
private

Definition at line 144 of file static_route.h.

◆ mutex_

template<typename T >
tbb::mutex StaticRouteMgr< T >::mutex_
private

Definition at line 147 of file static_route.h.

◆ rtinstance_

template<typename T >
RoutingInstance* StaticRouteMgr< T >::rtinstance_
private

Definition at line 143 of file static_route.h.

◆ static_route_map_

template<typename T >
StaticRouteMap StaticRouteMgr< T >::static_route_map_
private

Definition at line 145 of file static_route.h.

◆ static_route_queue_

template<typename T >
WorkQueue<StaticRouteRequest *>* StaticRouteMgr< T >::static_route_queue_
private

Definition at line 146 of file static_route.h.

◆ static_route_task_id_

template<typename T >
int StaticRouteMgr< T >::static_route_task_id_
staticprivate

Definition at line 118 of file static_route.h.

◆ unregister_list_trigger_

template<typename T >
boost::scoped_ptr<TaskTrigger> StaticRouteMgr< T >::unregister_list_trigger_
private

Definition at line 149 of file static_route.h.

◆ unregister_static_route_list_

template<typename T >
StaticRouteProcessList StaticRouteMgr< T >::unregister_static_route_list_
private

Definition at line 148 of file static_route.h.


The documentation for this class was generated from the following files: