From: hannes Date: Sun, 22 Jan 2006 10:23:09 +0000 (+0000) Subject: bugfix: add hec offset for celltype determination; make use of tok2str() for OAM... X-Git-Tag: tcpdump-4.0.0~277 X-Git-Url: https://git.tcpdump.org/tcpdump/commitdiff_plain/a6a8d21e46760e35d991d85ad58048763417a9cd?hp=4ee5f75b6c4c46d5e42ef8f633d9dfedd2401ac5 bugfix: add hec offset for celltype determination; make use of tok2str() for OAM F type printing, unhide OAM elements like (vci,vpi) under eflag --- diff --git a/print-atm.c b/print-atm.c index 3c336e69..5fe6891c 100644 --- a/print-atm.c +++ b/print-atm.c @@ -20,7 +20,7 @@ */ #ifndef lint static const char rcsid[] _U_ = - "@(#) $Header: /tcpdump/master/tcpdump/print-atm.c,v 1.42 2005-11-10 00:43:24 guy Exp $ (LBL)"; + "@(#) $Header: /tcpdump/master/tcpdump/print-atm.c,v 1.43 2006-01-22 10:23:09 hannes Exp $ (LBL)"; #endif #ifdef HAVE_CONFIG_H @@ -43,6 +43,12 @@ static const char rcsid[] _U_ = #include "ether.h" +struct tok oam_f_values[] = { + { OAMF4SC, "OAM F4 (segment)" }, + { OAMF4EC, "OAM F4 (end)" }, + { 0, NULL } +}; + struct tok oam_celltype_values[] = { { 0x1, "Fault Management" }, { 0x2, "Performance Management" }, @@ -293,7 +299,7 @@ oam_print (const u_char *p, u_int length, u_int hec) { u_int32_t cell_header; u_int16_t cell_type, func_type,vpi,vci,payload,clp; - cell_header = EXTRACT_32BITS(p); + cell_header = EXTRACT_32BITS(p+hec); cell_type = ((*(p+4+hec))>>4) & 0x0f; func_type = *(p+4+hec) & 0x0f; @@ -302,20 +308,9 @@ oam_print (const u_char *p, u_int length, u_int hec) { payload = (cell_header>>1)&0x7; clp = cell_header&0x1; - switch (vci) { - case OAMF4SC: - printf("OAM F4 (segment), "); - break; - case OAMF4EC: - printf("OAM F4 (end), "); - break; - default: - printf("OAM F5, "); - break; - } - - if (eflag) - printf("vpi %u, vci %u, payload %u, clp %u, ",vpi,vci,payload,clp); + printf("%s, vpi %u, vci %u, payload %u, clp %u, ", + tok2str(oam_f_values, "OAM F5", vci), + vpi, vci, payload, clp); printf("cell-type %s (%u)", tok2str(oam_celltype_values, "unknown", cell_type),