19 std::unique_ptr<DBEntry>
25 std::unique_ptr<DBEntry>
28 return std::unique_ptr<DBEntry> (
new Inet6VpnRoute(vpn_prefix));
68 return *src_instance->
GetRD();
70 uint16_t peer_port_id = 0;
76 if ((peer->peer_name().find(ri_name)!= std::string::npos)&&
77 (peer->peer_address_string().find(src_path->
GetPeer()->
ToString())!= std::string::npos)){
78 peer_port_id = peer->peer_port();
79 asn_num = peer->peer_as();
97 src_rt->GetPrefix().prefixlen());
103 if (dest_route == NULL) {
105 partition->
Add(dest_route);
122 if (dest_path != NULL) {
144 partition->
Notify(dest_route);
156 uinfo_slist->push_front(*uinfo);
static RouteDistinguisher GenerateDistinguisher(const BgpTable *src_table, const BgpPath *src_path)
const RouteDistinguisher * GetRD() const
virtual bool IsXmppPeer() const =0
UpdateInfo * GetUpdateInfo(RibOut *ribout, BgpRoute *route, const RibPeerSet &peerset)
bool RemoveSecondaryPath(const BgpRoute *src_rt, BgpPath::PathSource src, const IPeer *peer, uint32_t path_id)
DBEntry * Find(const DBEntry *entry)
RoutingInstance * routing_instance()
virtual BgpRoute * TableFind(DBTablePartition *rtp, const DBRequestKey *prefix)
const uint32_t GetPathId() const
virtual bool IsRouterTypeBGPaaS() const =0
static Inet6VpnPrefix FromString(const std::string &str, boost::system::error_code *errorp=NULL)
const std::string & name() const
const RouteDistinguisher & source_rd() const
virtual Address::Family family() const =0
uint32_t GetFlags() const
BgpAttrPtr ReplaceExtCommunityAndLocate(const BgpAttr *attr, ExtCommunityPtr extcomm)
boost::intrusive_ptr< const BgpAttr > BgpAttrPtr
void SetReplicateInfo(const BgpTable *table, const BgpRoute *rt)
PathSource GetSource() const
Inet6VpnTable(DB *db, const std::string &name)
virtual const std::string & ToString() const =0
virtual std::unique_ptr< DBEntry > AllocEntry(const DBRequestKey *key) const
virtual std::unique_ptr< DBEntry > AllocEntryStr(const std::string &key) const
BgpAttrPtr ReplaceSourceRdAndLocate(const BgpAttr *attr, const RouteDistinguisher &source_rd)
uint32_t GetLabel() const
virtual BgpServer * server()=0
void InsertPath(BgpPath *path)
virtual bool Export(RibOut *ribout, Route *route, const RibPeerSet &peerset, UpdateInfoSList &info_slist)
static DBTableBase * CreateTable(DB *db, const std::string &name)
const BgpAttr * GetOriginalAttr() const
virtual DBTablePartBase * GetTablePartition(const DBRequestKey *key)
BgpPath * FindSecondaryPath(BgpRoute *src_rt, BgpPath::PathSource src, const IPeer *peer, uint32_t path_id)
const BgpAttr * GetAttr() const
virtual size_t Hash(const DBEntry *entry) const
BgpPeer * FindNextPeer(const std::string &name=std::string())
static void RegisterFactory()
static int PartitionCount()
virtual void Add(DBEntry *entry)
static size_t HashFunction(const Inet6Prefix &addr)
void Notify(DBEntryBase *entry)
virtual BgpRoute * RouteReplicate(BgpServer *server, BgpTable *src_table, BgpRoute *src_rt, const BgpPath *path, ExtCommunityPtr ptr)
const Inet6VpnPrefix & GetPrefix() const
#define MODULE_INITIALIZER(Func)
static void RegisterFactory(const std::string &prefix, CreateFunction create_fn)