OpenSDN source code
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
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

Definition at line 188 of file controller_route_path.h.

typedef ClonedLocalPathList::iterator ControllerEcmpRoute::ClonedLocalPathListIter

Definition at line 189 of file controller_route_path.h.

Constructor & Destructor Documentation

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::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 373 of file controller_route_path.cc.

Here is the call graph for this function:

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 403 of file controller_route_path.cc.

Here is the call graph for this function:

virtual ControllerEcmpRoute::~ControllerEcmpRoute ( )
inlinevirtual

Definition at line 221 of file controller_route_path.h.

Member Function Documentation

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:

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

Definition at line 228 of file controller_route_path.h.

bool ControllerEcmpRoute::CopyToPath ( AgentPath path)

Definition at line 44 of file controller_route_path.cc.

Here is the call graph for this function:

ControllerEcmpRoute::DISALLOW_COPY_AND_ASSIGN ( ControllerEcmpRoute  )
private
DBRequest& ControllerEcmpRoute::nh_req ( )
inline

Definition at line 236 of file controller_route_path.h.

void ControllerEcmpRoute::set_copy_local_path ( bool  copy_local_path)
inline

Definition at line 232 of file controller_route_path.h.

virtual string ControllerEcmpRoute::ToString ( ) const
inlinevirtual

Implements AgentRouteData.

Definition at line 224 of file controller_route_path.h.

Friends And Related Function Documentation

friend class AgentXmppChannel
friend

Definition at line 240 of file controller_route_path.h.

Member Data Documentation

Agent* ControllerEcmpRoute::agent_
private

Definition at line 250 of file controller_route_path.h.

ClonedLocalPathList ControllerEcmpRoute::cloned_data_list_
private

Definition at line 249 of file controller_route_path.h.

bool ControllerEcmpRoute::copy_local_path_
private

Definition at line 251 of file controller_route_path.h.

EcmpLoadBalance ControllerEcmpRoute::ecmp_load_balance_
private

Definition at line 244 of file controller_route_path.h.

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

Definition at line 253 of file controller_route_path.h.

const uint32_t ControllerEcmpRoute::maximum_ecmp_paths = 128
static

Definition at line 187 of file controller_route_path.h.

DBRequest ControllerEcmpRoute::nh_req_
private

Definition at line 248 of file controller_route_path.h.

PathPreference ControllerEcmpRoute::path_preference_
private

Definition at line 246 of file controller_route_path.h.

SecurityGroupList ControllerEcmpRoute::sg_list_
private

Definition at line 243 of file controller_route_path.h.

TagList ControllerEcmpRoute::tag_list_
private

Definition at line 245 of file controller_route_path.h.

TunnelType::TypeBmap ControllerEcmpRoute::tunnel_bmap_
private

Definition at line 247 of file controller_route_path.h.

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

Definition at line 252 of file controller_route_path.h.

VnListType ControllerEcmpRoute::vn_list_
private

Definition at line 242 of file controller_route_path.h.

string ControllerEcmpRoute::vrf_name_
private

Definition at line 254 of file controller_route_path.h.

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: