OpenSDN source code
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
bgp_message_builder.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_BGP_MESSAGE_BUILDER_H_
6 #define SRC_BGP_BGP_MESSAGE_BUILDER_H_
7 
8 #include <string>
9 
10 #include "bgp/bgp_proto.h"
11 #include "bgp/message_builder.h"
12 
13 class RibOut;
14 
15 class BgpMessage : public Message {
16 public:
17  BgpMessage();
18  virtual ~BgpMessage();
19  virtual bool Start(const RibOut *ribout, bool cache_routes,
20  const RibOutAttr *roattr, const BgpRoute *route);
21  virtual bool AddRoute(const BgpRoute *route, const RibOutAttr *roattr);
22  virtual void Finish();
23  virtual const uint8_t *GetData(IPeerUpdate *peer, size_t *lenp,
24  const std::string **msg_str,
25  std::string *temp);
26 
27 private:
28  virtual void Reset();
29  bool StartReach(const RibOut *ribout, const RibOutAttr *roattr,
30  const BgpRoute *route);
31  bool StartUnreach(const BgpRoute *route);
32  bool UpdateLength(const char *tag, int size, int delta);
33 
34  const BgpTable *table_;
37  size_t datalen_;
38 
40 };
41 
43 public:
45  virtual Message *Create() const;
46  virtual ~BgpMessageBuilder(){};
47 
48 private:
50 };
51 
52 #endif // SRC_BGP_BGP_MESSAGE_BUILDER_H_
virtual Message * Create() const
uint8_t data_[BgpProto::kMaxMessageSize]
bool StartUnreach(const BgpRoute *route)
bool StartReach(const RibOut *ribout, const RibOutAttr *roattr, const BgpRoute *route)
virtual const uint8_t * GetData(IPeerUpdate *peer, size_t *lenp, const std::string **msg_str, std::string *temp)
virtual void Reset()
DISALLOW_COPY_AND_ASSIGN(BgpMessageBuilder)
DISALLOW_COPY_AND_ASSIGN(BgpMessage)
bool UpdateLength(const char *tag, int size, int delta)
const BgpTable * table_
EncodeOffsets encode_offsets_
virtual bool AddRoute(const BgpRoute *route, const RibOutAttr *roattr)
static const int kMaxMessageSize
Definition: bgp_proto.h:441
virtual ~BgpMessage()
virtual bool Start(const RibOut *ribout, bool cache_routes, const RibOutAttr *roattr, const BgpRoute *route)
virtual void Finish()