--- a/Makefile.in
+++ b/Makefile.in
@@ -73,6 +73,86 @@ DEPENDENCY_CFLAG = @DEPENDENCY_CFLAG@
 
 CSRC =	fptype.c tcpdump.c
 
+ifdef TCPDUMP_MINI
+
+LIBNETDISSECT_SRC=\
+	netdissect.c \
+	netdissect-alloc.c \
+	addrtoname.c \
+	addrtostr.c \
+	af.c \
+	ascii_strcasecmp.c \
+	checksum.c \
+	cpack.c \
+	gmpls.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-bootp.c \
+	print-dhcp6.c \
+	print-domain.c \
+	print-eap.c \
+	print-ether.c \
+	print-ftp.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 \
+	print-ipnet.c \
+	print-l2tp.c \
+	print-llc.c \
+	print-lldp.c \
+	print-loopback.c \
+	print-macsec.c \
+	print-nfs.c \
+	print-ntp.c \
+	print-null.c \
+	print-olsr.c \
+	print-ospf.c \
+	print-ospf6.c \
+	print-ppp.c \
+	print-pppoe.c \
+	print-pptp.c \
+	print-radius.c \
+	print-raw.c \
+	print-rsvp.c \
+	print-rt6.c \
+	print-rtsp.c \
+	print-sip.c \
+	print-sll.c \
+	print-smtp.c \
+	print-snmp.c \
+	print-stp.c \
+	print-sunrpc.c \
+	print-syslog.c \
+	print-tcp.c \
+	print-telnet.c \
+	print-tftp.c \
+	print-udp.c \
+	print-unsupported.c \
+	print-whois.c \
+	signature.c \
+	strtoaddr.c \
+	util-print.c
+
+else
+
 LIBNETDISSECT_SRC=\
 	addrtoname.c \
 	addrtostr.c \
@@ -254,6 +334,8 @@ LIBNETDISSECT_SRC=\
 	strtoaddr.c \
 	util-print.c
 
+endif
+
 LOCALSRC = @LOCALSRC@
 LIBOBJS = @LIBOBJS@
 
--- a/addrtoname.c
+++ b/addrtoname.c
@@ -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
 	if (type == LINKADDR_FRELAY)
 		return (q922_string(ndo, ep, len));
+#endif
 
 	tp = lookup_bytestring(ndo, ep, len);
 	if (tp->bs_name)
@@ -1260,6 +1262,7 @@ init_addrtoname(netdissect_options *ndo,
 	init_ipxsaparray(ndo);
 }
 
+#ifndef TCPDUMP_MINI
 const char *
 dnaddr_string(netdissect_options *ndo, u_short dnaddr)
 {
@@ -1276,6 +1279,7 @@ dnaddr_string(netdissect_options *ndo, u
 
 	return(tp->name);
 }
+#endif
 
 /* Return a zero'ed hnamemem struct and cuts down on calloc() overhead */
 struct hnamemem *
--- a/print-ether.c
+++ b/print-ether.c
@@ -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);
@@ -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:
@@ -587,9 +589,11 @@ ethertype_print(netdissect_options *ndo,
 		eapol_print(ndo, p);
 		return (1);
 
+#ifndef TCPDUMP_MINI
 	case ETHERTYPE_REALTEK:
 		rtl_print(ndo, p, length, src, dst);
 		return (1);
+#endif
 
 	case ETHERTYPE_PPP:
 		if (length) {
@@ -598,6 +602,7 @@ ethertype_print(netdissect_options *ndo,
 		}
 		return (1);
 
+#ifndef TCPDUMP_MINI
 	case ETHERTYPE_MPCP:
 		mpcp_print(ndo, p, length);
 		return (1);
@@ -610,19 +615,23 @@ ethertype_print(netdissect_options *ndo,
 	case ETHERTYPE_CFM_OLD:
 		cfm_print(ndo, p, length);
 		return (1);
+#endif
 
 	case ETHERTYPE_LLDP:
 		lldp_print(ndo, p, length);
 		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);
 
+#ifndef TCPDUMP_MINI
 	case ETHERTYPE_MPLS:
 	case ETHERTYPE_MPLS_MULTI:
 		mpls_print(ndo, p, length);
@@ -652,6 +661,7 @@ ethertype_print(netdissect_options *ndo,
 	case ETHERTYPE_PTP:
 		ptp_print(ndo, p, length);
 		return (1);
+#endif
 
 	case ETHERTYPE_LAT:
 	case ETHERTYPE_SCA:
--- a/print-gre.c
+++ b/print-gre.c
@@ -207,6 +207,7 @@ gre_print_0(netdissect_options *ndo, con
 	case ETHERTYPE_IPV6:
 		ip6_print(ndo, bp, len);
 		break;
+#ifndef TCPDUMP_MINI
 	case ETHERTYPE_MPLS:
 		mpls_print(ndo, bp, len);
 		break;
@@ -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, 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:	/* unknown or undecodable header */
 			*prot = nh; /* meaningless, but set here anyway */
 			return(NULL);
--- a/print-igmp.c
+++ b/print-igmp.c
@@ -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("igmp dvmrp");
         if (len < 8)
@@ -280,6 +281,7 @@ igmp_print(netdissect_options *ndo,
         ND_PRINT("igmp pimv1");
         pimv1_print(ndo, bp, len);
         break;
+#endif
     case 0x1e:
         print_mtrace(ndo, "mresp", bp, len);
         break;
--- a/print-ip-demux.c
+++ b/print-ip-demux.c
@@ -48,6 +48,7 @@ ip_demux_print(netdissect_options *ndo,
 again:
 	switch (nh) {
 
+#ifndef TCPDUMP_MINI
 	case IPPROTO_AH:
 		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, bp, iph, length);
 		break;
@@ -93,7 +96,7 @@ again:
 	case IPPROTO_DCCP:
 		dccp_print(ndo, bp, iph, length);
 		break;
-
+#endif
 	case IPPROTO_TCP:
 		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
@@ -142,14 +146,17 @@ again:
 	case IPPROTO_EIGRP:
 		eigrp_print(ndo, bp, length);
 		break;
+#endif
 
 	case IPPROTO_ND:
 		ND_PRINT(" nd %u", length);
 		break;
 
+#ifndef TCPDUMP_MINI
 	case IPPROTO_EGP:
 		egp_print(ndo, bp, length);
 		break;
+#endif
 
 	case IPPROTO_OSPF:
 		if (ver == 6)
@@ -186,6 +193,7 @@ again:
 		gre_print(ndo, bp, length);
 		break;
 
+#ifndef TCPDUMP_MINI
 	case IPPROTO_MOBILE:
 		mobile_print(ndo, bp, length);
 		break;
@@ -205,6 +213,7 @@ again:
 	case IPPROTO_PGM:
 		pgm_print(ndo, bp, length, iph);
 		break;
+#endif
 
 	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
@@ -207,6 +207,7 @@ llc_print(netdissect_options *ndo, const
 		hdrlen = 4;	/* DSAP, SSAP, 2-byte control field */
 	}
 
+#ifndef TCPDUMP_MINI
 	if (ssap_field == LLCSAP_GLOBAL && dsap_field == LLCSAP_GLOBAL) {
 		/*
 		 * This is an Ethernet_802.3 IPX frame; it has an
@@ -229,6 +230,7 @@ llc_print(netdissect_options *ndo, const
             ipx_print(ndo, p, length);
             return (0);		/* no LLC header */
 	}
+#endif
 
 	dsap = dsap_field & ~LLC_IG;
 	ssap = ssap_field & ~LLC_GSAP;
@@ -292,6 +294,7 @@ llc_print(netdissect_options *ndo, const
 		return (hdrlen);
 	}
 
+#ifndef TCPDUMP_MINI
 	if (ssap == LLCSAP_IPX && dsap == LLCSAP_IPX &&
 	    control == LLC_UI) {
 		/*
@@ -305,6 +308,7 @@ llc_print(netdissect_options *ndo, const
 		ipx_print(ndo, p, length);
 		return (hdrlen);
 	}
+#endif
 
 #ifdef ENABLE_SMB
 	if (ssap == LLCSAP_NETBEUI && dsap == LLCSAP_NETBEUI
@@ -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);
 		return (hdrlen);
 	}
-
+#endif
 	if (!ndo->ndo_eflag) {
 		if (ssap == dsap) {
 			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_CDP:
                         cdp_print(ndo, p, length);
                         return (1);
@@ -496,6 +502,7 @@ snap_print(netdissect_options *ndo, cons
                 case PID_CISCO_VTP:
                         vtp_print(ndo, p, length);
                         return (1);
+#endif
                 case PID_CISCO_PVST:
                 case PID_CISCO_VLANBRIDGE:
                         stp_print(ndo, p, length);
@@ -508,6 +515,7 @@ snap_print(netdissect_options *ndo, cons
 	case OUI_RFC2684:
 		switch (et) {
 
+#ifndef TCPDUMP_MINI
 		case PID_RFC2684_ETH_FCS:
 		case PID_RFC2684_ETH_NOFCS:
 			/*
@@ -569,6 +577,7 @@ snap_print(netdissect_options *ndo, cons
 			 */
 			fddi_print(ndo, p, length, caplen);
 			return (1);
+#endif
 
 		case PID_RFC2684_BPDU:
 			stp_print(ndo, p, length);
--- a/print-null.c
+++ b/print-null.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);
 		break;
@@ -127,6 +128,7 @@ null_if_print(netdissect_options *ndo, c
 	case BSD_AFNUM_IPX:
 		ipx_print(ndo, p, length);
 		break;
+#endif
 
 	default:
 		/* unknown AF_ value */
--- a/print-ppp.c
+++ b/print-ppp.c
@@ -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, u_int length)
@@ -1451,17 +1452,19 @@ trunc:
 	ndo->ndo_snapend = se;
 	nd_print_trunc(ndo);
 }
-
+#endif
 
 /* PPP */
 static void
 handle_ppp(netdissect_options *ndo,
            u_int proto, const u_char *p, u_int length)
 {
+#ifndef TCPDUMP_MINI
 	if ((proto & 0xff00) == 0x7e00) { /* is this an escape code ? */
 		ppp_hdlc(ndo, p - 1, length);
 		return;
 	}
+#endif
 
 	switch (proto) {
 	case PPP_LCP: /* fall through */
@@ -1494,6 +1497,7 @@ handle_ppp(netdissect_options *ndo,
 	case PPP_IPV6:
 		ip6_print(ndo, p, length);
 		break;
+#ifndef TCPDUMP_MINI
 	case ETHERTYPE_IPX:	/*XXX*/
 	case PPP_IPX:
 		ipx_print(ndo, p, length);
@@ -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("compressed PPP data");
 		break;
@@ -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,
@@ -1895,3 +1901,4 @@ printx:
 #endif /* __bsdi__ */
 	ndo->ndo_ll_hdr_len += hdrlength;
 }
+#endif
--- a/print-sll.c
+++ b/print-sll.c
@@ -465,12 +465,14 @@ recurse:
 		 */
 		switch (ether_type) {
 
+#ifndef TCPDUMP_MINI
 		case LINUX_SLL_P_802_3:
 			/*
 			 * Ethernet_802.3 IPX frame.
 			 */
 			ipx_print(ndo, p, length);
 			break;
+#endif
 
 		case LINUX_SLL_P_802_2:
 			/*
--- a/print-tcp.c
+++ b/print-tcp.c
@@ -614,6 +614,7 @@ tcp_print(netdissect_options *ndo,
                                 ND_PRINT(" %u", utoval);
                                 break;
 
+#ifndef TCPDUMP_MINI
                         case TCPOPT_MPTCP:
                             {
                                 const u_char *snapend_save;
@@ -637,7 +638,7 @@ tcp_print(netdissect_options *ndo,
                                         goto bad;
                                 break;
                             }
-
+#endif
                         case TCPOPT_FASTOPEN:
                                 datalen = len - 2;
                                 LENCHECK(datalen);
@@ -722,6 +723,7 @@ tcp_print(netdissect_options *ndo,
                 return;
         }
 
+#ifndef TCPDUMP_MINI
         if (ndo->ndo_packettype) {
                 switch (ndo->ndo_packettype) {
                 case PT_ZMTP1:
@@ -737,6 +739,7 @@ tcp_print(netdissect_options *ndo,
                 }
                 return;
         }
+#endif
 
         if (IS_SRC_OR_DST_PORT(TELNET_PORT)) {
                 telnet_print(ndo, bp, length);
@@ -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);
 #endif
+#ifndef TCPDUMP_MINI
         else if (IS_SRC_OR_DST_PORT(BEEP_PORT))
                 beep_print(ndo, bp, length);
         else if (IS_SRC_OR_DST_PORT(OPENFLOW_PORT_OLD) || IS_SRC_OR_DST_PORT(OPENFLOW_PORT_IANA))
                 openflow_print(ndo, bp, length);
+#endif
         else if (IS_SRC_OR_DST_PORT(FTP_PORT)) {
                 ND_PRINT(": ");
                 ftp_print(ndo, bp, length);
@@ -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)) {
                 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_TTEST_4(bp)) {
                 /*
--- a/print-udp.c
+++ b/print-udp.c
@@ -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, cp, length);
 			break;
+#endif
 
 		case PT_RPC:
 			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_CNFP:
 			udpipaddr_print(ndo, ip, sport, dport);
 			cnfp_print(ndo, cp);
 			break;
+#endif
 
 		case PT_TFTP:
 			udpipaddr_print(ndo, ip, sport, dport);
@@ -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, cp, length);
@@ -510,6 +515,7 @@ udp_print(netdissect_options *ndo, const
 			udpipaddr_print(ndo, ip, sport, dport);
 			someip_print(ndo, cp, length);
 			break;
+#endif
 		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))
 			/* 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 *)cp);
+#endif
 		else if (IS_SRC_OR_DST_PORT(TFTP_PORT))
 			tftp_print(ndo, cp, length);
 		else if (IS_SRC_OR_DST_PORT(BOOTPC_PORT) || IS_SRC_OR_DST_PORT(BOOTPS_PORT))
 			bootp_print(ndo, cp, length);
+#ifndef TCPDUMP_MINI
 		else if (IS_SRC_OR_DST_PORT(RIP_PORT))
 			rip_print(ndo, cp, length);
+#endif
 		else if (IS_SRC_OR_DST_PORT(AODV_PORT))
 			aodv_print(ndo, cp, length,
 			    ip6 != NULL);
+#ifndef TCPDUMP_MINI
 		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, cp, length);
 		else if (IS_SRC_OR_DST_PORT(NTP_PORT))
 			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 u_char *)cp);
+#endif
 		else if (IS_SRC_OR_DST_PORT(L2TP_PORT))
 			l2tp_print(ndo, cp, length);
 #ifdef ENABLE_SMB
@@ -629,6 +643,7 @@ udp_print(netdissect_options *ndo, const
 #endif
 		else if (dport == VAT_PORT)
 			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, cp, length);
 		/*
@@ -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, cp, length);
+#endif
+
 		else if (IS_SRC_OR_DST_PORT(DHCP6_SERV_PORT) || IS_SRC_OR_DST_PORT(DHCP6_CLI_PORT))
 			dhcp6_print(ndo, cp, length);
+#ifndef TCPDUMP_MINI
 		else if (IS_SRC_OR_DST_PORT(AHCP_PORT))
 			ahcp_print(ndo, cp, length);
 		else if (IS_SRC_OR_DST_PORT(BABEL_PORT) || IS_SRC_OR_DST_PORT(BABEL_PORT_OLD))
@@ -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, 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) ||
@@ -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, cp, length);
+#ifndef TCPDUMP_MINI
 		else if (dport == HSRP_PORT)
 			hsrp_print(ndo, cp, length);
 		else if (IS_SRC_OR_DST_PORT(LWRES_PORT))
 			lwres_print(ndo, cp, length);
 		else if (IS_SRC_OR_DST_PORT(LDP_PORT))
 			ldp_print(ndo, cp, length);
+#endif
 		else if (IS_SRC_OR_DST_PORT(OLSR_PORT))
 			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, 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 },
 };
 
