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

#include <path_preference.h>

Inheritance diagram for PathPreferenceSM:
Collaboration diagram for PathPreferenceSM:

Public Member Functions

 PathPreferenceSM (Agent *agent, const Peer *peer, AgentRoute *rt, bool dependent_rt, const PathPreference &pref)
 
 ~PathPreferenceSM ()
 
uint32_t sequence () const
 
uint32_t preference () const
 
bool wait_for_traffic () const
 
bool ecmp () const
 
uint32_t timeout () const
 
uint64_t last_stable_high_priority_change_at () const
 
uint32_t flap_count () const
 
bool is_dependent_rt () const
 
void set_sequence (uint32_t seq_no)
 
void set_preference (uint32_t preference)
 
void set_wait_for_traffic (bool wait_for_traffic)
 
void set_ecmp (bool ecmp)
 
void set_seen (bool seen)
 
void set_max_sequence (uint32_t seq)
 
void set_timeout (uint32_t timeout)
 
void set_last_stable_high_priority_change_at (uint64_t timestamp)
 
void set_dependent_rt (PathPreferenceSM *sm)
 
void set_is_dependent_rt (bool dependent_path)
 
void set_dependent_ip (const IpAddress &ip)
 
IpAddress dependent_ip ()
 
bool IsFlap () const
 
bool seen ()
 
uint32_t max_sequence () const
 
void Process ()
 
void Delete ()
 
void Log (std::string state)
 
void EnqueuePathChange ()
 
bool Retry ()
 
void StartRetryTimer ()
 
void CancelRetryTimer ()
 
bool RetryTimerRunning ()
 
void IncreaseRetryTimeout ()
 
void DecreaseRetryTimeout ()
 
bool IsPathFlapping () const
 
bool IsPathStable () const
 
void UpdateFlapTime ()
 
void UpdateDependentRoute ()
 

Static Public Attributes

static const uint32_t kMinInterval = 4 * 1000
 
static const uint32_t kMaxInterval = 32 * 1000
 
static const uint32_t kMaxFlapCount = 5
 

Private Types

typedef DependencyList
< PathPreferenceSM,
PathPreferenceSM
PathDependencyList
 

Private Member Functions

 DEPENDENCY_LIST (PathPreferenceSM, PathPreferenceSM, dependent_routes_)
 

Private Attributes

Agentagent_
 
const Peerpeer_
 
AgentRoutert_
 
PathPreference path_preference_
 
uint32_t max_sequence_
 
bool seen_
 
Timertimer_
 
uint32_t timeout_
 
uint64_t last_stable_high_priority_change_at_
 
uint64_t backoff_timer_fired_time_
 
uint32_t flap_count_
 
bool is_dependent_rt_
 
DependencyRef
< PathPreferenceSM,
PathPreferenceSM
dependent_rt_
 

Detailed Description

Definition at line 28 of file path_preference.h.

Member Typedef Documentation

Constructor & Destructor Documentation

PathPreferenceSM::PathPreferenceSM ( Agent agent,
const Peer peer,
AgentRoute rt,
bool  dependent_rt,
const PathPreference pref 
)

Definition at line 247 of file path_preference.cc.

Here is the call graph for this function:

PathPreferenceSM::~PathPreferenceSM ( )

Definition at line 260 of file path_preference.cc.

Here is the call graph for this function:

Member Function Documentation

void PathPreferenceSM::CancelRetryTimer ( )

Definition at line 294 of file path_preference.cc.

Here is the call graph for this function:

void PathPreferenceSM::DecreaseRetryTimeout ( )

Definition at line 324 of file path_preference.cc.

Here is the call graph for this function:

void PathPreferenceSM::Delete ( )
PathPreferenceSM::DEPENDENCY_LIST ( PathPreferenceSM  ,
PathPreferenceSM  ,
dependent_routes_   
)
private
IpAddress PathPreferenceSM::dependent_ip ( )
inline

Definition at line 95 of file path_preference.h.

Here is the call graph for this function:

bool PathPreferenceSM::ecmp ( ) const
inline

Definition at line 42 of file path_preference.h.

Here is the call graph for this function:

void PathPreferenceSM::EnqueuePathChange ( )

Definition at line 465 of file path_preference.cc.

Here is the call graph for this function:

uint32_t PathPreferenceSM::flap_count ( ) const
inline

Definition at line 48 of file path_preference.h.

void PathPreferenceSM::IncreaseRetryTimeout ( )

Definition at line 308 of file path_preference.cc.

bool PathPreferenceSM::is_dependent_rt ( ) const
inline

Definition at line 50 of file path_preference.h.

bool PathPreferenceSM::IsFlap ( ) const

Definition at line 315 of file path_preference.cc.

Here is the call graph for this function:

bool PathPreferenceSM::IsPathFlapping ( ) const

Definition at line 342 of file path_preference.cc.

Here is the call graph for this function:

bool PathPreferenceSM::IsPathStable ( ) const
uint64_t PathPreferenceSM::last_stable_high_priority_change_at ( ) const
inline

Definition at line 45 of file path_preference.h.

void PathPreferenceSM::Log ( std::string  state)

Definition at line 454 of file path_preference.cc.

Here is the call graph for this function:

uint32_t PathPreferenceSM::max_sequence ( ) const
inline

Definition at line 101 of file path_preference.h.

uint32_t PathPreferenceSM::preference ( ) const
inline

Definition at line 40 of file path_preference.h.

Here is the call graph for this function:

void PathPreferenceSM::Process ( )

Definition at line 365 of file path_preference.cc.

Here is the call graph for this function:

bool PathPreferenceSM::Retry ( )

Definition at line 275 of file path_preference.cc.

Here is the call graph for this function:

bool PathPreferenceSM::RetryTimerRunning ( )

Definition at line 301 of file path_preference.cc.

Here is the call graph for this function:

bool PathPreferenceSM::seen ( )
inline

Definition at line 100 of file path_preference.h.

uint32_t PathPreferenceSM::sequence ( ) const
inline

Definition at line 39 of file path_preference.h.

Here is the call graph for this function:

void PathPreferenceSM::set_dependent_ip ( const IpAddress ip)
inline

Definition at line 91 of file path_preference.h.

Here is the call graph for this function:

void PathPreferenceSM::set_dependent_rt ( PathPreferenceSM sm)
inline

Definition at line 83 of file path_preference.h.

Here is the call graph for this function:

void PathPreferenceSM::set_ecmp ( bool  ecmp)
inline

Definition at line 63 of file path_preference.h.

Here is the call graph for this function:

void PathPreferenceSM::set_is_dependent_rt ( bool  dependent_path)
inline

Definition at line 87 of file path_preference.h.

void PathPreferenceSM::set_last_stable_high_priority_change_at ( uint64_t  timestamp)
inline

Definition at line 79 of file path_preference.h.

void PathPreferenceSM::set_max_sequence ( uint32_t  seq)
inline

Definition at line 71 of file path_preference.h.

void PathPreferenceSM::set_preference ( uint32_t  preference)
inline

Definition at line 55 of file path_preference.h.

Here is the call graph for this function:

void PathPreferenceSM::set_seen ( bool  seen)
inline

Definition at line 67 of file path_preference.h.

Here is the call graph for this function:

void PathPreferenceSM::set_sequence ( uint32_t  seq_no)
inline

Definition at line 51 of file path_preference.h.

Here is the call graph for this function:

void PathPreferenceSM::set_timeout ( uint32_t  timeout)
inline

Definition at line 75 of file path_preference.h.

Here is the call graph for this function:

void PathPreferenceSM::set_wait_for_traffic ( bool  wait_for_traffic)
inline

Definition at line 59 of file path_preference.h.

Here is the call graph for this function:

void PathPreferenceSM::StartRetryTimer ( )

Definition at line 282 of file path_preference.cc.

Here is the call graph for this function:

uint32_t PathPreferenceSM::timeout ( ) const
inline

Definition at line 43 of file path_preference.h.

void PathPreferenceSM::UpdateDependentRoute ( )

Definition at line 349 of file path_preference.cc.

Here is the call graph for this function:

void PathPreferenceSM::UpdateFlapTime ( )

Definition at line 332 of file path_preference.cc.

Here is the call graph for this function:

bool PathPreferenceSM::wait_for_traffic ( ) const
inline

Definition at line 41 of file path_preference.h.

Here is the call graph for this function:

Member Data Documentation

Agent* PathPreferenceSM::agent_
private

Definition at line 117 of file path_preference.h.

uint64_t PathPreferenceSM::backoff_timer_fired_time_
private

Definition at line 126 of file path_preference.h.

DependencyRef<PathPreferenceSM, PathPreferenceSM> PathPreferenceSM::dependent_rt_
private

Definition at line 129 of file path_preference.h.

uint32_t PathPreferenceSM::flap_count_
private

Definition at line 127 of file path_preference.h.

bool PathPreferenceSM::is_dependent_rt_
private

Definition at line 128 of file path_preference.h.

const uint32_t PathPreferenceSM::kMaxFlapCount = 5
static

Definition at line 34 of file path_preference.h.

const uint32_t PathPreferenceSM::kMaxInterval = 32 * 1000
static

Definition at line 33 of file path_preference.h.

const uint32_t PathPreferenceSM::kMinInterval = 4 * 1000
static

Definition at line 32 of file path_preference.h.

uint64_t PathPreferenceSM::last_stable_high_priority_change_at_
private

Definition at line 125 of file path_preference.h.

uint32_t PathPreferenceSM::max_sequence_
private

Definition at line 121 of file path_preference.h.

PathPreference PathPreferenceSM::path_preference_
private

Definition at line 120 of file path_preference.h.

const Peer* PathPreferenceSM::peer_
private

Definition at line 118 of file path_preference.h.

AgentRoute* PathPreferenceSM::rt_
private

Definition at line 119 of file path_preference.h.

bool PathPreferenceSM::seen_
private

Definition at line 122 of file path_preference.h.

uint32_t PathPreferenceSM::timeout_
private

Definition at line 124 of file path_preference.h.

Timer* PathPreferenceSM::timer_
private

Definition at line 123 of file path_preference.h.


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