OpenSDN source code
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
mpls_ksync.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_mpls_ksync_h
6 #define vnsw_agent_mpls_ksync_h
7 
8 #include <db/db_entry.h>
9 #include <db/db_table.h>
10 #include <db/db_table_partition.h>
11 #include <ksync/ksync_entry.h>
12 #include <ksync/ksync_object.h>
13 #include <ksync/ksync_netlink.h>
14 #include "oper/mpls.h"
16 
17 class MplsKSyncObject;
18 
20 public:
22  uint32_t index);
23  MplsKSyncEntry(MplsKSyncObject* obj, const MplsLabel *label);
24  virtual ~MplsKSyncEntry();
25 
26  NHKSyncEntry *nh() const {
27  return static_cast<NHKSyncEntry *>(nh_.get());
28  }
29  KSyncDBObject *GetObject() const;
30 
31  virtual bool IsLess(const KSyncEntry &rhs) const;
32  virtual std::string ToString() const;
34  virtual bool Sync(DBEntry *e);
35  virtual int AddMsg(char *buf, int buf_len);
36  virtual int ChangeMsg(char *buf, int buf_len);
37  virtual int DeleteMsg(char *buf, int buf_len);
38  void FillObjectLog(sandesh_op::type op, KSyncMplsInfo &info) const;
39 private:
40  int Encode(sandesh_op::type op, char *buf, int buf_len);
42  uint32_t label_;
45 };
46 
48 public:
49  static const int kMplsIndexCount = 128 * 1024; // support 128K mpls labels
51  virtual ~MplsKSyncObject();
52  KSync *ksync() const { return ksync_; }
53  virtual KSyncEntry *Alloc(const KSyncEntry *entry, uint32_t index);
54  virtual KSyncEntry *DBToKSyncEntry(const DBEntry *e);
55  void RegisterDBClients();
56 private:
59 };
60 
61 #endif // vnsw_agent_mpls_ksync_h
KSyncEntryPtr nh_
Definition: mpls_ksync.h:43
MplsKSyncObject(KSync *ksync)
Definition: mpls_ksync.cc:131
static const int kMplsIndexCount
Definition: mpls_ksync.h:49
MplsKSyncObject * ksync_obj_
Definition: mpls_ksync.h:41
virtual ~MplsKSyncObject()
Definition: mpls_ksync.cc:135
int Encode(sandesh_op::type op, char *buf, int buf_len)
Definition: mpls_ksync.cc:71
virtual std::string ToString() const
Definition: mpls_ksync.cc:38
virtual KSyncEntry * UnresolvedReference()
Definition: mpls_ksync.cc:123
virtual bool Sync(DBEntry *e)
Definition: mpls_ksync.cc:51
KSync * ksync() const
Definition: mpls_ksync.h:52
KSync * ksync_
Definition: mpls_ksync.h:57
uint8_t type
Definition: load_balance.h:109
boost::intrusive_ptr< KSyncEntry > KSyncEntryPtr
Definition: ksync_entry.h:68
DISALLOW_COPY_AND_ASSIGN(MplsKSyncObject)
virtual KSyncEntry * DBToKSyncEntry(const DBEntry *e)
Definition: mpls_ksync.cc:148
MplsKSyncEntry(MplsKSyncObject *obj, const MplsKSyncEntry *entry, uint32_t index)
Definition: mpls_ksync.cc:15
NHKSyncEntry * nh() const
Definition: mpls_ksync.h:26
virtual int ChangeMsg(char *buf, int buf_len)
Definition: mpls_ksync.cc:107
virtual int AddMsg(char *buf, int buf_len)
Definition: mpls_ksync.cc:99
void FillObjectLog(sandesh_op::type op, KSyncMplsInfo &info) const
Definition: mpls_ksync.cc:87
void RegisterDBClients()
Definition: mpls_ksync.cc:138
DISALLOW_COPY_AND_ASSIGN(MplsKSyncEntry)
virtual KSyncEntry * Alloc(const KSyncEntry *entry, uint32_t index)
Definition: mpls_ksync.cc:142
virtual bool IsLess(const KSyncEntry &rhs) const
Definition: mpls_ksync.cc:33
virtual int DeleteMsg(char *buf, int buf_len)
Definition: mpls_ksync.cc:115
Definition: mpls.h:52
KSyncDBObject * GetObject() const
Definition: mpls_ksync.cc:29
uint32_t label_
Definition: mpls_ksync.h:42
virtual ~MplsKSyncEntry()
Definition: mpls_ksync.cc:26