diff options
author | Pascal Quantin <pascal.quantin@gmail.com> | 2014-12-27 16:46:32 +0100 |
---|---|---|
committer | Anders Broman <a.broman58@gmail.com> | 2014-12-27 17:03:24 +0000 |
commit | 25c7e0d9df50c8764927922e724aaa18e7f6c738 (patch) | |
tree | 7fcc5fdea7f6e2f64a5f627d5a710fa88f136642 /epan/dissectors/packet-openflow_v5.c | |
parent | 1ae0c4a643ba41eddfe875d9dde46a3811eda5bc (diff) |
OpenFlow: fix dissection of async_config_prop structure
Bug: 10808
Change-Id: I5ef46cd6b85c415e23dfdbe7a56c8b332eaae5a3
Reviewed-on: https://code.wireshark.org/review/6078
Reviewed-by: Pascal Quantin <pascal.quantin@gmail.com>
Petri-Dish: Pascal Quantin <pascal.quantin@gmail.com>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: Anders Broman <a.broman58@gmail.com>
Diffstat (limited to 'epan/dissectors/packet-openflow_v5.c')
-rw-r--r-- | epan/dissectors/packet-openflow_v5.c | 22 |
1 files changed, 12 insertions, 10 deletions
diff --git a/epan/dissectors/packet-openflow_v5.c b/epan/dissectors/packet-openflow_v5.c index 5474b13c70..2df9aeeb18 100644 --- a/epan/dissectors/packet-openflow_v5.c +++ b/epan/dissectors/packet-openflow_v5.c @@ -5439,15 +5439,17 @@ dissect_openflow_async_config_prop_v5(tvbuff_t *tvb, packet_info *pinfo _U_, pro /* uint16_t type; */ proto_tree_add_item(prop_tree, hf_openflow_v5_async_config_prop_type, tvb, offset, 2, ENC_BIG_ENDIAN); + offset += 2; /* uint16_t length; */ proto_tree_add_item(prop_tree, hf_openflow_v5_async_config_prop_length, tvb, offset, 2, ENC_BIG_ENDIAN); + offset += 2; switch (prop_type) { case OFPACPT_PACKET_IN_SLAVE: case OFPACPT_PACKET_IN_MASTER: /* uint32_t mask; */ - ti = proto_tree_add_item(tree, hf_openflow_v5_async_config_prop_reason_packet_in_mask, tvb, offset, 4, ENC_BIG_ENDIAN); + ti = proto_tree_add_item(prop_tree, hf_openflow_v5_async_config_prop_reason_packet_in_mask, tvb, offset, 4, ENC_BIG_ENDIAN); pi_tree = proto_item_add_subtree(ti, ett_openflow_v5_async_config_prop_reason_packet_in_mask); proto_tree_add_item(pi_tree, hf_openflow_v5_async_config_prop_reason_packet_in_mask_table_miss, tvb, offset, 4, ENC_BIG_ENDIAN); @@ -5462,7 +5464,7 @@ dissect_openflow_async_config_prop_v5(tvbuff_t *tvb, packet_info *pinfo _U_, pro case OFPACPT_PORT_STATUS_SLAVE: case OFPACPT_PORT_STATUS_MASTER: /* uint32_t mask; */ - ti = proto_tree_add_item(tree, hf_openflow_v5_async_config_prop_reason_port_status_mask, tvb, offset, 4, ENC_BIG_ENDIAN); + ti = proto_tree_add_item(prop_tree, hf_openflow_v5_async_config_prop_reason_port_status_mask, tvb, offset, 4, ENC_BIG_ENDIAN); ps_tree = proto_item_add_subtree(ti, ett_openflow_v5_async_config_prop_reason_port_status_mask); proto_tree_add_item(ps_tree, hf_openflow_v5_async_config_prop_reason_port_status_mask_add, tvb, offset, 4, ENC_BIG_ENDIAN); @@ -5474,7 +5476,7 @@ dissect_openflow_async_config_prop_v5(tvbuff_t *tvb, packet_info *pinfo _U_, pro case OFPACPT_FLOW_REMOVED_SLAVE: case OFPACPT_FLOW_REMOVED_MASTER: /* uint32_t mask; */ - ti = proto_tree_add_item(tree, hf_openflow_v5_async_config_prop_reason_flow_removed_mask, tvb, offset, 4, ENC_BIG_ENDIAN); + ti = proto_tree_add_item(prop_tree, hf_openflow_v5_async_config_prop_reason_flow_removed_mask, tvb, offset, 4, ENC_BIG_ENDIAN); fr_tree = proto_item_add_subtree(ti, ett_openflow_v5_async_config_prop_reason_flow_removed_mask); proto_tree_add_item(fr_tree, hf_openflow_v5_async_config_prop_reason_flow_removed_mask_idle_timeout, tvb, offset, 4, ENC_BIG_ENDIAN); @@ -5489,7 +5491,7 @@ dissect_openflow_async_config_prop_v5(tvbuff_t *tvb, packet_info *pinfo _U_, pro case OFPACPT_ROLE_STATUS_SLAVE: case OFPACPT_ROLE_STATUS_MASTER: /* uint32_t mask; */ - ti = proto_tree_add_item(tree, hf_openflow_v5_async_config_prop_reason_role_status_mask, tvb, offset, 4, ENC_BIG_ENDIAN); + ti = proto_tree_add_item(prop_tree, hf_openflow_v5_async_config_prop_reason_role_status_mask, tvb, offset, 4, ENC_BIG_ENDIAN); rs_tree = proto_item_add_subtree(ti, ett_openflow_v5_async_config_prop_reason_role_status_mask); proto_tree_add_item(rs_tree, hf_openflow_v5_async_config_prop_reason_role_status_mask_master_request, tvb, offset, 4, ENC_BIG_ENDIAN); @@ -5501,7 +5503,7 @@ dissect_openflow_async_config_prop_v5(tvbuff_t *tvb, packet_info *pinfo _U_, pro case OFPACPT_TABLE_STATUS_SLAVE: case OFPACPT_TABLE_STATUS_MASTER: /* uint32_t mask; */ - ti = proto_tree_add_item(tree, hf_openflow_v5_async_config_prop_reason_table_status_mask, tvb, offset, 4, ENC_BIG_ENDIAN); + ti = proto_tree_add_item(prop_tree, hf_openflow_v5_async_config_prop_reason_table_status_mask, tvb, offset, 4, ENC_BIG_ENDIAN); ts_tree = proto_item_add_subtree(ti, ett_openflow_v5_async_config_prop_reason_table_status_mask); proto_tree_add_item(ts_tree, hf_openflow_v5_async_config_prop_reason_table_status_mask_vacancy_down, tvb, offset, 4, ENC_BIG_ENDIAN); @@ -5512,7 +5514,7 @@ dissect_openflow_async_config_prop_v5(tvbuff_t *tvb, packet_info *pinfo _U_, pro case OFPACPT_REQUESTFORWARD_SLAVE: case OFPACPT_REQUESTFORWARD_MASTER: /* uint32_t mask; */ - ti = proto_tree_add_item(tree, hf_openflow_v5_async_config_prop_reason_requestforward_mask, tvb, offset, 4, ENC_BIG_ENDIAN); + ti = proto_tree_add_item(prop_tree, hf_openflow_v5_async_config_prop_reason_requestforward_mask, tvb, offset, 4, ENC_BIG_ENDIAN); rf_tree = proto_item_add_subtree(ti, ett_openflow_v5_async_config_prop_reason_requestforward_mask); proto_tree_add_item(rf_tree, hf_openflow_v5_async_config_prop_reason_requestforward_mask_group_mod, tvb, offset, 4, ENC_BIG_ENDIAN); @@ -5523,21 +5525,21 @@ dissect_openflow_async_config_prop_v5(tvbuff_t *tvb, packet_info *pinfo _U_, pro case OFPACPT_EXPERIMENTER_SLAVE: case OFPACPT_EXPERIMENTER_MASTER: /* uint32_t experimenter; */ - proto_tree_add_item(tree, hf_openflow_v5_async_config_prop_experimenter_experimenter, tvb, offset, 4, ENC_BIG_ENDIAN); + proto_tree_add_item(prop_tree, hf_openflow_v5_async_config_prop_experimenter_experimenter, tvb, offset, 4, ENC_BIG_ENDIAN); offset+=4; /* uint32_t exp_type; */ - proto_tree_add_item(tree, hf_openflow_v5_async_config_prop_experimenter_exp_type, tvb, offset, 4, ENC_BIG_ENDIAN); + proto_tree_add_item(prop_tree, hf_openflow_v5_async_config_prop_experimenter_exp_type, tvb, offset, 4, ENC_BIG_ENDIAN); offset+=4; /* uint32_t experimenter_data[0]; */ - proto_tree_add_expert_format(tree, pinfo, &ei_openflow_v5_async_config_prop_undecoded, + proto_tree_add_expert_format(prop_tree, pinfo, &ei_openflow_v5_async_config_prop_undecoded, tvb, offset, prop_len - 12, "Experimenter async config prop body."); offset += prop_len - 12; break; default: - proto_tree_add_expert_format(tree, pinfo, &ei_openflow_v5_async_config_prop_undecoded, + proto_tree_add_expert_format(prop_tree, pinfo, &ei_openflow_v5_async_config_prop_undecoded, tvb, offset, prop_len - 4, "Unknown async config prop body."); offset += prop_len - 4; break; |