OpenSDN source code
|
#include <route_ksync.h>
Classes | |
struct | VrfState |
Public Types | |
typedef std::pair< IpAddress, uint32_t > | IpToMacBindingKey |
typedef std::map < IpToMacBindingKey, MacBinding > | IpToMacBinding |
![]() | |
enum | DBFilterResp { DBFilterAccept, DBFilterIgnore, DBFilterDelete, DBFilterDelAdd, DBFilterMax } |
![]() | |
typedef boost::intrusive::member_hook < KSyncEntry, boost::intrusive::set_member_hook <>,&KSyncEntry::node_ > | KSyncObjectNode |
typedef boost::intrusive::set < KSyncEntry, KSyncObjectNode > | Tree |
typedef boost::intrusive::member_hook < KSyncFwdReference, boost::intrusive::set_member_hook <>,&KSyncFwdReference::node_ > | KSyncFwdRefNode |
typedef boost::intrusive::set < KSyncFwdReference, KSyncFwdRefNode > | FwdRefTree |
typedef boost::intrusive::member_hook < KSyncBackReference, boost::intrusive::set_member_hook <>,&KSyncBackReference::node_ > | KSyncBackRefNode |
typedef boost::intrusive::set < KSyncBackReference, KSyncBackRefNode > | BackRefTree |
Public Member Functions | |
VrfKSyncObject (KSync *ksync) | |
virtual | ~VrfKSyncObject () |
KSync * | ksync () const |
void | RegisterDBClients () |
void | Shutdown () |
void | VrfNotify (DBTablePartBase *partition, DBEntryBase *e) |
void | EvpnRouteTableNotify (DBTablePartBase *partition, DBEntryBase *e) |
void | UnRegisterEvpnRouteTableListener (const VrfEntry *entry, VrfState *state) |
void | AddIpMacBinding (VrfEntry *vrf, const IpAddress &ip, const MacAddress &mac, uint32_t ethernet_tag, uint32_t pref, bool wait_for_traffic) |
void | DelIpMacBinding (VrfEntry *vrf, const IpAddress &ip, const MacAddress &mac, uint32_t ethernet_tag) |
MacAddress | GetIpMacBinding (VrfEntry *vrf, const IpAddress &ip, const InetUnicastRouteEntry *rt) const |
bool | GetIpMacWaitForTraffic (VrfEntry *vrf, const IpAddress &ip) const |
void | NotifyUcRoute (VrfEntry *vrf, VrfState *state, const IpAddress &ip) |
bool | RouteNeedsMacBinding (const InetUnicastRouteEntry *rt) |
DBTableBase::ListenerId | vrf_listener_id () const |
virtual KSyncEntry * | Alloc (const KSyncEntry *entry, uint32_t index) |
virtual KSyncEntry * | DBToKSyncEntry (const DBEntry *entry) |
![]() | |
KSyncDBObject (const std::string &name) | |
KSyncDBObject (const std::string &name, int max_index) | |
KSyncDBObject (const std::string &name, DBTableBase *table) | |
KSyncDBObject (const std::string &name, DBTableBase *table, int max_index) | |
virtual | ~KSyncDBObject () |
void | RegisterDb (DBTableBase *table) |
void | UnregisterDb (DBTableBase *table) |
void | Notify (DBTablePartBase *partition, DBEntryBase *entry) |
DBTableBase * | GetDBTable () |
DBTableBase::ListenerId | GetListenerId (DBTableBase *table) |
virtual DBFilterResp | DBEntryFilter (const DBEntry *entry, const KSyncDBEntry *ksync) |
void | set_test_id (DBTableBase::ListenerId id) |
DBTableBase::ListenerId | id () const |
![]() | |
KSyncObject (const std::string &name) | |
KSyncObject (const std::string &name, int max_index) | |
virtual | ~KSyncObject () |
void | InitStaleEntryCleanup (boost::asio::io_context &ios, uint32_t cleanup_time, uint32_t cleanup_intvl, uint16_t entries_per_intvl) |
void | NotifyEvent (KSyncEntry *entry, KSyncEntry::KSyncEvent event) |
void | SafeNotifyEvent (KSyncEntry *entry, KSyncEntry::KSyncEvent event) |
virtual void | NetlinkAck (KSyncEntry *entry, KSyncEntry::KSyncEvent event) |
void | BackRefAdd (KSyncEntry *key, KSyncEntry *reference) |
void | BackRefDel (KSyncEntry *key) |
void | BackRefReEval (KSyncEntry *key) |
KSyncEntry * | Create (const KSyncEntry *key) |
KSyncEntry * | Create (const KSyncEntry *key, bool skip_lookup) |
KSyncEntry * | CreateStale (const KSyncEntry *key) |
void | Change (KSyncEntry *entry) |
void | Delete (KSyncEntry *entry) |
KSyncEntry * | Find (const KSyncEntry *key) |
KSyncEntry * | Next (const KSyncEntry *entry) const |
KSyncEntry * | GetReference (const KSyncEntry *key) |
virtual void | Free (KSyncEntry *entry) |
virtual void | EmptyTable (void) |
bool | IsEmpty (void) |
virtual bool | DoEventTrace (void) |
virtual void | PreFree (KSyncEntry *entry) |
std::size_t | Size () |
void | set_delete_scheduled () |
bool | delete_scheduled () |
virtual SandeshTraceBufferPtr | GetKSyncTraceBuf () |
Private Member Functions | |
DISALLOW_COPY_AND_ASSIGN (VrfKSyncObject) | |
Private Attributes | |
KSync * | ksync_ |
DBTableBase::ListenerId | vrf_listener_id_ |
bool | marked_delete_ |
VrfTable * | vrf_table_ |
Additional Inherited Members | |
![]() | |
static void | Shutdown () |
![]() | |
KSyncEntry * | CreateImpl (const KSyncEntry *key) |
void | ClearStale (KSyncEntry *entry) |
void | ChangeKey (KSyncEntry *entry, uint32_t arg) |
virtual void | UpdateKey (KSyncEntry *entry, uint32_t arg) |
virtual uint32_t | GetKey (KSyncEntry *entry) |
![]() | |
tbb::recursive_mutex | lock_ |
Definition at line 222 of file route_ksync.h.
typedef std::map<IpToMacBindingKey, MacBinding> VrfKSyncObject::IpToMacBinding |
Definition at line 226 of file route_ksync.h.
typedef std::pair<IpAddress, uint32_t> VrfKSyncObject::IpToMacBindingKey |
Definition at line 225 of file route_ksync.h.
VrfKSyncObject::VrfKSyncObject | ( | KSync * | ksync | ) |
|
virtual |
Definition at line 1108 of file route_ksync.cc.
void VrfKSyncObject::AddIpMacBinding | ( | VrfEntry * | vrf, |
const IpAddress & | ip, | ||
const MacAddress & | mac, | ||
uint32_t | ethernet_tag, | ||
uint32_t | pref, | ||
bool | wait_for_traffic | ||
) |
|
virtual |
Implements KSyncObject.
Definition at line 981 of file route_ksync.cc.
|
virtual |
Implements KSyncDBObject.
Definition at line 987 of file route_ksync.cc.
void VrfKSyncObject::DelIpMacBinding | ( | VrfEntry * | vrf, |
const IpAddress & | ip, | ||
const MacAddress & | mac, | ||
uint32_t | ethernet_tag | ||
) |
|
private |
void VrfKSyncObject::EvpnRouteTableNotify | ( | DBTablePartBase * | partition, |
DBEntryBase * | e | ||
) |
MacAddress VrfKSyncObject::GetIpMacBinding | ( | VrfEntry * | vrf, |
const IpAddress & | ip, | ||
const InetUnicastRouteEntry * | rt | ||
) | const |
|
inline |
Definition at line 244 of file route_ksync.h.
void VrfKSyncObject::RegisterDBClients | ( | ) |
bool VrfKSyncObject::RouteNeedsMacBinding | ( | const InetUnicastRouteEntry * | rt | ) |
void VrfKSyncObject::Shutdown | ( | void | ) |
|
inline |
Definition at line 266 of file route_ksync.h.
void VrfKSyncObject::VrfNotify | ( | DBTablePartBase * | partition, |
DBEntryBase * | e | ||
) |
|
private |
Definition at line 271 of file route_ksync.h.
|
private |
Definition at line 273 of file route_ksync.h.
|
private |
Definition at line 272 of file route_ksync.h.
|
private |
Definition at line 274 of file route_ksync.h.