提交 c76c2230 编写于 作者: D David S. Miller

Merge branch 'net-ReST-convert'

Mauro Carvalho Chehab says:

====================
net: manually convert files to ReST format - part 1

There are very few documents upstream that aren't converted upstream.

This series convert part of the networking text files into ReST.
It is part of a bigger set of patches, which were split on parts,
in order to make reviewing task easier.

The full series (including those ones) are at:

	https://git.linuxtv.org/mchehab/experimental.git/log/?h=net-docs

And the documents, converted to HTML via the building system
are at:

	https://www.infradead.org/~mchehab/kernel_docs/networking/
====================
Signed-off-by: NDavid S. Miller <davem@davemloft.net>
...@@ -356,7 +356,7 @@ ...@@ -356,7 +356,7 @@
shot down by NMI shot down by NMI
autoconf= [IPV6] autoconf= [IPV6]
See Documentation/networking/ipv6.txt. See Documentation/networking/ipv6.rst.
show_lapic= [APIC,X86] Advanced Programmable Interrupt Controller show_lapic= [APIC,X86] Advanced Programmable Interrupt Controller
Limit apic dumping. The parameter defines the maximal Limit apic dumping. The parameter defines the maximal
...@@ -831,7 +831,7 @@ ...@@ -831,7 +831,7 @@
decnet.addr= [HW,NET] decnet.addr= [HW,NET]
Format: <area>[,<node>] Format: <area>[,<node>]
See also Documentation/networking/decnet.txt. See also Documentation/networking/decnet.rst.
default_hugepagesz= default_hugepagesz=
[same as hugepagesz=] The size of the default [same as hugepagesz=] The size of the default
...@@ -872,7 +872,7 @@ ...@@ -872,7 +872,7 @@
miss to occur. miss to occur.
disable= [IPV6] disable= [IPV6]
See Documentation/networking/ipv6.txt. See Documentation/networking/ipv6.rst.
hardened_usercopy= hardened_usercopy=
[KNL] Under CONFIG_HARDENED_USERCOPY, whether [KNL] Under CONFIG_HARDENED_USERCOPY, whether
...@@ -912,7 +912,7 @@ ...@@ -912,7 +912,7 @@
to workaround buggy firmware. to workaround buggy firmware.
disable_ipv6= [IPV6] disable_ipv6= [IPV6]
See Documentation/networking/ipv6.txt. See Documentation/networking/ipv6.rst.
disable_mtrr_cleanup [X86] disable_mtrr_cleanup [X86]
The kernel tries to adjust MTRR layout from continuous The kernel tries to adjust MTRR layout from continuous
...@@ -4910,7 +4910,7 @@ ...@@ -4910,7 +4910,7 @@
Set the number of tcp_metrics_hash slots. Set the number of tcp_metrics_hash slots.
Default value is 8192 or 16384 depending on total Default value is 8192 or 16384 depending on total
ram pages. This is used to specify the TCP metrics ram pages. This is used to specify the TCP metrics
cache size. See Documentation/networking/ip-sysctl.txt cache size. See Documentation/networking/ip-sysctl.rst
"tcp_no_metrics_save" section for more details. "tcp_no_metrics_save" section for more details.
tdfx= [HW,DRM] tdfx= [HW,DRM]
......
...@@ -353,8 +353,8 @@ socket's buffer. It will not take effect unless PF_UNIX flag is specified. ...@@ -353,8 +353,8 @@ socket's buffer. It will not take effect unless PF_UNIX flag is specified.
3. /proc/sys/net/ipv4 - IPV4 settings 3. /proc/sys/net/ipv4 - IPV4 settings
------------------------------------- -------------------------------------
Please see: Documentation/networking/ip-sysctl.txt and ipvs-sysctl.txt for Please see: Documentation/networking/ip-sysctl.rst and
descriptions of these entries. Documentation/admin-guide/sysctl/net.rst for descriptions of these entries.
4. Appletalk 4. Appletalk
......
...@@ -7,7 +7,7 @@ Filter) facility, with a focus on the extended BPF version (eBPF). ...@@ -7,7 +7,7 @@ Filter) facility, with a focus on the extended BPF version (eBPF).
This kernel side documentation is still work in progress. The main This kernel side documentation is still work in progress. The main
textual documentation is (for historical reasons) described in textual documentation is (for historical reasons) described in
`Documentation/networking/filter.txt`_, which describe both classical `Documentation/networking/filter.rst`_, which describe both classical
and extended BPF instruction-set. and extended BPF instruction-set.
The Cilium project also maintains a `BPF and XDP Reference Guide`_ The Cilium project also maintains a `BPF and XDP Reference Guide`_
that goes into great technical depth about the BPF Architecture. that goes into great technical depth about the BPF Architecture.
...@@ -59,7 +59,7 @@ Testing and debugging BPF ...@@ -59,7 +59,7 @@ Testing and debugging BPF
.. Links: .. Links:
.. _Documentation/networking/filter.txt: ../networking/filter.txt .. _Documentation/networking/filter.rst: ../networking/filter.txt
.. _man-pages: https://www.kernel.org/doc/man-pages/ .. _man-pages: https://www.kernel.org/doc/man-pages/
.. _bpf(2): http://man7.org/linux/man-pages/man2/bpf.2.html .. _bpf(2): http://man7.org/linux/man-pages/man2/bpf.2.html
.. _BPF and XDP Reference Guide: http://cilium.readthedocs.io/en/latest/bpf/ .. _BPF and XDP Reference Guide: http://cilium.readthedocs.io/en/latest/bpf/
.. SPDX-License-Identifier: GPL-2.0
==============
6pack Protocol
==============
This is the 6pack-mini-HOWTO, written by This is the 6pack-mini-HOWTO, written by
Andreas Könsgen DG3KQ Andreas Könsgen DG3KQ
Internet: ajk@comnets.uni-bremen.de
AMPR-net: dg3kq@db0pra.ampr.org :Internet: ajk@comnets.uni-bremen.de
AX.25: dg3kq@db0ach.#nrw.deu.eu :AMPR-net: dg3kq@db0pra.ampr.org
:AX.25: dg3kq@db0ach.#nrw.deu.eu
Last update: April 7, 1998 Last update: April 7, 1998
1. What is 6pack, and what are the advantages to KISS? 1. What is 6pack, and what are the advantages to KISS?
======================================================
6pack is a transmission protocol for data exchange between the PC and 6pack is a transmission protocol for data exchange between the PC and
the TNC over a serial line. It can be used as an alternative to KISS. the TNC over a serial line. It can be used as an alternative to KISS.
6pack has two major advantages: 6pack has two major advantages:
- The PC is given full control over the radio - The PC is given full control over the radio
channel. Special control data is exchanged between the PC and the TNC so channel. Special control data is exchanged between the PC and the TNC so
that the PC knows at any time if the TNC is receiving data, if a TNC that the PC knows at any time if the TNC is receiving data, if a TNC
buffer underrun or overrun has occurred, if the PTT is buffer underrun or overrun has occurred, if the PTT is
set and so on. This control data is processed at a higher priority than set and so on. This control data is processed at a higher priority than
normal data, so a data stream can be interrupted at any time to issue an normal data, so a data stream can be interrupted at any time to issue an
important event. This helps to improve the channel access and timing important event. This helps to improve the channel access and timing
algorithms as everything is computed in the PC. It would even be possible algorithms as everything is computed in the PC. It would even be possible
to experiment with something completely different from the known CSMA and to experiment with something completely different from the known CSMA and
DAMA channel access methods. DAMA channel access methods.
This kind of real-time control is especially important to supply several This kind of real-time control is especially important to supply several
TNCs that are connected between each other and the PC by a daisy chain TNCs that are connected between each other and the PC by a daisy chain
...@@ -36,6 +45,7 @@ More details about 6pack are described in the file 6pack.ps that is located ...@@ -36,6 +45,7 @@ More details about 6pack are described in the file 6pack.ps that is located
in the doc directory of the AX.25 utilities package. in the doc directory of the AX.25 utilities package.
2. Who has developed the 6pack protocol? 2. Who has developed the 6pack protocol?
========================================
The 6pack protocol has been developed by Ekki Plicht DF4OR, Henning Rech The 6pack protocol has been developed by Ekki Plicht DF4OR, Henning Rech
DF9IC and Gunter Jost DK7WJ. A driver for 6pack, written by Gunter Jost and DF9IC and Gunter Jost DK7WJ. A driver for 6pack, written by Gunter Jost and
...@@ -44,12 +54,14 @@ They have also written a firmware for TNCs to perform the 6pack ...@@ -44,12 +54,14 @@ They have also written a firmware for TNCs to perform the 6pack
protocol (see section 4 below). protocol (see section 4 below).
3. Where can I get the latest version of 6pack for LinuX? 3. Where can I get the latest version of 6pack for LinuX?
=========================================================
At the moment, the 6pack stuff can obtained via anonymous ftp from At the moment, the 6pack stuff can obtained via anonymous ftp from
db0bm.automation.fh-aachen.de. In the directory /incoming/dg3kq, db0bm.automation.fh-aachen.de. In the directory /incoming/dg3kq,
there is a file named 6pack.tgz. there is a file named 6pack.tgz.
4. Preparing the TNC for 6pack operation 4. Preparing the TNC for 6pack operation
========================================
To be able to use 6pack, a special firmware for the TNC is needed. The EPROM To be able to use 6pack, a special firmware for the TNC is needed. The EPROM
of a newly bought TNC does not contain 6pack, so you will have to of a newly bought TNC does not contain 6pack, so you will have to
...@@ -75,12 +87,14 @@ and the status LED are lit for about a second if the firmware initialises ...@@ -75,12 +87,14 @@ and the status LED are lit for about a second if the firmware initialises
the TNC correctly. the TNC correctly.
5. Building and installing the 6pack driver 5. Building and installing the 6pack driver
===========================================
The driver has been tested with kernel version 2.1.90. Use with older The driver has been tested with kernel version 2.1.90. Use with older
kernels may lead to a compilation error because the interface to a kernel kernels may lead to a compilation error because the interface to a kernel
function has been changed in the 2.1.8x kernels. function has been changed in the 2.1.8x kernels.
How to turn on 6pack support: How to turn on 6pack support:
=============================
- In the linux kernel configuration program, select the code maturity level - In the linux kernel configuration program, select the code maturity level
options menu and turn on the prompting for development drivers. options menu and turn on the prompting for development drivers.
...@@ -94,27 +108,28 @@ To use the driver, the kissattach program delivered with the AX.25 utilities ...@@ -94,27 +108,28 @@ To use the driver, the kissattach program delivered with the AX.25 utilities
has to be modified. has to be modified.
- Do a cd to the directory that holds the kissattach sources. Edit the - Do a cd to the directory that holds the kissattach sources. Edit the
kissattach.c file. At the top, insert the following lines: kissattach.c file. At the top, insert the following lines::
#ifndef N_6PACK
#define N_6PACK (N_AX25+1)
#endif
#ifndef N_6PACK Then find the line:
#define N_6PACK (N_AX25+1)
#endif
Then find the line int disc = N_AX25;
int disc = N_AX25;
and replace N_AX25 by N_6PACK. and replace N_AX25 by N_6PACK.
- Recompile kissattach. Rename it to spattach to avoid confusions. - Recompile kissattach. Rename it to spattach to avoid confusions.
Installing the driver: Installing the driver:
----------------------
- Do an insmod 6pack. Look at your /var/log/messages file to check if the - Do an insmod 6pack. Look at your /var/log/messages file to check if the
module has printed its initialization message. module has printed its initialization message.
- Do a spattach as you would launch kissattach when starting a KISS port. - Do a spattach as you would launch kissattach when starting a KISS port.
Check if the kernel prints the message '6pack: TNC found'. Check if the kernel prints the message '6pack: TNC found'.
- From here, everything should work as if you were setting up a KISS port. - From here, everything should work as if you were setting up a KISS port.
The only difference is that the network device that represents The only difference is that the network device that represents
...@@ -138,6 +153,7 @@ from the PC to the TNC over the serial line, the status LED if data is ...@@ -138,6 +153,7 @@ from the PC to the TNC over the serial line, the status LED if data is
sent to the PC. sent to the PC.
6. Known problems 6. Known problems
=================
When testing the driver with 2.0.3x kernels and When testing the driver with 2.0.3x kernels and
operating with data rates on the radio channel of 9600 Baud or higher, operating with data rates on the radio channel of 9600 Baud or higher,
......
Altera Triple-Speed Ethernet MAC driver .. SPDX-License-Identifier: GPL-2.0
Copyright (C) 2008-2014 Altera Corporation .. include:: <isonum.txt>
=======================================
Altera Triple-Speed Ethernet MAC driver
=======================================
Copyright |copy| 2008-2014 Altera Corporation
This is the driver for the Altera Triple-Speed Ethernet (TSE) controllers This is the driver for the Altera Triple-Speed Ethernet (TSE) controllers
using the SGDMA and MSGDMA soft DMA IP components. The driver uses the using the SGDMA and MSGDMA soft DMA IP components. The driver uses the
...@@ -46,23 +52,33 @@ Jumbo frames are not supported at this time. ...@@ -46,23 +52,33 @@ Jumbo frames are not supported at this time.
The driver limits PHY operations to 10/100Mbps, and has not yet been fully The driver limits PHY operations to 10/100Mbps, and has not yet been fully
tested for 1Gbps. This support will be added in a future maintenance update. tested for 1Gbps. This support will be added in a future maintenance update.
1) Kernel Configuration 1. Kernel Configuration
=======================
The kernel configuration option is ALTERA_TSE: The kernel configuration option is ALTERA_TSE:
Device Drivers ---> Network device support ---> Ethernet driver support ---> Device Drivers ---> Network device support ---> Ethernet driver support --->
Altera Triple-Speed Ethernet MAC support (ALTERA_TSE) Altera Triple-Speed Ethernet MAC support (ALTERA_TSE)
2) Driver parameters list: 2. Driver parameters list
debug: message level (0: no output, 16: all); =========================
dma_rx_num: Number of descriptors in the RX list (default is 64);
dma_tx_num: Number of descriptors in the TX list (default is 64). - debug: message level (0: no output, 16: all);
- dma_rx_num: Number of descriptors in the RX list (default is 64);
- dma_tx_num: Number of descriptors in the TX list (default is 64).
3. Command line options
=======================
Driver parameters can be also passed in command line by using::
3) Command line options
Driver parameters can be also passed in command line by using:
altera_tse=dma_rx_num:128,dma_tx_num:512 altera_tse=dma_rx_num:128,dma_tx_num:512
4) Driver information and notes 4. Driver information and notes
===============================
4.1) Transmit process 4.1. Transmit process
---------------------
When the driver's transmit routine is called by the kernel, it sets up a When the driver's transmit routine is called by the kernel, it sets up a
transmit descriptor by calling the underlying DMA transmit routine (SGDMA or transmit descriptor by calling the underlying DMA transmit routine (SGDMA or
MSGDMA), and initiates a transmit operation. Once the transmit is complete, an MSGDMA), and initiates a transmit operation. Once the transmit is complete, an
...@@ -70,7 +86,8 @@ interrupt is driven by the transmit DMA logic. The driver handles the transmit ...@@ -70,7 +86,8 @@ interrupt is driven by the transmit DMA logic. The driver handles the transmit
completion in the context of the interrupt handling chain by recycling completion in the context of the interrupt handling chain by recycling
resource required to send and track the requested transmit operation. resource required to send and track the requested transmit operation.
4.2) Receive process 4.2. Receive process
--------------------
The driver will post receive buffers to the receive DMA logic during driver The driver will post receive buffers to the receive DMA logic during driver
initialization. Receive buffers may or may not be queued depending upon the initialization. Receive buffers may or may not be queued depending upon the
underlying DMA logic (MSGDMA is able queue receive buffers, SGDMA is not able underlying DMA logic (MSGDMA is able queue receive buffers, SGDMA is not able
...@@ -79,34 +96,39 @@ received, the DMA logic generates an interrupt. The driver handles a receive ...@@ -79,34 +96,39 @@ received, the DMA logic generates an interrupt. The driver handles a receive
interrupt by obtaining the DMA receive logic status, reaping receive interrupt by obtaining the DMA receive logic status, reaping receive
completions until no more receive completions are available. completions until no more receive completions are available.
4.3) Interrupt Mitigation 4.3. Interrupt Mitigation
-------------------------
The driver is able to mitigate the number of its DMA interrupts The driver is able to mitigate the number of its DMA interrupts
using NAPI for receive operations. Interrupt mitigation is not yet supported using NAPI for receive operations. Interrupt mitigation is not yet supported
for transmit operations, but will be added in a future maintenance release. for transmit operations, but will be added in a future maintenance release.
4.4) Ethtool support 4.4) Ethtool support
--------------------
Ethtool is supported. Driver statistics and internal errors can be taken using: Ethtool is supported. Driver statistics and internal errors can be taken using:
ethtool -S ethX command. It is possible to dump registers etc. ethtool -S ethX command. It is possible to dump registers etc.
4.5) PHY Support 4.5) PHY Support
----------------
The driver is compatible with PAL to work with PHY and GPHY devices. The driver is compatible with PAL to work with PHY and GPHY devices.
4.7) List of source files: 4.7) List of source files:
o Kconfig --------------------------
o Makefile - Kconfig
o altera_tse_main.c: main network device driver - Makefile
o altera_tse_ethtool.c: ethtool support - altera_tse_main.c: main network device driver
o altera_tse.h: private driver structure and common definitions - altera_tse_ethtool.c: ethtool support
o altera_msgdma.h: MSGDMA implementation function definitions - altera_tse.h: private driver structure and common definitions
o altera_sgdma.h: SGDMA implementation function definitions - altera_msgdma.h: MSGDMA implementation function definitions
o altera_msgdma.c: MSGDMA implementation - altera_sgdma.h: SGDMA implementation function definitions
o altera_sgdma.c: SGDMA implementation - altera_msgdma.c: MSGDMA implementation
o altera_sgdmahw.h: SGDMA register and descriptor definitions - altera_sgdma.c: SGDMA implementation
o altera_msgdmahw.h: MSGDMA register and descriptor definitions - altera_sgdmahw.h: SGDMA register and descriptor definitions
o altera_utils.c: Driver utility functions - altera_msgdmahw.h: MSGDMA register and descriptor definitions
o altera_utils.h: Driver utility function definitions - altera_utils.c: Driver utility functions
- altera_utils.h: Driver utility function definitions
5) Debug Information
5. Debug Information
====================
The driver exports debug information such as internal statistics, The driver exports debug information such as internal statistics,
debug information, MAC and DMA registers etc. debug information, MAC and DMA registers etc.
...@@ -118,17 +140,18 @@ or sees the MAC registers: e.g. using: ethtool -d ethX ...@@ -118,17 +140,18 @@ or sees the MAC registers: e.g. using: ethtool -d ethX
The developer can also use the "debug" module parameter to get The developer can also use the "debug" module parameter to get
further debug information. further debug information.
6) Statistics Support 6. Statistics Support
=====================
The controller and driver support a mix of IEEE standard defined statistics, The controller and driver support a mix of IEEE standard defined statistics,
RFC defined statistics, and driver or Altera defined statistics. The four RFC defined statistics, and driver or Altera defined statistics. The four
specifications containing the standard definitions for these statistics are specifications containing the standard definitions for these statistics are
as follows: as follows:
o IEEE 802.3-2012 - IEEE Standard for Ethernet. - IEEE 802.3-2012 - IEEE Standard for Ethernet.
o RFC 2863 found at http://www.rfc-editor.org/rfc/rfc2863.txt. - RFC 2863 found at http://www.rfc-editor.org/rfc/rfc2863.txt.
o RFC 2819 found at http://www.rfc-editor.org/rfc/rfc2819.txt. - RFC 2819 found at http://www.rfc-editor.org/rfc/rfc2819.txt.
o Altera Triple Speed Ethernet User Guide, found at http://www.altera.com - Altera Triple Speed Ethernet User Guide, found at http://www.altera.com
The statistics supported by the TSE and the device driver are as follows: The statistics supported by the TSE and the device driver are as follows:
......
.. SPDX-License-Identifier: GPL-2.0
===
ATM
===
In order to use anything but the most primitive functions of ATM, In order to use anything but the most primitive functions of ATM,
several user-mode programs are required to assist the kernel. These several user-mode programs are required to assist the kernel. These
programs and related material can be found via the ATM on Linux Web programs and related material can be found via the ATM on Linux Web
......
.. SPDX-License-Identifier: GPL-2.0
=====
AX.25
=====
To use the amateur radio protocols within Linux you will need to get a To use the amateur radio protocols within Linux you will need to get a
suitable copy of the AX.25 Utilities. More detailed information about suitable copy of the AX.25 Utilities. More detailed information about
AX.25, NET/ROM and ROSE, associated programs and and utilities can be AX.25, NET/ROM and ROSE, associated programs and and utilities can be
......
LINUX DRIVERS FOR BAYCOM MODEMS .. SPDX-License-Identifier: GPL-2.0
Thomas M. Sailer, HB9JNX/AE4WA, <sailer@ife.ee.ethz.ch> ===============================
Linux Drivers for Baycom Modems
===============================
!!NEW!! (04/98) The drivers for the baycom modems have been split into Thomas M. Sailer, HB9JNX/AE4WA, <sailer@ife.ee.ethz.ch>
The drivers for the baycom modems have been split into
separate drivers as they did not share any code, and the driver separate drivers as they did not share any code, and the driver
and device names have changed. and device names have changed.
This document describes the Linux Kernel Drivers for simple Baycom style This document describes the Linux Kernel Drivers for simple Baycom style
amateur radio modems. amateur radio modems.
The following drivers are available: The following drivers are available:
====================================
baycom_ser_fdx: baycom_ser_fdx:
This driver supports the SER12 modems either full or half duplex. This driver supports the SER12 modems either full or half duplex.
Its baud rate may be changed via the `baud' module parameter, Its baud rate may be changed via the ``baud`` module parameter,
therefore it supports just about every bit bang modem on a therefore it supports just about every bit bang modem on a
serial port. Its devices are called bcsf0 through bcsf3. serial port. Its devices are called bcsf0 through bcsf3.
This is the recommended driver for SER12 type modems, This is the recommended driver for SER12 type modems,
however if you have a broken UART clone that does not have working however if you have a broken UART clone that does not have working
delta status bits, you may try baycom_ser_hdx. delta status bits, you may try baycom_ser_hdx.
baycom_ser_hdx: baycom_ser_hdx:
This is an alternative driver for SER12 type modems. This is an alternative driver for SER12 type modems.
It only supports half duplex, and only 1200 baud. Its devices It only supports half duplex, and only 1200 baud. Its devices
are called bcsh0 through bcsh3. Use this driver only if baycom_ser_fdx are called bcsh0 through bcsh3. Use this driver only if baycom_ser_fdx
...@@ -37,45 +42,48 @@ baycom_epp: ...@@ -37,45 +42,48 @@ baycom_epp:
The following modems are supported: The following modems are supported:
ser12: This is a very simple 1200 baud AFSK modem. The modem consists only ======= ========================================================================
of a modulator/demodulator chip, usually a TI TCM3105. The computer ser12 This is a very simple 1200 baud AFSK modem. The modem consists only
is responsible for regenerating the receiver bit clock, as well as of a modulator/demodulator chip, usually a TI TCM3105. The computer
for handling the HDLC protocol. The modem connects to a serial port, is responsible for regenerating the receiver bit clock, as well as
hence the name. Since the serial port is not used as an async serial for handling the HDLC protocol. The modem connects to a serial port,
port, the kernel driver for serial ports cannot be used, and this hence the name. Since the serial port is not used as an async serial
driver only supports standard serial hardware (8250, 16450, 16550) port, the kernel driver for serial ports cannot be used, and this
driver only supports standard serial hardware (8250, 16450, 16550)
par96: This is a modem for 9600 baud FSK compatible to the G3RUH standard.
The modem does all the filtering and regenerates the receiver clock. par96 This is a modem for 9600 baud FSK compatible to the G3RUH standard.
Data is transferred from and to the PC via a shift register. The modem does all the filtering and regenerates the receiver clock.
The shift register is filled with 16 bits and an interrupt is signalled. Data is transferred from and to the PC via a shift register.
The PC then empties the shift register in a burst. This modem connects The shift register is filled with 16 bits and an interrupt is signalled.
to the parallel port, hence the name. The modem leaves the The PC then empties the shift register in a burst. This modem connects
implementation of the HDLC protocol and the scrambler polynomial to to the parallel port, hence the name. The modem leaves the
the PC. implementation of the HDLC protocol and the scrambler polynomial to
the PC.
picpar: This is a redesign of the par96 modem by Henning Rech, DF9IC. The modem
is protocol compatible to par96, but uses only three low power ICs picpar This is a redesign of the par96 modem by Henning Rech, DF9IC. The modem
and can therefore be fed from the parallel port and does not require is protocol compatible to par96, but uses only three low power ICs
an additional power supply. Furthermore, it incorporates a carrier and can therefore be fed from the parallel port and does not require
detect circuitry. an additional power supply. Furthermore, it incorporates a carrier
detect circuitry.
EPP: This is a high-speed modem adaptor that connects to an enhanced parallel port.
Its target audience is users working over a high speed hub (76.8kbit/s). EPP This is a high-speed modem adaptor that connects to an enhanced parallel
port.
eppfpga: This is a redesign of the EPP adaptor.
Its target audience is users working over a high speed hub (76.8kbit/s).
eppfpga This is a redesign of the EPP adaptor.
======= ========================================================================
All of the above modems only support half duplex communications. However, All of the above modems only support half duplex communications. However,
the driver supports the KISS (see below) fullduplex command. It then simply the driver supports the KISS (see below) fullduplex command. It then simply
starts to send as soon as there's a packet to transmit and does not care starts to send as soon as there's a packet to transmit and does not care
about DCD, i.e. it starts to send even if there's someone else on the channel. about DCD, i.e. it starts to send even if there's someone else on the channel.
This command is required by some implementations of the DAMA channel This command is required by some implementations of the DAMA channel
access protocol. access protocol.
The Interface of the drivers The Interface of the drivers
============================
Unlike previous drivers, these drivers are no longer character devices, Unlike previous drivers, these drivers are no longer character devices,
but they are now true kernel network interfaces. Installation is therefore but they are now true kernel network interfaces. Installation is therefore
...@@ -88,20 +96,22 @@ me for WAMPES which allows attaching a kernel network interface directly. ...@@ -88,20 +96,22 @@ me for WAMPES which allows attaching a kernel network interface directly.
Configuring the driver Configuring the driver
======================
Every time a driver is inserted into the kernel, it has to know which Every time a driver is inserted into the kernel, it has to know which
modems it should access at which ports. This can be done with the setbaycom modems it should access at which ports. This can be done with the setbaycom
utility. If you are only using one modem, you can also configure the utility. If you are only using one modem, you can also configure the
driver from the insmod command line (or by means of an option line in driver from the insmod command line (or by means of an option line in
/etc/modprobe.d/*.conf). ``/etc/modprobe.d/*.conf``).
Examples::
Examples:
modprobe baycom_ser_fdx mode="ser12*" iobase=0x3f8 irq=4 modprobe baycom_ser_fdx mode="ser12*" iobase=0x3f8 irq=4
sethdlc -i bcsf0 -p mode "ser12*" io 0x3f8 irq 4 sethdlc -i bcsf0 -p mode "ser12*" io 0x3f8 irq 4
Both lines configure the first port to drive a ser12 modem at the first Both lines configure the first port to drive a ser12 modem at the first
serial port (COM1 under DOS). The * in the mode parameter instructs the driver to use serial port (COM1 under DOS). The * in the mode parameter instructs the driver
the software DCD algorithm (see below). to use the software DCD algorithm (see below)::
insmod baycom_par mode="picpar" iobase=0x378 insmod baycom_par mode="picpar" iobase=0x378
sethdlc -i bcp0 -p mode "picpar" io 0x378 sethdlc -i bcp0 -p mode "picpar" io 0x378
...@@ -115,29 +125,33 @@ Note that both utilities interpret the values slightly differently. ...@@ -115,29 +125,33 @@ Note that both utilities interpret the values slightly differently.
Hardware DCD versus Software DCD Hardware DCD versus Software DCD
================================
To avoid collisions on the air, the driver must know when the channel is To avoid collisions on the air, the driver must know when the channel is
busy. This is the task of the DCD circuitry/software. The driver may either busy. This is the task of the DCD circuitry/software. The driver may either
utilise a software DCD algorithm (options=1) or use a DCD signal from utilise a software DCD algorithm (options=1) or use a DCD signal from
the hardware (options=0). the hardware (options=0).
ser12: if software DCD is utilised, the radio's squelch should always be ======= =================================================================
open. It is highly recommended to use the software DCD algorithm, ser12 if software DCD is utilised, the radio's squelch should always be
as it is much faster than most hardware squelch circuitry. The open. It is highly recommended to use the software DCD algorithm,
disadvantage is a slightly higher load on the system. as it is much faster than most hardware squelch circuitry. The
disadvantage is a slightly higher load on the system.
par96: the software DCD algorithm for this type of modem is rather poor. par96 the software DCD algorithm for this type of modem is rather poor.
The modem simply does not provide enough information to implement The modem simply does not provide enough information to implement
a reasonable DCD algorithm in software. Therefore, if your radio a reasonable DCD algorithm in software. Therefore, if your radio
feeds the DCD input of the PAR96 modem, the use of the hardware feeds the DCD input of the PAR96 modem, the use of the hardware
DCD circuitry is recommended. DCD circuitry is recommended.
picpar: the picpar modem features a builtin DCD hardware, which is highly picpar the picpar modem features a builtin DCD hardware, which is highly
recommended. recommended.
======= =================================================================
Compatibility with the rest of the Linux kernel Compatibility with the rest of the Linux kernel
===============================================
The serial driver and the baycom serial drivers compete The serial driver and the baycom serial drivers compete
for the same hardware resources. Of course only one driver can access a given for the same hardware resources. Of course only one driver can access a given
...@@ -154,5 +168,7 @@ The parallel port drivers (baycom_par, baycom_epp) now use the parport subsystem ...@@ -154,5 +168,7 @@ The parallel port drivers (baycom_par, baycom_epp) now use the parport subsystem
to arbitrate the ports between different client drivers. to arbitrate the ports between different client drivers.
vy 73s de vy 73s de
Tom Sailer, sailer@ife.ee.ethz.ch Tom Sailer, sailer@ife.ee.ethz.ch
hb9jnx @ hb9w.ampr.org hb9jnx @ hb9w.ampr.org
:orphan:
.. SPDX-License-Identifier: GPL-2.0 .. SPDX-License-Identifier: GPL-2.0
.. include:: <isonum.txt> .. include:: <isonum.txt>
......
.. SPDX-License-Identifier: GPL-2.0
CAIF
====
Contents:
.. toctree::
:maxdepth: 2
linux_caif
caif
spi_porting
.. SPDX-License-Identifier: GPL-2.0
.. include:: <isonum.txt>
==========
Linux CAIF Linux CAIF
=========== ==========
copyright (C) ST-Ericsson AB 2010
Author: Sjur Brendeland/ sjur.brandeland@stericsson.com Copyright |copy| ST-Ericsson AB 2010
License terms: GNU General Public License (GPL) version 2
:Author: Sjur Brendeland/ sjur.brandeland@stericsson.com
:License terms: GNU General Public License (GPL) version 2
Introduction Introduction
------------ ============
CAIF is a MUX protocol used by ST-Ericsson cellular modems for CAIF is a MUX protocol used by ST-Ericsson cellular modems for
communication between Modem and host. The host processes can open virtual AT communication between Modem and host. The host processes can open virtual AT
channels, initiate GPRS Data connections, Video channels and Utility Channels. channels, initiate GPRS Data connections, Video channels and Utility Channels.
...@@ -16,13 +23,16 @@ ST-Ericsson modems support a number of transports between modem ...@@ -16,13 +23,16 @@ ST-Ericsson modems support a number of transports between modem
and host. Currently, UART and Loopback are available for Linux. and host. Currently, UART and Loopback are available for Linux.
Architecture: Architecture
------------ ============
The implementation of CAIF is divided into: The implementation of CAIF is divided into:
* CAIF Socket Layer and GPRS IP Interface. * CAIF Socket Layer and GPRS IP Interface.
* CAIF Core Protocol Implementation * CAIF Core Protocol Implementation
* CAIF Link Layer, implemented as NET devices. * CAIF Link Layer, implemented as NET devices.
::
RTNL RTNL
! !
...@@ -46,12 +56,12 @@ The implementation of CAIF is divided into: ...@@ -46,12 +56,12 @@ The implementation of CAIF is divided into:
I M P L E M E N T A T I O N Implementation
=========================== ==============
CAIF Core Protocol Layer CAIF Core Protocol Layer
========================================= ------------------------
CAIF Core layer implements the CAIF protocol as defined by ST-Ericsson. CAIF Core layer implements the CAIF protocol as defined by ST-Ericsson.
It implements the CAIF protocol stack in a layered approach, where It implements the CAIF protocol stack in a layered approach, where
...@@ -59,8 +69,11 @@ each layer described in the specification is implemented as a separate layer. ...@@ -59,8 +69,11 @@ each layer described in the specification is implemented as a separate layer.
The architecture is inspired by the design patterns "Protocol Layer" and The architecture is inspired by the design patterns "Protocol Layer" and
"Protocol Packet". "Protocol Packet".
== CAIF structure == CAIF structure
^^^^^^^^^^^^^^
The Core CAIF implementation contains: The Core CAIF implementation contains:
- Simple implementation of CAIF. - Simple implementation of CAIF.
- Layered architecture (a la Streams), each layer in the CAIF - Layered architecture (a la Streams), each layer in the CAIF
specification is implemented in a separate c-file. specification is implemented in a separate c-file.
...@@ -73,7 +86,8 @@ The Core CAIF implementation contains: ...@@ -73,7 +86,8 @@ The Core CAIF implementation contains:
to the called function (except for framing layers' receive function) to the called function (except for framing layers' receive function)
Layered Architecture Layered Architecture
-------------------- ====================
The CAIF protocol can be divided into two parts: Support functions and Protocol The CAIF protocol can be divided into two parts: Support functions and Protocol
Implementation. The support functions include: Implementation. The support functions include:
...@@ -112,7 +126,7 @@ The CAIF Protocol implementation contains: ...@@ -112,7 +126,7 @@ The CAIF Protocol implementation contains:
- CFSERL CAIF Serial layer. Handles concatenation/split of frames - CFSERL CAIF Serial layer. Handles concatenation/split of frames
into CAIF Frames with correct length. into CAIF Frames with correct length.
::
+---------+ +---------+
| Config | | Config |
...@@ -143,18 +157,24 @@ The CAIF Protocol implementation contains: ...@@ -143,18 +157,24 @@ The CAIF Protocol implementation contains:
In this layered approach the following "rules" apply. In this layered approach the following "rules" apply.
- All layers embed the same structure "struct cflayer" - All layers embed the same structure "struct cflayer"
- A layer does not depend on any other layer's private data. - A layer does not depend on any other layer's private data.
- Layers are stacked by setting the pointers - Layers are stacked by setting the pointers::
layer->up , layer->dn layer->up , layer->dn
- In order to send data upwards, each layer should do
- In order to send data upwards, each layer should do::
layer->up->receive(layer->up, packet); layer->up->receive(layer->up, packet);
- In order to send data downwards, each layer should do
- In order to send data downwards, each layer should do::
layer->dn->transmit(layer->dn, packet); layer->dn->transmit(layer->dn, packet);
CAIF Socket and IP interface CAIF Socket and IP interface
=========================== ============================
The IP interface and CAIF socket API are implemented on top of the The IP interface and CAIF socket API are implemented on top of the
CAIF Core protocol. The IP Interface and CAIF socket have an instance of CAIF Core protocol. The IP Interface and CAIF socket have an instance of
......
.. SPDX-License-Identifier: GPL-2.0
======================
DCTCP (DataCenter TCP) DCTCP (DataCenter TCP)
---------------------- ======================
DCTCP is an enhancement to the TCP congestion control algorithm for data DCTCP is an enhancement to the TCP congestion control algorithm for data
center networks and leverages Explicit Congestion Notification (ECN) in center networks and leverages Explicit Congestion Notification (ECN) in
the data center network to provide multi-bit feedback to the end hosts. the data center network to provide multi-bit feedback to the end hosts.
To enable it on end hosts: To enable it on end hosts::
sysctl -w net.ipv4.tcp_congestion_control=dctcp sysctl -w net.ipv4.tcp_congestion_control=dctcp
sysctl -w net.ipv4.tcp_ecn_fallback=0 (optional) sysctl -w net.ipv4.tcp_ecn_fallback=0 (optional)
...@@ -25,14 +28,19 @@ SIGCOMM/SIGMETRICS papers: ...@@ -25,14 +28,19 @@ SIGCOMM/SIGMETRICS papers:
i) Mohammad Alizadeh, Albert Greenberg, David A. Maltz, Jitendra Padhye, i) Mohammad Alizadeh, Albert Greenberg, David A. Maltz, Jitendra Padhye,
Parveen Patel, Balaji Prabhakar, Sudipta Sengupta, and Murari Sridharan: Parveen Patel, Balaji Prabhakar, Sudipta Sengupta, and Murari Sridharan:
"Data Center TCP (DCTCP)", Data Center Networks session
"Data Center TCP (DCTCP)", Data Center Networks session"
Proc. ACM SIGCOMM, New Delhi, 2010. Proc. ACM SIGCOMM, New Delhi, 2010.
http://simula.stanford.edu/~alizade/Site/DCTCP_files/dctcp-final.pdf http://simula.stanford.edu/~alizade/Site/DCTCP_files/dctcp-final.pdf
http://www.sigcomm.org/ccr/papers/2010/October/1851275.1851192 http://www.sigcomm.org/ccr/papers/2010/October/1851275.1851192
ii) Mohammad Alizadeh, Adel Javanmard, and Balaji Prabhakar: ii) Mohammad Alizadeh, Adel Javanmard, and Balaji Prabhakar:
"Analysis of DCTCP: Stability, Convergence, and Fairness" "Analysis of DCTCP: Stability, Convergence, and Fairness"
Proc. ACM SIGMETRICS, San Jose, 2011. Proc. ACM SIGMETRICS, San Jose, 2011.
http://simula.stanford.edu/~alizade/Site/DCTCP_files/dctcp_analysis-full.pdf http://simula.stanford.edu/~alizade/Site/DCTCP_files/dctcp_analysis-full.pdf
IETF informational draft: IETF informational draft:
......
Notes on the DEC FDDIcontroller 700 (DEFZA-xx) driver v.1.1.4. .. SPDX-License-Identifier: GPL-2.0
=====================================================
Notes on the DEC FDDIcontroller 700 (DEFZA-xx) driver
=====================================================
:Version: v.1.1.4
DEC FDDIcontroller 700 is DEC's first-generation TURBOchannel FDDI DEC FDDIcontroller 700 is DEC's first-generation TURBOchannel FDDI
......
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册