OpenSDN source code
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
operdb_init.cc
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2013 Juniper Networks, Inc. All rights reserved.
3  */
4 
5 #include <cmn/agent_factory.h>
6 #include <cmn/agent_cmn.h>
7 #include <init/agent_param.h>
8 #include <db/db.h>
9 #include <base/task_trigger.h>
10 #include <sandesh/sandesh_types.h>
11 #include <sandesh/sandesh_constants.h>
12 #include <sandesh/sandesh.h>
13 #include <sandesh/sandesh_trace.h>
14 #include <cfg/cfg_init.h>
15 #include <oper/route_common.h>
16 #include <oper/operdb_init.h>
17 #include <oper/metadata_ip.h>
18 #include <oper/interface_common.h>
19 #include <oper/health_check.h>
20 #include <oper/nexthop.h>
21 #include <oper/vrf.h>
22 #include <oper/mpls.h>
23 #include <oper/vm.h>
24 #include <oper/vn.h>
25 #include <oper/sg.h>
26 #include <oper/tag.h>
27 #include <oper/mirror_table.h>
28 #include <oper/vrf_assign.h>
29 #include <oper/vxlan.h>
30 #include <oper/multicast_policy.h>
31 #include <oper/multicast.h>
32 #include <oper/global_vrouter.h>
33 #include <oper/path_preference.h>
34 #include <oper/tsn_elector.h>
36 #include <filter/acl.h>
37 #include <filter/policy_set.h>
39 #include <base/task_trigger.h>
40 #include <oper/instance_manager.h>
41 #include <oper/physical_device.h>
43 #include <oper/config_manager.h>
44 #include <oper/agent_profile.h>
45 #include <oper/agent_sandesh.h>
46 #include <oper/vrouter.h>
47 #include <oper/bgp_as_service.h>
48 #include <oper/bgp_router.h>
51 #include <oper/forwarding_class.h>
52 #include <oper/qos_config.h>
53 #include <oper/qos_queue.h>
54 #include <oper/global_qos_config.h>
56 #include <oper/bridge_domain.h>
59 #include <oper/route_leak.h>
60 #include <oper/crypt_tunnel.h>
61 #include <oper/hbf.h>
62 
63 using boost::assign::map_list_of;
64 using boost::assign::list_of;
65 
67  1000));
68 
69 template<typename T>
70 T *DBTableCreate(DB *db, Agent *agent, OperDB *oper,
71  const std::string &db_name) {
72  DB::RegisterFactory(db_name, &T::CreateTable);
73  T *table = static_cast<T *>(db->CreateTable(db_name));
74  assert(table);
75  table->set_agent(agent);
76  return table;
77 }
78 
82  DB::RegisterFactory("db.crypttunnel.0",
83  boost::bind(&CryptTunnelTable::CreateTable,
84  agent_, _1, _2));
85  DB::RegisterFactory("uc.route.0",
87  DB::RegisterFactory("uc.route.3",
89  DB::RegisterFactory("mc.route.0",
93  DB::RegisterFactory("uc.route6.0",
102  DB::RegisterFactory("db.mirror_table.0", &MirrorTable::CreateTable);
105  DB::RegisterFactory("db.service-instance.0",
107  DB::RegisterFactory("db.physical_devices.0",
109  DB::RegisterFactory("db.healthcheck.0",
110  boost::bind(&HealthCheckTable::CreateTable,
111  agent_, _1, _2));
112  DB::RegisterFactory("db.qos_queue.0",
113  boost::bind(&QosQueueTable::CreateTable,
114  agent_, _1, _2));
115  DB::RegisterFactory("db.forwardingclass.0",
117  agent_, _1, _2));
118  DB::RegisterFactory("db.qos_config.0",
120  agent_, _1, _2));
121  DB::RegisterFactory("db.bridge_domain.0",
122  boost::bind(&BridgeDomainTable::CreateTable,
123  agent_, _1, _2));
124  DB::RegisterFactory("db.security_logging_object.0",
126  agent_, _1, _2));
128  DB::RegisterFactory("db.multicast_policy.0",
130 
131  InterfaceTable *intf_table;
132  intf_table = static_cast<InterfaceTable *>(db->CreateTable("db.interface.0"));
133  assert(intf_table);
134  agent_->set_interface_table(intf_table);
135  intf_table->Init(this);
136  intf_table->set_agent(agent_);
137 
138  // Allocate Range to be used for MetaDataIPAllocator
143 
144  HealthCheckTable *hc_table;
145  hc_table =
146  static_cast<HealthCheckTable *>(db->CreateTable("db.healthcheck.0"));
147  assert(hc_table);
148  agent_->set_health_check_table(hc_table);
149 
150  CryptTunnelTable *crypt_tunnel_table;
151  crypt_tunnel_table = static_cast<CryptTunnelTable *>(db->CreateTable("db.crypttunnel.0"));
152  assert(crypt_tunnel_table);
153  agent_->set_crypt_tunnel_table(crypt_tunnel_table);
154 
155  NextHopTable *nh_table;
156  nh_table = static_cast<NextHopTable *>(db->CreateTable("db.nexthop.0"));
157  assert(nh_table);
158  agent_->set_nexthop_table(nh_table);
159  nh_table->set_agent(agent_);
160 
161  VrfTable *vrf_table;
162  vrf_table = static_cast<VrfTable *>(db->CreateTable("db.vrf.0"));
163  assert(vrf_table);
164  agent_->set_vrf_table(vrf_table);
165  vrf_table->set_agent(agent_);
166 
167  VmTable *vm_table;
168  vm_table = static_cast<VmTable *>(db->CreateTable("db.vm.0"));
169  assert(vm_table);
170  agent_->set_vm_table(vm_table);
171  vm_table->set_agent(agent_);
172 
173  SgTable *sg_table;
174  sg_table = static_cast<SgTable *>(db->CreateTable("db.sg.0"));
175  assert(sg_table);
176  agent_->set_sg_table(sg_table);
177  sg_table->set_agent(agent_);
178 
179  TagTable *tag_table;
180  tag_table = static_cast<TagTable *>(db->CreateTable("db.tag.0"));
181  assert(tag_table);
182  agent_->set_tag_table(tag_table);
183  tag_table->set_agent(agent_);
184 
185  VnTable *vn_table;
186  vn_table = static_cast<VnTable *>(db->CreateTable("db.vn.0"));
187  assert(vn_table);
188  agent_->set_vn_table(vn_table);
189  vn_table->set_agent(agent_);
190 
191  MplsTable *mpls_table;
192  mpls_table = static_cast<MplsTable *>(db->CreateTable("db.mpls.0"));
193  assert(mpls_table);
194  agent_->set_mpls_table(mpls_table);
195  mpls_table->set_agent(agent_);
196  mpls_table->ReserveLabel(0, MplsTable::kStartLabel - 1);
197 
198  AclTable *acl_table;
199  acl_table = static_cast<AclTable *>(db->CreateTable("db.acl.0"));
200  assert(acl_table);
201  agent_->set_acl_table(acl_table);
202  acl_table->set_agent(agent_);
203 
204  MirrorTable *mirror_table;
205  mirror_table = static_cast<MirrorTable *>
206  (db->CreateTable("db.mirror_table.0"));
207  assert(mirror_table);
208  agent_->set_mirror_table(mirror_table);
209  mirror_table->set_agent(agent_);
210  mirror_table->Initialize();
211 
212  VrfAssignTable *vassign_table = static_cast<VrfAssignTable *>
213  (db->CreateTable("db.vrf_assign.0"));
214  assert(vassign_table);
215  agent_->set_vrf_assign_table(vassign_table);
216  vassign_table->set_agent(agent_);
217 
218  PolicySetTable *policy_set =
219  static_cast<PolicySetTable *>(db->CreateTable("db.policy_set.0"));
220  assert(policy_set);
221  agent_->set_policy_set_table(policy_set);
222  policy_set->set_agent(agent_);
223 
224  domain_config_.reset(new DomainConfig(agent_));
225 
226  VxLanTable *vxlan_table;
227  vxlan_table = static_cast<VxLanTable *>(db->CreateTable("db.vxlan.0"));
228  assert(vxlan_table);
229  agent_->set_vxlan_table(vxlan_table);
230  vxlan_table->set_agent(agent_);
231  vxlan_table->Initialize();
232 
233  QosQueueTable *qos_queue_table;
234  qos_queue_table =
235  static_cast<QosQueueTable *>(db->CreateTable("db.qos_queue.0"));
236  agent_->set_qos_queue_table(qos_queue_table);
237 
238  ForwardingClassTable *forwarding_class_table;
239  forwarding_class_table = static_cast<ForwardingClassTable *>(
240  db->CreateTable("db.forwardingclass.0"));
241  agent_->set_forwarding_class_table(forwarding_class_table);
242 
243  SecurityLoggingObjectTable *slo_table;
244  slo_table = static_cast<SecurityLoggingObjectTable *>(
245  db->CreateTable("db.security_logging_object.0"));
246  agent_->set_slo_table(slo_table);
247 
248  AgentQosConfigTable *qos_config_table;
249  qos_config_table =
250  static_cast<AgentQosConfigTable *>(db->CreateTable("db.qos_config.0"));
251  agent_->set_qos_config_table(qos_config_table);
252 
253  BridgeDomainTable *bd_table;
254  bd_table =
255  static_cast<BridgeDomainTable *>(db->CreateTable("db.bridge_domain.0"));
256  assert(bd_table);
257  agent_->set_bridge_domain_table(bd_table);
258 
259  MulticastPolicyTable *mp_table;
260  mp_table = static_cast<MulticastPolicyTable *>(
261  db->CreateTable("db.multicast_policy.0"));
262  assert(mp_table);
263  agent_->set_mp_table(mp_table);
264  mp_table->set_agent(agent_);
265 
266  acl_table->ListenerInit();
267 
269  std::unique_ptr<AgentRouteWalkerManager>(new AgentRouteWalkerManager(agent_));
270  multicast_ = std::unique_ptr<MulticastHandler>(new MulticastHandler(agent_));
271  global_vrouter_ = std::unique_ptr<GlobalVrouter> (new GlobalVrouter(agent_));
273  std::unique_ptr<PathPreferenceModule>(new PathPreferenceModule(agent_));
274  route_preference_module_->Init();
275 
276  ServiceInstanceTable *si_table =
277  static_cast<ServiceInstanceTable *>(
278  db->CreateTable("db.service-instance.0"));
280  si_table->Initialize(agent_->cfg()->cfg_graph(), dependency_manager_.get());
281  si_table->set_agent(agent_);
282 
283  PhysicalDeviceTable *dev_table =
284  DBTableCreate<PhysicalDeviceTable>(db, agent_, this,
285  "db.physical_devices.0");
286  agent_->set_physical_device_table(dev_table);
287 
288  PhysicalDeviceVnTable *dev_vn_table =
289  DBTableCreate<PhysicalDeviceVnTable>(db, agent_, this,
290  "db.physical_device_vn.0");
291  agent_->set_physical_device_vn_table(dev_vn_table);
292  profile_.reset(new AgentProfile(agent_, true));
293 
294  bgp_as_a_service_ = std::unique_ptr<BgpAsAService>(new BgpAsAService(agent_));
296  std::unique_ptr<BgpRouterConfig> (new BgpRouterConfig(agent_));
297 
298  vrouter_ = std::unique_ptr<VRouter> (new VRouter(agent_));
300  std::unique_ptr<GlobalQosConfig>(new GlobalQosConfig(agent_));
302  std::unique_ptr<GlobalSystemConfig>(new GlobalSystemConfig(agent_));
303  network_ipam_ = std::unique_ptr<OperNetworkIpam>
304  (new OperNetworkIpam(agent_, domain_config_.get()));
305  virtual_dns_ = std::unique_ptr<OperVirtualDns>
306  (new OperVirtualDns(agent_, domain_config_.get()));
307  tsn_elector_ = std::unique_ptr<TsnElector>(new TsnElector(agent_));
308  vxlan_routing_manager_= std::unique_ptr<VxlanRoutingManager>
309  (new VxlanRoutingManager(agent_));
310  hbf_handler_= std::unique_ptr<HBFHandler>
311  (new HBFHandler(agent_));
312 }
313 
314 void OperDB::Init() {
315  dependency_manager_->Initialize(agent());
316 
317  // Unit tests may not initialize the agent configuration parameters.
318  std::string netns_cmd;
319  std::string docker_cmd;
320  int netns_workers = -1;
321  int netns_timeout = -1;
322  if (agent_->params()) {
323  netns_cmd = agent_->params()->si_netns_command();
324  docker_cmd = agent_->params()->si_docker_command();
325  netns_workers = agent_->params()->si_netns_workers();
326  netns_timeout = agent_->params()->si_netns_timeout();
327  }
328  instance_manager_->Initialize(agent_->db(), netns_cmd,
329  docker_cmd, netns_workers, netns_timeout);
330  if (nexthop_manager_.get()) {
331  nexthop_manager_->Initialize(agent_->db());
332  }
333 
334  if (agent_sandesh_manager_.get()) {
335  agent_sandesh_manager_->Init();
336  }
337 
338  agent_->config_manager()->Init();
339  domain_config_->Init();
340 }
341 
343  profile_->InitDone();
344 }
345 
350 
351  multicast_.get()->Register();
352  global_vrouter_.get()->CreateDBClients();
354  tsn_elector_.get()->Register();
355  vxlan_routing_manager_.get()->Register();
356  hbf_handler_.get()->Register();
357 }
358 
360  : agent_(agent),
361  dependency_manager_(
363  agent->db(), agent->cfg()->cfg_graph())),
364  instance_manager_(
365  AgentStaticObjectFactory::Create<InstanceManager>(agent)) {
366  if (agent_->params() &&
367  agent_->params()->nexthop_server_endpoint().length() > 0) {
369  agent->params()->nexthop_server_endpoint()));
370  }
371 
373 }
374 
376 }
377 
380  instance_manager_->Terminate();
381  if (nexthop_manager_.get()) {
382  nexthop_manager_->Terminate();
383  }
384  dependency_manager_->Terminate();
385  global_vrouter_.reset();
386 
387  bgp_router_config_.reset();
388 
389  global_qos_config_.reset();
390  global_system_config_.reset();
391 
392  route_preference_module_->Shutdown();
393  multicast_->Shutdown();
394  multicast_->Terminate();
395  route_walk_manager_->Shutdown();
396  tsn_elector_->Shutdown();
397  vxlan_routing_manager_->Shutdown();
398  hbf_handler_->Terminate();
399 
400  if (agent_sandesh_manager_.get()) {
401  agent_sandesh_manager_->Shutdown();
402  }
403 #if 0
405  agent_->nexthop_table()->Clear();
406  agent_->vrf_table()->Clear();
407  agent_->vn_table()->Clear();
408  agent_->sg_table()->Clear();
409  agent_->vm_table()->Clear();
410  agent_->mpls_table()->Clear();
411  agent_->acl_table()->Clear();
412  agent_->mirror_table()->Clear();
414  agent_->vxlan_table()->Clear();
416  agent_->mp_table()->Clear();
417 #endif
418 
419  route_preference_module_->Shutdown();
420  domain_config_->Terminate();
421  if (vrouter_.get()) {
422  vrouter_->Shutdown();
423  vrouter_.reset();
424  }
425  if (agent()->mirror_table()) {
426  agent()->mirror_table()->Shutdown();
427  }
428 
429  if (agent()->vxlan_table()) {
430  agent()->vxlan_table()->Shutdown();
431  }
432 
433  //route_walk_manager_.reset();
434  profile_.reset();
435  route_leak_manager_.reset();
436  vxlan_routing_manager_.reset();
437  hbf_handler_.reset();
438 }
439 
442 }
DBGraph * cfg_graph() const
Definition: cfg_init.h:165
Definition: hbf.h:30
std::string si_docker_command() const
Definition: agent_param.h:274
Agent * agent() const
Definition: operdb_init.h:52
void Initialize(DBGraph *graph, IFMapDependencyManager *dependency_manager)
std::unique_ptr< VxlanRoutingManager > vxlan_routing_manager_
Definition: operdb_init.h:129
virtual ~OperDB()
Definition: operdb_init.cc:375
static DBTableBase * CreateTable(DB *db, const std::string &name)
Definition: bridge_route.cc:65
static DBTableBase * CreateTable(DB *db, const std::string &name)
void set_vm_table(VmTable *table)
Definition: agent.h:491
void set_mp_table(MulticastPolicyTable *table)
Definition: agent.h:643
Definition: vrf.h:268
void set_bridge_domain_table(BridgeDomainTable *table)
Definition: agent.cc:945
SandeshTraceBufferPtr OperConfigTraceBuf
static DBTableBase * CreateTable(DB *db, const std::string &name)
NextHopTable * nexthop_table() const
Definition: agent.h:475
void set_nexthop_table(NextHopTable *table)
Definition: agent.h:476
std::unique_ptr< NexthopManager > nexthop_manager_
Definition: operdb_init.h:113
void DeleteRoutes()
Definition: vrf.cc:1363
Definition: acl.h:147
static DBTableBase * CreateTable(DB *db, const std::string &name)
Definition: vn.cc:753
DB * db() const
Definition: agent.h:1118
DBTableBase * CreateTable(const std::string &name)
Definition: db.cc:99
std::unique_ptr< RouteLeakManager > route_leak_manager_
Definition: operdb_init.h:127
static DBTableBase * CreateTable(DB *db, const std::string &name)
Definition: vxlan.cc:324
void set_policy_set_table(PolicySetTable *table)
Definition: agent.h:521
PhysicalDeviceTable * physical_device_table() const
Definition: agent.h:628
void InitDone()
Definition: operdb_init.cc:342
ConfigManager * config_manager() const
Definition: agent.cc:889
void set_service_instance_table(ServiceInstanceTable *table)
Definition: agent.h:821
static DBTableBase * CreateTable(DB *db, const std::string &name)
Definition: nexthop.cc:352
std::string nexthop_server_endpoint() const
Definition: agent_param.h:284
virtual void Clear()
Definition: interface.cc:413
Definition: vm.h:78
void set_interface_table(InterfaceTable *table)
Definition: agent.h:466
static DBTableBase * CreateTable(DB *db, const std::string &name)
Definition: acl.cc:274
static DBTableBase * CreateTable(DB *db, const std::string &name)
Definition: interface.cc:317
void set_forwarding_class_table(ForwardingClassTable *table)
Definition: agent.h:543
std::unique_ptr< MulticastHandler > multicast_
Definition: operdb_init.h:109
InterfaceTable * interface_table() const
Definition: agent.h:465
VnTable * vn_table() const
Definition: agent.h:495
void ReserveLabel(uint32_t start, uint32_t end)
Definition: mpls.cc:376
void ListenerInit()
Definition: acl.cc:268
void FreeReserveLabel(uint32_t start, uint32_t end)
Definition: mpls.cc:384
void RegisterDBClients(IFMapDependencyManager *dep)
boost::shared_ptr< TraceBuffer< SandeshTrace > > SandeshTraceBufferPtr
Definition: sandesh_trace.h:18
MplsTable * mpls_table() const
Definition: agent.h:510
static const uint32_t kStartLabel
Definition: mpls.h:103
void set_vrf_assign_table(VrfAssignTable *table)
Definition: agent.h:531
void set_tag_table(TagTable *table)
Definition: agent.h:506
static DBTableBase * CreateTable(DB *db, const std::string &name)
Definition: vm.cc:193
MirrorTable * mirror_table() const
Definition: agent.h:525
OperDB * oper_db() const
Definition: agent.cc:1013
static DBTableBase * CreateTable(Agent *agent, DB *db, const std::string &name)
std::unique_ptr< VRouter > vrouter_
Definition: operdb_init.h:119
IFMapDependencyManager * dependency_manager()
Definition: operdb_init.h:61
static DBTableBase * CreateTable(DB *db, const std::string &name)
Definition: mpls.cc:242
void RegisterDBClients()
Definition: operdb_init.cc:346
std::unique_ptr< GlobalVrouter > global_vrouter_
Definition: operdb_init.h:120
Definition: db.h:24
void Init(OperDB *oper)
Definition: interface.cc:70
void set_qos_queue_table(QosQueueTable *table)
Definition: agent.h:565
This class manages routes leaking between bridge VRF instances and the routing VRF instance...
void set_vn_table(VnTable *table)
Definition: agent.h:496
ServiceInstanceTable * service_instance_table() const
Definition: agent.h:817
std::unique_ptr< AgentRouteWalkerManager > route_walk_manager_
Definition: operdb_init.h:126
void set_sg_table(SgTable *table)
Definition: agent.h:501
std::unique_ptr< IFMapDependencyManager > dependency_manager_
Definition: operdb_init.h:111
std::unique_ptr< BgpAsAService > bgp_as_a_service_
Definition: operdb_init.h:116
void CreateDBTables(DB *)
Definition: operdb_init.cc:79
static DBTableBase * CreateTable(DB *db, const std::string &name)
Definition: vrf_assign.cc:70
Definition: agent.h:358
void set_vrf_table(VrfTable *table)
Definition: agent.h:486
void Initialize()
void set_mpls_table(MplsTable *table)
Definition: agent.h:511
const int si_netns_workers() const
Definition: agent_param.h:275
std::unique_ptr< GlobalQosConfig > global_qos_config_
Definition: operdb_init.h:124
EventManager * event_manager() const
Definition: agent.h:1103
Agent * agent_
Definition: operdb_init.h:108
VrfAssignTable * vrf_assign_table() const
Definition: agent.h:530
virtual void Clear()
Definition: agent_db.cc:215
std::unique_ptr< OperNetworkIpam > network_ipam_
Definition: operdb_init.h:122
void set_crypt_tunnel_table(CryptTunnelTable *table)
Definition: agent.h:481
void set_slo_table(SecurityLoggingObjectTable *table)
Definition: agent.h:550
std::unique_ptr< BgpRouterConfig > bgp_router_config_
Definition: operdb_init.h:121
static DBTableBase * CreateTable(DB *db, const std::string &name)
Definition: vrf.cc:867
std::unique_ptr< PathPreferenceModule > route_preference_module_
Definition: operdb_init.h:110
void Init()
Definition: operdb_init.cc:314
AgentParam * params() const
Definition: agent.h:1218
void Initialize()
Definition: vxlan.cc:35
static DBTableBase * CreateTable(DB *db, const std::string &name)
static DBTableBase * CreateTable(Agent *agent, DB *db, const std::string &name)
std::unique_ptr< AgentSandeshManager > agent_sandesh_manager_
Definition: operdb_init.h:114
VrfTable * vrf_table() const
Definition: agent.h:485
virtual void Clear()
Definition: vrf.cc:627
static DBTableBase * CreateTable(Agent *agent, DB *db, const std::string &name)
Definition: vn.h:331
static DBTableBase * CreateTable(DB *db, const std::string &name)
Definition: policy_set.cc:261
T * DBTableCreate(DB *db, Agent *agent, OperDB *oper, const std::string &db_name)
Definition: operdb_init.cc:70
Definition: mpls.h:99
void Shutdown()
Definition: operdb_init.cc:378
std::unique_ptr< OperVirtualDns > virtual_dns_
Definition: operdb_init.h:123
std::unique_ptr< InstanceManager > instance_manager_
Definition: operdb_init.h:112
static DBTableBase * CreateTable(DB *db, const std::string &name)
std::string si_netns_command() const
Definition: agent_param.h:273
VxLanTable * vxlan_table() const
Definition: agent.h:535
std::unique_ptr< HBFHandler > hbf_handler_
Definition: operdb_init.h:130
const int si_netns_timeout() const
Definition: agent_param.h:276
void set_metadata_ip6_allocator(MetaDataIpAllocator *allocator)
Definition: agent.cc:961
static DBTableBase * CreateTable(DB *db, const std::string &name)
Definition: sg.cc:100
void Shutdown()
Definition: vxlan.cc:45
void set_metadata_ip_allocator(MetaDataIpAllocator *allocator)
Definition: agent.cc:953
std::unique_ptr< TsnElector > tsn_elector_
Definition: operdb_init.h:128
virtual void Clear()
Definition: vn.cc:749
static const uint16_t max_linklocal_addresses
Definition: operdb_init.h:39
void set_health_check_table(HealthCheckTable *table)
Definition: agent.cc:937
SgTable * sg_table() const
Definition: agent.h:500
static DBTableBase * CreateTable(DB *db, const std::string &name)
static DBTableBase * CreateTable(DB *db, const std::string &name)
static DBTableBase * CreateTable(Agent *agent, DB *db, const std::string &name)
Definition: qos_queue.cc:95
static DBTableBase * CreateTable(DB *db, const std::string &name)
Definition: sg.h:72
MulticastPolicyTable * mp_table() const
Definition: agent.h:642
AgentConfig * cfg() const
Definition: agent.cc:865
void DeleteRoutes()
Definition: operdb_init.cc:440
std::unique_ptr< GlobalSystemConfig > global_system_config_
Definition: operdb_init.h:125
static DBTableBase * CreateTable(Agent *agent, DB *db, const std::string &name)
Definition: qos_config.cc:282
AclTable * acl_table() const
Definition: agent.h:515
void set_acl_table(AclTable *table)
Definition: agent.h:516
std::unique_ptr< AgentProfile > profile_
Definition: operdb_init.h:115
static DBTableBase * CreateTable(Agent *agent, DB *db, const std::string &name)
std::unique_ptr< DomainConfig > domain_config_
Definition: operdb_init.h:117
static DBTableBase * CreateTable(Agent *agent, DB *db, const std::string &name)
void Shutdown()
static DBTableBase * CreateTable(DB *db, const std::string &name)
VmTable * vm_table() const
Definition: agent.h:490
void RegisterDBClients(IFMapDependencyManager *dep)
Definition: interface.cc:75
void set_mirror_table(MirrorTable *table)
Definition: agent.h:526
void set_agent(Agent *agent)
Definition: agent_db.h:212
SandeshTraceBufferPtr SandeshTraceBufferCreate(const std::string &buf_name, size_t buf_size, bool trace_enable=true)
Definition: sandesh_trace.h:46
void set_vxlan_table(VxLanTable *table)
Definition: agent.h:536
static void RegisterFactory(const std::string &prefix, CreateFunction create_fn)
Definition: db.cc:24
void set_qos_config_table(AgentQosConfigTable *qos_config_table)
Definition: agent.h:558