OpenSDN source code
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
mac_mobility.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_EXTENDED_COMMUNITY_MAC_MOBILITY_H_
6 #define SRC_BGP_EXTENDED_COMMUNITY_MAC_MOBILITY_H_
7 
8 #include <boost/array.hpp>
9 #include <boost/system/error_code.hpp>
10 
11 #include <string>
12 
13 #include "base/parse_object.h"
15 
16 class MacMobility {
17 public:
18  static const int kSize = 8;
19  typedef boost::array<uint8_t, kSize> bytes_type;
20 
21  explicit MacMobility(uint32_t seq, bool sticky=false);
22  explicit MacMobility(const bytes_type &data);
23 
24  uint32_t sequence_number() const;
25  bool sticky() const;
26 
27  const bytes_type &GetExtCommunity() const {
28  return data_;
29  }
30 
31  const uint64_t GetExtCommunityValue() const {
32  return get_value(data_.begin(), 8);
33  }
34 
35  std::string ToString();
36 
37 private:
39 };
40 
41 #endif // SRC_BGP_EXTENDED_COMMUNITY_MAC_MOBILITY_H_
MacMobility(uint32_t seq, bool sticky=false)
Definition: mac_mobility.cc:16
const uint64_t GetExtCommunityValue() const
Definition: mac_mobility.h:31
static const int kSize
Definition: mac_mobility.h:18
static uint64_t get_value(const uint8_t *data, int size)
Definition: parse_object.h:39
const bytes_type & GetExtCommunity() const
Definition: mac_mobility.h:27
std::string ToString()
Definition: mac_mobility.cc:43
bool sticky() const
Definition: mac_mobility.cc:28
boost::array< uint8_t, kSize > bytes_type
Definition: mac_mobility.h:19
uint32_t sequence_number() const
Definition: mac_mobility.cc:32
bytes_type data_
Definition: mac_mobility.h:38