17 #include <vnc_cfg_types.h>
18 #include <agent_types.h>
20 #include <base/sandesh/task_types.h>
52 "default-domain:default-project:ip-fabric";
54 "default-domain:default-project:ip-fabric:__default__";
56 "default-domain:default-project:ip-fabric:ip-fabric";
58 "default-domain:default-project:__link_local__";
60 "default-domain:default-project:__link_local__:__link_local__";
87 }
else if (dest.is_v6()) {
99 std::ostringstream str;
113 static const int log_rate_limit = 15;
115 static int err_count = 0;
116 int sock = socket(AF_INET, SOCK_DGRAM, IPPROTO_IP);
117 memset(&ifr, 0,
sizeof(ifr));
119 int err = ioctl(sock, SIOCGIFFLAGS, &ifr);
120 if (err < 0 || !(ifr.ifr_flags & IFF_UP)) {
122 if ((err_count % log_rate_limit) == 0) {
123 LOG(DEBUG,
"vhost is down");
128 err = ioctl(sock, SIOCGIFADDR, &ifr);
129 if (
false ==
is_l3mh() && err < 0) {
131 if ((err_count % log_rate_limit) == 0) {
132 LOG(DEBUG,
"vhost is up. but ip is not set");
160 return std::string(((envval = getenv(
"LOGNAME"))== NULL)?
"" : envval)
168 for (
int i = 0; i < count; ++i) {
169 int task_id = scheduler->
GetTaskId(exclude_list[i]);
179 static bool initialized =
false;
185 const char *db_exclude_list[] = {
193 "Agent::StatsCollector",
197 "sandesh::RecvQueue",
200 "Agent::PktFlowResponder",
204 "http::RequestHandlerTask",
218 sizeof(db_exclude_list) /
sizeof(
char *));
221 const char *config_manager_exclude_list[] = {
226 sizeof(config_manager_exclude_list) /
sizeof(
char *));
228 const char *flow_table_exclude_list[] = {
229 "Agent::PktFlowResponder",
234 sizeof(flow_table_exclude_list) /
sizeof(
char *));
237 sizeof(flow_table_exclude_list) /
sizeof(
char *));
240 sizeof(flow_table_exclude_list) /
sizeof(
char *));
243 sizeof(flow_table_exclude_list) /
sizeof(
char *));
245 const char *sandesh_exclude_list[] = {
248 "Agent::StatsCollector",
250 "Agent::PktFlowResponder",
258 sizeof(sandesh_exclude_list) /
sizeof(
char *));
260 const char *xmpp_config_exclude_list[] = {
262 "Agent::StatsCollector",
263 "sandesh::RecvQueue",
265 "Agent::ControllerXmpp",
268 "xmpp::StateMachine",
274 sizeof(xmpp_config_exclude_list) /
sizeof(
char *));
276 const char *controller_xmpp_exclude_list[] = {
284 sizeof(controller_xmpp_exclude_list) /
sizeof(
char *));
286 const char *walker_exclude_list[] = {
287 "Agent::ControllerXmpp",
301 sizeof(walker_exclude_list) /
sizeof(
char *));
303 const char *ksync_exclude_list[] = {
309 sizeof(ksync_exclude_list) /
sizeof(
char *));
311 const char *stats_collector_exclude_list[] = {
312 "Agent::PktFlowResponder",
317 sizeof(stats_collector_exclude_list) /
sizeof(
char *));
319 const char *flow_stats_exclude_list[] = {
324 sizeof(flow_stats_exclude_list) /
sizeof(
char *));
326 const char *session_stats_exclude_list[] = {
332 sizeof(session_stats_exclude_list) /
sizeof(
char *));
334 const char *session_stats_event_exclude_list[] = {
339 sizeof(session_stats_event_exclude_list) /
sizeof(
char *));
340 const char *metadata_exclude_list[] = {
341 "xmpp::StateMachine",
342 "http::RequestHandlerTask"
345 sizeof(metadata_exclude_list) /
sizeof(
char *));
347 const char *xmpp_state_machine_exclude_list[] = {
351 sizeof(xmpp_state_machine_exclude_list) /
sizeof(
char *));
353 const char *agent_init_exclude_list[] = {
354 "xmpp::StateMachine",
363 sizeof(agent_init_exclude_list) /
sizeof(
char *));
365 const char *flow_stats_manager_exclude_list[] = {
366 "Agent::StatsCollector",
373 flow_stats_manager_exclude_list,
374 sizeof(flow_stats_manager_exclude_list) /
sizeof(
char *));
378 _1, _2, _3, _4, _5));
380 const char *db_exclude_task_exclude_list[] = {
382 "sandesh::RecvQueue",
383 "Agent::ControllerXmpp",
389 sizeof(db_exclude_task_exclude_list) /
sizeof(
char *));
391 const char *flow_stats_update_exclude_list[] = {
395 sizeof(flow_stats_update_exclude_list) /
sizeof(
char *));
397 const char *profile_task_exclude_list[] = {
403 sizeof(profile_task_exclude_list) /
sizeof(
char *));
406 const char *event_notify_exclude_list[] = {
407 "Agent::ControllerXmpp",
414 sizeof(event_notify_exclude_list) /
sizeof(
char *));
417 const char *health_check_exclude_list[] = {
421 sizeof(health_check_exclude_list) /
sizeof(
char *));
423 const char *rest_api_exclude_list[] = {
427 sizeof(rest_api_exclude_list) /
sizeof(
char *));
443 std::string concat_servers;
444 std::vector<std::string>::iterator iter;
445 for (iter = list.begin();
446 iter != list.end(); iter++) {
447 concat_servers += *iter;
450 boost::hash<std::string> string_hash;
451 return(string_hash(concat_servers));
592 g_vns_constants.Module2NodeType.find(module)->second;
596 g_vns_constants.NodeTypeNames.find(node_type)->second,
606 g_vns_constants.NodeTypeNames.find(node_type)->second,
617 std::string sub(
"{\"HTTPPort\":");
620 pidstring +=
".json";
623 std::ofstream outfile(pidstring.c_str(), std::ofstream::out);
654 struct if_nameindex *ifs = NULL;
655 struct if_nameindex *head = NULL;
659 ifs = if_nameindex();
661 LOG(INFO,
"No interface exists!");
665 while (ifs->if_name && ifs->if_index) {
666 tname = ifs->if_name;
667 if (string::npos != tname.find(name)) {
674 if_freenameindex(head);
684 LOG(INFO,
"Interface " << dev_name <<
" not found");
734 LOG(DEBUG,
"Received SIGHUP to apply updated configuration");
746 LOG(INFO,
"Received SIGUSR1 to update debug configuration");
752 params_(NULL), cfg_(NULL), stats_(NULL), ksync_(NULL), uve_(NULL),
753 stats_collector_(NULL), flow_stats_manager_(NULL), pkt_(NULL),
754 services_(NULL), vgw_(NULL), rest_server_(NULL), port_ipc_handler_(NULL),
755 oper_db_(NULL), diag_table_(NULL), controller_(NULL), resource_manager_(),
756 event_notifier_(), event_mgr_(NULL),
757 agent_xmpp_channel_(), ifmap_channel_(),
758 xmpp_client_(), xmpp_init_(), dns_xmpp_channel_(), dns_xmpp_client_(),
759 dns_xmpp_init_(), agent_stale_cleaner_(NULL), cn_mcast_builder_(NULL),
760 metadata_server_port_(0), host_name_(
""), agent_name_(
""),
761 prog_name_(
""), introspect_port_(0),
762 instance_id_(g_vns_constants.INSTANCE_ID_DEFAULT),
763 module_type_(Module::VROUTER_AGENT), module_name_(),
764 db_(NULL), task_scheduler_(NULL), agent_init_(NULL), fabric_vrf_(NULL),
765 fabric_policy_vrf_(NULL),
766 intf_table_(NULL), health_check_table_(), metadata_ip_allocator_(),
767 metadata_ip6_allocator_(nullptr), nh_table_(NULL), uc_rt_table_(NULL), mc_rt_table_(NULL),
768 evpn_rt_table_(NULL), l2_rt_table_(NULL), vrf_table_(NULL),
769 vm_table_(NULL), vn_table_(NULL), sg_table_(NULL), mpls_table_(NULL),
770 acl_table_(NULL), mirror_table_(NULL), vrf_assign_table_(NULL),
771 vxlan_table_(NULL), service_instance_table_(NULL),
772 physical_device_table_(NULL), physical_device_vn_table_(NULL),
773 config_manager_(), mirror_cfg_table_(NULL),
774 intf_mirror_cfg_table_(NULL), router_id6_(
Ip4Address(0)), router_id_(0), prefix_len_(0),
775 gateway_list_(0), compute_node_ip_(0), xs_cfg_addr_(
""), xs_idx_(0),
776 xs_addr_(), xs_port_(),
777 xs_stime_(), xs_auth_enable_(false), xs_dns_idx_(0), dns_addr_(),
778 dns_port_(), dns_auth_enable_(false),
779 controller_chksum_(0), dns_chksum_(0), collector_chksum_(0),
780 ip_fabric_intf_name_(
""), crypt_intf_name_(
""),
781 vhost_interface_name_(
""),
782 pkt_interface_name_(
"pkt0"), arp_proto_(NULL),
783 dhcp_proto_(NULL), dns_proto_(NULL), icmp_proto_(NULL),
784 dhcpv6_proto_(NULL), icmpv6_proto_(NULL), flow_proto_(NULL),
785 mac_learning_proto_(NULL), mac_learning_module_(NULL),
786 local_peer_(), local_vm_peer_(), linklocal_peer_(),
787 ecmp_peer_(), vgw_peer_(), evpn_routing_peer_(),
788 vxlan_bgp_peer_(), evpn_peer_(), multicast_peer_(),
789 multicast_tor_peer_(), multicast_tree_builder_peer_(),mac_vm_binding_peer_(),
790 inet_evpn_peer_(), mac_learning_peer_(), fabric_rt_export_peer_(),
791 local_vm_export_peer_(), agent_signal_(), ifmap_parser_(NULL),
792 router_id_configured_(false), mirror_src_udp_port_(0),
793 lifetime_manager_(NULL), ksync_sync_mode_(false), mgmt_ip_(
""),
794 vxlan_network_identifier_mode_(AUTOMATIC), vhost_interface_(NULL),
795 crypt_interface_(NULL), connection_state_(NULL), test_mode_(false),
796 xmpp_dns_test_mode_(false),
797 init_done_(false), resource_manager_ready_(false),
798 simulate_evpn_tor_(false), tsn_no_forwarding_enabled_(false),
800 tor_agent_enabled_(false), forwarding_enabled_(true),
801 server_gateway_mode_(false), pbb_gateway_mode_(false),
802 inet_labeled_enabled_(false),
803 flow_table_size_(0), flow_thread_count_(0), flow_trace_enable_(true),
807 ovsdb_client_(NULL), vrouter_server_ip_(0),
808 vrouter_server_port_(0), vrouter_max_labels_(0), vrouter_max_nexthops_(0),
809 vrouter_max_interfaces_(0), vrouter_max_vrfs_(0),
810 vrouter_max_mirror_entries_(0), vrouter_max_bridge_entries_(0),
811 vrouter_max_oflow_bridge_entries_(0), vrouter_priority_tagging_(true),
812 flow_stats_req_handler_(NULL),
813 tbb_keepawake_timeout_(kDefaultTbbKeepawakeTimeout),
814 task_monitor_timeout_msec_(kDefaultTaskMonitorTimeout),
815 vr_limit_high_watermark_(kDefaultHighWatermark),
816 vr_limit_low_watermark_(kDefaultLowWatermark),
817 loopback_ip_(), is_l3mh_(false), ip_fabric_intf_name_list_() {
831 module_name_ = g_vns_constants.ModuleNames.find(module)->second;
834 AgentStaticObjectFactory::Create<AgentSignal>(
event_mgr_));
1070 std::string proto = proto_arg;
1072 std::transform(proto.begin(), proto.end(), proto.begin(), ::tolower);
1074 if (proto ==
"tcp") {
1078 if (proto ==
"udp") {
1082 if (proto ==
"sctp") {
1083 return IPPROTO_SCTP;
1086 if (proto ==
"icmp") {
1087 return IPPROTO_ICMP;
1090 if (proto ==
"icmp6") {
1091 return IPPROTO_ICMPV6;
1094 return atoi(proto.c_str());
1098 (
const std::string &mode)
const {
1101 else if (mode ==
"l3")
1103 else if (mode ==
"l2_l3")
1128 assert(channel != NULL);
1141 const Task *
task,
const char *description,
1144 task->GetTaskId(),
task->GetTaskInstance(),
1145 description, delay,
task->Description());
1170 VrouterObjectLimits vr_limits;
1177 vr_limits.set_vrouter_max_oflow_bridge_entries(
1201 std::ostringstream sbuffer;
1202 void *callstack[128];
1204 const int nMaxFrames =
sizeof(callstack) /
sizeof(callstack[0]);
1205 int nFrames = backtrace(callstack, nMaxFrames);
1207 for (
int i =
skip; i < nFrames; i++) {
1209 if (dladdr(callstack[i], &info)) {
1210 char *demangled = NULL;
1212 demangled = abi::__cxa_demangle(info.dli_sname, NULL, 0, &status);
1213 snprintf(buffer,
sizeof(buffer),
"%-3d %p %s + %zd\n",
1215 status == 0 ? demangled : info.dli_sname,
1216 (
char *)callstack[i] - (
char *)info.dli_saddr);
1219 snprintf(buffer,
sizeof(buffer),
"%-3d %p\n",
1224 if (nFrames == nMaxFrames)
1225 sbuffer <<
" [truncated]\n";
1227 return sbuffer.str();
static AclTable * acl_table_
boost::asio::ip::address IpAddress
boost::asio::ip::address_v4 Ip4Address
static void SetTaskPolicyOne(const char *task, const char *exclude_list[], int count)
std::string AgentBackTrace(int skip=1)
static bool interface_exist(string &name)
SandeshTraceBufferPtr TaskTraceBuf(SandeshTraceBufferCreate("TaskTrace", 5000))
std::pair< std::string, std::string > VrLimitData
#define AGENT_SHUTDOWN_TASKNAME
#define kTaskFlowStatsUpdate
#define kAgentResourceBackUpTask
#define FLOWS_LIMIT_UNLIMITED
#define AGENT_SANDESH_TASKNAME
#define AGENT_INIT_TASKNAME
#define INSTANCE_MANAGER_TASK_NAME
#define kEventNotifierTask
#define kTaskSessionStatsCollector
#define kTaskConfigManager
#define kAgentResourceRestoreTask
#define AGENT_FLOW_STATS_MANAGER_TASK
#define kTaskFlowStatsCollector
#define XMPP_DNS_SERVER_PORT
#define kTaskSessionStatsCollectorEvent
bool simulate_evpn_tor() const
std::string xmpp_server_cert() const
std::string xmpp_ca_cert() const
bool vrouter_on_host() const
const std::string & tunnel_type() const
void set_measure_queue_delay(bool val)
bool flow_trace_enable() const
const int vhost_plen() const
uint32_t flow_del_tokens() const
bool cat_is_agent_mocked() const
const void set_xen_ll_name(const std::string &name)
const std::string & host_name() const
const std::string & agent_name() const
uint32_t flow_ksync_tokens() const
const std::vector< std::string > collector_server_list() const
bool IsForwardingEnabled() const
const std::string & vhost_name() const
uint16_t flow_thread_count() const
bool vrouter_on_nic_mode() const
bool isDockerMode() const
const Ip4Address & vhost_addr() const
const SandeshConfig & sandesh_config() const
bool vrouter_on_host_dpdk() const
bool xmpp_dns_auth_enabled() const
bool isVcpeGatewayMode() const
const Ip4Address & xen_ll_gw() const
const std::string & crypt_port() const
bool isPbbGatewayMode() const
const AddressList & gateway_list() const
const std::string & program_name() const
const std::string & xen_ll_name() const
const std::string & subcluster_name() const
uint32_t flow_update_tokens() const
const Ip4Address & xen_ll_addr() const
bool measure_queue_delay() const
uint16_t http_server_port() const
uint32_t flow_add_tokens() const
uint32_t task_monitor_timeout_msec() const
const Ip4Address & loopback_ip() const
std::string xmpp_server_key() const
const std::vector< std::string > controller_server_list() const
bool isVmwareVcenterMode() const
const std::vector< std::string > & eth_port_list() const
float vr_object_high_watermark() const
const int xen_ll_plen() const
uint32_t tbb_keepawake_timeout() const
bool isVmwareMode() const
bool isServerGatewayMode() const
const std::vector< std::string > dns_server_list() const
const AddressList & eth_port_addr_list() const
const std::map< std::string, std::map< std::string, std::string > > derived_stats_map() const
bool xmpp_auth_enabled() const
void SetMeasureQueueDelay(bool val)
ConfigManager * config_manager() const
static std::string fabric_vrf_name_
bool vrouter_on_nic_mode() const
MetaDataIpAllocator * metadata_ip6_allocator() const
PortIpcHandler * port_ipc_handler_
std::string GetUuidStr(boost::uuids::uuid uuid_val) const
ResourceManager * resource_manager() const
ResourceManager * resource_manager_
void TaskTrace(const char *file_name, uint32_t line_no, const Task *task, const char *description, uint64_t delay)
XmppClient * xmpp_client_[MAX_XMPP_SERVERS]
uint8_t GetInterfaceTransport() const
std::unique_ptr< Peer > multicast_tor_peer_
float vr_limit_low_watermark_
Agent::ForwardingMode TranslateForwardingMode(const std::string &mode) const
std::vector< std::string > collector_list_
std::vector< std::string > controller_list_
void ReConnectCollectors()
ServicesModule * services() const
static const MacAddress pkt_interface_mac_
VNController * controller() const
std::unique_ptr< Peer > multicast_tree_builder_peer_
std::unique_ptr< Peer > evpn_routing_peer_
void set_flow_table_size(uint32_t count)
uint32_t controller_chksum_
VirtualGateway * vgw() const
void set_uve(AgentUveBase *uve)
BridgeDomainTable * bridge_domain_table_
std::unique_ptr< Peer > linklocal_peer_
static const std::string link_local_vrf_name_
void set_ksync(KSync *ksync)
uint16_t dns_port_[MAX_XMPP_SERVERS]
uint32_t vrouter_max_oflow_entries() const
VNController * controller_
DomainConfig * domain_config_table() const
bool vrouter_priority_tagging() const
uint16_t flow_thread_count_
void set_resource_manager(ResourceManager *resource_manager)
PortIpcHandler * port_ipc_handler() const
bool resource_manager_ready_
AgentStatsCollector * stats_collector_
FlowStatsManager * flow_stats_manager() const
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
VrLimitExceeded vr_limits_exceeded_map_
uint32_t vrouter_max_interfaces() const
AgentParam * params() const
void InitXenLinkLocalIntf()
uint32_t flow_ksync_tokens_
void set_metadata_ip6_allocator(MetaDataIpAllocator *allocator)
const std::string & agent_name() const
FlowStatsManager * flow_stats_manager_
uint32_t vrouter_max_flow_entries() const
const std::string & GetHostInterfaceName() const
std::string vhost_interface_name_
std::string crypt_intf_name_
AgentUveBase * uve() const
std::unique_ptr< Peer > local_vm_export_peer_
static const MacAddress right_si_mac_
static const std::string fabric_vn_name_
EventManager * event_manager() const
static const std::set< std::string > null_string_list_
void SetXmppDscp(uint8_t val)
void set_port_ipc_handler(PortIpcHandler *r)
uint32_t flow_del_tokens_
RestServer * rest_server_
uint32_t task_monitor_timeout_msec_
std::unique_ptr< Peer > ecmp_peer_
void set_stats(AgentStats *stats)
uint32_t vrouter_max_labels() const
uint32_t vrouter_max_vrfs() const
uint32_t flow_add_tokens_
AgentConfig * cfg() const
static const std::string xmpp_dns_server_connection_name_prefix_
AgentStatsCollector * stats_collector() const
std::unique_ptr< Peer > fabric_rt_export_peer_
void CopyConfig(AgentParam *params)
uint32_t collector_chksum_
Ip4Address compute_node_ip_
void set_health_check_table(HealthCheckTable *table)
std::unique_ptr< Peer > evpn_peer_
void set_pkt(PktModule *pkt)
void set_cfg(AgentConfig *cfg)
const std::string & vhost_interface_name() const
uint32_t vrouter_max_oflow_bridge_entries() const
void set_oper_db(OperDB *oper_db)
uint32_t max_vm_flows_perc_
static const uint16_t kDefaultVmiVmVnUveInterval
void SetResourceManagerReady()
void set_event_notifier(EventNotifier *mgr)
IpAddress GetMirrorSourceIp(const IpAddress &dest)
uint16_t xs_port_[MAX_XMPP_SERVERS]
void set_metadata_ip_allocator(MetaDataIpAllocator *allocator)
uint32_t flow_table_size() const
void set_controller(VNController *val)
void ReconfigSignalHandler(boost::system::error_code, int)
void set_diag_table(DiagTable *table)
void DebugSignalHandler(boost::system::error_code, int)
static const MacAddress left_si_mac_
const std::string & host_name() const
const std::string & module_name() const
std::string ip_fabric_intf_name_
static const std::string link_local_vn_name_
bool isVmwareVcenterMode() const
bool vrouter_on_host_dpdk() const
static const std::string null_string_
static const std::string & NullString()
static const MacAddress vrrp_mac_
std::unique_ptr< Peer > multicast_peer_
std::string AgentGUID() const
bool is_vhost_interface_up() const
void set_vgw(VirtualGateway *vgw)
boost::shared_ptr< AgentXmppChannel > agent_xmpp_channel_[MAX_XMPP_SERVERS]
uint32_t vrouter_max_bridge_entries() const
BridgeDomainTable * bridge_domain_table() const
static uint16_t ProtocolStringToInt(const std::string &str)
uint32_t flow_table_size_
uint32_t GenerateHash(std::vector< std::string > &)
uint32_t vrouter_max_nexthops() const
void set_cn_mcast_builder(AgentXmppChannel *peer)
std::string subcluster_name_
AgentXmppChannel * cn_mcast_builder_
std::string vrouter_build_info() const
XmppClient * dns_xmpp_client_[MAX_XMPP_SERVERS]
HealthCheckTable * health_check_table_
void set_flow_stats_manager(FlowStatsManager *fsc)
bool router_id_configured_
void ShutdownLifetimeManager()
RestServer * rest_server() const
LifetimeManager * lifetime_manager_
std::unique_ptr< Peer > mac_learning_peer_
static Agent * GetInstance()
static std::string fabric_policy_vrf_name_
void set_services(ServicesModule *services)
std::vector< std::string > ip_fabric_intf_name_list_
void set_stats_collector(AgentStatsCollector *asc)
std::string xs_server_key_
float vr_limit_high_watermark_
std::unique_ptr< MetaDataIpAllocator > metadata_ip_allocator_
std::string xs_server_cert_
std::string xs_addr_[MAX_XMPP_SERVERS]
void set_rest_server(RestServer *r)
static const std::string v4_link_local_subnet_
std::unique_ptr< Peer > vxlan_bgp_peer_
bool tor_agent_enabled() const
std::unique_ptr< MetaDataIpAllocator > metadata_ip6_allocator_
AgentStats * stats() const
void SetAgentTaskPolicy()
DiagTable * diag_table() const
void InitializeFilteredParams()
bool tsn_no_forwarding_enabled_
HealthCheckTable * health_check_table() const
void set_controller_xmpp_channel(AgentXmppChannel *channel, uint8_t idx)
void CreateLifetimeManager()
std::vector< string > & GetCollectorlist()
TaskScheduler * task_scheduler_
EventNotifier * event_notifier() const
EventNotifier * event_notifier_
std::unique_ptr< Peer > vgw_peer_
std::unique_ptr< Peer > mac_vm_binding_peer_
ServicesModule * services_
std::unique_ptr< Peer > local_peer_
std::unique_ptr< ConfigManager > config_manager_
uint32_t vrouter_max_mirror_entries() const
void reset_controller_xmpp_channel(uint8_t idx)
std::unique_ptr< AgentSignal > agent_signal_
bool isVmwareMode() const
static Agent * singleton_
bool server_gateway_mode_
Ip4Address router_id() const
void update_max_vm_flows(uint32_t flow_table_size)
uint32_t tbb_keepawake_timeout_
void InitControllerList()
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_
MetaDataIpAllocator * metadata_ip_allocator() const
InterfaceTable * intf_table_
std::unique_ptr< Peer > local_vm_peer_
std::unique_ptr< Peer > inet_evpn_peer_
VrouterObjectLimits GetVrouterObjectLimits()
AddressList gateway_list_
void CopyFilteredParams()
boost::shared_ptr< AgentXmppChannel > controller_xmpp_channel_ref(uint8_t idx)
static void Create(InterfaceTable *table, const std::string &ifname, SubType sub_type, const std::string &vrf_name, const Ip4Address &addr, int plen, const Ip4Address &gw, const std::string &xconnect, const std::string &vn_name, Interface::Transport transport)
DomainConfig * domain_config_table()
@ MULTICAST_FABRIC_TREE_BUILDER
static void ReConfigCollectors(const std::vector< std::string > &collector_list)
static bool InitGenerator(const std::string &module, const std::string &source, const std::string &node_type, const std::string &instance_id, EventManager *evm, unsigned short http_port, const std::vector< std::string > &collectors, SandeshContext *client_context=NULL, DerivedStats ds=DerivedStats(), const SandeshConfig &config=SandeshConfig())
The TaskScheduler keeps track of what tasks are currently schedulable. When a task is enqueued it is ...
int GetTaskId(const std::string &name)
void ModifyTbbKeepAwakeTimeout(uint32_t timeout)
void EnableMonitor(EventManager *evm, uint64_t tbb_keepawake_time_msec, uint64_t inactivity_time_msec, uint64_t poll_interval_msec)
Enable Task monitoring.
void SetPolicy(int task_id, TaskPolicy &policy)
Sets the task exclusion policy. Adds policy entries for the task Examples:
static TaskScheduler * GetInstance()
void RegisterLog(LogFn fn)
Task is a wrapper over tbb::task to support policies.
static void SetDefaultType(Type type)
int SetDscpValue(uint8_t value, const char *conn_id)
static const char * kControlNodeJID
static const char * kDnsNodeJID
void ParseAddresses(const std::vector< std::string > &addresses, std::string out_ips[], uint16_t out_ports[]) const
#define LOG(_Level, _Msg)
int32_t skip(Protocol_ &prot, TType type)
#define LOCAL_VM_EXPORT_PEER
#define MULTICAST_FABRIC_TREE_BUILDER_NAME
#define MAC_LEARNING_PEER_NAME
#define LINKLOCAL_PEER_NAME
#define LOCAL_VM_PEER_NAME
#define MULTICAST_PEER_NAME
#define MAC_VM_BINDING_PEER_NAME
#define MULTICAST_TOR_PEER_NAME
boost::shared_ptr< TraceBuffer< SandeshTrace > > SandeshTraceBufferPtr
SandeshTraceBufferPtr SandeshTraceBufferCreate(const std::string &buf_name, size_t buf_size, bool trace_enable=true)
static const std::string integerToString(const NumberType &num)
std::vector< TaskExclusion > TaskPolicy
#define CHECK_CONCURRENCY(...)