5 #ifndef SRC_BGP_BGP_RIBOUT_H_
6 #define SRC_BGP_BGP_RIBOUT_H_
8 #include <boost/scoped_ptr.hpp>
9 #include <boost/intrusive/slist.hpp>
26 class ShowRibOutStatistics;
99 set_attr(table, attrp, 0, 0,
false,
false);
128 repr_.append(
repr, pos, std::string::npos);
191 typedef boost::intrusive::member_hook<
193 boost::intrusive::slist_member_hook<>,
196 typedef boost::intrusive::slist<
199 boost::intrusive::linear<true>
boost::asio::ip::address IpAddress
boost::asio::ip::address_v4 Ip4Address
boost::intrusive_ptr< const BgpAttr > BgpAttrPtr
boost::intrusive::slist< AdvertiseInfo, Node, boost::intrusive::linear< true > > List
void swap(AdvertiseSList &adv_slist)
boost::intrusive::member_hook< AdvertiseInfo, boost::intrusive::slist_member_hook<>, &AdvertiseInfo::slist_node > Node
const List * operator->() const
const List & list() const
size_t find_first() const
size_t find_next(size_t pos) const
bool operator<(const NextHop &rhs) const
int CompareTo(const NextHop &rhs) const
bool operator==(const NextHop &rhs) const
uint32_t l3_label() const
std::vector< std::string > encap_
bool operator!=(const NextHop &rhs) const
std::vector< std::string > encap() const
std::vector< int > tag_list() const
NextHop(const BgpTable *table, IpAddress address, const MacAddress &mac, uint32_t label, uint32_t l3_label, const ExtCommunity *ext_community, bool vrf_originated)
const MacAddress & mac() const
int origin_vn_index() const
const IpAddress address() const
Ip4Address source_address_
const Ip4Address & source_address() const
std::vector< int > tag_list_
int CompareTo(const RibOutAttr &rhs) const
void set_source_address(Ip4Address source_address)
const BgpAttr * attr() const
Ip4Address source_address_
const Ip4Address & source_address() const
bool vrf_originated() const
void set_attr(const BgpTable *table, const BgpAttrPtr &attrp, uint32_t label)
RibOutAttr & operator=(const RibOutAttr &rhs)
uint32_t l3_label() const
std::vector< NextHop > NextHopList
const NextHopList & nexthop_list() const
bool operator==(const RibOutAttr &rhs) const
void set_repr(const std::string &repr, size_t pos=0) const
bool operator!=(const RibOutAttr &rhs) const
Ip4Address * source_address()
const std::string & repr() const
void set_attr(const BgpTable *table, const BgpAttrPtr &attrp)
NextHopList nexthop_list_
PeerIterator(const RibOut *ribout, const RibPeerSet &peer_set)
const RibPeerSet & peer_set_
bool IsEncodingBgp() const
void set_as4_supported(bool as4)
void Register(IPeerUpdate *peer)
RibOutUpdates * updates(int idx)
BgpProto::BgpPeerType peer_type() const
const RibExportPolicy & ExportPolicy() const
const RibPeerSet & PeerSet() const
uint32_t cluster_id() const
int RouteAdvertiseCount(const BgpRoute *rt) const
void GetSubsetPeerSet(RibPeerSet *peerset, const IPeerUpdate *cpeer) const
BgpUpdateSender * sender()
const BgpTable * table() const
void FillStatisticsInfo(std::vector< ShowRibOutStatistics > *sros_list) const
uint32_t GetQueueSize() const
IPeerUpdate * GetPeer(int index) const
int GetPeerIndex(IPeerUpdate *peer) const
bool remove_private_peer_loop_check() const
bool IsActive(IPeerUpdate *peer) const
bool as4_supported() const
IndexMap< IPeerUpdate *, PeerState, RibPeerSet > PeerStateMap
const RibOutUpdates * updates(int idx) const
RibPeerSet active_peerset_
DISALLOW_COPY_AND_ASSIGN(RibOut)
const std::string & ToString() const
bool remove_private_all() const
void Unregister(IPeerUpdate *peer)
const IpAddress & nexthop() const
std::string EncodingString() const
bool IsRegistered(IPeerUpdate *peer)
boost::scoped_ptr< BgpExport > bgp_export_
bool remove_private_replace() const
DBTableBase::ListenerId listener_id() const
std::vector< RibOutUpdates * > updates_
bool IsEncodingXmpp() const
void BuildSendReadyBitSet(const RibPeerSet &peerset, RibPeerSet *mready) const
RibOut(BgpTable *table, BgpUpdateSender *sender, const RibExportPolicy &policy)
void Deactivate(IPeerUpdate *peer)
BgpUpdateSender * sender_
bool remove_private_enabled() const
AdvertiseSList advertised_
DISALLOW_COPY_AND_ASSIGN(RouteState)
void SwapHistory(AdvertiseSList &history)
bool CompareUpdateInfo(const UpdateInfoSList &uinfo_slist) const
AdvertiseSList & Advertised()
void SetHistory(AdvertiseSList &history)
const AdvertiseInfo * FindHistory(const RibOutAttr &roattr) const
const AdvertiseSList & Advertised() const
void MoveHistory(RouteUpdate *rt_update)
void operator()(AdvertiseInfo *ainfo)
boost::intrusive::slist_member_hook slist_node
AdvertiseInfo(const RibOutAttr *roattr)
AdvertiseInfo(const AdvertiseInfo &rhs)
BgpProto::BgpPeerType type
RemovePrivatePolicy remove_private
PeerState(IPeerUpdate *key)