minix/man/man8/inet.8
David van Moolenbroek 9ba65d2ea8 This patch switches the MINIX3 ethernet driver stack from a port-based
model to an instance-based model. Each ethernet driver instance is now
responsible for exactly one network interface card. The port field in
/etc/inet.conf now acts as an instance field instead.

This patch also updates the data link protocol. This update:
- eliminates the concept of ports entirely;
- eliminates DL_GETNAME entirely;
- standardizes on using m_source for IPC and DL_ENDPT for safecopies;
- removes error codes from TASK/STAT replies, as they were unused;
- removes a number of other old or unused fields;
- names and renames a few other fields.

All ethernet drivers have been changed to:
- conform to the new protocol, and exactly that;
- take on an instance number based on a given "instance" argument;
- skip that number of PCI devices in probe iterations;
- use config tables and environment variables based on that number;
- no longer be limited to a predefined maximum of cards in any way;
- get rid of any leftover non-safecopy support and other ancient junk;
- have a correct banner protocol figure, or none at all.

Other changes:
* Inet.conf is now taken to be line-based, and supports #-comments.
  No existing installations are expected to be affected by this.
* A new, select-based asynchio library replaces the old one.
  Kindly contributed by Kees J. Bot.
* Inet now supports use of select() on IP devices.
  Combined, the last two changes together speed up dhcpd
  considerably in the presence of multiple interfaces.
* A small bug has been fixed in nonamed.
2010-05-17 22:22:53 +00:00

145 lines
3.9 KiB
Groff

.TH INET 8
.SH NAME
inet, inet.conf \- TCP/IP server
.SH SYNOPSIS
.B inet
.SH DESCRIPTION
.de SP
.if t .sp 0.4
.if n .sp
..
.B Inet
is the TCP/IP server. It is a device driver that interfaces between the
file server and the low level ethernet device driver. The interface to this
server is described in
.BR ip (4).
.PP
.B Inet
starts as a normal process, reads a the configuration file
.B /etc/inet.conf
to see what it should do, and uses a few special low level system calls
to turn itself into a server. The format of the configuration file is as
follows:
.SS Configuration
The inet configuration file is fairly simple, here is an example:
.PP
.RS
.ft C
.nf
eth0 DP8390 0 { default; };
psip1;
.fi
.ft P
.RS
.PP
It tells that network 0 (the one containing devices
.BR eth0 ,
.BR ip0 ,
.BR tcp0
and
.BR udp0 )
uses the ethernet device driver handled
by driver "DP8390" instance 0. This network is marked as the default
network, so most programs use it through the unnumbered devices like
.B /dev/tcp
or
.BR /dev/udp .
Network 1 is a Pseudo IP network that can be used for
a serial IP over a modem for instance.
.PP
The configuration file uses a simple line-based format.
Each network definition has to be fully on its own line.
Empty lines and lines that start with a `#' symbol are ignored.
The following network definitions are possible:
.PP
.BI eth N
.I driver instance
.RI { options };
.RS
This sets up an ethernet with device name
.BI /dev/eth N\fR,
built on the given ethernet device driver with the given instance number.
(If there are two network cards of the same type
then they will be managed by instance 0 and 1 of the corresponding driver.)
.br
.RE
.PP
.BI eth N
.B vlan
.I id
.BI eth M
.RI { options };
\0\0\0\0
.RS
The ethernet
.BI eth N
uses VLAN number
.I id
and is built on ethernet
.BI eth M\fR.
A packet given to this network has a VLAN tag prefixed to it and is then
handed over to another ethernet for transmission. Likewise a packet on
that ethernet carrying the appropriate VLAN tag has this tag removed and is
sent on to this network. The VLAN ethernet behaves like an ordinary ethernet
as far as applications are concerned.
.RE
.PP
.BI psip N
.RI { options };
.RS
Creates pseudo IP network
.BI /dev/psip N\fR,
usable for IP over serial lines, tunnels and whatnot.
.RE
.SH OPTIONS
Some options can be given between braces.
.PP
.BR default ;
.RS
Mark this network as the default network. Exactly one of the networks must
be so marked.
When
.B inet
is started it will check and create all the necessary network devices before
becoming a server. To know what major device number to use it checks
.BR /dev/ip ,
so that device must already exist. It can be created by
.B MAKEDEV
if need be.
.RE
.PP
.BR "no ip" ;
.br
.BR "no tcp" ;
.br
.BR "no udp" ;
.RS
These options turn the IP, TCP, or UDP layer off. Inet will not enable the
devices for these layers, and will deactivate code for these layers.
Disabling IP will also disable TCP or UDP, because they need IP to function.
An ethernet without an IP layer can be used as for stealth listening. An IP
network without TCP or UDP can be used to pester students into creating the
missing functionality. Keeps them off the streets, and maybe they'll learn
something.
.RE
.SH "SEE ALSO"
.BR ip (4),
.BR boot (8).
.SH NOTES
The number of networks that can be defined are 2 (Minix-86), 4 (Minix-386)
or 16 (Minix-vmd). This limits both the total number and the highest
device number you can use.
.PP
Getting a network administrator to give you a trunk or multi-VLAN port to
run multiple networks on can be a challenge. It questions their idea that
VLANs are separate networks, while in reality it is just one big ethernet.
.SH ACKNOWLEDGMENTS
Cindy Crawford, for providing invaluable help debugging this server.
.SH AUTHOR
.ta \w'Manual:'u+2n
Code: Philip Homburg <philip@cs.vu.nl>
.br
Manual: Kees J. Bot <kjb@cs.vu.nl>
.\"
.\" $PchId: inet.8,v 1.6 2001/10/08 19:01:35 philip Exp $