OpenSDN source code
ControllerEcmpRoute Class Reference

#include <controller_route_path.h>

Inheritance diagram for ControllerEcmpRoute:
Collaboration diagram for ControllerEcmpRoute:

Public Types

typedef std::list< ClonedLocalPath * > ClonedLocalPathList
 
typedef ClonedLocalPathList::iterator ClonedLocalPathListIter
 
- Public Types inherited from AgentRouteData
enum  Type { ADD_DEL_CHANGE , ROUTE_PREFERENCE_CHANGE , IPAM_SUBNET }
 

Public Member Functions

template<typename TYPE >
 ControllerEcmpRoute (const BgpPeer *peer, const VnListType &vn_list, const EcmpLoadBalance &ecmp_load_balance, const TagList &tag_list, const TYPE *item, const AgentRouteTable *rt_table, const std::string &prefix_str)
 
 ControllerEcmpRoute (const BgpPeer *peer, const VnListType &vn_list, const EcmpLoadBalance &ecmp_load_balance, const TagList &tag_list, const SecurityGroupList &sg_list, const PathPreference &path_pref, TunnelType::TypeBmap tunnel_bmap, DBRequest &nh_req, const std::string &prefix_str, const std::string vrf_name="")
 
 ControllerEcmpRoute (const BgpPeer *peer, const VnListType &vn_list, const EcmpLoadBalance &ecmp_load_balance, const TagList &tag_list, const SecurityGroupList &sg_list, const PathPreference &path_pref, TunnelType::TypeBmap tunnel_bmap, std::vector< IpAddress > &tunnel_dest_list, std::vector< uint32_t > &label_list, const std::string &prefix_str, const std::string &vrf_name)
 
virtual ~ControllerEcmpRoute ()
 
virtual bool AddChangePathExtended (Agent *agent, AgentPath *path, const AgentRoute *rt)
 
virtual string ToString () const
 
bool CopyToPath (AgentPath *path)
 
void BuildNhReq (const string &vrf_name, const autogen::ItemType *item_type, const VnListType &vn_list)
 
ClonedLocalPathListcloned_local_path_list ()
 
void set_copy_local_path (bool copy_local_path)
 
DBRequestnh_req ()
 
- Public Member Functions inherited from ControllerPeerPath
 ControllerPeerPath (const BgpPeer *peer)
 
 ~ControllerPeerPath ()
 
virtual bool UpdateRoute (AgentRoute *route)
 
- Public Member Functions inherited from AgentRouteData
 AgentRouteData (Type type, bool is_multicast, uint64_t sequence_number)
 
virtual ~AgentRouteData ()
 
virtual AgentPathCreateAgentPath (const Peer *peer, AgentRoute *rt) const
 
virtual bool CanDeletePath (Agent *agent, AgentPath *path, const AgentRoute *rt) const
 
bool AddChangePath (Agent *agent, AgentPath *path, const AgentRoute *rt)
 
bool is_multicast () const
 
uint64_t sequence_number () const
 
 DISALLOW_COPY_AND_ASSIGN (AgentRouteData)
 
- Public Member Functions inherited from AgentData
 AgentData ()
 
virtual ~AgentData ()
 
- Public Member Functions inherited from DBRequestData
virtual ~DBRequestData ()
 

Static Public Attributes

static const uint32_t maximum_ecmp_paths = 128
 
- Static Public Attributes inherited from ControllerPeerPath
static const uint64_t kInvalidPeerIdentifier = 0xFFFFFFFFFFFFFFFFLL
 

Private Member Functions

 DISALLOW_COPY_AND_ASSIGN (ControllerEcmpRoute)
 

Private Attributes

VnListType vn_list_
 
SecurityGroupList sg_list_
 
EcmpLoadBalance ecmp_load_balance_
 
TagList tag_list_
 
PathPreference path_preference_
 
TunnelType::TypeBmap tunnel_bmap_
 
DBRequest nh_req_
 
ClonedLocalPathList cloned_data_list_
 
Agentagent_
 
bool copy_local_path_
 
std::vector< IpAddresstunnel_dest_list_
 
std::vector< uint32_t > label_list_
 
string vrf_name_
 
uint32_t vxlan_id_
 

Friends

class AgentXmppChannel
 

Additional Inherited Members

- Public Attributes inherited from AgentRouteData
Type type_
 
bool is_multicast_
 
uint64_t sequence_number_
 

Detailed Description

Definition at line 185 of file controller_route_path.h.

Member Typedef Documentation

◆ ClonedLocalPathList

Definition at line 188 of file controller_route_path.h.

◆ ClonedLocalPathListIter

typedef ClonedLocalPathList::iterator ControllerEcmpRoute::ClonedLocalPathListIter

Definition at line 189 of file controller_route_path.h.

Constructor & Destructor Documentation

◆ ControllerEcmpRoute() [1/3]

template<typename TYPE >
ControllerEcmpRoute::ControllerEcmpRoute ( const BgpPeer peer,
const VnListType vn_list,
const EcmpLoadBalance ecmp_load_balance,
const TagList tag_list,
const TYPE *  item,
const AgentRouteTable rt_table,
const std::string &  prefix_str 
)

Definition at line 165 of file controller_route_path.cc.

Here is the call graph for this function:

◆ ControllerEcmpRoute() [2/3]

ControllerEcmpRoute::ControllerEcmpRoute ( const BgpPeer peer,
const VnListType vn_list,
const EcmpLoadBalance ecmp_load_balance,
const TagList tag_list,
const SecurityGroupList sg_list,
const PathPreference path_pref,
TunnelType::TypeBmap  tunnel_bmap,
DBRequest nh_req,
const std::string &  prefix_str,
const std::string  vrf_name = "" 
)

Definition at line 380 of file controller_route_path.cc.

Here is the call graph for this function:

◆ ControllerEcmpRoute() [3/3]

ControllerEcmpRoute::ControllerEcmpRoute ( const BgpPeer peer,
const VnListType vn_list,
const EcmpLoadBalance ecmp_load_balance,
const TagList tag_list,
const SecurityGroupList sg_list,
const PathPreference path_pref,
TunnelType::TypeBmap  tunnel_bmap,
std::vector< IpAddress > &  tunnel_dest_list,
std::vector< uint32_t > &  label_list,
const std::string &  prefix_str,
const std::string &  vrf_name 
)

Definition at line 410 of file controller_route_path.cc.

Here is the call graph for this function:

◆ ~ControllerEcmpRoute()

virtual ControllerEcmpRoute::~ControllerEcmpRoute ( )
inlinevirtual

Definition at line 221 of file controller_route_path.h.

Member Function Documentation

◆ AddChangePathExtended()

bool ControllerEcmpRoute::AddChangePathExtended ( Agent agent,
AgentPath path,
const AgentRoute rt 
)
virtual

Implements AgentRouteData.

Definition at line 57 of file controller_route_path.cc.

Here is the call graph for this function:

◆ BuildNhReq()

void ControllerEcmpRoute::BuildNhReq ( const string &  vrf_name,
const autogen::ItemType *  item_type,
const VnListType vn_list 
)

◆ cloned_local_path_list()

ClonedLocalPathList& ControllerEcmpRoute::cloned_local_path_list ( )
inline

Definition at line 228 of file controller_route_path.h.

◆ CopyToPath()

bool ControllerEcmpRoute::CopyToPath ( AgentPath path)

Definition at line 44 of file controller_route_path.cc.

Here is the call graph for this function:

◆ DISALLOW_COPY_AND_ASSIGN()

ControllerEcmpRoute::DISALLOW_COPY_AND_ASSIGN ( ControllerEcmpRoute  )
private

◆ nh_req()

DBRequest& ControllerEcmpRoute::nh_req ( )
inline

Definition at line 236 of file controller_route_path.h.

◆ set_copy_local_path()

void ControllerEcmpRoute::set_copy_local_path ( bool  copy_local_path)
inline

Definition at line 232 of file controller_route_path.h.

◆ ToString()

virtual string ControllerEcmpRoute::ToString ( ) const
inlinevirtual

Implements AgentRouteData.

Definition at line 224 of file controller_route_path.h.

Friends And Related Function Documentation

◆ AgentXmppChannel

friend class AgentXmppChannel
friend

Definition at line 240 of file controller_route_path.h.

Member Data Documentation

◆ agent_

Agent* ControllerEcmpRoute::agent_
private

Definition at line 250 of file controller_route_path.h.

◆ cloned_data_list_

ClonedLocalPathList ControllerEcmpRoute::cloned_data_list_
private

Definition at line 249 of file controller_route_path.h.

◆ copy_local_path_

bool ControllerEcmpRoute::copy_local_path_
private

Definition at line 251 of file controller_route_path.h.

◆ ecmp_load_balance_

EcmpLoadBalance ControllerEcmpRoute::ecmp_load_balance_
private

Definition at line 244 of file controller_route_path.h.

◆ label_list_

std::vector<uint32_t> ControllerEcmpRoute::label_list_
private

Definition at line 253 of file controller_route_path.h.

◆ maximum_ecmp_paths

const uint32_t ControllerEcmpRoute::maximum_ecmp_paths = 128
static

Definition at line 187 of file controller_route_path.h.

◆ nh_req_

DBRequest ControllerEcmpRoute::nh_req_
private

Definition at line 248 of file controller_route_path.h.

◆ path_preference_

PathPreference ControllerEcmpRoute::path_preference_
private

Definition at line 246 of file controller_route_path.h.

◆ sg_list_

SecurityGroupList ControllerEcmpRoute::sg_list_
private

Definition at line 243 of file controller_route_path.h.

◆ tag_list_

TagList ControllerEcmpRoute::tag_list_
private

Definition at line 245 of file controller_route_path.h.

◆ tunnel_bmap_

TunnelType::TypeBmap ControllerEcmpRoute::tunnel_bmap_
private

Definition at line 247 of file controller_route_path.h.

◆ tunnel_dest_list_

std::vector<IpAddress> ControllerEcmpRoute::tunnel_dest_list_
private

Definition at line 252 of file controller_route_path.h.

◆ vn_list_

VnListType ControllerEcmpRoute::vn_list_
private

Definition at line 242 of file controller_route_path.h.

◆ vrf_name_

string ControllerEcmpRoute::vrf_name_
private

Definition at line 254 of file controller_route_path.h.

◆ vxlan_id_

uint32_t ControllerEcmpRoute::vxlan_id_
private

Definition at line 255 of file controller_route_path.h.


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