11 #include <vnc_cfg_types.h>
12 #include <bgp_schema_types.h>
13 #include <agent_types.h>
37 KSyncDBEntry(), vrf_id_(entry->vrf_id()), ksync_obj_(obj) {
42 KSyncDBEntry(), vrf_id_(route->vrf_id()), ksync_obj_(obj) {
59 if (lhs_type != rhs_type)
60 return lhs_type < rhs_type;
73 mac_(entry->mac_), port_(entry->port_), tunnel_dest_(entry->tunnel_dest_) {
79 port_(nullptr), tunnel_dest_() {
118 if (old_vxlan_id != new_vxlan_id) {
157 tunnel_dest = *tunnel_nh->
GetDip();
200 ksync_(vrf->ksync()),
201 marked_delete_(false),
202 table_delete_ref_(this, rt_table->
deleter()) {
249 VrfRouteObjectMap::const_iterator it;
262 VrfRouteObjectMap::iterator it;
265 if (it->second == rt) {
284 if (state ==
nullptr) {
DBTableBase::ListenerId vrf_listener_id_
const Interface * GetInterface() const
void DelFromVrfMap(KSyncVxlanRouteObject *)
AgentRouteTable * rt_table_
void RegisterDb(DBTableBase *table)
virtual KSyncVxlanRouteObject * AllocBridgeRouteTable(const VrfEntry *entry)=0
DBState * GetState(DBTableBase *tbl_base, ListenerId listener) const
KSyncVxlanRouteObject * GetRouteKSyncObject(uint32_t vrf_id) const
static KSyncEntry * defer_entry()
Agent supports multiple route tables - Inet-unicast (IPv4/IPv6), Inet-multicast, bridge, EVPN (Type2/Type5). This base class contains common code for all types of route tables.
virtual ~KSyncVxlanVrfObject()
void SetState(DBTableBase *tbl_base, ListenerId listener, DBState *state)
uint32_t vxlan_id() const
void AddToVrfMap(uint32_t vrf_id, KSyncVxlanRouteObject *)
KSyncVxlanRouteEntry(KSyncVxlanRouteObject *obj, const KSyncVxlanRouteEntry *entry)
virtual bool CompareRoute(const KSyncVxlanRouteEntry &rhs) const =0
KSyncVxlanVrfObject * vrf_obj() const
virtual KSyncEntry * UnresolvedReference()
AgentDBEntry * FindActiveEntry(const DBEntry *key)
const Ip4Address * GetDip() const
virtual KSyncEntry * DBToKSyncEntry(const DBEntry *e)=0
static void Unregister(KSyncObject *)
KSyncVxlanRouteObject(KSyncVxlanVrfObject *vrf, AgentRouteTable *rt_table)
Base class for all Route entries in agent.
virtual void EmptyTable()
void Unregister(ListenerId listener)
void VrfNotify(DBTablePartBase *partition, DBEntryBase *e)
ListenerId Register(ChangeCallback callback, const std::string &name="unspecified")
KSyncVxlan * ksync() const
const AgentPath * GetActivePath() const
virtual KSyncEntry * DBToKSyncEntry(const DBEntry *e)=0
virtual ~KSyncVxlanRouteObject()
static const uint32_t kInvalidvxlan_id
void Reset(LifetimeActor *actor)
const NextHop * GetActiveNextHop() const
DBTableBase * GetDBTable()
int CompareTo(const MacAddress &rhs, int len=0) const
virtual std::string ToString() const
const Ip4Address & tunnel_dest() const
KSyncVxlanRouteObject * ksync_object() const
virtual ~KSyncVxlanFdbEntry()
const uint32_t vrf_id() const
KSyncVxlanPortEntry * port_
void ClearState(DBTableBase *tbl_base, ListenerId listener)
KSyncEntry * GetReference(const KSyncEntry *key)
boost::asio::ip::address_v4 Ip4Address
VrfTable * vrf_table() const
LifetimeRef< KSyncVxlanRouteObject > table_delete_ref_
virtual bool Sync(DBEntry *e)
virtual bool IsLess(const KSyncEntry &rhs) const
KSyncVxlanFdbEntry(KSyncVxlanRouteObject *obj, const KSyncVxlanFdbEntry *entry)
virtual ~KSyncVxlanRouteEntry()
VxLanTable * vxlan_table() const
KSyncVxlanBridgeObject * bridge_obj() const
const AgentRouteTable * route_table() const
VrfRouteObjectMap vrf_fdb_object_map_
void UnregisterDb(DBTableBase *table)
KSyncVxlanRouteObject * ksync_obj_
KSyncVxlanPortObject * port_obj() const
KSyncVxlanBridgeEntry * bridge_
KSyncDBObject * GetObject() const
const KSyncVxlanBridgeEntry * bridge() const
KSyncVxlanVrfObject(KSyncVxlan *ksync)
uint32_t vxlan_id() const
virtual Agent::RouteTableType GetTableType() const =0
const KSyncVxlanPortEntry * port() const
virtual bool CompareRoute(const KSyncVxlanRouteEntry &rhs) const