aboutsummaryrefslogtreecommitdiffstats
path: root/epan/dissectors/packet-llc.c
diff options
context:
space:
mode:
authorGuy Harris <guy@alum.mit.edu>2004-11-24 09:13:52 +0000
committerGuy Harris <guy@alum.mit.edu>2004-11-24 09:13:52 +0000
commit7c3027c5e9b169e6c4eaba78b4815123113ea398 (patch)
tree8a078ef2bb27f034ded036ea017e2b910df7de81 /epan/dissectors/packet-llc.c
parentb3b1679a577c1b282bf65dd2995d5a2227bbe52c (diff)
Export two versions of the Ethereal dissector, for use with encapsulated
Ethernet frames, one for encapsulated frames that include an FCS and one for encapsulated frames that don't include an FCS. Use the appropriate versions. In the ISL dissector, do the same sort of processing we do in the Ethernet dissector to figure out whether the frame has a trailer or not and whether it has an FCS or not. svn path=/trunk/; revision=12593
Diffstat (limited to 'epan/dissectors/packet-llc.c')
-rw-r--r--epan/dissectors/packet-llc.c14
1 files changed, 11 insertions, 3 deletions
diff --git a/epan/dissectors/packet-llc.c b/epan/dissectors/packet-llc.c
index 0d60f70b3c..8150a101c3 100644
--- a/epan/dissectors/packet-llc.c
+++ b/epan/dissectors/packet-llc.c
@@ -80,7 +80,8 @@ static dissector_table_t subdissector_table;
static dissector_table_t xid_subdissector_table;
static dissector_handle_t bpdu_handle;
-static dissector_handle_t eth_handle;
+static dissector_handle_t eth_withoutfcs_handle;
+static dissector_handle_t eth_withfcs_handle;
static dissector_handle_t fddi_handle;
static dissector_handle_t tr_handle;
static dissector_handle_t data_handle;
@@ -512,10 +513,16 @@ dissect_snap(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree,
switch (etype) {
case BPID_ETH_WITH_FCS:
+ next_tvb = tvb_new_subset(tvb, offset+5+bridge_pad,
+ -1, -1);
+ call_dissector(eth_withfcs_handle, next_tvb, pinfo,
+ tree);
+ break;
+
case BPID_ETH_WITHOUT_FCS:
next_tvb = tvb_new_subset(tvb, offset+5+bridge_pad,
-1, -1);
- call_dissector(eth_handle, next_tvb, pinfo, tree);
+ call_dissector(eth_withoutfcs_handle, next_tvb, pinfo, tree);
break;
case BPID_802_5_WITH_FCS:
@@ -720,7 +727,8 @@ proto_reg_handoff_llc(void)
* dissectors.
*/
bpdu_handle = find_dissector("bpdu");
- eth_handle = find_dissector("eth");
+ eth_withoutfcs_handle = find_dissector("eth_withoutfcs");
+ eth_withfcs_handle = find_dissector("eth_withfcs");
fddi_handle = find_dissector("fddi");
tr_handle = find_dissector("tr");
data_handle = find_dissector("data");