linux/drivers/net
Dmitry Kozlov 00959ade36 PPTP: PPP over IPv4 (Point-to-Point Tunneling Protocol)
PPP: introduce "pptp" module which implements point-to-point tunneling protocol using pppox framework
NET: introduce the "gre" module for demultiplexing GRE packets on version criteria
     (required to pptp and ip_gre may coexists)
NET: ip_gre: update to use the "gre" module

This patch introduces then pptp support to the linux kernel which
dramatically speeds up pptp vpn connections and decreases cpu usage in
comparison of existing user-space implementation
(poptop/pptpclient). There is accel-pptp project
(https://sourceforge.net/projects/accel-pptp/) to utilize this module,
it contains plugin for pppd to use pptp in client-mode and modified
pptpd (poptop) to build high-performance pptp NAS.

There was many changes from initial submitted patch, most important are:
1. using rcu instead of read-write locks
2. using static bitmap instead of dynamically allocated
3. using vmalloc for memory allocation instead of BITS_PER_LONG + __get_free_pages
4. fixed many coding style issues
Thanks to Eric Dumazet.

Signed-off-by: Dmitry Kozlov <xeb@mail.ru>
Signed-off-by: Eric Dumazet <eric.dumazet@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2010-08-21 23:05:39 -07:00
..
appletalk fix typos concerning "initiali[zs]e" 2010-06-16 18:05:05 +02:00
arcnet arcnet: fix signed bug in probe function 2010-07-18 15:07:15 -07:00
arm ep93xx_eth: Use net_device_stats from struct net_device 2010-08-19 17:19:04 -07:00
atl1c atl1c: Add AR8151 v2 support and change L0s/L1 routine 2010-06-01 00:28:12 -07:00
atl1e
atlx drivers/net: use __packed annotation 2010-06-03 03:18:23 -07:00
benet Merge branch 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial 2010-08-04 15:31:02 -07:00
bnx2x drivers/net/bnx2x: Adjust confusing if indentation 2010-08-16 21:06:28 -07:00
bonding bonding: prevent sysfs from allowing arp monitoring with alb/tlb 2010-07-30 23:27:57 -07:00
caif caif-spi: Bugfix SPI_DATA_POS settings were inverted. 2010-08-10 16:39:28 -07:00
can of/device: Replace struct of_device with struct platform_device 2010-08-06 09:25:50 -06:00
chelsio chelsio: Remove remnants of CONFIG_CHELSIO_T1_COUGAR 2010-06-03 03:18:20 -07:00
cris eth_v10: Removing dead ETRAX_NETWORK_RED_ON_NO_CONNECTION 2010-07-14 13:41:53 -07:00
cxgb3 cxgb3: do not use PCI resources before pci_enable_device() 2010-08-04 16:18:02 -07:00
cxgb4 cxgb4: update driver version 2010-08-02 16:26:44 -07:00
cxgb4vf cxgb4vf: do not use PCI resources before pci_enable_device() 2010-08-04 16:18:02 -07:00
e1000 e100/e1000*/igb*/ixgb*: Add missing read memory barrier 2010-08-08 20:02:45 -07:00
e1000e Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6 2010-08-09 21:05:52 -07:00
ehea drivers/net: Convert unbounded kzalloc calls to kcalloc 2010-08-17 17:45:14 -07:00
enic enic: Mark intr_timer in vnic_enet_config as deprecated 2010-08-17 02:32:59 -07:00
fs_enet of/device: Replace struct of_device with struct platform_device 2010-08-06 09:25:50 -06:00
hamradio drivers/net/hamradio: Adjust confusing if indentation 2010-08-16 21:06:29 -07:00
ibm_newemac of/device: Replace struct of_device with struct platform_device 2010-08-06 09:25:50 -06:00
igb net: simplify flags for tx timestamping 2010-08-19 00:08:30 -07:00
igbvf e100/e1000*/igb*/ixgb*: Add missing read memory barrier 2010-08-08 20:02:45 -07:00
irda drivers/net/irda: Adjust confusing if indentation 2010-08-16 21:06:26 -07:00
ixgb e100/e1000*/igb*/ixgb*: Add missing read memory barrier 2010-08-08 20:02:45 -07:00
ixgbe ixgbe: rewrite ethtool test to use standard config functions 2010-08-19 16:45:28 -07:00
ixgbevf e100/e1000*/igb*/ixgb*: Add missing read memory barrier 2010-08-08 20:02:45 -07:00
ixp2000
mlx4 drivers/net: Convert unbounded kzalloc calls to kcalloc 2010-08-17 17:45:14 -07:00
myri10ge drivers/net: Convert unbounded kzalloc calls to kcalloc 2010-08-17 17:45:14 -07:00
netxen netxen: protect tx timeout recovery by rtnl lock 2010-08-07 23:05:23 -07:00
octeon net: preserve ifreq parameter when calling generic phy_mii_ioctl(). 2010-07-18 19:15:25 -07:00
pcmcia drivers/net/pcmcia: Use pr_<level> and netdev_<level> 2010-08-18 14:26:30 -07:00
phy Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6 2010-08-13 10:38:12 -07:00
qlcnic qlcnic: update version 5.0.8 2010-08-19 16:52:43 -07:00
qlge qlge: pull NULL check ahead of dereference 2010-08-19 20:48:07 -07:00
sfc sfc: Remove unused field left from mis-merge 2010-07-08 23:12:29 -07:00
skfp
stmmac stmmac: fix automatic PAD/FCS stripping 2010-07-27 20:43:50 -07:00
tokenring
tulip ethtool: Provide a default implementation of ethtool_ops::get_drvinfo 2010-08-17 02:31:15 -07:00
usb ethtool: Provide a default implementation of ethtool_ops::get_drvinfo 2010-08-17 02:31:15 -07:00
vmxnet3 net-next: Fix an overflow bug in vmxnet3 Tx descriptor 2010-07-25 17:06:52 -07:00
vxge vxge: Implement 64bit stats 2010-08-19 00:16:51 -07:00
wan drivers/net/wan: Adjust confusing if indentation 2010-08-16 21:06:25 -07:00
wimax Merge branch 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial 2010-08-04 15:31:02 -07:00
wireless drivers/net: Convert unbounded kzalloc calls to kcalloc 2010-08-17 17:45:14 -07:00
3c59x.c 3c59x: Add ethtool WOL support 2010-07-25 16:48:44 -07:00
3c501.c
3c501.h
3c503.c
3c503.h
3c505.c
3c505.h
3c507.c
3c509.c
3c515.c
3c523.c
3c523.h
3c527.c fix typos concerning "initiali[zs]e" 2010-06-16 18:05:05 +02:00
3c527.h drivers/net: use __packed annotation 2010-06-03 03:18:23 -07:00
7990.c
7990.h
8139cp.c Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6 2010-06-11 13:32:31 -07:00
8139too.c Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6 2010-06-11 13:32:31 -07:00
8390.c
8390.h
8390p.c
82596.c drivers/net/82596.c: fix warning 2010-07-19 15:27:13 -07:00
a2065.c
a2065.h
ac3200.c ac3200: fix error path 2010-07-11 18:15:08 -07:00
acenic.c
acenic.h
amd8111e.c drivers/net: Adjust confusing if indentation 2010-08-16 21:06:26 -07:00
amd8111e.h
apne.c
ariadne.c
ariadne.h
at1700.c at1700: fix double free_irq 2010-07-11 18:15:08 -07:00
atarilance.c
atp.c
atp.h
au1000_eth.c Merge branch 'upstream' of git://git.linux-mips.org/pub/scm/upstream-linus 2010-08-05 08:53:20 -07:00
au1000_eth.h
ax88796.c ax88796: free irq on error 2010-07-08 23:42:40 -07:00
b44.c b44: remove unused dma_desc_align_mask 2010-07-07 18:24:29 -07:00
b44.h
bcm63xx_enet.c net: preserve ifreq parameter when calling generic phy_mii_ioctl(). 2010-07-18 19:15:25 -07:00
bcm63xx_enet.h
bfin_mac.c net: simplify flags for tx timestamping 2010-08-19 00:08:30 -07:00
bfin_mac.h netdev:bfin_mac: reclaim and free tx skb as soon as possible after transfer 2010-06-15 15:04:10 -07:00
bmac.c ethtool: Provide a default implementation of ethtool_ops::get_drvinfo 2010-08-17 02:31:15 -07:00
bmac.h
bnx2.c bnx2: Update version to 2.0.17. 2010-07-19 20:30:07 -07:00
bnx2.h bnx2: Call pci_enable_msix() with actual number of vectors. 2010-07-19 20:30:06 -07:00
bnx2_fw.h
bsd_comp.c
cassini.c cassini: Removing dead CASSINI_NAPI 2010-07-14 13:36:18 -07:00
cassini.h cassini: Removing dead CASSINI_QGE_DEBUG 2010-07-14 12:18:31 -07:00
cnic.c drivers/net: Convert unbounded kzalloc calls to kcalloc 2010-08-17 17:45:14 -07:00
cnic.h cnic: Unify kcq allocation for all devices. 2010-06-25 20:37:19 -07:00
cnic_defs.h
cnic_if.h cnic: Update version to 2.1.3. 2010-06-25 20:37:21 -07:00
cpmac.c cpmac: fix all checkpatch errors and warnings 2010-08-17 02:32:55 -07:00
cs89x0.c net: Removing dead ARCH_PNX010X 2010-07-19 13:32:57 -07:00
cs89x0.h cs89x0: Removing dead SH_HICOSH4 2010-07-14 13:40:36 -07:00
davinci_emac.c davinci_emac: Fix use after free in davinci_emac_remove 2010-08-04 16:18:03 -07:00
de600.c
de600.h
de620.c
de620.h
declance.c NET: declance: Fix section mismatches 2010-07-26 19:08:14 +01:00
defxx.c
defxx.h
depca.c depca: fix leaks in depca_module_init() 2010-07-12 20:21:40 -07:00
depca.h
dl2k.c
dl2k.h
dm9000.c drivers/net: use __packed annotation 2010-06-03 03:18:23 -07:00
dm9000.h
dnet.c dnet: fixup error handling in initialization 2010-07-30 23:27:58 -07:00
dnet.h
dummy.c
e100.c e100/e1000*/igb*/ixgb*: Add missing read memory barrier 2010-08-08 20:02:45 -07:00
e2100.c
eepro.c drivers/net: Adjust confusing if indentation 2010-08-16 21:06:26 -07:00
eexpress.c
eexpress.h
enc28j60.c
enc28j60_hw.h
epic100.c epic100: Use the instance of net_device_stats from net_device. 2010-07-05 19:41:14 -07:00
eql.c
es3210.c
eth16i.c eth16i: fix memory leak 2010-07-14 17:57:19 -07:00
ethoc.c ethoc: add devinit/devexit section initializers 2010-07-26 18:45:05 -07:00
ewrk3.c
ewrk3.h
fealnx.c fealnx: Use the instance of net_device_stats from net_device. 2010-07-05 19:41:13 -07:00
fec.c net/fec: restore interrupt mask after software-reset in fec_stop() 2010-07-22 14:14:46 -07:00
fec.h
fec_mpc52xx.c ethtool: Provide a default implementation of ethtool_ops::get_drvinfo 2010-08-17 02:31:15 -07:00
fec_mpc52xx.h
fec_mpc52xx_phy.c of/device: Replace struct of_device with struct platform_device 2010-08-06 09:25:50 -06:00
forcedeth.c forcedeth: Fix different hardware statistics versions. 2010-07-25 21:54:28 -07:00
fsl_pq_mdio.c of/device: Replace struct of_device with struct platform_device 2010-08-06 09:25:50 -06:00
fsl_pq_mdio.h drivers/net: use __packed annotation 2010-06-03 03:18:23 -07:00
gianfar.c net: simplify flags for tx timestamping 2010-08-19 00:08:30 -07:00
gianfar.h of/device: Replace struct of_device with struct platform_device 2010-08-06 09:25:50 -06:00
gianfar_ethtool.c
gianfar_sysfs.c
greth.c greth: Use return value of register_netdev 2010-08-19 00:04:31 -07:00
greth.h of/device: Replace struct of_device with struct platform_device 2010-08-06 09:25:50 -06:00
hamachi.c hamachi: Use the instance of net_device_stats from net_device. 2010-07-05 19:41:15 -07:00
hp-plus.c
hp.c
hp100.c Merge branch 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial 2010-08-04 15:31:02 -07:00
hp100.h
hplance.c
hplance.h
hydra.c
ibmlana.c
ibmlana.h
ibmveth.c ibmveth: lost IRQ while closing/opening device leads to service loss 2010-07-16 13:03:23 -07:00
ibmveth.h
ifb.c
ioc3-eth.c ioc3-eth: Use the instance of net_device_stats from net_device. 2010-07-05 19:41:12 -07:00
ipg.c
ipg.h
iseries_veth.c
jazzsonic.c jazzsonic: free irq if sonic_open() fails 2010-07-12 20:21:44 -07:00
jme.c
jme.h
Kconfig PPTP: PPP over IPv4 (Point-to-Point Tunneling Protocol) 2010-08-21 23:05:39 -07:00
korina.c korina: count RX DMA OVR as rx_fifo_error 2010-06-02 06:12:19 -07:00
ks8842.c ks8842: Fix warnings on 64-bit. 2010-07-27 22:24:37 -07:00
ks8851.c
ks8851.h
ks8851_mll.c
ksz884x.c Merge branch 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial 2010-08-04 15:31:02 -07:00
lance.c lance: Use the instance of net_device_stats from net_device. 2010-07-05 19:41:16 -07:00
lasi_82596.c
lib8390.c
lib82596.c lasi82596: fix netdev_mc_count conversion 2010-06-21 13:50:18 -07:00
LICENSE.SRC
ll_temac.h
ll_temac_main.c of/device: Replace struct of_device with struct platform_device 2010-08-06 09:25:50 -06:00
ll_temac_mdio.c
lne390.c
loopback.c net: fix 64 bit counters on 32 bit arches 2010-07-07 14:58:56 -07:00
lp486e.c
mac89x0.c mac89x0: Use the instance of net_device_stats from net_device. 2010-07-05 19:41:18 -07:00
mac8390.c net: mac8390 - Sort out memory/MMIO accesses and casts 2010-06-03 03:18:20 -07:00
macb.c net: preserve ifreq parameter when calling generic phy_mii_ioctl(). 2010-07-18 19:15:25 -07:00
macb.h
mace.c powerpc/macio: Fix probing of macio devices by using the right of match table 2010-06-02 17:50:38 +10:00
mace.h
macmace.c
macsonic.c macsonic: free irqs if sonic_open() fails 2010-07-12 20:21:44 -07:00
macvlan.c macvlan: Fix rx counters update in macvlan_handle_frame() 2010-07-27 21:02:42 -07:00
macvtap.c macvtap: Implement multiqueue for macvtap driver 2010-08-16 21:06:25 -07:00
Makefile PPTP: PPP over IPv4 (Point-to-Point Tunneling Protocol) 2010-08-21 23:05:39 -07:00
mdio.c
meth.c
meth.h
mii.c
mipsnet.c NET: MIPSsim: Fix modpost warning. 2010-06-21 13:40:25 -07:00
mv643xx_eth.c mv643xx_eth: potential null dereference 2010-07-23 13:05:12 -07:00
mvme147.c
myri_sbus.c of/device: Replace struct of_device with struct platform_device 2010-08-06 09:25:50 -06:00
myri_sbus.h of/device: Replace struct of_device with struct platform_device 2010-08-06 09:25:50 -06:00
natsemi.c natsemi: Use the instance of net_device_stats from net_device. 2010-07-05 19:41:17 -07:00
ne-h8300.c
ne.c net/ne: fix memory leak in ne_drv_probe() 2010-07-05 20:08:05 -07:00
ne2.c
ne2k-pci.c
ne3210.c
netconsole.c
netx-eth.c
ni52.c ni52: Use the instance of net_device_stats from net_device. 2010-07-05 19:41:19 -07:00
ni52.h
ni65.c
ni65.h
ni5010.c
ni5010.h
niu.c drivers/net: Convert unbounded kzalloc calls to kcalloc 2010-08-17 17:45:14 -07:00
niu.h of: kill struct of_device 2010-06-28 12:41:33 -07:00
ns83820.c ns83820: Use the instance of net_device_stats from net_device. 2010-07-05 19:41:18 -07:00
pasemi_mac.c
pasemi_mac.h
pasemi_mac_ethtool.c ethtool: Provide a default implementation of ethtool_ops::get_drvinfo 2010-08-17 02:31:15 -07:00
pci-skeleton.c
pcnet32.c
plip.c
ppp_async.c ppp: make channel_ops const 2010-08-04 21:53:17 -07:00
ppp_deflate.c
ppp_generic.c net: autoconvert trivial BKL users to private mutex 2010-07-12 20:21:47 -07:00
ppp_mppe.c
ppp_mppe.h
ppp_synctty.c ppp: make channel_ops const 2010-08-04 21:53:17 -07:00
pppoe.c ppp: make channel_ops const 2010-08-04 21:53:17 -07:00
pppox.c
pptp.c PPTP: PPP over IPv4 (Point-to-Point Tunneling Protocol) 2010-08-21 23:05:39 -07:00
ps3_gelic_net.c
ps3_gelic_net.h
ps3_gelic_wireless.c
ps3_gelic_wireless.h drivers/net: use __packed annotation 2010-06-03 03:18:23 -07:00
qla3xxx.c drivers/net/qla3xxx.c: Checkpatch cleanups 2010-07-26 13:15:21 -07:00
qla3xxx.h
r6040.c r6040: fix all checkpatch errors and warnings 2010-08-17 02:32:54 -07:00
r8169.c Merge branch 'linux-next' of git://git.kernel.org/pub/scm/linux/kernel/git/jbarnes/pci-2.6 2010-08-06 11:44:36 -07:00
rionet.c
rrunner.c
rrunner.h
s2io-regs.h vxge: Update copyright information 2010-07-15 20:46:22 -07:00
s2io.c s2io: Update driver version 2010-08-18 14:24:50 -07:00
s2io.h s2io: remove unused code 2010-08-18 14:24:50 -07:00
s6gmac.c
sb1000.c
sb1250-mac.c net: preserve ifreq parameter when calling generic phy_mii_ioctl(). 2010-07-18 19:15:25 -07:00
sc92031.c ethtool: Provide a default implementation of ethtool_ops::get_drvinfo 2010-08-17 02:31:15 -07:00
seeq8005.c
seeq8005.h
sgiseeq.c
sgiseeq.h
sh_eth.c Merge branch 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial 2010-08-04 15:31:02 -07:00
sh_eth.h
sis190.c
sis900.c
sis900.h
skge.c
skge.h
sky2.c sky2: Code style fixes 2010-07-30 23:59:04 -07:00
sky2.h drivers/net: use __packed annotation 2010-06-03 03:18:23 -07:00
slhc.c
slip.c slip: fix get_stats() method 2010-08-19 00:16:52 -07:00
slip.h
smc-mca.c
smc-ultra.c
smc-ultra32.c
smc91x.c
smc91x.h Remove REDWOOD_[456] config options and conditional code 2010-07-26 09:06:04 -04:00
smc911x.c
smc911x.h
smc9194.c
smc9194.h
smsc911x.c smsc911x: Add spinlocks around registers access 2010-07-19 13:36:21 -07:00
smsc911x.h
smsc9420.c net: preserve ifreq parameter when calling generic phy_mii_ioctl(). 2010-07-18 19:15:25 -07:00
smsc9420.h
sni_82596.c
sonic.c
sonic.h
Space.c net: Removing dead {AR,WAVE}LAN 2010-07-14 12:17:35 -07:00
spider_net.c
spider_net.h
spider_net_ethtool.c
starfire.c starfire: Use the instance of net_device_stats from net_device. 2010-07-05 19:41:15 -07:00
stnic.c
sun3_82586.c sun3_82586: Use the instance of net_device_stats from net_device. 2010-07-05 19:41:11 -07:00
sun3_82586.h
sun3lance.c
sunbmac.c of/device: Replace struct of_device with struct platform_device 2010-08-06 09:25:50 -06:00
sunbmac.h of/device: Replace struct of_device with struct platform_device 2010-08-06 09:25:50 -06:00
sundance.c
sungem.c drivers/net/sungem: Use netdev_<level>, netif_<level> and pr_<level> 2010-08-19 00:04:33 -07:00
sungem.h
sungem_phy.c drivers/net/sungem: Use netdev_<level>, netif_<level> and pr_<level> 2010-08-19 00:04:33 -07:00
sungem_phy.h
sunhme.c sunhme: Use return value of register_netdev 2010-08-19 00:04:32 -07:00
sunhme.h of/device: Replace struct of_device with struct platform_device 2010-08-06 09:25:50 -06:00
sunlance.c of/device: Replace struct of_device with struct platform_device 2010-08-06 09:25:50 -06:00
sunqe.c of/device: Replace struct of_device with struct platform_device 2010-08-06 09:25:50 -06:00
sunqe.h of/device: Replace struct of_device with struct platform_device 2010-08-06 09:25:50 -06:00
sunvnet.c drivers/net/sunvnet.c: Use pr_<level> and netdev_<level> 2010-08-19 00:04:34 -07:00
sunvnet.h
tc35815.c net: preserve ifreq parameter when calling generic phy_mii_ioctl(). 2010-07-18 19:15:25 -07:00
tehuti.c tehuti: Use net_device_stats from struct net_device 2010-08-19 17:19:05 -07:00
tehuti.h tehuti: Use net_device_stats from struct net_device 2010-08-19 17:19:05 -07:00
tg3.c tg3: Update version to 3.113 2010-08-02 15:46:33 -07:00
tg3.h tg3: Migrate tg3_flags to phy_flags 2010-08-02 15:46:33 -07:00
tlan.c
tlan.h
tsi108_eth.c
tsi108_eth.h
tun.c tun: keep link (carrier) state up to date 2010-07-30 22:06:41 -07:00
typhoon.c drivers/net: use __packed annotation 2010-06-03 03:18:23 -07:00
typhoon.h drivers/net: use __packed annotation 2010-06-03 03:18:23 -07:00
ucc_geth.c of/device: Replace struct of_device with struct platform_device 2010-08-06 09:25:50 -06:00
ucc_geth.h drivers/net: use __packed annotation 2010-06-03 03:18:23 -07:00
ucc_geth_ethtool.c
veth.c
via-rhine.c
via-velocity.c via-velocity: do not use PCI resources before pci_enable_device() 2010-08-04 16:18:03 -07:00
via-velocity.h drivers/net: use __packed annotation 2010-06-03 03:18:23 -07:00
virtio_net.c ethtool: Provide a default implementation of ethtool_ops::get_drvinfo 2010-08-17 02:31:15 -07:00
wd.c wd: fix memory leak 2010-07-14 17:53:18 -07:00
xen-netfront.c xen: netfront: explicitly generate arp_notify event after migration. 2010-05-31 00:27:44 -07:00
xilinx_emaclite.c xilinx_emaclite: netpoll support 2010-08-19 00:49:47 -07:00
xtsonic.c xtsonic: free irq if sonic_open() fails 2010-07-12 20:21:45 -07:00
yellowfin.c
znet.c
zorro8390.c