5 #ifndef SRC_VNSW_AGENT_OVS_TOR_AGENT_OVSDB_CLIENT_OVSDB_CLIENT_IDL_H_
6 #define SRC_VNSW_AGENT_OVS_TOR_AGENT_OVSDB_CLIENT_OVSDB_CLIENT_IDL_H_
11 #include <boost/intrusive_ptr.hpp>
12 #include <tbb/atomic.h>
16 #include <agent_types.h>
23 #define OVSDB_TRACE(obj, ...)\
25 Ovsdb##obj::TraceMsg(OvsdbTraceBuf, __FILE__, __LINE__, __VA_ARGS__);\
28 #define OVSDB_PKT_TRACE(obj, ...)\
30 Ovsdb##obj::TraceMsg(OvsdbPktTraceBuf, __FILE__, __LINE__, __VA_ARGS__);\
38 class OvsdbClientSession;
39 class VMInterfaceKSyncObject;
40 class PhysicalSwitchTable;
41 class LogicalSwitchTable;
42 class PhysicalPortTable;
43 class PhysicalLocatorTable;
44 class VlanPortBindingTable;
45 class PhysicalLocatorTable;
46 class UnicastMacLocalOvsdb;
47 class MulticastMacLocalOvsdb;
51 class ConnectionStateTable;
52 class OvsdbResourceVxLanIdTable;
99 struct jsonrpc_msg *
msg;
139 void DeleteTxn(
struct ovsdb_idl_txn *txn);
180 const TxnStats &
stats()
const;
boost::asio::ip::address_v4 Ip4Address
OvsdbClientIdl(OvsdbClientSession *session, Agent *agent, OvsPeerManager *manager)
OvsPeerManager * manager_
struct ovsdb_idl_txn * CreateBulkTxn(OvsdbEntryBase *entry, KSyncEntry::KSyncEvent ack_event=KSyncEntry::ADD_ACK)
NotifyCB callback_[OVSDB_TYPE_COUNT]
PhysicalPortTable * physical_port_table()
std::map< struct ovsdb_idl_txn *, OvsdbEntryList > PendingTxnMap
bool ProcessMessage(OvsdbMsg *msg)
bool ConcurrencyCheck() const
friend void intrusive_ptr_release(OvsdbClientIdl *p)
bool IsKeepAliveTimerActive()
std::queue< struct jsonrpc_msg * > ThrottledTxnMsgs
std::unique_ptr< OvsdbResourceVxLanIdTable > vxlan_table_
std::unique_ptr< PhysicalLocatorTable > physical_locator_table_
WorkQueue< OvsdbMsg * > * receive_queue_
KSyncObjectManager * ksync_obj_manager()
void NotifyDelAdd(struct ovsdb_idl_row *row)
PhysicalSwitchTable * physical_switch_table()
friend void ovsdb_wrapper_idl_callback(void *, int, struct ovsdb_idl_row *)
uint16_t remote_port() const
Ip4Address remote_ip() const
std::unique_ptr< VrfOvsdbObject > vrf_ovsdb_
OvsdbClientSession * session_
const struct vteprec_global * vtep_global_
OvsdbResourceVxLanIdTable * vxlan_table()
std::unique_ptr< OvsPeer > route_peer_
void UnRegister(EntryType type)
@ OVSDB_PHYSICAL_LOCATOR_SET
std::unique_ptr< PhysicalSwitchTable > physical_switch_table_
struct ovsdb_idl_txn * CreateTxn(OvsdbEntryBase *entry, KSyncEntry::KSyncEvent ack_event=KSyncEntry::ADD_ACK)
std::unique_ptr< VMInterfaceKSyncObject > vm_interface_table_
OvsdbEntryList bulk_entries_
std::unique_ptr< LogicalSwitchTable > logical_switch_table_
std::unique_ptr< VnOvsdbObject > vn_ovsdb_
friend void ovsdb_wrapper_idl_txn_ack(void *, struct ovsdb_idl_txn *)
PendingTxnMap pending_txn_
void TxnScheduleJsonRpc(struct jsonrpc_msg *msg)
VMInterfaceKSyncObject * vm_interface_table()
struct ovsdb_idl_txn * bulk_txn_
VrfOvsdbObject * vrf_ovsdb()
struct json * monitor_request_id_
uint64_t pending_send_msg_count() const
LogicalSwitchTable * logical_switch_table()
DISALLOW_COPY_AND_ASSIGN(OvsdbClientIdl)
UnicastMacLocalOvsdb * unicast_mac_local_ovsdb()
PhysicalLocatorTable * physical_locator_table()
const TxnStats & stats() const
ThrottledTxnMsgs pending_send_msgs_
std::unique_ptr< MulticastMacLocalOvsdb > multicast_mac_local_ovsdb_
static const std::size_t OVSDBEntriesInBulkTxn
ConnectionStateTable * connection_table()
MulticastMacLocalOvsdb * multicast_mac_local_ovsdb()
VnOvsdbObject * vn_ovsdb()
OvsdbSessionState connection_state_
std::unique_ptr< UnicastMacLocalOvsdb > unicast_mac_local_ovsdb_
bool IsMonitorInProcess()
static const std::size_t OVSDBMaxInFlightPendingTxn
virtual ~OvsdbClientIdl()
VlanPortBindingTable * vlan_port_table()
boost::function< void(OvsdbClientIdl::Op, struct ovsdb_idl_row *)> NotifyCB
bool EncodeSendTxn(struct ovsdb_idl_txn *txn, OvsdbEntryBase *skip_entry)
void DeleteTxn(struct ovsdb_idl_txn *txn)
uint64_t pending_txn_count() const
std::unique_ptr< VlanPortBindingTable > vlan_port_table_
tbb::atomic< int > refcount_
void MessageProcess(const u_int8_t *buf, std::size_t len)
std::unique_ptr< PhysicalPortTable > physical_port_table_
friend void intrusive_ptr_add_ref(OvsdbClientIdl *p)
void Register(EntryType type, NotifyCB cb)
std::set< OvsdbEntryBase * > OvsdbEntryList
boost::intrusive_ptr< OvsdbClientIdl > OvsdbClientIdlPtr
SandeshTraceBufferPtr OvsdbPktTraceBuf
SandeshTraceBufferPtr OvsdbTraceBuf
SandeshTraceBufferPtr OvsdbSMTraceBuf
boost::shared_ptr< TraceBuffer< SandeshTrace > > SandeshTraceBufferPtr
OvsdbMsg(struct jsonrpc_msg *m)