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

#include <global_vrouter.h>

Inheritance diagram for GlobalVrouter:
Collaboration diagram for GlobalVrouter:

Classes

struct  CryptTunnel
 
class  FabricDnsResolver
 
struct  FlowAgingTimeoutKey
 
class  LinkLocalRouteManager
 
struct  LinkLocalService
 
struct  LinkLocalServiceKey
 

Public Types

enum  CryptMode { CRYPT_ALL_TRAFFIC, CRYPT_FLOW, CRYPT_NONE }
 
typedef std::string CryptTunnelKey
 
typedef std::map
< LinkLocalServiceKey,
LinkLocalService
LinkLocalServicesMap
 
typedef std::pair
< LinkLocalServiceKey,
LinkLocalService
LinkLocalServicesPair
 
typedef std::map
< CryptTunnelKey, CryptTunnel
CryptTunnelsMap
 
typedef std::pair
< CryptTunnelKey, CryptTunnel
CryptTunnelsPair
 
typedef std::map
< FlowAgingTimeoutKey,
uint32_t > 
FlowAgingTimeoutMap
 
typedef std::pair
< FlowAgingTimeoutKey,
uint32_t > 
FlowAgingTimeoutPair
 
typedef std::map< uint8_t,
PortConfig
ProtocolPortSet
 
- Public Types inherited from OperIFMapTable
typedef std::map< IFMapNode
*, IFMapDependencyManager::IFMapNodePtr
Tree
 

Public Member Functions

 GlobalVrouter (Agent *agent)
 
virtual ~GlobalVrouter ()
 
void CreateDBClients ()
 
const LinkLocalServicesMaplinklocal_services_map () const
 
int32_t flow_export_rate () const
 
void ConfigDelete (IFMapNode *node)
 
void ConfigAddChange (IFMapNode *node)
 
void ConfigManagerEnqueue (IFMapNode *node)
 
void GlobalVrouterConfig (IFMapNode *node)
 
void UpdateSLOConfig (IFMapNode *node)
 
bool FindLinkLocalService (const std::string &service_name, IpAddress *service_ip, uint16_t *service_port, std::string *fabric_hostname, Ip4Address *fabric_ip, uint16_t *fabric_port) const
 Get link local service configuration info, for a given service name. More...
 
bool FindLinkLocalService (const IpAddress &service_ip, uint16_t service_port, std::string *service_name, Ip4Address *fabric_ip, uint16_t *fabric_port) const
 Get link local service info for a given linklocal service <ip, port> More...
 
bool FindLinkLocalService (const std::string &service_name, std::set< IpAddress > *service_ip) const
 Get link local services, for a given service name. More...
 
bool FindLinkLocalService (const IpAddress &service_ip, std::set< std::string > *service_names) const
 Get link local services info for a given linklocal service <ip> More...
 
void LinkLocalRouteUpdate (const std::vector< Ip4Address > &addr_list)
 
bool IsAddressInUse (const Ip4Address &ip) const
 
bool IsLinkLocalAddressInUse (const IpAddress &ip) const
 
Agent::ForwardingMode forwarding_mode () const
 
boost::uuids::uuid slo_uuid () const
 
uint64_t PendingFabricDnsRequests () const
 
void ResyncRoutes ()
 
const EcmpLoadBalanceecmp_load_balance () const
 
bool configured () const
 
- Public Member Functions inherited from OperIFMapTable
 OperIFMapTable (Agent *agent)
 
virtual ~OperIFMapTable ()
 
Agentagent () const
 
OperDBoper () const
 
uint32_t Size () const
 
void ConfigEventHandler (IFMapNode *node, DBEntry *entry)
 
void ProcessConfig (IFMapNode *node)
 

Static Public Attributes

static const std::string kMetadataService = "metadata"
 
static const std::string kMetadataService6 = "metadata6"
 
static const Ip4Address kLoopBackIp = Ip4Address(0x7f000001)
 
static const int32_t kDefaultFlowExportRate = 0
 
static const int32_t kDisableSampling = -1
 

Private Types

typedef std::vector
< autogen::LinklocalServiceEntryType > 
LinkLocalServiceList
 
typedef std::vector
< autogen::EncryptionTunnelEndpoint > 
EncryptionTunnelEndpointList
 
typedef std::vector
< autogen::FlowAgingTimeout > 
FlowAgingTimeoutList
 

Private Member Functions

void UpdateLinkLocalServiceConfig (const LinkLocalServiceList &linklocal_list)
 
void DeleteLinkLocalServiceConfig ()
 
bool ChangeNotify (LinkLocalServicesMap *old_value, LinkLocalServicesMap *new_value)
 
void AddLinkLocalService (const LinkLocalServicesMap::iterator &it)
 
void DeleteLinkLocalService (const LinkLocalServicesMap::iterator &it)
 
void ChangeLinkLocalService (const LinkLocalServicesMap::iterator &old_it, const LinkLocalServicesMap::iterator &new_it)
 
bool IsVrouterPresentCryptTunnelConfig (const EncryptionTunnelEndpointList &endpoint_list)
 
void UpdateCryptTunnelEndpointConfig (const EncryptionTunnelEndpointList &endpoint_list, const std::string encrypt_mode_str)
 
void DeleteCryptTunnelEndpointConfig ()
 
bool ChangeNotifyCryptTunnels (CryptTunnelsMap *old_value, CryptTunnelsMap *new_value)
 
void AddCryptTunnelEndpoint (const CryptTunnelsMap::iterator &it)
 
void DeleteCryptTunnelEndpoint (const CryptTunnelsMap::iterator &it)
 
void ChangeCryptTunnelEndpoint (const CryptTunnelsMap::iterator &old_it, const CryptTunnelsMap::iterator &new_it)
 
void UpdateFlowAging (autogen::GlobalVrouterConfig *cfg)
 
void DeleteFlowAging ()
 
void UpdatePortConfig (autogen::GlobalVrouterConfig *cfg)
 
void DeletePortConfig ()
 

Private Attributes

LinkLocalServicesMap linklocal_services_map_
 
CryptTunnelsMap crypt_tunnels_map_
 
CryptMode crypt_mode_
 
boost::scoped_ptr
< LinkLocalRouteManager
linklocal_route_mgr_
 
boost::scoped_ptr
< FabricDnsResolver
fabric_dns_resolver_
 
AgentRouteWalkerPtr agent_route_resync_walker_
 
Agent::ForwardingMode forwarding_mode_
 
int32_t flow_export_rate_
 
FlowAgingTimeoutMap flow_aging_timeout_map_
 
ProtocolPortSet protocol_port_set_
 
EcmpLoadBalance ecmp_load_balance_
 
bool configured_
 
boost::uuids::uuid slo_uuid_
 

Friends

class AgentUtXmlFlowThreshold
 

Detailed Description

Definition at line 56 of file global_vrouter.h.

Member Typedef Documentation

typedef std::string GlobalVrouter::CryptTunnelKey

Definition at line 111 of file global_vrouter.h.

Definition at line 127 of file global_vrouter.h.

Definition at line 128 of file global_vrouter.h.

typedef std::vector<autogen::EncryptionTunnelEndpoint> GlobalVrouter::EncryptionTunnelEndpointList
private

Definition at line 194 of file global_vrouter.h.

typedef std::vector<autogen::FlowAgingTimeout> GlobalVrouter::FlowAgingTimeoutList
private

Definition at line 195 of file global_vrouter.h.

Definition at line 130 of file global_vrouter.h.

Definition at line 131 of file global_vrouter.h.

typedef std::vector<autogen::LinklocalServiceEntryType> GlobalVrouter::LinkLocalServiceList
private

Definition at line 192 of file global_vrouter.h.

typedef std::map<uint8_t, PortConfig> GlobalVrouter::ProtocolPortSet

Definition at line 134 of file global_vrouter.h.

Member Enumeration Documentation

Enumerator
CRYPT_ALL_TRAFFIC 
CRYPT_FLOW 
CRYPT_NONE 

Definition at line 58 of file global_vrouter.h.

Constructor & Destructor Documentation

GlobalVrouter::GlobalVrouter ( Agent agent)

Definition at line 568 of file global_vrouter.cc.

Here is the call graph for this function:

GlobalVrouter::~GlobalVrouter ( )
virtual

Definition at line 584 of file global_vrouter.cc.

Here is the call graph for this function:

Member Function Documentation

void GlobalVrouter::AddCryptTunnelEndpoint ( const CryptTunnelsMap::iterator &  it)
private

Definition at line 1108 of file global_vrouter.cc.

Here is the call graph for this function:

void GlobalVrouter::AddLinkLocalService ( const LinkLocalServicesMap::iterator &  it)
private

Definition at line 930 of file global_vrouter.cc.

void GlobalVrouter::ChangeCryptTunnelEndpoint ( const CryptTunnelsMap::iterator &  old_it,
const CryptTunnelsMap::iterator &  new_it 
)
private

Definition at line 1119 of file global_vrouter.cc.

Here is the call graph for this function:

void GlobalVrouter::ChangeLinkLocalService ( const LinkLocalServicesMap::iterator &  old_it,
const LinkLocalServicesMap::iterator &  new_it 
)
private

Definition at line 946 of file global_vrouter.cc.

Here is the call graph for this function:

bool GlobalVrouter::ChangeNotify ( LinkLocalServicesMap old_value,
LinkLocalServicesMap new_value 
)
private

Definition at line 885 of file global_vrouter.cc.

Here is the call graph for this function:

bool GlobalVrouter::ChangeNotifyCryptTunnels ( CryptTunnelsMap old_value,
CryptTunnelsMap new_value 
)
private

Definition at line 1064 of file global_vrouter.cc.

Here is the call graph for this function:

void GlobalVrouter::ConfigAddChange ( IFMapNode node)
virtual

Implements OperIFMapTable.

Definition at line 605 of file global_vrouter.cc.

Here is the call graph for this function:

void GlobalVrouter::ConfigDelete ( IFMapNode node)
virtual

Implements OperIFMapTable.

Definition at line 598 of file global_vrouter.cc.

Here is the call graph for this function:

void GlobalVrouter::ConfigManagerEnqueue ( IFMapNode node)
virtual

Implements OperIFMapTable.

Definition at line 612 of file global_vrouter.cc.

Here is the call graph for this function:

bool GlobalVrouter::configured ( ) const
inline

Definition at line 187 of file global_vrouter.h.

void GlobalVrouter::CreateDBClients ( )

Definition at line 594 of file global_vrouter.cc.

void GlobalVrouter::DeleteCryptTunnelEndpoint ( const CryptTunnelsMap::iterator &  it)
private

Definition at line 1115 of file global_vrouter.cc.

Here is the call graph for this function:

void GlobalVrouter::DeleteCryptTunnelEndpointConfig ( )
private

Definition at line 1061 of file global_vrouter.cc.

void GlobalVrouter::DeleteFlowAging ( )
private

Definition at line 99 of file global_vrouter.cc.

Here is the call graph for this function:

void GlobalVrouter::DeleteLinkLocalService ( const LinkLocalServicesMap::iterator &  it)
private

Definition at line 939 of file global_vrouter.cc.

Here is the call graph for this function:

void GlobalVrouter::DeleteLinkLocalServiceConfig ( )
private

Definition at line 875 of file global_vrouter.cc.

Here is the call graph for this function:

void GlobalVrouter::DeletePortConfig ( )
private

Definition at line 188 of file global_vrouter.cc.

Here is the call graph for this function:

const EcmpLoadBalance & GlobalVrouter::ecmp_load_balance ( ) const

Definition at line 990 of file global_vrouter.cc.

bool GlobalVrouter::FindLinkLocalService ( const std::string &  service_name,
IpAddress service_ip,
uint16_t *  service_port,
std::string *  fabric_hostname,
Ip4Address fabric_ip,
uint16_t *  fabric_port 
) const

Get link local service configuration info, for a given service name.

Definition at line 719 of file global_vrouter.cc.

Here is the call graph for this function:

bool GlobalVrouter::FindLinkLocalService ( const IpAddress service_ip,
uint16_t  service_port,
std::string *  service_name,
Ip4Address fabric_ip,
uint16_t *  fabric_port 
) const

Get link local service info for a given linklocal service <ip, port>

Definition at line 755 of file global_vrouter.cc.

Here is the call graph for this function:

bool GlobalVrouter::FindLinkLocalService ( const std::string &  service_name,
std::set< IpAddress > *  service_ip 
) const

Get link local services, for a given service name.

Definition at line 811 of file global_vrouter.cc.

bool GlobalVrouter::FindLinkLocalService ( const IpAddress service_ip,
std::set< std::string > *  service_names 
) const

Get link local services info for a given linklocal service <ip>

Definition at line 830 of file global_vrouter.cc.

int32_t GlobalVrouter::flow_export_rate ( ) const
inline

Definition at line 143 of file global_vrouter.h.

Agent::ForwardingMode GlobalVrouter::forwarding_mode ( ) const
inline

Definition at line 181 of file global_vrouter.h.

void GlobalVrouter::GlobalVrouterConfig ( IFMapNode node)

Definition at line 639 of file global_vrouter.cc.

Here is the call graph for this function:

bool GlobalVrouter::IsAddressInUse ( const Ip4Address ip) const

Definition at line 965 of file global_vrouter.cc.

bool GlobalVrouter::IsLinkLocalAddressInUse ( const IpAddress ip) const

Definition at line 975 of file global_vrouter.cc.

bool GlobalVrouter::IsVrouterPresentCryptTunnelConfig ( const EncryptionTunnelEndpointList endpoint_list)
private

Definition at line 1025 of file global_vrouter.cc.

Here is the call graph for this function:

const LinkLocalServicesMap& GlobalVrouter::linklocal_services_map ( ) const
inline

Definition at line 140 of file global_vrouter.h.

void GlobalVrouter::LinkLocalRouteUpdate ( const std::vector< Ip4Address > &  addr_list)

Definition at line 958 of file global_vrouter.cc.

uint64_t GlobalVrouter::PendingFabricDnsRequests ( ) const

Definition at line 590 of file global_vrouter.cc.

void GlobalVrouter::ResyncRoutes ( )

Definition at line 985 of file global_vrouter.cc.

boost::uuids::uuid GlobalVrouter::slo_uuid ( ) const
inline

Definition at line 182 of file global_vrouter.h.

void GlobalVrouter::UpdateCryptTunnelEndpointConfig ( const EncryptionTunnelEndpointList endpoint_list,
const std::string  encrypt_mode_str 
)
private

Definition at line 1039 of file global_vrouter.cc.

Here is the call graph for this function:

void GlobalVrouter::UpdateFlowAging ( autogen::GlobalVrouterConfig *  cfg)
private

Definition at line 64 of file global_vrouter.cc.

Here is the call graph for this function:

void GlobalVrouter::UpdateLinkLocalServiceConfig ( const LinkLocalServiceList linklocal_list)
private

Definition at line 846 of file global_vrouter.cc.

Here is the call graph for this function:

void GlobalVrouter::UpdatePortConfig ( autogen::GlobalVrouterConfig *  cfg)
private

Definition at line 115 of file global_vrouter.cc.

Here is the call graph for this function:

void GlobalVrouter::UpdateSLOConfig ( IFMapNode node)

Definition at line 616 of file global_vrouter.cc.

Here is the call graph for this function:

Friends And Related Function Documentation

friend class AgentUtXmlFlowThreshold
friend

Definition at line 189 of file global_vrouter.h.

Member Data Documentation

AgentRouteWalkerPtr GlobalVrouter::agent_route_resync_walker_
private

Definition at line 228 of file global_vrouter.h.

bool GlobalVrouter::configured_
private

Definition at line 234 of file global_vrouter.h.

CryptMode GlobalVrouter::crypt_mode_
private

Definition at line 225 of file global_vrouter.h.

CryptTunnelsMap GlobalVrouter::crypt_tunnels_map_
private

Definition at line 224 of file global_vrouter.h.

EcmpLoadBalance GlobalVrouter::ecmp_load_balance_
private

Definition at line 233 of file global_vrouter.h.

boost::scoped_ptr<FabricDnsResolver> GlobalVrouter::fabric_dns_resolver_
private

Definition at line 227 of file global_vrouter.h.

FlowAgingTimeoutMap GlobalVrouter::flow_aging_timeout_map_
private

Definition at line 231 of file global_vrouter.h.

int32_t GlobalVrouter::flow_export_rate_
private

Definition at line 230 of file global_vrouter.h.

Agent::ForwardingMode GlobalVrouter::forwarding_mode_
private

Definition at line 229 of file global_vrouter.h.

const int32_t GlobalVrouter::kDefaultFlowExportRate = 0
static

Definition at line 66 of file global_vrouter.h.

const int32_t GlobalVrouter::kDisableSampling = -1
static

Definition at line 67 of file global_vrouter.h.

const Ip4Address GlobalVrouter::kLoopBackIp = Ip4Address(0x7f000001)
static

Definition at line 65 of file global_vrouter.h.

const std::string GlobalVrouter::kMetadataService = "metadata"
static

Definition at line 63 of file global_vrouter.h.

const std::string GlobalVrouter::kMetadataService6 = "metadata6"
static

Definition at line 64 of file global_vrouter.h.

boost::scoped_ptr<LinkLocalRouteManager> GlobalVrouter::linklocal_route_mgr_
private

Definition at line 226 of file global_vrouter.h.

LinkLocalServicesMap GlobalVrouter::linklocal_services_map_
private

Definition at line 223 of file global_vrouter.h.

ProtocolPortSet GlobalVrouter::protocol_port_set_
private

Definition at line 232 of file global_vrouter.h.

boost::uuids::uuid GlobalVrouter::slo_uuid_
private

Definition at line 235 of file global_vrouter.h.


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