of1.3: fix OFP_OXM_EXPERIMENTER_HEADER_SIZE assert

File "/Users/fujita/git/ryu/ryu/ofproto/ofproto_v1_3.py", line 233, in <module>
  OFP_OXM_EXPERIMENTER_HEADER_SIZE) == OFP_OXM_EXPERIMENTER_HEADER_SIZE

Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
of1.3: fix OFP_TABLE_MOD_PACK_STR assert

File "/Users/fujita/git/ryu/ryu/ofproto/ofproto_v1_3.py", line 383, in <module>
  assert (calcsize(OFP_TABLE_MOD_PACK_STR + OFP_HEADER_SIZE) ==
TypeError: cannot concatenate 'str' and 'int' objects

Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
of1.3: fix OFP_METER_BAND_DSCP_REMARK_PACK_STR assert

File "/Users/fujita/git/ryu/ryu/ofproto/ofproto_v1_3.py", line 480, in <module>
  OFP_METER_BAND_DSCP_REMARK_SIZE)
AssertionError

Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
of1.3: fix OFP_DESC_PACK_STR

File "/Users/fujita/git/ryu/ryu/ofproto/ofproto_v1_3.py", line 533, in <module>
  DESC_STR_LEN + 'c'
TypeError: cannot concatenate 'str' and 'int' objects

Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
of1.3: fix OFPMP_AGGREGATE

File "/Users/fujita/git/ryu/ryu/ofproto/ofproto_v1_3_parser.py", line 898, in <module>
  @_set_stats_type(ofproto_v1_3.OFPST_AGGREGATE, OFPAggregateStats)
AttributeError: 'module' object has no attribute 'OFPST_AGGREGATE'

Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
of1.3: fix OFPPortStatsReply

File "/Users/fujita/git/ryu/ryu/ofproto/ofproto_v1_3_parser.py", line 976, in <module>
  @_set_msg_type(ofproto_v1_3.OFPT_STATS_REPLY)
AttributeError: 'module' object has no attribute 'OFPT_STATS_REPLY'

Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
of1.3: fix OFPMeterConfigStatsReply

File "/Users/fujita/git/ryu/ryu/ofproto/ofproto_v1_3_parser.py", line 1246, in <module>
  @_set_stats_type(ofproto_v1_3.OFPMP_METER_CONFIG, OFPMeterCOnfigStats)
NameError: name 'OFPMeterCOnfigStats' is not defined

Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
of1.3: fix OFPMeterFeaturesStatsRequest

File "/Users/fujita/git/ryu/ryu/ofproto/ofproto_v1_3_parser.py", line 1265, in <module>
  @_set_stats_type(ofproto_v1_3.OFPMP_METER_FEATUERS, OFPMeterFeaturesStats)
AttributeError: 'module' object has no attribute 'OFPMP_METER_FEATUERS'

Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
of1.3: fix OFPQueueProp

File "/Users/fujita/git/ryu/ryu/ofproto/ofproto_v1_3_parser.py", line 1398, in register_queue_property
  return _register_queue_property
NameError: global name '_register_queue_property' is not defined

Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
of1.3: fix OFPSetAsyn

File "/Users/fujita/git/ryu/ryu/ofproto/ofproto_v1_3_parser.py", line 1555, in <module>
  @_set_msg_type(ofproto_v1_3.OFPT_SET_ASYNC)
AttributeError: 'module' object has no attribute 'OFPT_SET_ASYNC'

Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
of1.3: fix OFPPacketQueue

  File "/Users/fujita/git/ryu/ryu/ofproto/ofproto_v1_3_parser.py", line 2649, in OFPPacketQueue
    @clasmethod
NameError: name 'clasmethod' is not defined

Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
Add workaround to switch_features_handler for OF1.3

hacky workaround, will be removed. OF1.3 doesn't have ports. An
application should not depend on them. But there might be such bad
applications so let's keep this workaround for while.

Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
of1.3: support OFPMatch

Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
of1.3: fix OFPMP_FLOW

FlowStats works now.

Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
enable OF1.3 support

Ryu sucessfully connects to CPqD OF1.3 switch.

https://github.com/CPqD/ofsoftswitch13

Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>