Wireshark-dev: [Wireshark-dev] frame relay bugfix
From: Rene Pilz <pilz@xxxxxx>
Date: Fri, 24 Nov 2006 15:53:34 +0100
Hi Attached is a patch for following items: - Frame Relay: Calculate the size of the frame relay header larger than 2 bytes correctly - ERF File: In approx 10% of the cases ethereal is not able to recognize the ERF file correctly. So the file format check of erf is moved more to the beginning of the function. This is not real a solution, but as erf files are not that seldom this might be acceptable. - Added Columns: Add columns for DLCI (Frame Relay) and TLLI (GSM BSSGP). As these are crucial Identifiers within this protocol this is rather useful. At least they asked me several times. So please take a look at it. Thanks. Best Regards Rene -- Dipl-Ing (FH) MSc. C.E René Pilz ftw. Telekommunications Research Center Vienna http://www.ftw.at Tech Gate Vienna, Donaucitystraße 1, A-1220 Wien Mobile: +43 664 8269871 Office: +43 1 5052830-13 Fax: +43 1 5052830-99
Index: epan/column.c =================================================================== --- epan/column.c (revision 19967) +++ epan/column.c (working copy) @@ -93,7 +93,9 @@ "%y", "%z", "%v", - "%E" + "%E", + "%C", + "%l" }; if (fmt < 0 || fmt >= NUM_COL_FMTS) @@ -154,6 +156,8 @@ "DCE/RPC context ID (cn_ctx_id)", /* COL_DCE_CTX */ "802.1Q VLAN id", /* COL_8021Q_VLAN_ID */ "TEI", /* XXX - why is it missing in column_utils.c and elsewhere? */ + "Frame Relay DLCI", /* COL_FR_DLCI */ + "GPRS BSSGP TLLI", /* COL_BSSGP_TLLI */ }; const gchar * @@ -260,6 +264,12 @@ case COL_TEI: fmt_list[COL_TEI] = TRUE; break; + case COL_FR_DLCI: + fmt_list[COL_FR_DLCI] = TRUE; + break; + case COL_BSSGP_TLLI: + fmt_list[COL_BSSGP_TLLI] = TRUE; + break; default: break; } @@ -460,7 +470,7 @@ return "0000000"; break; case COL_VSAN: - return "000000"; + return "000000"; break; case COL_TX_RATE: return "108.0"; @@ -486,6 +496,12 @@ case COL_TEI: return "127"; break; + case COL_FR_DLCI: + return "8388608"; + break; + case COL_BSSGP_TLLI: + return "0xffffffff"; + break; default: /* COL_INFO */ return "Source port: kerberos-master Destination port: kerberos-master"; break; @@ -640,6 +656,10 @@ break; case 'E': return COL_TEI; + case 'C': + return COL_FR_DLCI; + case 'l': + return COL_BSSGP_TLLI; break; } cptr++; Index: epan/column-utils.c =================================================================== --- epan/column-utils.c (revision 19967) +++ epan/column-utils.c (working copy) @@ -1242,6 +1242,10 @@ case COL_8021Q_VLAN_ID: break; + case COL_FR_DLCI: /* done by packet-fr.c */ + case COL_BSSGP_TLLI: /* done by packet-bssgp.c */ + break; + case NUM_COL_FMTS: /* keep compiler happy - shouldn't get here */ g_assert_not_reached(); break; Index: epan/dissectors/packet-fr.c =================================================================== --- epan/dissectors/packet-fr.c (revision 19967) +++ epan/dissectors/packet-fr.c (working copy) @@ -551,6 +551,8 @@ } proto_tree_add_boolean(octet_tree, hf_fr_dc, tvb, offset, 1, fr_octet); proto_tree_add_boolean(octet_tree, hf_fr_ea, tvb, offset, 1, fr_octet); + + offset++; } } if (tree) { @@ -561,6 +563,11 @@ pinfo->ctype = CT_DLCI; pinfo->circuit_id = address; + /* Add DLCI to a collumn */ + if ( check_col(pinfo->cinfo, COL_FR_DLCI)) { + col_add_fstr(pinfo->cinfo, COL_FR_DLCI, "%u", address); + } + if (check_col(pinfo->cinfo, COL_INFO)) col_add_fstr(pinfo->cinfo, COL_INFO, "DLCI %u", address); Index: epan/dissectors/packet-bssgp.c =================================================================== --- epan/dissectors/packet-bssgp.c (revision 19967) +++ epan/dissectors/packet-bssgp.c (working copy) @@ -2892,6 +2892,11 @@ col_append_sep_fstr(bi->pinfo->cinfo, COL_INFO, BSSGP_SEP, "TLLI %#4x", tlli); } + + if (check_col(bi->pinfo->cinfo, COL_BSSGP_TLLI)) { + col_add_fstr(bi->pinfo->cinfo, COL_BSSGP_TLLI, "%#04x", tlli); + } + decode_nri(bi->bssgp_tree, bi, tlli); } Index: epan/column_info.h =================================================================== --- epan/column_info.h (revision 19967) +++ epan/column_info.h (working copy) @@ -101,6 +101,8 @@ COL_DCE_CTX, /* DCE/RPC connection oriented context id */ COL_8021Q_VLAN_ID, /* 802.1Q vlan ID */ COL_TEI, /* q.921 TEI */ + COL_FR_DLCI, /* Frame Relay DLCI */ + COL_BSSGP_TLLI, /* GPRS BSSGP IE TLLI */ NUM_COL_FMTS /* Should always be last */ }; Index: wiretap/file_access.c =================================================================== --- wiretap/file_access.c (revision 19967) +++ wiretap/file_access.c (working copy) @@ -117,6 +117,7 @@ * would be, for example, saved copies of a Telnet session * to some box. */ + erf_open, etherpeek_open, pppdump_open, iseries_open, @@ -127,7 +128,6 @@ csids_open, vms_open, cosine_open, - erf_open, hcidump_open, };
- Follow-Ups:
- Re: [Wireshark-dev] frame relay bugfix
- From: Rene Pilz
- Re: [Wireshark-dev] frame relay bugfix
- Prev by Date: Re: [Wireshark-dev] Compilation problem, SVN 19973
- Next by Date: Re: [Wireshark-dev] New feature about packets statistic
- Previous by thread: [Wireshark-dev] [PATCH] range_string and OSPF bcmodelid
- Next by thread: Re: [Wireshark-dev] frame relay bugfix
- Index(es):