5 #ifndef SRC_BGP_EVPN_EVPN_ROUTE_H_
6 #define SRC_BGP_EVPN_EVPN_ROUTE_H_
8 #include <boost/system/error_code.hpp>
76 const BgpAttr *attr, uint32_t label, uint32_t l3_label = 0)
const;
81 BgpAttrPtr *new_attr, uint32_t *label, uint32_t *l3_label = NULL);
83 boost::system::error_code *errorp = NULL);
140 size_t ip_offset,
size_t ip_size,
size_t ip_psize);
142 size_t ip_offset,
size_t ip_size);
144 size_t ip_offset,
size_t ip_size);
149 size_t pos1,
size_t *pos2, boost::system::error_code *errorp);
151 size_t pos1,
size_t *pos2, boost::system::error_code *errorp);
158 virtual std::string
ToString()
const;
168 const BgpAttr *attr = NULL, uint32_t label = 0,
169 uint32_t l3_label = 0)
const;
186 #endif // SRC_BGP_EVPN_EVPN_ROUTE_H_
EvpnRoute(const EvpnPrefix &prefix)
static const size_t kLabelSize
const MacAddress & mac_addr() const
virtual KeyPtr GetDBRequestKey() const
void WriteGroup(BgpProtoPrefix *proto_prefix, size_t ip_offset) const
virtual int CompareTo(const Route &rhs) const
static const size_t kMacSize
boost::asio::ip::address IpAddress
bool operator==(const EvpnPrefix &rhs) const
const IpAddress & addr() const
bool operator<(const EvpnPrefix &rhs) const
static const size_t kIp6AddrSize
void WriteIpAddress(BgpProtoPrefix *proto_prefix, size_t ip_offset) const
static const uint32_t kInvalidLabel
std::string ToXmppIdString() const
void WriteSource(BgpProtoPrefix *proto_prefix, size_t ip_offset) const
static const EvpnPrefix kNullPrefix
static const size_t kMinInclusiveMulticastRouteSize
void BuildProtoPrefix(BgpProtoPrefix *proto_prefix, const BgpAttr *attr, uint32_t label, uint32_t l3_label=0) const
static const size_t kMinSegmentRouteSize
std::unique_ptr< DBRequestKey > KeyPtr
static const size_t kMinInet6PrefixRouteSize
static const size_t kMinInetPrefixRouteSize
static const size_t kMinMacAdvertisementRouteSize
uint8_t prefixlen() const
static const uint32_t kMaxVni
boost::intrusive_ptr< const BgpAttr > BgpAttrPtr
virtual void BuildProtoPrefix(BgpProtoPrefix *proto_prefix, const BgpAttr *attr=NULL, uint32_t label=0, uint32_t l3_label=0) const
void ReadSource(const BgpProtoPrefix &proto_prefix, size_t ip_offset, size_t ip_size)
static bool GetGroupFromString(EvpnPrefix *prefix, const std::string &str, size_t pos1, size_t *pos2, boost::system::error_code *errorp)
const Ip4Address ip4_addr() const
static const size_t kIp4AddrSize
Inet6Prefix inet6_prefix() const
static const size_t kMinAutoDiscoveryRouteSize
static const size_t kRdSize
boost::asio::ip::address_v6 Ip6Address
static const uint32_t kMaxTag
Ip4Prefix inet_prefix() const
static const size_t kMinSelectiveMulticastRouteSize
virtual bool IsLess(const DBEntry &genrhs) const
virtual std::string ToXmppIdString() const
void ReadGroup(const BgpProtoPrefix &proto_prefix, size_t ip_offset, size_t ip_size)
static const size_t kTagSize
DISALLOW_COPY_AND_ASSIGN(EvpnRoute)
uint8_t ip_address_length() const
int CompareTo(const EvpnPrefix &rhs) const
std::string ToString() const
static const int32_t kMaxVniSigned
virtual void BuildBgpProtoNextHop(std::vector< uint8_t > &nh, IpAddress nexthop) const
static const size_t kEsiSize
boost::asio::ip::address_v4 Ip4Address
void ReadIpAddress(const BgpProtoPrefix &proto_prefix, size_t ip_offset, size_t ip_size, size_t ip_psize)
bool operator>(const EvpnPrefix &rhs) const
const EvpnPrefix & GetPrefix() const
static EvpnPrefix FromString(const std::string &str, boost::system::error_code *errorp=NULL)
const EthernetSegmentId & esi() const
IpAddress ip_address() const
bool operator!=(const EvpnPrefix &rhs) const
size_t GetIpAddressSize() const
bool IsMoreSpecific(const EvpnPrefix &rhs) const
virtual void SetKey(const DBRequestKey *reqkey)
const RouteDistinguisher & route_distinguisher() const
static bool GetSourceFromString(EvpnPrefix *prefix, const std::string &str, size_t pos1, size_t *pos2, boost::system::error_code *errorp)
static int FromProtoPrefix(BgpServer *server, const BgpProtoPrefix &proto_prefix, const BgpAttr *attr, const Address::Family family, EvpnPrefix *evpn_prefix, BgpAttrPtr *new_attr, uint32_t *label, uint32_t *l3_label=NULL)
const Ip6Address ip6_addr() const
void set_route_distinguisher(const RouteDistinguisher &rd)
static const uint32_t kNullTag
Address::Family family() const
virtual bool IsValid() const
virtual std::string ToString() const