Hi
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.
Please take a look at it. If it is fine, then please check it in into the svn
Thanks
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: wiretap/atm.c
===================================================================
--- wiretap/atm.c (revision 15960)
+++ wiretap/atm.c (working copy)
@@ -88,7 +88,14 @@
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 @@
*/
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 @@
* 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;
+ }
}
}
}