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),
804 max_vm_flows_(0), ovsdb_client_(NULL), vrouter_server_ip_(0),
805 vrouter_server_port_(0), vrouter_max_labels_(0), vrouter_max_nexthops_(0),
806 vrouter_max_interfaces_(0), vrouter_max_vrfs_(0),
807 vrouter_max_mirror_entries_(0), vrouter_max_bridge_entries_(0),
808 vrouter_max_oflow_bridge_entries_(0), vrouter_priority_tagging_(true),
809 flow_stats_req_handler_(NULL),
810 tbb_keepawake_timeout_(kDefaultTbbKeepawakeTimeout),
811 task_monitor_timeout_msec_(kDefaultTaskMonitorTimeout),
812 vr_limit_high_watermark_(kDefaultHighWatermark),
813 vr_limit_low_watermark_(kDefaultLowWatermark),
814 loopback_ip_(), is_l3mh_(false), ip_fabric_intf_name_list_() {
828 module_name_ = g_vns_constants.ModuleNames.find(module)->second;
831 AgentStaticObjectFactory::Create<AgentSignal>(
event_mgr_));
1067 std::string proto = proto_arg;
1069 std::transform(proto.begin(), proto.end(), proto.begin(), ::tolower);
1071 if (proto ==
"tcp") {
1075 if (proto ==
"udp") {
1079 if (proto ==
"sctp") {
1080 return IPPROTO_SCTP;
1083 if (proto ==
"icmp") {
1084 return IPPROTO_ICMP;
1087 if (proto ==
"icmp6") {
1088 return IPPROTO_ICMPV6;
1091 return atoi(proto.c_str());
1095 (
const std::string &mode)
const {
1098 else if (mode ==
"l3")
1100 else if (mode ==
"l2_l3")
1116 assert(channel != NULL);
1129 const Task *
task,
const char *description,
1158 VrouterObjectLimits vr_limits;
1165 vr_limits.set_vrouter_max_oflow_bridge_entries(
1189 std::ostringstream sbuffer;
1190 void *callstack[128];
1192 const int nMaxFrames =
sizeof(callstack) /
sizeof(callstack[0]);
1193 int nFrames = backtrace(callstack, nMaxFrames);
1195 for (
int i =
skip; i < nFrames; i++) {
1197 if (dladdr(callstack[i], &info)) {
1198 char *demangled = NULL;
1200 demangled = abi::__cxa_demangle(info.dli_sname, NULL, 0, &status);
1201 snprintf(buffer,
sizeof(buffer),
"%-3d %p %s + %zd\n",
1203 status == 0 ? demangled : info.dli_sname,
1204 (
char *)callstack[i] - (
char *)info.dli_saddr);
1207 snprintf(buffer,
sizeof(buffer),
"%-3d %p\n",
1212 if (nFrames == nMaxFrames)
1213 sbuffer <<
" [truncated]\n";
1215 return sbuffer.str();
#define MAC_VM_BINDING_PEER_NAME
bool router_id_configured_
#define LOCAL_VM_PEER_NAME
int SetDscpValue(uint8_t value, const char *conn_id)
void set_services(ServicesModule *services)
uint32_t collector_chksum_
uint16_t flow_thread_count_
std::unique_ptr< Peer > vgw_peer_
std::unique_ptr< Peer > local_vm_export_peer_
static const MacAddress vrrp_mac_
void EnableMonitor(EventManager *evm, uint64_t tbb_keepawake_time_msec, uint64_t inactivity_time_msec, uint64_t poll_interval_msec)
Enable Task monitoring.
ServicesModule * services() const
void set_controller_xmpp_channel(AgentXmppChannel *channel, uint8_t idx)
std::string xmpp_server_cert() const
std::vector< std::string > dns_list_
IpAddress GetMirrorSourceIp(const IpAddress &dest)
#define kEventNotifierTask
bool isVmwareMode() const
uint32_t tbb_keepawake_timeout() const
static const std::string bcast_mac_
static Agent * GetInstance()
The TaskScheduler keeps track of what tasks are currently schedulable. When a task is enqueued it is ...
const std::string & vhost_name() const
float vr_limit_high_watermark_
std::vector< std::string > ip_fabric_intf_name_list_
FlowStatsManager * flow_stats_manager() const
bool server_gateway_mode_
void set_bridge_domain_table(BridgeDomainTable *table)
ServicesModule * services_
uint32_t task_monitor_timeout_msec() const
bool tor_agent_enabled() const
DomainConfig * domain_config_table() const
void CopyConfig(AgentParam *params)
void set_oper_db(OperDB *oper_db)
RestServer * rest_server() const
void SetAgentTaskPolicy()
static const MacAddress left_si_mac_
#define kAgentResourceRestoreTask
void SetPolicy(int task_id, TaskPolicy &policy)
Sets the task exclusion policy. Adds policy entries for the task Examples:
static void ReConfigCollectors(const std::vector< std::string > &collector_list)
AgentUveBase * uve() const
uint16_t dns_port_[MAX_XMPP_SERVERS]
#define kTaskSessionStatsCollectorEvent
static const MacAddress right_si_mac_
bool vrouter_on_host_dpdk() const
const std::vector< std::string > collector_server_list() const
#define LINKLOCAL_PEER_NAME
void reset_controller_xmpp_channel(uint8_t idx)
ConfigManager * config_manager() const
const AddressList & gateway_list() const
static AclTable * acl_table_
boost::asio::ip::address IpAddress
bool xmpp_auth_enabled() const
AgentStatsCollector * stats_collector_
#define XMPP_DNS_SERVER_PORT
const Ip4Address & loopback_ip() const
PortIpcHandler * port_ipc_handler() const
AddressList ip_fabric_intf_addr_list_
const std::vector< std::string > controller_server_list() const
AgentStats * stats() const
const std::string & crypt_port() const
std::unique_ptr< Peer > fabric_rt_export_peer_
uint16_t flow_thread_count() const
std::unique_ptr< Peer > local_peer_
std::string dns_addr_[MAX_XMPP_SERVERS]
const std::string & vhost_interface_name() const
bool resource_manager_ready_
void InitXenLinkLocalIntf()
float vr_object_high_watermark() const
static const std::string xmpp_control_node_connection_name_prefix_
#define AGENT_FLOW_STATS_MANAGER_TASK
void set_pkt(PktModule *pkt)
#define MULTICAST_PEER_NAME
#define MAC_LEARNING_PEER_NAME
void set_measure_queue_delay(bool val)
boost::shared_ptr< AgentXmppChannel > controller_xmpp_channel_ref(uint8_t idx)
bool vrouter_on_host_dpdk() const
void set_uve(AgentUveBase *uve)
uint32_t vrouter_max_vrfs() const
static Agent * singleton_
const Ip4Address & vhost_addr() const
const int vhost_plen() const
void CopyFilteredParams()
std::string xs_server_key_
boost::shared_ptr< TraceBuffer< SandeshTrace > > SandeshTraceBufferPtr
DiagTable * diag_table() const
const std::string & xen_ll_name() const
uint32_t flow_del_tokens_
std::unique_ptr< Peer > multicast_tor_peer_
bool vrouter_priority_tagging() const
bool vrouter_on_nic_mode() const
void set_rest_server(RestServer *r)
std::unique_ptr< Peer > vxlan_bgp_peer_
#define kTaskSessionStatsCollector
TaskScheduler * task_scheduler_
std::unique_ptr< Peer > mac_learning_peer_
bool isPbbGatewayMode() const
void SetMeasureQueueDelay(bool val)
std::unique_ptr< Peer > inet_evpn_peer_
uint32_t flow_table_size_
int GetTaskId(const std::string &name)
void CreateLifetimeManager()
uint32_t vrouter_max_nexthops() const
bool simulate_evpn_tor() const
#define AGENT_SHUTDOWN_TASKNAME
EventNotifier * event_notifier() const
#define MULTICAST_TOR_PEER_NAME
float vr_limit_low_watermark_
const std::string & tunnel_type() const
MetaDataIpAllocator * metadata_ip_allocator() const
std::string xs_server_cert_
void InitializeFilteredParams()
const std::vector< std::string > dns_server_list() const
SandeshTraceBufferPtr TaskTraceBuf(SandeshTraceBufferCreate("TaskTrace", 5000))
void RegisterLog(LogFn fn)
static const std::string v4_link_local_subnet_
static std::string fabric_vrf_name_
DomainConfig * domain_config_table()
static const std::string integerToString(const NumberType &num)
std::vector< string > & GetCollectorlist()
uint8_t GetInterfaceTransport() const
PortIpcHandler * port_ipc_handler_
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)
static void SetTaskPolicyOne(const char *task, const char *exclude_list[], int count)
static TaskScheduler * GetInstance()
bool flow_trace_enable() const
std::unique_ptr< ConfigManager > config_manager_
void ShutdownLifetimeManager()
BridgeDomainTable * bridge_domain_table() const
const AddressList & eth_port_addr_list() const
VrLimitExceeded vr_limits_exceeded_map_
BridgeDomainTable * bridge_domain_table_
std::vector< std::string > collector_list_
Ip4Address router_id() const
bool vrouter_on_host() const
LifetimeManager * lifetime_manager_
VNController * controller() const
std::string xs_addr_[MAX_XMPP_SERVERS]
static const std::string null_string_
EventManager * event_manager() const
std::string xmpp_server_key() const
uint16_t http_server_port() const
std::string ip_fabric_intf_name_
#define MULTICAST_FABRIC_TREE_BUILDER_NAME
void set_flow_table_size(uint32_t count)
virtual std::string Description() const =0
#define CHECK_CONCURRENCY(...)
bool isVmwareMode() const
static const std::string & NullString()
bool vrouter_on_nic_mode() const
VNController * controller_
bool vrouter_on_host() const
static const std::set< std::string > null_string_list_
uint32_t flow_ksync_tokens_
uint32_t flow_add_tokens() const
bool IsForwardingEnabled() const
bool xmpp_dns_auth_enabled() const
uint32_t vrouter_max_labels() const
void set_vgw(VirtualGateway *vgw)
AgentStatsCollector * stats_collector() const
int GetTaskInstance() const
void ModifyTbbKeepAwakeTimeout(uint32_t timeout)
AgentParam * params() const
#define kTaskFlowStatsUpdate
AddressList gateway_list_
#define kTaskConfigManager
void set_flow_stats_manager(FlowStatsManager *fsc)
const Ip4Address & xen_ll_addr() const
const std::string & agent_name() const
void set_cfg(AgentConfig *cfg)
void ParseAddresses(const std::vector< std::string > &addresses, std::string out_ips[], uint16_t out_ports[]) const
void SetXmppDscp(uint8_t val)
RestServer * rest_server_
#define kAgentResourceBackUpTask
std::unique_ptr< Peer > ecmp_peer_
XmppClient * xmpp_client_[MAX_XMPP_SERVERS]
std::vector< TaskExclusion > TaskPolicy
boost::asio::ip::address_v4 Ip4Address
uint32_t vrouter_max_mirror_entries() const
const std::string & host_name() const
#define kTaskFlowStatsCollector
std::string xmpp_ca_cert() const
static const std::string link_local_vrf_name_
float max_vm_flows() const
std::string AgentBackTrace(int skip=1)
std::pair< std::string, std::string > VrLimitData
FlowStatsManager * flow_stats_manager_
uint32_t flow_ksync_tokens() const
std::string AgentGUID() const
void set_port_ipc_handler(PortIpcHandler *r)
std::unique_ptr< Peer > evpn_peer_
const Ip4Address & xen_ll_gw() const
uint32_t flow_del_tokens() const
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)
void ReconfigSignalHandler(boost::system::error_code, int)
const int xen_ll_plen() const
void set_event_notifier(EventNotifier *mgr)
HealthCheckTable * health_check_table() const
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())
bool is_vhost_interface_up() const
static const char * kDnsNodeJID
uint32_t vrouter_max_interfaces() const
static const std::string xmpp_dns_server_connection_name_prefix_
void InitControllerList()
HealthCheckTable * health_check_table_
const void set_xen_ll_name(const std::string &name)
boost::shared_ptr< AgentXmppChannel > agent_xmpp_channel_[MAX_XMPP_SERVERS]
uint32_t flow_add_tokens_
std::unique_ptr< AgentSignal > agent_signal_
static const uint16_t kDefaultVmiVmVnUveInterval
uint32_t controller_chksum_
const std::string & GetHostInterfaceName() const
EventNotifier * event_notifier_
void set_cn_mcast_builder(AgentXmppChannel *peer)
const std::string & program_name() const
uint32_t task_monitor_timeout_msec_
std::unique_ptr< Peer > multicast_tree_builder_peer_
uint32_t flow_update_tokens_
static const std::string link_local_vn_name_
void set_metadata_ip6_allocator(MetaDataIpAllocator *allocator)
const std::map< std::string, std::map< std::string, std::string > > derived_stats_map() const
uint32_t vrouter_max_oflow_entries() const
void set_metadata_ip_allocator(MetaDataIpAllocator *allocator)
uint32_t tbb_keepawake_timeout_
uint32_t vrouter_max_oflow_bridge_entries() const
static const std::string fabric_vn_name_
static const std::string v6_link_local_subnet_
uint32_t vrouter_max_flow_entries() const
std::string subcluster_name_
std::unique_ptr< Peer > evpn_routing_peer_
#define LOG(_Level, _Msg)
bool isVcpeGatewayMode() const
void set_health_check_table(HealthCheckTable *table)
std::vector< std::string > controller_list_
std::string crypt_intf_name_
XmppClient * dns_xmpp_client_[MAX_XMPP_SERVERS]
InterfaceTable * intf_table_
Agent::ForwardingMode TranslateForwardingMode(const std::string &mode) const
std::unique_ptr< Peer > multicast_peer_
#define LOCAL_VM_EXPORT_PEER
bool isDockerMode() const
#define AGENT_SANDESH_TASKNAME
const SandeshConfig & sandesh_config() const
static void SetDefaultType(Type type)
VirtualGateway * vgw() const
void set_stats_collector(AgentStatsCollector *asc)
void set_diag_table(DiagTable *table)
Ip4Address compute_node_ip_
void ReConnectCollectors()
uint16_t xs_port_[MAX_XMPP_SERVERS]
static std::string fabric_policy_vrf_name_
EventManager * event_mgr_
void set_controller(VNController *val)
std::string GetUuidStr(boost::uuids::uuid uuid_val) const
bool isVmwareVcenterMode() const
void TaskTrace(const char *file_name, uint32_t line_no, const Task *task, const char *description, uint64_t delay)
AgentConfig * cfg() const
AgentXmppChannel * cn_mcast_builder_
bool isServerGatewayMode() const
std::string vhost_interface_name_
bool tsn_no_forwarding_enabled_
uint32_t GenerateHash(std::vector< std::string > &)
static const MacAddress pkt_interface_mac_
bool isVmwareVcenterMode() const
#define INSTANCE_MANAGER_TASK_NAME
MetaDataIpAllocator * metadata_ip6_allocator() const
const std::string & agent_name() const
void set_ksync(KSync *ksync)
const std::string & host_name() const
void SetResourceManagerReady()
#define AGENT_INIT_TASKNAME
Task is a wrapper over tbb::task to support policies.
std::unique_ptr< Peer > mac_vm_binding_peer_
const std::vector< std::string > & eth_port_list() const
const std::string & subcluster_name() const
bool measure_queue_delay() const
uint32_t flow_update_tokens() const
std::unique_ptr< Peer > linklocal_peer_
static uint16_t ProtocolStringToInt(const std::string &str)
std::unique_ptr< Peer > local_vm_peer_
std::string vrouter_build_info() const
static bool interface_exist(string &name)
bool cat_is_agent_mocked() const
static const char * kControlNodeJID
void set_resource_manager(ResourceManager *resource_manager)
ResourceManager * resource_manager_
std::unique_ptr< MetaDataIpAllocator > metadata_ip_allocator_
ResourceManager * resource_manager() const
SandeshTraceBufferPtr SandeshTraceBufferCreate(const std::string &buf_name, size_t buf_size, bool trace_enable=true)
int32_t skip(Protocol_ &prot, TType type)
uint32_t vrouter_max_bridge_entries() const
VrouterObjectLimits GetVrouterObjectLimits()