tcpdump: update to 4.99.2
[openwrt/staging/hauke.git] / package / network / utils / tcpdump / patches / 100-tcpdump_mini.patch
index 8feb3070e717df1c5c38a0aa74b98580f4bb8ff4..8a014cabf0b4ec6943f7a8f277edd7e3782697c0 100644 (file)
@@ -1,15 +1,14 @@
 --- a/Makefile.in
 +++ b/Makefile.in
-@@ -70,6 +70,87 @@ DEPENDENCY_CFLAG = @DEPENDENCY_CFLAG@
-       @rm -f $@
      $(CC) $(FULL_CFLAGS) -c $(srcdir)/$*.c
+@@ -73,6 +73,86 @@ DEPENDENCY_CFLAG = @DEPENDENCY_CFLAG@
CSRC =        fptype.c tcpdump.c
  
 +ifdef TCPDUMP_MINI
 +
-+CSRC=\
-+      tcpdump.c \
-+      util.c \
-+      setsignal.c \
++LIBNETDISSECT_SRC=\
++      netdissect.c \
++      netdissect-alloc.c \
 +      addrtoname.c \
 +      addrtostr.c \
 +      af.c \
 +      checksum.c \
 +      cpack.c \
 +      gmpls.c \
-+      gmt2local.c \
 +      in_cksum.c \
 +      ipproto.c \
 +      l2vpn.c \
 +      machdep.c \
++      ntp.c \
 +      nlpid.c \
 +      oui.c \
 +      parsenfsfh.c \
 +      print.c \
 +      print-802_11.c \
 +      print-aodv.c \
++      print-arista.c \
 +      print-arp.c \
 +      print-ascii.c \
-+      print-bgp.c \
 +      print-bootp.c \
-+      print-cdp.c \
 +      print-dhcp6.c \
 +      print-domain.c \
 +      print-eap.c \
 +      print-ether.c \
 +      print-ftp.c \
-+      print-forces.c \
 +      print-gre.c \
 +      print-http.c \
 +      print-icmp.c \
 +      print-icmp6.c \
 +      print-igmp.c \
++      print-ip-demux.c \
 +      print-ip.c \
 +      print-ip6.c \
 +      print-ip6opts.c \
@@ -52,7 +50,7 @@
 +      print-llc.c \
 +      print-lldp.c \
 +      print-loopback.c \
-+      print-m3ua.c \
++      print-macsec.c \
 +      print-nfs.c \
 +      print-ntp.c \
 +      print-null.c \
@@ -67,7 +65,6 @@
 +      print-rsvp.c \
 +      print-rt6.c \
 +      print-rtsp.c \
-+      print-sctp.c \
 +      print-sip.c \
 +      print-sll.c \
 +      print-smtp.c \
 +      print-telnet.c \
 +      print-tftp.c \
 +      print-udp.c \
++      print-unsupported.c \
++      print-whois.c \
 +      signature.c \
 +      strtoaddr.c \
 +      util-print.c
 +
 +else
 +
- CSRC =        setsignal.c tcpdump.c util.c
  LIBNETDISSECT_SRC=\
-@@ -236,12 +317,16 @@ LIBNETDISSECT_SRC=\
+       addrtoname.c \
+       addrtostr.c \
+@@ -254,6 +334,8 @@ LIBNETDISSECT_SRC=\
        strtoaddr.c \
        util-print.c
  
 +endif
 +
  LOCALSRC = @LOCALSRC@
- GENSRC = version.c
  LIBOBJS = @LIBOBJS@
  
-+ifndef TCPDUMP_MINI
- LIBNETDISSECT_OBJ=$(LIBNETDISSECT_SRC:.c=.o) ${LOCALSRC:.c=.o} ${LIBOBJS}
- LIBNETDISSECT=libnetdissect.a
-+endif
- SRC = $(CSRC) $(GENSRC) $(LOCALSRC) $(LIBNETDISSECT_SRC)
-@@ -367,10 +452,12 @@ $(PROG): $(OBJ) @V_PCAPDEP@
-       @rm -f $@
-       $(CC) $(FULL_CFLAGS) $(LDFLAGS) -o $@ $(OBJ) $(LIBS)
-+ifndef TCPDUMP_MINI
- $(LIBNETDISSECT): $(LIBNETDISSECT_OBJ)
-       @rm -f $@
-       $(AR) cr $@ $(LIBNETDISSECT_OBJ)
-       $(RANLIB) $@
-+endif
- datalinks.o: $(srcdir)/missing/datalinks.c
-       $(CC) $(FULL_CFLAGS) -o $@ -c $(srcdir)/missing/datalinks.c
 --- a/addrtoname.c
 +++ b/addrtoname.c
-@@ -564,8 +564,10 @@ linkaddr_string(netdissect_options *ndo,
-       if (type == LINKADDR_ETHER && len == ETHER_ADDR_LEN)
+@@ -680,8 +680,10 @@ linkaddr_string(netdissect_options *ndo,
+       if (type == LINKADDR_ETHER && len == MAC_ADDR_LEN)
                return (etheraddr_string(ndo, ep));
  
 +#ifndef TCPDUMP_MINI
 +#endif
  
        tp = lookup_bytestring(ndo, ep, len);
-       if (tp->e_name)
-@@ -1200,6 +1202,7 @@ init_addrtoname(netdissect_options *ndo,
+       if (tp->bs_name)
+@@ -1260,6 +1262,7 @@ init_addrtoname(netdissect_options *ndo,
        init_ipxsaparray(ndo);
  }
  
  const char *
  dnaddr_string(netdissect_options *ndo, u_short dnaddr)
  {
-@@ -1219,6 +1222,7 @@ dnaddr_string(netdissect_options *ndo, u
+@@ -1276,6 +1279,7 @@ dnaddr_string(netdissect_options *ndo, u
  
        return(tp->name);
  }
  
  /* Return a zero'ed hnamemem struct and cuts down on calloc() overhead */
  struct hnamemem *
---- a/print.c
-+++ b/print.c
-@@ -48,6 +48,7 @@ static const struct printer printers[] =
- #ifdef DLT_IPNET
-       { ipnet_if_print,       DLT_IPNET },
- #endif
-+#ifndef TCPDUMP_MINI
- #ifdef DLT_IEEE802_15_4
-       { ieee802_15_4_if_print, DLT_IEEE802_15_4 },
- #endif
-@@ -57,12 +58,14 @@ static const struct printer printers[] =
- #ifdef DLT_PPI
-       { ppi_if_print,         DLT_PPI },
- #endif
-+#endif
- #ifdef DLT_NETANALYZER
-       { netanalyzer_if_print, DLT_NETANALYZER },
- #endif
- #ifdef DLT_NETANALYZER_TRANSPARENT
-       { netanalyzer_transparent_if_print, DLT_NETANALYZER_TRANSPARENT },
- #endif
-+#ifndef TCPDUMP_MINI
- #if defined(DLT_NFLOG) && defined(HAVE_PCAP_NFLOG_H)
-       { nflog_if_print,       DLT_NFLOG},
- #endif
-@@ -75,10 +78,12 @@ static const struct printer printers[] =
- #ifdef DLT_IP_OVER_FC
-       { ipfc_if_print,        DLT_IP_OVER_FC },
- #endif
-+#endif
-       { null_if_print,        DLT_NULL },
- #ifdef DLT_LOOP
-       { null_if_print,        DLT_LOOP },
- #endif
-+#ifndef TCPDUMP_MINI
- #ifdef DLT_APPLE_IP_OVER_IEEE1394
-       { ap1394_if_print,      DLT_APPLE_IP_OVER_IEEE1394 },
- #endif
-@@ -92,7 +97,9 @@ static const struct printer printers[] =
- #ifdef DLT_ARCNET_LINUX
-       { arcnet_linux_if_print, DLT_ARCNET_LINUX },
- #endif
-+#endif
-       { raw_if_print,         DLT_RAW },
-+#ifndef TCPDUMP_MINI
- #ifdef DLT_IPV4
-       { raw_if_print,         DLT_IPV4 },
- #endif
-@@ -116,17 +123,21 @@ static const struct printer printers[] =
- #ifdef DLT_HDLC
-       { chdlc_if_print,       DLT_HDLC },
- #endif
-+#endif
- #ifdef DLT_PPP_ETHER
-       { pppoe_if_print,       DLT_PPP_ETHER },
- #endif
-+#ifndef TCPDUMP_MINI
- #if defined(DLT_PFLOG) && defined(HAVE_NET_IF_PFLOG_H)
-       { pflog_if_print,       DLT_PFLOG },
- #endif
-       { token_if_print,       DLT_IEEE802 },
-       { fddi_if_print,        DLT_FDDI },
-+#endif
- #ifdef DLT_LINUX_SLL
-       { sll_if_print,         DLT_LINUX_SLL },
- #endif
-+#ifndef TCPDUMP_MINI
- #ifdef DLT_FR
-       { fr_if_print,          DLT_FR },
- #endif
-@@ -198,6 +209,7 @@ static const struct printer printers[] =
- #ifdef DLT_PKTAP
-       { pktap_if_print,       DLT_PKTAP },
- #endif
-+#endif
- #ifdef DLT_IEEE802_11_RADIO
-       { ieee802_11_radio_if_print,    DLT_IEEE802_11_RADIO },
- #endif
-@@ -214,12 +226,14 @@ static const struct printer printers[] =
- #ifdef DLT_PPP_WITHDIRECTION
-       { ppp_if_print,         DLT_PPP_WITHDIRECTION },
- #endif
-+#ifndef TCPDUMP_MINI
- #ifdef DLT_PPP_BSDOS
-       { ppp_bsdos_if_print,   DLT_PPP_BSDOS },
- #endif
- #ifdef DLT_PPP_SERIAL
-       { ppp_hdlc_if_print,    DLT_PPP_SERIAL },
- #endif
-+#endif
-       { NULL,                 0 },
- };
 --- a/print-ether.c
 +++ b/print-ether.c
-@@ -332,6 +332,7 @@ ethertype_print(netdissect_options *ndo,
-               arp_print(ndo, p, length, caplen);
+@@ -545,6 +545,7 @@ ethertype_print(netdissect_options *ndo,
+               arp_print(ndo, p, length, caplen);
                return (1);
  
 +#ifndef TCPDUMP_MINI
        case ETHERTYPE_DN:
                decnet_print(ndo, p, length, caplen);
                return (1);
-@@ -354,6 +355,7 @@ ethertype_print(netdissect_options *ndo,
-       case ETHERTYPE_ISO:
-               isoclns_print(ndo, p + 1, length - 1, length - 1);
+@@ -575,6 +576,7 @@ ethertype_print(netdissect_options *ndo,
+               ND_TCHECK_LEN(p, 1);
+               isoclns_print(ndo, p + 1, length - 1);
                return(1);
 +#endif
  
        case ETHERTYPE_PPPOED:
        case ETHERTYPE_PPPOES:
-@@ -366,9 +368,11 @@ ethertype_print(netdissect_options *ndo,
-               eap_print(ndo, p, length);
+@@ -587,9 +589,11 @@ ethertype_print(netdissect_options *ndo,
+               eapol_print(ndo, p);
                return (1);
  
 +#ifndef TCPDUMP_MINI
-       case ETHERTYPE_RRCP:
-               rrcp_print(ndo, p - 14 , length + 14);
+       case ETHERTYPE_REALTEK:
+               rtl_print(ndo, p, length, src, dst);
                return (1);
 +#endif
  
        case ETHERTYPE_PPP:
                if (length) {
-@@ -377,6 +381,7 @@ ethertype_print(netdissect_options *ndo,
+@@ -598,6 +602,7 @@ ethertype_print(netdissect_options *ndo,
                }
                return (1);
  
 +#ifndef TCPDUMP_MINI
        case ETHERTYPE_MPCP:
-               mpcp_print(ndo, p, length);
+               mpcp_print(ndo, p, length);
                return (1);
-@@ -389,6 +394,7 @@ ethertype_print(netdissect_options *ndo,
+@@ -610,19 +615,23 @@ ethertype_print(netdissect_options *ndo,
        case ETHERTYPE_CFM_OLD:
                cfm_print(ndo, p, length);
                return (1);
  
        case ETHERTYPE_LLDP:
                lldp_print(ndo, p, length);
-@@ -398,6 +404,7 @@ ethertype_print(netdissect_options *ndo,
+               return (1);
++#ifndef TCPDUMP_MINI
+       case ETHERTYPE_NSH:
+               nsh_print(ndo, p, length);
+               return (1);
++#endif
+       case ETHERTYPE_LOOPBACK:
                loopback_print(ndo, p, length);
-                 return (1);
+               return (1);
  
 +#ifndef TCPDUMP_MINI
        case ETHERTYPE_MPLS:
        case ETHERTYPE_MPLS_MULTI:
                mpls_print(ndo, p, length);
-@@ -427,6 +434,7 @@ ethertype_print(netdissect_options *ndo,
-       case ETHERTYPE_MEDSA:
-               medsa_print(ndo, p, length, caplen);
+@@ -652,6 +661,7 @@ ethertype_print(netdissect_options *ndo,
+       case ETHERTYPE_PTP:
+               ptp_print(ndo, p, length);
                return (1);
 +#endif
  
        case ETHERTYPE_SCA:
 --- a/print-gre.c
 +++ b/print-gre.c
-@@ -203,6 +203,7 @@ gre_print_0(netdissect_options *ndo, con
+@@ -207,6 +207,7 @@ gre_print_0(netdissect_options *ndo, con
        case ETHERTYPE_IPV6:
                ip6_print(ndo, bp, len);
                break;
        case ETHERTYPE_MPLS:
                mpls_print(ndo, bp, len);
                break;
-@@ -218,6 +219,7 @@ gre_print_0(netdissect_options *ndo, con
+@@ -219,6 +220,7 @@ gre_print_0(netdissect_options *ndo, con
+       case ETHERTYPE_GRE_ISO:
+               isoclns_print(ndo, bp, len);
+               break;
++#endif
        case ETHERTYPE_TEB:
-               ether_print(ndo, bp, len, len, NULL, NULL);
+               ether_print(ndo, bp, len, ND_BYTES_AVAILABLE_AFTER(bp), NULL, NULL);
                break;
+--- a/print-icmp6.c
++++ b/print-icmp6.c
+@@ -1371,7 +1371,7 @@ get_upperlayer(netdissect_options *ndo,
+                       nh = GET_U_1(fragh->ip6f_nxt);
+                       hlen = sizeof(struct ip6_frag);
+                       break;
+-
++#ifndef TCPDUMP_MINI
+               case IPPROTO_AH:
+                       ah = (const struct ah *)bp;
+                       if (!ND_TTEST_1(ah->ah_len))
+@@ -1379,7 +1379,7 @@ get_upperlayer(netdissect_options *ndo,
+                       nh = GET_U_1(ah->ah_nxt);
+                       hlen = (GET_U_1(ah->ah_len) + 2) << 2;
+                       break;
+-
 +#endif
-       default:
-               ND_PRINT((ndo, "gre-proto-0x%x", prot));
-       }
+               default:        /* unknown or undecodable header */
+                       *prot = nh; /* meaningless, but set here anyway */
+                       return(NULL);
 --- a/print-igmp.c
 +++ b/print-igmp.c
-@@ -304,6 +304,7 @@ igmp_print(netdissect_options *ndo,
-         ND_TCHECK2(bp[4], 4);
-         ND_PRINT((ndo, "igmp leave %s", ipaddr_string(ndo, &bp[4])));
+@@ -269,6 +269,7 @@ igmp_print(netdissect_options *ndo,
+     case 0x17:
+         ND_PRINT("igmp leave %s", GET_IPADDR_STRING(bp + 4));
          break;
 +#ifndef TCPDUMP_MINI
      case 0x13:
-         ND_PRINT((ndo, "igmp dvmrp"));
+         ND_PRINT("igmp dvmrp");
          if (len < 8)
-@@ -315,6 +316,7 @@ igmp_print(netdissect_options *ndo,
-         ND_PRINT((ndo, "igmp pimv1"));
+@@ -280,6 +281,7 @@ igmp_print(netdissect_options *ndo,
+         ND_PRINT("igmp pimv1");
          pimv1_print(ndo, bp, len);
          break;
 +#endif
      case 0x1e:
-         print_mresp(ndo, bp, len);
+         print_mtrace(ndo, "mresp", bp, len);
          break;
---- a/print-ip6.c
-+++ b/print-ip6.c
-@@ -297,6 +297,7 @@ ip6_print(netdissect_options *ndo, const
-                       advance = dstopt_print(ndo, cp);
-                       nh = *cp;
-                       break;
-+#ifndef TCPDUMP_MINI
-               case IPPROTO_FRAGMENT:
-                       advance = frag6_print(ndo, cp, (const u_char *)ip6);
-                       if (ndo->ndo_snapend <= cp + advance)
-@@ -318,6 +319,7 @@ ip6_print(netdissect_options *ndo, const
-                       advance = mobility_print(ndo, cp, (const u_char *)ip6);
-                       nh = *cp;
-                       return;
-+#endif
-               case IPPROTO_ROUTING:
-                       advance = rt6_print(ndo, cp, (const u_char *)ip6);
-                       nh = *cp;
-@@ -325,9 +327,11 @@ ip6_print(netdissect_options *ndo, const
-               case IPPROTO_SCTP:
-                       sctp_print(ndo, cp, (const u_char *)ip6, len);
-                       return;
-+#ifndef TCPDUMP_MINI
-               case IPPROTO_DCCP:
-                       dccp_print(ndo, cp, (const u_char *)ip6, len);
-                       return;
-+#endif
-               case IPPROTO_TCP:
-                       tcp_print(ndo, cp, len, (const u_char *)ip6, fragmented);
-                       return;
-@@ -337,6 +341,7 @@ ip6_print(netdissect_options *ndo, const
-               case IPPROTO_ICMPV6:
-                       icmp6_print(ndo, cp, len, (const u_char *)ip6, fragmented);
-                       return;
-+#ifndef TCPDUMP_MINI
-               case IPPROTO_AH:
-                       advance = ah_print(ndo, cp);
-                       nh = *cp;
-@@ -360,6 +365,7 @@ ip6_print(netdissect_options *ndo, const
-               case IPPROTO_PIM:
-                       pim_print(ndo, cp, len, (const u_char *)ip6);
-                       return;
-+#endif
-               case IPPROTO_OSPF:
-                       ospf6_print(ndo, cp, len);
-@@ -373,9 +379,11 @@ ip6_print(netdissect_options *ndo, const
-                       ip_print(ndo, cp, len);
-                       return;
-+#ifndef TCPDUMP_MINI
-                 case IPPROTO_PGM:
-                         pgm_print(ndo, cp, len, (const u_char *)ip6);
-                         return;
-+#endif
-               case IPPROTO_GRE:
-                       gre_print(ndo, cp, len);
---- a/print-ip.c
-+++ b/print-ip.c
-@@ -327,6 +327,7 @@ ip_print_demux(netdissect_options *ndo,
+--- a/print-ip-demux.c
++++ b/print-ip-demux.c
+@@ -48,6 +48,7 @@ ip_demux_print(netdissect_options *ndo,
  again:
-       switch (ipds->nh) {
+       switch (nh) {
  
 +#ifndef TCPDUMP_MINI
        case IPPROTO_AH:
-               ipds->nh = *ipds->cp;
-               ipds->advance = ah_print(ndo, ipds->cp);
-@@ -361,14 +362,17 @@ again:
-               ipds->nh = enh & 0xff;
-               goto again;
+               if (!ND_TTEST_1(bp)) {
+                       ndo->ndo_protocol = "ah";
+@@ -85,7 +86,9 @@ again:
+                */
+               break;
        }
 +#endif
  
++#ifndef TCPDUMP_MINI
        case IPPROTO_SCTP:
-               sctp_print(ndo, ipds->cp, (const u_char *)ipds->ip, ipds->len);
+               sctp_print(ndo, bp, iph, length);
                break;
-+#ifndef TCPDUMP_MINI
+@@ -93,7 +96,7 @@ again:
        case IPPROTO_DCCP:
-               dccp_print(ndo, ipds->cp, (const u_char *)ipds->ip, ipds->len);
+               dccp_print(ndo, bp, iph, length);
                break;
+-
 +#endif
        case IPPROTO_TCP:
-               /* pass on the MF bit plus the offset to detect fragments */
-@@ -388,6 +392,7 @@ again:
-                          ipds->off & (IP_MF|IP_OFFMASK));
+               tcp_print(ndo, bp, length, iph, fragmented);
+               break;
+@@ -122,6 +125,7 @@ again:
+               }
                break;
  
 +#ifndef TCPDUMP_MINI
        case IPPROTO_PIGP:
                /*
                 * XXX - the current IANA protocol number assignments
-@@ -408,14 +413,17 @@ again:
+@@ -142,14 +146,17 @@ again:
        case IPPROTO_EIGRP:
-               eigrp_print(ndo, ipds->cp, ipds->len);
+               eigrp_print(ndo, bp, length);
                break;
 +#endif
  
        case IPPROTO_ND:
-               ND_PRINT((ndo, " nd %d", ipds->len));
+               ND_PRINT(" nd %u", length);
                break;
  
 +#ifndef TCPDUMP_MINI
        case IPPROTO_EGP:
-               egp_print(ndo, ipds->cp, ipds->len);
+               egp_print(ndo, bp, length);
                break;
 +#endif
  
        case IPPROTO_OSPF:
-               ospf_print(ndo, ipds->cp, ipds->len, (const u_char *)ipds->ip);
-@@ -448,6 +456,7 @@ again:
-               gre_print(ndo, ipds->cp, ipds->len);
+               if (ver == 6)
+@@ -186,6 +193,7 @@ again:
+               gre_print(ndo, bp, length);
                break;
  
 +#ifndef TCPDUMP_MINI
        case IPPROTO_MOBILE:
-               mobile_print(ndo, ipds->cp, ipds->len);
+               mobile_print(ndo, bp, length);
                break;
-@@ -476,6 +485,7 @@ again:
+@@ -205,6 +213,7 @@ again:
        case IPPROTO_PGM:
-               pgm_print(ndo, ipds->cp, ipds->len, (const u_char *)ipds->ip);
+               pgm_print(ndo, bp, length, iph);
                break;
 +#endif
  
-       default:
-               if (ndo->ndo_nflag==0 && (proto = getprotobynumber(ipds->nh)) != NULL)
+       case IPPROTO_ETHERNET:
+               if (ver == 6)
+--- a/print-ip6.c
++++ b/print-ip6.c
+@@ -135,10 +135,11 @@ ip6_finddst(netdissect_options *ndo, nd_
+                        * Only one routing header to a customer.
+                        */
+                       goto done;
+-
++#ifndef TCPDUMP_MINI
+               case IPPROTO_AH:
+               case IPPROTO_ESP:
+               case IPPROTO_IPCOMP:
++#endif
+               default:
+                       /*
+                        * AH and ESP are, in the RFCs that describe them,
+@@ -375,6 +376,7 @@ ip6_print(netdissect_options *ndo, const
+                       nh = GET_U_1(cp);
+                       break;
++#ifndef TCPDUMP_MINI
+               case IPPROTO_FRAGMENT:
+                       advance = frag6_print(ndo, cp, (const u_char *)ip6);
+                       if (advance < 0 || ndo->ndo_snapend <= cp + advance) {
+@@ -405,7 +407,7 @@ ip6_print(netdissect_options *ndo, const
+                       nh = GET_U_1(cp);
+                       nd_pop_packet_info(ndo);
+                       return;
+-
++#endif
+               case IPPROTO_ROUTING:
+                       ND_TCHECK_1(cp);
+                       advance = rt6_print(ndo, cp, (const u_char *)ip6);
 --- a/print-llc.c
 +++ b/print-llc.c
-@@ -204,6 +204,7 @@ llc_print(netdissect_options *ndo, const
+@@ -207,6 +207,7 @@ llc_print(netdissect_options *ndo, const
                hdrlen = 4;     /* DSAP, SSAP, 2-byte control field */
        }
  
        if (ssap_field == LLCSAP_GLOBAL && dsap_field == LLCSAP_GLOBAL) {
                /*
                 * This is an Ethernet_802.3 IPX frame; it has an
-@@ -226,6 +227,7 @@ llc_print(netdissect_options *ndo, const
+@@ -229,6 +230,7 @@ llc_print(netdissect_options *ndo, const
              ipx_print(ndo, p, length);
              return (0);               /* no LLC header */
        }
  
        dsap = dsap_field & ~LLC_IG;
        ssap = ssap_field & ~LLC_GSAP;
-@@ -289,6 +291,7 @@ llc_print(netdissect_options *ndo, const
+@@ -292,6 +294,7 @@ llc_print(netdissect_options *ndo, const
                return (hdrlen);
        }
  
        if (ssap == LLCSAP_IPX && dsap == LLCSAP_IPX &&
            control == LLC_UI) {
                /*
-@@ -302,6 +305,7 @@ llc_print(netdissect_options *ndo, const
+@@ -305,6 +308,7 @@ llc_print(netdissect_options *ndo, const
                ipx_print(ndo, p, length);
                return (hdrlen);
        }
  
  #ifdef ENABLE_SMB
        if (ssap == LLCSAP_NETBEUI && dsap == LLCSAP_NETBEUI
-@@ -320,11 +324,13 @@ llc_print(netdissect_options *ndo, const
+@@ -323,12 +327,13 @@ llc_print(netdissect_options *ndo, const
                return (hdrlen);
        }
  #endif
 +#ifndef TCPDUMP_MINI
        if (ssap == LLCSAP_ISONS && dsap == LLCSAP_ISONS
            && control == LLC_UI) {
-               isoclns_print(ndo, p, length, caplen);
+               isoclns_print(ndo, p, length);
                return (hdrlen);
        }
+-
 +#endif
        if (!ndo->ndo_eflag) {
                if (ssap == dsap) {
-@@ -461,6 +467,7 @@ snap_print(netdissect_options *ndo, cons
-                 case PID_CISCO_CDP:
-                         cdp_print(ndo, p, length, caplen);
-                         return (1);
+                       if (src == NULL || dst == NULL)
+@@ -484,6 +489,7 @@ snap_print(netdissect_options *ndo, cons
+       case OUI_CISCO:
+                 switch (et) {
 +#ifndef TCPDUMP_MINI
-                 case PID_CISCO_DTP:
-                         dtp_print(ndo, p, length);
+                 case PID_CISCO_CDP:
+                         cdp_print(ndo, p, length);
                          return (1);
-@@ -470,6 +477,7 @@ snap_print(netdissect_options *ndo, cons
+@@ -496,6 +502,7 @@ snap_print(netdissect_options *ndo, cons
                  case PID_CISCO_VTP:
                          vtp_print(ndo, p, length);
                          return (1);
                  case PID_CISCO_PVST:
                  case PID_CISCO_VLANBRIDGE:
                          stp_print(ndo, p, length);
-@@ -482,6 +490,7 @@ snap_print(netdissect_options *ndo, cons
+@@ -508,6 +515,7 @@ snap_print(netdissect_options *ndo, cons
        case OUI_RFC2684:
                switch (et) {
  
                case PID_RFC2684_ETH_FCS:
                case PID_RFC2684_ETH_NOFCS:
                        /*
-@@ -543,6 +552,7 @@ snap_print(netdissect_options *ndo, cons
+@@ -569,6 +577,7 @@ snap_print(netdissect_options *ndo, cons
                         */
                        fddi_print(ndo, p, length, caplen);
                        return (1);
                        stp_print(ndo, p, length);
 --- a/print-null.c
 +++ b/print-null.c
-@@ -114,6 +114,7 @@ null_if_print(netdissect_options *ndo, c
+@@ -116,6 +116,7 @@ null_if_print(netdissect_options *ndo, c
                ip6_print(ndo, p, length);
                break;
  
 +#ifndef TCPDUMP_MINI
        case BSD_AFNUM_ISO:
-               isoclns_print(ndo, p, length, caplen);
+               isoclns_print(ndo, p, length);
                break;
-@@ -125,6 +126,7 @@ null_if_print(netdissect_options *ndo, c
+@@ -127,6 +128,7 @@ null_if_print(netdissect_options *ndo, c
        case BSD_AFNUM_IPX:
                ipx_print(ndo, p, length);
                break;
                /* unknown AF_ value */
 --- a/print-ppp.c
 +++ b/print-ppp.c
-@@ -1346,6 +1346,7 @@ trunc:
-       return 0;
- }
+@@ -1355,6 +1355,7 @@ trunc:
+  * The length argument is the on-the-wire length, not the captured
+  * length; we can only un-escape the captured part.
+  */
 +#ifndef TCPDUMP_MINI
  static void
  ppp_hdlc(netdissect_options *ndo,
-          const u_char *p, int length)
-@@ -1424,6 +1425,7 @@ trunc:
-       free(b);
-       ND_PRINT((ndo, "[|ppp]"));
+          const u_char *p, u_int length)
+@@ -1451,17 +1452,19 @@ trunc:
+       ndo->ndo_snapend = se;
+       nd_print_trunc(ndo);
  }
+-
 +#endif
  
  /* PPP */
-@@ -1431,10 +1433,12 @@ static void
+ static void
  handle_ppp(netdissect_options *ndo,
-            u_int proto, const u_char *p, int length)
+            u_int proto, const u_char *p, u_int length)
  {
 +#ifndef TCPDUMP_MINI
        if ((proto & 0xff00) == 0x7e00) { /* is this an escape code ? */
  
        switch (proto) {
        case PPP_LCP: /* fall through */
-@@ -1467,6 +1471,7 @@ handle_ppp(netdissect_options *ndo,
+@@ -1494,6 +1497,7 @@ handle_ppp(netdissect_options *ndo,
        case PPP_IPV6:
                ip6_print(ndo, p, length);
                break;
        case ETHERTYPE_IPX:     /*XXX*/
        case PPP_IPX:
                ipx_print(ndo, p, length);
-@@ -1478,6 +1483,7 @@ handle_ppp(netdissect_options *ndo,
+@@ -1505,6 +1509,7 @@ handle_ppp(netdissect_options *ndo,
        case PPP_MPLS_MCAST:
                mpls_print(ndo, p, length);
                break;
 +#endif
        case PPP_COMP:
-               ND_PRINT((ndo, "compressed PPP data"));
+               ND_PRINT("compressed PPP data");
                break;
-@@ -1618,6 +1624,7 @@ ppp_if_print(netdissect_options *ndo,
-       return (0);
+@@ -1652,6 +1657,7 @@ ppp_if_print(netdissect_options *ndo,
+       ppp_print(ndo, p, length);
  }
  
 +#ifndef TCPDUMP_MINI
  /*
   * PPP I/F printer to use if we know that RFC 1662-style PPP in HDLC-like
   * framing, or Cisco PPP with HDLC framing as per section 4.3.1 of RFC 1547,
-@@ -1840,6 +1847,7 @@ printx:
+@@ -1895,3 +1901,4 @@ printx:
  #endif /* __bsdi__ */
-       return (hdrlength);
+       ndo->ndo_ll_hdr_len += hdrlength;
  }
 +#endif
- /*
 --- a/print-sll.c
 +++ b/print-sll.c
-@@ -236,12 +236,14 @@ recurse:
+@@ -465,12 +465,14 @@ recurse:
                 */
                switch (ether_type) {
  
                        /*
 --- a/print-tcp.c
 +++ b/print-tcp.c
-@@ -565,12 +565,14 @@ tcp_print(netdissect_options *ndo,
-                                 ND_PRINT((ndo, " %u", utoval));
+@@ -614,6 +614,7 @@ tcp_print(netdissect_options *ndo,
+                                 ND_PRINT(" %u", utoval);
                                  break;
  
 +#ifndef TCPDUMP_MINI
                          case TCPOPT_MPTCP:
-                                 datalen = len - 2;
-                                 LENCHECK(datalen);
-                                 if (!mptcp_print(ndo, cp-2, len, flags))
+                             {
+                                 const u_char *snapend_save;
+@@ -637,7 +638,7 @@ tcp_print(netdissect_options *ndo,
                                          goto bad;
                                  break;
+                             }
+-
 +#endif
                          case TCPOPT_FASTOPEN:
                                  datalen = len - 2;
-@@ -645,6 +647,7 @@ tcp_print(netdissect_options *ndo,
+                                 LENCHECK(datalen);
+@@ -722,6 +723,7 @@ tcp_print(netdissect_options *ndo,
                  return;
          }
  
          if (ndo->ndo_packettype) {
                  switch (ndo->ndo_packettype) {
                  case PT_ZMTP1:
-@@ -656,6 +659,7 @@ tcp_print(netdissect_options *ndo,
+@@ -737,6 +739,7 @@ tcp_print(netdissect_options *ndo,
                  }
                  return;
          }
  
          if (IS_SRC_OR_DST_PORT(TELNET_PORT)) {
                  telnet_print(ndo, bp, length);
-@@ -666,18 +670,22 @@ tcp_print(netdissect_options *ndo,
+@@ -746,24 +749,31 @@ tcp_print(netdissect_options *ndo,
+         } else if (IS_SRC_OR_DST_PORT(WHOIS_PORT)) {
+                 ND_PRINT(": ");
+                 whois_print(ndo, bp, length);
+-        } else if (IS_SRC_OR_DST_PORT(BGP_PORT))
++        }
++#ifndef TCPDUMP_MINI
++        else if (IS_SRC_OR_DST_PORT(BGP_PORT))
                  bgp_print(ndo, bp, length);
++#endif
          else if (IS_SRC_OR_DST_PORT(PPTP_PORT))
                  pptp_print(ndo, bp);
 +#ifndef TCPDUMP_MINI
          else if (IS_SRC_OR_DST_PORT(REDIS_PORT))
                  resp_print(ndo, bp, length);
+         else if (IS_SRC_OR_DST_PORT(SSH_PORT))
+                 ssh_print(ndo, bp, length);
 +#endif
  #ifdef ENABLE_SMB
          else if (IS_SRC_OR_DST_PORT(NETBIOS_SSN_PORT))
                  nbt_tcp_print(ndo, bp, length);
-       else if (IS_SRC_OR_DST_PORT(SMB_PORT))
-               smb_tcp_print(ndo, bp, length);
+         else if (IS_SRC_OR_DST_PORT(SMB_PORT))
+                 smb_tcp_print(ndo, bp, length);
  #endif
 +#ifndef TCPDUMP_MINI
          else if (IS_SRC_OR_DST_PORT(BEEP_PORT))
                  openflow_print(ndo, bp, length);
 +#endif
          else if (IS_SRC_OR_DST_PORT(FTP_PORT)) {
-                 ND_PRINT((ndo, ": "));
+                 ND_PRINT(": ");
                  ftp_print(ndo, bp, length);
-@@ -694,6 +702,7 @@ tcp_print(netdissect_options *ndo,
-                  * XXX packet could be unaligned, it can go strange
-                  */
-                 ns_print(ndo, bp + 2, length - 2, 0);
+@@ -776,12 +786,14 @@ tcp_print(netdissect_options *ndo,
+         } else if (IS_SRC_OR_DST_PORT(NAMESERVER_PORT)) {
+                 /* over_tcp: TRUE, is_mdns: FALSE */
+                 domain_print(ndo, bp, length, TRUE, FALSE);
 +#ifndef TCPDUMP_MINI
          } else if (IS_SRC_OR_DST_PORT(MSDP_PORT)) {
                  msdp_print(ndo, bp, length);
          } else if (IS_SRC_OR_DST_PORT(RPKI_RTR_PORT)) {
-@@ -701,6 +710,7 @@ tcp_print(netdissect_options *ndo,
-         }
-         else if (length > 0 && (IS_SRC_OR_DST_PORT(LDP_PORT))) {
+                 rpki_rtr_print(ndo, bp, length);
+         } else if (IS_SRC_OR_DST_PORT(LDP_PORT)) {
                  ldp_print(ndo, bp, length);
 +#endif
-         }
-         else if ((IS_SRC_OR_DST_PORT(NFS_PORT)) &&
-                  length >= 4 && ND_TTEST2(*bp, 4)) {
+         } else if ((IS_SRC_OR_DST_PORT(NFS_PORT)) &&
+                  length >= 4 && ND_TTEST_4(bp)) {
+                 /*
 --- a/print-udp.c
 +++ b/print-udp.c
-@@ -397,10 +397,12 @@ udp_print(netdissect_options *ndo, regis
-                       vat_print(ndo, (const void *)(up + 1), up);
+@@ -435,10 +435,12 @@ udp_print(netdissect_options *ndo, const
+                       vat_print(ndo, cp, length);
                        break;
  
 +#ifndef TCPDUMP_MINI
                case PT_WB:
                        udpipaddr_print(ndo, ip, sport, dport);
-                       wb_print(ndo, (const void *)(up + 1), length);
+                       wb_print(ndo, cp, length);
                        break;
 +#endif
  
                case PT_RPC:
-                       rp = (const struct sunrpc_msg *)(up + 1);
-@@ -429,10 +431,12 @@ udp_print(netdissect_options *ndo, regis
-                       snmp_print(ndo, (const u_char *)(up + 1), length);
+                       rp = (const struct sunrpc_msg *)cp;
+@@ -467,10 +469,12 @@ udp_print(netdissect_options *ndo, const
+                       snmp_print(ndo, cp, length);
                        break;
  
 +#ifndef TCPDUMP_MINI
  
                case PT_TFTP:
                        udpipaddr_print(ndo, ip, sport, dport);
-@@ -450,6 +454,7 @@ udp_print(netdissect_options *ndo, regis
+@@ -488,6 +492,7 @@ udp_print(netdissect_options *ndo, const
                        radius_print(ndo, cp, length);
                        break;
  
 +#ifndef TCPDUMP_MINI
                case PT_VXLAN:
                        udpipaddr_print(ndo, ip, sport, dport);
-                       vxlan_print(ndo, (const u_char *)(up + 1), length);
-@@ -464,6 +469,7 @@ udp_print(netdissect_options *ndo, regis
+                       vxlan_print(ndo, cp, length);
+@@ -510,6 +515,7 @@ udp_print(netdissect_options *ndo, const
                        udpipaddr_print(ndo, ip, sport, dport);
-                       lmp_print(ndo, cp, length);
+                       someip_print(ndo, cp, length);
                        break;
 +#endif
-               }
-               return;
-       }
-@@ -541,31 +547,40 @@ udp_print(netdissect_options *ndo, regis
-                       ns_print(ndo, (const u_char *)(up + 1), length, 0);
+               case PT_DOMAIN:
+                       udpipaddr_print(ndo, ip, sport, dport);
+                       /* over_tcp: FALSE, is_mdns: FALSE */
+@@ -596,29 +602,37 @@ udp_print(netdissect_options *ndo, const
                else if (IS_SRC_OR_DST_PORT(MULTICASTDNS_PORT))
-                       ns_print(ndo, (const u_char *)(up + 1), length, 1);
+                       /* over_tcp: FALSE, is_mdns: TRUE */
+                       domain_print(ndo, cp, length, FALSE, TRUE);
 +#ifndef TCPDUMP_MINI
                else if (IS_SRC_OR_DST_PORT(TIMED_PORT))
-                       timed_print(ndo, (const u_char *)(up + 1));
+                       timed_print(ndo, (const u_char *)cp);
 +#endif
                else if (IS_SRC_OR_DST_PORT(TFTP_PORT))
-                       tftp_print(ndo, (const u_char *)(up + 1), length);
+                       tftp_print(ndo, cp, length);
                else if (IS_SRC_OR_DST_PORT(BOOTPC_PORT) || IS_SRC_OR_DST_PORT(BOOTPS_PORT))
-                       bootp_print(ndo, (const u_char *)(up + 1), length);
+                       bootp_print(ndo, cp, length);
 +#ifndef TCPDUMP_MINI
                else if (IS_SRC_OR_DST_PORT(RIP_PORT))
-                       rip_print(ndo, (const u_char *)(up + 1), length);
+                       rip_print(ndo, cp, length);
 +#endif
                else if (IS_SRC_OR_DST_PORT(AODV_PORT))
-                       aodv_print(ndo, (const u_char *)(up + 1), length,
+                       aodv_print(ndo, cp, length,
                            ip6 != NULL);
 +#ifndef TCPDUMP_MINI
-               else if (IS_SRC_OR_DST_PORT(ISAKMP_PORT))
-                        isakmp_print(ndo, (const u_char *)(up + 1), length, bp2);
-+
-               else if (IS_SRC_OR_DST_PORT(ISAKMP_PORT_NATT))
-                        isakmp_rfc3948_print(ndo, (const u_char *)(up + 1), length, bp2);
- #if 1 /*???*/
-               else if (IS_SRC_OR_DST_PORT(ISAKMP_PORT_USER1) || IS_SRC_OR_DST_PORT(ISAKMP_PORT_USER2))
-                       isakmp_print(ndo, (const u_char *)(up + 1), length, bp2);
- #endif
+               else if (IS_SRC_OR_DST_PORT(ISAKMP_PORT))
+                        isakmp_print(ndo, cp, length, bp2);
+               else if (IS_SRC_OR_DST_PORT(ISAKMP_PORT_NATT))
+                        isakmp_rfc3948_print(ndo, cp, length, bp2, IP_V(ip), fragmented, ttl_hl);
+               else if (IS_SRC_OR_DST_PORT(ISAKMP_PORT_USER1) || IS_SRC_OR_DST_PORT(ISAKMP_PORT_USER2))
+                       isakmp_print(ndo, cp, length, bp2);
 +#endif
                else if (IS_SRC_OR_DST_PORT(SNMP_PORT) || IS_SRC_OR_DST_PORT(SNMPTRAP_PORT))
-                       snmp_print(ndo, (const u_char *)(up + 1), length);
+                       snmp_print(ndo, cp, length);
                else if (IS_SRC_OR_DST_PORT(NTP_PORT))
-                       ntp_print(ndo, (const u_char *)(up + 1), length);
+                       ntp_print(ndo, cp, length);
 +#ifndef TCPDUMP_MINI
                else if (IS_SRC_OR_DST_PORT(KERBEROS_PORT) || IS_SRC_OR_DST_PORT(KERBEROS_SEC_PORT))
-                       krb_print(ndo, (const void *)(up + 1));
+                       krb_print(ndo, (const u_char *)cp);
 +#endif
                else if (IS_SRC_OR_DST_PORT(L2TP_PORT))
-                       l2tp_print(ndo, (const u_char *)(up + 1), length);
+                       l2tp_print(ndo, cp, length);
  #ifdef ENABLE_SMB
-@@ -576,6 +591,7 @@ udp_print(netdissect_options *ndo, regis
+@@ -629,6 +643,7 @@ udp_print(netdissect_options *ndo, const
  #endif
                else if (dport == VAT_PORT)
-                       vat_print(ndo, (const void *)(up + 1), up);
+                       vat_print(ndo, cp, length);
 +#ifndef TCPDUMP_MINI
                else if (IS_SRC_OR_DST_PORT(ZEPHYR_SRV_PORT) || IS_SRC_OR_DST_PORT(ZEPHYR_CLT_PORT))
-                       zephyr_print(ndo, (const void *)(up + 1), length);
+                       zephyr_print(ndo, cp, length);
                /*
-@@ -588,8 +604,11 @@ udp_print(netdissect_options *ndo, regis
+@@ -641,8 +656,11 @@ udp_print(netdissect_options *ndo, const
                                 (const u_char *) ip);
                else if (IS_SRC_OR_DST_PORT(RIPNG_PORT))
-                       ripng_print(ndo, (const u_char *)(up + 1), length);
+                       ripng_print(ndo, cp, length);
 +#endif
 +
                else if (IS_SRC_OR_DST_PORT(DHCP6_SERV_PORT) || IS_SRC_OR_DST_PORT(DHCP6_CLI_PORT))
-                       dhcp6_print(ndo, (const u_char *)(up + 1), length);
+                       dhcp6_print(ndo, cp, length);
 +#ifndef TCPDUMP_MINI
                else if (IS_SRC_OR_DST_PORT(AHCP_PORT))
-                       ahcp_print(ndo, (const u_char *)(up + 1), length);
+                       ahcp_print(ndo, cp, length);
                else if (IS_SRC_OR_DST_PORT(BABEL_PORT) || IS_SRC_OR_DST_PORT(BABEL_PORT_OLD))
-@@ -603,6 +622,7 @@ udp_print(netdissect_options *ndo, regis
-                       wb_print(ndo, (const void *)(up + 1), length);
+@@ -656,6 +674,7 @@ udp_print(netdissect_options *ndo, const
+                       wb_print(ndo, cp, length);
                else if (IS_SRC_OR_DST_PORT(CISCO_AUTORP_PORT))
-                       cisco_autorp_print(ndo, (const void *)(up + 1), length);
+                       cisco_autorp_print(ndo, cp, length);
 +#endif
                else if (IS_SRC_OR_DST_PORT(RADIUS_PORT) ||
                         IS_SRC_OR_DST_PORT(RADIUS_NEW_PORT) ||
                         IS_SRC_OR_DST_PORT(RADIUS_ACCOUNTING_PORT) ||
-@@ -610,15 +630,18 @@ udp_print(netdissect_options *ndo, regis
+@@ -663,15 +682,18 @@ udp_print(netdissect_options *ndo, const
                         IS_SRC_OR_DST_PORT(RADIUS_CISCO_COA_PORT) ||
                         IS_SRC_OR_DST_PORT(RADIUS_COA_PORT) )
-                       radius_print(ndo, (const u_char *)(up+1), length);
+                       radius_print(ndo, cp, length);
 +#ifndef TCPDUMP_MINI
                else if (dport == HSRP_PORT)
-                       hsrp_print(ndo, (const u_char *)(up + 1), length);
+                       hsrp_print(ndo, cp, length);
                else if (IS_SRC_OR_DST_PORT(LWRES_PORT))
-                       lwres_print(ndo, (const u_char *)(up + 1), length);
+                       lwres_print(ndo, cp, length);
                else if (IS_SRC_OR_DST_PORT(LDP_PORT))
-                       ldp_print(ndo, (const u_char *)(up + 1), length);
+                       ldp_print(ndo, cp, length);
 +#endif
                else if (IS_SRC_OR_DST_PORT(OLSR_PORT))
-                       olsr_print(ndo, (const u_char *)(up + 1), length,
+                       olsr_print(ndo, cp, length,
                                        (IP_V(ip) == 6) ? 1 : 0);
 +#ifndef TCPDUMP_MINI
                else if (IS_SRC_OR_DST_PORT(MPLS_LSP_PING_PORT))
-                       lspping_print(ndo, (const u_char *)(up + 1), length);
-               else if (dport == BFD_CONTROL_PORT ||
-@@ -636,10 +659,12 @@ udp_print(netdissect_options *ndo, regis
-                         lwapp_control_print(ndo, (const u_char *)(up + 1), length, 0);
-                 else if (IS_SRC_OR_DST_PORT(LWAPP_DATA_PORT))
-                         lwapp_data_print(ndo, (const u_char *)(up + 1), length);
-+#endif
-                 else if (IS_SRC_OR_DST_PORT(SIP_PORT))
-                       sip_print(ndo, (const u_char *)(up + 1), length);
-                 else if (IS_SRC_OR_DST_PORT(SYSLOG_PORT))
-                       syslog_print(ndo, (const u_char *)(up + 1), length);
-+#ifndef TCPDUMP_MINI
-                 else if (IS_SRC_OR_DST_PORT(OTV_PORT))
-                       otv_print(ndo, (const u_char *)(up + 1), length);
-                 else if (IS_SRC_OR_DST_PORT(VXLAN_PORT))
-@@ -656,7 +681,9 @@ udp_print(netdissect_options *ndo, regis
-                       if (ndo->ndo_vflag)
-                               ND_PRINT((ndo, "kip "));
-                       llap_print(ndo, cp, length);
--              } else {
-+              }
-+#endif
-+              else {
-                       if (ulen > length)
-                               ND_PRINT((ndo, "UDP, bad length %u > %u",
-                                   ulen, length));
+                       lspping_print(ndo, cp, length);
+               else if (sport == BCM_LI_PORT)
+@@ -693,10 +715,12 @@ udp_print(netdissect_options *ndo, const
+                       lwapp_control_print(ndo, cp, length, 0);
+               else if (IS_SRC_OR_DST_PORT(LWAPP_DATA_PORT))
+                       lwapp_data_print(ndo, cp, length);
++#endif
+               else if (IS_SRC_OR_DST_PORT(SIP_PORT))
+                       sip_print(ndo, cp, length);
+               else if (IS_SRC_OR_DST_PORT(SYSLOG_PORT))
+                       syslog_print(ndo, cp, length);
++#ifndef TCPDUMP_MINI
+               else if (IS_SRC_OR_DST_PORT(OTV_PORT))
+                       otv_print(ndo, cp, length);
+               else if (IS_SRC_OR_DST_PORT(VXLAN_PORT))
+@@ -722,6 +746,7 @@ udp_print(netdissect_options *ndo, const
+                       ptp_print(ndo, cp, length);
+               } else if (IS_SRC_OR_DST_PORT(SOMEIP_PORT))
+                       someip_print(ndo, cp, length);
++#endif
+               else {
+                       if (ulen > length && !fragmented)
+                               ND_PRINT("UDP, bad length %u > %u",
+--- a/print.c
++++ b/print.c
+@@ -48,6 +48,7 @@ struct printer {
+ };
+ static const struct printer printers[] = {
++#ifndef TCPDUMP_MINI
+ #ifdef DLT_APPLE_IP_OVER_IEEE1394
+       { ap1394_if_print,      DLT_APPLE_IP_OVER_IEEE1394 },
+ #endif
+@@ -86,7 +87,9 @@ static const struct printer printers[] =
+ #ifdef DLT_ENC
+       { enc_if_print,         DLT_ENC },
+ #endif
++#endif
+       { ether_if_print,       DLT_EN10MB },
++#ifndef TCPDUMP_MINI
+       { fddi_if_print,        DLT_FDDI },
+ #ifdef DLT_FR
+       { fr_if_print,          DLT_FR },
+@@ -94,6 +97,7 @@ static const struct printer printers[] =
+ #ifdef DLT_FRELAY
+       { fr_if_print,          DLT_FRELAY },
+ #endif
++#endif
+ #ifdef DLT_IEEE802_11
+       { ieee802_11_if_print,  DLT_IEEE802_11},
+ #endif
+@@ -103,6 +107,7 @@ static const struct printer printers[] =
+ #ifdef DLT_IEEE802_11_RADIO
+       { ieee802_11_radio_if_print,    DLT_IEEE802_11_RADIO },
+ #endif
++#ifndef TCPDUMP_MINI
+ #ifdef DLT_IEEE802_15_4
+       { ieee802_15_4_if_print, DLT_IEEE802_15_4 },
+ #endif
+@@ -115,9 +120,11 @@ static const struct printer printers[] =
+ #ifdef DLT_IP_OVER_FC
+       { ipfc_if_print,        DLT_IP_OVER_FC },
+ #endif
++#endif
+ #ifdef DLT_IPNET
+       { ipnet_if_print,       DLT_IPNET },
+ #endif
++#ifndef TCPDUMP_MINI
+ #ifdef DLT_IPOIB
+       { ipoib_if_print,       DLT_IPOIB },
+ #endif
+@@ -172,19 +179,23 @@ static const struct printer printers[] =
+ #ifdef DLT_MFR
+       { mfr_if_print,         DLT_MFR },
+ #endif
++#endif
+ #ifdef DLT_NETANALYZER
+       { netanalyzer_if_print, DLT_NETANALYZER },
+ #endif
+ #ifdef DLT_NETANALYZER_TRANSPARENT
+       { netanalyzer_transparent_if_print, DLT_NETANALYZER_TRANSPARENT },
+ #endif
++#ifndef TCPDUMP_MINI
+ #ifdef DLT_NFLOG
+       { nflog_if_print,       DLT_NFLOG},
+ #endif
++#endif
+       { null_if_print,        DLT_NULL },
+ #ifdef DLT_LOOP
+       { null_if_print,        DLT_LOOP },
+ #endif
++#ifndef TCPDUMP_MINI
+ #ifdef DLT_PFLOG
+       { pflog_if_print,       DLT_PFLOG },
+ #endif
+@@ -200,6 +211,7 @@ static const struct printer printers[] =
+ #ifdef DLT_PPP_SERIAL
+       { ppp_hdlc_if_print,    DLT_PPP_SERIAL },
+ #endif
++#endif
+       { ppp_if_print,         DLT_PPP },
+ #ifdef DLT_PPP_PPPD
+       { ppp_if_print,         DLT_PPP_PPPD },
+@@ -211,6 +223,7 @@ static const struct printer printers[] =
+       { prism_if_print,       DLT_PRISM_HEADER },
+ #endif
+       { raw_if_print,         DLT_RAW },
++#ifndef TCPDUMP_MINI
+ #ifdef DLT_IPV4
+       { raw_if_print,         DLT_IPV4 },
+ #endif
+@@ -243,6 +256,7 @@ static const struct printer printers[] =
+ #ifdef DLT_VSOCK
+       { vsock_if_print,       DLT_VSOCK },
+ #endif
++#endif
+       { NULL,                 0 },
+ };