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

#include <bgp_ribout_updates.h>

Collaboration diagram for RibOutUpdates:

Classes

struct  Stats
 

Public Types

enum  QueueId { QFIRST = 0, QBULK = 0, QUPDATE, QCOUNT }
 
typedef std::vector
< UpdateQueue * > 
QueueVec
 

Public Member Functions

 RibOutUpdates (RibOut *ribout, int index)
 
virtual ~RibOutUpdates ()
 
void Enqueue (DBEntryBase *db_entry, RouteUpdate *rt_update)
 
virtual bool TailDequeue (int queue_id, const RibPeerSet &msync, RibPeerSet *blocked, RibPeerSet *unsync)
 
virtual bool PeerDequeue (int queue_id, IPeerUpdate *peer, RibPeerSet *blocked)
 
bool QueueJoin (int queue_id, int bit)
 
void QueueLeave (int queue_id, int bit)
 
bool Empty () const
 
size_t queue_size (int queue_id) const
 
size_t queue_marker_count (int queue_id) const
 
RibUpdateMonitormonitor ()
 
UpdateQueuequeue (int queue_id)
 
QueueVecqueue_vec ()
 
const QueueVecqueue_vec () const
 
void AddStatisticsInfo (int queue_id, Stats *stats) const
 

Static Public Member Functions

static void Initialize ()
 
static void Terminate ()
 

Static Public Attributes

static const int kQueueIdInvalid = -1
 

Private Member Functions

MessageGetMessage () const
 
bool DequeueCommon (UpdateQueue *queue, UpdateMarker *marker, RouteUpdate *rt_update, RibPeerSet *blocked)
 
void UpdatePack (int queue_id, Message *message, UpdateInfo *start_uinfo, const RibPeerSet &isect)
 
void UpdateSend (int queue_id, Message *message, const RibPeerSet &dst, RibPeerSet *blocked)
 
void UpdateFlush (const RibPeerSet &dst, RibPeerSet *blocked)
 
bool ClearAdvertisedBits (RouteUpdate *rt_update, UpdateInfo *uinfo, const RibPeerSet &bits, bool update_history)
 
void StoreHistory (RouteUpdate *rt_update)
 
void ClearState (RouteUpdate *rt_update)
 
void ClearUpdate (RouteUpdatePtr *update)
 
bool UpdateMarkersOnBlocked (UpdateMarker *marker, RouteUpdate *rt_update, const RibPeerSet *blocked)
 
 DISALLOW_COPY_AND_ASSIGN (RibOutUpdates)
 

Private Attributes

RibOutribout_
 
int index_
 
QueueVec queue_vec_
 
Stats stats_ [QCOUNT]
 
boost::scoped_ptr
< RibUpdateMonitor
monitor_
 

Static Private Attributes

static std::vector< Message * > bgp_messages_
 
static std::vector< Message * > xmpp_messages_
 

Friends

class RibOutUpdatesTest
 
class XmppMessageBuilderTest
 
class XmppMvpnMessageBuilderTest
 

Detailed Description

Definition at line 41 of file bgp_ribout_updates.h.

Member Typedef Documentation

typedef std::vector<UpdateQueue *> RibOutUpdates::QueueVec

Definition at line 43 of file bgp_ribout_updates.h.

Member Enumeration Documentation

Enumerator
QFIRST 
QBULK 
QUPDATE 
QCOUNT 

Definition at line 45 of file bgp_ribout_updates.h.

Constructor & Destructor Documentation

RibOutUpdates::RibOutUpdates ( RibOut ribout,
int  index 
)

Definition at line 30 of file bgp_ribout_updates.cc.

Here is the call graph for this function:

RibOutUpdates::~RibOutUpdates ( )
virtual

Definition at line 44 of file bgp_ribout_updates.cc.

Here is the call graph for this function:

Member Function Documentation

void RibOutUpdates::AddStatisticsInfo ( int  queue_id,
Stats stats 
) const

Definition at line 687 of file bgp_ribout_updates.cc.

bool RibOutUpdates::ClearAdvertisedBits ( RouteUpdate rt_update,
UpdateInfo uinfo,
const RibPeerSet bits,
bool  update_history 
)
private

Definition at line 599 of file bgp_ribout_updates.cc.

Here is the call graph for this function:

void RibOutUpdates::ClearState ( RouteUpdate rt_update)
private

Definition at line 539 of file bgp_ribout_updates.cc.

Here is the call graph for this function:

void RibOutUpdates::ClearUpdate ( RouteUpdatePtr update)
private

Definition at line 551 of file bgp_ribout_updates.cc.

Here is the call graph for this function:

bool RibOutUpdates::DequeueCommon ( UpdateQueue queue,
UpdateMarker marker,
RouteUpdate rt_update,
RibPeerSet blocked 
)
private

Definition at line 130 of file bgp_ribout_updates.cc.

Here is the call graph for this function:

RibOutUpdates::DISALLOW_COPY_AND_ASSIGN ( RibOutUpdates  )
private
bool RibOutUpdates::Empty ( ) const

Definition at line 654 of file bgp_ribout_updates.cc.

Here is the call graph for this function:

void RibOutUpdates::Enqueue ( DBEntryBase db_entry,
RouteUpdate rt_update 
)

Definition at line 102 of file bgp_ribout_updates.cc.

Here is the call graph for this function:

Message * RibOutUpdates::GetMessage ( ) const
private

Definition at line 69 of file bgp_ribout_updates.cc.

Here is the call graph for this function:

void RibOutUpdates::Initialize ( )
static

Definition at line 51 of file bgp_ribout_updates.cc.

Here is the call graph for this function:

RibUpdateMonitor* RibOutUpdates::monitor ( )
inline

Definition at line 85 of file bgp_ribout_updates.h.

bool RibOutUpdates::PeerDequeue ( int  queue_id,
IPeerUpdate peer,
RibPeerSet blocked 
)
virtual

Definition at line 296 of file bgp_ribout_updates.cc.

Here is the call graph for this function:

UpdateQueue* RibOutUpdates::queue ( int  queue_id)
inline

Definition at line 87 of file bgp_ribout_updates.h.

size_t RibOutUpdates::queue_marker_count ( int  queue_id) const

Definition at line 669 of file bgp_ribout_updates.cc.

Here is the call graph for this function:

size_t RibOutUpdates::queue_size ( int  queue_id) const

Definition at line 664 of file bgp_ribout_updates.cc.

Here is the call graph for this function:

QueueVec& RibOutUpdates::queue_vec ( )
inline

Definition at line 91 of file bgp_ribout_updates.h.

const QueueVec& RibOutUpdates::queue_vec ( ) const
inline

Definition at line 92 of file bgp_ribout_updates.h.

bool RibOutUpdates::QueueJoin ( int  queue_id,
int  bit 
)

Definition at line 674 of file bgp_ribout_updates.cc.

Here is the call graph for this function:

void RibOutUpdates::QueueLeave ( int  queue_id,
int  bit 
)

Definition at line 679 of file bgp_ribout_updates.cc.

Here is the call graph for this function:

void RibOutUpdates::StoreHistory ( RouteUpdate rt_update)
private

Definition at line 526 of file bgp_ribout_updates.cc.

Here is the call graph for this function:

bool RibOutUpdates::TailDequeue ( int  queue_id,
const RibPeerSet msync,
RibPeerSet blocked,
RibPeerSet unsync 
)
virtual

Definition at line 222 of file bgp_ribout_updates.cc.

Here is the call graph for this function:

void RibOutUpdates::Terminate ( )
static

Definition at line 59 of file bgp_ribout_updates.cc.

Here is the call graph for this function:

void RibOutUpdates::UpdateFlush ( const RibPeerSet dst,
RibPeerSet blocked 
)
private

Definition at line 504 of file bgp_ribout_updates.cc.

Here is the call graph for this function:

bool RibOutUpdates::UpdateMarkersOnBlocked ( UpdateMarker marker,
RouteUpdate rt_update,
const RibPeerSet blocked 
)
private

Definition at line 625 of file bgp_ribout_updates.cc.

Here is the call graph for this function:

void RibOutUpdates::UpdatePack ( int  queue_id,
Message message,
UpdateInfo start_uinfo,
const RibPeerSet isect 
)
private

Definition at line 407 of file bgp_ribout_updates.cc.

Here is the call graph for this function:

void RibOutUpdates::UpdateSend ( int  queue_id,
Message message,
const RibPeerSet dst,
RibPeerSet blocked 
)
private

Definition at line 457 of file bgp_ribout_updates.cc.

Here is the call graph for this function:

Friends And Related Function Documentation

friend class RibOutUpdatesTest
friend

Definition at line 97 of file bgp_ribout_updates.h.

friend class XmppMessageBuilderTest
friend

Definition at line 98 of file bgp_ribout_updates.h.

friend class XmppMvpnMessageBuilderTest
friend

Definition at line 99 of file bgp_ribout_updates.h.

Member Data Documentation

vector< Message * > RibOutUpdates::bgp_messages_
staticprivate

Definition at line 131 of file bgp_ribout_updates.h.

int RibOutUpdates::index_
private

Definition at line 127 of file bgp_ribout_updates.h.

const int RibOutUpdates::kQueueIdInvalid = -1
static

Definition at line 44 of file bgp_ribout_updates.h.

boost::scoped_ptr<RibUpdateMonitor> RibOutUpdates::monitor_
private

Definition at line 130 of file bgp_ribout_updates.h.

QueueVec RibOutUpdates::queue_vec_
private

Definition at line 128 of file bgp_ribout_updates.h.

RibOut* RibOutUpdates::ribout_
private

Definition at line 126 of file bgp_ribout_updates.h.

Stats RibOutUpdates::stats_[QCOUNT]
private

Definition at line 129 of file bgp_ribout_updates.h.

vector< Message * > RibOutUpdates::xmpp_messages_
staticprivate

Definition at line 132 of file bgp_ribout_updates.h.


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