Revision b03c720211ea5ec027ad85f1e147e3d8122429ba authored by Pyun YongHyeon on 14 January 2010, 21:54:20 UTC, committed by Pyun YongHyeon on 14 January 2010, 21:54:20 UTC
  Add bus_dma(9) and endianness support to ste(4).
   o Sorted includes and added missing header files.
   o Added basic endianness support. In theory ste(4) should work on
     any architectures.
   o Remove the use of contigmalloc(9), contigfree(9) and vtophys(9).
   o Added 8 byte alignment limitation of TX/RX descriptor.
   o Added 1 byte alignment requirement for TX/RX buffers.
   o ste(4) controllers does not support DAC. Limit DMA address space
     to be within 32bit address.
   o Added spare DMA map to gracefully recover from DMA map failure.
   o Removed dead code for checking STE_RXSTAT_DMADONE bit. The bit
     was already checked in each iteration of loop so it can't be true.
   o Added second argument count to ste_rxeof(). It is used to limit
     number of iterations done in RX handler. ATM polling is the only
     consumer.
   o Removed ste_rxeoc() which was added to address RX stuck issue
     (cvs rev 1.66). Unlike TX descriptors, ST201 supports chaining
     descriptors to form a ring for RX descriptors. If RX descriptor
     chaining is not supported it's possible for controller to stop
     receiving incoming frames once controller pass the end of RX
     descriptor which in turn requires driver post new RX
     descriptors to receive more frames. For TX descriptors which
     does not support chaning, we exactly do manual chaining in
     driver by concatenating new descriptors to the end of previous
     TX chain.
     Maybe the workaround was borrowed from other drivers that does
     not support RX descriptor chaining, which is not valid for ST201
     controllers. I still have no idea how this address RX stuck
     issue and I can't reproduce the RX stuck issue on DFE-550TX
     controller.
   o Removed hw.ste_rxsyncs sysctl as the workaround was removed.
   o TX/RX side bus_dmamap_load_mbuf_sg(9) support.
   o Reimplemented optimized ste_encap().
   o Simplified TX logic of ste_start_locked().
   o Added comments for TFD/RFD requirements.
   o Increased number of RX descriptors to 128 from 64. 128 gave much
     better performance than 64 under high network loads.
1 parent d982c88
Raw File
slattach.8
.\" Copyright (c) 1986, 1991 The Regents of the University of California.
.\" All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
.\" are met:
.\" 1. Redistributions of source code must retain the above copyright
.\"    notice, this list of conditions and the following disclaimer.
.\" 2. Redistributions in binary form must reproduce the above copyright
.\"    notice, this list of conditions and the following disclaimer in the
.\"    documentation and/or other materials provided with the distribution.
.\" 4. Neither the name of the University nor the names of its contributors
.\"    may be used to endorse or promote products derived from this software
.\"    without specific prior written permission.
.\"
.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
.\"     @(#)slattach.8	6.4 (Berkeley) 3/16/91
.\"
.\" $FreeBSD$
.\"
.Dd April 4, 1993
.Dt SLATTACH 8
.Os
.Sh NAME
.Nm slattach
.Nd attach serial lines as network interfaces
.Sh SYNOPSIS
.Nm
.Op Fl acfhLlnz
.Op Fl e Ar exit-command
.Op Fl K Ar keepalive
.Op Fl O Ar outfill
.Op Fl r Ar redial-command
.Op Fl S Ar unit
.Op Fl s Ar baudrate
.Op Fl u Ar unit-command
.Ar ttyname
.Sh DESCRIPTION
The
.Nm
utility is used to assign a tty line to a network interface,
and to define the network source and destination addresses.
.Pp
The following options are available:
.Bl -tag -width indent
.It Fl a
Autoenable the VJ header compression option, if the other end of the link
is capable of VJ header compression then it will be used otherwise normal
headers will be used.
.It Fl c
Enable the VJ header compression option.
Note that both ends of the link
must be able to use VJ header compression for this to work.
.It Fl e Ar exit-command
Specify a command to be invoked within a shell
.Ql sh \-c Ar exit-command
before
.Nm
exits.
.It Fl f
Disable the invocation of daemon() to run
.Nm
in the background.
.It Fl h
Turn on cts/rts style flow control on the slip port, by default no flow
control is done.
.It Fl l
Disable modem control (CLOCAL) and ignore carrier detect on the slip
port.
By default the
.Ar redial-command
is invoked upon carrier drop and
.Nm
aborts if no
.Ar redial-command
is specified.
.It Fl n
Throw away ICMP packets.
The slip interface will ignore ICMP packets
to prevent slow lines being saturated by ICMP responses.
.It Fl r Ar redial-command
Specify a command to be invoked within a shell
.Ql sh \-c Ar redial-command
whenever carrier is lost on the modem line.
Empty
.Ar redial-command
(i.e.\&
.Fl r Qq "" )
cause connection reestablishing on leased line
without any external command invoked.
.It Fl s Ar baudrate
Specify the speed of the connection.
If not specified, the
default of 9600 is used.
.It Fl u Ar unit-command
When the line is switched to slip discipline, run
.Dq Nm "sh -c" Ar unit-command old new
where
.Ar old
and
.Ar new
are the slip unit numbers when the line was
last opened and the unit number of the current slip connection
respectively.
The unit number can change after redialing if you are
using more than one slip line.
When
.Nm
is connected for the first time,
.Dq Nm "sh -c" Ar unit-command \-1 new
is run.
When
.Nm
is disconnected,
.Dq Nm "sh -c" Ar unit-command old \-1
is run.
The
.Nm
utility will abort if the unit number
changes and
.Dq Fl u Ar \%unit-command
was not specified.
.It Fl z
Force redial
.Ar redial-command
upon startup irrespective of carrier.
.It Fl L
Use uucp-style device locking.
You need it unless you start
.Nm
from external program which already does uucp locking.
Default case is no uucp locking to satisfy such programs.
.It Fl K Ar keepalive
Set SLIP "keep alive" timeout in seconds.
If FRAME_END is not received in
this amount of time, re-connect occurs.
The default value is no timeout.
.It Fl O Ar outfill
Set SLIP "out fill" timeout in seconds.
It forces at least one FRAME_END
to be sent during this time period, which is necessary for the "keep alive"
timeout on the remote side.
The default value is no timeout.
.It Fl S Ar unit
Set the SLIP unit number directly.
Use with caution, because no check is made
for two interfaces with same number.
By default sliplogin dynamically assigns the unit number.
.It Ar ttyname
Specify the name of the tty device.
.Ar Ttyname
should be a string of the form
.Ql ttyXX
or
.Ql /dev/ttyXX .
.El
.Pp
Only the super-user may attach a network interface.
.Pp
To detach the interface, use
.Dq Li ifconfig interface-name down
after killing off the
.Nm
process using
.Ql kill -INT .
.Ar Interface-name
is the name that is shown by
.Xr netstat 1 .
.Pp
To setup
.Nm
to redial the phone when carrier is lost, use the
.Fl r Ar redial-command
option to specify a script or executable that will reconnect the
serial line to the slip server.
For example, the script could redial
the server and log in, etc.
.Pp
To reconfigure the network interface in case the slip unit number
changes, use the
.Fl u Ar unit-command
option to specify a script or executable that will be invoked as
.Ql sh \-c Ar unit-command old new
where
.Ar old
and
.Ar new
are the slip unit numbers before and after
reconnecting the line.
The unit number can change if you have more
than one line disconnect at the same time.
The first to succeed in
reconnecting will get the lowest unit number.
.Pp
To kill
.Nm
use
.Ql kill -INT
(SIGINT) which causes it to close the tty and exit.
.Pp
To force a redial, use
.Ql kill -HUP
(SIGHUP) which causes
.Nm
to think carrier was lost and thus invoke
.Ql sh \-c Ar redial-command
to reconnect to the server.
.Pp
If you use a hard-wired connection rather than a modem, invoke
.Nm
with the
.Fl l
option in order to ignore carrier on the slip line.
.Sh FILES
.Bl -tag -width /usr/share/examples/slattach/* -compact
.It Pa /var/run/slattach.<tty>.pid
with
.Ar tty
replaced by the terminal path name component of
.Ar ttyname .
This file contains the numerical process ID of the
.Nm
process and can be examined by scripts in order to send a signal to
.Nm
.It Pa /usr/share/examples/slattach/*
.El
.Sh EXAMPLES
.Bd -literal -offset indent -compact
slattach ttyd8
slattach \-s 4800 /dev/ttyd1
slattach \-c \-s 38400 /dev/cuad1
slattach \-r 'kermit -y dial.script >kermit.log 2>&1'
.Ed
.Sh DIAGNOSTICS
Look for error messages in
.Pa /var/log/messages
.No ( Nm
is a daemon).
Messages indicating the specified interface does not exit, the
requested address is unknown, the user is not privileged and tried to
alter an interface's configuration are logged there.
The
.Nm
utility
also logs failure to set the controlling terminal or failure to install
signal handlers.
Upon connection and redial the ttyname and baud rate
are logged and on shutdown the ttyname is logged.
.Sh SEE ALSO
.Xr netstat 1 ,
.Xr startslip 1 ,
.Xr netintro 4 ,
.Xr ifconfig 8 ,
.Xr rc 8 ,
.Xr sliplogin 8
.Sh HISTORY
The
.Nm
utility appeared in
.Bx 4.3 .
back to top