summaryrefslogtreecommitdiffstats
path: root/contrib/tcpdump/print-chdlc.c
diff options
context:
space:
mode:
authorrpaulo <rpaulo@FreeBSD.org>2009-03-20 13:27:51 +0000
committerrpaulo <rpaulo@FreeBSD.org>2009-03-20 13:27:51 +0000
commit04b1d6babecbe3eed463c150b6e933a2b6d342a9 (patch)
tree36afae3dff76dde8d1cee5971ff7f1bc4922ad0f /contrib/tcpdump/print-chdlc.c
parent3b74598d7ea581deadb14ec8ba1c77c14295a7c8 (diff)
downloadFreeBSD-src-04b1d6babecbe3eed463c150b6e933a2b6d342a9.zip
FreeBSD-src-04b1d6babecbe3eed463c150b6e933a2b6d342a9.tar.gz
Flatten vendor/tcpdump and remove keyword expansion.
Diffstat (limited to 'contrib/tcpdump/print-chdlc.c')
-rw-r--r--contrib/tcpdump/print-chdlc.c215
1 files changed, 0 insertions, 215 deletions
diff --git a/contrib/tcpdump/print-chdlc.c b/contrib/tcpdump/print-chdlc.c
deleted file mode 100644
index b7654f5..0000000
--- a/contrib/tcpdump/print-chdlc.c
+++ /dev/null
@@ -1,215 +0,0 @@
-/*
- * Copyright (c) 1990, 1991, 1993, 1994, 1995, 1996, 1997
- * The Regents of the University of California. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that: (1) source code distributions
- * retain the above copyright notice and this paragraph in its entirety, (2)
- * distributions including binary code include the above copyright notice and
- * this paragraph in its entirety in the documentation or other materials
- * provided with the distribution, and (3) all advertising materials mentioning
- * features or use of this software display the following acknowledgement:
- * ``This product includes software developed by the University of California,
- * Lawrence Berkeley Laboratory and its contributors.'' Neither the name of
- * the University nor the names of its contributors may be used to endorse
- * or promote products derived from this software without specific prior
- * written permission.
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED
- * WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
- */
-
-#ifndef lint
-static const char rcsid[] _U_ =
- "@(#) $Header: /tcpdump/master/tcpdump/print-chdlc.c,v 1.32.2.11 2005/11/29 08:57:10 hannes Exp $ (LBL)";
-#endif
-
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-
-#include <tcpdump-stdinc.h>
-
-#include <pcap.h>
-#include <stdio.h>
-
-#include "interface.h"
-#include "addrtoname.h"
-#include "ethertype.h"
-#include "extract.h"
-#include "ppp.h"
-#include "chdlc.h"
-
-static void chdlc_slarp_print(const u_char *, u_int);
-
-const struct tok chdlc_cast_values[] = {
- { CHDLC_UNICAST, "unicast" },
- { CHDLC_BCAST, "bcast" },
- { 0, NULL}
-};
-
-
-/* Standard CHDLC printer */
-u_int
-chdlc_if_print(const struct pcap_pkthdr *h, register const u_char *p)
-{
- register u_int length = h->len;
- register u_int caplen = h->caplen;
-
- if (caplen < CHDLC_HDRLEN) {
- printf("[|chdlc]");
- return (caplen);
- }
- return (chdlc_print(p,length));
-}
-
-u_int
-chdlc_print(register const u_char *p, u_int length) {
- u_int proto;
-
- proto = EXTRACT_16BITS(&p[2]);
- if (eflag) {
- printf("%s, ethertype %s (0x%04x), length %u: ",
- tok2str(chdlc_cast_values, "0x%02x", p[0]),
- tok2str(ethertype_values, "Unknown", proto),
- proto,
- length);
- }
-
- length -= CHDLC_HDRLEN;
- p += CHDLC_HDRLEN;
-
- switch (proto) {
- case ETHERTYPE_IP:
- ip_print(gndo, p, length);
- break;
-#ifdef INET6
- case ETHERTYPE_IPV6:
- ip6_print(p, length);
- break;
-#endif
- case CHDLC_TYPE_SLARP:
- chdlc_slarp_print(p, length);
- break;
-#if 0
- case CHDLC_TYPE_CDP:
- chdlc_cdp_print(p, length);
- break;
-#endif
- case ETHERTYPE_MPLS:
- case ETHERTYPE_MPLS_MULTI:
- mpls_print(p, length);
- break;
- case ETHERTYPE_ISO:
- /* is the fudge byte set ? lets verify by spotting ISO headers */
- if (*(p+1) == 0x81 ||
- *(p+1) == 0x82 ||
- *(p+1) == 0x83)
- isoclns_print(p+1, length-1, length-1);
- else
- isoclns_print(p, length, length);
- break;
- default:
- if (!eflag)
- printf("unknown CHDLC protocol (0x%04x)", proto);
- break;
- }
-
- return (CHDLC_HDRLEN);
-}
-
-/*
- * The fixed-length portion of a SLARP packet.
- */
-struct cisco_slarp {
- u_int8_t code[4];
-#define SLARP_REQUEST 0
-#define SLARP_REPLY 1
-#define SLARP_KEEPALIVE 2
- union {
- struct {
- u_int8_t addr[4];
- u_int8_t mask[4];
- } addr;
- struct {
- u_int8_t myseq[4];
- u_int8_t yourseq[4];
- u_int8_t rel[2];
- } keep;
- } un;
-};
-
-#define SLARP_MIN_LEN 14
-#define SLARP_MAX_LEN 18
-
-static void
-chdlc_slarp_print(const u_char *cp, u_int length)
-{
- const struct cisco_slarp *slarp;
- u_int sec,min,hrs,days;
-
- printf("SLARP (length: %u), ",length);
- if (length < SLARP_MIN_LEN)
- goto trunc;
-
- slarp = (const struct cisco_slarp *)cp;
- TCHECK2(*slarp, SLARP_MIN_LEN);
- switch (EXTRACT_32BITS(&slarp->code)) {
- case SLARP_REQUEST:
- printf("request");
- /*
- * At least according to William "Chops" Westfield's
- * message in
- *
- * http://www.nethelp.no/net/cisco-hdlc.txt
- *
- * the address and mask aren't used in requests -
- * they're just zero.
- */
- break;
- case SLARP_REPLY:
- printf("reply %s/%s",
- ipaddr_string(&slarp->un.addr.addr),
- ipaddr_string(&slarp->un.addr.mask));
- break;
- case SLARP_KEEPALIVE:
- printf("keepalive: mineseen=0x%08x, yourseen=0x%08x, reliability=0x%04x",
- EXTRACT_32BITS(&slarp->un.keep.myseq),
- EXTRACT_32BITS(&slarp->un.keep.yourseq),
- EXTRACT_16BITS(&slarp->un.keep.rel));
-
- if (length >= SLARP_MAX_LEN) { /* uptime-stamp is optional */
- cp += SLARP_MIN_LEN;
- if (!TTEST2(*cp, 4))
- goto trunc;
- sec = EXTRACT_32BITS(cp) / 1000;
- min = sec / 60; sec -= min * 60;
- hrs = min / 60; min -= hrs * 60;
- days = hrs / 24; hrs -= days * 24;
- printf(", link uptime=%ud%uh%um%us",days,hrs,min,sec);
- }
- break;
- default:
- printf("0x%02x unknown", EXTRACT_32BITS(&slarp->code));
- if (vflag <= 1)
- print_unknown_data(cp+4,"\n\t",length-4);
- break;
- }
-
- if (SLARP_MAX_LEN < length && vflag)
- printf(", (trailing junk: %d bytes)", length - SLARP_MAX_LEN);
- if (vflag > 1)
- print_unknown_data(cp+4,"\n\t",length-4);
- return;
-
-trunc:
- printf("[|slarp]");
-}
-
-
-/*
- * Local Variables:
- * c-style: whitesmith
- * c-basic-offset: 8
- * End:
- */
OpenPOWER on IntegriCloud