OpenSDN source code
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
rtarget_route.h
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2013 Juniper Networks, Inc. All rights reserved.
3  */
4 
5 #ifndef SRC_BGP_RTARGET_RTARGET_ROUTE_H_
6 #define SRC_BGP_RTARGET_RTARGET_ROUTE_H_
7 
8 #include <string>
9 #include <vector>
10 
11 #include "base/util.h"
12 #include "bgp/bgp_route.h"
15 #include "net/bgp_af.h"
16 
17 class BgpAttr;
18 class BgpProtoPrefix;
19 
20 class RTargetRoute : public BgpRoute {
21 public:
22  explicit RTargetRoute(const RTargetPrefix &prefix);
23  virtual int CompareTo(const Route &rhs) const;
24 
25  virtual std::string ToString() const;
26 
27  const RTargetPrefix &GetPrefix() const {
28  return prefix_;
29  }
30 
31  virtual KeyPtr GetDBRequestKey() const;
32  virtual void SetKey(const DBRequestKey *reqkey);
33  virtual void BuildProtoPrefix(BgpProtoPrefix *prefix,
34  const BgpAttr *attr = NULL,
35  uint32_t label = 0,
36  uint32_t l3_label = 0) const;
37  virtual void BuildBgpProtoNextHop(std::vector<uint8_t> &nh,
38  IpAddress nexthop) const;
39 
40  virtual bool IsLess(const DBEntry &genrhs) const {
41  const RTargetRoute &rhs = static_cast<const RTargetRoute &>(genrhs);
42  int cmp = CompareTo(rhs);
43  return (cmp < 0);
44  }
45 
46 private:
49 };
50 
51 #endif // SRC_BGP_RTARGET_RTARGET_ROUTE_H_
virtual void SetKey(const DBRequestKey *reqkey)
boost::asio::ip::address IpAddress
Definition: address.h:13
Definition: route.h:14
virtual int CompareTo(const Route &rhs) const
virtual void BuildProtoPrefix(BgpProtoPrefix *prefix, const BgpAttr *attr=NULL, uint32_t label=0, uint32_t l3_label=0) const
virtual bool IsLess(const DBEntry &genrhs) const
Definition: rtarget_route.h:40
std::unique_ptr< DBRequestKey > KeyPtr
Definition: db_entry.h:25
const RTargetPrefix & GetPrefix() const
Definition: rtarget_route.h:27
DISALLOW_COPY_AND_ASSIGN(RTargetRoute)
RTargetPrefix prefix_
Definition: rtarget_route.h:47
virtual std::string ToString() const
RTargetRoute(const RTargetPrefix &prefix)
virtual void BuildBgpProtoNextHop(std::vector< uint8_t > &nh, IpAddress nexthop) const
virtual KeyPtr GetDBRequestKey() const