OpenSDN source code
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
agent_sandesh.h
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2013 Juniper Networks, Inc. All rights reserved.
3  */
4 
5 #ifndef vnsw_agent_sandesh_h_
6 #define vnsw_agent_sandesh_h_
7 
8 #include <cmn/agent_cmn.h>
9 
11 // Header file defining infra to implement introspect for DB-Tables
13 
14 class VrfEntry;
15 class DBEntryBase;
16 class PageReqData;
17 
19 // Class to encode/decode the arguments used in pagination links
20 // Stores arguments in form of <key, value> pair in a map
23 public:
24  typedef std::map<std::string, std::string> ArgumentMap;
25 
28 
29  bool Add(const std::string &key, const std::string &val);
30  bool Add(const std::string &key, int val);
31  bool Del(const std::string &key);
32  bool Get(const std::string &key, std::string *val) const;
33  std::string GetString(const std::string &key) const;
34  bool Get(const std::string &key, int *val) const;
35  int GetInt(const std::string &key) const;
36 
37  int Encode(std::string *str);
38  int Decode(const std::string &str);
39 private:
42 };
43 
45 // Manager class for AgentSandesh.
46 // Agent gets Paging requests in Sandesh task context. Agent needs to iterate
47 // thru the DBTable. So, we need to move the request to a task in DBTable
48 // context. A work-queue is defined for this reason
51 public:
52  struct PageRequest {
53  PageRequest() : key_(""), context_("") { }
54  PageRequest(const std::string &key, const std::string &context) :
55  key_(key), context_(context) {
56  }
57  PageRequest(const PageRequest &req) :
58  key_(req.key_), context_(req.context_) {
59  }
61 
62  std::string key_;
63  std::string context_;
64  };
65 
66  AgentSandeshManager(Agent *agent);
68 
69  void Init();
70  void Shutdown();
71  void AddPageRequest(const std::string &key, const std::string &context);
72  bool Run(PageRequest req);
73 private:
77 };
78 
80 // A common base class to handle introspect requests for DBTables. Provides
81 // support for common features such as,
82 //
83 // - Support for pagination. Including links for prev, next and first pages
84 // - Supports query of complete table
86 class AgentSandesh;
87 typedef class boost::shared_ptr<AgentSandesh> AgentSandeshPtr;
88 class AgentSandesh {
89 public:
90  static const uint8_t entries_per_sandesh = 100;
91  static const uint16_t kEntriesPerPage = 100;
92  AgentSandesh(const std::string &context, const std::string &name) :
93  name_(name), resp_(NULL), count_(0), total_entries_(0),
94  context_(context), walkid_(DBTableWalker::kInvalidWalkerId) {
95  }
96  AgentSandesh(const std::string &context) :
97  name_(""), resp_(NULL), count_(0), context_(context),
98  walkid_(DBTableWalker::kInvalidWalkerId) {
99  }
100 
101  virtual ~AgentSandesh() {}
102 
103  // Check if a DBEntry passes filter
104  virtual bool Filter(const DBEntryBase *entry) { return true; }
105  // Convert from filter to arguments. Arguments will be converted to string
106  // and passed in next/prev pagination links
107  virtual bool FilterToArgs(AgentSandeshArguments *args) {
108  args->Add("name", name_);
109  return true;
110  }
111  std::string context() const { return context_; }
112 
113  void DoSandeshInternal(AgentSandeshPtr sandesh, int start, int count);
114  static void DoSandesh(AgentSandeshPtr sandesh, int start, int count);
115  static void DoSandesh(AgentSandeshPtr sandesh);
116  void MakeSandeshPageReq(PageReqData *req, DBTable *table, int first,
117  int last, int end, int count, int page_size);
118 
119 protected:
120  std::string name_; // name coming in the sandesh request
122 private:
123  bool EntrySandesh(DBEntryBase *entry, int first, int last);
124  void SandeshDone(AgentSandeshPtr ptr, int first, int page_size,
125  DBTable::DBTableWalkRef walk_ref,
126  DBTableBase *partition);
127  void SetResp();
128  virtual DBTable *AgentGetTable() = 0;
129  virtual void Alloc() = 0;
130  virtual bool UpdateResp(DBEntryBase *entry);
131 
132  int count_;
134  std::string context_;
137 };
138 
140 // AgentSandesh class implementation for different OperDB Tables
142 class AgentVnSandesh : public AgentSandesh {
143 public:
144  AgentVnSandesh(const std::string &context, const std::string &name,
145  const std::string &u, const std::string &vxlan_id,
146  const std::string &ipam_name);
148  virtual bool Filter(const DBEntryBase *entry);
149  virtual bool FilterToArgs(AgentSandeshArguments *args);
150 
151 private:
152  friend class VnListReq;
154  void Alloc();
155  std::string name_;
156  std::string uuid_str_;
157  std::string vxlan_id_;
158  std::string ipam_name_;
159 
161 
162 };
163 
164 class AgentSgSandesh : public AgentSandesh {
165 public:
166  AgentSgSandesh(std::string context, std::string name)
167  : AgentSandesh(context, name) {}
168 
169 private:
171  void Alloc();
172 };
173 
174 class AgentVmSandesh : public AgentSandesh {
175 public:
176  AgentVmSandesh(std::string context, std::string uuid)
177  : AgentSandesh(context, uuid) {}
178 
179 private:
181  void Alloc();
182 };
183 
185 public:
186  AgentIntfSandesh(const std::string &context, const std::string &type,
187  const std::string &name, const std::string &u,
188  const std::string &vn, const std::string &mac,
189  const std::string &v4, const std::string &v6,
190  const std::string &parent, const std::string &ip_active,
191  const std::string &ip6_active,
192  const std::string &l2_active);
194  virtual bool Filter(const DBEntryBase *entry);
195  virtual bool FilterToArgs(AgentSandeshArguments *args);
196 
197 private:
198  friend class ItfReq;
200  void Alloc();
201 
202  // Filters
203  std::string type_;
204  std::string name_;
205  std::string uuid_str_;
206  std::string vn_;
207  std::string mac_str_;
208  std::string v4_str_;
209  std::string v6_str_;
210  std::string parent_uuid_str_;
211  std::string ip_active_str_;
212  std::string ip6_active_str_;
213  std::string l2_active_str_;
214 
220 };
221 
222 class AgentNhSandesh : public AgentSandesh {
223 public:
224  AgentNhSandesh(const std::string &context, const std::string &type,
225  const std::string &nh_index, const std::string &policy_enabled);
227  virtual bool Filter(const DBEntryBase *entry);
228  virtual bool FilterToArgs(AgentSandeshArguments *args);
229 
230 private:
231  friend class NhListReq;
233  void Alloc();
234 
235  // Filters
236  std::string type_;
237  std::string nh_index_;
238  std::string policy_enabled_;
239 };
240 
242 public:
243  AgentMplsSandesh(const std::string &context, const std::string &type,
244  const std::string &label);
246  virtual bool Filter(const DBEntryBase *entry);
247  virtual bool FilterToArgs(AgentSandeshArguments *args);
248 
249 private:
250  friend class MplsReq;
252  void Alloc();
253 
254  // Filters
255  std::string type_;
256  std::string label_;
257 
258 };
259 
261 public:
262  AgentVrfSandesh(std::string context, std::string name)
263  : AgentSandesh(context, name) {}
264 
265 private:
267  void Alloc();
268 };
269 
271 public:
272  AgentInet4UcRtSandesh(VrfEntry *vrf, std::string context, bool stale)
273  : AgentSandesh(context, ""), vrf_(vrf), stale_(stale) {
274  dump_table_ = true;
275  }
277  Ip4Address addr, uint8_t plen, bool stale)
278  : AgentSandesh(context, ""), vrf_(vrf), addr_(addr), plen_(plen),
279  stale_(stale) {
280  dump_table_ = false;
281  }
282 
283 private:
285  void Alloc();
286  bool UpdateResp(DBEntryBase *entry);
287 
290  uint8_t plen_;
291  bool stale_;
293 };
294 
296 public:
297  AgentInet4MplsUcRtSandesh(VrfEntry *vrf, std::string context, bool stale)
298  : AgentSandesh(context, ""), vrf_(vrf), stale_(stale) {
299  dump_table_ = true;
300  }
302  Ip4Address addr, uint8_t plen, bool stale)
303  : AgentSandesh(context, ""), vrf_(vrf), addr_(addr), plen_(plen),
304  stale_(stale) {
305  dump_table_ = false;
306  }
307 
308 private:
310  void Alloc();
311  bool UpdateResp(DBEntryBase *entry);
312 
315  uint8_t plen_;
316  bool stale_;
318 };
319 
321 public:
322  AgentInet4McRtSandesh(VrfEntry *vrf, std::string context, std::string name,
323  bool stale)
324  : AgentSandesh(context, name), vrf_(vrf), stale_(stale) {
325  dump_table_ = true;
326  }
327  AgentInet4McRtSandesh(VrfEntry *vrf, std::string context, std::string name,
328  Ip4Address src_addr, Ip4Address grp_addr,
329  bool stale)
330  : AgentSandesh(context, name), vrf_(vrf), src_addr_(src_addr),
331  grp_addr_(grp_addr), stale_(stale) {
332  dump_table_ = false;
333  }
334 
335 private:
337  void Alloc();
338  bool UpdateResp(DBEntryBase *entry);
339 
343  bool stale_;
345 };
346 
348 public:
349  AgentLayer2RtSandesh(VrfEntry *vrf, std::string context, std::string name,
350  bool stale)
351  : AgentSandesh(context, name), vrf_(vrf), stale_(stale) {}
352 
353 private:
355  void Alloc();
356  bool UpdateResp(DBEntryBase *entry);
357 
359  bool stale_;
360 };
361 
363 public:
364  AgentBridgeRtSandesh(VrfEntry *vrf, std::string context, std::string name,
365  bool stale, std::string mac)
366  : AgentSandesh(context, name), vrf_(vrf), stale_(stale), mac_(mac) {}
367 
368 private:
370  void Alloc();
371  bool UpdateResp(DBEntryBase *entry);
372 
374  bool stale_;
375  std::string mac_;
376 };
377 
379 public:
380  AgentEvpnRtSandesh(VrfEntry *vrf, std::string context, std::string name,
381  bool stale)
382  : AgentSandesh(context, name), vrf_(vrf), stale_(stale) {}
383 
384 private:
386  void Alloc();
387  bool UpdateResp(DBEntryBase *entry);
388 
390  bool stale_;
391 };
392 
394 public:
395  AgentInet6UcRtSandesh(VrfEntry *vrf, std::string context, bool stale) :
396  AgentSandesh(context, ""), vrf_(vrf), stale_(stale) {
397  dump_table_ = true;
398  }
400  Ip6Address addr, uint8_t plen, bool stale) :
401  AgentSandesh(context, ""), vrf_(vrf), addr_(addr), plen_(plen),
402  stale_(stale) {
403  dump_table_ = false;
404  }
405 
406 private:
408  void Alloc();
409  bool UpdateResp(DBEntryBase *entry);
410 
413  uint8_t plen_;
414  bool stale_;
416 };
417 
419 public:
420  AgentAclSandesh(std::string context, std::string name)
421  : AgentSandesh(context, name) {}
422 
423 private:
425  void Alloc();
426  bool UpdateResp(DBEntryBase *entry);
427 };
428 
430 public:
431  AgentMirrorSandesh(const std::string &context, const std::string &analyzer_name);
433  virtual bool Filter(const DBEntryBase *entry);
434  virtual bool FilterToArgs(AgentSandeshArguments *args);
435 
436 private:
437  friend class MirrorEntryReq;
439  void Alloc();
440 
441  //Filters
442  std::string analyzer_name_;
443 };
444 
446 public:
447  AgentVrfAssignSandesh(std::string context, std::string uuid)
448  : AgentSandesh(context, uuid) {}
449 
450 private:
452  void Alloc();
453 };
454 
456 public:
457  AgentVxLanSandesh(const std::string &context, const std::string &vxlan_id);
459  virtual bool Filter(const DBEntryBase *entry);
460  virtual bool FilterToArgs(AgentSandeshArguments *args);
461 
462 private:
463  friend class VxLanReq;
465  void Alloc();
466 
467  //Filters
468  std::string vxlan_id_;
469 };
470 
472 public:
473  AgentServiceInstanceSandesh(std::string context, std::string uuid)
474  : AgentSandesh(context, uuid) {}
475 
476 private:
478  void Alloc();
479 };
480 
482 public:
483  AgentLoadBalancerSandesh(std::string context, std::string uuid)
484  : AgentSandesh(context, uuid) {}
485 
486 private:
488  void Alloc();
489 };
490 
492 public:
493  AgentLoadBalancerV2Sandesh(std::string context, std::string uuid)
494  : AgentSandesh(context, uuid) {}
495 
496 private:
498  void Alloc();
499 };
500 
502 public:
503  AgentHealthCheckSandesh(const std::string &context, const std::string &u);
505  virtual bool Filter(const DBEntryBase *entry);
506  virtual bool FilterToArgs(AgentSandeshArguments *args);
507 
508 private:
509  friend class VnListReq;
511  void Alloc();
512  std::string uuid_str_;
513 
515 
516 };
517 
519 public:
520  AgentQosConfigSandesh(const std::string &context, const std::string &u,
521  const std::string &name, const std::string &id);
523  virtual bool Filter(const DBEntryBase *entry);
524  virtual bool FilterToArgs(AgentSandeshArguments *args);
525 
526 private:
528  void Alloc();
529  std::string uuid_;
530  std::string name_;
531  std::string id_;
532 };
533 
535 public:
536  ForwardingClassSandesh(const std::string &context, const std::string &u,
537  const std::string &name, const std::string &idx);
539  virtual bool Filter(const DBEntryBase *entry);
540  virtual bool FilterToArgs(AgentSandeshArguments *args);
541 
542 private:
544  void Alloc();
545  std::string uuid_;
546  std::string name_;
547  std::string id_;
548 };
549 
551 public:
552  QosQueueSandesh(const std::string &context, const std::string &u,
553  const std::string &name, const std::string &id);
555  virtual bool Filter(const DBEntryBase *entry);
556  virtual bool FilterToArgs(AgentSandeshArguments *args);
557 
558 private:
560  void Alloc();
561  std::string uuid_;
562  std::string name_;
563  std::string id_;
564 };
565 
567 public:
568  BridgeDomainSandesh(const std::string &context, const std::string &u,
569  const std::string &name);
571  virtual bool Filter(const DBEntryBase *entry);
572  virtual bool FilterToArgs(AgentSandeshArguments *args);
573 
574 private:
576  void Alloc();
577  std::string uuid_str_;
578  std::string name_;
580 };
581 
583 public:
584  AgentPolicySetSandesh(const std::string &context, const std::string &uuid,
585  const std::string &name);
586  virtual bool Filter(const DBEntryBase *entry);
587  virtual bool FilterToArgs(AgentSandeshArguments *args);
588 
589 private:
591  std::string uuid_str_;
592  std::string name_;
594  void Alloc();
595  bool UpdateResp(DBEntryBase *entry);
596 };
597 
598 class TagSandesh : public AgentSandesh {
599 public:
600  TagSandesh(const std::string &context, const std::string &u,
601  const std::string &name);
603  virtual bool Filter(const DBEntryBase *entry);
604  virtual bool FilterToArgs(AgentSandeshArguments *args);
605 
606 private:
608  void Alloc();
609  std::string uuid_str_;
610  std::string name_;
612 };
613 
615 public:
617  const std::string &uuid)
618  : AgentSandesh(context, uuid) {}
619 
620 private:
622  void Alloc();
623 };
624 
626 public:
627  AgentCryptTunnelSandesh(const std::string &context, const std::string &name);
628  virtual bool Filter(const DBEntryBase *entry);
629  virtual bool FilterToArgs(AgentSandeshArguments *args);
630 private:
632  void Alloc();
633  bool UpdateResp(DBEntryBase *entry);
634  std::string remote_ip_;
635 };
636 
638 public:
640  const std::string &uuid)
641  : AgentSandesh(context, uuid) {}
642 
643 private:
645  void Alloc();
646  bool UpdateResp(DBEntryBase *entry);
647 };
648 
649 #endif // vnsw_agent_sandesh_h_
std::string vxlan_id_
AgentInet6UcRtSandesh(VrfEntry *vrf, std::string context, Ip6Address addr, uint8_t plen, bool stale)
virtual bool Filter(const DBEntryBase *entry)
AgentInet4UcRtSandesh(VrfEntry *vrf, std::string context, Ip4Address addr, uint8_t plen, bool stale)
AgentVmSandesh(std::string context, std::string uuid)
AgentMirrorSandesh(const std::string &context, const std::string &analyzer_name)
DBTable * AgentGetTable()
AgentVnSandesh(const std::string &context, const std::string &name, const std::string &u, const std::string &vxlan_id, const std::string &ipam_name)
AgentSgSandesh(std::string context, std::string name)
boost::uuids::uuid uuid_
DBTable * AgentGetTable()
virtual bool FilterToArgs(AgentSandeshArguments *args)
static void DoSandesh(AgentSandeshPtr sandesh, int start, int count)
std::string type_
std::string ipam_name_
bool EntrySandesh(DBEntryBase *entry, int first, int last)
BridgeDomainSandesh(const std::string &context, const std::string &u, const std::string &name)
bool Run(PageRequest req)
friend class VnListReq
Definition: vrf.h:86
AgentAclSandesh(std::string context, std::string name)
std::string uuid_str_
int Encode(std::string *str)
DBTable * AgentGetTable()
virtual bool FilterToArgs(AgentSandeshArguments *args)
virtual bool Filter(const DBEntryBase *entry)
std::string parent_uuid_str_
virtual bool Filter(const DBEntryBase *entry)
bool UpdateResp(DBEntryBase *entry)
virtual bool FilterToArgs(AgentSandeshArguments *args)
std::string GetString(const std::string &key) const
bool UpdateResp(DBEntryBase *entry)
bool UpdateResp(DBEntryBase *entry)
std::string nh_index_
friend class VxLanReq
std::string type_
DBTable * AgentGetTable()
AgentLoadBalancerV2Sandesh(std::string context, std::string uuid)
std::string v6_str_
PageRequest(const std::string &key, const std::string &context)
Definition: agent_sandesh.h:54
bool UpdateResp(DBEntryBase *entry)
WorkQueue< PageRequest > page_request_queue_
Definition: agent_sandesh.h:75
virtual bool FilterToArgs(AgentSandeshArguments *args)
boost::uuids::uuid uuid
virtual bool FilterToArgs(AgentSandeshArguments *args)
DISALLOW_COPY_AND_ASSIGN(AgentSandeshManager)
virtual bool FilterToArgs(AgentSandeshArguments *args)
std::string policy_enabled_
std::string vn_
std::string context_
boost::uuids::uuid uuid_
static const uint16_t kEntriesPerPage
Definition: agent_sandesh.h:91
boost::uuids::uuid uuid_
ForwardingClassSandesh(const std::string &context, const std::string &u, const std::string &name, const std::string &idx)
DBTable * AgentGetTable()
virtual bool FilterToArgs(AgentSandeshArguments *args)
DBTable * AgentGetTable()
std::string uuid_str_
std::string mac_str_
DBTable * AgentGetTable()
bool UpdateResp(DBEntryBase *entry)
DBTable * AgentGetTable()
friend class MirrorEntryReq
DBTable * AgentGetTable()
AgentHealthCheckSandesh(const std::string &context, const std::string &u)
DBTable * AgentGetTable()
std::string uuid_
std::string type_
bool Del(const std::string &key)
DBTableWalker::WalkId walkid_
AgentPolicySetSandesh(const std::string &context, const std::string &uuid, const std::string &name)
boost::uuids::uuid uuid_
virtual bool Filter(const DBEntryBase *entry)
DBTable * AgentGetTable()
void MakeSandeshPageReq(PageReqData *req, DBTable *table, int first, int last, int end, int count, int page_size)
virtual bool FilterToArgs(AgentSandeshArguments *args)
virtual bool Filter(const DBEntryBase *entry)
virtual ~AgentSandesh()
uint8_t type
Definition: load_balance.h:109
bool Get(const std::string &key, std::string *val) const
std::string ip6_active_str_
bool UpdateResp(DBEntryBase *entry)
Definition: agent.h:358
QosQueueSandesh(const std::string &context, const std::string &u, const std::string &name, const std::string &id)
std::string uuid_str_
std::string name_
AgentInet4McRtSandesh(VrfEntry *vrf, std::string context, std::string name, bool stale)
boost::uuids::uuid uuid_
virtual bool Filter(const DBEntryBase *entry)
AgentVxLanSandesh(const std::string &context, const std::string &vxlan_id)
boost::asio::ip::address_v6 Ip6Address
Definition: address.h:15
PageRequest(const PageRequest &req)
Definition: agent_sandesh.h:57
virtual bool Filter(const DBEntryBase *entry)
std::string analyzer_name_
std::string name_
boost::uuids::uuid parent_uuid_
virtual bool Filter(const DBEntryBase *entry)
friend class ItfReq
AgentNhSandesh(const std::string &context, const std::string &type, const std::string &nh_index, const std::string &policy_enabled)
std::string v4_str_
AgentInet4MplsUcRtSandesh(VrfEntry *vrf, std::string context, Ip4Address addr, uint8_t plen, bool stale)
AgentLoadBalancerSandesh(std::string context, std::string uuid)
class boost::shared_ptr< AgentSandesh > AgentSandeshPtr
Definition: agent_db.h:18
AgentCryptTunnelSandesh(const std::string &context, const std::string &name)
AgentBridgeRtSandesh(VrfEntry *vrf, std::string context, std::string name, bool stale, std::string mac)
friend class MplsReq
std::string l2_active_str_
bool UpdateResp(DBEntryBase *entry)
bool Add(const std::string &key, const std::string &val)
std::string label_
virtual bool Filter(const DBEntryBase *entry)
void AddPageRequest(const std::string &key, const std::string &context)
virtual void Alloc()=0
virtual bool FilterToArgs(AgentSandeshArguments *args)
boost::asio::ip::address_v4 Ip4Address
Definition: address.h:14
AgentVrfAssignSandesh(std::string context, std::string uuid)
std::map< std::string, std::string > ArgumentMap
Definition: agent_sandesh.h:24
virtual bool UpdateResp(DBEntryBase *entry)
virtual bool Filter(const DBEntryBase *entry)
std::string name_
friend class NhListReq
virtual bool FilterToArgs(AgentSandeshArguments *args)
void DoSandeshInternal(AgentSandeshPtr sandesh, int start, int count)
virtual bool FilterToArgs(AgentSandeshArguments *args)
AgentServiceInstanceSandesh(std::string context, std::string uuid)
int GetInt(const std::string &key) const
std::string name_
virtual DBTable * AgentGetTable()=0
static const uint8_t entries_per_sandesh
Definition: agent_sandesh.h:90
ArgumentMap arguments_
Definition: agent_sandesh.h:40
TagSandesh(const std::string &context, const std::string &u, const std::string &name)
std::string ip_active_str_
std::string name_
DBTable * AgentGetTable()
AgentIntfSandesh(const std::string &context, const std::string &type, const std::string &name, const std::string &u, const std::string &vn, const std::string &mac, const std::string &v4, const std::string &v6, const std::string &parent, const std::string &ip_active, const std::string &ip6_active, const std::string &l2_active)
virtual bool Filter(const DBEntryBase *entry)
virtual bool Filter(const DBEntryBase *entry)
std::string vxlan_id_
DBTable * AgentGetTable()
virtual bool FilterToArgs(AgentSandeshArguments *args)
bool UpdateResp(DBEntryBase *entry)
std::string id_
DBTable * AgentGetTable()
AgentSandesh(const std::string &context)
Definition: agent_sandesh.h:96
AgentQosConfigSandesh(const std::string &context, const std::string &u, const std::string &name, const std::string &id)
AgentInet4UcRtSandesh(VrfEntry *vrf, std::string context, bool stale)
AgentVrfSandesh(std::string context, std::string name)
bool UpdateResp(DBEntryBase *entry)
DBTable * AgentGetTable()
AgentMplsSandesh(const std::string &context, const std::string &type, const std::string &label)
AgentSandeshManager(Agent *agent)
AgentLayer2RtSandesh(VrfEntry *vrf, std::string context, std::string name, bool stale)
AgentInet4MplsUcRtSandesh(VrfEntry *vrf, std::string context, bool stale)
AgentInet6UcRtSandesh(VrfEntry *vrf, std::string context, bool stale)
boost::intrusive_ptr< DBTableWalk > DBTableWalkRef
Definition: db_table.h:169
boost::uuids::uuid uuid_
AgentEvpnRtSandesh(VrfEntry *vrf, std::string context, std::string name, bool stale)
bool UpdateResp(DBEntryBase *entry)
virtual bool Filter(const DBEntryBase *entry)
AgentMulticastPolicySandesh(const std::string &context, const std::string &uuid)
AgentSecurityLoggingObjectSandesh(const std::string &context, const std::string &uuid)
virtual bool FilterToArgs(AgentSandeshArguments *args)
std::string context() const
SandeshResponse * resp_
virtual bool FilterToArgs(AgentSandeshArguments *args)
DISALLOW_COPY_AND_ASSIGN(AgentSandeshArguments)
void SandeshDone(AgentSandeshPtr ptr, int first, int page_size, DBTable::DBTableWalkRef walk_ref, DBTableBase *partition)
bool UpdateResp(DBEntryBase *entry)
virtual bool FilterToArgs(AgentSandeshArguments *args)
AgentInet4McRtSandesh(VrfEntry *vrf, std::string context, std::string name, Ip4Address src_addr, Ip4Address grp_addr, bool stale)
AgentSandesh(const std::string &context, const std::string &name)
Definition: agent_sandesh.h:92
int Decode(const std::string &str)
DISALLOW_COPY_AND_ASSIGN(AgentSandesh)
DBTable * AgentGetTable()
virtual bool Filter(const DBEntryBase *entry)
virtual bool Filter(const DBEntryBase *entry)
std::string uuid_str_