15 using std::unique_ptr;
132 for (ExtCommunity::ExtCommunityList::const_iterator it = v.begin();
133 it != v.end(); ++it) {
134 uint64_t value =
get_value(it->data(), it->size());
144 for (OriginVnPath::OriginVnList::const_iterator it = v.begin();
145 it != v.end(); ++it) {
146 uint64_t value =
get_value(it->data(), it->size());
158 std::vector<uint8_t> nh;
170 nlri->
nlri.push_back(prefix);
176 "Error encoding reach message for route " << route->
ToString() <<
198 nlri->
nlri.push_back(prefix);
204 "Error encoding unreach message for route " << route->
ToString() <<
247 size_t size =
sizeof(
data_) - datalen_;
260 nlri.
nlri.push_back(prefix);
296 const string **msg_str,
string *temp) {
const Community * community() const
std::vector< OriginVnValue > OriginVnList
const ClusterListSpec & cluster_list() const
std::vector< BgpProtoPrefix * > nlri
uint32_t local_pref() const
const IpAddress & nexthop() const
const BgpAttr * attr() const
const AsPathSpec & path() const
const EdgeForwardingSpec & edge_forwarding() const
bool as4_supported() const
virtual Message * Create() const
virtual void BuildProtoPrefix(BgpProtoPrefix *prefix, const BgpAttr *attr=NULL, uint32_t label=0, uint32_t l3_label=0) const
BgpProto::BgpPeerType peer_type() const
int FindOffset(const char *)
uint8_t data_[BgpProto::kMaxMessageSize]
const OriginVnPath * origin_vn_path() const
bool StartUnreach(const BgpRoute *route)
const Ip4Address & originator_id() const
const IpAddress & aggregator_adderess() const
uint64_t num_unreach_route_
bool StartReach(const RibOut *ribout, const RibOutAttr *roattr, const BgpRoute *route)
virtual Address::Family family() const =0
static uint64_t get_value(const uint8_t *data, int size)
virtual const uint8_t * GetData(IPeerUpdate *peer, size_t *lenp, const std::string **msg_str, std::string *temp)
static Safi FamilyToSafi(Address::Family family)
const AsPath4Byte * aspath_4byte() const
static int Encode(const BgpMessage *msg, uint8_t *data, size_t size, EncodeOffsets *offsets=NULL, bool as4=false)
const ClusterList * cluster_list() const
virtual void BuildBgpProtoNextHop(std::vector< uint8_t > &nh, IpAddress nexthop) const
uint64_t num_reach_route_
bool UpdateLength(const char *tag, int size, int delta)
virtual std::string ToString() const =0
const std::string & name() const
as_t aggregator_as_num() const
std::vector< uint64_t > origin_vns
const EdgeDiscoverySpec & edge_discovery() const
uint32_t l3_label() const
const As4Path * as4_path() const
EncodeOffsets encode_offsets_
#define BGP_LOG_WARNING_STR(obj, flags, arg)
const AsPath * as_path() const
virtual bool AddRoute(const BgpRoute *route, const RibOutAttr *roattr)
static Afi FamilyToAfi(Address::Family family)
const ExtCommunity * ext_community() const
const OriginVnList & origin_vns() const
const AsPath4ByteSpec & path() const
BgpAttrOrigin::OriginType origin() const
virtual bool Start(const RibOut *ribout, bool cache_routes, const RibOutAttr *roattr, const BgpRoute *route)
const PmsiTunnelSpec & pmsi_tunnel() const
const EdgeForwarding * edge_forwarding() const
const As4PathSpec & path() const
const EdgeDiscovery * edge_discovery() const
const PmsiTunnel * pmsi_tunnel() const
bool atomic_aggregate() const
void increment_message_build_error() const
std::vector< BgpAttribute * > path_attributes
static void put_value(uint8_t *data, int size, uint64_t value)