OpenSDN source code
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
AggregateRoute< T > Class Template Reference

#include <route_aggregator.h>

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

Public Types

enum  CompareResult { NoChange = 0, NexthopChange = 1 }
 
typedef T::TableT TableT
 
typedef T::RouteT RouteT
 
typedef T::PrefixT PrefixT
 
typedef T::AddressT AddressT
 
typedef RouteAggregator< T > AggregateRouteMgrT
 
typedef std::set< BgpRoute * > RouteList
 
typedef std::vector< RouteListContributingRouteList
 

Public Member Functions

 AggregateRoute (RoutingInstance *rtinstance, AggregateRouteMgrT *manager, const PrefixT &aggregate_route, IpAddress nexthop)
 
virtual ~AggregateRoute ()
 
Address::Family GetFamily () const
 
AddressT GetAddress (IpAddress addr) const
 
CompareResult CompareConfig (const AggregateRouteConfig &cfg)
 
const PrefixTaggregate_route_prefix () const
 
RoutingInstancerouting_instance () const
 
BgpTablebgp_table () const
 
BgpRouteaggregate_route () const
 
IpAddress nexthop () const
 
bool IsMoreSpecific (BgpRoute *route) const
 
bool IsOriginVnMatch (BgpRoute *route) const
 
bool IsBestMatch (BgpRoute *route) const
 
virtual bool Match (BgpServer *server, BgpTable *table, BgpRoute *route, bool deleted)
 
void UpdateNexthop (IpAddress nexthop)
 
void AddAggregateRoute ()
 
void UpdateAggregateRoute ()
 
void RemoveAggregateRoute ()
 
void set_aggregate_route (BgpRoute *aggregate)
 
virtual string ToString () const
 
ContributingRouteListcontribute_route_list ()
 
const ContributingRouteListcontribute_route_list () const
 
bool HasContributingRoutes () const
 
bool IsContributingRoute (BgpRoute *route) const
 
void NotifyContributingRoute (BgpRoute *route)
 
RouteAggregatorStateLocateRouteState (BgpRoute *route)
 
bool AddContributingRoute (BgpRoute *route)
 
void ClearRouteState (BgpRoute *route, RouteAggregatorState *state)
 
bool RemoveContributingRoute (BgpRoute *route)
 
void FillShowInfo (AggregateRouteInfo *info, bool summary) const
 
- Public Member Functions inherited from ConditionMatch
 ConditionMatch ()
 
virtual ~ConditionMatch ()
 
bool deleted () const
 
void IncrementNumMatchstate ()
 
void DecrementNumMatchstate ()
 
uint32_t num_matchstate () const
 

Private Member Functions

 DISALLOW_COPY_AND_ASSIGN (AggregateRoute)
 

Private Attributes

RoutingInstancerouting_instance_
 
AggregateRouteMgrTmanager_
 
PrefixT aggregate_route_prefix_
 
IpAddress nexthop_
 
BgpRouteaggregate_route_
 
ContributingRouteList contributors_
 

Detailed Description

template<typename T>
class AggregateRoute< T >

Definition at line 84 of file route_aggregator.cc.

Member Typedef Documentation

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

Definition at line 89 of file route_aggregator.cc.

template<typename T >
typedef RouteAggregator<T> AggregateRoute< T >::AggregateRouteMgrT

Definition at line 90 of file route_aggregator.cc.

template<typename T >
typedef std::vector<RouteList> AggregateRoute< T >::ContributingRouteList

Definition at line 93 of file route_aggregator.cc.

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

Definition at line 88 of file route_aggregator.cc.

template<typename T >
typedef std::set<BgpRoute *> AggregateRoute< T >::RouteList

Definition at line 92 of file route_aggregator.cc.

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

Definition at line 87 of file route_aggregator.cc.

template<typename T >
typedef T::TableT AggregateRoute< T >::TableT

Definition at line 86 of file route_aggregator.cc.

Member Enumeration Documentation

template<typename T >
enum AggregateRoute::CompareResult
Enumerator
NoChange 
NexthopChange 

Definition at line 95 of file route_aggregator.cc.

Constructor & Destructor Documentation

template<typename T >
AggregateRoute< T >::AggregateRoute ( RoutingInstance rtinstance,
AggregateRouteMgrT manager,
const PrefixT aggregate_route,
IpAddress  nexthop 
)

Definition at line 255 of file route_aggregator.cc.

template<typename T >
virtual AggregateRoute< T >::~AggregateRoute ( )
inlinevirtual

Definition at line 103 of file route_aggregator.cc.

Here is the call graph for this function:

Member Function Documentation

template<typename T >
void AggregateRoute< T >::AddAggregateRoute ( )

Definition at line 400 of file route_aggregator.cc.

Here is the call graph for this function:

template<typename T >
bool AggregateRoute< T >::AddContributingRoute ( BgpRoute route)
inline

Definition at line 210 of file route_aggregator.cc.

Here is the call graph for this function:

template<typename T >
BgpRoute* AggregateRoute< T >::aggregate_route ( ) const
inline

Definition at line 127 of file route_aggregator.cc.

template<typename T >
const PrefixT& AggregateRoute< T >::aggregate_route_prefix ( ) const
inline

Definition at line 115 of file route_aggregator.cc.

template<typename T >
BgpTable* AggregateRoute< T >::bgp_table ( ) const
inline

Definition at line 123 of file route_aggregator.cc.

Here is the call graph for this function:

template<typename T >
void AggregateRoute< T >::ClearRouteState ( BgpRoute route,
RouteAggregatorState state 
)
inline

Definition at line 219 of file route_aggregator.cc.

Here is the call graph for this function:

template<typename T >
AggregateRoute< T >::CompareResult AggregateRoute< T >::CompareConfig ( const AggregateRouteConfig cfg)

Definition at line 268 of file route_aggregator.cc.

template<typename T >
ContributingRouteList* AggregateRoute< T >::contribute_route_list ( )
inline

Definition at line 168 of file route_aggregator.cc.

template<typename T >
const ContributingRouteList& AggregateRoute< T >::contribute_route_list ( ) const
inline

Definition at line 172 of file route_aggregator.cc.

template<typename T >
AggregateRoute< T >::DISALLOW_COPY_AND_ASSIGN ( AggregateRoute< T >  )
private
template<typename T >
void AggregateRoute< T >::FillShowInfo ( AggregateRouteInfo *  info,
bool  summary 
) const

Definition at line 529 of file route_aggregator.cc.

Here is the call graph for this function:

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

Definition at line 108 of file route_aggregator.cc.

Here is the call graph for this function:

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

Definition at line 107 of file route_aggregator.cc.

Here is the call graph for this function:

template<typename T >
bool AggregateRoute< T >::HasContributingRoutes ( ) const
inline

Definition at line 176 of file route_aggregator.cc.

Here is the call graph for this function:

template<typename T >
bool AggregateRoute< T >::IsBestMatch ( BgpRoute route) const

Definition at line 312 of file route_aggregator.cc.

Here is the call graph for this function:

template<typename T >
bool AggregateRoute< T >::IsContributingRoute ( BgpRoute route) const
inline

Definition at line 185 of file route_aggregator.cc.

Here is the call graph for this function:

template<typename T >
bool AggregateRoute< T >::IsMoreSpecific ( BgpRoute route) const
inline

Definition at line 135 of file route_aggregator.cc.

Here is the call graph for this function:

template<typename T >
bool AggregateRoute< T >::IsOriginVnMatch ( BgpRoute route) const

Definition at line 280 of file route_aggregator.cc.

Here is the call graph for this function:

template<typename T >
RouteAggregatorState* AggregateRoute< T >::LocateRouteState ( BgpRoute route)
inline

Definition at line 200 of file route_aggregator.cc.

Here is the call graph for this function:

template<typename T >
bool AggregateRoute< T >::Match ( BgpServer server,
BgpTable table,
BgpRoute route,
bool  deleted 
)
virtual

Implements ConditionMatch.

Definition at line 338 of file route_aggregator.cc.

Here is the call graph for this function:

template<typename T >
IpAddress AggregateRoute< T >::nexthop ( ) const
inline

Definition at line 131 of file route_aggregator.cc.

template<typename T >
void AggregateRoute< T >::NotifyContributingRoute ( BgpRoute route)
inline

Definition at line 191 of file route_aggregator.cc.

Here is the call graph for this function:

template<typename T >
void AggregateRoute< T >::RemoveAggregateRoute ( )

Definition at line 483 of file route_aggregator.cc.

Here is the call graph for this function:

template<typename T >
bool AggregateRoute< T >::RemoveContributingRoute ( BgpRoute route)
inline

Definition at line 226 of file route_aggregator.cc.

Here is the call graph for this function:

template<typename T >
RoutingInstance* AggregateRoute< T >::routing_instance ( ) const
inline

Definition at line 119 of file route_aggregator.cc.

template<typename T >
void AggregateRoute< T >::set_aggregate_route ( BgpRoute aggregate)

Definition at line 512 of file route_aggregator.cc.

Here is the call graph for this function:

template<typename T >
virtual string AggregateRoute< T >::ToString ( ) const
inlinevirtual

Implements ConditionMatch.

Definition at line 163 of file route_aggregator.cc.

Here is the call graph for this function:

template<typename T >
void AggregateRoute< T >::UpdateAggregateRoute ( )

Definition at line 443 of file route_aggregator.cc.

Here is the call graph for this function:

template<typename T >
void AggregateRoute< T >::UpdateNexthop ( IpAddress  nexthop)
inline

Definition at line 152 of file route_aggregator.cc.

Here is the call graph for this function:

Member Data Documentation

template<typename T >
BgpRoute* AggregateRoute< T >::aggregate_route_
private

Definition at line 248 of file route_aggregator.cc.

template<typename T >
PrefixT AggregateRoute< T >::aggregate_route_prefix_
private

Definition at line 246 of file route_aggregator.cc.

template<typename T >
ContributingRouteList AggregateRoute< T >::contributors_
private

Definition at line 249 of file route_aggregator.cc.

template<typename T >
AggregateRouteMgrT* AggregateRoute< T >::manager_
private

Definition at line 245 of file route_aggregator.cc.

template<typename T >
IpAddress AggregateRoute< T >::nexthop_
private

Definition at line 247 of file route_aggregator.cc.

template<typename T >
RoutingInstance* AggregateRoute< T >::routing_instance_
private

Definition at line 244 of file route_aggregator.cc.


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