5 #ifndef vnsw_agent_mirror_table_hpp
6 #define vnsw_agent_mirror_table_hpp
10 #include <agent_types.h>
29 const uint16_t sport,
const IpAddress &dip,
30 const uint16_t dport, uint8_t mirror_flags,
31 uint32_t vni,
const MacAddress &mac,
bool createdvrf):
38 uint16_t nic_assisted_mirroring_vlan):
68 virtual std::string
ToString()
const {
return "MirrorEntry";};
139 const std::string &context);
142 const std::string &vrf_name,
146 const std::string &vrf_name,
149 uint32_t vni, uint8_t mirror_flag,
152 uint32_t nic_assisted_mirroring_vlan);
158 void ReadHandler(
const boost::system::error_code& error,
size_t bytes);
190 std::unique_ptr<boost::asio::ip::udp::socket>
udp_sock_;
boost::asio::ip::address IpAddress
boost::intrusive_ptr< NextHop > NextHopRef
class boost::shared_ptr< AgentSandesh > AgentSandeshPtr
uint32_t GetRefCount() const
std::unique_ptr< DBRequestKey > KeyPtr
static const int kInvalidId
const std::string & name() const
virtual KeyPtr GetDBRequestKey() const
bool DBEntrySandesh(Sandesh *sresp, std::string &name) const
uint16_t nic_assisted_mirroring_vlan() const
const std::string vrf_name() const
uint32_t GetRefCount() const
const std::string GetAnalyzerName() const
const VrfEntry * GetVrf() const
bool nic_assisted_mirroring_
const NextHop * GetNH() const
uint16_t GetSPort() const
const IpAddress * GetSip() const
virtual bool IsLess(const DBEntry &rhs) const
const MacAddress * GetMac() const
bool GetCreatedVrf() const
virtual bool Change(const DBRequest *req)
bool nic_assisted_mirroring() const
virtual std::string ToString() const
uint16_t nic_assisted_mirroring_vlan_
const IpAddress * GetDip() const
virtual void SetKey(const DBRequestKey *key)
MirrorEntry(std::string analyzer_name)
void set_mirror_index(uint32_t index)
uint8_t GetMirrorFlag() const
std::string analyzer_name_
void set_mirror_entrySandeshData(MirrorEntrySandeshData &data) const
uint32_t mirror_index() const
uint16_t GetDPort() const
static void AddMirrorEntry(const std::string &analyzer_name, const std::string &vrf_name, const IpAddress &sip, uint16_t sport, const IpAddress &dip, uint16_t dport)
static DBTableBase * CreateTable(DB *db, const std::string &name)
MirrorEntry * GetMirrorEntry(VrfEntry *vrf, const MacAddress &mac, VrfMirrorEntryList &list)
VrfMirrorEntryList resolved_entry_list_
static MirrorEntryData::MirrorEntryFlags DecodeMirrorFlag(const std::string &nh_mode, bool juniper_header)
void BridgeRouteTableNotify(DBTablePartBase *partition, DBEntryBase *e)
void AddUnresolved(MirrorEntry *entry)
void UnRegisterBridgeRouteTableListener(const VrfEntry *entry, MirrorVrfState *state)
void ReadHandler(const boost::system::error_code &error, size_t bytes)
std::vector< MirrorEntry * > MirrorEntryList
static MirrorTable * GetInstance()
std::pair< std::string, MirrorEntryList > VrfMirrorEntry
VrfEntry * FindVrfEntry(const std::string &vrf_name) const
void ResyncUnresolvedMirrorEntry(const VrfEntry *vrf)
virtual bool Delete(DBEntry *entry, const DBRequest *request)
virtual AgentSandeshPtr GetAgentSandesh(const AgentSandeshArguments *args, const std::string &context)
void DeleteMirrorVrf(MirrorEntry *entry, bool del_from_vrf_list)
VrfMirrorEntryList unresolved_entry_list_
virtual void OnZeroRefcount(AgentDBEntry *e)
virtual bool OnChange(DBEntry *entry, const DBRequest *req)
virtual bool Resync(DBEntry *entry, const DBRequest *req)
void MirrorSockInit(void)
virtual size_t Hash(const DBRequestKey *key) const
void RemoveUnresolved(MirrorEntry *entry)
std::map< std::string, MirrorEntryList > VrfMirrorEntryList
static MirrorTable * mirror_table_
bool UnresolvedMirrorVrf(const VrfEntry *vrf, VrfMirrorEntryList &list)
void DeleteResolvedVrfMirrorEntry(MirrorEntry *entry)
virtual size_t Hash(const DBEntry *entry) const
void AddResolvedVrfMirrorEntry(MirrorEntry *entry)
void ResyncResolvedMirrorEntry(const VrfEntry *vrf)
void ResyncMirrorEntry(VrfMirrorEntryList &list, const VrfEntry *vrf)
virtual std::unique_ptr< DBEntry > AllocEntry(const DBRequestKey *k) const
MirrorTable(DB *db, const std::string &name)
virtual DBEntry * Add(const DBRequest *req)
static const unsigned bufLen
DBTableBase::ListenerId vrf_listener_id_
static const uint8_t kInvalidIndex
static void DelMirrorEntry(const std::string &analyzer_name)
void VrfNotify(DBTablePartBase *root, DBEntryBase *entry)
std::unique_ptr< boost::asio::ip::udp::socket > udp_sock_
uint16_t nic_assisted_mirroring_vlan_
@ StaticNH_With_JuniperHdr
@ DynamicNH_With_JuniperHdr
@ StaticNH_Without_JuniperHdr
@ DynamicNH_Without_JuniperHdr
MirrorEntryData(bool nic_assisted_mirroring, uint16_t nic_assisted_mirroring_vlan)
MirrorEntryData(const std::string vrf_name, const IpAddress &sip, const uint16_t sport, const IpAddress &dip, const uint16_t dport, uint8_t mirror_flags, uint32_t vni, const MacAddress &mac, bool createdvrf)
bool nic_assisted_mirroring_
MirrorEntryKey(const std::string analyzer_name)
std::string analyzer_name_
DBTableBase::ListenerId bridge_rt_table_listener_id_