5 #ifndef vnsw_agent_global_router_h_
6 #define vnsw_agent_global_router_h_
18 class AgentRouteEncap;
19 class AgentUtXmlFlowThreshold;
24 struct LinklocalServiceEntryType;
25 struct FlowAgingTimeout;
26 class GlobalVrouterConfig;
86 const std::string &fabric_dns_name,
87 const std::vector<Ip4Address> &fabric_ip,
88 uint16_t fabric_port);
156 uint16_t *service_port,
157 std::string *fabric_hostname,
159 uint16_t *fabric_port)
const;
164 uint16_t service_port,
165 std::string *service_name,
167 uint16_t *fabric_port)
const;
171 std::set<IpAddress> *service_ip)
const;
176 std::set<std::string> *service_names)
const;
204 const LinkLocalServicesMap::iterator &new_it);
208 const std::string encrypt_mode_str);
215 const CryptTunnelsMap::iterator &new_it);
boost::asio::ip::address IpAddress
boost::asio::ip::address_v4 Ip4Address
boost::intrusive_ptr< AgentRouteWalker > AgentRouteWalkerPtr
boost::intrusive_ptr< DBTableWalk > DBTableWalkRef
boost::uuids::uuid slo_uuid_
bool IsLinkLocalAddressInUse(const IpAddress &ip) const
void DeleteCryptTunnelEndpoint(const CryptTunnelsMap::iterator &it)
boost::scoped_ptr< FabricDnsResolver > fabric_dns_resolver_
void AddLinkLocalService(const LinkLocalServicesMap::iterator &it)
void GlobalVrouterConfig(IFMapNode *node)
std::vector< autogen::EncryptionTunnelEndpoint > EncryptionTunnelEndpointList
void DeleteCryptTunnelEndpointConfig()
std::pair< FlowAgingTimeoutKey, uint32_t > FlowAgingTimeoutPair
bool ChangeNotifyCryptTunnels(CryptTunnelsMap *old_value, CryptTunnelsMap *new_value)
static const int32_t kDefaultFlowExportRate
AgentRouteWalkerPtr agent_route_resync_walker_
std::vector< autogen::FlowAgingTimeout > FlowAgingTimeoutList
const LinkLocalServicesMap & linklocal_services_map() const
static const std::string kMetadataService6
const EcmpLoadBalance & ecmp_load_balance() const
std::pair< LinkLocalServiceKey, LinkLocalService > LinkLocalServicesPair
static const Ip4Address kLoopBackIp
boost::uuids::uuid slo_uuid() const
static const std::string kMetadataService
void DeleteLinkLocalService(const LinkLocalServicesMap::iterator &it)
void UpdatePortConfig(autogen::GlobalVrouterConfig *cfg)
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.
int32_t flow_export_rate() const
void ChangeCryptTunnelEndpoint(const CryptTunnelsMap::iterator &old_it, const CryptTunnelsMap::iterator &new_it)
void ConfigManagerEnqueue(IFMapNode *node)
std::map< FlowAgingTimeoutKey, uint32_t > FlowAgingTimeoutMap
std::map< CryptTunnelKey, CryptTunnel > CryptTunnelsMap
FlowAgingTimeoutMap flow_aging_timeout_map_
std::vector< autogen::LinklocalServiceEntryType > LinkLocalServiceList
void UpdateSLOConfig(IFMapNode *node)
boost::scoped_ptr< LinkLocalRouteManager > linklocal_route_mgr_
CryptTunnelsMap crypt_tunnels_map_
ProtocolPortSet protocol_port_set_
void UpdateCryptTunnelEndpointConfig(const EncryptionTunnelEndpointList &endpoint_list, const std::string encrypt_mode_str)
int32_t flow_export_rate_
GlobalVrouter(Agent *agent)
void AddCryptTunnelEndpoint(const CryptTunnelsMap::iterator &it)
void UpdateFlowAging(autogen::GlobalVrouterConfig *cfg)
Agent::ForwardingMode forwarding_mode() const
void UpdateLinkLocalServiceConfig(const LinkLocalServiceList &linklocal_list)
void LinkLocalRouteUpdate(const std::vector< Ip4Address > &addr_list)
std::map< uint8_t, PortConfig > ProtocolPortSet
void ConfigAddChange(IFMapNode *node)
friend class AgentUtXmlFlowThreshold
EcmpLoadBalance ecmp_load_balance_
LinkLocalServicesMap linklocal_services_map_
uint64_t PendingFabricDnsRequests() const
bool IsAddressInUse(const Ip4Address &ip) const
bool ChangeNotify(LinkLocalServicesMap *old_value, LinkLocalServicesMap *new_value)
void ReadFlowsLimits(const autogen::GlobalVrouterConfig &cfg)
Reads configuration flow global flow limits.
static const int32_t kDisableSampling
bool IsVrouterPresentCryptTunnelConfig(const EncryptionTunnelEndpointList &endpoint_list)
std::string CryptTunnelKey
void ChangeLinkLocalService(const LinkLocalServicesMap::iterator &old_it, const LinkLocalServicesMap::iterator &new_it)
std::pair< CryptTunnelKey, CryptTunnel > CryptTunnelsPair
void DeleteLinkLocalServiceConfig()
void ConfigDelete(IFMapNode *node)
std::map< LinkLocalServiceKey, LinkLocalService > LinkLocalServicesMap
Agent::ForwardingMode forwarding_mode_
bool operator==(const CryptTunnel &rhs) const
bool operator<(const CryptTunnel &rhs) const
CryptTunnel(CryptMode cmode)
bool operator<(const FlowAgingTimeoutKey &rhs) const
bool operator==(const FlowAgingTimeoutKey &rhs) const
FlowAgingTimeoutKey(uint8_t proto, uint16_t port_arg)
uint16_t linklocal_service_port
IpAddress linklocal_service_ip
LinkLocalServiceKey(const IpAddress &addr, uint16_t port)
bool operator<(const LinkLocalServiceKey &rhs) const
LinkLocalService(const std::string &service_name, const std::string &fabric_dns_name, const std::vector< Ip4Address > &fabric_ip, uint16_t fabric_port)
DBTable::DBTableWalkRef vn_update_walk_ref_
std::string linklocal_service_name
std::vector< Ip4Address > ipfabric_service_ip
uint16_t ipfabric_service_port
bool operator==(const LinkLocalService &rhs) const
bool IsAddressInUse(const Ip4Address &ip) const
std::string ipfabric_dns_service_name
LinkLocalDBState(const VrfEntry *vrf)
void Add(const IpAddress &address)
void Delete(const IpAddress &address)
std::set< IpAddress > addresses_
PortRange(uint16_t start, uint16_t end)
std::vector< PortRange > port_range