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

#include <prouter_uve_table.h>

Collaboration diagram for ProuterUveTable:

Classes

struct  LogicalInterfaceUveEntry
 
struct  PhyInterfaceUveEntry
 
struct  PhysicalDeviceState
 
struct  ProuterInterfaceState
 
struct  ProuterUveEntry
 
struct  VmInterfaceState
 

Public Types

typedef std::set< std::string > InterfaceSet
 
typedef boost::shared_ptr
< LogicalInterfaceUveEntry
LogicalInterfaceUveEntryPtr
 
typedef std::map
< boost::uuids::uuid,
LogicalInterfaceUveEntryPtr
LogicalInterfaceMap
 
typedef std::pair
< boost::uuids::uuid,
LogicalInterfaceUveEntryPtr
LogicalInterfacePair
 
typedef std::set
< boost::uuids::uuid
LogicalInterfaceSet
 
typedef boost::shared_ptr
< ProuterUveEntry
ProuterUveEntryPtr
 
typedef std::map
< boost::uuids::uuid,
ProuterUveEntryPtr
UveProuterMap
 
typedef std::pair
< boost::uuids::uuid,
ProuterUveEntryPtr
UveProuterPair
 
typedef boost::shared_ptr
< PhyInterfaceUveEntry
PhyInterfaceUveEntryPtr
 
typedef std::map< std::string,
PhyInterfaceUveEntryPtr
UvePhyInterfaceMap
 
typedef std::pair< std::string,
PhyInterfaceUveEntryPtr
UvePhyInterfacePair
 

Public Member Functions

 ProuterUveTable (Agent *agent, uint32_t default_intvl)
 
virtual ~ProuterUveTable ()
 
void RegisterDBClients ()
 
void Shutdown (void)
 
virtual void DispatchProuterMsg (const ProuterData &uve)
 
virtual void DispatchLogicalInterfaceMsg (const UveLogicalInterfaceAgent &u)
 
virtual void DispatchPhysicalInterfaceMsg (const UvePhysicalInterfaceAgent &uve)
 
bool TimerExpiry ()
 
bool PITimerExpiry ()
 
bool LITimerExpiry ()
 
void UpdateMastership (const boost::uuids::uuid &u, bool value)
 

Static Public Attributes

static const uint16_t kInvalidVlanId = 0xFFFF
 

Protected Attributes

UveProuterMap uve_prouter_map_
 
UvePhyInterfaceMap uve_phy_interface_map_
 
LogicalInterfaceMap uve_logical_interface_map_
 

Private Member Functions

ProuterUveEntryPtr Allocate (const PhysicalDevice *pr)
 
ProuterUveEntryPDEntryToProuterUveEntry (const boost::uuids::uuid &u) const
 
PhyInterfaceUveEntryNameToPhyInterfaceUveEntry (const std::string &name) const
 
const InterfaceNameToInterface (const std::string &name) const
 
void FrameProuterMsg (ProuterUveEntry *entry, ProuterData *uve) const
 
void SendProuterDeleteMsg (ProuterUveEntry *e)
 
bool SendProuterMsg (ProuterUveEntry *entry)
 
void SendProuterMsgFromPhyInterface (const Interface *pi)
 
void PhysicalDeviceNotify (DBTablePartBase *partition, DBEntryBase *e)
 
void PhysicalInterfaceHandler (const Interface *i, const boost::uuids::uuid &u)
 
void MarkDeletedPhysical (const Interface *pintf)
 
void DeletePhysicalFromProuter (const Interface *i, const boost::uuids::uuid &u)
 
void InterfaceNotify (DBTablePartBase *partition, DBEntryBase *e)
 
ProuterUveEntryAddHandler (const PhysicalDevice *p)
 
void DeleteHandler (const PhysicalDevice *p)
 
void AddLogicalToPhysical (const Interface *p, const LogicalInterface *i)
 
void AddUpdateLogicalInterface (const LogicalInterface *i)
 
void MarkDeletedLogical (const LogicalInterface *pintf)
 
void DeleteLogicalFromPhysical (const std::string &name, const LogicalInterface *i)
 
void AddProuterLogicalInterface (const PhysicalDevice *p, const LogicalInterface *intf)
 
void DeleteProuterLogicalInterface (const boost::uuids::uuid &u, const LogicalInterface *intf)
 
const PhysicalDeviceInterfaceToProuter (const Interface *intf)
 
void SendProuterVrouterAssociation ()
 
void set_expiry_time (int time, Timer *timer)
 
void TimerCleanup (Timer *timer)
 
void VmInterfaceHandler (DBTablePartBase *partition, DBEntryBase *e)
 
void VMInterfaceAdd (const VmInterface *vmi)
 
void VMInterfaceRemove (const boost::uuids::uuid &li, const VmInterface *vmi)
 
void MarkPhysicalDeviceChanged (const PhysicalDevice *pde)
 
void MarkChanged (const boost::uuids::uuid &li)
 
void AddUpdatePhysicalInterface (const Interface *intf)
 
void SendPhysicalInterfaceDeleteMsg (const std::string &cfg_name)
 
void SendPhysicalInterfaceMsg (const std::string &name, PhyInterfaceUveEntry *entry)
 
void SendLogicalInterfaceDeleteMsg (const std::string &config_name)
 
void SendLogicalInterfaceMsg (const boost::uuids::uuid &u, LogicalInterfaceUveEntry *entry)
 
 DISALLOW_COPY_AND_ASSIGN (ProuterUveTable)
 

Private Attributes

Agentagent_
 
DBTableBase::ListenerId physical_device_listener_id_
 
DBTableBase::ListenerId interface_listener_id_
 
boost::uuids::uuid pr_timer_last_visited_
 
Timerpr_timer_
 
std::string pi_timer_last_visited_
 
Timerpi_timer_
 
boost::uuids::uuid li_timer_last_visited_
 
Timerli_timer_
 

Detailed Description

Definition at line 29 of file prouter_uve_table.h.

Member Typedef Documentation

typedef std::set<std::string> ProuterUveTable::InterfaceSet

Definition at line 31 of file prouter_uve_table.h.

Definition at line 68 of file prouter_uve_table.h.

Definition at line 45 of file prouter_uve_table.h.

Definition at line 102 of file prouter_uve_table.h.

Definition at line 87 of file prouter_uve_table.h.

Definition at line 104 of file prouter_uve_table.h.

Definition at line 106 of file prouter_uve_table.h.

Constructor & Destructor Documentation

ProuterUveTable::ProuterUveTable ( Agent agent,
uint32_t  default_intvl 
)
explicit

Definition at line 14 of file prouter_uve_table.cc.

Here is the call graph for this function:

ProuterUveTable::~ProuterUveTable ( )
virtual

Definition at line 42 of file prouter_uve_table.cc.

Here is the call graph for this function:

Member Function Documentation

ProuterUveTable::ProuterUveEntry * ProuterUveTable::AddHandler ( const PhysicalDevice p)
private

Definition at line 454 of file prouter_uve_table.cc.

Here is the call graph for this function:

void ProuterUveTable::AddLogicalToPhysical ( const Interface p,
const LogicalInterface i 
)
private

Definition at line 516 of file prouter_uve_table.cc.

Here is the call graph for this function:

void ProuterUveTable::AddProuterLogicalInterface ( const PhysicalDevice p,
const LogicalInterface intf 
)
private

Definition at line 538 of file prouter_uve_table.cc.

Here is the call graph for this function:

void ProuterUveTable::AddUpdateLogicalInterface ( const LogicalInterface i)
private

Definition at line 492 of file prouter_uve_table.cc.

Here is the call graph for this function:

void ProuterUveTable::AddUpdatePhysicalInterface ( const Interface intf)
private

Definition at line 614 of file prouter_uve_table.cc.

Here is the call graph for this function:

ProuterUveTable::ProuterUveEntryPtr ProuterUveTable::Allocate ( const PhysicalDevice pr)
private

Definition at line 282 of file prouter_uve_table.cc.

void ProuterUveTable::DeleteHandler ( const PhysicalDevice p)
private

Definition at line 471 of file prouter_uve_table.cc.

Here is the call graph for this function:

void ProuterUveTable::DeleteLogicalFromPhysical ( const std::string &  name,
const LogicalInterface i 
)
private

Definition at line 549 of file prouter_uve_table.cc.

Here is the call graph for this function:

void ProuterUveTable::DeletePhysicalFromProuter ( const Interface i,
const boost::uuids::uuid u 
)
private

Definition at line 604 of file prouter_uve_table.cc.

Here is the call graph for this function:

void ProuterUveTable::DeleteProuterLogicalInterface ( const boost::uuids::uuid u,
const LogicalInterface intf 
)
private

Definition at line 563 of file prouter_uve_table.cc.

Here is the call graph for this function:

ProuterUveTable::DISALLOW_COPY_AND_ASSIGN ( ProuterUveTable  )
private
void ProuterUveTable::DispatchLogicalInterfaceMsg ( const UveLogicalInterfaceAgent &  u)
virtual

Definition at line 863 of file prouter_uve_table.cc.

void ProuterUveTable::DispatchPhysicalInterfaceMsg ( const UvePhysicalInterfaceAgent &  uve)
virtual

Definition at line 889 of file prouter_uve_table.cc.

void ProuterUveTable::DispatchProuterMsg ( const ProuterData &  uve)
virtual

Definition at line 438 of file prouter_uve_table.cc.

void ProuterUveTable::FrameProuterMsg ( ProuterUveEntry entry,
ProuterData *  uve 
) const
private

Definition at line 353 of file prouter_uve_table.cc.

Here is the call graph for this function:

void ProuterUveTable::InterfaceNotify ( DBTablePartBase partition,
DBEntryBase e 
)
private

Definition at line 715 of file prouter_uve_table.cc.

Here is the call graph for this function:

const PhysicalDevice * ProuterUveTable::InterfaceToProuter ( const Interface intf)
private

Definition at line 318 of file prouter_uve_table.cc.

Here is the call graph for this function:

bool ProuterUveTable::LITimerExpiry ( )

Definition at line 147 of file prouter_uve_table.cc.

Here is the call graph for this function:

void ProuterUveTable::MarkChanged ( const boost::uuids::uuid li)
private
void ProuterUveTable::MarkDeletedLogical ( const LogicalInterface pintf)
private

Definition at line 483 of file prouter_uve_table.cc.

void ProuterUveTable::MarkDeletedPhysical ( const Interface pintf)
private

Definition at line 506 of file prouter_uve_table.cc.

void ProuterUveTable::MarkPhysicalDeviceChanged ( const PhysicalDevice pde)
private

Definition at line 424 of file prouter_uve_table.cc.

Here is the call graph for this function:

const Interface * ProuterUveTable::NameToInterface ( const std::string &  name) const
private

Definition at line 305 of file prouter_uve_table.cc.

Here is the call graph for this function:

ProuterUveTable::PhyInterfaceUveEntry * ProuterUveTable::NameToPhyInterfaceUveEntry ( const std::string &  name) const
private

Definition at line 297 of file prouter_uve_table.cc.

ProuterUveTable::ProuterUveEntry * ProuterUveTable::PDEntryToProuterUveEntry ( const boost::uuids::uuid u) const
private

Definition at line 288 of file prouter_uve_table.cc.

void ProuterUveTable::PhysicalDeviceNotify ( DBTablePartBase partition,
DBEntryBase e 
)
private

Definition at line 576 of file prouter_uve_table.cc.

Here is the call graph for this function:

void ProuterUveTable::PhysicalInterfaceHandler ( const Interface i,
const boost::uuids::uuid u 
)
private

Definition at line 625 of file prouter_uve_table.cc.

Here is the call graph for this function:

bool ProuterUveTable::PITimerExpiry ( )

Definition at line 101 of file prouter_uve_table.cc.

Here is the call graph for this function:

void ProuterUveTable::RegisterDBClients ( )

Definition at line 822 of file prouter_uve_table.cc.

Here is the call graph for this function:

void ProuterUveTable::SendLogicalInterfaceDeleteMsg ( const std::string &  config_name)
private

Definition at line 840 of file prouter_uve_table.cc.

Here is the call graph for this function:

void ProuterUveTable::SendLogicalInterfaceMsg ( const boost::uuids::uuid u,
LogicalInterfaceUveEntry entry 
)
private

Definition at line 847 of file prouter_uve_table.cc.

Here is the call graph for this function:

void ProuterUveTable::SendPhysicalInterfaceDeleteMsg ( const std::string &  cfg_name)
private

Definition at line 867 of file prouter_uve_table.cc.

Here is the call graph for this function:

void ProuterUveTable::SendPhysicalInterfaceMsg ( const std::string &  name,
PhyInterfaceUveEntry entry 
)
private

Definition at line 874 of file prouter_uve_table.cc.

Here is the call graph for this function:

void ProuterUveTable::SendProuterDeleteMsg ( ProuterUveEntry e)
private

Definition at line 417 of file prouter_uve_table.cc.

Here is the call graph for this function:

bool ProuterUveTable::SendProuterMsg ( ProuterUveEntry entry)
private

Definition at line 410 of file prouter_uve_table.cc.

Here is the call graph for this function:

void ProuterUveTable::SendProuterMsgFromPhyInterface ( const Interface pi)
private

Definition at line 433 of file prouter_uve_table.cc.

Here is the call graph for this function:

void ProuterUveTable::SendProuterVrouterAssociation ( )
private

Definition at line 442 of file prouter_uve_table.cc.

Here is the call graph for this function:

void ProuterUveTable::set_expiry_time ( int  time,
Timer timer 
)
private

Definition at line 193 of file prouter_uve_table.cc.

Here is the call graph for this function:

void ProuterUveTable::Shutdown ( void  )

Definition at line 832 of file prouter_uve_table.cc.

Here is the call graph for this function:

void ProuterUveTable::TimerCleanup ( Timer timer)
private

Definition at line 48 of file prouter_uve_table.cc.

Here is the call graph for this function:

bool ProuterUveTable::TimerExpiry ( )

Definition at line 55 of file prouter_uve_table.cc.

Here is the call graph for this function:

void ProuterUveTable::UpdateMastership ( const boost::uuids::uuid u,
bool  value 
)

Definition at line 893 of file prouter_uve_table.cc.

Here is the call graph for this function:

void ProuterUveTable::VMInterfaceAdd ( const VmInterface vmi)
private

Definition at line 648 of file prouter_uve_table.cc.

Here is the call graph for this function:

void ProuterUveTable::VmInterfaceHandler ( DBTablePartBase partition,
DBEntryBase e 
)
private

Definition at line 687 of file prouter_uve_table.cc.

Here is the call graph for this function:

void ProuterUveTable::VMInterfaceRemove ( const boost::uuids::uuid li,
const VmInterface vmi 
)
private

Definition at line 673 of file prouter_uve_table.cc.

Here is the call graph for this function:

Member Data Documentation

Agent* ProuterUveTable::agent_
private

Definition at line 172 of file prouter_uve_table.h.

DBTableBase::ListenerId ProuterUveTable::interface_listener_id_
private

Definition at line 174 of file prouter_uve_table.h.

const uint16_t ProuterUveTable::kInvalidVlanId = 0xFFFF
static

Definition at line 108 of file prouter_uve_table.h.

Timer* ProuterUveTable::li_timer_
private

Definition at line 183 of file prouter_uve_table.h.

boost::uuids::uuid ProuterUveTable::li_timer_last_visited_
private

Definition at line 182 of file prouter_uve_table.h.

DBTableBase::ListenerId ProuterUveTable::physical_device_listener_id_
private

Definition at line 173 of file prouter_uve_table.h.

Timer* ProuterUveTable::pi_timer_
private

Definition at line 180 of file prouter_uve_table.h.

std::string ProuterUveTable::pi_timer_last_visited_
private

Definition at line 179 of file prouter_uve_table.h.

Timer* ProuterUveTable::pr_timer_
private

Definition at line 177 of file prouter_uve_table.h.

boost::uuids::uuid ProuterUveTable::pr_timer_last_visited_
private

Definition at line 176 of file prouter_uve_table.h.

LogicalInterfaceMap ProuterUveTable::uve_logical_interface_map_
protected

Definition at line 125 of file prouter_uve_table.h.

UvePhyInterfaceMap ProuterUveTable::uve_phy_interface_map_
protected

Definition at line 124 of file prouter_uve_table.h.

UveProuterMap ProuterUveTable::uve_prouter_map_
protected

Definition at line 123 of file prouter_uve_table.h.


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