00-INDEX
	- this file
3c509.txt
	- information on the 3Com Etherlink III Series Ethernet cards.
6pack.txt
	- info on the 6pack protocol, an alternative to KISS for AX.25
LICENSE.qla3xxx
	- GPLv2 for QLogic Linux Networking HBA Driver
LICENSE.qlge
	- GPLv2 for QLogic Linux qlge NIC Driver
LICENSE.qlcnic
	- GPLv2 for QLogic Linux qlcnic NIC Driver
PLIP.txt
	- PLIP: The Parallel Line Internet Protocol device driver
README.ipw2100
	- README for the Intel PRO/Wireless 2100 driver.
README.ipw2200
	- README for the Intel PRO/Wireless 2915ABG and 2200BG driver.
README.sb1000
	- info on General Instrument/NextLevel SURFboard1000 cable modem.
altera_tse.txt
	- Altera Triple-Speed Ethernet controller.
arcnet-hardware.txt
	- tons of info on ARCnet, hubs, jumper settings for ARCnet cards, etc.
arcnet.txt
	- info on the using the ARCnet driver itself.
atm.txt
	- info on where to get ATM programs and support for Linux.
ax25.txt
	- info on using AX.25 and NET/ROM code for Linux
baycom.txt
	- info on the driver for Baycom style amateur radio modems
bonding.txt
	- Linux Ethernet Bonding Driver HOWTO: link aggregation in Linux.
bridge.txt
	- where to get user space programs for ethernet bridging with Linux.
cdc_mbim.txt
	- 3G/LTE USB modem (Mobile Broadband Interface Model)
checksum-offloads.txt
	- Explanation of checksum offloads; LCO, RCO
cops.txt
	- info on the COPS LocalTalk Linux driver
cs89x0.txt
	- the Crystal LAN (CS8900/20-based) Ethernet ISA adapter driver
cxacru.txt
	- Conexant AccessRunner USB ADSL Modem
cxacru-cf.py
	- Conexant AccessRunner USB ADSL Modem configuration file parser
cxgb.txt
	- Release Notes for the Chelsio N210 Linux device driver.
dccp.txt
	- the Datagram Congestion Control Protocol (DCCP) (RFC 4340..42).
dctcp.txt
	- DataCenter TCP congestion control
de4x5.txt
	- the Digital EtherWORKS DE4?? and DE5?? PCI Ethernet driver
decnet.txt
	- info on using the DECnet networking layer in Linux.
dl2k.txt
	- README for D-Link DL2000-based Gigabit Ethernet Adapters (dl2k.ko).
dm9000.txt
	- README for the Simtec DM9000 Network driver.
dmfe.txt
	- info on the Davicom DM9102(A)/DM9132/DM9801 fast ethernet driver.
dns_resolver.txt
	- The DNS resolver module allows kernel servies to make DNS queries.
driver.txt
	- Softnet driver issues.
ena.txt
	- info on Amazon's Elastic Network Adapter (ENA)
e100.txt
	- info on Intel's EtherExpress PRO/100 line of 10/100 boards
e1000.txt
	- info on Intel's E1000 line of gigabit ethernet boards
e1000e.txt
	- README for the Intel Gigabit Ethernet Driver (e1000e).
eql.txt
	- serial IP load balancing
fib_trie.txt
	- Level Compressed Trie (LC-trie) notes: a structure for routing.
filter.txt
	- Linux Socket Filtering
fore200e.txt
	- FORE Systems PCA-200E/SBA-200E ATM NIC driver info.
framerelay.txt
	- info on using Frame Relay/Data Link Connection Identifier (DLCI).
gen_stats.txt
	- Generic networking statistics for netlink users.
generic-hdlc.txt
	- The generic High Level Data Link Control (HDLC) layer.
generic_netlink.txt
	- info on Generic Netlink
gianfar.txt
	- Gianfar Ethernet Driver.
i40e.txt
	- README for the Intel Ethernet Controller XL710 Driver (i40e).
iavf.txt
	- README for the Intel Ethernet Adaptive Virtual Function Driver (iavf).
ieee802154.txt
	- Linux IEEE 802.15.4 implementation, API and drivers
igb.txt
	- README for the Intel Gigabit Ethernet Driver (igb).
igbvf.txt
	- README for the Intel Gigabit Ethernet Driver (igbvf).
ip-sysctl.txt
	- /proc/sys/net/ipv4/* variables
ip_dynaddr.txt
	- IP dynamic address hack e.g. for auto-dialup links
ipddp.txt
	- AppleTalk-IP Decapsulation and AppleTalk-IP Encapsulation
iphase.txt
	- Interphase PCI ATM (i)Chip IA Linux driver info.
ipsec.txt
	- Note on not compressing IPSec payload and resulting failed policy check.
ipv6.txt
	- Options to the ipv6 kernel module.
ipvs-sysctl.txt
	- Per-inode explanation of the /proc/sys/net/ipv4/vs interface.
irda.txt
	- where to get IrDA (infrared) utilities and info for Linux.
ixgb.txt
	- README for the Intel 10 Gigabit Ethernet Driver (ixgb).
ixgbe.txt
	- README for the Intel 10 Gigabit Ethernet Driver (ixgbe).
ixgbevf.txt
	- README for the Intel Virtual Function (VF) Driver (ixgbevf).
l2tp.txt
	- User guide to the L2TP tunnel protocol.
lapb-module.txt
	- programming information of the LAPB module.
ltpc.txt
	- the Apple or Farallon LocalTalk PC card driver
mac80211-auth-assoc-deauth.txt
	- authentication and association / deauth-disassoc with max80211
mac80211-injection.txt
	- HOWTO use packet injection with mac80211
multiqueue.txt
	- HOWTO for multiqueue network device support.
netconsole.txt
	- The network console module netconsole.ko: configuration and notes.
netdev-features.txt
	- Network interface features API description.
netdevices.txt
	- info on network device driver functions exported to the kernel.
netif-msg.txt
	- Design of the network interface message level setting (NETIF_MSG_*).
netlink_mmap.txt
	- memory mapped I/O with netlink
nf_conntrack-sysctl.txt
	- list of netfilter-sysctl knobs.
nfc.txt
	- The Linux Near Field Communication (NFS) subsystem.
openvswitch.txt
	- Open vSwitch developer documentation.
operstates.txt
	- Overview of network interface operational states.
packet_mmap.txt
	- User guide to memory mapped packet socket rings (PACKET_[RT]X_RING).
phonet.txt
	- The Phonet packet protocol used in Nokia cellular modems.
phy.txt
	- The PHY abstraction layer.
pktgen.txt
	- User guide to the kernel packet generator (pktgen.ko).
policy-routing.txt
	- IP policy-based routing
ppp_generic.txt
	- Information about the generic PPP driver.
proc_net_tcp.txt
	- Per inode overview of the /proc/net/tcp and /proc/net/tcp6 interfaces.
radiotap-headers.txt
	- Background on radiotap headers.
ray_cs.txt
	- Raylink Wireless LAN card driver info.
rds.txt
	- Background on the reliable, ordered datagram delivery method RDS.
regulatory.txt
	- Overview of the Linux wireless regulatory infrastructure.
rxrpc.txt
	- Guide to the RxRPC protocol.
s2io.txt
	- Release notes for Neterion Xframe I/II 10GbE driver.
scaling.txt
	- Explanation of network scaling techniques: RSS, RPS, RFS, aRFS, XPS.
sctp.txt
	- Notes on the Linux kernel implementation of the SCTP protocol.
secid.txt
	- Explanation of the secid member in flow structures.
skfp.txt
	- SysKonnect FDDI (SK-5xxx, Compaq Netelligent) driver info.
smc9.txt
	- the driver for SMC's 9000 series of Ethernet cards
spider_net.txt
	- README for the Spidernet Driver (as found in PS3 / Cell BE).
stmmac.txt
	- README for the STMicro Synopsys Ethernet driver.
tc-actions-env-rules.txt
	- rules for traffic control (tc) actions.
timestamping.txt
	- overview of network packet timestamping variants.
tcp.txt
	- short blurb on how TCP output takes place.
tcp-thin.txt
	- kernel tuning options for low rate 'thin' TCP streams.
team.txt
	- pointer to information for ethernet teaming devices.
tlan.txt
	- ThunderLAN (Compaq Netelligent 10/100, Olicom OC-2xxx) driver info.
tproxy.txt
	- Transparent proxy support user guide.
tuntap.txt
	- TUN/TAP device driver, allowing user space Rx/Tx of packets.
udplite.txt
	- UDP-Lite protocol (RFC 3828) introduction.
vortex.txt
	- info on using 3Com Vortex (3c590, 3c592, 3c595, 3c597) Ethernet cards.
vxge.txt
	- README for the Neterion X3100 PCIe Server Adapter.
vxlan.txt
	- Virtual extensible LAN overview
x25.txt
	- general info on X.25 development.
x25-iface.txt
	- description of the X.25 Packet Layer to LAPB device interface.
xfrm_device.txt
	- description of XFRM offload API
xfrm_proc.txt
	- description of the statistics package for XFRM.
xfrm_sync.txt
	- sync patches for XFRM enable migration of an SA between hosts.
xfrm_sysctl.txt
	- description of the XFRM configuration options.
z8530drv.txt
	- info about Linux driver for Z8530 based HDLC cards for AX.25
