NAME
lmcconfig —
configuration program for
LMC (and some SBE) wide-area network interface cards
SYNOPSIS
lmcconfig |
interface
[-abBcCdDeEfgGhiLmMpPsStTuUvVwxXyY?] |
lmcconfig |
interface -1
[-aABcdeEfFgiIlLpPstTuUxX] |
lmcconfig |
interface -3
[-aABcefFlLsSV] |
DESCRIPTION
The
lmcconfig utility is the configuration program for the
lmc(4) wide-area network device
driver. It sets control values, such as T3 framing format, and it displays
status, such as that of integrated modems, which are beyond the scope of
ifconfig(8).
The
lmcconfig utility displays the interface status when no
parameters are specified; see the
EXAMPLES
section. For this case only, if no
interface is
specified, it defaults to “
lmc0
”.
Only the super-user may modify the configuration of a network interface.
The following options are available:
-
-
- interface
- This is the name of the interface; the default is
“
lmc0
”.
-
-
- -1
- All parameters after this apply to the T1E1 card.
-
-
- -3
- All parameters after this apply to the T3 card.
Parameters for all cards
The following parameters apply to more than one card type.
-
-
- -a
number
- Set Transmitter clock source to
number.
1 |
TxClk from modem |
T1E1, HSSI |
(default) |
2 |
Internal source |
T1E1, HSSI |
3 |
RxClk from modem |
T1E1, HSSIc |
(loop timed) |
4 |
External
connector |
T1E1, HSSIc |
An HSSI card normally takes its Tx clock from the modem connector (it is a
DTE) but can use the PCI bus clock (typically 33 MHz) for loopback and
null modem testing; values 3 and 4 are only applicable to a few rare
CompactPCI/HSSI cards.
A T1E1 card uses an on-board synthesized oscillator if the value is 1 or 2;
it loop times (uses the clock recovered by the receiver
as the transmitter clock) if the value is 3; and it uses a clock from a
header connector on the card if the value is 4.
TxClk source is not applicable to other card types.
-
-
- -b
- Read BIOS ROM. Print the first 256 locations. The BIOS ROM
is not used and not present on some cards.
-
-
- -B
- Write BIOS ROM. Write the first 256 locations with an
address pattern.
-
-
- -c
- Use HDLC's 16-bit Cyclic Redundancy Checksum (CRC).
-
-
- -C
- Use HDLC's 32-bit Cyclic Redundancy Checksum (CRC).
-
-
- -d
- Clear the driver-level debug flag. Non-critical log
messages are suppressed.
-
-
- -D
- Set the driver-level debug flag. The driver generates more
log messages. The driver also generates more log messages if the
interface-level debug flag is set by
ifconfig(8).
-
-
- -e
- Set DTE (Data Terminal Equipment) mode (default). An SSI
card transmitter uses the Tx clock signal from the modem connector and
receives the Data Carrier Detect pin (DCD). DTE/DCE is not applicable to
other card types except a few rare CompactPCI/HSSI cards.
-
-
- -E
- Set DCE (Data Communication Equipment) mode. An SSI card
transmitter uses an on-board synthesized oscillator and drives the Data
Carrier Detect pin (DCD).
-
-
- -f
number
- Set the frequency of the built-in synthesized oscillator to
number bits/second. The nearest frequency that the
synthesizer can generate will be used. Only SSI cards and a few rare
CompactPCI/HSSI cards have synthesizers.
-
-
- -g
- Load gate array microcode from on-board ROM; see also
-U.
-
-
- -G
filename
- Load gate array microcode from
filename; see also -U.
-
-
- -h
- Print help (usage message).
-
-
- -i
- Set interface name (e.g.
“
lmc0
”).
-
-
- -L
number
- Set loopback mode to number.
1 |
none |
default |
2 |
payload |
outward thru
framer |
T1E1. T3 |
3 |
line |
outward thru line
if |
T1E1, T3 |
4 |
other |
inward thru line
if |
T1E1, T3 |
5 |
inward |
inward thru
framer |
T1E1, T3 |
6 |
dual |
inward and
outward |
T1E1, T3 |
16 |
tulip |
inward thru Tulip
chip |
all cards |
17 |
pins |
inward thru
drvrs/rcvrs |
SSI |
18 |
LA/LL |
assert LA/LL modem
pin |
HSSI, SSI |
19 |
LB/RL |
assert LB/RL modem
pin |
HSSI, SSI |
-
-
- -m
- Read Tulip MII registers. Print the 32 16-bit registers in
the Media Independent Interface.
-
-
- -M
addr data
- Write Tulip MII register. Write data
into register addr.
-
-
- -p
- Read Tulip PCI configuration registers. Print the first 16
32-bit registers in the PCI configuration space.
-
-
- -P
addr data
- Write Tulip PCI configuration register. Write
data into register addr.
-
-
- -s
- Read Tulip SROM. Print the 64 16-bit locations. The PCI
subsystem vendor and device IDs are kept here.
-
-
- -S
number
- Write Tulip SROM. Initializes the Tulip SROM to card type
number.
3 |
HSSI |
4 |
T3 |
5 |
SSI |
6 |
T1E1 |
7 |
HSSIc |
8 |
SDSL |
0 |
auto-set from uCode
type |
If number is zero, then the card type is computed from
the gate array microcode version field in the MII PHYID register.
CAUTION: if the SROM is incorrect, the card will be
unusable! This command is so dangerous that
lmcconfig must be edited and recompiled to enable
it.
-
-
- -t
- Read Tulip CSRs. Print the 16 32-bit Control and Status
Registers.
-
-
- -T
addr data
- Write Tulip CSR. Write data into
register addr. Note that addr
is a CSR number (0-15) not a byte offset into CSR space.
-
-
- -u
- Reset event counters to zero. The driver counts events like
packets in and out, errors, discards, etc. The time when the counters are
reset is remembered.
-
-
- -U
- Reset gate array microcode.
-
-
- -v
- Set verbose mode: print more stuff.
-
-
- -V
- Print the card configuration; see the
EXAMPLES section.
-
-
- -x
number
- Set the line control protocol to
number. Line control protocols are listed below
along with the operating systems that implement them and the stacks that
include them.
x |
Protocol |
OpSys |
Stack |
1 |
IPinHDLC |
FNOBL |
D--G-N |
2 |
PPP |
FNOBL |
-SPGYN |
3 |
CiscoHDLC |
FNOBL |
-SPGYN |
4 |
FrameRelay |
F--BL |
-SPG-N |
5 |
EthInHDLC |
F---L |
---G-N |
OpSys: FreeBSD NetBSD OpenBSD BSD/OS Linux.
Stack: Driver SPPP P2P GenHDLC sYncPPP Netgraph.
-
-
- -X
number
- Set the line control protocol stack to
number. Line control protocol stacks are listed
below along with the operating systems that include them and the protocols
that they implement.
X |
Stack |
OpSys |
Protocol |
1 |
Driver |
FNOBL |
I---- |
2 |
SPPP |
FNO-- |
-PCF- |
3 |
P2P |
---B- |
-PCF- |
4 |
GenHDLC |
----L |
IPCFE |
5 |
SyncPPP |
----L |
-PC-- |
6 |
Netgraph |
F---- |
IPCFE |
OpSys: FreeBSD NetBSD OpenBSD BSD/OS Linux.
Protocol: IPinHDLC PPP CiscoHDLC FrmRly EthInHDLC.
-
-
- -y
- Disable SPPP/SyncPPP keep-alive packets,
-
-
- -Y
- Enable SPPP/SyncPPP keep-alive packets.
-
-
- -?
- Print help (usage message).
Parameters for T1E1 cards
The following parameters apply to the T1E1 card type:
-
-
- -a
-Sm y | a |
b Sm
- Stop sending alarm signal (see table below).
-
-
- -A
-Sm y | a |
b Sm
- Start sending alarm signal.
y |
Yellow Alarm |
varies with
framing |
a |
Red Alarm |
unframed all ones; aka
AIS |
b |
Blue Alarm |
unframed all ones |
Red alarm, also known as AIS (Alarm Indication Signal), and Blue alarm are
identical in T1.
-
-
- -B
number
- Send a Bit Oriented Protocol (BOP) message with code
number. BOP codes are six bits.
-
-
- -c
number
- Set cable length to number meters
(default: 10 meters). This is used to set receiver sensitivity and
transmitter line build-out.
-
-
- -d
- Print the status of the on-board T1 DSU/CSU; see the
EXAMPLES section.
-
-
- -e
number
- Set the framing format to number.
9 |
T1-SF/AMI |
27 |
T1-ESF/B8ZS
(default) |
0 |
E1-FAS |
8 |
E1-FAS+CRC |
16 |
E1-FAS+CAS |
24 |
E1-FAS+CRC+CAS |
32 |
E1-NO-framing |
-
-
- -E
number
- Enable 64Kb time slots (TSs) for the T1E1 card. The
number argument is a 32-bit hex number (default
0xFFFFFFFF). The LSB is TS0 and the MSB is TS31. TS0 and TS25-31 are
ignored in T1 mode. TS0 and TS16 are determined by the framing format in
E1 mode.
-
-
- -f
- Read framer registers. Print the 512 8-bit registers in the
framer chip.
-
-
- -F
addr data
- Write framer register. Write data
into register addr.
-
-
- -g
number
- Set receiver gain range to number.
0x24 |
Short |
0 to 20 dB of
equalized gain |
0x2C |
Medium |
0 to 30 dB of
equalized gain |
0x34 |
Long |
0 to 40 dB of
equalized gain |
0x3F |
Extend |
0 to 64 dB of
equalized gain (wide open) |
0xFF |
Auto |
auto-set based on
cable length (default) |
This sets the level at which Loss-Of-Signal is
declared.
-
-
- -i
- Send a CSU loopback deactivate inband
command (T1 only).
-
-
- -I
- Send a CSU loopback activate inband
command (T1 only).
-
-
- -l
- Send a line loopback deactivate BOP
message (T1-ESF only).
-
-
- -L
- Send a line loopback activate BOP message
(T1-ESF only).
-
-
- -p
- Send a payload loopback deactivate BOP
message (T1-ESF only).
-
-
- -P
- Send a payload loopback activate BOP
message (T1-ESF only).
-
-
- -s
- Print the status of the on-board DSU/CSU; see the
EXAMPLES section.
-
-
- -t
- Stop sending test pattern (see table below).
-
-
- -T
number
- Start sending test pattern number.
0 |
unframed
X^11+X^9+1 |
1 |
unframed
X^15+X^14+1 |
2 |
unframed
X^20+X^17+1 |
3 |
unframed
X^23+X^18+1 |
4 |
unframed X^11+X^9+1
with 7ZS |
5 |
unframed X^15+X^14+1
with 7ZS |
6 |
unframed X^20+X^17+1
with 14ZS (QRSS) |
7 |
unframed X^23+X^18+1
with 14ZS |
8 |
framed
X^11+X^9+1 |
9 |
framed
X^15+X^14+1 |
10 |
framed
X^20+X^17+1 |
11 |
framed
X^23+X^18+1 |
12 |
framed X^11+X^9+1
with 7ZS |
13 |
framed X^15+X^14+1
with 7ZS |
14 |
framed X^20+X^17+1
with 14ZS (QRSS) |
15 |
framed X^23+X^18+1
with 14ZS |
-
-
- -u
number
- Set transmit pulse shape to number.
0 |
T1 DSX 0 to 40
meters |
2 |
T1 DSX 40 to 80
meters |
4 |
T1 DSX 80 to 120
meters |
6 |
T1 DSX 120 to 160
meters |
8 |
T1 DSX 160 to 200
meters |
10 |
E1 75-ohm coax
pair |
12 |
E1 120-ohm twisted
pairs |
14 |
T1 CSU 200 to 2000
meters; set LBO |
255 |
auto-set based on
cable length and framing format (default) |
-
-
- -U
number
- Set transmit line build-out to
number.
0 |
0 dB |
FCC option A |
16 |
7.5 dB |
FCC option B |
32 |
15 dB |
FCC option C |
48 |
22.5 dB |
final span |
255 |
auto-set based on
cable length (default) |
This is only applicable if the pulse shape is T1-CSU.
-
-
- -x
- Disable transmitter outputs.
-
-
- -X
- Enable transmitter outputs.
Parameters for T3 cards
The following parameters apply to the T3 card type:
-
-
- -a
-Sm y | a |
b | i Sm
- Stop sending alarm signal (see table below).
-
-
- -A
-Sm y | a |
b | i Sm
- Start sending alarm signal.
y |
Yellow Alarm |
X-bits set to 0 |
a |
Red Alarm |
framed 1010... aka
AIS |
b |
Blue Alarm |
unframed all-ones |
i |
Idle signal |
framed
11001100... |
-
-
- -B
number
- Send a Far End Alarm and Control (FEAC) message with code
number. FEAC codes are six bits.
-
-
- -c
number
- Set cable length to number meters
(default: 10 meters). This is used to set receiver sensitivity and
transmitter line build-out.
-
-
- -d
- Print the status of the on-board T3 DSU; see the
EXAMPLES section.
-
-
- -e
number
- Set the framing format to number.
100 |
T3-C-bit parity |
101 |
T3-M13 format |
-
-
- -f
- Read framer registers. Print the 22 8-bit registers in the
framer chip.
-
-
- -F
addr data
- Write framer register. Write data
into register addr.
-
-
- -l
- Send a line loopback deactivate BOP
message.
-
-
- -L
- Send a line loopback activate BOP
message.
-
-
- -s
- Print the status of the on-board T3 DSU; see the
EXAMPLES section.
-
-
- -S
number
- Set payload scrambler polynominal to
number.
1 |
payload scrambler
disabled |
2 |
X^43+1: DigitalLink
and Kentrox |
3 |
X^20+X^17+1 w/28ZS:
Larscom |
Payload scrambler polynomials are not standardized.
-
-
- -V
number
- Set transmit frequency offset to
number. Some T3 cards can offset the transmitter
frequency from 44.736 MHz. Number is in the range
(0..4095); 2048 is zero offset; step size is about 3 Hz. A
number is written to a Digital-Analog Converter
(DAC) which connects to a Voltage Controlled Crystal Oscillator
(VCXO).
Event Counters
The device driver counts many interesting events such as packets in and out,
errors and discards. The table below lists the event counters and describes
what they count.
-
-
- Rx
bytes
- Bytes received in packets with good ending status.
-
-
- Tx
bytes
- Bytes transmitted in packets with good ending status.
-
-
- Rx
packets
- Packets received with good ending status.
-
-
- Tx
packets
- Packets transmitted with good ending status.
-
-
- Rx
errors
- Packets received with bad ending status.
-
-
- Tx
errors
- Packets transmitted with bad ending status.
-
-
- Rx
drops
- Packets received but discarded by software because the
input queue was full or the link was down.
-
-
- Rx
missed
- Packets that were missed by hardware because the receiver
was enabled but had no DMA descriptors.
-
-
- Tx
drops
- Packets presented for transmission but discarded by
software because the output queue was full or the link was down.
-
-
- Rx fifo
overruns
- Packets that started to arrive, but were aborted because
the card was unable to DMA data to memory fast enough to prevent the
receiver fifo from overflowing. This is reported in the ending status of
DMA descriptors.
-
-
- Rx
overruns
- Rx Fifo overruns reported by the Tulip chip in the Status
CSR. The driver stops the receiver and restarts it to work around a
potential hardware hangup.
-
-
- Tx fifo
underruns
- Packets that started to transmit but were aborted because
the card was unable to DMA data from memory fast enough to prevent the
transmitter fifo from underflowing. This is reported in the ending status
of DMA descriptors.
-
-
- Tx
underruns
- Tx Fifo underruns reported by the Tulip chip in the Status
CSR. The driver increases the transmitter threshold, requiring more bytes
to be in the fifo before the transmitter is started.
-
-
- Rx FDL
pkts
- Packets received on the T1 Facility Data Link.
-
-
- Rx
CRC
- Cyclic Redundancy Checksum errors detected by the CRC-6 in
T1 Extended SuperFrames (ESF) or the CRC-4 in E1 frames.
-
-
- Rx line
code
- Line Coding Violation errors: Alternate Mark Inversion
(AMI) errors for T1-SF, Bipolar 8-Zero Substitution (B8ZS) errors for
T1-ESF, or High Density Bipolar with 3-Zero Substitution (HDB3) errors for
E1 or Bipolar 3-Zero Substitution (B3ZS) errors for T3.
-
-
- Rx
F-bits
- T1 or T3 bit errors in the frame alignment signal.
-
-
- Rx
FEBE
- Far End Block Errors: T1 or T3 bit errors detected by the
device at the far end of the link.
-
-
- Rx
P-parity
- T3 bit errors detected by the hop-by-hop parity
mechanism.
-
-
- Rx
C-parity
- T3 bit errors detected by the end-to-end parity
mechanism.
-
-
- Rx
M-bits
- T3 bit errors in the multi-frame alignment signal.
If driver debug mode is enabled, more event counters are displayed.
-
-
- Rx no
bufs
- Failure to allocate a replacement packet buffer for an
incoming packet. The buffer allocation is retried later.
-
-
- Tx no
descs
- Failure to allocate a DMA descriptor for an outgoing
packet. The descriptor allocation is retried later.
-
-
- Lock
watch
- The watchdog routine conflicted with an IOCTL syscall.
-
-
- Lock
intr
- A CPU tried to enter the interrupt handler while another
CPU was already inside. The second CPU simply walks away.
-
-
- Spare1-4
- Nameless events of interest to the device driver
maintainer.
Transmit Speed
The hardware counts transmit clocks divided by 2048. The software computes
“Tx speed” from this (see
EXAMPLES below). The transmit clock is the
bit rate of the circuit divided by two if the circuit is idle and divided by
four if the circuit is carrying a packet. So an empty circuit reports a Tx
speed equal to its bit rate, and a full circuit reports a Tx speed equal to
half its bit rate.
This “bit rate” does not include circuit-level overhead bits (such
as T1 or T3 frame bits) but does include HDLC stuff bits. An idle T1 circuit
with a raw bit rate of 1544000 and a bit-rate-minus-overhead of 1536000 will
report a “Tx speed” of ((1536000 bitand 4095) plus or minus 4096).
Sometimes it will even get the correct answer of 1536000, and if the link is
fully loaded it will report about 768000 bits/sec.
It is not a perfect bit rate meter (the circuit must be idle), but it is a
useful circuit utilization meter if you know the circuit bit rate and do some
arithmetic. Software recalculates Tx speed once a second; the measurement
period has some jitter.
EXAMPLES
When “
lmc0
” is a T1E1 card,
“
lmcconfig lmc0
” generates the following
output:
Card name: lmc0
Card type: T1E1 (lmc1200)
Link status: Up
Tx Speed: 1536000
Line Prot/Pkg: PPP/P2P
CRC length: 16 bits
Tx Clk src: Modem Rx Clk (loop timed)
Format-Frame/Code: T1-ESF/B8ZS
TimeSlots [31-0]: 0x01FFFFFE
Cable length: 10 meters
Current time: Wed Jan 4 05:35:10 2006
Cntrs reset: Fri Dec 16 19:23:45 2005
Rx bytes: 176308259
Tx bytes: 35194717
Rx packets: 383162
Tx packets: 357792
When “
lmc0
” is a T1E1 card,
“
lmcconfig lmc0 -1 -d
” generates the
following output:
Format-Frame/Code: T1-ESF/B8ZS
TimeSlots [31-0]: 0x01FFFFFE
Tx Clk src: Modem Rx Clk (loop timed)
Tx Speed: 1536000
Tx pulse shape: T1-DSX: 0 to 40 meters
Tx outputs: Enabled
Line impedance: 100 ohms
Max line loss: 20.0 dB
Cur line loss: 0.0 dB
Invert data: No
Line loop: No
Payload loop: No
Framer loop: No
Analog loop: No
Tx AIS: No
Rx AIS: No
Tx BOP RAI: No
Rx BOP RAI: No
Rx LOS analog: No
Rx LOS digital: No
Rx LOF: No
Tx QRS: No
Rx QRS: No
LCV errors: 0
CRC errors: 0
Frame errors: 0
Sev Err Frms: 0
Change of Frm align: 0
Loss of Frame events: 0
SNMP Near-end performance data:
LCV=0 LOS=0 FE=0 CRC=0 AIS=0 SEF=0 OOF=0 RAI=0
ANSI Far-end performance reports:
SEQ=0 CRC=0 SE=0 FE=0 LV=0 SL=0 LB=0
SEQ=1 CRC=0 SE=0 FE=0 LV=0 SL=0 LB=0
SEQ=2 CRC=0 SE=0 FE=0 LV=0 SL=0 LB=0
SEQ=3 CRC=0 SE=0 FE=0 LV=0 SL=0 LB=0
DIAGNOSTICS
Messages indicating the specified interface does not exist, or the user is not
privileged and tried to alter an interface's configuration.
SEE ALSO
ioctl(2),
lmc(4),
ifconfig(8),
ifnet(9)
HISTORY
This is a total rewrite of the program
lmcctl by
Michael Graff,
Rob Braun and
Andrew Stanley-Jones.
AUTHORS
David Boggs
<
boggs@boggs.palo-alto.ca.us>