aboutsummaryrefslogtreecommitdiffstats
path: root/epan/dissectors/packet-fcoe.c
diff options
context:
space:
mode:
authorMichael Mann <mmann78@netscape.net>2013-11-25 16:04:57 +0000
committerMichael Mann <mmann78@netscape.net>2013-11-25 16:04:57 +0000
commita9dd765d474264d86c9809f943fb872f29aa9b06 (patch)
treecc6f3db65a0eee0a790d7a35e5745ba364ceb1bf /epan/dissectors/packet-fcoe.c
parentd4c4e24351173085ba78ebdb461f15a9c2f96c5b (diff)
Remove Fibre Channel specific fields from packet_info and just have the fc_hdr or fc_data_t structure passed between all necessary dissectors.
svn path=/trunk/; revision=53569
Diffstat (limited to 'epan/dissectors/packet-fcoe.c')
-rw-r--r--epan/dissectors/packet-fcoe.c15
1 files changed, 9 insertions, 6 deletions
diff --git a/epan/dissectors/packet-fcoe.c b/epan/dissectors/packet-fcoe.c
index 536d58f53c..a5743e07bf 100644
--- a/epan/dissectors/packet-fcoe.c
+++ b/epan/dissectors/packet-fcoe.c
@@ -40,6 +40,7 @@
#include <epan/etypes.h>
#include <epan/expert.h>
#include <epan/wmem/wmem.h>
+#include "packet-fc.h"
#define FCOE_HEADER_LEN 14 /* header: version, SOF, and padding */
#define FCOE_TRAILER_LEN 8 /* trailer: CRC, EOF, and padding */
@@ -131,6 +132,7 @@ dissect_fcoe(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
gboolean crc_exists;
guint32 crc_computed = 0;
guint32 crc = 0;
+ fc_data_t fc_data;
/*
* For now, handle both the version defined before and after August 2007.
@@ -251,23 +253,24 @@ dissect_fcoe(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
}
/* Set the SOF/EOF flags in the packet_info header */
- pinfo->sof_eof = 0;
+ fc_data.sof_eof = 0;
if (sof == FCOE_SOFi3 || sof == FCOE_SOFi2 || sof == FCOE_SOFi4) {
- pinfo->sof_eof = PINFO_SOF_FIRST_FRAME;
+ fc_data.sof_eof = FC_DATA_SOF_FIRST_FRAME;
} else if (sof == FCOE_SOFf) {
- pinfo->sof_eof = PINFO_SOF_SOFF;
+ fc_data.sof_eof = FC_DATA_SOF_SOFF;
}
if (eof != FCOE_EOFn) {
- pinfo->sof_eof |= PINFO_EOF_LAST_FRAME;
+ fc_data.sof_eof |= FC_DATA_EOF_LAST_FRAME;
} else if (eof != FCOE_EOFt) {
- pinfo->sof_eof |= PINFO_EOF_INVALID;
+ fc_data.sof_eof |= FC_DATA_EOF_INVALID;
}
/* Call the FC Dissector if this is carrying an FC frame */
+ fc_data.ethertype = 0;
if (fc_handle) {
- call_dissector(fc_handle, next_tvb, pinfo, tree);
+ call_dissector_with_data(fc_handle, next_tvb, pinfo, tree, &fc_data);
} else if (data_handle) {
call_dissector(data_handle, next_tvb, pinfo, tree);
}