I run a few unpack tests of multiple OF v0x04 packets.
Most of them result in exceptions, I'll paste here the result of those tests so we can keep track of what is working or not.
Some of the exceptions are know and there are issues opened for them, others not.
############################################################
OFPT_FLOW_MOD
040e00b800000199000000000001e240...
FlowMod.match; Match.oxm_field1; 128 is not a valid OxmOfbMatchField; fmt = !B,
040e017000000012000000000001e240...
FlowMod.match; Match.oxm_field1; 128 is not a valid OxmOfbMatchField; fmt = !B,
040e006000000076000000000001e240...
FlowMod.match; Match.oxm_field1; 128 is not a valid OxmOfbMatchField; fmt = !B,
############################################################
OFPT_ECHO_REQUEST
040200080000019a
<pyof.v0x04.symmetric.echo_request.EchoRequest object at 0x7f410a7be358>
0402000800000160
<pyof.v0x04.symmetric.echo_request.EchoRequest object at 0x7f410a7be5f8>
040200080000004d
<pyof.v0x04.symmetric.echo_request.EchoRequest object at 0x7f410a7be8d0>
040200150000004e0001020304050607...
<pyof.v0x04.symmetric.echo_request.EchoRequest object at 0x7f410a7beba8>
0402000800000042
<pyof.v0x04.symmetric.echo_request.EchoRequest object at 0x7f410a7bee80>
040200080000002e
<pyof.v0x04.symmetric.echo_request.EchoRequest object at 0x7f410a7bd198>
04020008000000a6
<pyof.v0x04.symmetric.echo_request.EchoRequest object at 0x7f410a7bd470>
0402000800000100
<pyof.v0x04.symmetric.echo_request.EchoRequest object at 0x7f410a7bd748>
0402000800000148
<pyof.v0x04.symmetric.echo_request.EchoRequest object at 0x7f410a7bda20>
040200080000002a
<pyof.v0x04.symmetric.echo_request.EchoRequest object at 0x7f410a7bdcf8>
040200080000000d
<pyof.v0x04.symmetric.echo_request.EchoRequest object at 0x7f410a7bdfd0>
040200080000006d
<pyof.v0x04.symmetric.echo_request.EchoRequest object at 0x7f410a7bf2e8>
040200080000007d
<pyof.v0x04.symmetric.echo_request.EchoRequest object at 0x7f410a7bf5c0>
0402000800000165
<pyof.v0x04.symmetric.echo_request.EchoRequest object at 0x7f410a7bf898>
############################################################
OFPT_ECHO_REPLY
040300080000019a
<pyof.v0x04.symmetric.echo_reply.EchoReply object at 0x7f410a7bfb70>
0403000800000160
<pyof.v0x04.symmetric.echo_reply.EchoReply object at 0x7f410a7bfe48>
040300080000004d
<pyof.v0x04.symmetric.echo_reply.EchoReply object at 0x7f410a7c0160>
040300150000004e0001020304050607...
<pyof.v0x04.symmetric.echo_reply.EchoReply object at 0x7f410a7c0438>
0403000800000042
<pyof.v0x04.symmetric.echo_reply.EchoReply object at 0x7f410a7c0710>
040300080000002e
<pyof.v0x04.symmetric.echo_reply.EchoReply object at 0x7f410a7c09e8>
04030008000000a6
<pyof.v0x04.symmetric.echo_reply.EchoReply object at 0x7f410a7c0cc0>
0403000800000100
<pyof.v0x04.symmetric.echo_reply.EchoReply object at 0x7f410a7c0f98>
0403000800000148
<pyof.v0x04.symmetric.echo_reply.EchoReply object at 0x7f410a7c12b0>
040300080000002a
<pyof.v0x04.symmetric.echo_reply.EchoReply object at 0x7f410a7c1588>
040300080000000d
<pyof.v0x04.symmetric.echo_reply.EchoReply object at 0x7f410a7c1860>
040300080000006d
<pyof.v0x04.symmetric.echo_reply.EchoReply object at 0x7f410a7c1b38>
040300080000007d
<pyof.v0x04.symmetric.echo_reply.EchoReply object at 0x7f410a7c1e10>
0403000800000165
<pyof.v0x04.symmetric.echo_reply.EchoReply object at 0x7f410a7c2128>
############################################################
OFPT_ERROR
0401017c0000001200020002040e0170...
Method not yet implemented: 'Unpack' method not implemented on ErrorMsg class
040100840000008a00060001040f0078...
Method not yet implemented: 'Unpack' method not implemented on ErrorMsg class
04010062c4420f260000000057652073...
Method not yet implemented: 'Unpack' method not implemented on ErrorMsg class
0401001c000000410001000604040010...
Method not yet implemented: 'Unpack' method not implemented on ErrorMsg class
0401002d000000430001000604040021...
Method not yet implemented: 'Unpack' method not implemented on ErrorMsg class
############################################################
OFPT_GROUP_MOD
040f00780000008a0001030000001388...
GroupMod.buckets; Bucket.actions; ActionHeader.action_type; 40 is not a valid Ac
############################################################
OFPT_HELLO
0400000883ea7e23
<pyof.v0x04.symmetric.hello.Hello object at 0x7f410a7c37f0>
040000080000015f
<pyof.v0x04.symmetric.hello.Hello object at 0x7f410a7c3978>
04000010000001610001000800000015
Hello.elements; HelloElemHeader.element_type; 0 is not a valid HelloElemType; fm
############################################################
OFPT_EXPERIMENTER
040400100000004100d0f0db00000065
<pyof.v0x04.symmetric.experimenter.ExperimenterHeader object at 0x7f410a7c4400>
040400210000004300d0f0db00000065...
<pyof.v0x04.symmetric.experimenter.ExperimenterHeader object at 0x7f410a7c4fd0>
############################################################
OFPT_FEATURES_REQUEST
040500080000008e
<pyof.v0x04.controller2switch.features_request.FeaturesRequest object at 0x7f410
############################################################
OFPT_FEATURES_REPLY
040600200000008e000026a2b46fd9ba...
<pyof.v0x04.controller2switch.features_reply.FeaturesReply object at 0x7f410a7c5
############################################################
OFPT_SET_CONFIG
0409000c0000002f000200c8
<pyof.v0x04.controller2switch.set_config.SetConfig object at 0x7f410a7c5c50>
############################################################
OFPT_GET_CONFIG_REQUEST
0407000800000030
<pyof.v0x04.controller2switch.get_config_request.GetConfigRequest object at 0x7f
############################################################
OFPT_GET_CONFIG_REPLY
0408000c00000030000100c8
<pyof.v0x04.controller2switch.get_config_reply.GetConfigReply object at 0x7f410a
############################################################
OFPT_PACKET_OUT
040d0064000000a7ffffffff00000001...
1 is not a valid PortNo; fmt = !I, buff = b'\xff\xff\xff\xff\x00\x00\x00\x01\x00
040d0064000000a8ffffffff00000001...
1 is not a valid PortNo; fmt = !I, buff = b'\xff\xff\xff\xff\x00\x00\x00\x01\x00
############################################################
OFPT_PACKET_IN
040a009a0000000000000004003c0100...
PacketIn.match; Match.oxm_field1; 128 is not a valid OxmOfbMatchField; fmt = !B,
040a00b60000000000000005003c0100...
PacketIn.match; Match.oxm_field1; 128 is not a valid OxmOfbMatchField; fmt = !B,
############################################################
OFPT_FLOW_REMOVED
040b004000000000000000000001e240...
FlowRemoved.match; Match.oxm_field1; 128 is not a valid OxmOfbMatchField; fmt =
############################################################
OFPT_PORT_STATUS
040c0050000000000000000000000000...
<pyof.v0x04.asynchronous.port_status.PortStatus object at 0x7f410a7c7b70>
040c0050000000000200000000000000...
<pyof.v0x04.asynchronous.port_status.PortStatus object at 0x7f410a7c8e48>
############################################################
OFPT_MULTIPART_REQUEST
041200100000004f0000000000000000
MultipartRequest.flags; 0 is not a valid MultipartRequestFlags; fmt = !H, buff =
04120040000000760001000000000000...
MultipartRequest.flags; 0 is not a valid MultipartRequestFlags; fmt = !H, buff =
04120040000000770002000000000000...
MultipartRequest.flags; 0 is not a valid MultipartRequestFlags; fmt = !H, buff =
04120010000000ed0003000000000000
MultipartRequest.flags; 0 is not a valid MultipartRequestFlags; fmt = !H, buff =
04120018000000ff0004000000000000...
MultipartRequest.flags; 0 is not a valid MultipartRequestFlags; fmt = !H, buff =
04120018000001470005000000000000...
MultipartRequest.flags; 0 is not a valid MultipartRequestFlags; fmt = !H, buff =
041200180000001f0006000000000000...
MultipartRequest.flags; 0 is not a valid MultipartRequestFlags; fmt = !H, buff =
04120010000000200007000000000000
MultipartRequest.flags; 0 is not a valid MultipartRequestFlags; fmt = !H, buff =
04120010000000210008000000000000
MultipartRequest.flags; 0 is not a valid MultipartRequestFlags; fmt = !H, buff =
04120018000000280009000000000000...
MultipartRequest.flags; 0 is not a valid MultipartRequestFlags; fmt = !H, buff =
0412001800000029000a000000000000...
MultipartRequest.flags; 0 is not a valid MultipartRequestFlags; fmt = !H, buff =
041200100000002b000b000000000000
MultipartRequest.flags; 0 is not a valid MultipartRequestFlags; fmt = !H, buff =
041200100000000e000c000000000000
MultipartRequest.flags; 0 is not a valid MultipartRequestFlags; fmt = !H, buff =
041200100000000d000d000000000000
MultipartRequest.flags; 0 is not a valid MultipartRequestFlags; fmt = !H, buff =
############################################################
OFPT_MULTIPART_REPLY
041304300000004f0000000000000000...
MultipartReply.flags; 0 is not a valid MultipartReplyFlags; fmt = !H, buff = b'\
041300b8000000760001000000000000...
MultipartReply.flags; 0 is not a valid MultipartReplyFlags; fmt = !H, buff = b'\
04130028000000770002000000000000...
MultipartReply.flags; 0 is not a valid MultipartReplyFlags; fmt = !H, buff = b'\
04130610000000ed0003000000000000...
MultipartReply.flags; 0 is not a valid MultipartReplyFlags; fmt = !H, buff = b'\
04130240000000ff0004000000000000...
MultipartReply.flags; 0 is not a valid MultipartReplyFlags; fmt = !H, buff = b'\
041300b0000001470005000000000000...
MultipartReply.flags; 0 is not a valid MultipartReplyFlags; fmt = !H, buff = b'\
041300c80000001f0006000000000000...
MultipartReply.flags; 0 is not a valid MultipartReplyFlags; fmt = !H, buff = b'\
04130098000000200007000000000000...
MultipartReply.flags; 0 is not a valid MultipartReplyFlags; fmt = !H, buff = b'\
04130038000000210008000000000000...
MultipartReply.flags; 0 is not a valid MultipartReplyFlags; fmt = !H, buff = b'\
04130090000000280009000000000000...
MultipartReply.flags; 0 is not a valid MultipartReplyFlags; fmt = !H, buff = b'\
0413005000000029000a000000000000...
MultipartReply.flags; 0 is not a valid MultipartReplyFlags; fmt = !H, buff = b'\
041300200000002b000b000000000000...
MultipartReply.flags; 0 is not a valid MultipartReplyFlags; fmt = !H, buff = b'\
04132e100000000e000c000100000000...
'NoneType' object is not callable
04132e100000000e000c000100000000...
'NoneType' object is not callable
04132e100000000e000c000100000000...
'NoneType' object is not callable
04132e100000000e000c000100000000...
'NoneType' object is not callable
04132e100000000e000c000100000000...
'NoneType' object is not callable
04132e100000000e000c000100000000...
'NoneType' object is not callable
04132e100000000e000c000100000000...
'NoneType' object is not callable
04132e100000000e000c000000000000...
MultipartReply.flags; 0 is not a valid MultipartReplyFlags; fmt = !H, buff = b'\
041301500000000d000d000000000000...
MultipartReply.flags; 0 is not a valid MultipartReplyFlags; fmt = !H, buff = b'\
############################################################
OFPT_TABLE_MOD
041100100000006e0100000000000000
<pyof.v0x04.controller2switch.table_mod.TableMod object at 0x7f410a7d1cf8>
############################################################
OFPT_PORT_MOD
04100028000000d40000000100000000...
<pyof.v0x04.controller2switch.port_mod.PortMod object at 0x7f410a7c9780>
############################################################
OFPT_BARRIER_REQUEST
04140008000000ed
<pyof.v0x04.controller2switch.barrier_request.BarrierRequest object at 0x7f410a7
############################################################
OFPT_BARRIER_REPLY
04150008000000ed
<pyof.v0x04.controller2switch.barrier_reply.BarrierReply object at 0x7f410a7d21d
############################################################
OFPT_QUEUE_GET_CONFIG_REQUEST
041600100000007e0000000100000000
QueueGetConfigRequest.port; 1 is not a valid PortNo; fmt = !I, buff = b'\x00\x00
############################################################
OFPT_QUEUE_GET_CONFIG_REPLY
041700500000007e0000000100000000...
QueueGetConfigReply.port; 1 is not a valid PortNo; fmt = !I, buff = b'\x00\x00\x
############################################################
OFPT_ROLE_REQUEST
041800180000012f0000000200000000...
<pyof.v0x04.controller2switch.role_request.RoleRequest object at 0x7f410a7d2c88>
############################################################
OFPT_ROLE_REPLY
041900180000012f0000000200000000...
<pyof.v0x04.controller2switch.role_reply.RoleReply object at 0x7f410a7d3080>
############################################################
OFPT_SET_ASYNC
041c0020000001660000000300000002...
SetAsync.packet_in_mask1; 3 is not a valid PacketInReason; fmt = !I, buff = b'\x
############################################################
OFPT_GET_ASYNC_REQUEST
041a000800000167
<pyof.v0x04.controller2switch.get_async_request.GetAsyncRequest object at 0x7f41
############################################################
OFPT_GET_ASYNC_REPLY
041b0020000001670000000300000002...
GetAsyncReply.packet_in_mask1; 3 is not a valid PacketInReason; fmt = !I, buff =
############################################################
OFPT_METER_MOD
041d003000000010000000090000000a...
<pyof.v0x04.controller2switch.meter_mod.MeterMod object at 0x7f410a7d3d68>
Original issue opened by @erickvermot at https://github.com/kytos/python-openflow/issues/429.
I run a few unpack tests of multiple OF v0x04 packets. Most of them result in exceptions, I'll paste here the result of those tests so we can keep track of what is working or not. Some of the exceptions are know and there are issues opened for them, others not.