move and check in OpenFlow protocol modules
Move all the protocol code out of the oftest package and into a of10 package to
prepare for supporting more OpenFlow versions.
The generated code is now checked-in to make it simpler to use OFTest.
Backwards compatibility with out of tree tests is maintained by aliasing the
old module names. The basic test module has been changed to use the new API.
diff --git a/src/python/of10/class_maps.py b/src/python/of10/class_maps.py
new file mode 100644
index 0000000..19600e6
--- /dev/null
+++ b/src/python/of10/class_maps.py
@@ -0,0 +1,249 @@
+
+# Class to array member map
+class_to_members_map = {
+ 'ofp_phy_port' : [
+ 'port_no',
+ 'hw_addr',
+ 'name',
+ 'config',
+ 'state',
+ 'curr',
+ 'advertised',
+ 'supported',
+ 'peer'
+ ],
+ 'ofp_aggregate_stats_reply' : [
+ 'packet_count',
+ 'byte_count',
+ 'flow_count'
+ ],
+ 'ofp_table_stats' : [
+ 'table_id',
+ 'name',
+ 'wildcards',
+ 'max_entries',
+ 'active_count',
+ 'lookup_count',
+ 'matched_count'
+ ],
+ 'ofp_flow_removed' : [
+ 'match',
+ 'cookie',
+ 'priority',
+ 'reason',
+ 'duration_sec',
+ 'duration_nsec',
+ 'idle_timeout',
+ 'packet_count',
+ 'byte_count'
+ ],
+ 'ofp_port_stats' : [
+ 'port_no',
+ 'rx_packets',
+ 'tx_packets',
+ 'rx_bytes',
+ 'tx_bytes',
+ 'rx_dropped',
+ 'tx_dropped',
+ 'rx_errors',
+ 'tx_errors',
+ 'rx_frame_err',
+ 'rx_over_err',
+ 'rx_crc_err',
+ 'collisions'
+ ],
+ 'ofp_queue_stats' : [
+ 'port_no',
+ 'queue_id',
+ 'tx_bytes',
+ 'tx_packets',
+ 'tx_errors'
+ ],
+ 'ofp_action_tp_port' : [
+ 'type',
+ 'len',
+ 'tp_port'
+ ],
+ 'ofp_port_stats_request' : [
+ 'port_no'
+ ],
+ 'ofp_stats_request' : [
+ 'type',
+ 'flags'
+ ],
+ 'ofp_aggregate_stats_request' : [
+ 'match',
+ 'table_id',
+ 'out_port'
+ ],
+ 'ofp_port_status' : [
+ 'reason',
+ 'desc'
+ ],
+ 'ofp_action_header' : [
+ 'type',
+ 'len'
+ ],
+ 'ofp_port_mod' : [
+ 'port_no',
+ 'hw_addr',
+ 'config',
+ 'mask',
+ 'advertise'
+ ],
+ 'ofp_action_vlan_vid' : [
+ 'type',
+ 'len',
+ 'vlan_vid'
+ ],
+ 'ofp_action_output' : [
+ 'type',
+ 'len',
+ 'port',
+ 'max_len'
+ ],
+ 'ofp_switch_config' : [
+ 'flags',
+ 'miss_send_len'
+ ],
+ 'ofp_action_nw_tos' : [
+ 'type',
+ 'len',
+ 'nw_tos'
+ ],
+ 'ofp_queue_get_config_reply' : [
+ 'port'
+ ],
+ 'ofp_packet_in' : [
+ 'buffer_id',
+ 'total_len',
+ 'in_port',
+ 'reason'
+ ],
+ 'ofp_flow_stats' : [
+ 'length',
+ 'table_id',
+ 'match',
+ 'duration_sec',
+ 'duration_nsec',
+ 'priority',
+ 'idle_timeout',
+ 'hard_timeout',
+ 'cookie',
+ 'packet_count',
+ 'byte_count'
+ ],
+ 'ofp_flow_stats_request' : [
+ 'match',
+ 'table_id',
+ 'out_port'
+ ],
+ 'ofp_action_vendor_header' : [
+ 'type',
+ 'len',
+ 'vendor'
+ ],
+ 'ofp_stats_reply' : [
+ 'type',
+ 'flags'
+ ],
+ 'ofp_queue_stats_request' : [
+ 'port_no',
+ 'queue_id'
+ ],
+ 'ofp_desc_stats' : [
+ 'mfr_desc',
+ 'hw_desc',
+ 'sw_desc',
+ 'serial_num',
+ 'dp_desc'
+ ],
+ 'ofp_queue_get_config_request' : [
+ 'port'
+ ],
+ 'ofp_packet_queue' : [
+ 'queue_id',
+ 'len'
+ ],
+ 'ofp_action_dl_addr' : [
+ 'type',
+ 'len',
+ 'dl_addr'
+ ],
+ 'ofp_queue_prop_header' : [
+ 'property',
+ 'len'
+ ],
+ 'ofp_queue_prop_min_rate' : [
+ 'prop_header',
+ 'rate'
+ ],
+ 'ofp_action_enqueue' : [
+ 'type',
+ 'len',
+ 'port',
+ 'queue_id'
+ ],
+ 'ofp_switch_features' : [
+ 'datapath_id',
+ 'n_buffers',
+ 'n_tables',
+ 'capabilities',
+ 'actions'
+ ],
+ 'ofp_match' : [
+ 'wildcards',
+ 'in_port',
+ 'dl_src',
+ 'dl_dst',
+ 'dl_vlan',
+ 'dl_vlan_pcp',
+ 'dl_type',
+ 'nw_tos',
+ 'nw_proto',
+ 'nw_src',
+ 'nw_dst',
+ 'tp_src',
+ 'tp_dst'
+ ],
+ 'ofp_header' : [
+ 'version',
+ 'type',
+ 'length',
+ 'xid'
+ ],
+ 'ofp_vendor_header' : [
+ 'vendor'
+ ],
+ 'ofp_packet_out' : [
+ 'buffer_id',
+ 'in_port',
+ 'actions_len'
+ ],
+ 'ofp_action_nw_addr' : [
+ 'type',
+ 'len',
+ 'nw_addr'
+ ],
+ 'ofp_action_vlan_pcp' : [
+ 'type',
+ 'len',
+ 'vlan_pcp'
+ ],
+ 'ofp_flow_mod' : [
+ 'match',
+ 'cookie',
+ 'command',
+ 'idle_timeout',
+ 'hard_timeout',
+ 'priority',
+ 'buffer_id',
+ 'out_port',
+ 'flags'
+ ],
+ 'ofp_error_msg' : [
+ 'type',
+ 'code'
+ ],
+ '_ignore' : []
+}