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