OpenSDN source code
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
vn_ovsdb.h
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2015 Juniper Networks, Inc. All rights reserved.
3  */
4 
5 #ifndef SRC_VNSW_AGENT_OVS_TOR_AGENT_OVSDB_CLIENT_VN_OVSDB_H_
6 #define SRC_VNSW_AGENT_OVS_TOR_AGENT_OVSDB_CLIENT_VN_OVSDB_H_
7 
8 #include <ovsdb_entry.h>
9 #include <ovsdb_object.h>
10 
11 class VnEntry;
12 
13 namespace OVSDB {
14 class VnOvsdbObject : public OvsdbDBObject {
15 public:
16  VnOvsdbObject(OvsdbClientIdl *idl, DBTable *table);
17  virtual ~VnOvsdbObject();
18 
19  KSyncEntry *Alloc(const KSyncEntry *key, uint32_t index);
22  const OvsdbDBEntry *ovsdb_entry);
23 
24 private:
26 };
27 
28 class VnOvsdbEntry : public OvsdbDBEntry {
29 public:
31 
32  // ovs_entry ref is not valid for VN, override IsDataResolved
33  // to return always true
34  bool IsDataResolved() {return true;}
35  void AddMsg(struct ovsdb_idl_txn *);
36  void ChangeMsg(struct ovsdb_idl_txn *);
37  void DeleteMsg(struct ovsdb_idl_txn *);
38  bool Sync(DBEntry*);
39  bool IsLess(const KSyncEntry&) const;
40  std::string ToString() const {return "Virtual Network Ksync";}
42 
43  VrfEntry *vrf();
44  uint32_t vxlan_id() { return vxlan_id_; }
45  const std::string &name() { return name_; }
46 
47 private:
48  friend class VnOvsdbObject;
51  uint32_t vxlan_id_;
52  std::string name_;
54 };
55 };
56 
57 #endif //SRC_VNSW_AGENT_OVS_TOR_AGENT_OVSDB_CLIENT_VN_OVSDB_H_
58 
uint32_t vxlan_id()
Definition: vn_ovsdb.h:44
OvsdbDBObject * table()
Definition: ovsdb_entry.h:96
Definition: vrf.h:86
bool IsDataResolved()
Definition: vn_ovsdb.h:34
virtual ~VnOvsdbObject()
Definition: vn_ovsdb.cc:100
uint32_t vxlan_id_
Definition: vn_ovsdb.h:51
KSyncEntry * UnresolvedReference()
Definition: vn_ovsdb.cc:88
boost::uuids::uuid uuid
VnOvsdbEntry(VnOvsdbObject *table, const boost::uuids::uuid &uuid)
Definition: vn_ovsdb.cc:22
bool Sync(DBEntry *)
Definition: vn_ovsdb.cc:60
KSyncEntry * Alloc(const KSyncEntry *key, uint32_t index)
Definition: vn_ovsdb.cc:103
VrfEntryRef vrf_
Definition: vn_ovsdb.h:50
void ChangeMsg(struct ovsdb_idl_txn *)
Definition: vn_ovsdb.cc:32
void AddMsg(struct ovsdb_idl_txn *)
Definition: vn_ovsdb.cc:27
DBFilterResp OvsdbDBEntryFilter(const DBEntry *entry, const OvsdbDBEntry *ovsdb_entry)
Definition: vn_ovsdb.cc:116
std::string ToString() const
Definition: vn_ovsdb.h:40
void DeleteMsg(struct ovsdb_idl_txn *)
Definition: vn_ovsdb.cc:45
bool IsLess(const KSyncEntry &) const
Definition: vn_ovsdb.cc:83
DISALLOW_COPY_AND_ASSIGN(VnOvsdbEntry)
Definition: vn.h:151
VnOvsdbObject(OvsdbClientIdl *idl, DBTable *table)
Definition: vn_ovsdb.cc:96
DISALLOW_COPY_AND_ASSIGN(VnOvsdbObject)
boost::uuids::uuid uuid_
Definition: vn_ovsdb.h:49
std::string name_
Definition: vn_ovsdb.h:52
KSyncEntry * DBToKSyncEntry(const DBEntry *)
Definition: vn_ovsdb.cc:110
const std::string & name()
Definition: vn_ovsdb.h:45
VrfEntry * vrf()
Definition: vn_ovsdb.cc:92