*/
#ifndef lint
static const char rcsid[] _U_ =
- "@(#) $Header: /tcpdump/master/tcpdump/print-atm.c,v 1.38 2005-01-19 16:46:27 hannes Exp $ (LBL)";
+ "@(#) $Header: /tcpdump/master/tcpdump/print-atm.c,v 1.38.2.4 2005-11-10 00:43:52 guy Exp $ (LBL)";
#endif
#ifdef HAVE_CONFIG_H
printf("(LLC %s) ",
etherproto_string(htons(extracted_ethertype)));
}
- if (!xflag && !qflag)
+ if (!suppress_default_print)
default_print(p, caplen);
}
}
case OAMF4SC: /* fall through */
case OAMF4EC:
- oam_print(p, length);
+ oam_print(p, length, ATM_OAM_HEC);
return;
case METAC:
}
int
-oam_print (const u_char *p, u_int length) {
+oam_print (const u_char *p, u_int length, u_int hec) {
- u_int16_t cell_header, cell_type, func_type,vpi,vci,payload,clp;
+ u_int32_t cell_header;
+ u_int16_t cell_type, func_type,vpi,vci,payload,clp;
cell_header = EXTRACT_32BITS(p);
- cell_type = ((*(p+4))>>4) & 0x0f;
- func_type = *(p) & 0x0f;
+ cell_type = ((*(p+4+hec))>>4) & 0x0f;
+ func_type = *(p+4+hec) & 0x0f;
vpi = (cell_header>>20)&0xff;
vci = (cell_header>>4)&0xffff;
switch (vci) {
case OAMF4SC:
printf("OAM F4 (segment), ");
- break;
+ break;
case OAMF4EC:
printf("OAM F4 (end), ");
break;