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

#include <mpls.h>

Inheritance diagram for MplsLabel:
Collaboration diagram for MplsLabel:

Public Types

typedef DependencyList
< AgentRoute, MplsLabel
DependentPathList
 
typedef std::map< std::string,
NextHopRef
FmgVrfNhMap
 
- Public Types inherited from AgentDBEntry
typedef boost::intrusive_ptr
< AgentDBEntry
AgentDBEntyRef
 
- Public Types inherited from DBEntryBase
typedef DBTableBase::ListenerId ListenerId
 
typedef std::unique_ptr
< DBRequestKey
KeyPtr
 

Public Member Functions

 MplsLabel (Agent *agent, uint32_t label)
 
virtual ~MplsLabel ()
 
virtual bool IsLess (const DBEntry &rhs) const
 
virtual std::string ToString () const
 
virtual void SetKey (const DBRequestKey *key)
 
virtual KeyPtr GetDBRequestKey () const
 
virtual uint32_t GetRefCount () const
 
virtual bool DBEntrySandesh (Sandesh *sresp, std::string &name) const
 
void Add (const DBRequest *req)
 
bool Change (const DBRequest *req)
 
void Delete (const DBRequest *req)
 
bool ChangeInternal (const DBRequest *req)
 
bool ChangeNH (NextHop *nh)
 
void SyncDependentPath ()
 
bool IsFabricMulticastReservedLabel () const
 
void SendObjectLog (const AgentDBTable *table, AgentLogEvent::type event) const
 
uint32_t label () const
 
const NextHopnexthop () const
 
FmgVrfNhMapfmg_nh_list ()
 
- Public Member Functions inherited from AgentDBEntry
 AgentDBEntry ()
 
virtual ~AgentDBEntry ()
 
void SetRefState () const
 
void ClearRefState () const
 
bool IsActive () const
 
DBStateGetAgentDBEntryState (int listener_id)
 
const DBStateGetAgentDBEntryState (int listener_id) const
 
virtual void AllocateResources (ResourceManager *resource_manager)
 
virtual void FreeResources (ResourceManager *resource_manager)
 
virtual void PostAdd ()
 
- Public Member Functions inherited from DBEntry
 DBEntry ()
 
virtual ~DBEntry ()
 
bool operator< (const DBEntry &rhs) const
 
- Public Member Functions inherited from DBEntryBase
 DBEntryBase ()
 
virtual ~DBEntryBase ()
 
virtual bool IsMoreSpecific (const std::string &match) const
 
virtual bool IsLessSpecific (const std::string &match) const
 
void SetState (DBTableBase *tbl_base, ListenerId listener, DBState *state)
 
void ClearState (DBTableBase *tbl_base, ListenerId listener)
 
DBStateGetState (DBTableBase *tbl_base, ListenerId listener) const
 
const DBStateGetState (const DBTableBase *tbl_base, ListenerId listener) const
 
bool is_state_empty (DBTablePartBase *tpart)
 
bool is_state_empty_unlocked (DBTablePartBase *tpart)
 
void Delete ()
 
void MarkDelete ()
 
void ClearDelete ()
 
bool IsDeleted () const
 
void set_onlist ()
 
void clear_onlist ()
 
bool is_onlist ()
 
void SetOnRemoveQ ()
 
bool IsOnRemoveQ ()
 
void ClearOnRemoveQ ()
 
void set_last_change_at (uint64_t time)
 
void set_last_change_at_to_now ()
 
const uint64_t last_change_at () const
 
const std::string last_change_at_str () const
 
void set_last_update_at (uint64_t time)
 
void set_last_update_at_to_now ()
 
const uint64_t last_update_at () const
 
DBTablePartBaseget_table_partition () const
 
void set_table_partition (DBTablePartBase *tpart)
 
DBTableBaseget_table () const
 
void Notify ()
 

Private Member Functions

 DEPENDENCY_LIST (AgentRoute, MplsLabel, mpls_label_)
 
 DISALLOW_COPY_AND_ASSIGN (MplsLabel)
 
- Private Member Functions inherited from AgentRefCount< MplsLabel >
uint32_t GetRefCount () const
 
 AgentRefCount ()
 
 AgentRefCount (const AgentRefCount &)
 
AgentRefCountoperator= (const AgentRefCount &)
 
virtual ~AgentRefCount ()
 
void swap (AgentRefCount &)
 

Private Attributes

Agentagent_
 
uint32_t label_
 
bool free_label_
 
NextHopnh_
 
FmgVrfNhMap fmg_nh_list_
 
- Private Attributes inherited from AgentRefCount< MplsLabel >
tbb::mutex back_ref_mutex_
 
std::set< IntrusiveReferrerback_ref_set_
 

Friends

class MplsTable
 

Additional Inherited Members

- Public Attributes inherited from DBEntryBase
boost::intrusive::list_member_hook chg_list_
 

Detailed Description

Definition at line 52 of file mpls.h.

Member Typedef Documentation

typedef std::map<std::string, NextHopRef> MplsLabel::FmgVrfNhMap

Definition at line 55 of file mpls.h.

Constructor & Destructor Documentation

MplsLabel::MplsLabel ( Agent agent,
uint32_t  label 
)

Definition at line 26 of file mpls.cc.

MplsLabel::~MplsLabel ( )
virtual

Definition at line 30 of file mpls.cc.

Here is the call graph for this function:

Member Function Documentation

void MplsLabel::Add ( const DBRequest req)

Definition at line 63 of file mpls.cc.

Here is the call graph for this function:

bool MplsLabel::Change ( const DBRequest req)

Definition at line 70 of file mpls.cc.

Here is the call graph for this function:

bool MplsLabel::ChangeInternal ( const DBRequest req)

Definition at line 83 of file mpls.cc.

Here is the call graph for this function:

bool MplsLabel::ChangeNH ( NextHop nh)

Definition at line 97 of file mpls.cc.

Here is the call graph for this function:

bool MplsLabel::DBEntrySandesh ( Sandesh sresp,
std::string &  name 
) const
virtual

Implements AgentDBEntry.

Definition at line 144 of file mpls.cc.

Here is the call graph for this function:

void MplsLabel::Delete ( const DBRequest req)

Definition at line 77 of file mpls.cc.

Here is the call graph for this function:

MplsLabel::DEPENDENCY_LIST ( AgentRoute  ,
MplsLabel  ,
mpls_label_   
)
private
MplsLabel::DISALLOW_COPY_AND_ASSIGN ( MplsLabel  )
private
FmgVrfNhMap& MplsLabel::fmg_nh_list ( )
inline

Definition at line 81 of file mpls.h.

DBEntryBase::KeyPtr MplsLabel::GetDBRequestKey ( ) const
virtual

Implements DBEntryBase.

Definition at line 49 of file mpls.cc.

uint32_t MplsLabel::GetRefCount ( ) const
virtual

Implements AgentDBEntry.

Definition at line 59 of file mpls.cc.

Here is the call graph for this function:

bool MplsLabel::IsFabricMulticastReservedLabel ( ) const

Definition at line 135 of file mpls.cc.

Here is the call graph for this function:

bool MplsLabel::IsLess ( const DBEntry rhs) const
virtual

Implements DBEntry.

Definition at line 40 of file mpls.cc.

uint32_t MplsLabel::label ( ) const
inline

Definition at line 79 of file mpls.h.

const NextHop* MplsLabel::nexthop ( ) const
inline

Definition at line 80 of file mpls.h.

void MplsLabel::SendObjectLog ( const AgentDBTable table,
AgentLogEvent::type  event 
) const

Definition at line 157 of file mpls.cc.

Here is the call graph for this function:

void MplsLabel::SetKey ( const DBRequestKey key)
virtual

Implements DBEntry.

Definition at line 54 of file mpls.cc.

Here is the call graph for this function:

void MplsLabel::SyncDependentPath ( )

Definition at line 126 of file mpls.cc.

Here is the call graph for this function:

std::string MplsLabel::ToString ( ) const
virtual

Implements DBEntryBase.

Definition at line 45 of file mpls.cc.

Friends And Related Function Documentation

friend class MplsTable
friend

Definition at line 86 of file mpls.h.

Member Data Documentation

Agent* MplsLabel::agent_
private

Definition at line 87 of file mpls.h.

FmgVrfNhMap MplsLabel::fmg_nh_list_
private

Definition at line 91 of file mpls.h.

bool MplsLabel::free_label_
private

Definition at line 89 of file mpls.h.

uint32_t MplsLabel::label_
private

Definition at line 88 of file mpls.h.

NextHop* MplsLabel::nh_
private

Definition at line 90 of file mpls.h.


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