OpenSDN source code
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
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,
StaticRoutePtr
StaticRouteMap
 

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
 
template<>
Address::Family GetFamily () const
 
template<>
Address::Family GetFamily () const
 
template<>
Ip4Address GetAddress (IpAddress addr) const
 
template<>
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)
 
template<>
int static_route_task_id_
 
template<>
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

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

Definition at line 69 of file static_route.h.

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

Definition at line 68 of file static_route.h.

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

Definition at line 66 of file static_route.h.

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

Definition at line 114 of file static_route.h.

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

Definition at line 88 of file static_route.h.

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

Definition at line 113 of file static_route.h.

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

Definition at line 70 of file static_route.h.

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

Definition at line 67 of file static_route.h.

Constructor & Destructor Documentation

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:

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

Definition at line 830 of file static_route.cc.

Member Function Documentation

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

Definition at line 870 of file static_route.cc.

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

Definition at line 859 of file static_route.cc.

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

Definition at line 875 of file static_route.cc.

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:

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

Implements IStaticRouteMgr.

Definition at line 908 of file static_route.cc.

template<typename T >
StaticRouteMgr< T >::DISALLOW_COPY_AND_ASSIGN ( StaticRouteMgr< T >  )
private
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:

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

Implements IStaticRouteMgr.

Definition at line 913 of file static_route.cc.

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

Definition at line 637 of file static_route.cc.

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:

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

Implements IStaticRouteMgr.

Definition at line 850 of file static_route.cc.

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

Definition at line 625 of file static_route.cc.

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

Definition at line 631 of file static_route.cc.

template<typename T >
uint32_t StaticRouteMgr< T >::GetDownRouteCount ( ) const
virtual

Implements IStaticRouteMgr.

Definition at line 924 of file static_route.cc.

Here is the call graph for this function:

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

Definition at line 615 of file static_route.cc.

template<>
Address::Family StaticRouteMgr< StaticRouteInet6 >::GetFamily ( ) const

Definition at line 620 of file static_route.cc.

template<typename T >
uint32_t StaticRouteMgr< T >::GetRouteCount ( ) const
virtual

Implements IStaticRouteMgr.

Definition at line 918 of file static_route.cc.

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:

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:

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:

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

Implements IStaticRouteMgr.

Definition at line 818 of file static_route.cc.

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:

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:

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

Definition at line 141 of file static_route.h.

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

Definition at line 99 of file static_route.h.

template<>
int StaticRouteMgr< StaticRouteInet >::static_route_task_id_ ( )
private

Definition at line 593 of file static_route.cc.

template<>
int StaticRouteMgr< StaticRouteInet6 >::static_route_task_id_ ( )
private

Definition at line 595 of file static_route.cc.

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:

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:

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

Definition at line 729 of file static_route.cc.

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:

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

Definition at line 880 of file static_route.cc.

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

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

Definition at line 112 of file static_route.h.

Member Data Documentation

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

Definition at line 144 of file static_route.h.

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

Definition at line 147 of file static_route.h.

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

Definition at line 143 of file static_route.h.

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

Definition at line 145 of file static_route.h.

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

Definition at line 146 of file static_route.h.

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

Definition at line 118 of file static_route.h.

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

Definition at line 149 of file static_route.h.

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: