OpenSDN source code
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
ha_stale_vn.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_HA_STALE_VN_H_
6 #define SRC_VNSW_AGENT_OVS_TOR_AGENT_OVSDB_CLIENT_HA_STALE_VN_H_
7 
8 #include <ovsdb_entry.h>
9 #include <ovsdb_object.h>
10 
11 class VnEntry;
12 
13 namespace OVSDB {
14 class HaStaleDevVnTable;
15 class HaStaleVnEntry;
16 
17 class HaStaleVnTable : public OvsdbDBObject {
18 public:
20  virtual ~HaStaleVnTable();
21 
22  KSyncEntry *Alloc(const KSyncEntry *key, uint32_t index);
25  const OvsdbDBEntry *ovsdb_entry);
26  virtual void EmptyTable(void);
27  Agent *agent() const;
28  void DeleteTableDone();
29 
30 private:
31  friend class HaStaleVnEntry;
32 
36 };
37 
38 class HaStaleVnEntry : public OvsdbDBEntry {
39 public:
41  virtual ~HaStaleVnEntry();
42 
43  // ovs_entry ref is not valid for VN, override IsDataResolved
44  // to return always true
45  bool IsDataResolved() {return true;}
46  void AddMsg(struct ovsdb_idl_txn *);
47  void ChangeMsg(struct ovsdb_idl_txn *);
48  void DeleteMsg(struct ovsdb_idl_txn *);
49  bool Sync(DBEntry*);
50  bool IsLess(const KSyncEntry&) const;
51  std::string ToString() const {return "Ha Stale VN entry";}
53 
54  const std::string &vn_name() const;
56 
57 protected:
58  virtual bool IsNoTxnEntry() { return true; }
59 
60 private:
61  friend class HaStaleVnTable;
63  std::string vn_name_;
66 };
67 };
68 
69 #endif //SRC_VNSW_AGENT_OVS_TOR_AGENT_OVSDB_CLIENT_HA_STALE_VN_H_
70 
void ChangeMsg(struct ovsdb_idl_txn *)
Definition: ha_stale_vn.cc:35
OvsdbDBObject * table()
Definition: ovsdb_entry.h:96
DBFilterResp OvsdbDBEntryFilter(const DBEntry *entry, const OvsdbDBEntry *ovsdb_entry)
Definition: ha_stale_vn.cc:98
const std::string & vn_name() const
Definition: ha_stale_vn.cc:69
bool Sync(DBEntry *)
Definition: ha_stale_vn.cc:46
virtual bool IsNoTxnEntry()
Definition: ha_stale_vn.h:58
Agent * agent() const
Definition: ha_stale_vn.cc:118
Agent supports multiple route tables - Inet-unicast (IPv4/IPv6), Inet-multicast, bridge, EVPN (Type2/Type5). This base class contains common code for all types of route tables.
Definition: agent_route.h:109
bool IsLess(const KSyncEntry &) const
Definition: ha_stale_vn.cc:60
boost::uuids::uuid uuid
KSyncEntry * DBToKSyncEntry(const DBEntry *)
Definition: ha_stale_vn.cc:92
virtual ~HaStaleVnTable()
Definition: ha_stale_vn.cc:82
virtual void EmptyTable(void)
Definition: ha_stale_vn.cc:109
KSyncEntry * UnresolvedReference()
Definition: ha_stale_vn.cc:65
DISALLOW_COPY_AND_ASSIGN(HaStaleVnEntry)
AgentRouteTable * bridge_table() const
Definition: ha_stale_vn.cc:73
Definition: agent.h:358
HaStaleVnEntry(HaStaleVnTable *table, const boost::uuids::uuid &uuid)
Definition: ha_stale_vn.cc:19
HaStaleVnTable(Agent *agent, HaStaleDevVnTable *dev_vn_table)
Definition: ha_stale_vn.cc:77
void DeleteMsg(struct ovsdb_idl_txn *)
Definition: ha_stale_vn.cc:39
HaStaleDevVnTable * dev_vn_table_
Definition: ha_stale_vn.h:34
boost::uuids::uuid uuid_
Definition: ha_stale_vn.h:62
Definition: vn.h:151
std::string ToString() const
Definition: ha_stale_vn.h:51
virtual ~HaStaleVnEntry()
Definition: ha_stale_vn.cc:24
std::string vn_name_
Definition: ha_stale_vn.h:63
void AddMsg(struct ovsdb_idl_txn *)
Definition: ha_stale_vn.cc:27
DISALLOW_COPY_AND_ASSIGN(HaStaleVnTable)
AgentRouteTable * bridge_table_
Definition: ha_stale_vn.h:64
KSyncEntry * Alloc(const KSyncEntry *key, uint32_t index)
Definition: ha_stale_vn.cc:85