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