summaryrefslogtreecommitdiffstats
path: root/Documentation
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2008-04-19 03:02:35 +0200
committerLinus Torvalds <torvalds@linux-foundation.org>2008-04-19 03:02:35 +0200
commit334d094504c2fe1c44211ecb49146ae6bca8c321 (patch)
treed3c0f68e4b9f8e3d2ccc39e7dfe5de0534a5fad9 /Documentation
parentx86 PAT: fix mmap() of holes (diff)
parent[NET]: Fix and allocate less memory for ->priv'less netdevices (diff)
downloadlinux-334d094504c2fe1c44211ecb49146ae6bca8c321.tar.xz
linux-334d094504c2fe1c44211ecb49146ae6bca8c321.zip
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6.26
* git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6.26: (1090 commits) [NET]: Fix and allocate less memory for ->priv'less netdevices [IPV6]: Fix dangling references on error in fib6_add(). [NETLABEL]: Fix NULL deref in netlbl_unlabel_staticlist_gen() if ifindex not found [PKT_SCHED]: Fix datalen check in tcf_simp_init(). [INET]: Uninline the __inet_inherit_port call. [INET]: Drop the inet_inherit_port() call. SCTP: Initialize partial_bytes_acked to 0, when all of the data is acked. [netdrvr] forcedeth: internal simplifications; changelog removal phylib: factor out get_phy_id from within get_phy_device PHY: add BCM5464 support to broadcom PHY driver cxgb3: Fix __must_check warning with dev_dbg. tc35815: Statistics cleanup natsemi: fix MMIO for PPC 44x platforms [TIPC]: Cleanup of TIPC reference table code [TIPC]: Optimized initialization of TIPC reference table [TIPC]: Remove inlining of reference table locking routines e1000: convert uint16_t style integers to u16 ixgb: convert uint16_t style integers to u16 sb1000.c: make const arrays static sb1000.c: stop inlining largish static functions ...
Diffstat (limited to 'Documentation')
-rw-r--r--Documentation/DocBook/Makefile3
-rw-r--r--Documentation/DocBook/mac80211.tmpl335
-rw-r--r--Documentation/feature-removal-schedule.txt37
-rw-r--r--Documentation/laptops/acer-wmi.txt2
-rw-r--r--Documentation/networking/00-INDEX2
-rw-r--r--Documentation/networking/bcm43xx.txt89
-rw-r--r--Documentation/networking/wan-router.txt621
7 files changed, 338 insertions, 751 deletions
diff --git a/Documentation/DocBook/Makefile b/Documentation/DocBook/Makefile
index e471bc466a7e..b2b6366bba51 100644
--- a/Documentation/DocBook/Makefile
+++ b/Documentation/DocBook/Makefile
@@ -11,7 +11,8 @@ DOCBOOKS := wanbook.xml z8530book.xml mcabook.xml videobook.xml \
procfs-guide.xml writing_usb_driver.xml networking.xml \
kernel-api.xml filesystems.xml lsm.xml usb.xml kgdb.xml \
gadget.xml libata.xml mtdnand.xml librs.xml rapidio.xml \
- genericirq.xml s390-drivers.xml uio-howto.xml scsi.xml
+ genericirq.xml s390-drivers.xml uio-howto.xml scsi.xml \
+ mac80211.xml
###
# The build process is as follows (targets):
diff --git a/Documentation/DocBook/mac80211.tmpl b/Documentation/DocBook/mac80211.tmpl
new file mode 100644
index 000000000000..b651e0a4b1c0
--- /dev/null
+++ b/Documentation/DocBook/mac80211.tmpl
@@ -0,0 +1,335 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
+ "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd" []>
+
+<book id="mac80211-developers-guide">
+ <bookinfo>
+ <title>The mac80211 subsystem for kernel developers</title>
+
+ <authorgroup>
+ <author>
+ <firstname>Johannes</firstname>
+ <surname>Berg</surname>
+ <affiliation>
+ <address><email>johannes@sipsolutions.net</email></address>
+ </affiliation>
+ </author>
+ </authorgroup>
+
+ <copyright>
+ <year>2007</year>
+ <year>2008</year>
+ <holder>Johannes Berg</holder>
+ </copyright>
+
+ <legalnotice>
+ <para>
+ This documentation is free software; you can redistribute
+ it and/or modify it under the terms of the GNU General Public
+ License version 2 as published by the Free Software Foundation.
+ </para>
+
+ <para>
+ This documentation is distributed in the hope that it will be
+ useful, but WITHOUT ANY WARRANTY; without even the implied
+ warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ See the GNU General Public License for more details.
+ </para>
+
+ <para>
+ You should have received a copy of the GNU General Public
+ License along with this documentation; if not, write to the Free
+ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ MA 02111-1307 USA
+ </para>
+
+ <para>
+ For more details see the file COPYING in the source
+ distribution of Linux.
+ </para>
+ </legalnotice>
+
+ <abstract>
+!Pinclude/net/mac80211.h Introduction
+!Pinclude/net/mac80211.h Warning
+ </abstract>
+ </bookinfo>
+
+ <toc></toc>
+
+<!--
+Generally, this document shall be ordered by increasing complexity.
+It is important to note that readers should be able to read only
+the first few sections to get a working driver and only advanced
+usage should require reading the full document.
+-->
+
+ <part>
+ <title>The basic mac80211 driver interface</title>
+ <partintro>
+ <para>
+ You should read and understand the information contained
+ within this part of the book while implementing a driver.
+ In some chapters, advanced usage is noted, that may be
+ skipped at first.
+ </para>
+ <para>
+ This part of the book only covers station and monitor mode
+ functionality, additional information required to implement
+ the other modes is covered in the second part of the book.
+ </para>
+ </partintro>
+
+ <chapter id="basics">
+ <title>Basic hardware handling</title>
+ <para>TBD</para>
+ <para>
+ This chapter shall contain information on getting a hw
+ struct allocated and registered with mac80211.
+ </para>
+ <para>
+ Since it is required to allocate rates/modes before registering
+ a hw struct, this chapter shall also contain information on setting
+ up the rate/mode structs.
+ </para>
+ <para>
+ Additionally, some discussion about the callbacks and
+ the general programming model should be in here, including
+ the definition of ieee80211_ops which will be referred to
+ a lot.
+ </para>
+ <para>
+ Finally, a discussion of hardware capabilities should be done
+ with references to other parts of the book.
+ </para>
+<!-- intentionally multiple !F lines to get proper order -->
+!Finclude/net/mac80211.h ieee80211_hw
+!Finclude/net/mac80211.h ieee80211_hw_flags
+!Finclude/net/mac80211.h SET_IEEE80211_DEV
+!Finclude/net/mac80211.h SET_IEEE80211_PERM_ADDR
+!Finclude/net/mac80211.h ieee80211_ops
+!Finclude/net/mac80211.h ieee80211_alloc_hw
+!Finclude/net/mac80211.h ieee80211_register_hw
+!Finclude/net/mac80211.h ieee80211_get_tx_led_name
+!Finclude/net/mac80211.h ieee80211_get_rx_led_name
+!Finclude/net/mac80211.h ieee80211_get_assoc_led_name
+!Finclude/net/mac80211.h ieee80211_get_radio_led_name
+!Finclude/net/mac80211.h ieee80211_unregister_hw
+!Finclude/net/mac80211.h ieee80211_free_hw
+ </chapter>
+
+ <chapter id="phy-handling">
+ <title>PHY configuration</title>
+ <para>TBD</para>
+ <para>
+ This chapter should describe PHY handling including
+ start/stop callbacks and the various structures used.
+ </para>
+!Finclude/net/mac80211.h ieee80211_conf
+!Finclude/net/mac80211.h ieee80211_conf_flags
+ </chapter>
+
+ <chapter id="iface-handling">
+ <title>Virtual interfaces</title>
+ <para>TBD</para>
+ <para>
+ This chapter should describe virtual interface basics
+ that are relevant to the driver (VLANs, MGMT etc are not.)
+ It should explain the use of the add_iface/remove_iface
+ callbacks as well as the interface configuration callbacks.
+ </para>
+ <para>Things related to AP mode should be discussed there.</para>
+ <para>
+ Things related to supporting multiple interfaces should be
+ in the appropriate chapter, a BIG FAT note should be here about
+ this though and the recommendation to allow only a single
+ interface in STA mode at first!
+ </para>
+!Finclude/net/mac80211.h ieee80211_if_types
+!Finclude/net/mac80211.h ieee80211_if_init_conf
+!Finclude/net/mac80211.h ieee80211_if_conf
+ </chapter>
+
+ <chapter id="rx-tx">
+ <title>Receive and transmit processing</title>
+ <sect1>
+ <title>what should be here</title>
+ <para>TBD</para>
+ <para>
+ This should describe the receive and transmit
+ paths in mac80211/the drivers as well as
+ transmit status handling.
+ </para>
+ </sect1>
+ <sect1>
+ <title>Frame format</title>
+!Pinclude/net/mac80211.h Frame format
+ </sect1>
+ <sect1>
+ <title>Alignment issues</title>
+ <para>TBD</para>
+ </sect1>
+ <sect1>
+ <title>Calling into mac80211 from interrupts</title>
+!Pinclude/net/mac80211.h Calling mac80211 from interrupts
+ </sect1>
+ <sect1>
+ <title>functions/definitions</title>
+!Finclude/net/mac80211.h ieee80211_rx_status
+!Finclude/net/mac80211.h mac80211_rx_flags
+!Finclude/net/mac80211.h ieee80211_tx_control
+!Finclude/net/mac80211.h ieee80211_tx_status_flags
+!Finclude/net/mac80211.h ieee80211_rx
+!Finclude/net/mac80211.h ieee80211_rx_irqsafe
+!Finclude/net/mac80211.h ieee80211_tx_status
+!Finclude/net/mac80211.h ieee80211_tx_status_irqsafe
+!Finclude/net/mac80211.h ieee80211_rts_get
+!Finclude/net/mac80211.h ieee80211_rts_duration
+!Finclude/net/mac80211.h ieee80211_ctstoself_get
+!Finclude/net/mac80211.h ieee80211_ctstoself_duration
+!Finclude/net/mac80211.h ieee80211_generic_frame_duration
+!Finclude/net/mac80211.h ieee80211_get_hdrlen_from_skb
+!Finclude/net/mac80211.h ieee80211_get_hdrlen
+!Finclude/net/mac80211.h ieee80211_wake_queue
+!Finclude/net/mac80211.h ieee80211_stop_queue
+!Finclude/net/mac80211.h ieee80211_start_queues
+!Finclude/net/mac80211.h ieee80211_stop_queues
+!Finclude/net/mac80211.h ieee80211_wake_queues
+ </sect1>
+ </chapter>
+
+ <chapter id="filters">
+ <title>Frame filtering</title>
+!Pinclude/net/mac80211.h Frame filtering
+!Finclude/net/mac80211.h ieee80211_filter_flags
+ </chapter>
+ </part>
+
+ <part id="advanced">
+ <title>Advanced driver interface</title>
+ <partintro>
+ <para>
+ Information contained within this part of the book is
+ of interest only for advanced interaction of mac80211
+ with drivers to exploit more hardware capabilities and
+ improve performance.
+ </para>
+ </partintro>
+
+ <chapter id="hardware-crypto-offload">
+ <title>Hardware crypto acceleration</title>
+!Pinclude/net/mac80211.h Hardware crypto acceleration
+<!-- intentionally multiple !F lines to get proper order -->
+!Finclude/net/mac80211.h set_key_cmd
+!Finclude/net/mac80211.h ieee80211_key_conf
+!Finclude/net/mac80211.h ieee80211_key_alg
+!Finclude/net/mac80211.h ieee80211_key_flags
+ </chapter>
+
+ <chapter id="qos">
+ <title>Multiple queues and QoS support</title>
+ <para>TBD</para>
+!Finclude/net/mac80211.h ieee80211_tx_queue_params
+!Finclude/net/mac80211.h ieee80211_tx_queue_stats_data
+!Finclude/net/mac80211.h ieee80211_tx_queue
+ </chapter>
+
+ <chapter id="AP">
+ <title>Access point mode support</title>
+ <para>TBD</para>
+ <para>Some parts of the if_conf should be discussed here instead</para>
+ <para>
+ Insert notes about VLAN interfaces with hw crypto here or
+ in the hw crypto chapter.
+ </para>
+!Finclude/net/mac80211.h ieee80211_get_buffered_bc
+!Finclude/net/mac80211.h ieee80211_beacon_get
+ </chapter>
+
+ <chapter id="multi-iface">
+ <title>Supporting multiple virtual interfaces</title>
+ <para>TBD</para>
+ <para>
+ Note: WDS with identical MAC address should almost always be OK
+ </para>
+ <para>
+ Insert notes about having multiple virtual interfaces with
+ different MAC addresses here, note which configurations are
+ supported by mac80211, add notes about supporting hw crypto
+ with it.
+ </para>
+ </chapter>
+
+ <chapter id="hardware-scan-offload">
+ <title>Hardware scan offload</title>
+ <para>TBD</para>
+!Finclude/net/mac80211.h ieee80211_scan_completed
+ </chapter>
+ </part>
+
+ <part id="rate-control">
+ <title>Rate control interface</title>
+ <partintro>
+ <para>TBD</para>
+ <para>
+ This part of the book describes the rate control algorithm
+ interface and how it relates to mac80211 and drivers.
+ </para>
+ </partintro>
+ <chapter id="dummy">
+ <title>dummy chapter</title>
+ <para>TBD</para>
+ </chapter>
+ </part>
+
+ <part id="internal">
+ <title>Internals</title>
+ <partintro>
+ <para>TBD</para>
+ <para>
+ This part of the book describes mac80211 internals.
+ </para>
+ </partintro>
+
+ <chapter id="key-handling">
+ <title>Key handling</title>
+ <sect1>
+ <title>Key handling basics</title>
+!Pnet/mac80211/key.c Key handling basics
+ </sect1>
+ <sect1>
+ <title>MORE TBD</title>
+ <para>TBD</para>
+ </sect1>
+ </chapter>
+
+ <chapter id="rx-processing">
+ <title>Receive processing</title>
+ <para>TBD</para>
+ </chapter>
+
+ <chapter id="tx-processing">
+ <title>Transmit processing</title>
+ <para>TBD</para>
+ </chapter>
+
+ <chapter id="sta-info">
+ <title>Station info handling</title>
+ <sect1>
+ <title>Programming information</title>
+!Fnet/mac80211/sta_info.h sta_info
+!Fnet/mac80211/sta_info.h ieee80211_sta_info_flags
+ </sect1>
+ <sect1>
+ <title>STA information lifetime rules</title>
+!Pnet/mac80211/sta_info.c STA information lifetime rules
+ </sect1>
+ </chapter>
+
+ <chapter id="synchronisation">
+ <title>Synchronisation</title>
+ <para>TBD</para>
+ <para>Locking, lots of RCU</para>
+ </chapter>
+ </part>
+</book>
diff --git a/Documentation/feature-removal-schedule.txt b/Documentation/feature-removal-schedule.txt
index 4b70622a8a91..af0e9393bf68 100644
--- a/Documentation/feature-removal-schedule.txt
+++ b/Documentation/feature-removal-schedule.txt
@@ -203,14 +203,6 @@ Who: linuxppc-dev@ozlabs.org
---------------------------
-What: sk98lin network driver
-When: Feburary 2008
-Why: In kernel tree version of driver is unmaintained. Sk98lin driver
- replaced by the skge driver.
-Who: Stephen Hemminger <shemminger@linux-foundation.org>
-
----------------------------
-
What: i386/x86_64 bzImage symlinks
When: April 2010
@@ -221,8 +213,6 @@ Who: Thomas Gleixner <tglx@linutronix.de>
---------------------------
----------------------------
-
What: i2c-i810, i2c-prosavage and i2c-savage4
When: May 2008
Why: These drivers are superseded by i810fb, intelfb and savagefb.
@@ -230,33 +220,6 @@ Who: Jean Delvare <khali@linux-fr.org>
---------------------------
-What: bcm43xx wireless network driver
-When: 2.6.26
-Files: drivers/net/wireless/bcm43xx
-Why: This driver's functionality has been replaced by the
- mac80211-based b43 and b43legacy drivers.
-Who: John W. Linville <linville@tuxdriver.com>
-
----------------------------
-
-What: ieee80211 softmac wireless networking component
-When: 2.6.26 (or after removal of bcm43xx and port of zd1211rw to mac80211)
-Files: net/ieee80211/softmac
-Why: No in-kernel drivers will depend on it any longer.
-Who: John W. Linville <linville@tuxdriver.com>
-
----------------------------
-
-What: rc80211-simple rate control algorithm for mac80211
-When: 2.6.26
-Files: net/mac80211/rc80211-simple.c
-Why: This algorithm was provided for reference but always exhibited bad
- responsiveness and performance and has some serious flaws. It has been
- replaced by rc80211-pid.
-Who: Stefano Brivio <stefano.brivio@polimi.it>
-
----------------------------
-
What (Why):
- include/linux/netfilter_ipv4/ipt_TOS.h ipt_tos.h header files
(superseded by xt_TOS/xt_tos target & match)
diff --git a/Documentation/laptops/acer-wmi.txt b/Documentation/laptops/acer-wmi.txt
index 23df051dbf69..79b7dbd22141 100644
--- a/Documentation/laptops/acer-wmi.txt
+++ b/Documentation/laptops/acer-wmi.txt
@@ -80,7 +80,7 @@ once you enable the radio, will depend on your hardware and driver combination.
e.g. With the BCM4318 on the Acer Aspire 5020 series:
ndiswrapper: Light blinks on when transmitting
-bcm43xx/b43: Solid light, blinks off when transmitting
+b43: Solid light, blinks off when transmitting
Wireless radio control is unconditionally enabled - all Acer laptops that support
acer-wmi come with built-in wireless. However, should you feel so inclined to
diff --git a/Documentation/networking/00-INDEX b/Documentation/networking/00-INDEX
index c485ee028bd9..1634c6dcecae 100644
--- a/Documentation/networking/00-INDEX
+++ b/Documentation/networking/00-INDEX
@@ -100,8 +100,6 @@ tuntap.txt
- TUN/TAP device driver, allowing user space Rx/Tx of packets.
vortex.txt
- info on using 3Com Vortex (3c590, 3c592, 3c595, 3c597) Ethernet cards.
-wan-router.txt
- - WAN router documentation
wavelan.txt
- AT&T GIS (nee NCR) WaveLAN card: An Ethernet-like radio transceiver
x25.txt
diff --git a/Documentation/networking/bcm43xx.txt b/Documentation/networking/bcm43xx.txt
deleted file mode 100644
index d602c8d6ff3e..000000000000
--- a/Documentation/networking/bcm43xx.txt
+++ /dev/null
@@ -1,89 +0,0 @@
-
- BCM43xx Linux Driver Project
- ============================
-
-Introduction
-------------
-
-Many of the wireless devices found in modern notebook computers are
-based on the wireless chips produced by Broadcom. These devices have
-been a problem for Linux users as there is no open-source driver
-available. In addition, Broadcom has not released specifications
-for the device, and driver availability has been limited to the
-binary-only form used in the GPL versions of AP hardware such as the
-Linksys WRT54G, and the Windows and OS X drivers. Before this project
-began, the only way to use these devices were to use the Windows or
-OS X drivers with either the Linuxant or ndiswrapper modules. There
-is a strong penalty if this method is used as loading the binary-only
-module "taints" the kernel, and no kernel developer will help diagnose
-any kernel problems.
-
-Development
------------
-
-This driver has been developed using
-a clean-room technique that is described at
-http://bcm-specs.sipsolutions.net/ReverseEngineeringProcess. For legal
-reasons, none of the clean-room crew works on the on the Linux driver,
-and none of the Linux developers sees anything but the specifications,
-which are the ultimate product of the reverse-engineering group.
-
-Software
---------
-
-Since the release of the 2.6.17 kernel, the bcm43xx driver has been
-distributed with the kernel source, and is prebuilt in most, if not
-all, distributions. There is, however, additional software that is
-required. The firmware used by the chip is the intellectual property
-of Broadcom and they have not given the bcm43xx team redistribution
-rights to this firmware. Since we cannot legally redistribute
-the firmware we cannot include it with the driver. Furthermore, it
-cannot be placed in the downloadable archives of any distributing
-organization; therefore, the user is responsible for obtaining the
-firmware and placing it in the appropriate location so that the driver
-can find it when initializing.
-
-To help with this process, the bcm43xx developers provide a separate
-program named bcm43xx-fwcutter to "cut" the firmware out of a
-Windows or OS X driver and write the extracted files to the proper
-location. This program is usually provided with the distribution;
-however, it may be downloaded from
-
-http://developer.berlios.de/project/showfiles.php?group_id=4547
-
-The firmware is available in two versions. V3 firmware is used with
-the in-kernel bcm43xx driver that uses a software MAC layer called
-SoftMAC, and will have a microcode revision of 0x127 or smaller. The
-V4 firmware is used by an out-of-kernel driver employing a variation of
-the Devicescape MAC layer known as d80211. Once bcm43xx-d80211 reaches
-a satisfactory level of development, it will replace bcm43xx-softmac
-in the kernel as it is much more flexible and powerful.
-
-A source for the latest V3 firmware is
-
-http://downloads.openwrt.org/sources/wl_apsta-3.130.20.0.o
-
-Once this file is downloaded, the command
-'bcm43xx-fwcutter -w <dir> <filename>'
-will extract the microcode and write it to directory
-<dir>. The correct directory will depend on your distribution;
-however, most use '/lib/firmware'. Once this step is completed,
-the bcm3xx driver should load when the system is booted. To see
-any messages relating to the driver, issue the command 'dmesg |
-grep bcm43xx' from a terminal window. If there are any problems,
-please send that output to Bcm43xx-dev@lists.berlios.de.
-
-Although the driver has been in-kernel since 2.6.17, the earliest
-version is quite limited in its capability. Patches that include
-all features of later versions are available for the stable kernel
-versions from 2.6.18. These will be needed if you use a BCM4318,
-or a PCI Express version (BCM4311 and BCM4312). In addition, if you
-have an early BCM4306 and more than 1 GB RAM, your kernel will need
-to be patched. These patches, which are being updated regularly,
-are available at ftp://lwfinger.dynalias.org/patches. Look for
-combined_2.6.YY.patch. Of course you will need kernel source downloaded
-from kernel.org, or the source from your distribution.
-
-If you build your own kernel, please enable CONFIG_BCM43XX_DEBUG
-and CONFIG_IEEE80211_SOFTMAC_DEBUG. The log information provided is
-essential for solving any problems.
diff --git a/Documentation/networking/wan-router.txt b/Documentation/networking/wan-router.txt
deleted file mode 100644
index bc2ab419a74a..000000000000
--- a/Documentation/networking/wan-router.txt
+++ /dev/null
@@ -1,621 +0,0 @@
-------------------------------------------------------------------------------
-Linux WAN Router Utilities Package
-------------------------------------------------------------------------------
-Version 2.2.1
-Mar 28, 2001
-Author: Nenad Corbic <ncorbic@sangoma.com>
-Copyright (c) 1995-2001 Sangoma Technologies Inc.
-------------------------------------------------------------------------------
-
-INTRODUCTION
-
-Wide Area Networks (WANs) are used to interconnect Local Area Networks (LANs)
-and/or stand-alone hosts over vast distances with data transfer rates
-significantly higher than those achievable with commonly used dial-up
-connections.
-
-Usually an external device called `WAN router' sitting on your local network
-or connected to your machine's serial port provides physical connection to
-WAN. Although router's job may be as simple as taking your local network
-traffic, converting it to WAN format and piping it through the WAN link, these
-devices are notoriously expensive, with prices as much as 2 - 5 times higher
-then the price of a typical PC box.
-
-Alternatively, considering robustness and multitasking capabilities of Linux,
-an internal router can be built (most routers use some sort of stripped down
-Unix-like operating system anyway). With a number of relatively inexpensive WAN
-interface cards available on the market, a perfectly usable router can be
-built for less than half a price of an external router. Yet a Linux box
-acting as a router can still be used for other purposes, such as fire-walling,
-running FTP, WWW or DNS server, etc.
-
-This kernel module introduces the notion of a WAN Link Driver (WLD) to Linux
-operating system and provides generic hardware-independent services for such
-drivers. Why can existing Linux network device interface not be used for
-this purpose? Well, it can. However, there are a few key differences between
-a typical network interface (e.g. Ethernet) and a WAN link.
-
-Many WAN protocols, such as X.25 and frame relay, allow for multiple logical
-connections (known as `virtual circuits' in X.25 terminology) over a single
-physical link. Each such virtual circuit may (and almost always does) lead
-to a different geographical location and, therefore, different network. As a
-result, it is the virtual circuit, not the physical link, that represents a
-route and, therefore, a network interface in Linux terms.
-
-To further complicate things, virtual circuits are usually volatile in nature
-(excluding so called `permanent' virtual circuits or PVCs). With almost no
-time required to set up and tear down a virtual circuit, it is highly desirable
-to implement on-demand connections in order to minimize network charges. So
-unlike a typical network driver, the WAN driver must be able to handle multiple
-network interfaces and cope as multiple virtual circuits come into existence
-and go away dynamically.
-
-Last, but not least, WAN configuration is much more complex than that of say
-Ethernet and may well amount to several dozens of parameters. Some of them
-are "link-wide" while others are virtual circuit-specific. The same holds
-true for WAN statistics which is by far more extensive and extremely useful
-when troubleshooting WAN connections. Extending the ifconfig utility to suit
-these needs may be possible, but does not seem quite reasonable. Therefore, a
-WAN configuration utility and corresponding application programmer's interface
-is needed for this purpose.
-
-Most of these problems are taken care of by this module. Its goal is to
-provide a user with more-or-less standard look and feel for all WAN devices and
-assist a WAN device driver writer by providing common services, such as:
-
- o User-level interface via /proc file system
- o Centralized configuration
- o Device management (setup, shutdown, etc.)
- o Network interface management (dynamic creation/destruction)
- o Protocol encapsulation/decapsulation
-
-To ba able to use the Linux WAN Router you will also need a WAN Tools package
-available from
-
- ftp.sangoma.com/pub/linux/current_wanpipe/wanpipe-X.Y.Z.tgz
-
-where vX.Y.Z represent the wanpipe version number.
-
-For technical questions and/or comments please e-mail to ncorbic@sangoma.com.
-For general inquiries please contact Sangoma Technologies Inc. by
-
- Hotline: 1-800-388-2475 (USA and Canada, toll free)
- Phone: (905) 474-1990 ext: 106
- Fax: (905) 474-9223
- E-mail: dm@sangoma.com (David Mandelstam)
- WWW: http://www.sangoma.com
-
-
-INSTALLATION
-
-Please read the WanpipeForLinux.pdf manual on how to
-install the WANPIPE tools and drivers properly.
-
-
-After installing wanpipe package: /usr/local/wanrouter/doc.
-On the ftp.sangoma.com : /linux/current_wanpipe/doc
-
-
-COPYRIGHT AND LICENSING INFORMATION
-
-This program is free software; you can redistribute it and/or modify it under
-the terms of the GNU General Public License as published by the Free Software
-Foundation; either version 2, or (at your option) any later version.
-
-This program is distributed in the hope that it will be useful, but WITHOUT
-ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
-FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License along with
-this program; if not, write to the Free Software Foundation, Inc., 675 Mass
-Ave, Cambridge, MA 02139, USA.
-
-
-
-ACKNOWLEDGEMENTS
-
-This product is based on the WANPIPE(tm) Multiprotocol WAN Router developed
-by Sangoma Technologies Inc. for Linux 2.0.x and 2.2.x. Success of the WANPIPE
-together with the next major release of Linux kernel in summer 1996 commanded
-adequate changes to the WANPIPE code to take full advantage of new Linux
-features.
-
-Instead of continuing developing proprietary interface tied to Sangoma WAN
-cards, we decided to separate all hardware-independent code into a separate
-module and defined two levels of interfaces - one for user-level applications
-and another for kernel-level WAN drivers. WANPIPE is now implemented as a
-WAN driver compliant with the WAN Link Driver interface. Also a general
-purpose WAN configuration utility and a set of shell scripts was developed to
-support WAN router at the user level.
-
-Many useful ideas concerning hardware-independent interface implementation
-were given by Mike McLagan <mike.mclagan@linux.org> and his implementation
-of the Frame Relay router and drivers for Sangoma cards (dlci/sdla).
-
-With the new implementation of the APIs being incorporated into the WANPIPE,
-a special thank goes to Alan Cox in providing insight into BSD sockets.
-
-Special thanks to all the WANPIPE users who performed field-testing, reported
-bugs and made valuable comments and suggestions that help us to improve this
-product.
-
-
-
-NEW IN THIS RELEASE
-
- o Updated the WANCFG utility
- Calls the pppconfig to configure the PPPD
- for async connections.
-
- o Added the PPPCONFIG utility
- Used to configure the PPPD daemon for the
- WANPIPE Async PPP and standard serial port.
- The wancfg calls the pppconfig to configure
- the pppd.
-
- o Fixed the PCI autodetect feature.
- The SLOT 0 was used as an autodetect option
- however, some high end PC's slot numbers start
- from 0.
-
- o This release has been tested with the new backupd
- daemon release.
-
-
-PRODUCT COMPONENTS AND RELATED FILES
-
-/etc: (or user defined)
- wanpipe1.conf default router configuration file
-
-/lib/modules/X.Y.Z/misc:
- wanrouter.o router kernel loadable module
- af_wanpipe.o wanpipe api socket module
-
-/lib/modules/X.Y.Z/net:
- sdladrv.o Sangoma SDLA support module
- wanpipe.o Sangoma WANPIPE(tm) driver module
-
-/proc/net/wanrouter
- Config reads current router configuration
- Status reads current router status
- {name} reads WAN driver statistics
-
-/usr/sbin:
- wanrouter wanrouter start-up script
- wanconfig wanrouter configuration utility
- sdladump WANPIPE adapter memory dump utility
- fpipemon Monitor for Frame Relay
- cpipemon Monitor for Cisco HDLC
- ppipemon Monitor for PPP
- xpipemon Monitor for X25
- wpkbdmon WANPIPE keyboard led monitor/debugger
-
-/usr/local/wanrouter:
- README this file
- COPYING GNU General Public License
- Setup installation script
- Filelist distribution definition file
- wanrouter.rc meta-configuration file
- (used by the Setup and wanrouter script)
-
-/usr/local/wanrouter/doc:
- wanpipeForLinux.pdf WAN Router User's Manual
-
-/usr/local/wanrouter/patches:
- wanrouter-v2213.gz patch for Linux kernels 2.2.11 up to 2.2.13.
- wanrouter-v2214.gz patch for Linux kernel 2.2.14.
- wanrouter-v2215.gz patch for Linux kernels 2.2.15 to 2.2.17.
- wanrouter-v2218.gz patch for Linux kernels 2.2.18 and up.
- wanrouter-v240.gz patch for Linux kernel 2.4.0.
- wanrouter-v242.gz patch for Linux kernel 2.4.2 and up.
- wanrouter-v2034.gz patch for Linux kernel 2.0.34
- wanrouter-v2036.gz patch for Linux kernel 2.0.36 and up.
-
-/usr/local/wanrouter/patches/kdrivers:
- Sources of the latest WANPIPE device drivers.
- These are used to UPGRADE the linux kernel to the newest
- version if the kernel source has already been patched with
- WANPIPE drivers.
-
-/usr/local/wanrouter/samples:
- interface sample interface configuration file
- wanpipe1.cpri CHDLC primary port
- wanpipe2.csec CHDLC secondary port
- wanpipe1.fr Frame Relay protocol
- wanpipe1.ppp PPP protocol )
- wanpipe1.asy CHDLC ASYNC protocol
- wanpipe1.x25 X25 protocol
- wanpipe1.stty Sync TTY driver (Used by Kernel PPPD daemon)
- wanpipe1.atty Async TTY driver (Used by Kernel PPPD daemon)
- wanrouter.rc sample meta-configuration file
-
-/usr/local/wanrouter/util:
- * wan-tools utilities source code
-
-/usr/local/wanrouter/api/x25:
- * x25 api sample programs.
-/usr/local/wanrouter/api/chdlc:
- * chdlc api sample programs.
-/usr/local/wanrouter/api/fr:
- * fr api sample programs.
-/usr/local/wanrouter/config/wancfg:
- wancfg WANPIPE GUI configuration program.
- Creates wanpipe#.conf files.
-/usr/local/wanrouter/config/cfgft1:
- cfgft1 GUI CSU/DSU configuration program.
-
-/usr/include/linux:
- wanrouter.h router API definitions
- wanpipe.h WANPIPE API definitions
- sdladrv.h SDLA support module API definitions
- sdlasfm.h SDLA firmware module definitions
- if_wanpipe.h WANPIPE Socket definitions
- sdlapci.h WANPIPE PCI definitions
-
-
-/usr/src/linux/net/wanrouter:
- * wanrouter source code
-
-/var/log:
- wanrouter wanrouter start-up log (created by the Setup script)
-
-/var/lock: (or /var/lock/subsys for RedHat)
- wanrouter wanrouter lock file (created by the Setup script)
-
-/usr/local/wanrouter/firmware:
- fr514.sfm Frame relay firmware for Sangoma S508/S514 card
- cdual514.sfm Dual Port Cisco HDLC firmware for Sangoma S508/S514 card
- ppp514.sfm PPP Firmware for Sangoma S508 and S514 cards
- x25_508.sfm X25 Firmware for Sangoma S508 card.
-
-
-REVISION HISTORY
-
-1.0.0 December 31, 1996 Initial version
-
-1.0.1 January 30, 1997 Status and statistics can be read via /proc
- filesystem entries.
-
-1.0.2 April 30, 1997 Added UDP management via monitors.
-
-1.0.3 June 3, 1997 UDP management for multiple boards using Frame
- Relay and PPP
- Enabled continuous transmission of Configure
- Request Packet for PPP (for 508 only)
- Connection Timeout for PPP changed from 900 to 0
- Flow Control Problem fixed for Frame Relay
-
-1.0.4 July 10, 1997 S508/FT1 monitoring capability in fpipemon and
- ppipemon utilities.
- Configurable TTL for UDP packets.
- Multicast and Broadcast IP source addresses are
- silently discarded.
-
-1.0.5 July 28, 1997 Configurable T391,T392,N391,N392,N393 for Frame
- Relay in router.conf.
- Configurable Memory Address through router.conf
- for Frame Relay, PPP and X.25. (commenting this
- out enables auto-detection).
- Fixed freeing up received buffers using kfree()
- for Frame Relay and X.25.
- Protect sdla_peek() by calling save_flags(),
- cli() and restore_flags().
- Changed number of Trace elements from 32 to 20
- Added DLCI specific data monitoring in FPIPEMON.
-2.0.0 Nov 07, 1997 Implemented protection of RACE conditions by
- critical flags for FRAME RELAY and PPP.
- DLCI List interrupt mode implemented.
- IPX support in FRAME RELAY and PPP.
- IPX Server Support (MARS)
- More driver specific stats included in FPIPEMON
- and PIPEMON.
-
-2.0.1 Nov 28, 1997 Bug Fixes for version 2.0.0.
- Protection of "enable_irq()" while
- "disable_irq()" has been enabled from any other
- routine (for Frame Relay, PPP and X25).
- Added additional Stats for Fpipemon and Ppipemon
- Improved Load Sharing for multiple boards
-
-2.0.2 Dec 09, 1997 Support for PAP and CHAP for ppp has been
- implemented.
-
-2.0.3 Aug 15, 1998 New release supporting Cisco HDLC, CIR for Frame
- relay, Dynamic IP assignment for PPP and Inverse
- Arp support for Frame-relay. Man Pages are
- included for better support and a new utility
- for configuring FT1 cards.
-
-2.0.4 Dec 09, 1998 Dual Port support for Cisco HDLC.
- Support for HDLC (LAPB) API.
- Supports BiSync Streaming code for S502E
- and S503 cards.
- Support for Streaming HDLC API.
- Provides a BSD socket interface for
- creating applications using BiSync
- streaming.
-
-2.0.5 Aug 04, 1999 CHDLC initialization bug fix.
- PPP interrupt driven driver:
- Fix to the PPP line hangup problem.
- New PPP firmware
- Added comments to the startup SYSTEM ERROR messages
- Xpipemon debugging application for the X25 protocol
- New USER_MANUAL.txt
- Fixed the odd boundary 4byte writes to the board.
- BiSync Streaming code has been taken out.
- Available as a patch.
- Streaming HDLC API has been taken out.
- Available as a patch.
-
-2.0.6 Aug 17, 1999 Increased debugging in statup scripts
- Fixed installation bugs from 2.0.5
- Kernel patch works for both 2.2.10 and 2.2.11 kernels.
- There is no functional difference between the two packages
-
-2.0.7 Aug 26, 1999 o Merged X25API code into WANPIPE.
- o Fixed a memory leak for X25API
- o Updated the X25API code for 2.2.X kernels.
- o Improved NEM handling.
-
-2.1.0 Oct 25, 1999 o New code for S514 PCI Card
- o New CHDLC and Frame Relay drivers
- o PPP and X25 are not supported in this release
-
-2.1.1 Nov 30, 1999 o PPP support for S514 PCI Cards
-
-2.1.3 Apr 06, 2000 o Socket based x25api
- o Socket based chdlc api
- o Socket based fr api
- o Dual Port Receive only CHDLC support.
- o Asynchronous CHDLC support (Secondary Port)
- o cfgft1 GUI csu/dsu configurator
- o wancfg GUI configuration file
- configurator.
- o Architectural directory changes.
-
-beta-2.1.4 Jul 2000 o Dynamic interface configuration:
- Network interfaces reflect the state
- of protocol layer. If the protocol becomes
- disconnected, driver will bring down
- the interface. Once the protocol reconnects
- the interface will be brought up.
-
- Note: This option is turned off by default.
-
- o Dynamic wanrouter setup using 'wanconfig':
- wanconfig utility can be used to
- shutdown,restart,start or reconfigure
- a virtual circuit dynamically.
-
- Frame Relay: Each DLCI can be:
- created,stopped,restarted and reconfigured
- dynamically using wanconfig.
-
- ex: wanconfig card wanpipe1 dev wp1_fr16 up
-
- o Wanrouter startup via command line arguments:
- wanconfig also supports wanrouter startup via command line
- arguments. Thus, there is no need to create a wanpipe#.conf
- configuration file.
-
- o Socket based x25api update/bug fixes.
- Added support for LCN numbers greater than 255.
- Option to pass up modem messages.
- Provided a PCI IRQ check, so a single S514
- card is guaranteed to have a non-sharing interrupt.
-
- o Fixes to the wancfg utility.
- o New FT1 debugging support via *pipemon utilities.
- o Frame Relay ARP support Enabled.
-
-beta3-2.1.4 Jul 2000 o X25 M_BIT Problem fix.
- o Added the Multi-Port PPP
- Updated utilities for the Multi-Port PPP.
-
-2.1.4 Aut 2000
- o In X25API:
- Maximum packet an application can send
- to the driver has been extended to 4096 bytes.
-
- Fixed the x25 startup bug. Enable
- communications only after all interfaces
- come up. HIGH SVC/PVC is used to calculate
- the number of channels.
- Enable protocol only after all interfaces
- are enabled.
-
- o Added an extra state to the FT1 config, kernel module.
- o Updated the pipemon debuggers.
-
- o Blocked the Multi-Port PPP from running on kernels
- 2.2.16 or greater, due to syncppp kernel module
- change.
-
-beta1-2.1.5 Nov 15 2000
- o Fixed the MultiPort PPP Support for kernels 2.2.16 and above.
- 2.2.X kernels only
-
- o Secured the driver UDP debugging calls
- - All illegal network debugging calls are reported to
- the log.
- - Defined a set of allowed commands, all other denied.
-
- o Cpipemon
- - Added set FT1 commands to the cpipemon. Thus CSU/DSU
- configuration can be performed using cpipemon.
- All systems that cannot run cfgft1 GUI utility should
- use cpipemon to configure the on board CSU/DSU.
-
-
- o Keyboard Led Monitor/Debugger
- - A new utility /usr/sbin/wpkbdmon uses keyboard leds
- to convey operational statistic information of the
- Sangoma WANPIPE cards.
- NUM_LOCK = Line State (On=connected, Off=disconnected)
- CAPS_LOCK = Tx data (On=transmitting, Off=no tx data)
- SCROLL_LOCK = Rx data (On=receiving, Off=no rx data
-
- o Hardware probe on module load and dynamic device allocation
- - During WANPIPE module load, all Sangoma cards are probed
- and found information is printed in the /var/log/messages.
- - If no cards are found, the module load fails.
- - Appropriate number of devices are dynamically loaded
- based on the number of Sangoma cards found.
-
- Note: The kernel configuration option
- CONFIG_WANPIPE_CARDS has been taken out.
-
- o Fixed the Frame Relay and Chdlc network interfaces so they are
- compatible with libpcap libraries. Meaning, tcpdump, snort,
- ethereal, and all other packet sniffers and debuggers work on
- all WANPIPE network interfaces.
- - Set the network interface encoding type to ARPHRD_PPP.
- This tell the sniffers that data obtained from the
- network interface is in pure IP format.
- Fix for 2.2.X kernels only.
-
- o True interface encoding option for Frame Relay and CHDLC
- - The above fix sets the network interface encoding
- type to ARPHRD_PPP, however some customers use
- the encoding interface type to determine the
- protocol running. Therefore, the TURE ENCODING
- option will set the interface type back to the
- original value.
-
- NOTE: If this option is used with Frame Relay and CHDLC
- libpcap library support will be broken.
- i.e. tcpdump will not work.
- Fix for 2.2.x Kernels only.
-
- o Ethernet Bridgind over Frame Relay
- - The Frame Relay bridging has been developed by
- Kristian Hoffmann and Mark Wells.
- - The Linux kernel bridge is used to send ethernet
- data over the frame relay links.
- For 2.2.X Kernels only.
-
- o Added extensive 2.0.X support. Most new features of
- 2.1.5 for protocols Frame Relay, PPP and CHDLC are
- supported under 2.0.X kernels.
-
-beta1-2.2.0 Dec 30 2000
- o Updated drivers for 2.4.X kernels.
- o Updated drivers for SMP support.
- o X25API is now able to share PCI interrupts.
- o Took out a general polling routine that was used
- only by X25API.
- o Added appropriate locks to the dynamic reconfiguration
- code.
- o Fixed a bug in the keyboard debug monitor.
-
-beta2-2.2.0 Jan 8 2001
- o Patches for 2.4.0 kernel
- o Patches for 2.2.18 kernel
- o Minor updates to PPP and CHLDC drivers.
- Note: No functional difference.
-
-beta3-2.2.9 Jan 10 2001
- o I missed the 2.2.18 kernel patches in beta2-2.2.0
- release. They are included in this release.
-
-Stable Release
-2.2.0 Feb 01 2001
- o Bug fix in wancfg GUI configurator.
- The edit function didn't work properly.
-
-
-bata1-2.2.1 Feb 09 2001
- o WANPIPE TTY Driver emulation.
- Two modes of operation Sync and Async.
- Sync: Using the PPPD daemon, kernel SyncPPP layer
- and the Wanpipe sync TTY driver: a PPP protocol
- connection can be established via Sangoma adapter, over
- a T1 leased line.
-
- The 2.4.0 kernel PPP layer supports MULTILINK
- protocol, that can be used to bundle any number of Sangoma
- adapters (T1 lines) into one, under a single IP address.
- Thus, efficiently obtaining multiple T1 throughput.
-
- NOTE: The remote side must also implement MULTILINK PPP
- protocol.
-
- Async:Using the PPPD daemon, kernel AsyncPPP layer
- and the WANPIPE async TTY driver: a PPP protocol
- connection can be established via Sangoma adapter and
- a modem, over a telephone line.
-
- Thus, the WANPIPE async TTY driver simulates a serial
- TTY driver that would normally be used to interface the
- MODEM to the linux kernel.
-
- o WANPIPE PPP Backup Utility
- This utility will monitor the state of the PPP T1 line.
- In case of failure, a dial up connection will be established
- via pppd daemon, ether via a serial tty driver (serial port),
- or a WANPIPE async TTY driver (in case serial port is unavailable).
-
- Furthermore, while in dial up mode, the primary PPP T1 link
- will be monitored for signs of life.
-
- If the PPP T1 link comes back to life, the dial up connection
- will be shutdown and T1 line re-established.
-
-
- o New Setup installation script.
- Option to UPGRADE device drivers if the kernel source has
- already been patched with WANPIPE.
-
- Option to COMPILE WANPIPE modules against the currently
- running kernel, thus no need for manual kernel and module
- re-compilation.
-
- o Updates and Bug Fixes to wancfg utility.
-
-bata2-2.2.1 Feb 20 2001
-
- o Bug fixes to the CHDLC device drivers.
- The driver had compilation problems under kernels
- 2.2.14 or lower.
-
- o Bug fixes to the Setup installation script.
- The device drivers compilation options didn't work
- properly.
-
- o Update to the wpbackupd daemon.
- Optimized the cross-over times, between the primary
- link and the backup dialup.
-
-beta3-2.2.1 Mar 02 2001
- o Patches for 2.4.2 kernel.
-
- o Bug fixes to util/ make files.
- o Bug fixes to the Setup installation script.
-
- o Took out the backupd support and made it into
- as separate package.
-
-beta4-2.2.1 Mar 12 2001
-
- o Fix to the Frame Relay Device driver.
- IPSAC sends a packet of zero length
- header to the frame relay driver. The
- driver tries to push its own 2 byte header
- into the packet, which causes the driver to
- crash.
-
- o Fix the WANPIPE re-configuration code.
- Bug was found by trying to run the cfgft1 while the
- interface was already running.
-
- o Updates to cfgft1.
- Writes a wanpipe#.cfgft1 configuration file
- once the CSU/DSU is configured. This file can
- holds the current CSU/DSU configuration.
-
-
-
->>>>>> END OF README <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
-
-