]> The Tcpdump Group git mirrors - tcpdump/commitdiff
Retire BSD/OS support. 1124/head
authorDenis Ovsienko <[email protected]>
Sun, 28 Jan 2024 12:52:57 +0000 (12:52 +0000)
committerDenis Ovsienko <[email protected]>
Sun, 28 Jan 2024 12:52:57 +0000 (12:52 +0000)
The last release of BSD/OS was more than 20 years ago, so remove all
bits specific to building tcpdump on it, mainly ppp_bsdos_if_print(),
which has been a no-op on platforms other than BSD/OS.  Restoring the
function would not be practicable because in addition to the generic bit
rot it uses SLC_DIR, SLC_LLHL, SLC_BPFHDRLEN, SLC_CHL and struct
ppp_header, none of which appear in FreeBSD or illumos or Linux or
NetBSD or OpenBSD.  This is why protocol decoders should not depend on
OS-specific headers.

See also commit 4729260.

netdissect.h
print-fddi.c
print-ppp.c
print.c

index cefb1d669068c738d93d9fdff42e71047458c48a..2a371d8721d36a74de3239004748ef70f135ce1f 100644 (file)
@@ -566,7 +566,6 @@ extern void null_if_print IF_PRINTER_ARGS;
 extern void pflog_if_print IF_PRINTER_ARGS;
 extern void pktap_if_print IF_PRINTER_ARGS;
 extern void ppi_if_print IF_PRINTER_ARGS;
-extern void ppp_bsdos_if_print IF_PRINTER_ARGS;
 extern void ppp_hdlc_if_print IF_PRINTER_ARGS;
 extern void ppp_if_print IF_PRINTER_ARGS;
 extern void pppoe_if_print IF_PRINTER_ARGS;
index f95d707c503e8fe5745ae3443ef46de57c99e437..4de986eea537109c3d9c0ebdc5f333d27a6ee9cb 100644 (file)
@@ -84,7 +84,7 @@ struct fddi_header {
 /*
  * Some FDDI interfaces use bit-swapped addresses.
  */
-#if defined(__alpha) || defined(__bsdi) || defined(__NetBSD__) || defined(__linux__)
+#if defined(__alpha) || defined(__NetBSD__) || defined(__linux__)
 static int fddi_bitswap = 0;
 #else
 static int fddi_bitswap = 1;
index e218890fc6c049d3d2b6bde574078258b1e5462a..2cf06c3634885f8104e4630889e1d76065ded425 100644 (file)
 
 #include "netdissect-stdinc.h"
 
-#ifdef __bsdi__
-#include <net/slcompress.h>
-#include <net/if_ppp.h>
-#endif
-
 #include "netdissect.h"
 #include "extract.h"
 #include "addrtoname.h"
@@ -1732,166 +1727,3 @@ ppp_hdlc_if_print(netdissect_options *ndo,
 
        ndo->ndo_ll_hdr_len += hdrlen;
 }
-
-#define PPP_BSDI_HDRLEN 24
-
-/* BSD/OS specific PPP printer */
-void
-ppp_bsdos_if_print(netdissect_options *ndo,
-                   const struct pcap_pkthdr *h _U_, const u_char *p _U_)
-{
-       u_int hdrlength;
-#ifdef __bsdi__
-       u_int length = h->len;
-       u_int caplen = h->caplen;
-       uint16_t ptype;
-       uint8_t llhl;
-       const u_char *q;
-       u_int i;
-
-       ndo->ndo_protocol = "ppp_bsdos";
-       if (caplen < PPP_BSDI_HDRLEN) {
-               nd_print_trunc(ndo);
-               ndo->ndo_ll_hdr_len += caplen;
-               return;
-       }
-
-       hdrlength = 0;
-
-#if 0
-       if (GET_U_1(p) == PPP_ADDRESS &&
-           GET_U_1(p + 1) == PPP_CONTROL) {
-               if (ndo->ndo_eflag)
-                       ND_PRINT("%02x %02x ", GET_U_1(p),
-                                GET_U_1(p + 1));
-               p += 2;
-               hdrlength = 2;
-       }
-
-       if (ndo->ndo_eflag)
-               ND_PRINT("%u ", length);
-       /* Retrieve the protocol type */
-       if (GET_U_1(p) & 01) {
-               /* Compressed protocol field */
-               ptype = GET_U_1(p);
-               if (ndo->ndo_eflag)
-                       ND_PRINT("%02x ", ptype);
-               p++;
-               hdrlength += 1;
-       } else {
-               /* Un-compressed protocol field */
-               ptype = GET_BE_U_2(p);
-               if (ndo->ndo_eflag)
-                       ND_PRINT("%04x ", ptype);
-               p += 2;
-               hdrlength += 2;
-       }
-#else
-       ptype = 0;      /*XXX*/
-       if (ndo->ndo_eflag)
-               ND_PRINT("%c ", GET_U_1(p + SLC_DIR) ? 'O' : 'I');
-       llhl = GET_U_1(p + SLC_LLHL);
-       if (llhl) {
-               /* link level header */
-               struct ppp_header *ph;
-
-               q = p + SLC_BPFHDRLEN;
-               ph = (struct ppp_header *)q;
-               if (ph->phdr_addr == PPP_ADDRESS
-                && ph->phdr_ctl == PPP_CONTROL) {
-                       if (ndo->ndo_eflag)
-                               ND_PRINT("%02x %02x ", GET_U_1(q),
-                                        GET_U_1(q + 1));
-                       ptype = GET_BE_U_2(&ph->phdr_type);
-                       if (ndo->ndo_eflag && (ptype == PPP_VJC || ptype == PPP_VJNC)) {
-                               ND_PRINT("%s ", tok2str(ppptype2str,
-                                               "proto-#%u", ptype));
-                       }
-               } else {
-                       if (ndo->ndo_eflag) {
-                               ND_PRINT("LLH=[");
-                               for (i = 0; i < llhl; i++)
-                                       ND_PRINT("%02x", GET_U_1(q + i));
-                               ND_PRINT("] ");
-                       }
-               }
-       }
-       if (ndo->ndo_eflag)
-               ND_PRINT("%u ", length);
-       if (GET_U_1(p + SLC_CHL)) {
-               q = p + SLC_BPFHDRLEN + llhl;
-
-               switch (ptype) {
-               case PPP_VJC:
-                       ptype = vjc_print(ndo, q, ptype);
-                       hdrlength = PPP_BSDI_HDRLEN;
-                       p += hdrlength;
-                       switch (ptype) {
-                       case PPP_IP:
-                               ip_print(ndo, p, length);
-                               break;
-                       case PPP_IPV6:
-                               ip6_print(ndo, p, length);
-                               break;
-                       case PPP_MPLS_UCAST:
-                       case PPP_MPLS_MCAST:
-                               mpls_print(ndo, p, length);
-                               break;
-                       }
-                       goto printx;
-               case PPP_VJNC:
-                       ptype = vjc_print(ndo, q, ptype);
-                       hdrlength = PPP_BSDI_HDRLEN;
-                       p += hdrlength;
-                       switch (ptype) {
-                       case PPP_IP:
-                               ip_print(ndo, p, length);
-                               break;
-                       case PPP_IPV6:
-                               ip6_print(ndo, p, length);
-                               break;
-                       case PPP_MPLS_UCAST:
-                       case PPP_MPLS_MCAST:
-                               mpls_print(ndo, p, length);
-                               break;
-                       }
-                       goto printx;
-               default:
-                       if (ndo->ndo_eflag) {
-                               ND_PRINT("CH=[");
-                               for (i = 0; i < llhl; i++)
-                                       ND_PRINT("%02x",
-                                           GET_U_1(q + i));
-                               ND_PRINT("] ");
-                       }
-                       break;
-               }
-       }
-
-       hdrlength = PPP_BSDI_HDRLEN;
-#endif
-
-       length -= hdrlength;
-       p += hdrlength;
-
-       switch (ptype) {
-       case PPP_IP:
-               ip_print(p, length);
-               break;
-       case PPP_IPV6:
-               ip6_print(ndo, p, length);
-               break;
-       case PPP_MPLS_UCAST:
-       case PPP_MPLS_MCAST:
-               mpls_print(ndo, p, length);
-               break;
-       default:
-               ND_PRINT("%s ", tok2str(ppptype2str, "unknown PPP protocol (0x%04x)", ptype));
-       }
-
-printx:
-#else /* __bsdi */
-       hdrlength = 0;
-#endif /* __bsdi__ */
-       ndo->ndo_ll_hdr_len += hdrlength;
-}
diff --git a/print.c b/print.c
index a50ef88925c1a12f4d47d1bfe98222514507832b..b9ba5997d789c48ce1ba243864d33b5ed1bb158a 100644 (file)
--- a/print.c
+++ b/print.c
@@ -194,9 +194,6 @@ static const struct printer printers[] = {
 #ifdef DLT_PPI
        { ppi_if_print,         DLT_PPI },
 #endif
-#ifdef DLT_PPP_BSDOS
-       { ppp_bsdos_if_print,   DLT_PPP_BSDOS },
-#endif
 #ifdef DLT_PPP_SERIAL
        { ppp_hdlc_if_print,    DLT_PPP_SERIAL },
 #endif