5 #ifndef SRC_BGP_MVPN_MVPN_TABLE_H_
6 #define SRC_BGP_MVPN_MVPN_TABLE_H_
30 : prefix(prefix),
peer(ipeer) {
40 virtual std::unique_ptr<DBEntry>
AllocEntryStr(
const std::string &key)
const;
95 typedef std::map<std::string, MvpnManagerNetworks>
119 #endif // SRC_BGP_MVPN_MVPN_TABLE_H_
MvpnRoute * FindSPMSIRoute(MvpnRoute *leaf_ad_rt)
MvpnRoute * LocateRoute(const MvpnPrefix &prefix)
size_t HashFunction(const MvpnPrefix &prefix) const
virtual const IPeer * GetPeer() const
virtual bool Export(RibOut *ribout, Route *route, const RibPeerSet &peerset, UpdateInfoSList &info_slist)
BgpRoute * ReplicatePath(BgpServer *server, const MvpnPrefix &mprefix, MvpnTable *src_table, MvpnRoute *src_rt, const BgpPath *src_path, ExtCommunityPtr comm)
const ExtCommunity::ExtCommunityValue GetAutoVrfImportRouteTarget() const
virtual std::unique_ptr< DBEntry > AllocEntryStr(const std::string &key) const
MvpnPrefix CreateType3SPMSIRoutePrefix(const MvpnRoute *type7_rt)
bool RouteNotify(BgpServer *server, DBTablePartBase *root, DBEntryBase *e)
MvpnRoute * LocateType4LeafADRoute(const MvpnRoute *type3_spmsi_rt)
MvpnPrefix CreateType2ADRoutePrefix()
virtual BgpRoute * RouteReplicate(BgpServer *server, BgpTable *src_table, BgpRoute *src_rt, const BgpPath *path, ExtCommunityPtr ptr)
void UpdateSecondaryTablesForReplication(BgpRoute *rt, TableSet *secondary_tables)
std::map< std::string, MvpnManagerNetworks > MvpnProjectManagerNetworks
MvpnRoute * FindType1ADRoute()
void CreateMvpnManagers()
const MvpnManager * manager() const
MvpnRoute * FindRoute(const MvpnPrefix &prefix)
virtual size_t Hash(const DBEntry *entry) const
MvpnPrefix CreateType1ADRoutePrefix()
PathResolver * CreatePathResolver()
const MvpnRoute * FindType7SourceTreeJoinRoute(MvpnRoute *rt) const
DISALLOW_COPY_AND_ASSIGN(MvpnTable)
BgpRoute * ReplicateType7SourceTreeJoin(BgpServer *server, MvpnTable *src_table, MvpnRoute *src_rt, const BgpPath *src_path, ExtCommunityPtr ext_community)
virtual Address::Family family() const
std::set< BgpTable * > TableSet
const MvpnTable * table() const
RequestKey(const MvpnPrefix &prefix, const IPeer *ipeer)
virtual BgpRoute * TableFind(DBTablePartition *rtp, const DBRequestKey *prefix)
const std::string & name() const
friend class BgpMulticastTest
void GetPeerSet(RibOut *ribout, MvpnRoute *route, const RibPeerSet &peerset, RibPeerSet *new_peerset)
static const int kPartitionCount
MvpnPrefix CreateType4LeafADRoutePrefix(const MvpnRoute *type3_rt)
MvpnPrefix CreateType7SourceTreeJoinRoutePrefix(MvpnRoute *rt) const
boost::asio::ip::address_v4 Ip4Address
virtual bool IsVpnTable() const
UpdateInfo * GetMvpnUpdateInfo(RibOut *ribout, MvpnRoute *route, const RibPeerSet &peerset)
const MvpnProjectManager * GetProjectManager() const
const MvpnProjectManagerPartition * GetProjectManagerPartition(BgpRoute *route) const
virtual std::unique_ptr< DBEntry > AllocEntry(const DBRequestKey *key) const
MvpnTable(DB *db, const std::string &name)
std::set< std::string > MvpnManagerNetworks
MvpnPrefix CreateLocalType7Prefix(MvpnRoute *rt) const
MvpnRoute * LocateType3SPMSIRoute(const MvpnRoute *type7_join_rt)
static DBTableBase * CreateTable(DB *db, const std::string &name)
virtual int PartitionCount() const
bool IsProjectManagerUsable() const
MvpnRoute * LocateType1ADRoute()