12949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project/* 22949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project * Copyright (c) 1988-2002 32949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project * The Regents of the University of California. All rights reserved. 42949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project * 52949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project * Redistribution and use in source and binary forms, with or without 62949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project * modification, are permitted provided that: (1) source code distributions 72949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project * retain the above copyright notice and this paragraph in its entirety, (2) 82949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project * distributions including binary code include the above copyright notice and 92949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project * this paragraph in its entirety in the documentation or other materials 102949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project * provided with the distribution, and (3) all advertising materials mentioning 112949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project * features or use of this software display the following acknowledgement: 122949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project * ``This product includes software developed by the University of California, 132949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project * Lawrence Berkeley Laboratory and its contributors.'' Neither the name of 142949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project * the University nor the names of its contributors may be used to endorse 152949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project * or promote products derived from this software without specific prior 162949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project * written permission. 172949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED 182949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project * WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF 192949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. 202949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project * 212949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project * @(#) $Header: /tcpdump/master/tcpdump/interface.h,v 1.244.2.21 2007/03/28 07:45:46 hannes Exp $ (LBL) 222949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project */ 232949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project 242949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#ifndef tcpdump_interface_h 252949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#define tcpdump_interface_h 262949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project 272949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#ifdef HAVE_OS_PROTO_H 282949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#include "os-proto.h" 292949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#endif 302949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project 312949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#ifndef HAVE___ATTRIBUTE__ 322949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#define __attribute__(x) 332949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#endif 342949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project 352949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project/* snprintf et al */ 362949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project 372949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#include <stdarg.h> 382949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project 392949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#if HAVE_STDINT_H 402949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#include <stdint.h> 412949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#endif 422949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project 432949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#if !defined(HAVE_SNPRINTF) 442949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Projectint snprintf(char *, size_t, const char *, ...) 452949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project __attribute__((format(printf, 3, 4))); 462949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#endif 472949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project 482949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#if !defined(HAVE_VSNPRINTF) 492949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Projectint vsnprintf(char *, size_t, const char *, va_list) 502949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project __attribute__((format(printf, 3, 0))); 512949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#endif 522949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project 532949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#ifndef HAVE_STRLCAT 542949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Projectextern size_t strlcat(char *, const char *, size_t); 552949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#endif 562949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#ifndef HAVE_STRLCPY 572949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Projectextern size_t strlcpy(char *, const char *, size_t); 582949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#endif 592949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project 602949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#ifndef HAVE_STRDUP 612949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Projectextern char *strdup(const char *); 622949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#endif 632949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project 642949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#ifndef HAVE_STRSEP 652949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Projectextern char *strsep(char **, const char *); 662949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#endif 672949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project 682949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#define PT_VAT 1 /* Visual Audio Tool */ 692949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#define PT_WB 2 /* distributed White Board */ 702949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#define PT_RPC 3 /* Remote Procedure Call */ 712949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#define PT_RTP 4 /* Real-Time Applications protocol */ 722949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#define PT_RTCP 5 /* Real-Time Applications control protocol */ 732949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#define PT_SNMP 6 /* Simple Network Management Protocol */ 742949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#define PT_CNFP 7 /* Cisco NetFlow protocol */ 752949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#define PT_TFTP 8 /* trivial file transfer protocol */ 762949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#define PT_AODV 9 /* Ad-hoc On-demand Distance Vector Protocol */ 772949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project 782949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#ifndef min 792949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#define min(a,b) ((a)>(b)?(b):(a)) 802949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#endif 812949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#ifndef max 822949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#define max(a,b) ((b)>(a)?(b):(a)) 832949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#endif 842949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project 852949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project/* 862949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project * The default snapshot length. This value allows most printers to print 872949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project * useful information while keeping the amount of unwanted data down. 882949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project */ 892949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#ifndef INET6 902949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#define DEFAULT_SNAPLEN 68 /* ether + IPv4 + TCP + 14 */ 912949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#else 922949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#define DEFAULT_SNAPLEN 96 /* ether + IPv6 + TCP + 22 */ 932949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#endif 942949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project 952949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#ifndef BIG_ENDIAN 962949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#define BIG_ENDIAN 4321 972949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#define LITTLE_ENDIAN 1234 982949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#endif 992949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project 1002949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#define ESRC(ep) ((ep)->ether_shost) 1012949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#define EDST(ep) ((ep)->ether_dhost) 1022949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project 1032949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#ifndef NTOHL 1042949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#define NTOHL(x) (x) = ntohl(x) 1052949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#define NTOHS(x) (x) = ntohs(x) 1062949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#define HTONL(x) (x) = htonl(x) 1072949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#define HTONS(x) (x) = htons(x) 1082949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#endif 1092949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#endif 1102949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project 1112949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#ifndef MIN 1122949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#define MIN(a,b) ((a)<(b)?(a):(b)) 1132949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#endif 1142949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project 1152949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Projectextern char *program_name; /* used to generate self-identifying messages */ 1162949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project 1172949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Projectextern int32_t thiszone; /* seconds offset from gmt to local time */ 1182949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project 1192949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project/* 1202949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project * True if "l" bytes of "var" were captured. 1212949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project * 1222949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project * The "snapend - (l) <= snapend" checks to make sure "l" isn't so large 1232949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project * that "snapend - (l)" underflows. 1242949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project * 1252949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project * The check is for <= rather than < because "l" might be 0. 1262949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project */ 1272949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#define TTEST2(var, l) (snapend - (l) <= snapend && \ 1282949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project (const u_char *)&(var) <= snapend - (l)) 1292949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project 1302949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project/* True if "var" was captured */ 1312949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#define TTEST(var) TTEST2(var, sizeof(var)) 1322949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project 1332949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project/* Bail if "l" bytes of "var" were not captured */ 1342949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#define TCHECK2(var, l) if (!TTEST2(var, l)) goto trunc 1352949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project 1362949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project/* Bail if "var" was not captured */ 1372949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#define TCHECK(var) TCHECK2(var, sizeof(var)) 1382949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project 1392949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Projectextern void ts_print(const struct timeval *); 1402949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Projectextern void relts_print(int); 1412949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project 1422949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Projectextern int fn_print(const u_char *, const u_char *); 1432949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Projectextern int fn_printn(const u_char *, u_int, const u_char *); 1442949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Projectextern int fn_printzp(const u_char *, u_int, const u_char *); 1452949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Projectextern int mask2plen(u_int32_t); 1462949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Projectextern const char *tok2strary_internal(const char **, int, const char *, int); 1472949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#define tok2strary(a,f,i) tok2strary_internal(a, sizeof(a)/sizeof(a[0]),f,i) 1482949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project 1492949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Projectextern const char *dnaddr_string(u_short); 1502949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project 1512949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Projectextern void error(const char *, ...) 1522949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project __attribute__((noreturn, format (printf, 1, 2))); 1532949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Projectextern void warning(const char *, ...) __attribute__ ((format (printf, 1, 2))); 1542949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project 1552949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Projectextern char *read_infile(char *); 1562949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Projectextern char *copy_argv(char **); 1572949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project 1582949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Projectextern void safeputchar(int); 1592949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Projectextern void safeputs(const char *, int); 1602949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project 1612949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Projectextern const char *isonsap_string(const u_char *, register u_int); 1622949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Projectextern const char *protoid_string(const u_char *); 1632949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Projectextern const char *ipxsap_string(u_short); 1642949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Projectextern const char *dnname_string(u_short); 1652949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Projectextern const char *dnnum_string(u_short); 1662949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project 1672949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project/* The printer routines. */ 1682949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project 1692949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#include <pcap.h> 1702949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project 1712949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Projectextern int print_unknown_data(const u_char *, const char *,int); 1722949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Projectextern void ascii_print(const u_char *, u_int); 1732949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Projectextern void hex_and_ascii_print_with_offset(const char *, const u_char *, 1742949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project u_int, u_int); 1752949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Projectextern void hex_and_ascii_print(const char *, const u_char *, u_int); 1762949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Projectextern void hex_print_with_offset(const char *, const u_char *, u_int, u_int); 1772949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Projectextern void hex_print(const char *, const u_char *, u_int); 1782949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Projectextern void telnet_print(const u_char *, u_int); 1792949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Projectextern int ether_encap_print(u_short, const u_char *, u_int, u_int, u_short *); 1802949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Projectextern int llc_print(const u_char *, u_int, u_int, const u_char *, 1812949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project const u_char *, u_short *); 1822949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Projectextern int snap_print(const u_char *, u_int, u_int, u_short *, u_int); 1832949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Projectextern void aarp_print(const u_char *, u_int); 1842949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Projectextern void aodv_print(const u_char *, u_int, int); 1852949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Projectextern void atalk_print(const u_char *, u_int); 1862949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Projectextern void atm_print(u_int, u_int, u_int, const u_char *, u_int, u_int); 1872949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Projectextern u_int atm_if_print(const struct pcap_pkthdr *, const u_char *); 1882949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Projectextern u_int sunatm_if_print(const struct pcap_pkthdr *, const u_char *); 1892949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Projectextern int oam_print(const u_char *, u_int, u_int); 1902949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Projectextern void bootp_print(const u_char *, u_int); 1912949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Projectextern void bgp_print(const u_char *, int); 1922949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Projectextern void beep_print(const u_char *, u_int); 1932949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Projectextern void cnfp_print(const u_char *, const u_char *); 1942949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Projectextern void decnet_print(const u_char *, u_int, u_int); 1952949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Projectextern void default_print(const u_char *, u_int); 1962949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Projectextern void dvmrp_print(const u_char *, u_int); 1972949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Projectextern void egp_print(const u_char *, u_int); 1982949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Projectextern u_int enc_if_print(const struct pcap_pkthdr *, const u_char *); 1992949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Projectextern u_int pflog_if_print(const struct pcap_pkthdr *, const u_char *); 2002949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Projectextern u_int arcnet_if_print(const struct pcap_pkthdr *, const u_char *); 2012949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Projectextern u_int arcnet_linux_if_print(const struct pcap_pkthdr *, const u_char *); 2022949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Projectextern void ether_print(const u_char *, u_int, u_int); 2032949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Projectextern u_int ether_if_print(const struct pcap_pkthdr *, const u_char *); 2042949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Projectextern u_int token_print(const u_char *, u_int, u_int); 2052949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Projectextern u_int token_if_print(const struct pcap_pkthdr *, const u_char *); 2062949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Projectextern void fddi_print(const u_char *, u_int, u_int); 2072949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Projectextern u_int fddi_if_print(const struct pcap_pkthdr *, const u_char *); 2082949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Projectextern u_int fr_if_print(const struct pcap_pkthdr *, const u_char *); 2092949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Projectextern u_int mfr_if_print(const struct pcap_pkthdr *, const u_char *); 2102949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Projectextern u_int fr_print(register const u_char *, u_int); 2112949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Projectextern u_int mfr_print(register const u_char *, u_int); 2122949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Projectextern u_int ieee802_11_if_print(const struct pcap_pkthdr *, const u_char *); 2132949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Projectextern u_int ieee802_11_radio_if_print(const struct pcap_pkthdr *, 2142949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project const u_char *); 2152949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Projectextern u_int ap1394_if_print(const struct pcap_pkthdr *, const u_char *); 2162949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Projectextern void gre_print(const u_char *, u_int); 2172949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Projectextern void icmp_print(const u_char *, u_int, const u_char *, int); 2182949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Projectextern void igmp_print(const u_char *, u_int); 2192949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Projectextern void igrp_print(const u_char *, u_int, const u_char *); 2202949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Projectextern void ipN_print(const u_char *, u_int); 2212949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Projectextern u_int ipfc_if_print(const struct pcap_pkthdr *, const u_char *); 2222949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Projectextern void ipx_print(const u_char *, u_int); 2232949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Projectextern void isoclns_print(const u_char *, u_int, u_int); 2242949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Projectextern void krb_print(const u_char *); 2252949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Projectextern u_int llap_print(const u_char *, u_int); 2262949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Projectextern u_int ltalk_if_print(const struct pcap_pkthdr *, const u_char *); 2272949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Projectextern void msdp_print(const unsigned char *, u_int); 2282949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Projectextern void nfsreply_print(const u_char *, u_int, const u_char *); 2292949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Projectextern void nfsreq_print(const u_char *, u_int, const u_char *); 2302949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Projectextern void ns_print(const u_char *, u_int, int); 2312949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Projectextern void ntp_print(const u_char *, u_int); 2322949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Projectextern u_int null_if_print(const struct pcap_pkthdr *, const u_char *); 2332949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Projectextern void ospf_print(const u_char *, u_int, const u_char *); 2342949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Projectextern void olsr_print (const u_char *, u_int); 2352949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Projectextern void pimv1_print(const u_char *, u_int); 2362949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Projectextern void cisco_autorp_print(const u_char *, u_int); 2372949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Projectextern void rsvp_print(const u_char *, u_int); 2382949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Projectextern void ldp_print(const u_char *, u_int); 2392949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Projectextern void lmp_print(const u_char *, u_int); 2402949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Projectextern void lspping_print(const u_char *, u_int); 2412949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Projectextern void eigrp_print(const u_char *, u_int); 2422949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Projectextern void mobile_print(const u_char *, u_int); 2432949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Projectextern void pim_print(const u_char *, u_int); 2442949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Projectextern u_int pppoe_print(const u_char *, u_int); 2452949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Projectextern u_int ppp_print(register const u_char *, u_int); 2462949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Projectextern u_int ppp_if_print(const struct pcap_pkthdr *, const u_char *); 2472949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Projectextern u_int ppp_hdlc_if_print(const struct pcap_pkthdr *, const u_char *); 2482949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Projectextern u_int ppp_bsdos_if_print(const struct pcap_pkthdr *, const u_char *); 2492949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Projectextern u_int pppoe_if_print(const struct pcap_pkthdr *, const u_char *); 2502949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Projectextern u_int prism_if_print(const struct pcap_pkthdr *, const u_char *); 2512949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Projectextern void q933_print(const u_char *, u_int); 2522949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Projectextern int vjc_print(register const char *, u_short); 2532949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Projectextern u_int raw_if_print(const struct pcap_pkthdr *, const u_char *); 2542949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Projectextern void rip_print(const u_char *, u_int); 2552949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Projectextern u_int sl_if_print(const struct pcap_pkthdr *, const u_char *); 2562949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Projectextern void lane_print(const u_char *, u_int, u_int); 2572949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Projectextern u_int lane_if_print(const struct pcap_pkthdr *, const u_char *); 2582949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Projectextern u_int cip_if_print(const struct pcap_pkthdr *, const u_char *); 2592949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Projectextern u_int sl_bsdos_if_print(const struct pcap_pkthdr *, const u_char *); 2602949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Projectextern u_int chdlc_if_print(const struct pcap_pkthdr *, const u_char *); 2612949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Projectextern u_int chdlc_print(register const u_char *, u_int); 2622949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Projectextern u_int juniper_atm1_print(const struct pcap_pkthdr *, const u_char *); 2632949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Projectextern u_int juniper_atm2_print(const struct pcap_pkthdr *, const u_char *); 2642949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Projectextern u_int juniper_mfr_print(const struct pcap_pkthdr *, register const u_char *); 2652949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Projectextern u_int juniper_mlfr_print(const struct pcap_pkthdr *, const u_char *); 2662949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Projectextern u_int juniper_mlppp_print(const struct pcap_pkthdr *, const u_char *); 2672949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Projectextern u_int juniper_pppoe_print(const struct pcap_pkthdr *, const u_char *); 2682949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Projectextern u_int juniper_pppoe_atm_print(const struct pcap_pkthdr *, const u_char *); 2692949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Projectextern u_int juniper_ggsn_print(const struct pcap_pkthdr *, const u_char *); 2702949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Projectextern u_int juniper_es_print(const struct pcap_pkthdr *, const u_char *); 2712949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Projectextern u_int juniper_monitor_print(const struct pcap_pkthdr *, const u_char *); 2722949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Projectextern u_int juniper_services_print(const struct pcap_pkthdr *, const u_char *); 2732949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Projectextern u_int juniper_ether_print(const struct pcap_pkthdr *, const u_char *); 2742949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Projectextern u_int juniper_ppp_print(const struct pcap_pkthdr *, const u_char *); 2752949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Projectextern u_int juniper_frelay_print(const struct pcap_pkthdr *, const u_char *); 2762949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Projectextern u_int juniper_chdlc_print(const struct pcap_pkthdr *, const u_char *); 2772949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Projectextern u_int sll_if_print(const struct pcap_pkthdr *, const u_char *); 2782949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Projectextern void snmp_print(const u_char *, u_int); 2792949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Projectextern void sunrpcrequest_print(const u_char *, u_int, const u_char *); 2802949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Projectextern u_int symantec_if_print(const struct pcap_pkthdr *, const u_char *); 2812949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Projectextern void tcp_print(const u_char *, u_int, const u_char *, int); 2822949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Projectextern void tftp_print(const u_char *, u_int); 2832949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Projectextern void timed_print(const u_char *); 2842949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Projectextern void udp_print(const u_char *, u_int, const u_char *, int); 2852949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Projectextern void wb_print(const void *, u_int); 2862949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Projectextern int ah_print(register const u_char *); 2872949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Projectextern int ipcomp_print(register const u_char *, int *); 2882949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Projectextern void rx_print(register const u_char *, int, int, int, u_char *); 2892949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Projectextern void netbeui_print(u_short, const u_char *, int); 2902949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Projectextern void ipx_netbios_print(const u_char *, u_int); 2912949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Projectextern void nbt_tcp_print(const u_char *, int); 2922949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Projectextern void nbt_udp137_print(const u_char *, int); 2932949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Projectextern void nbt_udp138_print(const u_char *, int); 2942949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Projectextern char *smb_errstr(int, int); 2952949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Projectextern const char *nt_errstr(u_int32_t); 2962949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Projectextern void print_data(const unsigned char *, int); 2972949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Projectextern void l2tp_print(const u_char *, u_int); 2982949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Projectextern void vrrp_print(const u_char *, u_int, int); 2992949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Projectextern void slow_print(const u_char *, u_int); 3002949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Projectextern void pgm_print(const u_char *, u_int, const u_char *); 3012949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Projectextern void cdp_print(const u_char *, u_int, u_int); 3022949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Projectextern void stp_print(const u_char *, u_int); 3032949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Projectextern void radius_print(const u_char *, u_int); 3042949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Projectextern void lwres_print(const u_char *, u_int); 3052949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Projectextern void pptp_print(const u_char *); 3062949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Projectextern void dccp_print(const u_char *, const u_char *, u_int); 3072949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Projectextern void sctp_print(const u_char *, const u_char *, u_int); 3082949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Projectextern void mpls_print(const u_char *, u_int); 3092949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Projectextern void mpls_lsp_ping_print(const u_char *, u_int); 3102949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Projectextern void zephyr_print(const u_char *, int); 3112949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Projectextern void hsrp_print(const u_char *, u_int); 3122949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Projectextern void bfd_print(const u_char *, u_int, u_int); 3132949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Projectextern void sip_print(const u_char *, u_int); 3142949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Projectextern void syslog_print(const u_char *, u_int); 3152949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project 3162949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#ifdef INET6 3172949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Projectextern void ip6_print(const u_char *, u_int); 3182949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Projectextern void ip6_opt_print(const u_char *, int); 3192949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Projectextern int hbhopt_print(const u_char *); 3202949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Projectextern int dstopt_print(const u_char *); 3212949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Projectextern int frag6_print(const u_char *, const u_char *); 3222949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Projectextern int mobility_print(const u_char *, const u_char *); 3232949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Projectextern void icmp6_print(const u_char *, u_int, const u_char *, int); 3242949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Projectextern void ripng_print(const u_char *, unsigned int); 3252949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Projectextern int rt6_print(const u_char *, const u_char *); 3262949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Projectextern void ospf6_print(const u_char *, u_int); 3272949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Projectextern void dhcp6_print(const u_char *, u_int); 3282949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#endif /*INET6*/ 3292949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Projectextern u_short in_cksum(const u_short *, register u_int, int); 3302949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Projectextern u_int16_t in_cksum_shouldbe(u_int16_t, u_int16_t); 3312949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project 3322949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#ifndef HAVE_BPF_DUMP 3332949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Projectstruct bpf_program; 3342949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project 3352949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Projectextern void bpf_dump(struct bpf_program *, int); 3362949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project 3372949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#endif 3382949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project 3392949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#include "netdissect.h" 3402949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project 3412949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project/* forward compatibility */ 3422949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project 3432949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Projectextern netdissect_options *gndo; 3442949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project 3452949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#define eflag gndo->ndo_eflag 3462949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#define fflag gndo->ndo_fflag 3472949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#define nflag gndo->ndo_nflag 3482949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#define Nflag gndo->ndo_Nflag 3492949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#define Oflag gndo->ndo_Oflag 3502949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#define pflag gndo->ndo_pflag 3512949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#define qflag gndo->ndo_qflag 3522949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#define Rflag gndo->ndo_Rflag 3532949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#define sflag gndo->ndo_sflag 3542949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#define Sflag gndo->ndo_Sflag 3552949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#define tflag gndo->ndo_tflag 3562949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#define Uflag gndo->ndo_Uflag 3572949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#define uflag gndo->ndo_uflag 3582949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#define vflag gndo->ndo_vflag 3592949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#define xflag gndo->ndo_xflag 3602949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#define Xflag gndo->ndo_Xflag 3612949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#define Cflag gndo->ndo_Cflag 3622949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#define Aflag gndo->ndo_Aflag 3632949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#define suppress_default_print gndo->ndo_suppress_default_print 3642949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#define packettype gndo->ndo_packettype 3652949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#define tcpmd5secret gndo->ndo_tcpmd5secret 3662949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#define Wflag gndo->ndo_Wflag 3672949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#define WflagChars gndo->ndo_WflagChars 3682949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#define Cflag_count gndo->ndo_Cflag_count 3692949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#define snaplen gndo->ndo_snaplen 3702949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project#define snapend gndo->ndo_snapend 3712949f58a438f6fd85f66a8b7ed4708042cde4b37The Android Open Source Project 372