11 #include <net/ethernet.h>
12 #include <boost/intrusive_ptr.hpp>
17 #include "oper/agent_types.h"
137 typedef boost::intrusive_ptr<AddrBase>
AddrRef;
287 #define MULTICAST_LABEL_RANGE_START 1024
288 #define MULTICAST_LABEL_BLOCK_SIZE 2048
290 #define MIN_UNICAST_LABEL_RANGE 4098
291 #define MAX_XMPP_SERVERS 2
292 #define XMPP_SERVER_PORT 5269
293 #define XMPP_DNS_SERVER_PORT 53
294 #define METADATA_IP_ADDR ntohl(inet_addr("169.254.169.254"))
295 #define METADATA_PORT 8775
296 #define METADATA_NAT_PORT 80
297 #define AGENT_INIT_TASKNAME "Agent::Init"
298 #define INSTANCE_MANAGER_TASK_NAME "Agent::InstanceManager"
299 #define AGENT_SHUTDOWN_TASKNAME "Agent::Shutdown"
300 #define AGENT_FLOW_STATS_MANAGER_TASK "Agent::FlowStatsManager"
301 #define AGENT_SANDESH_TASKNAME "Agent::Sandesh"
302 #define IPV4_MULTICAST_BASE_ADDRESS "224.0.0.0"
303 #define IPV6_MULTICAST_BASE_ADDRESS "ff00::"
304 #define MULTICAST_BASE_ADDRESS_PLEN 8
306 #define FLOWS_LIMIT_UNLIMITED uint32_t(0)
308 #define VROUTER_SERVER_PORT 20914
310 #define kLogFilesCount 10
311 #define kLogFileSize (2*1024*1024)
315 #define CFG_BACKUP_DIR "/var/lib/contrail/backup"
316 #define CFG_BACKUP_COUNT 2
317 #define CFG_BACKUP_IDLE_TIMEOUT (10*1000)
318 #define CFG_RESTORE_AUDIT_TIMEOUT (15*1000)
323 #define kTaskFlowEvent "Agent::FlowEvent"
324 #define kTaskFlowKSync "Agent::FlowKSync"
325 #define kTaskFlowUpdate "Agent::FlowUpdate"
326 #define kTaskFlowDelete "Agent::FlowDelete"
327 #define kTaskFlowMgmt "Agent::FlowMgmt"
328 #define kTaskFlowAudit "KSync::FlowAudit"
329 #define kTaskFlowLogging "Agent::FlowLogging"
330 #define kTaskFlowStatsCollector "Flow::StatsCollector"
331 #define kTaskSessionStatsCollector "Flow::SessionStatsCollector"
332 #define kTaskSessionStatsCollectorEvent "Flow::SessionStatsCollectorEvent"
333 #define kTaskFlowStatsUpdate "Agent::FlowStatsUpdate"
335 #define kTaskHealthCheck "Agent::HealthCheck"
336 #define kTaskCryptTunnel "Agent::CryptTunnel"
338 #define kTaskDBExclude "Agent::DBExcludeTask"
339 #define kTaskConfigManager "Agent::ConfigManager"
340 #define kTaskHttpRequstHandler "http::RequestHandlerTask"
341 #define kAgentResourceRestoreTask "Agent::ResoureRestore"
342 #define kAgentResourceBackUpTask "Agent::ResourceBackup"
343 #define kTaskMacLearning "Agent::MacLearning"
344 #define kTaskMacLearningMgmt "Agent::MacLearningMgmt"
345 #define kTaskMacAging "Agent::MacAging"
347 #define kInterfaceDbTablePrefix "db.interface"
348 #define kVnDbTablePrefix "db.vn"
349 #define kVmDbTablePrefix "db.vm"
350 #define kVrfDbTablePrefix "db.vrf.0"
351 #define kMplsDbTablePrefix "db.mpls"
352 #define kAclDbTablePrefix "db.acl"
353 #define kV4UnicastRouteDbTableSuffix "uc.route.0"
354 #define kV6UnicastRouteDbTableSuffix "uc.route6.0"
355 #define kL2RouteDbTableSuffix "l2.route.0"
356 #define kMcastRouteDbTableSuffix "mc.route.0"
357 #define kEvpnRouteDbTableSuffix "evpn.route.0"
358 #define kEventNotifierTask "Agent::EventNotifier"
430 uint32_t proto, uint32_t port,
1307 oflow_bridge_entries) {
1359 const char *description, uint64_t delay);
boost::asio::ip::address IpAddress
boost::asio::ip::address_v4 Ip4Address
boost::intrusive_ptr< const AclDBEntry > PolicySetConstRef
std::pair< std::string, std::string > VrLimitData
boost::intrusive_ptr< PhysicalDeviceVn > PhysicalDeviceVnRef
boost::intrusive_ptr< BridgeDomainEntry > BridgeDomainRef
void intrusive_ptr_release(const Interface *p)
IntrusivePtrRef< VmEntry > VmEntryBackRef
boost::intrusive_ptr< AddrBase > AddrRef
IntrusivePtrRef< const VmEntry > VmEntryConstBackRef
std::vector< std::string > InterfaceNameList
boost::intrusive_ptr< VmEntry > VmEntryRef
void intrusive_ptr_add_back_ref(const IntrusiveReferrer ref, const Interface *p)
boost::intrusive_ptr< MplsLabel > MplsLabelRef
std::vector< boost::uuids::uuid > UuidList
void RouterIdDepInit(Agent *agent)
boost::intrusive_ptr< SgEntry > SgEntryRef
boost::intrusive_ptr< const Interface > InterfaceConstRef
boost::intrusive_ptr< const AgentQosConfig > AgentQosConfigConstRef
boost::intrusive_ptr< const PhysicalDevice > PhysicalDeviceConstRef
boost::intrusive_ptr< MulticastPolicyEntry > MulticastPolicyEntryRef
boost::intrusive_ptr< const MulticastPolicyEntry > MulticastPolicyEntryConstRef
IntrusivePtrRef< VrfEntry > VrfEntryRef
std::vector< int > TagList
std::map< std::string, std::string > VrLimitExceeded
boost::intrusive_ptr< const QosQueue > QosQueueConstRef
IntrusivePtrRef< const VrfEntry > VrfEntryConstRef
boost::intrusive_ptr< const SecurityLoggingObject > SecurityLoggingObjectConstRef
boost::intrusive_ptr< MirrorEntry > MirrorEntryRef
boost::intrusive_ptr< const VmEntry > VmEntryConstRef
boost::intrusive_ptr< NextHop > NextHopRef
boost::intrusive_ptr< HealthCheckService > HealthCheckServiceRef
void intrusive_ptr_del_back_ref(const IntrusiveReferrer ref, const Interface *p)
boost::intrusive_ptr< const BridgeDomainEntry > BridgeDomainConstRef
boost::intrusive_ptr< VxLanId > VxLanIdRef
std::vector< std::string > CommunityList
std::vector< Interface * > InterfaceList
std::vector< int > SecurityGroupList
boost::intrusive_ptr< ForwardingClass > ForwardingClassRef
boost::intrusive_ptr< CryptTunnelEntry > CryptTunnelEntryRef
boost::intrusive_ptr< TagEntry > TagEntryRef
boost::intrusive_ptr< const ForwardingClass > ForwardingClassConstRef
std::vector< Ip4Address > AddressList
boost::intrusive_ptr< const TagEntry > TagEntryConstRef
std::set< std::string > VnListType
boost::intrusive_ptr< PolicySet > PolicySetRef
boost::intrusive_ptr< AgentQosConfig > AgentQosConfigRef
boost::intrusive_ptr< Interface > InterfaceRef
boost::intrusive_ptr< const SgEntry > SgEntryConstRef
boost::intrusive_ptr< PhysicalDevice > PhysicalDeviceRef
IntrusivePtrRef< Interface > InterfaceBackRef
boost::intrusive_ptr< const NextHop > NextHopConstRef
boost::intrusive_ptr< const VnEntry > VnEntryConstRef
boost::intrusive_ptr< AclDBEntry > AclDBEntryRef
boost::intrusive_ptr< Route > RouteRef
boost::intrusive_ptr< const CryptTunnelEntry > CryptTunnelEntryConstRef
boost::intrusive_ptr< const AclDBEntry > AclDBEntryConstRef
void intrusive_ptr_add_ref(const Interface *p)
boost::intrusive_ptr< SecurityLoggingObject > SecurityLoggingObjectRef
boost::intrusive_ptr< const PhysicalDeviceVn > PhysicalDeviceVnConstRef
boost::intrusive_ptr< QosQueue > QosQueueRef
boost::intrusive_ptr< VnEntry > VnEntryRef
Agent supports multiple route tables - Inet-unicast (IPv4/IPv6), Inet-multicast, bridge,...
Base class for all Route entries in agent.
void set_icmpv6_proto(Icmpv6Proto *proto)
bool xmpp_dns_test_mode() const
bool flow_trace_enable() const
DnsProto * GetDnsProto() const
void set_forwarding_enabled(bool val)
const std::string & log_file() const
void SetMeasureQueueDelay(bool val)
InterfaceTable * interface_table() const
ConfigManager * config_manager() const
static std::string fabric_vrf_name_
const std::string & subcluster_name() const
bool vrouter_on_nic_mode() const
void set_fabric_inet4_multicast_table(RouteTable *table)
void set_vm_table(VmTable *table)
MetaDataIpAllocator * metadata_ip6_allocator() const
void set_physical_device_table(PhysicalDeviceTable *table)
PortIpcHandler * port_ipc_handler_
std::string GetUuidStr(boost::uuids::uuid uuid_val) const
void Init(AgentParam *param)
static const uint32_t kFlowUpdateTokens
ResourceManager * resource_manager() const
uint32_t vrouter_max_oflow_entries_
static const uint32_t kPkt0TxBufferCount
ResourceManager * resource_manager_
VmTable * vm_table() const
void TaskTrace(const char *file_name, uint32_t line_no, const Task *task, const char *description, uint64_t delay)
void set_vr_limits_exceeded_map(VrLimitExceeded &vr_limit_exceed_map)
static const uint32_t kFlowAddTokens
const Peer * ecmp_peer() const
void set_ifmap_active_xmpp_server(const std::string &addr, uint8_t xs_idx)
AgentXmppChannel * mulitcast_builder()
XmppClient * xmpp_client_[MAX_XMPP_SERVERS]
uint8_t GetInterfaceTransport() const
AgentXmppChannel * controller_xmpp_channel(uint8_t idx) const
void set_qos_queue_table(QosQueueTable *table)
std::unique_ptr< Peer > multicast_tor_peer_
AgentSignal * agent_signal() const
ForwardingClassTable * forwarding_class_table() const
bool ResourceManagerReady() const
float vr_limit_low_watermark_
static const uint32_t kDefaultFlowCacheTimeout
Agent::ForwardingMode TranslateForwardingMode(const std::string &mode) const
std::vector< std::string > collector_list_
std::vector< std::string > controller_list_
const std::string & ifmap_active_xmpp_server() const
void ReConnectCollectors()
ServicesModule * services() const
std::vector< string > & GetControllerlist()
void set_tsn_no_forwarding_enabled(bool val)
OVSDB::OvsdbClient * ovsdb_client_
static const MacAddress pkt_interface_mac_
void set_crypt_tunnel_table(CryptTunnelTable *table)
bool tsn_no_forwarding_enabled() const
VNController * controller() const
std::unique_ptr< Peer > multicast_tree_builder_peer_
std::unique_ptr< Peer > evpn_routing_peer_
TagTable * tag_table() const
void set_flow_table_size(uint32_t count)
Ip4Address vrouter_server_ip_
static const std::set< std::string > & NullStringList()
static const uint32_t kDefaultFlowIndexSmLogCount
uint32_t controller_chksum_
MacLearningModule * mac_learning_module_
BfdProto * GetBfdProto() const
IFMapAgentParser * ifmap_parser_
static const std::string & BcastMac()
uint32_t global_max_vmi_flows_
VirtualGateway * vgw() const
void set_uve(AgentUveBase *uve)
void set_ifmap_xmpp_channel(AgentIfMapXmppChannel *channel, uint8_t idx)
void set_pkt_interface_name(const std::string &name)
BridgeDomainTable * bridge_domain_table_
IntfMirrorCfgTable * intf_mirror_cfg_table_
InetUnicastAgentRouteTable * mpls_rt_table_
bool pbb_gateway_mode() const
std::unique_ptr< Peer > linklocal_peer_
static const std::string dpdk_exception_pkt_path_
static const std::string link_local_vrf_name_
VrLimitExceeded & get_vr_limits_exceeded_map()
void SetDhcpProto(DhcpProto *proto)
XmppInit * dns_xmpp_init(uint8_t idx) const
void set_dns_xmpp_init(XmppInit *xmpp, uint8_t idx)
void set_ksync(KSync *ksync)
void set_vxlan_table(VxLanTable *table)
BridgeAgentRouteTable * fabric_l2_unicast_table() const
const Interface * crypt_interface_
void set_vhost_prefix(const Ip4Address &addr)
void set_vxlan_network_identifier_mode(VxLanNetworkIdentifierMode mode)
void set_inet_labeled_flag(bool flag)
XmppInit * controller_ifmap_xmpp_init(uint8_t idx) const
void set_metadata_server_port(uint16_t port)
uint16_t dns_port_[MAX_XMPP_SERVERS]
static const uint32_t kDefaultStaleInterfaceCleanupTimeout
void SetFlowProto(FlowProto *proto)
AddressList vhost_default_gateway() const
uint32_t vrouter_max_oflow_entries() const
VNController * controller_
void(* FlowStatsReqHandler)(Agent *agent, uint32_t proto, uint32_t port, uint64_t timeout)
DomainConfig * domain_config_table() const
static const uint8_t kInvalidQueueId
Ip4Address vhost_prefix() const
MirrorTable * mirror_table_
ServiceInstanceTable * service_instance_table_
MacLearningModule * mac_learning_module() const
void set_crypt_interface(const Interface *interface)
const bool xmpp_auth_enabled() const
static const std::string vnic_exception_pkt_interface_
const std::string & dns_server(uint8_t idx) const
bool vrouter_priority_tagging() const
const uint32_t vrouter_server_port() const
uint16_t flow_thread_count_
void set_resource_manager(ResourceManager *resource_manager)
PortIpcHandler * port_ipc_handler() const
const std::string & config_file() const
void set_fabric_evpn_table(RouteTable *table)
void set_fabric_inet4_unicast_table(RouteTable *table)
void set_sg_table(SgTable *table)
FlowProto * GetFlowProto() const
void set_vrouter_max_oflow_bridge_entries(uint32_t oflow_bridge_entries)
bool resource_manager_ready_
void set_dns_xmpp_channel(AgentDnsXmppChannel *chnl, uint8_t idx)
AgentStatsCollector * stats_collector_
const uint64_t controller_xmpp_channel_setup_time(uint8_t idx) const
FlowStatsManager * flow_stats_manager() const
LifetimeManager * lifetime_manager()
static const std::string bcast_mac_
static const std::string xmpp_control_node_connection_name_prefix_
uint32_t flow_update_tokens_
void set_bridge_domain_table(BridgeDomainTable *table)
bool vrouter_on_host() const
AgentDnsXmppChannel * dns_xmpp_channel(uint8_t idx) const
uint16_t metadata_server_port() const
VrLimitExceeded vr_limits_exceeded_map_
uint32_t vrouter_max_interfaces() const
AgentParam * params() const
Ip4Address loopback_ip() const
QosQueueTable * qos_queue_table() const
void InitXenLinkLocalIntf()
void set_vrouter_max_flow_entries(uint32_t value)
void SetDnsProto(DnsProto *proto)
uint32_t flow_ksync_tokens_
void set_metadata_ip6_allocator(MetaDataIpAllocator *allocator)
uint32_t vrouter_max_oflow_bridge_entries_
static const int kInvalidCpuId
void set_task_scheduler(TaskScheduler *t)
XmppInit * xmpp_init_[MAX_XMPP_SERVERS]
const std::string & agent_name() const
void set_mirror_cfg_table(MirrorCfgTable *table)
static const uint32_t kMaxOtherOpenFds
FlowStatsManager * flow_stats_manager_
void set_qos_config_table(AgentQosConfigTable *qos_config_table)
void set_mac_learning_module(MacLearningModule *mac_learning_module)
uint32_t vrouter_max_flow_entries() const
const std::string & linklocal_vrf_name()
static const uint16_t kFabricSnatTableSize
void set_tor_agent_enabled(bool val)
const std::vector< std::string > & fabric_interface_name_list() const
uint32_t vrouter_max_labels_
const std::string & GetHostInterfaceName() const
EvpnAgentRouteTable * evpn_rt_table_
MacLearningProto * mac_learning_proto() const
const std::string & fabric_policy_vrf_name() const
void set_mpls_table(MplsTable *table)
MirrorTable * mirror_table() const
std::string vhost_interface_name_
static const MacAddress & pkt_interface_mac()
uint32_t vrouter_max_flow_entries_
void set_vhost_default_gateway(const AddressList &addr_list)
VrfTable * vrf_table() const
PhysicalDeviceVnTable * physical_device_vn_table_
std::string crypt_intf_name_
void set_agent_init(AgentInit *init)
Icmpv6Proto * icmpv6_proto() const
MirrorCfgTable * mirror_cfg_table() const
const Peer * mac_vm_binding_peer() const
const Peer * local_peer() const
bool is_dns_xmpp_channel(AgentDnsXmppChannel *channel)
Inet4MulticastAgentRouteTable * fabric_inet4_multicast_table() const
AgentUveBase * uve() const
std::unique_ptr< Peer > local_vm_export_peer_
void set_vhost_prefix_len(uint32_t plen)
void set_vrouter_max_nexthops(uint32_t max_nexthop)
static const uint32_t kFlowKSyncTokens
void set_vhost_interface_name(const std::string &name)
static const MacAddress right_si_mac_
static const std::string fabric_vn_name_
EventManager * event_manager() const
IFMapAgentStaleCleaner * ifmap_stale_cleaner() const
void set_global_slo_status(bool flag)
static const uint8_t ROUTE_TABLE_START
AgentQosConfigTable * qos_config_table() const
static const std::set< std::string > null_string_list_
void SetXmppDscp(uint8_t val)
const Peer * local_vm_export_peer() const
Icmpv6Proto * icmpv6_proto_
void set_port_ipc_handler(PortIpcHandler *r)
IntfMirrorCfgTable * interface_mirror_cfg_table() const
const Interface * vhost_interface_
const Peer * fabric_rt_export_peer() const
uint32_t flow_del_tokens_
void set_tsn_enabled(bool val)
VrfEntry * fabric_policy_vrf() const
AclTable * acl_table() const
const std::string & xmpp_server_cert() const
uint32_t flow_update_tokens() const
RestServer * rest_server_
const std::string & v4_link_local_subnet() const
uint32_t task_monitor_timeout_msec_
uint32_t global_max_vmi_flows() const
void set_connection_state(process::ConnectionState *state)
std::unique_ptr< Peer > ecmp_peer_
void set_stats(AgentStats *stats)
uint32_t vrouter_max_labels() const
void set_interface_table(InterfaceTable *table)
static const MacAddress & right_si_mac()
uint32_t vrouter_max_vrfs() const
uint32_t flow_add_tokens_
const Peer * mac_learning_peer() const
const Peer * inet_evpn_peer() const
uint32_t vhost_prefix_len() const
bool simulate_evpn_tor() const
bool router_id_configured()
const Ip4Address * router_ip_ptr() const
static const int kDropNewFlowsRecoveryThreshold
AgentConfig * cfg() const
Dhcpv6Proto * dhcpv6_proto_
static const std::string xmpp_dns_server_connection_name_prefix_
AgentStatsCollector * stats_collector() const
ArpProto * GetArpProto() const
void set_vrf_table(VrfTable *table)
std::unique_ptr< Peer > fabric_rt_export_peer_
const Peer * local_vm_peer() const
void CopyConfig(AgentParam *params)
uint32_t collector_chksum_
bool get_vhost_disable_policy()
VxLanNetworkIdentifierMode
void set_physical_device_vn_table(PhysicalDeviceVnTable *table)
void set_ovsdb_client(OVSDB::OvsdbClient *client)
SecurityLoggingObjectTable * slo_table_
Ip4Address compute_node_ip_
static const int kDefaultHighWatermark
void set_vrouter_build_info(std::string version)
void set_health_check_table(HealthCheckTable *table)
std::unique_ptr< Peer > evpn_peer_
uint16_t flow_thread_count() const
const std::string & fabric_vn_name() const
void set_dns_server_port(uint16_t port, uint8_t idx)
static const std::string log_file_
void set_pkt(PktModule *pkt)
void set_fabric_policy_vrf_name(const std::string &name)
boost::uuids::uuid fabric_vn_uuid_
uint32_t GetControllerlistChksum()
void set_cfg(AgentConfig *cfg)
static const uint8_t kMaxSessions
const boost::uuids::uuid & fabric_vn_uuid() const
const std::string & vhost_interface_name() const
FlowStatsReqHandler flow_stats_req_handler_
IFMapAgentParser * ifmap_parser() const
VxLanTable * vxlan_table() const
void set_ifmap_parser(IFMapAgentParser *parser)
const Peer * multicast_peer() const
uint32_t vrouter_server_port_
uint32_t vrouter_max_oflow_bridge_entries() const
void set_oper_db(OperDB *oper_db)
void set_slo_table(SecurityLoggingObjectTable *table)
uint16_t metadata_server_port_
ForwardingClassTable * forwarding_class_table_
void set_nexthop_table(NextHopTable *table)
uint32_t max_vm_flows_perc_
VrfEntry * fabric_policy_vrf_
std::string pkt_interface_name_
void set_vrouter_max_oflow_entries(uint32_t value)
void set_vrouter_max_vrfs(uint32_t max_vrf)
void reset_dns_server(uint8_t idx)
static const uint16_t kDefaultVmiVmVnUveInterval
static const uint32_t kDefaultFlowThreadCount
void set_fabric_inet4_multicast_table(Inet4MulticastAgentRouteTable *table)
const Interface * crypt_interface() const
const std::string & controller_ifmap_xmpp_server(uint8_t idx) const
uint16_t mirror_port() const
void SetResourceManagerReady()
void set_dhcpv6_proto(Dhcpv6Proto *proto)
void set_event_notifier(EventNotifier *mgr)
XmppInit * dns_xmpp_init_[MAX_XMPP_SERVERS]
IpAddress GetMirrorSourceIp(const IpAddress &dest)
IgmpProto * GetIgmpProto() const
uint16_t xs_port_[MAX_XMPP_SERVERS]
void set_metadata_ip_allocator(MetaDataIpAllocator *allocator)
AgentDnsXmppChannel * dns_xmpp_channel_[MAX_XMPP_SERVERS]
void set_interface_mirror_cfg_table(IntfMirrorCfgTable *table)
uint32_t flow_table_size() const
void set_controller(VNController *val)
const uint16_t dns_server_port(uint8_t idx) const
void ReconfigSignalHandler(boost::system::error_code, int)
static const MacAddress & left_si_mac()
void set_diag_table(DiagTable *table)
void DebugSignalHandler(boost::system::error_code, int)
const Peer * vxlan_bgp_peer() const
const Ip4Address vrouter_server_ip() const
static const MacAddress left_si_mac_
const std::string & host_name() const
SecurityLoggingObjectTable * slo_table() const
static const std::string & xmpp_dns_server_prefix()
const Peer * vgw_peer() const
Ip4Address compute_node_ip() const
const Peer * evpn_routing_peer() const
const std::string & module_name() const
void set_vrouter_server_ip(Ip4Address ip)
const std::string & pkt_interface_name() const
void set_fabric_inet4_unicast_table(InetUnicastAgentRouteTable *table)
AgentQosConfigTable * qos_config_table_
float vr_limit_high_watermark()
std::string ip_fabric_intf_name_
std::string vrouter_build_info_
void set_mirror_port(uint16_t mirr_port)
void set_forwarding_class_table(ForwardingClassTable *table)
static const std::string link_local_vn_name_
const uint16_t controller_ifmap_xmpp_port(uint8_t idx) const
void set_is_l3mh(bool flag)
VxLanNetworkIdentifierMode vxlan_network_identifier_mode_
bool isVmwareVcenterMode() const
bool vrouter_on_host_dpdk() const
static const std::string null_string_
MulticastPolicyTable * mp_table() const
static const std::string & NullString()
static const MacAddress vrrp_mac_
std::unique_ptr< Peer > multicast_peer_
DhcpProto * GetDhcpProto() const
std::string AgentGUID() const
void set_router_id(const Ip4Address &addr)
bool vhost_disable_policy_
bool is_vhost_interface_up() const
const uint16_t v4_link_local_plen() const
void set_fabric_inet4_mpls_table(RouteTable *table)
void set_instance_id(const std::string &id)
Dhcpv6Proto * dhcpv6_proto() const
void SetArpProto(ArpProto *proto)
EvpnAgentRouteTable * fabric_evpn_table() const
void set_vgw(VirtualGateway *vgw)
void set_router_id_configured(bool value)
boost::shared_ptr< AgentXmppChannel > agent_xmpp_channel_[MAX_XMPP_SERVERS]
void set_vhost_disable_policy(bool disable_policy)
uint32_t vrouter_max_bridge_entries() const
BridgeDomainTable * bridge_domain_table() const
static uint16_t ProtocolStringToInt(const std::string &str)
void set_controller_xmpp_channel_setup_time(uint64_t time, uint8_t idx)
uint32_t flow_table_size_
static const uint16_t v6_link_local_plen_
VxLanNetworkIdentifierMode vxlan_network_identifier_mode() const
uint32_t GenerateHash(std::vector< std::string > &)
void set_acl_table(AclTable *table)
uint32_t vrouter_max_interfaces_
bool vcpe_gateway_mode() const
uint32_t vrouter_max_nexthops() const
int introspect_port() const
VrfEntry * fabric_vrf() const
VnTable * vn_table() const
void set_ip_fabric_intf_addr_list(const AddressList &addr_list)
static const uint8_t kMinAapPrefixLen
QosQueueTable * qos_queue_table_
const uint16_t v6_link_local_plen() const
PhysicalDeviceVnTable * physical_device_vn_table() const
void set_controller_ifmap_xmpp_port(uint16_t port, uint8_t idx)
void set_port_config_handler(PortConfigHandler handler)
void SetIgmpProto(IgmpProto *proto)
void set_max_vm_flows_perc(uint32_t count)
void set_agent_name(const std::string &name)
static const std::string & xmpp_control_node_prefix()
void set_test_mode(bool test_mode)
void set_cn_mcast_builder(AgentXmppChannel *peer)
void set_ksync_sync_mode(bool sync_mode)
std::string subcluster_name_
AgentXmppChannel * cn_mcast_builder_
VrfAssignTable * vrf_assign_table() const
Inet4MulticastAgentRouteTable * mc_rt_table_
void set_vrf_assign_table(VrfAssignTable *table)
static const uint32_t kDefaultFlowLatencyLimit
PhysicalDeviceTable * physical_device_table() const
void set_mirror_table(MirrorTable *table)
std::string vrouter_build_info() const
XmppClient * dns_xmpp_client_[MAX_XMPP_SERVERS]
uint32_t flow_add_tokens() const
bool vrouter_priority_tagging_
void set_tag_table(TagTable *table)
void set_fabric_vn_uuid(const boost::uuids::uuid &uuid)
HealthCheckTable * health_check_table_
MulticastPolicyTable * mp_table_
void set_flow_stats_manager(FlowStatsManager *fsc)
bool router_id_configured_
FlowStatsReqHandler & flow_stats_req_handler()
AgentInit * agent_init() const
void ShutdownLifetimeManager()
void SetBfdProto(BfdProto *proto)
OVSDB::OvsdbClient * ovsdb_client() const
void set_controller_ifmap_xmpp_init(XmppInit *init, uint8_t idx)
RestServer * rest_server() const
void set_controller_ifmap_xmpp_server(const std::string &addr, uint8_t idx)
const std::string & xmpp_server_key() const
void SetIcmpProto(IcmpProto *proto)
TaskScheduler * task_scheduler() const
NextHopTable * nexthop_table() const
IpAddress router_id6() const
uint32_t max_vm_flows() const
bool inet_labeled_enabled_
const std::string & v6_link_local_subnet() const
const Peer * link_local_peer() const
static const MacAddress & vrrp_mac()
LifetimeManager * lifetime_manager_
IcmpProto * GetIcmpProto() const
std::unique_ptr< Peer > mac_learning_peer_
static Agent * GetInstance()
static std::string fabric_policy_vrf_name_
void set_services(ServicesModule *services)
PolicySetTable * policy_set_table_
void set_dns_server(const std::string &addr, uint8_t idx)
void set_vhost_interface(const Interface *intrface)
VrfAssignTable * vrf_assign_table_
bool get_inet_labeled_flag()
std::vector< std::string > ip_fabric_intf_name_list_
PhysicalDeviceTable * physical_device_table_
static const uint32_t kFlowDelTokens
static const uint16_t v4_link_local_plen_
void set_vrouter_priority_tagging(bool tagging)
void set_vrouter_max_mirror_entries(uint32_t max_mirror_entries)
uint32_t flow_del_tokens() const
InetUnicastAgentRouteTable * fabric_inet4_unicast_table() const
void set_stats_collector(AgentStatsCollector *asc)
SgTable * sg_table() const
void set_fabric_policy_vrf(VrfEntry *vrf)
InetUnicastAgentRouteTable * uc_rt_table_
std::vector< string > & GetDnslist()
void set_simulate_evpn_tor(bool mode)
void set_event_manager(EventManager *evm)
std::vector< Ip4Address > AddressList
std::string xs_server_key_
float vr_limit_high_watermark_
std::unique_ptr< MetaDataIpAllocator > metadata_ip_allocator_
std::string xs_server_cert_
XmppClient * dns_xmpp_client(uint8_t idx) const
std::string xs_addr_[MAX_XMPP_SERVERS]
void set_rest_server(RestServer *r)
static const uint32_t kDefaultTaskMonitorTimeout
static const std::string v4_link_local_subnet_
uint32_t GetCollectorlistChksum()
void set_vrouter_max_interfaces(uint32_t max_interfaces)
bool server_gateway_mode() const
void set_vr_limit_low_watermark(float watermark)
ServiceInstanceTable * service_instance_table() const
void set_vn_table(VnTable *table)
void set_fabric_l2_unicast_table(RouteTable *table)
AgentIfMapXmppChannel * ifmap_channel_[MAX_XMPP_SERVERS]
std::unique_ptr< Peer > vxlan_bgp_peer_
void set_controller_ifmap_xmpp_client(XmppClient *client, uint8_t idx)
uint32_t vrouter_max_vrfs_
void set_dns_list(std::vector< std::string > &dns_list)
bool tor_agent_enabled() const
const std::string & crypt_interface_name() const
const std::string & fabric_interface_name() const
const Interface * vhost_interface() const
std::unique_ptr< MetaDataIpAllocator > metadata_ip6_allocator_
MacLearningProto * mac_learning_proto_
static const uint8_t kMaxSessionAggs
AgentStats * stats() const
void set_compute_node_ip(const Ip4Address &addr)
void SetAgentTaskPolicy()
const bool dns_auth_enabled() const
void set_loopback_ip(const Ip4Address &addr)
void set_module_name(const std::string &name)
DiagTable * diag_table() const
void set_dns_xmpp_client(XmppClient *client, uint8_t idx)
static const uint32_t kDefaultTbbKeepawakeTimeout
bool forwarding_enabled() const
CryptTunnelTable * crypt_tunnel_table_
void InitializeFilteredParams()
static const int kDefaultLowWatermark
const std::string & xmpp_ca_cert() const
bool tsn_no_forwarding_enabled_
HealthCheckTable * health_check_table() const
void set_vr_limit_high_watermark(float watermark)
void set_controller_xmpp_channel(AgentXmppChannel *channel, uint8_t idx)
void CreateLifetimeManager()
void set_mp_table(MulticastPolicyTable *table)
std::vector< string > & GetCollectorlist()
uint32_t vrouter_max_nexthops_
uint32_t vrouter_max_bridge_entries_
TaskScheduler * task_scheduler_
const int & module_type() const
std::vector< std::string > active_tsn_servers_
PortConfigHandler port_config_handler_
InetUnicastAgentRouteTable * fabric_inet4_mpls_table() const
void set_ifmap_stale_cleaner(IFMapAgentStaleCleaner *cl)
EventNotifier * event_notifier() const
uint32_t vrouter_max_mirror_entries_
EventNotifier * event_notifier_
static const uint8_t kMaxSessionEndpoints
uint32_t flow_ksync_tokens() const
void set_module_type(int id)
PortConfigHandler & port_config_handler()
process::ConnectionState * connection_state() const
AddressList ip_fabric_intf_addr_list() const
bool global_slo_status() const
const std::string & instance_id() const
std::unique_ptr< Peer > vgw_peer_
std::unique_ptr< Peer > mac_vm_binding_peer_
bool ksync_sync_mode() const
ServicesModule * services_
static const std::string config_file_
const std::string & linklocal_vn_name()
VxLanTable * vxlan_table_
std::unique_ptr< Peer > local_peer_
AgentIfMapXmppChannel * ifmap_xmpp_channel(uint8_t idx) const
void reset_ifmap_active_xmpp_server()
std::unique_ptr< ConfigManager > config_manager_
uint32_t vrouter_max_mirror_entries() const
XmppClient * controller_ifmap_xmpp_client(uint8_t idx)
const Peer * evpn_peer() const
static const uint32_t kMaxTbbThreads
static const uint32_t kMaxBgpAsAServerSessions
void reset_controller_xmpp_channel(uint8_t idx)
static const uint32_t kMacLearningDefaultTokens
const std::string & fabric_vrf_name() const
CryptTunnelTable * crypt_tunnel_table() const
std::unique_ptr< AgentSignal > agent_signal_
bool isVmwareMode() const
process::ConnectionState * connection_state_
static Agent * singleton_
void set_vrouter_max_labels(uint32_t max_labels)
bool server_gateway_mode_
Ip4Address router_id() const
void reset_controller_ifmap_xmpp_server(uint8_t idx)
void update_max_vm_flows(uint32_t flow_table_size)
void set_init_done(bool done)
BridgeAgentRouteTable * l2_rt_table_
void set_service_instance_table(ServiceInstanceTable *table)
uint32_t tbb_keepawake_timeout_
const int8_t & ifmap_active_xmpp_server_index() const
uint64_t xs_stime_[MAX_XMPP_SERVERS]
const Peer * multicast_tor_peer() const
MirrorCfgTable * mirror_cfg_table_
void set_fabric_vrf_name(const std::string &name)
void set_vrouter_server_port(uint32_t port)
void set_global_max_vmi_flows(uint32_t count)
uint16_t mirror_src_udp_port_
void set_xmpp_dns_test_mode(bool xmpp_dns_test_mode)
void set_fabric_inet4_mpls_table(InetUnicastAgentRouteTable *table)
void set_vrouter_max_bridge_entries(uint32_t bridge_entries)
void InitControllerList()
PolicySetTable * policy_set_table() const
void(* PortConfigHandler)(Agent *agent, uint8_t proto, const PortConfig *)
void set_policy_set_table(PolicySetTable *table)
std::vector< std::string > dns_list_
EventManager * event_mgr_
static const std::string v6_link_local_subnet_
std::string dns_addr_[MAX_XMPP_SERVERS]
AddressList ip_fabric_intf_addr_list_
const Peer * multicast_tree_builder_peer() const
const std::string & program_name() const
MetaDataIpAllocator * metadata_ip_allocator() const
float vr_limit_low_watermark()
MplsTable * mpls_table() const
InterfaceTable * intf_table_
void set_flow_stats_req_handler(FlowStatsReqHandler req)
std::unique_ptr< Peer > local_vm_peer_
static const uint32_t kDefaultMaxLinkLocalOpenFds
std::unique_ptr< Peer > inet_evpn_peer_
VrouterObjectLimits GetVrouterObjectLimits()
AddressList gateway_list_
void CopyFilteredParams()
IFMapAgentStaleCleaner * agent_stale_cleaner_
void set_fabric_vrf(VrfEntry *vrf)
void set_mac_learning_proto(MacLearningProto *mac_learning_proto)
boost::shared_ptr< AgentXmppChannel > controller_xmpp_channel_ref(uint8_t idx)
uint32_t GetDnslistChksum()
void set_fabric_l2_unicast_table(BridgeAgentRouteTable *table)
The TaskScheduler keeps track of what tasks are currently schedulable. When a task is enqueued it is ...
Task is a wrapper over tbb::task to support policies.
std::pair< void *, void * > IntrusiveReferrer