Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

ppp: Move ioctl definitions from if_ppp.h to new ppp-ioctl.h

This moves the definitions of the ioctls, constants and structures
relating to the ppp_generic interface to userspace out from if_ppp.h
to a new file, ppp-ioctl.h. The new file has my copyright since I
designed and implemented the ppp_generic interface in the late 1990s.
None of the contents of this file comes from the original if_ppp.h
published by Carnegie Mellon University.

Of the remainder of if_ppp.h, only the PPP_MTU definition was being
used, and this replaces the uses of it with PPP_MRU (which is identical).
Therefore, this replaces the entire file with the single line

#include <linux/ppp-ioctl.h>

which clearly doesn't contain any CMU code. Thus I have removed the
CMU copyright notice with its problematic advertising clause, and in
fact since it's only one trivial line I have not added any other
copyright notice.

Signed-off-by: Paul Mackerras <paulus@samba.org>
Signed-off-by: David S. Miller <davem@davemloft.net>

authored by

Paul Mackerras and committed by
David S. Miller
bf7daebb 784db3f0

+129 -181
+1 -1
Documentation/ioctl/ioctl-number.txt
··· 255 255 linux/ixjuser.h <http://web.archive.org/web/*/http://www.quicknet.net> 256 256 'r' 00-1F linux/msdos_fs.h and fs/fat/dir.c 257 257 's' all linux/cdk.h 258 - 't' 00-7F linux/if_ppp.h 258 + 't' 00-7F linux/ppp-ioctl.h 259 259 't' 80-8F linux/isdn_ppp.h 260 260 't' 90 linux/toshiba.h 261 261 'u' 00-1F linux/smb_fs.h gone
+3 -3
Documentation/networking/ppp_generic.txt
··· 342 342 numbers on received multilink fragments 343 343 SC_MP_XSHORTSEQ transmit short multilink sequence nos. 344 344 345 - The values of these flags are defined in <linux/if_ppp.h>. Note 345 + The values of these flags are defined in <linux/ppp-ioctl.h>. Note 346 346 that the values of the SC_MULTILINK, SC_MP_SHORTSEQ and 347 347 SC_MP_XSHORTSEQ bits are ignored if the CONFIG_PPP_MULTILINK option 348 348 is not selected. ··· 358 358 359 359 * PPPIOCSCOMPRESS sets the parameters for packet compression or 360 360 decompression. The argument should point to a ppp_option_data 361 - structure (defined in <linux/if_ppp.h>), which contains a 361 + structure (defined in <linux/ppp-ioctl.h>), which contains a 362 362 pointer/length pair which should describe a block of memory 363 363 containing a CCP option specifying a compression method and its 364 364 parameters. The ppp_option_data struct also contains a `transmit' ··· 395 395 396 396 * PPPIOCSNPMODE sets the network-protocol mode for a given network 397 397 protocol. The argument should point to an npioctl struct (defined 398 - in <linux/if_ppp.h>). The `protocol' field gives the PPP protocol 398 + in <linux/ppp-ioctl.h>). The `protocol' field gives the PPP protocol 399 399 number for the protocol to be affected, and the `mode' field 400 400 specifies what to do with packets for that protocol: 401 401
+2 -2
drivers/net/ppp/ppp_generic.c
··· 32 32 #include <linux/poll.h> 33 33 #include <linux/ppp_defs.h> 34 34 #include <linux/filter.h> 35 - #include <linux/if_ppp.h> 35 + #include <linux/ppp-ioctl.h> 36 36 #include <linux/ppp_channel.h> 37 37 #include <linux/ppp-comp.h> 38 38 #include <linux/skbuff.h> ··· 1031 1031 { 1032 1032 dev->netdev_ops = &ppp_netdev_ops; 1033 1033 dev->hard_header_len = PPP_HDRLEN; 1034 - dev->mtu = PPP_MTU; 1034 + dev->mtu = PPP_MRU; 1035 1035 dev->addr_len = 0; 1036 1036 dev->tx_queue_len = 3; 1037 1037 dev->type = ARPHRD_PPP;
+2 -2
drivers/net/ppp/pptp.c
··· 23 23 #include <linux/ppp_channel.h> 24 24 #include <linux/ppp_defs.h> 25 25 #include <linux/if_pppox.h> 26 - #include <linux/if_ppp.h> 26 + #include <linux/ppp-ioctl.h> 27 27 #include <linux/notifier.h> 28 28 #include <linux/file.h> 29 29 #include <linux/in.h> ··· 481 481 482 482 po->chan.mtu = dst_mtu(&rt->dst); 483 483 if (!po->chan.mtu) 484 - po->chan.mtu = PPP_MTU; 484 + po->chan.mtu = PPP_MRU; 485 485 ip_rt_put(rt); 486 486 po->chan.mtu -= PPTP_HEADER_OVERHEAD; 487 487
+1
include/linux/Kbuild
··· 305 305 header-y += posix_types.h 306 306 header-y += ppdev.h 307 307 header-y += ppp-comp.h 308 + header-y += ppp-ioctl.h 308 309 header-y += ppp_defs.h 309 310 header-y += pps.h 310 311 header-y += prctl.h
+1 -173
include/linux/if_ppp.h
··· 1 - /* 2 - * if_ppp.h - Point-to-Point Protocol definitions. 3 - * 4 - * Copyright (c) 1989 Carnegie Mellon University. 5 - * All rights reserved. 6 - * 7 - * Redistribution and use in source and binary forms are permitted 8 - * provided that the above copyright notice and this paragraph are 9 - * duplicated in all such forms and that any documentation, 10 - * advertising materials, and other materials related to such 11 - * distribution and use acknowledge that the software was developed 12 - * by Carnegie Mellon University. The name of the 13 - * University may not be used to endorse or promote products derived 14 - * from this software without specific prior written permission. 15 - * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR 16 - * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED 17 - * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. 18 - * 19 - */ 20 - 21 - /* 22 - * ==FILEVERSION 20050812== 23 - * 24 - * NOTE TO MAINTAINERS: 25 - * If you modify this file at all, please set the above date. 26 - * if_ppp.h is shipped with a PPP distribution as well as with the kernel; 27 - * if everyone increases the FILEVERSION number above, then scripts 28 - * can do the right thing when deciding whether to install a new if_ppp.h 29 - * file. Don't change the format of that line otherwise, so the 30 - * installation script can recognize it. 31 - */ 32 - 33 - #ifndef _IF_PPP_H_ 34 - #define _IF_PPP_H_ 35 - 36 - #include <linux/types.h> 37 - #include <linux/compiler.h> 38 - 39 - /* 40 - * Packet sizes 41 - */ 42 - 43 - #define PPP_MTU 1500 /* Default MTU (size of Info field) */ 44 - #define PPP_MAXMRU 65000 /* Largest MRU we allow */ 45 - #define PROTO_IPX 0x002b /* protocol numbers */ 46 - #define PROTO_DNA_RT 0x0027 /* DNA Routing */ 47 - 48 - 49 - /* 50 - * Bit definitions for flags. 51 - */ 52 - 53 - #define SC_COMP_PROT 0x00000001 /* protocol compression (output) */ 54 - #define SC_COMP_AC 0x00000002 /* header compression (output) */ 55 - #define SC_COMP_TCP 0x00000004 /* TCP (VJ) compression (output) */ 56 - #define SC_NO_TCP_CCID 0x00000008 /* disable VJ connection-id comp. */ 57 - #define SC_REJ_COMP_AC 0x00000010 /* reject adrs/ctrl comp. on input */ 58 - #define SC_REJ_COMP_TCP 0x00000020 /* reject TCP (VJ) comp. on input */ 59 - #define SC_CCP_OPEN 0x00000040 /* Look at CCP packets */ 60 - #define SC_CCP_UP 0x00000080 /* May send/recv compressed packets */ 61 - #define SC_ENABLE_IP 0x00000100 /* IP packets may be exchanged */ 62 - #define SC_LOOP_TRAFFIC 0x00000200 /* send traffic to pppd */ 63 - #define SC_MULTILINK 0x00000400 /* do multilink encapsulation */ 64 - #define SC_MP_SHORTSEQ 0x00000800 /* use short MP sequence numbers */ 65 - #define SC_COMP_RUN 0x00001000 /* compressor has been inited */ 66 - #define SC_DECOMP_RUN 0x00002000 /* decompressor has been inited */ 67 - #define SC_MP_XSHORTSEQ 0x00004000 /* transmit short MP seq numbers */ 68 - #define SC_DEBUG 0x00010000 /* enable debug messages */ 69 - #define SC_LOG_INPKT 0x00020000 /* log contents of good pkts recvd */ 70 - #define SC_LOG_OUTPKT 0x00040000 /* log contents of pkts sent */ 71 - #define SC_LOG_RAWIN 0x00080000 /* log all chars received */ 72 - #define SC_LOG_FLUSH 0x00100000 /* log all chars flushed */ 73 - #define SC_SYNC 0x00200000 /* synchronous serial mode */ 74 - #define SC_MUST_COMP 0x00400000 /* no uncompressed packets may be sent or received */ 75 - #define SC_MASK 0x0f600fff /* bits that user can change */ 76 - 77 - /* state bits */ 78 - #define SC_XMIT_BUSY 0x10000000 /* (used by isdn_ppp?) */ 79 - #define SC_RCV_ODDP 0x08000000 /* have rcvd char with odd parity */ 80 - #define SC_RCV_EVNP 0x04000000 /* have rcvd char with even parity */ 81 - #define SC_RCV_B7_1 0x02000000 /* have rcvd char with bit 7 = 1 */ 82 - #define SC_RCV_B7_0 0x01000000 /* have rcvd char with bit 7 = 0 */ 83 - #define SC_DC_FERROR 0x00800000 /* fatal decomp error detected */ 84 - #define SC_DC_ERROR 0x00400000 /* non-fatal decomp error detected */ 85 - 86 - /* 87 - * Ioctl definitions. 88 - */ 89 - 90 - struct npioctl { 91 - int protocol; /* PPP protocol, e.g. PPP_IP */ 92 - enum NPmode mode; 93 - }; 94 - 95 - /* Structure describing a CCP configuration option, for PPPIOCSCOMPRESS */ 96 - struct ppp_option_data { 97 - __u8 __user *ptr; 98 - __u32 length; 99 - int transmit; 100 - }; 101 - 102 - struct ifpppstatsreq { 103 - struct ifreq b; 104 - struct ppp_stats stats; /* statistic information */ 105 - }; 106 - 107 - struct ifpppcstatsreq { 108 - struct ifreq b; 109 - struct ppp_comp_stats stats; 110 - }; 111 - 112 - /* For PPPIOCGL2TPSTATS */ 113 - struct pppol2tp_ioc_stats { 114 - __u16 tunnel_id; /* redundant */ 115 - __u16 session_id; /* if zero, get tunnel stats */ 116 - __u32 using_ipsec:1; /* valid only for session_id == 0 */ 117 - __aligned_u64 tx_packets; 118 - __aligned_u64 tx_bytes; 119 - __aligned_u64 tx_errors; 120 - __aligned_u64 rx_packets; 121 - __aligned_u64 rx_bytes; 122 - __aligned_u64 rx_seq_discards; 123 - __aligned_u64 rx_oos_packets; 124 - __aligned_u64 rx_errors; 125 - }; 126 - 127 - #define ifr__name b.ifr_ifrn.ifrn_name 128 - #define stats_ptr b.ifr_ifru.ifru_data 129 - 130 - /* 131 - * Ioctl definitions. 132 - */ 133 - 134 - #define PPPIOCGFLAGS _IOR('t', 90, int) /* get configuration flags */ 135 - #define PPPIOCSFLAGS _IOW('t', 89, int) /* set configuration flags */ 136 - #define PPPIOCGASYNCMAP _IOR('t', 88, int) /* get async map */ 137 - #define PPPIOCSASYNCMAP _IOW('t', 87, int) /* set async map */ 138 - #define PPPIOCGUNIT _IOR('t', 86, int) /* get ppp unit number */ 139 - #define PPPIOCGRASYNCMAP _IOR('t', 85, int) /* get receive async map */ 140 - #define PPPIOCSRASYNCMAP _IOW('t', 84, int) /* set receive async map */ 141 - #define PPPIOCGMRU _IOR('t', 83, int) /* get max receive unit */ 142 - #define PPPIOCSMRU _IOW('t', 82, int) /* set max receive unit */ 143 - #define PPPIOCSMAXCID _IOW('t', 81, int) /* set VJ max slot ID */ 144 - #define PPPIOCGXASYNCMAP _IOR('t', 80, ext_accm) /* get extended ACCM */ 145 - #define PPPIOCSXASYNCMAP _IOW('t', 79, ext_accm) /* set extended ACCM */ 146 - #define PPPIOCXFERUNIT _IO('t', 78) /* transfer PPP unit */ 147 - #define PPPIOCSCOMPRESS _IOW('t', 77, struct ppp_option_data) 148 - #define PPPIOCGNPMODE _IOWR('t', 76, struct npioctl) /* get NP mode */ 149 - #define PPPIOCSNPMODE _IOW('t', 75, struct npioctl) /* set NP mode */ 150 - #define PPPIOCSPASS _IOW('t', 71, struct sock_fprog) /* set pass filter */ 151 - #define PPPIOCSACTIVE _IOW('t', 70, struct sock_fprog) /* set active filt */ 152 - #define PPPIOCGDEBUG _IOR('t', 65, int) /* Read debug level */ 153 - #define PPPIOCSDEBUG _IOW('t', 64, int) /* Set debug level */ 154 - #define PPPIOCGIDLE _IOR('t', 63, struct ppp_idle) /* get idle time */ 155 - #define PPPIOCNEWUNIT _IOWR('t', 62, int) /* create new ppp unit */ 156 - #define PPPIOCATTACH _IOW('t', 61, int) /* attach to ppp unit */ 157 - #define PPPIOCDETACH _IOW('t', 60, int) /* detach from ppp unit/chan */ 158 - #define PPPIOCSMRRU _IOW('t', 59, int) /* set multilink MRU */ 159 - #define PPPIOCCONNECT _IOW('t', 58, int) /* connect channel to unit */ 160 - #define PPPIOCDISCONN _IO('t', 57) /* disconnect channel */ 161 - #define PPPIOCATTCHAN _IOW('t', 56, int) /* attach to ppp channel */ 162 - #define PPPIOCGCHAN _IOR('t', 55, int) /* get ppp channel number */ 163 - #define PPPIOCGL2TPSTATS _IOR('t', 54, struct pppol2tp_ioc_stats) 164 - 165 - #define SIOCGPPPSTATS (SIOCDEVPRIVATE + 0) 166 - #define SIOCGPPPVER (SIOCDEVPRIVATE + 1) /* NEVER change this!! */ 167 - #define SIOCGPPPCSTATS (SIOCDEVPRIVATE + 2) 168 - 169 - #if !defined(ifr_mtu) 170 - #define ifr_mtu ifr_ifru.ifru_metric 171 - #endif 172 - 173 - #endif /* _IF_PPP_H_ */ 1 + #include <linux/ppp-ioctl.h>
+119
include/linux/ppp-ioctl.h
··· 1 + /* 2 + * ppp-ioctl.h - PPP ioctl definitions. 3 + * 4 + * Copyright 1999-2002 Paul Mackerras. 5 + * 6 + * This program is free software; you can redistribute it and/or 7 + * modify it under the terms of the GNU General Public License 8 + * version 2 as published by the Free Software Foundation. 9 + */ 10 + #ifndef _PPP_IOCTL_H 11 + #define _PPP_IOCTL_H 12 + 13 + #include <linux/types.h> 14 + #include <linux/compiler.h> 15 + 16 + /* 17 + * Bit definitions for flags argument to PPPIOCGFLAGS/PPPIOCSFLAGS. 18 + */ 19 + #define SC_COMP_PROT 0x00000001 /* protocol compression (output) */ 20 + #define SC_COMP_AC 0x00000002 /* header compression (output) */ 21 + #define SC_COMP_TCP 0x00000004 /* TCP (VJ) compression (output) */ 22 + #define SC_NO_TCP_CCID 0x00000008 /* disable VJ connection-id comp. */ 23 + #define SC_REJ_COMP_AC 0x00000010 /* reject adrs/ctrl comp. on input */ 24 + #define SC_REJ_COMP_TCP 0x00000020 /* reject TCP (VJ) comp. on input */ 25 + #define SC_CCP_OPEN 0x00000040 /* Look at CCP packets */ 26 + #define SC_CCP_UP 0x00000080 /* May send/recv compressed packets */ 27 + #define SC_ENABLE_IP 0x00000100 /* IP packets may be exchanged */ 28 + #define SC_LOOP_TRAFFIC 0x00000200 /* send traffic to pppd */ 29 + #define SC_MULTILINK 0x00000400 /* do multilink encapsulation */ 30 + #define SC_MP_SHORTSEQ 0x00000800 /* use short MP sequence numbers */ 31 + #define SC_COMP_RUN 0x00001000 /* compressor has been inited */ 32 + #define SC_DECOMP_RUN 0x00002000 /* decompressor has been inited */ 33 + #define SC_MP_XSHORTSEQ 0x00004000 /* transmit short MP seq numbers */ 34 + #define SC_DEBUG 0x00010000 /* enable debug messages */ 35 + #define SC_LOG_INPKT 0x00020000 /* log contents of good pkts recvd */ 36 + #define SC_LOG_OUTPKT 0x00040000 /* log contents of pkts sent */ 37 + #define SC_LOG_RAWIN 0x00080000 /* log all chars received */ 38 + #define SC_LOG_FLUSH 0x00100000 /* log all chars flushed */ 39 + #define SC_SYNC 0x00200000 /* synchronous serial mode */ 40 + #define SC_MUST_COMP 0x00400000 /* no uncompressed packets may be sent or received */ 41 + #define SC_MASK 0x0f600fff /* bits that user can change */ 42 + 43 + /* state bits */ 44 + #define SC_XMIT_BUSY 0x10000000 /* (used by isdn_ppp?) */ 45 + #define SC_RCV_ODDP 0x08000000 /* have rcvd char with odd parity */ 46 + #define SC_RCV_EVNP 0x04000000 /* have rcvd char with even parity */ 47 + #define SC_RCV_B7_1 0x02000000 /* have rcvd char with bit 7 = 1 */ 48 + #define SC_RCV_B7_0 0x01000000 /* have rcvd char with bit 7 = 0 */ 49 + #define SC_DC_FERROR 0x00800000 /* fatal decomp error detected */ 50 + #define SC_DC_ERROR 0x00400000 /* non-fatal decomp error detected */ 51 + 52 + /* Used with PPPIOCGNPMODE/PPPIOCSNPMODE */ 53 + struct npioctl { 54 + int protocol; /* PPP protocol, e.g. PPP_IP */ 55 + enum NPmode mode; 56 + }; 57 + 58 + /* Structure describing a CCP configuration option, for PPPIOCSCOMPRESS */ 59 + struct ppp_option_data { 60 + __u8 __user *ptr; 61 + __u32 length; 62 + int transmit; 63 + }; 64 + 65 + /* For PPPIOCGL2TPSTATS */ 66 + struct pppol2tp_ioc_stats { 67 + __u16 tunnel_id; /* redundant */ 68 + __u16 session_id; /* if zero, get tunnel stats */ 69 + __u32 using_ipsec:1; /* valid only for session_id == 0 */ 70 + __aligned_u64 tx_packets; 71 + __aligned_u64 tx_bytes; 72 + __aligned_u64 tx_errors; 73 + __aligned_u64 rx_packets; 74 + __aligned_u64 rx_bytes; 75 + __aligned_u64 rx_seq_discards; 76 + __aligned_u64 rx_oos_packets; 77 + __aligned_u64 rx_errors; 78 + }; 79 + 80 + /* 81 + * Ioctl definitions. 82 + */ 83 + 84 + #define PPPIOCGFLAGS _IOR('t', 90, int) /* get configuration flags */ 85 + #define PPPIOCSFLAGS _IOW('t', 89, int) /* set configuration flags */ 86 + #define PPPIOCGASYNCMAP _IOR('t', 88, int) /* get async map */ 87 + #define PPPIOCSASYNCMAP _IOW('t', 87, int) /* set async map */ 88 + #define PPPIOCGUNIT _IOR('t', 86, int) /* get ppp unit number */ 89 + #define PPPIOCGRASYNCMAP _IOR('t', 85, int) /* get receive async map */ 90 + #define PPPIOCSRASYNCMAP _IOW('t', 84, int) /* set receive async map */ 91 + #define PPPIOCGMRU _IOR('t', 83, int) /* get max receive unit */ 92 + #define PPPIOCSMRU _IOW('t', 82, int) /* set max receive unit */ 93 + #define PPPIOCSMAXCID _IOW('t', 81, int) /* set VJ max slot ID */ 94 + #define PPPIOCGXASYNCMAP _IOR('t', 80, ext_accm) /* get extended ACCM */ 95 + #define PPPIOCSXASYNCMAP _IOW('t', 79, ext_accm) /* set extended ACCM */ 96 + #define PPPIOCXFERUNIT _IO('t', 78) /* transfer PPP unit */ 97 + #define PPPIOCSCOMPRESS _IOW('t', 77, struct ppp_option_data) 98 + #define PPPIOCGNPMODE _IOWR('t', 76, struct npioctl) /* get NP mode */ 99 + #define PPPIOCSNPMODE _IOW('t', 75, struct npioctl) /* set NP mode */ 100 + #define PPPIOCSPASS _IOW('t', 71, struct sock_fprog) /* set pass filter */ 101 + #define PPPIOCSACTIVE _IOW('t', 70, struct sock_fprog) /* set active filt */ 102 + #define PPPIOCGDEBUG _IOR('t', 65, int) /* Read debug level */ 103 + #define PPPIOCSDEBUG _IOW('t', 64, int) /* Set debug level */ 104 + #define PPPIOCGIDLE _IOR('t', 63, struct ppp_idle) /* get idle time */ 105 + #define PPPIOCNEWUNIT _IOWR('t', 62, int) /* create new ppp unit */ 106 + #define PPPIOCATTACH _IOW('t', 61, int) /* attach to ppp unit */ 107 + #define PPPIOCDETACH _IOW('t', 60, int) /* detach from ppp unit/chan */ 108 + #define PPPIOCSMRRU _IOW('t', 59, int) /* set multilink MRU */ 109 + #define PPPIOCCONNECT _IOW('t', 58, int) /* connect channel to unit */ 110 + #define PPPIOCDISCONN _IO('t', 57) /* disconnect channel */ 111 + #define PPPIOCATTCHAN _IOW('t', 56, int) /* attach to ppp channel */ 112 + #define PPPIOCGCHAN _IOR('t', 55, int) /* get ppp channel number */ 113 + #define PPPIOCGL2TPSTATS _IOR('t', 54, struct pppol2tp_ioc_stats) 114 + 115 + #define SIOCGPPPSTATS (SIOCDEVPRIVATE + 0) 116 + #define SIOCGPPPVER (SIOCDEVPRIVATE + 1) /* NEVER change this!! */ 117 + #define SIOCGPPPCSTATS (SIOCDEVPRIVATE + 2) 118 + 119 + #endif /* _PPP_IOCTL_H */