text: /****************************************************************************
   ****************************************************************************
   ***
   ***   This header was automatically generated from a Linux kernel header
   ***   of the same name, to make information necessary for userspace to
   ***   call into the kernel available to libc.  It contains only constants,
   ***   structures, and macros generated from the original header, and thus,
   ***   contains no copyrightable information.
   ***
   ****************************************************************************
   ****************************************************************************/
  #ifndef _PPP_DEFS_H_
  #define _PPP_DEFS_H_
  
  #define PPP_HDRLEN 4  
  #define PPP_FCSLEN 2  
  #define PPP_MRU 1500  
  
  #define PPP_ADDRESS(p) (((__u8 *)(p))[0])
  #define PPP_CONTROL(p) (((__u8 *)(p))[1])
  #define PPP_PROTOCOL(p) ((((__u8 *)(p))[2] << 8) + ((__u8 *)(p))[3])
  
  #define PPP_ALLSTATIONS 0xff  
  #define PPP_UI 0x03  
  #define PPP_FLAG 0x7e  
  #define PPP_ESCAPE 0x7d  
  #define PPP_TRANS 0x20  
  
  #define PPP_IP 0x21  
  #define PPP_AT 0x29  
  #define PPP_IPX 0x2b  
  #define PPP_VJC_COMP 0x2d  
  #define PPP_VJC_UNCOMP 0x2f  
  #define PPP_MP 0x3d  
  #define PPP_IPV6 0x57  
  #define PPP_COMPFRAG 0xfb  
  #define PPP_COMP 0xfd  
  #define PPP_MPLS_UC 0x0281  
  #define PPP_MPLS_MC 0x0283  
  #define PPP_IPCP 0x8021  
  #define PPP_ATCP 0x8029  
  #define PPP_IPXCP 0x802b  
  #define PPP_IPV6CP 0x8057  
  #define PPP_CCPFRAG 0x80fb  
  #define PPP_CCP 0x80fd  
  #define PPP_MPLSCP 0x80fd  
  #define PPP_LCP 0xc021  
  #define PPP_PAP 0xc023  
  #define PPP_LQR 0xc025  
  #define PPP_CHAP 0xc223  
  #define PPP_CBCP 0xc029  
  
  #define PPP_INITFCS 0xffff  
  #define PPP_GOODFCS 0xf0b8  
  
  typedef __u32 ext_accm[8];
  
  enum NPmode {
   NPMODE_PASS,
   NPMODE_DROP,
   NPMODE_ERROR,
   NPMODE_QUEUE
  };
  
  struct pppstat {
   __u32 ppp_discards;
  
   __u32 ppp_ibytes;
   __u32 ppp_ioctects;
   __u32 ppp_ipackets;
   __u32 ppp_ierrors;
   __u32 ppp_ilqrs;
  
   __u32 ppp_obytes;
   __u32 ppp_ooctects;
   __u32 ppp_opackets;
   __u32 ppp_oerrors;
   __u32 ppp_olqrs;
  };
  
  struct vjstat {
   __u32 vjs_packets;
   __u32 vjs_compressed;
   __u32 vjs_searches;
   __u32 vjs_misses;
   __u32 vjs_uncompressedin;
   __u32 vjs_compressedin;
   __u32 vjs_errorin;
   __u32 vjs_tossed;
  };
  
  struct compstat {
   __u32 unc_bytes;
   __u32 unc_packets;
   __u32 comp_bytes;
   __u32 comp_packets;
   __u32 inc_bytes;
   __u32 inc_packets;
  
   __u32 in_count;
   __u32 bytes_out;
  
   double ratio;
  };
  
  struct ppp_stats {
   struct pppstat p;
   struct vjstat vj;
  };
  
  struct ppp_comp_stats {
   struct compstat c;
   struct compstat d;
  };
  
  struct ppp_idle {
   time_t xmit_idle;
   time_t recv_idle;
  };
  
  #endif
  