OpenSDN source code
vrf_ovsdb.h
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2015 Juniper Networks, Inc. All rights reserved.
3  * Copyright Contributors to the OpenSDN project
4  */
5 
6 #ifndef SRC_VNSW_AGENT_OVS_TOR_AGENT_OVSDB_CLIENT_VRF_OVSDB_H_
7 #define SRC_VNSW_AGENT_OVS_TOR_AGENT_OVSDB_CLIENT_VRF_OVSDB_H_
8 
9 #include <base/lifetime.h>
10 #include <ovsdb_entry.h>
11 #include <ovsdb_object.h>
12 #include <ovsdb_client_idl.h>
13 
14 class BridgeRouteEntry;
15 
16 namespace OVSDB {
17 class UnicastMacRemoteTable;
18 
19 class VrfOvsdbObject : public OvsdbDBObject {
20 public:
22  virtual ~VrfOvsdbObject();
23 
24  void OvsdbNotify(OvsdbClientIdl::Op, struct ovsdb_idl_row *);
25 
26  KSyncEntry *Alloc(const KSyncEntry *key, uint32_t index);
28  OvsdbDBEntry *AllocOvsEntry(struct ovsdb_idl_row *row);
30  const OvsdbDBEntry *ovsdb_entry);
31 
32 private:
34 };
35 
36 class VrfOvsdbEntry : public OvsdbDBEntry {
37 public:
38  enum Trace {
43  };
44  VrfOvsdbEntry(OvsdbDBObject *table, const std::string &logical_switch);
46 
47  bool Add();
48  bool Change();
49  bool Delete();
50 
51  bool Sync(DBEntry*);
52  bool IsLess(const KSyncEntry&) const;
53  std::string ToString() const {return "Vrf Ovsdb Entry";}
55 
57 
59  const std::string &logical_switch_name() { return logical_switch_name_; }
60 
61 protected:
62  virtual bool IsNoTxnEntry() { return true; }
63 
64 private:
65  friend class VrfOvsdbObject;
66  void SendTrace(Trace event) const;
67  std::string logical_switch_name_;
71 };
72 };
73 
74 #endif //SRC_VNSW_AGENT_OVS_TOR_AGENT_OVSDB_CLIENT_VRF_OVSDB_H_
75 
Agent supports multiple route tables - Inet-unicast (IPv4/IPv6), Inet-multicast, bridge,...
Definition: agent_route.h:110
OvsdbDBObject * table()
Definition: ovsdb_entry.h:97
bool Sync(DBEntry *)
Definition: vrf_ovsdb.cc:79
std::string ToString() const
Definition: vrf_ovsdb.h:53
UnicastMacRemoteTable * route_table()
Definition: vrf_ovsdb.h:58
UnicastMacRemoteTable * route_table_
Definition: vrf_ovsdb.h:68
const std::string & logical_switch_name()
Definition: vrf_ovsdb.h:59
KSyncEntry * UnresolvedReference()
Definition: vrf_ovsdb.cc:96
std::string logical_switch_name_
Definition: vrf_ovsdb.h:67
void TriggerAck(UnicastMacRemoteTable *table)
Definition: vrf_ovsdb.cc:100
AgentRouteTable * oper_route_table_
Definition: vrf_ovsdb.h:69
void SendTrace(Trace event) const
DISALLOW_COPY_AND_ASSIGN(VrfOvsdbEntry)
VrfOvsdbEntry(OvsdbDBObject *table, const std::string &logical_switch)
Definition: vrf_ovsdb.cc:29
bool IsLess(const KSyncEntry &) const
Definition: vrf_ovsdb.cc:90
virtual bool IsNoTxnEntry()
Definition: vrf_ovsdb.h:62
DBFilterResp OvsdbDBEntryFilter(const DBEntry *entry, const OvsdbDBEntry *ovsdb_entry)
Definition: vrf_ovsdb.cc:171
KSyncEntry * DBToKSyncEntry(const DBEntry *)
Definition: vrf_ovsdb.cc:160
OvsdbDBEntry * AllocOvsEntry(struct ovsdb_idl_row *row)
Definition: vrf_ovsdb.cc:167
void OvsdbNotify(OvsdbClientIdl::Op, struct ovsdb_idl_row *)
Definition: vrf_ovsdb.cc:115
VrfOvsdbObject(OvsdbClientIdl *idl)
Definition: vrf_ovsdb.cc:107
KSyncEntry * Alloc(const KSyncEntry *key, uint32_t index)
Definition: vrf_ovsdb.cc:152
virtual ~VrfOvsdbObject()
Definition: vrf_ovsdb.cc:112
DISALLOW_COPY_AND_ASSIGN(VrfOvsdbObject)
Definition: trace.h:289
Definition: agent.h:44