Revised OpenFlow Library  v0.6.0dev
 All Classes Files Functions Variables Friends Groups Pages
cofmsg_table_mod.h
1 /*
2  * cofmsg_table_mod.h
3  *
4  * Created on: 18.03.2013
5  * Author: andi
6  */
7 
8 #ifndef COFMSG_TABLE_MOD_H_
9 #define COFMSG_TABLE_MOD_H_ 1
10 
11 #include "rofl/common/openflow/messages/cofmsg.h"
12 
13 namespace rofl {
14 namespace openflow {
15 
20  public cofmsg
21 {
22 private:
23 
24  union {
25  uint8_t* ofhu_table_mod;
26  struct openflow12::ofp_table_mod* ofhu12_table_mod;
27  struct openflow13::ofp_table_mod* ofhu13_table_mod;
28  } ofhu;
29 
30 #define ofh_table_mod ofhu.ofhu_table_mod
31 #define ofh12_table_mod ofhu.ofhu12_table_mod
32 #define ofh13_table_mod ofhu.ofhu13_table_mod
33 
34 public:
35 
36 
41  uint8_t of_version = 0,
42  uint32_t xid = 0,
43  uint8_t table_id = 0,
44  uint32_t config = 0);
45 
46 
51  cofmsg_table_mod const& table_mod);
52 
53 
58  operator= (
59  cofmsg_table_mod const& table_mod);
60 
61 
65  virtual
67 
68 
72  cofmsg_table_mod(cmemory *memarea);
73 
74 
78  virtual void
79  reset();
80 
81 
85  virtual uint8_t*
86  resize(size_t len);
87 
88 
92  virtual size_t
93  length() const;
94 
95 
99  virtual void
100  pack(uint8_t *buf = (uint8_t*)0, size_t buflen = 0);
101 
102 
106  virtual void
107  unpack(uint8_t *buf, size_t buflen);
108 
109 
112  virtual void
113  validate();
114 
115 
116 public:
117 
118 
122  uint8_t
123  get_table_id() const;
124 
128  void
129  set_table_id(uint8_t table_id);
130 
134  uint32_t
135  get_config() const;
136 
140  void
141  set_config(uint32_t config);
142 
143 public:
144 
145  friend std::ostream&
146  operator<< (std::ostream& os, cofmsg_table_mod const& msg) {
147  os << dynamic_cast<cofmsg const&>( msg );
148  os << indent(0) << "<cofmsg_table_mod >" << std::endl;
149  os << indent(2) << "<table-id:" << (int)msg.get_table_id() << " >" << std::endl;
150  os << indent(2) << "<config:0x" << std::hex << (int)msg.get_config() << std::dec << " >" << std::endl;
151  return os;
152  };
153 };
154 
155 } // end of namespace openflow
156 } // end of namespace rofl
157 
158 #endif /* COFMSG_TABLE_MOD_H_ */
Definition: cofmsg_table_mod.h:19
virtual void pack(uint8_t *buf=(uint8_t *) 0, size_t buflen=0)
Definition: cofmsg_table_mod.cc:114
Definition: openflow12.h:226
virtual ~cofmsg_table_mod()
Definition: cofmsg_table_mod.cc:72
virtual size_t length() const
Definition: cofmsg_table_mod.cc:96
virtual void validate()
Definition: cofmsg_table_mod.cc:153
C++ abstraction for malloc'ed memory areas.
Definition: cmemory.h:44
virtual void reset()
Definition: cofmsg_table_mod.cc:80
Definition: logging.h:76
virtual void unpack(uint8_t *buf, size_t buflen)
Definition: cofmsg_table_mod.cc:143
cofmsg_table_mod(uint8_t of_version=0, uint32_t xid=0, uint8_t table_id=0, uint32_t config=0)
Definition: cofmsg_table_mod.cc:5
Definition: openflow13.h:762
Definition: cofmsg.h:62