18ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project/* $Id: ppp_defs.h,v 1.17 2002/12/06 09:49:15 paulus Exp $ */ 28ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project 38ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project/* 48ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project * ppp_defs.h - PPP definitions. 58ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project * 68ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project * Copyright (c) 1984 Paul Mackerras. All rights reserved. 78ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project * 88ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project * Redistribution and use in source and binary forms, with or without 98ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project * modification, are permitted provided that the following conditions 108ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project * are met: 118ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project * 128ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project * 1. Redistributions of source code must retain the above copyright 138ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project * notice, this list of conditions and the following disclaimer. 148ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project * 158ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project * 2. Redistributions in binary form must reproduce the above copyright 168ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project * notice, this list of conditions and the following disclaimer in 178ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project * the documentation and/or other materials provided with the 188ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project * distribution. 198ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project * 208ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project * 3. The name(s) of the authors of this software must not be used to 218ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project * endorse or promote products derived from this software without 228ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project * prior written permission. 238ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project * 248ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project * 4. Redistributions of any form whatsoever must retain the following 258ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project * acknowledgment: 268ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project * "This product includes software developed by Paul Mackerras 278ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project * <paulus@samba.org>". 288ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project * 298ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project * THE AUTHORS OF THIS SOFTWARE DISCLAIM ALL WARRANTIES WITH REGARD TO 308ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project * THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY 318ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project * AND FITNESS, IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY 328ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project * SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 338ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN 348ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project * AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING 358ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 368ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project */ 378ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project 388ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#ifndef _PPP_DEFS_H_ 398ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#define _PPP_DEFS_H_ 408ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project 415e0738a2d8667ec1ea629649edc4fc5ae453f4a1Elliott Hughes#if defined(PPP_ADDRESS) 425e0738a2d8667ec1ea629649edc4fc5ae453f4a1Elliott Hughes#define USING_UAPI 435e0738a2d8667ec1ea629649edc4fc5ae453f4a1Elliott Hughes#endif 445e0738a2d8667ec1ea629649edc4fc5ae453f4a1Elliott Hughes 458ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project/* 468ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project * The basic PPP frame. 478ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project */ 488ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#define PPP_HDRLEN 4 /* octets for standard ppp header */ 498ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#define PPP_FCSLEN 2 /* octets for FCS */ 508ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project 518ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project/* 528ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project * Packet sizes 538ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project * 548ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project * Note - lcp shouldn't be allowed to negotiate stuff outside these 558ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project * limits. See lcp.h in the pppd directory. 568ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project * (XXX - these constants should simply be shared by lcp.c instead 578ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project * of living in lcp.h) 588ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project */ 598ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#define PPP_MTU 1500 /* Default MTU (size of Info field) */ 608ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#define PPP_MAXMTU 65535 - (PPP_HDRLEN + PPP_FCSLEN) 618ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#define PPP_MINMTU 64 628ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#define PPP_MRU 1500 /* default MRU = max length of info field */ 638ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#define PPP_MAXMRU 65000 /* Largest MRU we allow */ 648ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#define PPP_MINMRU 128 658ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project 665e0738a2d8667ec1ea629649edc4fc5ae453f4a1Elliott Hughes#if !defined(USING_UAPI) 678ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#define PPP_ADDRESS(p) (((u_char *)(p))[0]) 688ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#define PPP_CONTROL(p) (((u_char *)(p))[1]) 698ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#define PPP_PROTOCOL(p) ((((u_char *)(p))[2] << 8) + ((u_char *)(p))[3]) 705e0738a2d8667ec1ea629649edc4fc5ae453f4a1Elliott Hughes#endif 718ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project 728ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project/* 738ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project * Significant octet values. 748ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project */ 758ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#define PPP_ALLSTATIONS 0xff /* All-Stations broadcast address */ 768ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#define PPP_UI 0x03 /* Unnumbered Information */ 778ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#define PPP_FLAG 0x7e /* Flag Sequence */ 788ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#define PPP_ESCAPE 0x7d /* Asynchronous Control Escape */ 798ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#define PPP_TRANS 0x20 /* Asynchronous transparency modifier */ 808ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project 818ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project/* 828ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project * Protocol field values. 838ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project */ 848ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#define PPP_IP 0x21 /* Internet Protocol */ 858ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#define PPP_AT 0x29 /* AppleTalk Protocol */ 868ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#define PPP_IPX 0x2b /* IPX protocol */ 878ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#define PPP_VJC_COMP 0x2d /* VJ compressed TCP */ 888ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#define PPP_VJC_UNCOMP 0x2f /* VJ uncompressed TCP */ 898ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#define PPP_IPV6 0x57 /* Internet Protocol Version 6 */ 908ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#define PPP_COMP 0xfd /* compressed packet */ 918ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#define PPP_IPCP 0x8021 /* IP Control Protocol */ 928ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#define PPP_ATCP 0x8029 /* AppleTalk Control Protocol */ 938ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#define PPP_IPXCP 0x802b /* IPX Control Protocol */ 948ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#define PPP_IPV6CP 0x8057 /* IPv6 Control Protocol */ 958ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#define PPP_CCP 0x80fd /* Compression Control Protocol */ 968ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#define PPP_ECP 0x8053 /* Encryption Control Protocol */ 978ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#define PPP_LCP 0xc021 /* Link Control Protocol */ 988ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#define PPP_PAP 0xc023 /* Password Authentication Protocol */ 998ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#define PPP_LQR 0xc025 /* Link Quality Report protocol */ 1008ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#define PPP_CHAP 0xc223 /* Cryptographic Handshake Auth. Protocol */ 1018ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#define PPP_CBCP 0xc029 /* Callback Control Protocol */ 1028ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#define PPP_EAP 0xc227 /* Extensible Authentication Protocol */ 1038ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project 1048ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project/* 1058ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project * Values for FCS calculations. 1068ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project */ 1078ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#define PPP_INITFCS 0xffff /* Initial FCS value */ 1088ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#define PPP_GOODFCS 0xf0b8 /* Good final FCS value */ 1098ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#define PPP_FCS(fcs, c) (((fcs) >> 8) ^ fcstab[((fcs) ^ (c)) & 0xff]) 1108ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project 1118ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project/* 1128ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project * A 32-bit unsigned integral type. 1138ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project */ 1148ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project 1158ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#if !defined(__BIT_TYPES_DEFINED__) && !defined(_BITYPES) \ 1168ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project && !defined(__FreeBSD__) && (NS_TARGET < 40) 1178ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#ifdef UINT32_T 1188ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Projecttypedef UINT32_T u_int32_t; 1198ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#else 1208ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Projecttypedef unsigned int u_int32_t; 1218ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Projecttypedef unsigned short u_int16_t; 1228ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#endif 1238ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#endif 1248ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project 1258ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project/* 1268ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project * Extended asyncmap - allows any character to be escaped. 1278ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project */ 1288ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Projecttypedef u_int32_t ext_accm[8]; 1298ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project 1308ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project/* 1318ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project * What to do with network protocol (NP) packets. 1328ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project */ 1335e0738a2d8667ec1ea629649edc4fc5ae453f4a1Elliott Hughes#if defined(USING_UAPI) 1345e0738a2d8667ec1ea629649edc4fc5ae453f4a1Elliott Hughes/* This stuff isn't in uapi. TODO: is there a newer pppd that doesn't use this? */ 1355e0738a2d8667ec1ea629649edc4fc5ae453f4a1Elliott Hughes#define ifr__name b.ifr_ifrn.ifrn_name 1365e0738a2d8667ec1ea629649edc4fc5ae453f4a1Elliott Hughes#define stats_ptr b.ifr_ifru.ifru_data 1375e0738a2d8667ec1ea629649edc4fc5ae453f4a1Elliott Hughesstruct ifpppstatsreq { 1385e0738a2d8667ec1ea629649edc4fc5ae453f4a1Elliott Hughes struct ifreq b; 1395e0738a2d8667ec1ea629649edc4fc5ae453f4a1Elliott Hughes struct ppp_stats stats; 1405e0738a2d8667ec1ea629649edc4fc5ae453f4a1Elliott Hughes}; 1415e0738a2d8667ec1ea629649edc4fc5ae453f4a1Elliott Hughes#else 1428ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Projectenum NPmode { 1438ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project NPMODE_PASS, /* pass the packet through */ 1448ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project NPMODE_DROP, /* silently drop the packet */ 1458ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project NPMODE_ERROR, /* return an error */ 1468ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project NPMODE_QUEUE /* save it up for later. */ 1478ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project}; 1488ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project 1498ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project/* 1508ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project * Statistics. 1518ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project */ 1528ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Projectstruct pppstat { 1538ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project unsigned int ppp_ibytes; /* bytes received */ 1548ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project unsigned int ppp_ipackets; /* packets received */ 1558ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project unsigned int ppp_ierrors; /* receive errors */ 1568ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project unsigned int ppp_obytes; /* bytes sent */ 1578ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project unsigned int ppp_opackets; /* packets sent */ 1588ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project unsigned int ppp_oerrors; /* transmit errors */ 1598ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project}; 1608ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project 1618ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Projectstruct vjstat { 1628ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project unsigned int vjs_packets; /* outbound packets */ 1638ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project unsigned int vjs_compressed; /* outbound compressed packets */ 1648ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project unsigned int vjs_searches; /* searches for connection state */ 1658ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project unsigned int vjs_misses; /* times couldn't find conn. state */ 1668ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project unsigned int vjs_uncompressedin; /* inbound uncompressed packets */ 1678ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project unsigned int vjs_compressedin; /* inbound compressed packets */ 1688ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project unsigned int vjs_errorin; /* inbound unknown type packets */ 1698ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project unsigned int vjs_tossed; /* inbound packets tossed because of error */ 1708ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project}; 1718ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project 1728ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Projectstruct ppp_stats { 1738ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project struct pppstat p; /* basic PPP statistics */ 1748ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project struct vjstat vj; /* VJ header compression statistics */ 1758ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project}; 1768ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project 1778ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Projectstruct compstat { 1788ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project unsigned int unc_bytes; /* total uncompressed bytes */ 1798ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project unsigned int unc_packets; /* total uncompressed packets */ 1808ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project unsigned int comp_bytes; /* compressed bytes */ 1818ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project unsigned int comp_packets; /* compressed packets */ 1828ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project unsigned int inc_bytes; /* incompressible bytes */ 1838ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project unsigned int inc_packets; /* incompressible packets */ 1848ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project unsigned int ratio; /* recent compression ratio << 8 */ 1858ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project}; 1868ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project 1878ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Projectstruct ppp_comp_stats { 1888ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project struct compstat c; /* packet compression statistics */ 1898ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project struct compstat d; /* packet decompression statistics */ 1908ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project}; 1918ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project 1928ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project/* 1938ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project * The following structure records the time in seconds since 1948ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project * the last NP packet was sent or received. 1958ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project */ 1968ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Projectstruct ppp_idle { 1978ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project time_t xmit_idle; /* time since last NP packet sent */ 1988ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project time_t recv_idle; /* time since last NP packet received */ 1998ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project}; 2008ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project 2015e0738a2d8667ec1ea629649edc4fc5ae453f4a1Elliott Hughes#endif 2025e0738a2d8667ec1ea629649edc4fc5ae453f4a1Elliott Hughes 2038ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#ifndef __P 2048ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#ifdef __STDC__ 2058ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#define __P(x) x 2068ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#else 2078ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#define __P(x) () 2088ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#endif 2098ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#endif 2108ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project 2118ad0dd2a5c5f23cd210aedba72a43e48026e7436The Android Open Source Project#endif /* _PPP_DEFS_H_ */ 212