5 #ifndef SRC_VNSW_AGENT_OPER_CRYPT_TUNNEL_H_
6 #define SRC_VNSW_AGENT_OPER_CRYPT_TUNNEL_H_
10 #include <agent_types.h>
14 #define CRYPT_TUNNEL_TASK_TRACE(obj, ...)\
16 CryptTunnelTask##obj::TraceMsg(CryptTunnelTraceBuf, __FILE__, __LINE__,\
98 void CryptAvailability(
const std::string &remote_ip,
bool &crypt_traffic,
bool &crypt_path_available);
102 void Create(
const std::string &remote_ip,
bool crypt);
103 void Delete(
const std::string &remote_ip);
117 const std::string &context);
147 const std::string &message);
180 void OnRead(
const std::string &data);
182 void OnExit(
const boost::system::error_code &ec);
234 boost::scoped_ptr<CryptTunnelProcessTunnel>
task_;
virtual std::unique_ptr< DBEntry > AllocEntry(const DBRequestKey *k) const
void Delete(const std::string &remote_ip)
DISALLOW_COPY_AND_ASSIGN(CryptTunnelTask)
virtual KeyPtr GetDBRequestKey() const
uint32_t GetRefCount() const
void TunnelEventEnqueue(CryptTunnelEvent *event)
virtual bool IsRunning() const
DISALLOW_COPY_AND_ASSIGN(CryptTunnelTable)
virtual bool IsLess(const DBEntry &rhs) const
virtual DBEntry * Add(const DBRequest *req)
void CryptAvailability(const std::string &remote_ip, bool &crypt_traffic, bool &crypt_path_available)
virtual bool DestroyTunnelTask()
boost::scoped_ptr< CryptTunnelProcessTunnel > task_
virtual bool DestroyTunnelTask()=0
boost::asio::ip::address IpAddress
CryptTunnelConfigData(bool vr_crypt)
virtual bool UpdateTunnelTask()
virtual bool CreateTunnelTask()
virtual bool RunTunnelTask(CommandType cmd_type)
virtual bool CreateTunnelTask()=0
virtual bool StopTunnelTask()
DISALLOW_COPY_AND_ASSIGN(CryptTunnelEntry)
bool GetTunnelAvailable() const
bool IsCryptPathAvailable(const std::string &remote_ip)
virtual ~CryptTunnelTask()
boost::shared_ptr< TraceBuffer< SandeshTrace > > SandeshTraceBufferPtr
void UpdateTunnel(const CryptTunnelEntry *entry, bool available) const
std::unique_ptr< DBRequestKey > KeyPtr
void Process(DBRequest &req)
CryptTunnelEvent(CryptTunnelTaskBase *inst, CryptTunnelEntry *entry, EventType type, const std::string &message)
const IpAddress * GetRemoteIp() const
virtual void SetKey(const DBRequestKey *key)
static CryptTunnelTable * crypt_tunnel_table_
virtual AgentSandeshPtr GetAgentSandesh(const AgentSandeshArguments *args, const std::string &context)
virtual bool IsRunning() const
DISALLOW_COPY_AND_ASSIGN(CryptTunnelTaskBase)
CryptTunnelTaskBase * tunnel_task_
bool GetVRToVRCrypt() const
static CryptTunnelTable * GetInstance()
void UpdateTunnelTaskCommand(CommandType cmd_type)
CryptTunnelTaskBase * StartCryptTunnel()
InterfaceConstRef crypt_interface_
CryptTunnelTask(CryptTunnelEntry *entry)
virtual bool StopTunnelTask()=0
void SetTunnelAvailable(bool available)
DISALLOW_COPY_AND_ASSIGN(CryptTunnelEvent)
CryptTunnelKey(IpAddress remote_ip)
SandeshTraceBufferPtr CryptTunnelTraceBuf
CryptTunnelEntryRef entry_
bool TunnelEventProcess(CryptTunnelEvent *event)
boost::intrusive_ptr< const Interface > InterfaceConstRef
void set_tunnel_entry(CryptTunnelEntry *entry)
virtual ~CryptTunnelEvent()
class boost::shared_ptr< AgentSandesh > AgentSandeshPtr
const std::string & name() const
virtual size_t Hash(const DBEntry *entry) const
CryptTunnelTaskBase(CryptTunnelEntry *entry)
virtual bool OnChange(DBEntry *entry, const DBRequest *req)
bool IsCryptTraffic(const std::string &remote_ip)
CryptTunnelTask * tunnel_task_
void OnRead(const std::string &data)
uint32_t GetRefCount() const
CryptTunnelEntry * Find(const std::string &remote_ip)
virtual ~CryptTunnelAvailableData()
virtual string ToString() const
boost::intrusive_ptr< CryptTunnelEntry > CryptTunnelEntryRef
void SetTunnelEntry(CryptTunnelEntry *entry)
void SetVRToVRCrypt(bool crypt)
virtual ~CryptTunnelConfigData()
virtual bool RunTunnelTask(CommandType cmd_type)=0
virtual size_t Hash(const DBRequestKey *key) const
bool DBEntrySandesh(Sandesh *sresp, std::string &name) const
virtual bool Resync(DBEntry *entry, const DBRequest *req)
CryptTunnelAvailableData(bool available)
static const std::string kCryptTunnelCmd
CryptTunnelEntry * entry() const
WorkQueue< CryptTunnelEvent * > tunnel_event_queue_
void SendObjectLog(SandeshTraceBufferPtr ptr, AgentLogEvent::type event) const
void Create(const std::string &remote_ip, bool crypt)
void StopTask(CryptTunnelEntry *service)
CryptTunnelTable(Agent *agent, DB *db, const std::string &name)
void set_crypt_interface(const Interface *interface)
CryptTunnelEntry(IpAddress remote_ip)
void OnExit(const boost::system::error_code &ec)
void UpdateTunnelReference()
const std::string & last_update_time() const
CryptTunnelEntry * entry_
InstanceTaskExecvp CryptTunnelProcessTunnel
const IpAddress * GetSourceIp() const
std::vector< std::string > TunnelEndpointList
static DBTableBase * CreateTable(Agent *agent, DB *db, const std::string &name)
virtual ~CryptTunnelEntry()
bool ChangeHandler(CryptTunnelEntry *entry, const DBRequest *req)
void set_vr_crypt(bool vr_crypt)
std::string last_update_time_
virtual ~CryptTunnelTaskBase()
virtual ~CryptTunnelKey()
virtual ~CryptTunnelTable()