diff options
author | Max Laier <mlaier@FreeBSD.org> | 2007-10-16 02:31:48 +0000 |
---|---|---|
committer | Max Laier <mlaier@FreeBSD.org> | 2007-10-16 02:31:48 +0000 |
commit | abf2519367045ca1021214ea4a55622810dd8e4e (patch) | |
tree | 8c8221dcf086879544da49d1342bacd303933fa6 /contrib/tcpdump/print-atm.c | |
parent | e57e181f0987727d6cb3bcb76554c83efe1476d8 (diff) | |
download | src-abf2519367045ca1021214ea4a55622810dd8e4e.tar.gz src-abf2519367045ca1021214ea4a55622810dd8e4e.zip |
Resolve merge conflicts
Approved by: re (kensmith)
Obtained from: tcpdump.org
Notes
Notes:
svn path=/head/; revision=172686
Diffstat (limited to 'contrib/tcpdump/print-atm.c')
-rw-r--r-- | contrib/tcpdump/print-atm.c | 39 |
1 files changed, 22 insertions, 17 deletions
diff --git a/contrib/tcpdump/print-atm.c b/contrib/tcpdump/print-atm.c index 1fdae6ec2de7..03ca34b603ac 100644 --- a/contrib/tcpdump/print-atm.c +++ b/contrib/tcpdump/print-atm.c @@ -22,7 +22,7 @@ */ #ifndef lint static const char rcsid[] _U_ = - "@(#) $Header: /tcpdump/master/tcpdump/print-atm.c,v 1.38.2.3 2005/07/07 01:24:34 guy Exp $ (LBL)"; + "@(#) $Header: /tcpdump/master/tcpdump/print-atm.c,v 1.38.2.6 2006/01/25 13:27:24 hannes Exp $ (LBL)"; #endif #ifdef HAVE_CONFIG_H @@ -45,6 +45,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" }, @@ -137,6 +143,15 @@ atm_if_print(const struct pcap_pkthdr *h, const u_char *p) printf("[|atm]"); return (caplen); } + + /* Cisco Style NLPID ? */ + if (*p == LLC_UI) { + if (eflag) + printf("CNLPID "); + isoclns_print(p+1, length-1, caplen-1); + return hdrlen; + } + /* * Extract the presumed LLC header into a variable, for quick * testing. @@ -291,9 +306,10 @@ atm_print(u_int vpi, u_int vci, u_int traftype, const u_char *p, u_int length, int 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_header = EXTRACT_32BITS(p+hec); cell_type = ((*(p+4+hec))>>4) & 0x0f; func_type = *(p+4+hec) & 0x0f; @@ -302,20 +318,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), |