8 #ifndef COFMSG_FEATURES_H_
9 #define COFMSG_FEATURES_H_ 1
11 #include "rofl/common/openflow/messages/cofmsg.h"
12 #include "rofl/common/openflow/cofports.h"
13 #include "rofl/common/cauxid.h"
14 #include "rofl/common/cdpid.h"
32 uint8_t of_version = 0,
82 pack(uint8_t *buf = (uint8_t*)0,
size_t buflen = 0);
89 unpack(uint8_t *buf,
size_t buflen);
101 os << indent(0) << dynamic_cast<cofmsg const&>( msg );
102 os <<
indent(2) <<
"<cofmsg_features_request >" << std::endl;
108 std::stringstream ss;
109 ss <<
"-Features-Request- " << cofmsg::str();
126 uint8_t* ofhu_switch_features;
132 #define ofh_switch_features ofhu.ofhu_switch_features
133 #define ofh10_switch_features ofhu.ofhu10_switch_features
134 #define ofh12_switch_features ofhu.ofhu12_switch_features
135 #define ofh13_switch_features ofhu.ofhu13_switch_features
144 uint8_t of_version = 0,
147 uint32_t n_buffers = 0,
148 uint8_t n_tables = 0,
149 uint32_t capabilities = 0,
150 uint32_t of10_actions_bitmap = 0,
151 uint8_t of13_auxiliary_id = 0,
208 pack(uint8_t *buf = (uint8_t*)0,
size_t buflen = 0);
215 unpack(uint8_t *buf,
size_t buflen);
237 set_dpid(uint64_t dpid);
243 get_n_buffers()
const;
249 set_n_buffers(uint32_t n_buffers);
255 get_n_tables()
const;
261 set_n_tables(uint8_t n_tables);
273 set_auxiliary_id(uint8_t auxiliary_id);
279 get_capabilities()
const;
285 set_capabilities(uint32_t capabilities);
297 set_actions_bitmap(uint32_t actions_bitmap);
315 os << dynamic_cast<cofmsg const&>( msg );
316 os <<
indent(2) <<
"<cofmsg_features_reply ";
317 switch (msg.get_version()) {
318 case openflow10::OFP_VERSION: {
319 os <<
"dpid:" << msg.get_dpid() <<
" ";
320 os <<
"#buffers:" << (int)msg.get_n_buffers() <<
" ";
321 os <<
"#tables:" << (int)msg.get_n_tables() <<
" ";
322 os <<
"capabilities:" << std::hex << (int)msg.get_capabilities() << std::dec <<
" ";
324 os <<
" >" << std::endl;
328 case openflow12::OFP_VERSION: {
329 os <<
"dpid:" << msg.get_dpid() <<
" ";
330 os <<
"#buffers:" << (int)msg.get_n_buffers() <<
" ";
331 os <<
"#tables:" << (int)msg.get_n_tables() <<
" ";
332 os <<
"capabilities:" << std::hex << (int)msg.get_capabilities() << std::dec <<
" ";
333 os <<
" >" << std::endl;
337 case openflow13::OFP_VERSION: {
338 os <<
"dpid:" << msg.get_dpid() <<
" ";
339 os <<
"#buffers:" << (int)msg.get_n_buffers() <<
" ";
340 os <<
"#tables:" << (int)msg.get_n_tables() <<
" ";
341 os <<
"capabilities:" << std::hex << (int)msg.get_capabilities() << std::dec <<
" ";
342 os <<
" >" << std::endl;
353 std::stringstream ss;
354 ss <<
"-Features-Reply- " << cofmsg::str() <<
" ";
355 ss <<
"dpid: " <<
cdpid(get_dpid()).str() <<
", ";
357 ss <<
"#buffers: " << (int)get_n_buffers() <<
", ";
358 ss <<
"#tables: " << (int)get_n_tables() <<
" ";
Definition: openflow12.h:311
virtual void reset()
Definition: cofmsg_features.cc:68
Definition: openflow10.h:261
virtual void pack(uint8_t *buf=(uint8_t *) 0, size_t buflen=0)
Definition: cofmsg_features.cc:84
uint32_t get_actions_bitmap() const
Definition: cofmsg_features.cc:544
cofmsg_features_reply(uint8_t of_version=0, uint32_t xid=0, uint64_t dpid=0, uint32_t n_buffers=0, uint8_t n_tables=0, uint32_t capabilities=0, uint32_t of10_actions_bitmap=0, uint8_t of13_auxiliary_id=0, rofl::openflow::cofports const &ports=rofl::openflow::cofports())
Definition: cofmsg_features.cc:138
virtual void validate()
Definition: cofmsg_features.cc:110
virtual size_t length() const
Definition: cofmsg_features.cc:258
virtual void pack(uint8_t *buf=(uint8_t *) 0, size_t buflen=0)
Definition: cofmsg_features.cc:278
Definition: cofports.h:22
C++ abstraction for malloc'ed memory areas.
Definition: cmemory.h:44
Definition: cofmsg_features.h:118
virtual void reset()
Definition: cofmsg_features.cc:240
virtual void unpack(uint8_t *buf, size_t buflen)
Definition: cofmsg_features.cc:100
virtual size_t length() const
Definition: cofmsg_features.cc:76
virtual void validate()
Definition: cofmsg_features.cc:318
virtual ~cofmsg_features_reply()
Definition: cofmsg_features.cc:232
cofmsg_features_request(uint8_t of_version=0, uint32_t xid=0)
Definition: cofmsg_features.cc:5
virtual ~cofmsg_features_request()
Definition: cofmsg_features.cc:60
Definition: openflow13.h:699
uint8_t get_auxiliary_id() const
Definition: cofmsg_features.cc:476
Definition: cofmsg_features.h:22
virtual void unpack(uint8_t *buf, size_t buflen)
Definition: cofmsg_features.cc:308