summaryrefslogtreecommitdiffstats
path: root/contrib/tcpdump/print-atm.c
diff options
context:
space:
mode:
authormlaier <mlaier@FreeBSD.org>2007-10-16 02:31:48 +0000
committermlaier <mlaier@FreeBSD.org>2007-10-16 02:31:48 +0000
commit7407d685ab0d1977958bae143bdcc3b53dacea31 (patch)
tree8c8221dcf086879544da49d1342bacd303933fa6 /contrib/tcpdump/print-atm.c
parentf0e5d335e38c264eb2fca7e15e417b70c8908f54 (diff)
downloadFreeBSD-src-7407d685ab0d1977958bae143bdcc3b53dacea31.zip
FreeBSD-src-7407d685ab0d1977958bae143bdcc3b53dacea31.tar.gz
Resolve merge conflicts
Approved by: re (kensmith) Obtained from: tcpdump.org
Diffstat (limited to 'contrib/tcpdump/print-atm.c')
-rw-r--r--contrib/tcpdump/print-atm.c39
1 files changed, 22 insertions, 17 deletions
diff --git a/contrib/tcpdump/print-atm.c b/contrib/tcpdump/print-atm.c
index 1fdae6e..03ca34b 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),
OpenPOWER on IntegriCloud