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

#include <bgp_route.h>

Inheritance diagram for BgpRoute:
Collaboration diagram for BgpRoute:

Public Member Functions

 BgpRoute ()
 
 ~BgpRoute ()
 
bool HasPaths () const
 
const BgpPathBestPath () const
 
void InsertPath (BgpPath *path)
 
void DeletePath (BgpPath *path)
 
const BgpPathFindPath (BgpPath::PathSource src) const
 
const BgpPathFindPath (const IPeer *peer, bool include_secondary=false) const
 
BgpPathFindPath (const IPeer *peer, bool include_secondary=false)
 
BgpPathFindPath (const IpAddress &nexthop)
 
BgpPathFindPath (BgpPath::PathSource src, const IPeer *peer, uint32_t path_id)
 
BgpPathFindPath (BgpPath::PathSource src, uint32_t path_id)
 
bool RemovePath (BgpPath::PathSource src, const IPeer *peer=NULL, uint32_t path_id=0)
 
bool RemovePath (BgpPath::PathSource src, uint32_t path_id)
 
bool RemovePath (const IPeer *peer)
 
bool IsUsable () const
 
virtual bool IsValid () const
 
bool DuplicateForwardingPath (const BgpPath *in_path) const
 
BgpPathFindSecondaryPath (BgpRoute *src_rt, BgpPath::PathSource src, const IPeer *peer, uint32_t path_id)
 
bool RemoveSecondaryPath (const BgpRoute *src_rt, BgpPath::PathSource src, const IPeer *peer, uint32_t path_id)
 
virtual RouteDistinguisher GetRouteDistinguisher () const
 
void NotifyOrDelete ()
 
BgpTabletable ()
 
const BgpTabletable () const
 
virtual std::string ToXmppIdString () const
 
virtual void BuildProtoPrefix (BgpProtoPrefix *prefix, const BgpAttr *attr=NULL, uint32_t label=0, uint32_t l3_label=0) const
 
virtual void BuildBgpProtoNextHop (std::vector< uint8_t > &nh, IpAddress nexthop) const
 
size_t count () const
 
void FillRouteInfo (const BgpTable *table, ShowRouteBrief *show_route) const
 
void FillRouteInfo (const BgpTable *table, ShowRoute *show_route, const std::string &source="", const std::string &protocol="") const
 
uint32_t SubClusterId () const
 
void AddExtCommunitySubCluster (BgpPath *path)
 
- Public Member Functions inherited from Route
 Route ()
 
virtual ~Route ()
 
virtual int CompareTo (const Route &rhs) const =0
 
bool operator< (const Route &rhs) const
 
const Pathfront () const
 
void insert (const Path *path)
 
void remove (const Path *path)
 
void Sort (Compare compare, const Path *prev_front)
 
const PathListGetPathList () const
 
PathListGetPathList ()
 
- Public Member Functions inherited from DBEntry
 DBEntry ()
 
virtual ~DBEntry ()
 
virtual void SetKey (const DBRequestKey *key)=0
 
virtual bool IsLess (const DBEntry &rhs) const =0
 
bool operator< (const DBEntry &rhs) const
 
- Public Member Functions inherited from DBEntryBase
 DBEntryBase ()
 
virtual ~DBEntryBase ()
 
virtual std::string ToString () const =0
 
virtual KeyPtr GetDBRequestKey () const =0
 
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

 DISALLOW_COPY_AND_ASSIGN (BgpRoute)
 

Additional Inherited Members

- Public Types inherited from Route
typedef
boost::intrusive::member_hook
< Path,
boost::intrusive::list_member_hook
<>,&Path::node_
PathListMember
 
typedef boost::intrusive::list
< Path, PathListMember
PathList
 
typedef bool(* Compare )(const Path &path1, const Path &path2)
 
- Public Types inherited from DBEntryBase
typedef DBTableBase::ListenerId ListenerId
 
typedef std::unique_ptr
< DBRequestKey
KeyPtr
 
- Public Attributes inherited from DBEntryBase
boost::intrusive::list_member_hook chg_list_
 

Detailed Description

Definition at line 22 of file bgp_route.h.

Constructor & Destructor Documentation

BgpRoute::BgpRoute ( )

Definition at line 35 of file bgp_route.cc.

BgpRoute::~BgpRoute ( )

Definition at line 38 of file bgp_route.cc.

Here is the call graph for this function:

Member Function Documentation

void BgpRoute::AddExtCommunitySubCluster ( BgpPath path)
const BgpPath * BgpRoute::BestPath ( ) const

Definition at line 46 of file bgp_route.cc.

Here is the call graph for this function:

virtual void BgpRoute::BuildBgpProtoNextHop ( std::vector< uint8_t > &  nh,
IpAddress  nexthop 
) const
inlinevirtual

Reimplemented in EvpnRoute, MvpnRoute, ErmVpnRoute, Inet6Route, InetRoute, Inet6VpnRoute, InetVpnRoute, and RTargetRoute.

Definition at line 71 of file bgp_route.h.

virtual void BgpRoute::BuildProtoPrefix ( BgpProtoPrefix prefix,
const BgpAttr attr = NULL,
uint32_t  label = 0,
uint32_t  l3_label = 0 
) const
inlinevirtual

Reimplemented in EvpnRoute, MvpnRoute, ErmVpnRoute, Inet6Route, InetRoute, Inet6VpnRoute, InetVpnRoute, and RTargetRoute.

Definition at line 66 of file bgp_route.h.

size_t BgpRoute::count ( ) const

Definition at line 420 of file bgp_route.cc.

Here is the call graph for this function:

void BgpRoute::DeletePath ( BgpPath path)

Definition at line 126 of file bgp_route.cc.

Here is the call graph for this function:

BgpRoute::DISALLOW_COPY_AND_ASSIGN ( BgpRoute  )
private
bool BgpRoute::DuplicateForwardingPath ( const BgpPath in_path) const

Definition at line 352 of file bgp_route.cc.

Here is the call graph for this function:

void BgpRoute::FillRouteInfo ( const BgpTable table,
ShowRouteBrief *  show_route 
) const

Definition at line 432 of file bgp_route.cc.

Here is the call graph for this function:

void BgpRoute::FillRouteInfo ( const BgpTable table,
ShowRoute *  show_route,
const std::string &  source = "",
const std::string &  protocol = "" 
) const
const BgpPath * BgpRoute::FindPath ( BgpPath::PathSource  src) const

Definition at line 145 of file bgp_route.cc.

Here is the call graph for this function:

const BgpPath * BgpRoute::FindPath ( const IPeer peer,
bool  include_secondary = false 
) const

Definition at line 195 of file bgp_route.cc.

Here is the call graph for this function:

BgpPath * BgpRoute::FindPath ( const IPeer peer,
bool  include_secondary = false 
)

Definition at line 171 of file bgp_route.cc.

Here is the call graph for this function:

BgpPath * BgpRoute::FindPath ( const IpAddress nexthop)

Definition at line 204 of file bgp_route.cc.

Here is the call graph for this function:

BgpPath * BgpRoute::FindPath ( BgpPath::PathSource  src,
const IPeer peer,
uint32_t  path_id 
)

Definition at line 225 of file bgp_route.cc.

Here is the call graph for this function:

BgpPath * BgpRoute::FindPath ( BgpPath::PathSource  src,
uint32_t  path_id 
)

Definition at line 253 of file bgp_route.cc.

Here is the call graph for this function:

BgpPath * BgpRoute::FindSecondaryPath ( BgpRoute src_rt,
BgpPath::PathSource  src,
const IPeer peer,
uint32_t  path_id 
)

Definition at line 372 of file bgp_route.cc.

Here is the call graph for this function:

virtual RouteDistinguisher BgpRoute::GetRouteDistinguisher ( ) const
inlinevirtual

Reimplemented in Inet6VpnRoute, and InetVpnRoute.

Definition at line 56 of file bgp_route.h.

bool BgpRoute::HasPaths ( ) const
inline

Definition at line 27 of file bgp_route.h.

Here is the call graph for this function:

void BgpRoute::InsertPath ( BgpPath path)

Definition at line 60 of file bgp_route.cc.

Here is the call graph for this function:

bool BgpRoute::IsUsable ( ) const

Definition at line 324 of file bgp_route.cc.

Here is the call graph for this function:

bool BgpRoute::IsValid ( ) const
virtual

Reimplemented in EvpnRoute, MvpnRoute, and ErmVpnRoute.

Definition at line 338 of file bgp_route.cc.

Here is the call graph for this function:

void BgpRoute::NotifyOrDelete ( )

Definition at line 747 of file bgp_route.cc.

Here is the call graph for this function:

bool BgpRoute::RemovePath ( BgpPath::PathSource  src,
const IPeer peer = NULL,
uint32_t  path_id = 0 
)

Definition at line 262 of file bgp_route.cc.

Here is the call graph for this function:

bool BgpRoute::RemovePath ( BgpPath::PathSource  src,
uint32_t  path_id 
)

Definition at line 289 of file bgp_route.cc.

Here is the call graph for this function:

bool BgpRoute::RemovePath ( const IPeer peer)

Definition at line 298 of file bgp_route.cc.

Here is the call graph for this function:

bool BgpRoute::RemoveSecondaryPath ( const BgpRoute src_rt,
BgpPath::PathSource  src,
const IPeer peer,
uint32_t  path_id 
)

Definition at line 397 of file bgp_route.cc.

Here is the call graph for this function:

uint32_t BgpRoute::SubClusterId ( ) const

Definition at line 755 of file bgp_route.cc.

Here is the call graph for this function:

BgpTable * BgpRoute::table ( )

Definition at line 424 of file bgp_route.cc.

Here is the call graph for this function:

const BgpTable * BgpRoute::table ( ) const

Definition at line 428 of file bgp_route.cc.

Here is the call graph for this function:

virtual std::string BgpRoute::ToXmppIdString ( ) const
inlinevirtual

Reimplemented in EvpnRoute, MvpnRoute, and ErmVpnRoute.

Definition at line 64 of file bgp_route.h.

Here is the call graph for this function:


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