OpenSDN source code
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
vrf_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_VRF_OVSDB_H_
6 #define SRC_VNSW_AGENT_OVS_TOR_AGENT_OVSDB_CLIENT_VRF_OVSDB_H_
7 
8 #include <base/lifetime.h>
9 #include <ovsdb_entry.h>
10 #include <ovsdb_object.h>
11 #include <ovsdb_client_idl.h>
12 
13 class BridgeRouteEntry;
14 
15 namespace OVSDB {
16 class UnicastMacRemoteTable;
17 
18 class VrfOvsdbObject : public OvsdbDBObject {
19 public:
21  virtual ~VrfOvsdbObject();
22 
23  void OvsdbNotify(OvsdbClientIdl::Op, struct ovsdb_idl_row *);
24 
25  KSyncEntry *Alloc(const KSyncEntry *key, uint32_t index);
27  OvsdbDBEntry *AllocOvsEntry(struct ovsdb_idl_row *row);
29  const OvsdbDBEntry *ovsdb_entry);
30 
31 private:
33 };
34 
35 class VrfOvsdbEntry : public OvsdbDBEntry {
36 public:
37  enum Trace {
42  };
43  VrfOvsdbEntry(OvsdbDBObject *table, const std::string &logical_switch);
45 
46  bool Add();
47  bool Change();
48  bool Delete();
49 
50  bool Sync(DBEntry*);
51  bool IsLess(const KSyncEntry&) const;
52  std::string ToString() const {return "Vrf Ovsdb Entry";}
54 
56 
58  const std::string &logical_switch_name() { return logical_switch_name_; }
59 
60 protected:
61  virtual bool IsNoTxnEntry() { return true; }
62 
63 private:
64  friend class VrfOvsdbObject;
65  void SendTrace(Trace event) const;
66  std::string logical_switch_name_;
70 };
71 };
72 
73 #endif //SRC_VNSW_AGENT_OVS_TOR_AGENT_OVSDB_CLIENT_VRF_OVSDB_H_
74 
KSyncEntry * UnresolvedReference()
Definition: vrf_ovsdb.cc:95
OvsdbDBObject * table()
Definition: ovsdb_entry.h:96
DBFilterResp OvsdbDBEntryFilter(const DBEntry *entry, const OvsdbDBEntry *ovsdb_entry)
Definition: vrf_ovsdb.cc:170
VrfOvsdbObject(OvsdbClientIdl *idl)
Definition: vrf_ovsdb.cc:106
std::string logical_switch_name_
Definition: vrf_ovsdb.h:66
AgentRouteTable * oper_route_table_
Definition: vrf_ovsdb.h:68
std::string ToString() const
Definition: vrf_ovsdb.h:52
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: vrf_ovsdb.cc:89
UnicastMacRemoteTable * route_table_
Definition: vrf_ovsdb.h:67
UnicastMacRemoteTable * route_table()
Definition: vrf_ovsdb.h:57
void OvsdbNotify(OvsdbClientIdl::Op, struct ovsdb_idl_row *)
Definition: vrf_ovsdb.cc:114
void TriggerAck(UnicastMacRemoteTable *table)
Definition: vrf_ovsdb.cc:99
KSyncEntry * Alloc(const KSyncEntry *key, uint32_t index)
Definition: vrf_ovsdb.cc:151
Definition: trace.h:220
bool Sync(DBEntry *)
Definition: vrf_ovsdb.cc:78
virtual bool IsNoTxnEntry()
Definition: vrf_ovsdb.h:61
const std::string & logical_switch_name()
Definition: vrf_ovsdb.h:58
VrfOvsdbEntry(OvsdbDBObject *table, const std::string &logical_switch)
Definition: vrf_ovsdb.cc:28
OvsdbDBEntry * AllocOvsEntry(struct ovsdb_idl_row *row)
Definition: vrf_ovsdb.cc:166
virtual ~VrfOvsdbObject()
Definition: vrf_ovsdb.cc:111
KSyncEntry * DBToKSyncEntry(const DBEntry *)
Definition: vrf_ovsdb.cc:159
DISALLOW_COPY_AND_ASSIGN(VrfOvsdbObject)
void SendTrace(Trace event) const
DISALLOW_COPY_AND_ASSIGN(VrfOvsdbEntry)