OpenSDN source code
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
BridgeAgentRouteTable Class Reference

#include <bridge_route.h>

Inheritance diagram for BridgeAgentRouteTable:
Collaboration diagram for BridgeAgentRouteTable:

Public Member Functions

 BridgeAgentRouteTable (DB *db, const std::string &name)
 
virtual ~BridgeAgentRouteTable ()
 
virtual std::string GetTableName () const
 
virtual Agent::RouteTableType GetTableType () const
 
virtual AgentSandeshPtr GetAgentSandesh (const AgentSandeshArguments *args, const std::string &context)
 
void AddMacVmBindingRoute (const Peer *peer, const std::string &vrf_name, const MacAddress &mac, const VmInterface *vm_intf, bool flood_dhcp)
 
void AddBridgeRoute (const AgentRoute *rt)
 
void AddBridgeReceiveRoute (const Peer *peer, const std::string &vrf_name, uint32_t vxlan_id, const MacAddress &mac, const std::string &vn_name)
 
void DeleteBridgeRoute (const AgentRoute *rt)
 
void DeleteMacVmBindingRoute (const Peer *peer, const std::string &vrf_name, const MacAddress &mac, const VmInterface *vm_intf)
 
const VmInterfaceFindVmFromDhcpBinding (const MacAddress &mac)
 
BridgeRouteEntryFindRoute (const MacAddress &mac)
 
BridgeRouteEntryFindRouteNoLock (const MacAddress &mac)
 
BridgeRouteEntryFindRoute (const MacAddress &mac, Peer::Type peer)
 
- Public Member Functions inherited from AgentRouteTable
 AgentRouteTable (DB *db, const std::string &name)
 
virtual ~AgentRouteTable ()
 
virtual int PartitionCount () const
 
virtual std::unique_ptr< DBEntryAllocEntry (const DBRequestKey *k) const
 
virtual size_t Hash (const DBEntry *entry) const
 
virtual size_t Hash (const DBRequestKey *key) const
 
virtual void ProcessDelete (AgentRoute *rt)
 
virtual void ProcessAdd (AgentRoute *rt)
 
virtual void NotifyEntry (AgentRoute *entry)
 
virtual SandeshTraceBufferPtr GetOperDBTraceBuf () const
 
UnresolvedRouteTree::const_iterator unresolved_route_begin () const
 
UnresolvedRouteTree::const_iterator unresolved_route_end () const
 
int unresolved_route_size () const
 
void AddUnresolvedNH (const NextHop *)
 
void RemoveUnresolvedNH (const NextHop *)
 
void EvaluateUnresolvedNH (void)
 
UnresolvedNHTree::const_iterator unresolved_nh_begin () const
 
UnresolvedNHTree::const_iterator unresolved_nh_end () const
 
void EvaluateUnresolvedRoutes (void)
 
void AddUnresolvedRoute (const AgentRoute *rt)
 
void RemoveUnresolvedRoute (const AgentRoute *rt)
 
Agentagent () const
 
const std::string & vrf_name () const
 
uint32_t vrf_id () const
 
VrfEntryvrf_entry () const
 
AgentRouteFindActiveEntry (const AgentRouteKey *key)
 
AgentRouteFindActiveEntryNoLock (const AgentRouteKey *key)
 
AgentRouteFindActiveEntry (const AgentRoute *key)
 
AgentRouteFindActiveEntryNoLock (const AgentRoute *key)
 
void SetVrf (VrfEntry *vrf)
 
bool DelExplicitRouteWalkerCb (DBTablePartBase *part, DBEntryBase *entry)
 
LifetimeActordeleter ()
 
void ManagedDelete ()
 
virtual void RetryDelete ()
 
void Process (DBRequest &req)
 
void AddChangeInput (DBTablePartition *part, VrfEntry *vrf, AgentRoute *rt, AgentRouteKey *key, AgentRouteData *data)
 
AgentRouteLocateRoute (DBTablePartition *part, VrfEntry *vrf, AgentRoute *rt, AgentRouteKey *key, AgentRouteData *data, bool *notify)
 
- Public Member Functions inherited from RouteTable
 RouteTable (DB *db, const std::string &name)
 
- Public Member Functions inherited from DBTable
 DBTable (DB *db, const std::string &name)
 
virtual ~DBTable ()
 
void Init ()
 
virtual DBTablePartitionAllocPartition (int index)
 
virtual DBEntryAdd (const DBRequest *req)
 
virtual bool OnChange (DBEntry *entry, const DBRequest *req)
 
virtual bool Delete (DBEntry *entry, const DBRequest *req)
 
void NotifyAllEntries ()
 
DBEntryFind (const DBEntry *entry)
 
const DBEntryFind (const DBEntry *entry) const
 
DBEntryFind (const DBRequestKey *key, int id=-1)
 
const DBEntryFind (const DBRequestKey *key, int id=-1) const
 
DBEntryFindNoLock (const DBEntry *entry)
 
DBEntryFindNoLock (const DBRequestKey *key)
 
virtual DBTablePartBaseGetTablePartition (const DBRequestKey *key)
 
virtual const DBTablePartBaseGetTablePartition (const DBRequestKey *key) const
 
virtual DBTablePartBaseGetTablePartition (const DBEntryBase *entry)
 
virtual const DBTablePartBaseGetTablePartition (const DBEntryBase *entry) const
 
virtual DBTablePartBaseGetTablePartition (const int index)
 
virtual const DBTablePartBaseGetTablePartition (const int index) const
 
virtual void Change (DBEntryBase *entry)
 
virtual size_t Size () const
 
DBTableWalkRef AllocWalker (WalkFn walk_fn, WalkCompleteFn walk_complete)
 
void ReleaseWalker (DBTableWalkRef &walk)
 
void WalkTable (DBTableWalkRef walk)
 
void WalkAgain (DBTableWalkRef walk)
 
void SetWalkIterationToYield (int count)
 
int GetWalkIterationToYield ()
 
void SetWalkTaskId (int task_id)
 
int GetWalkerTaskId ()
 
- Public Member Functions inherited from DBTableBase
 DBTableBase (DB *db, const std::string &name)
 
virtual ~DBTableBase ()
 
bool Enqueue (DBRequest *req)
 
void EnqueueRemove (DBEntryBase *db_entry)
 
virtual void AddRemoveCallback (const DBEntryBase *entry, bool add) const
 
ListenerId Register (ChangeCallback callback, const std::string &name="unspecified")
 
void Unregister (ListenerId listener)
 
void RunNotify (DBTablePartBase *tpart, DBEntryBase *entry)
 
void AddToDBStateCount (ListenerId listener, int count)
 
uint64_t GetDBStateCount (ListenerId listener)
 
bool empty () const
 
virtual bool MayDelete () const
 
DBdatabase ()
 
const DBdatabase () const
 
const std::string & name () const
 
bool HasListeners () const
 
size_t GetListenerCount () const
 
void FillListeners (std::vector< ShowTableListener > *listeners) const
 
uint64_t enqueue_count () const
 
void incr_enqueue_count ()
 
void reset_enqueue_count ()
 
uint64_t input_count () const
 
void incr_input_count ()
 
void reset_input_count ()
 
uint64_t notify_count () const
 
void incr_notify_count ()
 
void reset_notify_count ()
 
bool HasWalkers () const
 
uint64_t walker_count () const
 
void incr_walker_count ()
 
uint64_t decr_walker_count ()
 
uint64_t walk_request_count () const
 
uint64_t walk_complete_count () const
 
uint64_t walk_cancel_count () const
 
uint64_t walk_again_count () const
 
uint64_t walk_count () const
 
void incr_walk_request_count ()
 
void incr_walk_complete_count ()
 
void incr_walk_cancel_count ()
 
void incr_walk_again_count ()
 
void incr_walk_count ()
 

Static Public Member Functions

static DBTableBaseCreateTable (DB *db, const std::string &name)
 
static AgentRouteDataBuildNonBgpPeerData (const string &vrf_name, const std::string &vn_name, uint32_t label, int vxlan_id, uint32_t tunnel_type, Composite::Type type, ComponentNHKeyList &component_nh_key_list, bool pbb_nh, bool learning_enabled)
 
static AgentRouteDataBuildBgpPeerData (const Peer *peer, const string &vrf_name, const std::string &vn_name, uint32_t label, int vxlan_id, uint32_t ethernet_tag, uint32_t tunnel_type, Composite::Type type, ComponentNHKeyList &component_nh_key_list, bool pbb_nh, bool learning_enabled)
 
static void AddBridgeRoute (const Peer *peer, const string &vrf_name, const MacAddress &mac, uint32_t ethernet_tag, AgentRouteData *data)
 
static void AddBridgeBroadcastRoute (const Peer *peer, const string &vrf_name, uint32_t ethernet_tag, AgentRouteData *data)
 
static void AddBridgeReceiveRoute (const Peer *peer, const std::string &vrf_name, const MacAddress &mac, const std::string &vn_name, const std::string &interface, bool policy)
 
static void Delete (const Peer *peer, const std::string &vrf_name, const MacAddress &mac, uint32_t ethernet_tag)
 
static void DeleteBroadcastReq (const Peer *peer, const std::string &vrf_name, uint32_t ethernet_tag, COMPOSITETYPE type)
 
static void DeleteBridgeRoute (const Peer *peer, const string &vrf_name, const MacAddress &mac, uint32_t ethernet_tag, COMPOSITETYPE type)
 
- Static Public Member Functions inherited from AgentRouteTable
static bool PathSelection (const Path &path1, const Path &path2)
 
static const std::string & GetSuffix (Agent::RouteTableType type)
 
- Static Public Member Functions inherited from DBTable
static void DBStateClear (DBTable *table, ListenerId id)
 

Private Member Functions

 DISALLOW_COPY_AND_ASSIGN (BridgeAgentRouteTable)
 

Private Attributes

DBTableWalker::WalkId walkid_
 

Additional Inherited Members

- Public Types inherited from AgentRouteTable
typedef std::set< const
AgentRoute *, RouteComparator
UnresolvedRouteTree
 
typedef std::set< const
NextHop *, NHComparator
UnresolvedNHTree
 
- Public Types inherited from DBTable
typedef boost::intrusive_ptr
< DBTableWalk
DBTableWalkRef
 
typedef boost::function< bool(DBTablePartBase
*, DBEntryBase *)> 
WalkFn
 
typedef boost::function< void(DBTableWalkRef,
DBTableBase *)> 
WalkCompleteFn
 
- Public Types inherited from DBTableBase
typedef boost::function< void(DBTablePartBase
*, DBEntryBase *)> 
ChangeCallback
 
typedef int ListenerId
 
- Static Public Attributes inherited from AgentRouteTable
static const int kPartitionCount = 1
 
- Static Public Attributes inherited from DBTable
static const int kIterationToYield = 256
 
- Static Public Attributes inherited from DBTableBase
static const int kInvalidId = -1
 

Detailed Description

Definition at line 13 of file bridge_route.h.

Constructor & Destructor Documentation

BridgeAgentRouteTable::BridgeAgentRouteTable ( DB db,
const std::string &  name 
)
inline

Definition at line 15 of file bridge_route.h.

virtual BridgeAgentRouteTable::~BridgeAgentRouteTable ( )
inlinevirtual

Definition at line 18 of file bridge_route.h.

Member Function Documentation

void BridgeAgentRouteTable::AddBridgeBroadcastRoute ( const Peer peer,
const string &  vrf_name,
uint32_t  ethernet_tag,
AgentRouteData data 
)
static

Definition at line 254 of file bridge_route.cc.

Here is the call graph for this function:

static void BridgeAgentRouteTable::AddBridgeReceiveRoute ( const Peer peer,
const std::string &  vrf_name,
const MacAddress mac,
const std::string &  vn_name,
const std::string &  interface,
bool  policy 
)
static
void BridgeAgentRouteTable::AddBridgeReceiveRoute ( const Peer peer,
const std::string &  vrf_name,
uint32_t  vxlan_id,
const MacAddress mac,
const std::string &  vn_name 
)
void BridgeAgentRouteTable::AddBridgeRoute ( const AgentRoute rt)

Definition at line 120 of file bridge_route.cc.

Here is the call graph for this function:

void BridgeAgentRouteTable::AddBridgeRoute ( const Peer peer,
const string &  vrf_name,
const MacAddress mac,
uint32_t  ethernet_tag,
AgentRouteData data 
)
static

Definition at line 214 of file bridge_route.cc.

Here is the call graph for this function:

void BridgeAgentRouteTable::AddMacVmBindingRoute ( const Peer peer,
const std::string &  vrf_name,
const MacAddress mac,
const VmInterface vm_intf,
bool  flood_dhcp 
)

Definition at line 132 of file bridge_route.cc.

Here is the call graph for this function:

AgentRouteData * BridgeAgentRouteTable::BuildBgpPeerData ( const Peer peer,
const string &  vrf_name,
const std::string &  vn_name,
uint32_t  label,
int  vxlan_id,
uint32_t  ethernet_tag,
uint32_t  tunnel_type,
Composite::Type  type,
ComponentNHKeyList component_nh_key_list,
bool  pbb_nh,
bool  learning_enabled 
)
static

Definition at line 192 of file bridge_route.cc.

Here is the call graph for this function:

AgentRouteData * BridgeAgentRouteTable::BuildNonBgpPeerData ( const string &  vrf_name,
const std::string &  vn_name,
uint32_t  label,
int  vxlan_id,
uint32_t  tunnel_type,
Composite::Type  type,
ComponentNHKeyList component_nh_key_list,
bool  pbb_nh,
bool  learning_enabled 
)
static

Definition at line 173 of file bridge_route.cc.

DBTableBase * BridgeAgentRouteTable::CreateTable ( DB db,
const std::string &  name 
)
static

Definition at line 65 of file bridge_route.cc.

Here is the call graph for this function:

void BridgeAgentRouteTable::Delete ( const Peer peer,
const std::string &  vrf_name,
const MacAddress mac,
uint32_t  ethernet_tag 
)
static

Definition at line 164 of file bridge_route.cc.

Here is the call graph for this function:

void BridgeAgentRouteTable::DeleteBridgeRoute ( const AgentRoute rt)

Definition at line 153 of file bridge_route.cc.

Here is the call graph for this function:

void BridgeAgentRouteTable::DeleteBridgeRoute ( const Peer peer,
const string &  vrf_name,
const MacAddress mac,
uint32_t  ethernet_tag,
COMPOSITETYPE  type 
)
static

Definition at line 226 of file bridge_route.cc.

Here is the call graph for this function:

void BridgeAgentRouteTable::DeleteBroadcastReq ( const Peer peer,
const std::string &  vrf_name,
uint32_t  ethernet_tag,
COMPOSITETYPE  type 
)
static

Definition at line 266 of file bridge_route.cc.

Here is the call graph for this function:

void BridgeAgentRouteTable::DeleteMacVmBindingRoute ( const Peer peer,
const std::string &  vrf_name,
const MacAddress mac,
const VmInterface vm_intf 
)

Definition at line 143 of file bridge_route.cc.

Here is the call graph for this function:

BridgeAgentRouteTable::DISALLOW_COPY_AND_ASSIGN ( BridgeAgentRouteTable  )
private
BridgeRouteEntry * BridgeAgentRouteTable::FindRoute ( const MacAddress mac)

Definition at line 72 of file bridge_route.cc.

BridgeRouteEntry * BridgeAgentRouteTable::FindRoute ( const MacAddress mac,
Peer::Type  peer 
)

Definition at line 82 of file bridge_route.cc.

BridgeRouteEntry * BridgeAgentRouteTable::FindRouteNoLock ( const MacAddress mac)

Definition at line 77 of file bridge_route.cc.

const VmInterface * BridgeAgentRouteTable::FindVmFromDhcpBinding ( const MacAddress mac)

Definition at line 293 of file bridge_route.cc.

Here is the call graph for this function:

AgentSandeshPtr BridgeAgentRouteTable::GetAgentSandesh ( const AgentSandeshArguments args,
const std::string &  context 
)
virtual

Reimplemented from AgentRouteTable.

Definition at line 476 of file bridge_route.cc.

Here is the call graph for this function:

virtual std::string BridgeAgentRouteTable::GetTableName ( ) const
inlinevirtual

Implements AgentRouteTable.

Definition at line 20 of file bridge_route.h.

virtual Agent::RouteTableType BridgeAgentRouteTable::GetTableType ( ) const
inlinevirtual

Implements AgentRouteTable.

Definition at line 21 of file bridge_route.h.

Member Data Documentation

DBTableWalker::WalkId BridgeAgentRouteTable::walkid_
private

Definition at line 95 of file bridge_route.h.


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