aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAnders Broman <anders.broman@ericsson.com>2005-10-04 05:42:18 +0000
committerAnders Broman <anders.broman@ericsson.com>2005-10-04 05:42:18 +0000
commite1ebb0953dde7a49420ca901047633008c3f75c6 (patch)
tree22f5af43a39f5c931bcd2ccccd5bc0158a14a58d
parent1f02bfa0afe8a039616ffb118ea85a06576d7c83 (diff)
From Rene Piltz:
Due to the fact that 3G Signaling appears at an undefined VPI/VCI I added a heuristics (very simple) which should take care of this fact. svn path=/trunk/; revision=16108
-rw-r--r--AUTHORS11
-rw-r--r--wiretap/atm.c22
2 files changed, 32 insertions, 1 deletions
diff --git a/AUTHORS b/AUTHORS
index 87bba076b7..5b795af3e1 100644
--- a/AUTHORS
+++ b/AUTHORS
@@ -2395,6 +2395,16 @@ Jim Young <sysjhy [AT] langate.gsu.edu> {
}
+Jeff Snyder <jeff [AT] mxtelecom.com> {
+ H.223 Support
+
+}
+
+Richard van der Hoff <richardv [AT] mxtelecom.com> {
+ H.223 Support
+
+}
+
And assorted fixes and enhancements by the people listed above
and by:
@@ -2515,6 +2525,7 @@ Timo Metsala <timo.metsala [AT] gmail.com>
Tomer Shani <thetour [AT} japan.com>
Manu Pathak <mapathak [AT] cisco.com>
Kaul <mykaul [AT] gmail.com>
+John Sullivan <john [AT] kanargh.force9.co.uk>
Alain Magloire <alainm[AT]rcsm.ece.mcgill.ca> was kind enough to
give his permission to use his version of snprintf.c.
diff --git a/wiretap/atm.c b/wiretap/atm.c
index fb730b7c19..7ddfe7aabc 100644
--- a/wiretap/atm.c
+++ b/wiretap/atm.c
@@ -88,7 +88,14 @@ atm_guess_traffic_type(const guint8 *pd, guint32 len,
pseudo_header->atm.type = TRAF_LANE;
atm_guess_lane_type(pd, len, pseudo_header);
}
+ return;
}
+ else
+ /*
+ * Not only VCI 5 is used for signaling. It might be
+ * one of these VCIs
+ */
+ pseudo_header->atm.aal = AAL_SIGNALLING;
}
void
@@ -102,6 +109,10 @@ atm_guess_lane_type(const guint8 *pd, guint32 len,
*/
pseudo_header->atm.subtype = TRAF_ST_LANE_LE_CTRL;
} else {
+ guint32 len_802_3;
+ len_802_3 = pd[10];
+ len_802_3 <<= 8;
+ len_802_3 |= pd[11];
/*
* XXX - Ethernet, or Token Ring?
* Assume Ethernet for now; if we see earlier
@@ -110,7 +121,16 @@ atm_guess_lane_type(const guint8 *pd, guint32 len,
* still be situations where the user has to
* tell us.
*/
- pseudo_header->atm.subtype = TRAF_ST_LANE_802_3;
+ if (( len_802_3 + 5 + 5 + 2 ) == len )
+ pseudo_header->atm.subtype = TRAF_ST_LANE_802_3;
+ else
+ /*
+ * When it is not a 802.3 frame it might be a signalling one.
+ */
+ {
+ pseudo_header->atm.aal = AAL_SIGNALLING;
+ pseudo_header->atm.subtype = TRAF_ST_UNKNOWN;
+ }
}
}
}