From a9b9c86c8a0ccde5c1480bf5a0ba250d949a6d65 Mon Sep 17 00:00:00 2001 From: fenner Date: Tue, 27 May 1997 02:11:31 +0000 Subject: Virgin import of LBL tcpdump v3.3 --- contrib/tcpdump/interface.h | 166 +++++++++++++++++++++++--------------------- 1 file changed, 87 insertions(+), 79 deletions(-) (limited to 'contrib/tcpdump/interface.h') diff --git a/contrib/tcpdump/interface.h b/contrib/tcpdump/interface.h index d33a8ff..0b14a0a 100644 --- a/contrib/tcpdump/interface.h +++ b/contrib/tcpdump/interface.h @@ -18,7 +18,7 @@ * WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. * - * @(#) $Header: interface.h,v 1.95 96/07/14 19:38:52 leres Exp $ (LBL) + * @(#) $Header: interface.h,v 1.100 96/12/10 22:55:04 leres Exp $ (LBL) */ #ifndef tcpdump_interface_h @@ -51,6 +51,59 @@ extern int packettype; /* as specified by -T */ #define PT_RTP 4 /* Real-Time Applications protocol */ #define PT_RTCP 5 /* Real-Time Applications control protocol */ +#ifndef min +#define min(a,b) ((a)>(b)?(b):(a)) +#endif +#ifndef max +#define max(a,b) ((b)>(a)?(b):(a)) +#endif + +/* + * The default snapshot length. This value allows most printers to print + * useful information while keeping the amount of unwanted data down. + * In particular, it allows for an ethernet header, tcp/ip header, and + * 14 bytes of data (assuming no ip options). + */ +#define DEFAULT_SNAPLEN 68 + +#ifndef BIG_ENDIAN +#define BIG_ENDIAN 4321 +#define LITTLE_ENDIAN 1234 +#endif + +#ifdef ETHER_HEADER_HAS_EA +#define ESRC(ep) ((ep)->ether_shost.ether_addr_octet) +#define EDST(ep) ((ep)->ether_dhost.ether_addr_octet) +#else +#define ESRC(ep) ((ep)->ether_shost) +#define EDST(ep) ((ep)->ether_dhost) +#endif + +#ifdef ETHER_ARP_HAS_X +#define SHA(ap) ((ap)->arp_xsha) +#define THA(ap) ((ap)->arp_xtha) +#define SPA(ap) ((ap)->arp_xspa) +#define TPA(ap) ((ap)->arp_xtpa) +#else +#ifdef ETHER_ARP_HAS_EA +#define SHA(ap) ((ap)->arp_sha.ether_addr_octet) +#define THA(ap) ((ap)->arp_tha.ether_addr_octet) +#else +#define SHA(ap) ((ap)->arp_sha) +#define THA(ap) ((ap)->arp_tha) +#endif +#define SPA(ap) ((ap)->arp_spa) +#define TPA(ap) ((ap)->arp_tpa) +#endif + +#ifndef NTOHL +#define NTOHL(x) (x) = ntohl(x) +#define NTOHS(x) (x) = ntohs(x) +#define HTONL(x) (x) = htonl(x) +#define HTONS(x) (x) = htons(x) +#endif +#endif + extern char *program_name; /* used to generate self-identifying messages */ extern int32_t thiszone; /* seconds offset from gmt to local time */ @@ -60,7 +113,16 @@ extern int snaplen; extern const u_char *packetp; extern const u_char *snapend; -#define TCHECK2(var, l) if ((u_char *)&(var) > snapend - (l)) goto trunc +/* True if "l" bytes of "var" were captured */ +#define TTEST2(var, l) ((u_char *)&(var) <= snapend - (l)) + +/* True if "var" was captured */ +#define TTEST(var) TTEST2(var, sizeof(var)) + +/* Bail if "l" bytes of "var" were not captured */ +#define TCHECK2(var, l) if (!TTEST2(var, l)) goto trunc + +/* Bail if "var" was not captured */ #define TCHECK(var) TCHECK2(var, sizeof(var)) #ifdef __STDC__ @@ -99,97 +161,43 @@ extern char *dnnum_string(u_short); struct pcap_pkthdr; #endif -extern void atm_if_print(u_char *, const struct pcap_pkthdr *, const u_char *); -extern void ether_if_print(u_char *, const struct pcap_pkthdr *, +extern int ether_encap_print(u_short, const u_char *, u_int, u_int); +extern int llc_print(const u_char *, u_int, u_int, const u_char *, const u_char *); -extern void fddi_if_print(u_char *, const struct pcap_pkthdr *, const u_char*); -extern void null_if_print(u_char *, const struct pcap_pkthdr *, const u_char*); -extern void ppp_if_print(u_char *, const struct pcap_pkthdr *, const u_char *); -extern void sl_if_print(u_char *, const struct pcap_pkthdr *, const u_char *); - -extern void arp_print(const u_char *, u_int, u_int); -extern void ip_print(const u_char *, u_int); -extern void tcp_print(const u_char *, u_int, const u_char *); -extern void udp_print(const u_char *, u_int, const u_char *); -extern void icmp_print(const u_char *, const u_char *); -extern void igrp_print(const u_char *, u_int, const u_char *); -extern void default_print(const u_char *, u_int); -extern void default_print_unaligned(const u_char *, u_int); - extern void aarp_print(const u_char *, u_int); +extern void arp_print(const u_char *, u_int, u_int); extern void atalk_print(const u_char *, u_int); +extern void atm_if_print(u_char *, const struct pcap_pkthdr *, const u_char *); extern void bootp_print(const u_char *, u_int, u_short, u_short); extern void decnet_print(const u_char *, u_int, u_int); +extern void default_print(const u_char *, u_int); +extern void default_print_unaligned(const u_char *, u_int); +extern void dvmrp_print(const u_char *, u_int); extern void egp_print(const u_char *, u_int, const u_char *); -extern int ether_encap_print(u_short, const u_char *, u_int, u_int); +extern void ether_if_print(u_char *, const struct pcap_pkthdr *, + const u_char *); +extern void fddi_if_print(u_char *, const struct pcap_pkthdr *, const u_char *); +extern void gre_print(const u_char *, u_int); +extern void icmp_print(const u_char *, const u_char *); +extern void igrp_print(const u_char *, u_int, const u_char *); +extern void ip_print(const u_char *, u_int); extern void ipx_print(const u_char *, u_int); -extern void isoclns_print(const u_char *, u_int, u_int, - const u_char *, const u_char *); -extern int llc_print(const u_char *, u_int, u_int, - const u_char *, const u_char *); +extern void isoclns_print(const u_char *, u_int, u_int, const u_char *, + const u_char *); +extern void krb_print(const u_char *, u_int); extern void nfsreply_print(const u_char *, u_int, const u_char *); extern void nfsreq_print(const u_char *, u_int, const u_char *); extern void ns_print(const u_char *, u_int); extern void ntp_print(const u_char *, u_int); +extern void null_if_print(u_char *, const struct pcap_pkthdr *, const u_char *); extern void ospf_print(const u_char *, u_int, const u_char *); +extern void pim_print(const u_char *, u_int); +extern void ppp_if_print(u_char *, const struct pcap_pkthdr *, const u_char *); extern void rip_print(const u_char *, u_int); +extern void sl_if_print(u_char *, const struct pcap_pkthdr *, const u_char *); extern void snmp_print(const u_char *, u_int); extern void sunrpcrequest_print(const u_char *, u_int, const u_char *); +extern void tcp_print(const u_char *, u_int, const u_char *); extern void tftp_print(const u_char *, u_int); +extern void udp_print(const u_char *, u_int, const u_char *); extern void wb_print(const void *, u_int); -extern void dvmrp_print(const u_char *, u_int); -extern void pim_print(const u_char *, u_int); -extern void krb_print(const u_char *, u_int); - -#ifndef min -#define min(a,b) ((a)>(b)?(b):(a)) -#endif -#ifndef max -#define max(a,b) ((b)>(a)?(b):(a)) -#endif - -/* - * The default snapshot length. This value allows most printers to print - * useful information while keeping the amount of unwanted data down. - * In particular, it allows for an ethernet header, tcp/ip header, and - * 14 bytes of data (assuming no ip options). - */ -#define DEFAULT_SNAPLEN 68 - -#ifndef BIG_ENDIAN -#define BIG_ENDIAN 4321 -#define LITTLE_ENDIAN 1234 -#endif - -#ifdef ETHER_HEADER_HAS_EA -#define ESRC(ep) ((ep)->ether_shost.ether_addr_octet) -#define EDST(ep) ((ep)->ether_dhost.ether_addr_octet) -#else -#define ESRC(ep) ((ep)->ether_shost) -#define EDST(ep) ((ep)->ether_dhost) -#endif - -#ifdef ETHER_ARP_HAS_X -#define SHA(ap) ((ap)->arp_xsha) -#define THA(ap) ((ap)->arp_xtha) -#define SPA(ap) ((ap)->arp_xspa) -#define TPA(ap) ((ap)->arp_xtpa) -#else -#ifdef ETHER_ARP_HAS_EA -#define SHA(ap) ((ap)->arp_sha.ether_addr_octet) -#define THA(ap) ((ap)->arp_tha.ether_addr_octet) -#else -#define SHA(ap) ((ap)->arp_sha) -#define THA(ap) ((ap)->arp_tha) -#endif -#define SPA(ap) ((ap)->arp_spa) -#define TPA(ap) ((ap)->arp_tpa) -#endif - -#ifndef NTOHL -#define NTOHL(x) (x) = ntohl(x) -#define NTOHS(x) (x) = ntohs(x) -#define HTONL(x) (x) = htonl(x) -#define HTONS(x) (x) = htons(x) -#endif -#endif -- cgit v1.1