10 using boost::system::error_code;
21 size_t nlri_size = proto_prefix.
prefix.size();
29 if (nlri_size != expected_nlri_size)
34 size_t rtarget_offset = as_offset +
sizeof(
as_t);
36 copy(proto_prefix.
prefix.begin() + rtarget_offset,
37 proto_prefix.
prefix.end(), bt.begin());
54 proto_prefix->
prefix.clear();
61 proto_prefix->
prefix.resize(nlri_size);
65 size_t rtarget_offset = as_offset +
sizeof(
as_t);
77 size_t pos = str.find(
':');
78 if (pos == string::npos) {
80 *errorp = make_error_code(boost::system::errc::invalid_argument);
85 string asstr = str.substr(0, pos);
88 string rtargetstr(str, pos + 1);
89 error_code rtarget_err;
92 if (rtarget_err.failed()) {
94 *errorp = rtarget_err;
boost::array< uint8_t, kSize > bytes_type
int CompareTo(const RTargetPrefix &rhs) const
RouteTarget rtarget() const
bool stringToInteger(const std::string &str, NumberType &num)
static RTargetPrefix FromString(const std::string &str, boost::system::error_code *errorp=NULL)
static int FromProtoPrefix(const BgpProtoPrefix &proto_prefix, RTargetPrefix *prefix)
static uint64_t get_value(const uint8_t *data, int size)
boost::intrusive_ptr< const BgpAttr > BgpAttrPtr
static RouteTarget null_rtarget
static const std::string integerToString(const NumberType &num)
std::vector< uint8_t > prefix
static const std::string kDefaultPrefixString
static RouteTarget FromString(const std::string &str, boost::system::error_code *error=NULL)
void BuildProtoPrefix(BgpProtoPrefix *prefix) const
const uint64_t GetExtCommunityValue() const
std::string ToString() const
std::string ToString() const
static void put_value(uint8_t *data, int size, uint64_t value)