OpenSDN source code
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< LogicalInterfaceUveEntryLogicalInterfaceUveEntryPtr
 
typedef std::map< boost::uuids::uuid, LogicalInterfaceUveEntryPtrLogicalInterfaceMap
 
typedef std::pair< boost::uuids::uuid, LogicalInterfaceUveEntryPtrLogicalInterfacePair
 
typedef std::set< boost::uuids::uuidLogicalInterfaceSet
 
typedef boost::shared_ptr< ProuterUveEntryProuterUveEntryPtr
 
typedef std::map< boost::uuids::uuid, ProuterUveEntryPtrUveProuterMap
 
typedef std::pair< boost::uuids::uuid, ProuterUveEntryPtrUveProuterPair
 
typedef boost::shared_ptr< PhyInterfaceUveEntryPhyInterfaceUveEntryPtr
 
typedef std::map< std::string, PhyInterfaceUveEntryPtrUvePhyInterfaceMap
 
typedef std::pair< std::string, PhyInterfaceUveEntryPtrUvePhyInterfacePair
 

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

◆ InterfaceSet

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

Definition at line 31 of file prouter_uve_table.h.

◆ LogicalInterfaceMap

◆ LogicalInterfacePair

◆ LogicalInterfaceSet

Definition at line 68 of file prouter_uve_table.h.

◆ LogicalInterfaceUveEntryPtr

Definition at line 45 of file prouter_uve_table.h.

◆ PhyInterfaceUveEntryPtr

Definition at line 102 of file prouter_uve_table.h.

◆ ProuterUveEntryPtr

Definition at line 87 of file prouter_uve_table.h.

◆ UvePhyInterfaceMap

Definition at line 104 of file prouter_uve_table.h.

◆ UvePhyInterfacePair

Definition at line 106 of file prouter_uve_table.h.

◆ UveProuterMap

◆ UveProuterPair

Constructor & Destructor Documentation

◆ ProuterUveTable()

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::~ProuterUveTable ( )
virtual

Definition at line 42 of file prouter_uve_table.cc.

Here is the call graph for this function:

Member Function Documentation

◆ AddHandler()

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

Definition at line 453 of file prouter_uve_table.cc.

Here is the call graph for this function:

◆ AddLogicalToPhysical()

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:

◆ AddProuterLogicalInterface()

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

Definition at line 537 of file prouter_uve_table.cc.

Here is the call graph for this function:

◆ AddUpdateLogicalInterface()

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:

◆ AddUpdatePhysicalInterface()

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:

◆ Allocate()

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

Definition at line 281 of file prouter_uve_table.cc.

◆ DeleteHandler()

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:

◆ DeleteLogicalFromPhysical()

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:

◆ DeletePhysicalFromProuter()

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:

◆ DeleteProuterLogicalInterface()

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

Definition at line 562 of file prouter_uve_table.cc.

Here is the call graph for this function:

◆ DISALLOW_COPY_AND_ASSIGN()

ProuterUveTable::DISALLOW_COPY_AND_ASSIGN ( ProuterUveTable  )
private

◆ DispatchLogicalInterfaceMsg()

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

Definition at line 862 of file prouter_uve_table.cc.

◆ DispatchPhysicalInterfaceMsg()

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

Definition at line 888 of file prouter_uve_table.cc.

◆ DispatchProuterMsg()

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

Definition at line 438 of file prouter_uve_table.cc.

◆ FrameProuterMsg()

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:

◆ InterfaceNotify()

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:

◆ InterfaceToProuter()

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

Definition at line 317 of file prouter_uve_table.cc.

Here is the call graph for this function:

◆ LITimerExpiry()

bool ProuterUveTable::LITimerExpiry ( )

Definition at line 147 of file prouter_uve_table.cc.

Here is the call graph for this function:

◆ MarkChanged()

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

◆ MarkDeletedLogical()

void ProuterUveTable::MarkDeletedLogical ( const LogicalInterface pintf)
private

Definition at line 483 of file prouter_uve_table.cc.

◆ MarkDeletedPhysical()

void ProuterUveTable::MarkDeletedPhysical ( const Interface pintf)
private

Definition at line 506 of file prouter_uve_table.cc.

◆ MarkPhysicalDeviceChanged()

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:

◆ NameToInterface()

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:

◆ NameToPhyInterfaceUveEntry()

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

Definition at line 296 of file prouter_uve_table.cc.

◆ PDEntryToProuterUveEntry()

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

Definition at line 288 of file prouter_uve_table.cc.

◆ PhysicalDeviceNotify()

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:

◆ PhysicalInterfaceHandler()

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:

◆ PITimerExpiry()

bool ProuterUveTable::PITimerExpiry ( )

Definition at line 101 of file prouter_uve_table.cc.

Here is the call graph for this function:

◆ RegisterDBClients()

void ProuterUveTable::RegisterDBClients ( )

Definition at line 822 of file prouter_uve_table.cc.

Here is the call graph for this function:

◆ SendLogicalInterfaceDeleteMsg()

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:

◆ SendLogicalInterfaceMsg()

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:

◆ SendPhysicalInterfaceDeleteMsg()

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:

◆ SendPhysicalInterfaceMsg()

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:

◆ SendProuterDeleteMsg()

void ProuterUveTable::SendProuterDeleteMsg ( ProuterUveEntry e)
private

Definition at line 417 of file prouter_uve_table.cc.

Here is the call graph for this function:

◆ SendProuterMsg()

bool ProuterUveTable::SendProuterMsg ( ProuterUveEntry entry)
private

Definition at line 410 of file prouter_uve_table.cc.

Here is the call graph for this function:

◆ SendProuterMsgFromPhyInterface()

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:

◆ SendProuterVrouterAssociation()

void ProuterUveTable::SendProuterVrouterAssociation ( )
private

Definition at line 442 of file prouter_uve_table.cc.

Here is the call graph for this function:

◆ set_expiry_time()

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:

◆ Shutdown()

void ProuterUveTable::Shutdown ( void  )

Definition at line 832 of file prouter_uve_table.cc.

Here is the call graph for this function:

◆ TimerCleanup()

void ProuterUveTable::TimerCleanup ( Timer timer)
private

Definition at line 48 of file prouter_uve_table.cc.

Here is the call graph for this function:

◆ TimerExpiry()

bool ProuterUveTable::TimerExpiry ( )

Definition at line 55 of file prouter_uve_table.cc.

Here is the call graph for this function:

◆ UpdateMastership()

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:

◆ VMInterfaceAdd()

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:

◆ VmInterfaceHandler()

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:

◆ VMInterfaceRemove()

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_

Agent* ProuterUveTable::agent_
private

Definition at line 172 of file prouter_uve_table.h.

◆ interface_listener_id_

DBTableBase::ListenerId ProuterUveTable::interface_listener_id_
private

Definition at line 174 of file prouter_uve_table.h.

◆ kInvalidVlanId

const uint16_t ProuterUveTable::kInvalidVlanId = 0xFFFF
static

Definition at line 108 of file prouter_uve_table.h.

◆ li_timer_

Timer* ProuterUveTable::li_timer_
private

Definition at line 183 of file prouter_uve_table.h.

◆ li_timer_last_visited_

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

Definition at line 182 of file prouter_uve_table.h.

◆ physical_device_listener_id_

DBTableBase::ListenerId ProuterUveTable::physical_device_listener_id_
private

Definition at line 173 of file prouter_uve_table.h.

◆ pi_timer_

Timer* ProuterUveTable::pi_timer_
private

Definition at line 180 of file prouter_uve_table.h.

◆ pi_timer_last_visited_

std::string ProuterUveTable::pi_timer_last_visited_
private

Definition at line 179 of file prouter_uve_table.h.

◆ pr_timer_

Timer* ProuterUveTable::pr_timer_
private

Definition at line 177 of file prouter_uve_table.h.

◆ pr_timer_last_visited_

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

Definition at line 176 of file prouter_uve_table.h.

◆ uve_logical_interface_map_

LogicalInterfaceMap ProuterUveTable::uve_logical_interface_map_
protected

Definition at line 125 of file prouter_uve_table.h.

◆ uve_phy_interface_map_

UvePhyInterfaceMap ProuterUveTable::uve_phy_interface_map_
protected

Definition at line 124 of file prouter_uve_table.h.

◆ uve_prouter_map_

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: