From: Denis Ovsienko Date: Sun, 28 Jan 2024 12:52:57 +0000 (+0000) Subject: Retire BSD/OS support. X-Git-Url: https://git.tcpdump.org/tcpdump/commitdiff_plain/1bec29abe6807795e48b3ea821f745b4f1ba4c6a Retire BSD/OS support. 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. --- diff --git a/netdissect.h b/netdissect.h index cefb1d66..2a371d87 100644 --- a/netdissect.h +++ b/netdissect.h @@ -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; diff --git a/print-fddi.c b/print-fddi.c index f95d707c..4de986ee 100644 --- a/print-fddi.c +++ b/print-fddi.c @@ -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; diff --git a/print-ppp.c b/print-ppp.c index e218890f..2cf06c36 100644 --- a/print-ppp.c +++ b/print-ppp.c @@ -37,11 +37,6 @@ #include "netdissect-stdinc.h" -#ifdef __bsdi__ -#include -#include -#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 a50ef889..b9ba5997 100644 --- 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