aboutsummaryrefslogtreecommitdiffstats
path: root/epan/dissectors/packet-opa-mad.c
diff options
context:
space:
mode:
authorAdam Goldman <adam.goldman@intel.com>2016-07-26 09:54:23 -0400
committerAnders Broman <a.broman58@gmail.com>2018-06-11 20:24:54 +0000
commit2047d688724cbebb3ad908d9248561e16ffed7ff (patch)
tree863c20a59a6650fa7fb7ff20b5401ffa85677151 /epan/dissectors/packet-opa-mad.c
parent53a18406266cdabde5f619c72d77b2471e89b13e (diff)
opa-fe: Add Support for Reassembly of FE TCP Packets
Used tcp_dissect_pdus API to reassemble FE TCP packets. Change-Id: I82bb270bacbd3f5790c015c5a876981417e271fa Signed-off-by: Adam Goldman <adam.goldman@intel.com> Reviewed-on: https://code.wireshark.org/review/28203 Petri-Dish: Anders Broman <a.broman58@gmail.com> Tested-by: Petri Dish Buildbot Reviewed-by: Anders Broman <a.broman58@gmail.com>
Diffstat (limited to 'epan/dissectors/packet-opa-mad.c')
-rw-r--r--epan/dissectors/packet-opa-mad.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/epan/dissectors/packet-opa-mad.c b/epan/dissectors/packet-opa-mad.c
index f537b6014e..249f07c0ab 100644
--- a/epan/dissectors/packet-opa-mad.c
+++ b/epan/dissectors/packet-opa-mad.c
@@ -5940,6 +5940,7 @@ static void parse_SUBNADMN(proto_tree *parentTree, packet_info *pinfo, tvbuff_t
guint r, records, length;
proto_tree *SA_record_tree;
const guchar *label;
+ gboolean parent_was_opa_fe = proto_is_frame_protocol(pinfo->layers, "opa.fe");
if (!parse_MAD_Common(parentTree, pinfo, tvb, offset, &MAD)) {
return;
@@ -5956,7 +5957,7 @@ static void parse_SUBNADMN(proto_tree *parentTree, packet_info *pinfo, tvbuff_t
return;
}
- if (pref_attempt_rmpp_defragment
+ if (!parent_was_opa_fe && pref_attempt_rmpp_defragment
&& (RMPP.resptime_flags & RMPP_FLAG_ACTIVE_MASK) && (RMPP.Type == RMPP_DATA)
&& !((RMPP.resptime_flags & RMPP_FLAG_FIRST_MASK)
&& (RMPP.resptime_flags & RMPP_FLAG_LAST_MASK))) {
@@ -8163,6 +8164,7 @@ static void parse_PERFADMN(proto_tree *parentTree, packet_info *pinfo, tvbuff_t
fragment_head *frag_head = NULL;
tvbuff_t *old_tvb = NULL;
gint old_offset;
+ gboolean parent_was_opa_fe = proto_is_frame_protocol(pinfo->layers, "opa.fe");
if (!parse_MAD_Common(parentTree, pinfo, tvb, offset, &MAD)) {
return;
@@ -8179,7 +8181,7 @@ static void parse_PERFADMN(proto_tree *parentTree, packet_info *pinfo, tvbuff_t
return;
}
- if (pref_attempt_rmpp_defragment
+ if (!parent_was_opa_fe && pref_attempt_rmpp_defragment
&& (RMPP.resptime_flags & RMPP_FLAG_ACTIVE_MASK) && (RMPP.Type == RMPP_DATA)
&& !((RMPP.resptime_flags & RMPP_FLAG_FIRST_MASK)
&& (RMPP.resptime_flags & RMPP_FLAG_LAST_MASK))) {