if_pppvar.h
上传用户:lgb322
上传日期:2013-02-24
资源大小:30529k
文件大小:6k
源码类别:

嵌入式Linux

开发平台:

Unix_Linux

  1. /* From: if_pppvar.h,v 1.2 1995/06/12 11:36:51 paulus Exp */
  2. /*
  3.  * if_pppvar.h - private structures and declarations for PPP.
  4.  *
  5.  * Copyright (c) 1994 The Australian National University.
  6.  * All rights reserved.
  7.  *
  8.  * Permission to use, copy, modify, and distribute this software and its
  9.  * documentation is hereby granted, provided that the above copyright
  10.  * notice appears in all copies.  This software is provided without any
  11.  * warranty, express or implied. The Australian National University
  12.  * makes no representations about the suitability of this software for
  13.  * any purpose.
  14.  *
  15.  * IN NO EVENT SHALL THE AUSTRALIAN NATIONAL UNIVERSITY BE LIABLE TO ANY
  16.  * PARTY FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES
  17.  * ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF
  18.  * THE AUSTRALIAN NATIONAL UNIVERSITY HAVE BEEN ADVISED OF THE POSSIBILITY
  19.  * OF SUCH DAMAGE.
  20.  *
  21.  * THE AUSTRALIAN NATIONAL UNIVERSITY SPECIFICALLY DISCLAIMS ANY WARRANTIES,
  22.  * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
  23.  * AND FITNESS FOR A PARTICULAR PURPOSE.  THE SOFTWARE PROVIDED HEREUNDER IS
  24.  * ON AN "AS IS" BASIS, AND THE AUSTRALIAN NATIONAL UNIVERSITY HAS NO
  25.  * OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS,
  26.  * OR MODIFICATIONS.
  27.  *
  28.  * Copyright (c) 1989 Carnegie Mellon University.
  29.  * All rights reserved.
  30.  *
  31.  * Redistribution and use in source and binary forms are permitted
  32.  * provided that the above copyright notice and this paragraph are
  33.  * duplicated in all such forms and that any documentation,
  34.  * advertising materials, and other materials related to such
  35.  * distribution and use acknowledge that the software was developed
  36.  * by Carnegie Mellon University.  The name of the
  37.  * University may not be used to endorse or promote products derived
  38.  * from this software without specific prior written permission.
  39.  * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
  40.  * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
  41.  * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
  42.  */
  43. /*
  44.  *  ==FILEVERSION 990806==
  45.  *
  46.  *  NOTE TO MAINTAINERS:
  47.  *   If you modify this file at all, please set the above date.
  48.  *   if_pppvar.h is shipped with a PPP distribution as well as with the kernel;
  49.  *   if everyone increases the FILEVERSION number above, then scripts
  50.  *   can do the right thing when deciding whether to install a new if_pppvar.h
  51.  *   file.  Don't change the format of that line otherwise, so the
  52.  *   installation script can recognize it.
  53.  */
  54. /*
  55.  * Supported network protocols.  These values are used for
  56.  * indexing sc_npmode.
  57.  */
  58. #define NP_IP 0 /* Internet Protocol */
  59. #define NP_IPX 1 /* IPX protocol */
  60. #define NP_AT 2 /* Appletalk protocol */
  61. #define NP_IPV6 3 /* Internet Protocol */
  62. #define NUM_NP 4 /* Number of NPs. */
  63. #define OBUFSIZE 256 /* # chars of output buffering */
  64. /*
  65.  * Structure describing each ppp unit.
  66.  */
  67. struct ppp {
  68. int magic; /* magic value for structure */
  69. struct ppp *next; /* unit with next index */
  70. unsigned long inuse; /* are we allocated? */
  71. int line; /* network interface unit # */
  72. __u32 flags; /* miscellaneous control flags */
  73. int mtu; /* maximum xmit frame size */
  74. int mru; /* maximum receive frame size */
  75. struct slcompress *slcomp; /* for TCP header compression */
  76. struct sk_buff_head xmt_q; /* frames to send from pppd */
  77. struct sk_buff_head rcv_q; /* frames for pppd to read */
  78. unsigned long xmit_busy; /* bit 0 set when xmitter busy  */
  79. /* Information specific to using ppp on async serial lines. */
  80. struct tty_struct *tty; /* ptr to TTY structure */
  81. struct tty_struct *backup_tty; /* TTY to use if tty gets closed */
  82. __u8 escape; /* 0x20 if prev char was PPP_ESC */
  83. __u8 toss; /* toss this frame */
  84. volatile __u8 tty_pushing; /* internal state flag */
  85. volatile __u8 woke_up; /* internal state flag */
  86. __u32 xmit_async_map[8]; /* 1 bit means that given control 
  87.    character is quoted on output*/
  88. __u32 recv_async_map; /* 1 bit means that given control 
  89.    character is ignored on input*/
  90. __u32 bytes_sent; /* Bytes sent on frame */
  91. __u32 bytes_rcvd; /* Bytes recvd on frame */
  92. /* Async transmission information */
  93. struct sk_buff *tpkt; /* frame currently being sent */
  94. int tpkt_pos; /* how much of it we've done */
  95. __u16 tfcs; /* FCS so far for it */
  96. unsigned char *optr; /* where we're up to in sending */
  97. unsigned char *olim; /* points past last valid char */
  98. /* Async reception information */
  99. struct sk_buff *rpkt; /* frame currently being rcvd */
  100. __u16 rfcs; /* FCS so far of rpkt */
  101. /* Queues for select() functionality */
  102. wait_queue_head_t read_wait; /* queue for reading processes */
  103. /* info for detecting idle channels */
  104. unsigned long last_xmit; /* time of last transmission */
  105. unsigned long last_recv; /* time last packet received    */
  106. /* Statistic information */
  107. struct pppstat stats; /* statistic information */
  108. /* PPP compression protocol information */
  109. struct compressor *sc_xcomp; /* transmit compressor */
  110. void *sc_xc_state; /* transmit compressor state */
  111. struct compressor *sc_rcomp; /* receive decompressor */
  112. void *sc_rc_state; /* receive decompressor state */
  113. enum NPmode sc_npmode[NUM_NP]; /* what to do with each NP */
  114. int  sc_xfer; /* PID of reserved PPP table */
  115. char name[16]; /* space for unit name */
  116. struct net_device dev; /* net device structure */
  117. struct net_device_stats estats; /* more detailed stats */
  118. /* tty output buffer */
  119. unsigned char obuf[OBUFSIZE]; /* buffer for characters to send */
  120. };
  121. #define PPP_MAGIC 0x5002
  122. #define PPP_VERSION "2.3.7"