home *** CD-ROM | disk | FTP | other *** search
-
- ISPA Version 1.8, a Packet-Driver for ISDN-API 1.1.
-
- Herbert Hanewinkel, April 1994
-
- (last update for Version 1.8.2: 6.Jun.1994)
-
- ISPA is an ethernet-type (class=1) packet-driver for IP-Routing or
- remote Ethernet bridging over ISDN. ISPA communicates with the ISDN card
- using the ISDN API 1.1 specification (a standard defined by german ISDN card
- manufacterers and the german Telekom). For this reason ISPA is completely
- hardware independent and has succesfully been tested with many active or
- passive ISDN cards.
-
- ISPA 1.8 supports a large set of protocols for communication with other
- vendors ISDN routers or servers. Among these protocols are: Frame-Relay,
- PPP, SLIP, Cisco-HDLC.
- ISPA was developed for use with PCROUTE as a very cheap Ethernet-ISDN Router.
- However, it has been succesfully tested with a wide range of TCP/IP programs
- e.g. WATTCP based IP programs, PC-NFS, NCSA-Telnet/ftp, gopher, popmail,
- PCTCP 2.2 or Trumpet WINSOCK.
-
- ISPA was written for use with ISDN BRI PC cards. I myself have used ISPA
- only with the Teles.S0 card, one of the cheapest ISDN cards in Germany.
- But I got responses from users of ISPA that it will work with the
- following other ISDN cards:
- AVM A1, AVM B1, Diehl S-COM, Diehl SoTec, NICCY 1000 PC, Solis ? 1.2
- (See the *.comment files for details).
-
- The current version of ISPA supports one active connection at a time using
- one or two (for loadsharing) B-channels. ISPA can be loaded more than once,
- if simultanous connections to different sites are desired.
- Loadsharing can be configured as static or dynamic (bandwith on demand).
-
-
- To load ISPA 1.8 run ispa.exe with the following arguments:
- (Parameters in [] are optional)
-
- ispa [options] PacketInterrupt ISDNnumber|config-file [ISDNnumber2]
-
- "PacketInterrupt" defines the software interrupt for the Packet
- Driver application. The value has to be in the range from 0x60 to 0x80.
-
- "ISDNnumber" defines the ISDN-number you wish to connect to or want
- to receive connections from.
- More than one number can be specified using a configuration file
- (see below).
- Starting digits, which should not be used on an outgoing call, can
- be marked by a decimal point.
- "ISDNnumber2" specifies an alternative ISDN-number for the second
- B-channel, when used with loadsharing.
-
- An SPV connection (available only in German ISDN, 1TR6) is set up
- by appending an "s" to the end of the ISDN-number. An incoming SPV
- request is accepted only if the "s" is specified.
-
- Subaddresses (available only in Euro ISDN, E-DSS1) can be appeneded
- to a number separated by a /. Only digits are supported in a
- subaddress. The total length is limited to 16 characters.
-
-
- If connections to more than one ISDN peer are desired, a configuration
- file can be used in place of the direct ISDN number specification on
- the command line. The configuration file has two functionalities:
-
- - it acts as a translation table for IP routing on outgoing calls.
-
- - it can be used for calling line identification an incoming calls.
-
- The name of a configuration file has to start with a non numeric
- character and the file has to be in the following format:
-
- ip-address ISDNnumber [ISDNnumber2] [options] [# comment]
-
- "ip-address" defines the IP-address of the peer.
- "ISDNnumber" defines the ISDN-number of the peer.
- "ISDNnumber2" defines a second ISDN-number, when used with loadsharing.
- "options" define the protocol, timeout, ... for this link.
-
- If the same IP-address appears more than once in the configuration
- file, ISPA will try all corresponding ISDN numbers until a connection
- could be established.
-
- If the first entry in the configuration file selects an ethernet
- bridging protocol, the use of the configuration file as a translation
- is disabled. All outgoing calls will be set up to the first entry.
-
- If the option -v (see below) is selected on the command line, outgoing
- routing connections are set up only, if a matching entry is found in
- the configuration file.
- If the option -v (see below) is selected on the command line, incoming
- connections will be accepted only from ISDN-numbers specifed in the
- configuration file or on the command line.
-
- Without the -v option, for incoming connections from unknown numbers
- the options given on the command line will be used.
-
- Up to 32 translation entries can be specified in the configuration file.
-
-
- ISPA 1.8 options:
-
- -c n
- selects the ISDN controller (card)
- n = 0, controller 0
- n = 1, controller 1
- default: 0
-
- -i vector
- specifies the software interrupt for communication with the ISDN-API
- software.
- default: 0xf1
-
- -o
- if ISPA's automatic selection of the video-RAM fails, this option can
- be used to force screen output to the monochrome video-RAM at B000:0.
-
- -e EAZ|index
- German ISDN (1TR6) allows to specify 1 digit subaddress(EAZ).
- This option defines the EAZ used by ISPA to listen for incoming
- calls. EAZ's range from 1 to 9. "subaddress" 0 means accept all EAZ's.
-
- For EuroISDN this option defines an index in a table of local addresses
- defined during installiation of your API 1.1 software.
- default: 2
-
- -z days
- forces an automatic restart of the PC after "days"-days, as soon as the
- system becomes idle. "days" should be in the range from 1 to 2761.
- This option also enables automatic restart of the PC if ISPA receives
- an error from the ISDN API 1.1 software.
- default: disabled
-
- -q
- suppresses any message output on the screen.
-
- -r lop-ip,my-ip[,int]
- remote logging on a unix host with a syslogd. Using ISPA with IP-router
- software this option can be used to log all connection related
- messages on a unix host with a berkeley syslogd. "log-ip" defines
- the IP address of the unix host. "my-ip" defines the source IP
- address of syslog messages sent by ISPA.
- If "int" is specified and a connection is up, a syslog message will be
- sent every "int"-seconds. "int" should be a multiple of 8, other it is
- rounded up to the next multiple of up.
-
- -w
- Display activity, state and charge information in the upper right
- corner of the screen.
-
- /_0\_0A_nnn
- | || ||| |
- | || ||| accumulated charge units
- | || ||State of channel 2
- | || |State of channel 1
- | || incoming data rate in kBytes/sec, averaged over 8 seconds
- | |incoming data, rotates for every received packet
- | outgoing datarate in kBytes/sec, averaged over 8 seconds
- outgoing data, rotates for every transmitted packet
-
- Status: _ = free, D = D-channel up, C = B-channel requested,
- B = B-channel up, A = connection set up,
- (additional for PPP:
- L = lcp configuration requested,
- I = lcp up, ipcp configuration requested,
- P = PPP connection up.)
-
- -v
- Calling line identification. Incoming calls will be are accepted only,
- if the number is specified on the command line or in the configuration
- file. Numbers are verified without the last digit (the EAZ in German
- ISDN. This will change in a future release)
- default: no check
-
- The following options can be specified on the command line and for every
- ISDN-number in the configuration file:
-
- -t max-idle[,min-idle]
- an idle connection will be disconnected after "max-idle"-seconds.
- Setting "max-idle" to zero disables shutdown of idle connections.
- Specifing a "min-idle" value lower than "max-idle", an outgoing
- (charged) connection will be hold at least "min-idle" seconds, it
- will be closed down shortly before the next charge unit is execeeded
- or max-idle expires. The time of one charge unit is calculated from
- the first two units received.
- default: max-idle: 300 seconds, min-idle: disabled
-
- -m high[,low]
- static or dynamic loadsharing over both s0-channels.
- "high" = 0, static loadsharing, the caller will always try to activate
- both channels.
- "high" <> 0, dynamic loadsharing, if the load is higher than
- 6000 Bytes/sec for "high"-seconds, the system will activate the second
- channel. After "down"-seconds of a load lower than 6000 Bytes/sec the
- second channel will be closed down. If "down" is not specified, the
- "max-idle" Timeout will be used (see option -t). A -m option has to be
- specified on both ends of a link. However, only the caller of the
- first channel will activate the second channel.
- The values for "high" and "low" should be multiples of 8, otherwise
- they will be rounded up to next multiple of 8.
-
- To set up loadsharing to different target ISDN numbers, a second
- ISDN number can be specified on the command line or in the
- configuration file.
-
- -d mode
- mode = 0, outgoing calls are disabled.
- mode = 1, incoming and outgoing calls are allowed.
- mode = 2, an outgoing call is dropped after sending the connect
- request and the system waits for a call back.
- mode = 3, incoming calls are rejected but trigger an outgoing call
- to the received ISDN-number.
- mode = 4, incoming calls are disabled.
- default: 1, incoming and outgoing calls
-
- -j low[,high]
- defines an ethernet type range for ethernet bridging. Ethernet packets
- outside the selected range are discarded. This filter applies to
- all bridging protocols.
- "low" defines the lower boundary. default: 0
- "high" defines the upper boundary. default: 0xffff
-
- -x
- (specific to German ISDN)
- the ISDN service "X.21 services" will be used in place of the default
- service "data transmission 64kBit/s".
- default: "data transmission 64kBit/s"
-
- -a asi
- (specific to German ISDN, however the CAPI should map the values
- into corresponding Euro ISDN codes)
- additional service indicator. Some ISDN equipment (e.g. Elink TA)
- use this field to selcted a predefined mode/protocol of operation.
- However there is no standard for this field.
- ISPA sets "asi" to 0 with the following exceptions:
-
- asi = 197: -s 9, -y 9, -b 9
- asi = 199: -s 19, -y 19, -b 19
- asi = 64: -s 38, -y 38
- asi = 128: -b 38
-
- The option allows to override the default value with your own
- value. (To override the protocol specific default, the value has
- to be positioned after the protocol option on the line.)
-
- ISPA supported protocols:
- (only one protocol can used for one peer)
-
- -f dlci[i]
- Frame-relay protocol. "dlci" specifies the data link connection
- identifier. Appending an "i" to the dlci switches encapsulation
- from "early" style (used by Cisco) to IETF format as described in RFC
- 1294 (but without fragmentation support, a data size of 1500 is
- assumed).
-
- -p
- Point-to-Point protocol using default ppp-parameters.
- No configuration options are supported in the current implementation.
- The software sends no options and any proposed options are rejected.
- Of the possible upper layer protocols, only IP is supported at this
- time.
-
- -h type
- other HDLC based protocols
- type = 0, IP-Data, no header
- type = 1, IP-Data, unnumbered information frame (UI) header
- type = 2, Cisco style HDLC header
- type = 3, Ethernet bridging
- type = 4, remote test loop, incoming data is echoed.
-
- -l type
- X.75 (LAPB) based protocols
- type = 0, IP-Data, no header,
- type = 1, multi-X.75 (called LAPB encapsulation an ACC routers or
- multi-LAPB encapsulation on Cisco routers)
- type = 2, SLIP
- type = 3, Ethernet bridging
- type = 4, remote test loop, incoming data is echoed.
- type = 6, Ethernet bridging using SLIP encapsulation (SLX)
-
- -s baudrate
- SLIP protocol with V.110 bitrate adjustment. "baudrate" defines the
- desired transfer rate.
- baudrate = 9, 9600 baud, async, 8 bit, no parity, 1 stop bit
- baudrate = 19, 19200 baud, async, 8 bit, no parity, 1 stop bit
- baudrate = 38, 38400 baud, async, 8 bit, no parity, 1 stop bit
-
- -y baudrate
- SLX (Ethernet bridging using SLIP encapsulation) protocol with
- V.110 bitrate adjustment. "baudrate" defines the desired transfer rate.
- baudrate = 9, 9600 baud, async, 8 bit, no parity, 1 stop bit
- baudrate = 19, 19200 baud, async, 8 bit, no parity, 1 stop bit
- baudrate = 38, 38400 baud, async, 8 bit, no parity, 1 stop bit
-
- default: -h0
-
- ISPA can be unloaded using TERMIN.EXE from the Clarkson/Crynwr Packet Driver
- collection.
-
- ---------------------------------
- Restrictions:
- 1. Option parsing is far away from being perfect. It is possible to specify
- conflicting options. Don't specify more than one protocol option per line
- (command line or configuration file line).
- 2. In the current version loadsharing in not supported for SLIP, SLX.
- Unpredictable results will occur.
- 3. In the current version loadsharing in not supported for PPP, if an
- independent setup of both lines is required. The connection will be lost.
-
- ---------------------------------
- Ethernet characteristics
-
- ISPA works as an ethernet type Packet Driver. The ethernet address of
- ISPA is defined as: 00-00-0xFB-0xAA-00-<pkt-int>. (Thanks to RzK, Asbach,
- Germany for using numbers from their official 00-00-0xFB range.)
- "pkt-int" is replaced by the software interrupt number in the range 0x60 to
- 0x80 used for accessing ISPA.
-
- With PKTADDR.EXE from the Clarkson/Crynwr Packet Driver collection the
- ethernet address can be changed to any other desired value.
-
- Changing the ethernet address may be required when connecting two ISPA's with
- direct applications using an ethernet bridging protocol. It is not neccessary
- when ISPA is used with PCBRIDGE.
-
- ---------------------------------
- Error codes:
-
- The error codes from ISPA are the same as defined in the ISDN-API 1.1
- specification:
-
- 2001 incorrect controller
- 2002 incorrect PLCI
- 2003 incorrect NCCI
- 2004 incorrect type
-
- 3101 B-channel incorrectly coded
- 3102 Info-mask incorrectly coded
- 3103 Serviced EAZ-mask incorrectly coded
- 3104 Serviced SI mask incorrectly coded
- 3105 B-channel protocol, level 2 incorrect
- 3106 DLPD incorrect
- 3107 B-channel protocol, level 3 incorrect
- 3108 NCPD incorrect
- 3109 NCPI incorrect
- 310A Flags incorrectly coded
-
- 3201 Controller error
- 3202 Conflict between registrations, check SI mask and EAZ
- 3203 Function not supported
- 3204 PLCI not active
- 3205 NCCI not active
- 3206 B-channel protocol, level 2 not supported
- 3207 Changeover of B-channel protocol, level 2 in this state not possible
- 3208 B-channel protocol, level 3 not supported
- 3209 Changeover of B-channel protocol, level 3 in this state not possible
- 320A Unsupported parameters in DLPD
- 320B Unsupported parameters in NCPD
- 320C Unsupported parameters in NCPI
- 320D data length not supported
-
- 3301 Error on setup of D-channel, level 1
- 3302 Error on setup of D-channel, level 2
- 3303 Error on setup of B-channel, level 1
- 3304 Error on setup of B-channel, level 2
- 3305 Abort D-channel, level 1
- 3306 Abort D-channel, level 2
- 3307 Abort D-channel, level 3
- 3308 Abort B-channel, level 1
- 3309 Abort B-channel, level 2
- 330A Abort B-channel, level 3
- 330B B-channel connection, level 2 reestablished
- 330C B-channel connection, level 3 reestablished
-
- 34xx Abort by network, low order 8 Bit contain the cause value according
- 1TR6, the MSB is used to signal an error, but is not set by all
- ISDN-API 1.1 implementations.
-
- Cause-table according to 1TR6 (don't know what you will get with EuroISDN)
-
- 00 normale Ausloesung (0 = lokal, 3400 = durch die Gegenstelle)
- normal termination (0 = local, 3400 = from the network)
-
- 83 Dienst ist nicht verfuegbar oder nicht beantragt
- Service not available
-
- 8A kein B-Kanal auf lokaler Anschlussleitung verfuegbar
- all B-channels are busy on the local line
-
- 91 angefordertes Dienstmerkmal wurde abgelehnt, weil eigener
- oder ferner Anschluss keine Berechtigung besitzt
- ??
-
- a0 abgehende Rufe wegen eingerichteter Sperre nicht moeglich
- outgoing calls blocked
-
- a2 Verbindung nicht moeglich wegen negativen GBG-Vergleich
- Closed-user-group refused connection
-
- a3 angegebene GBG (geschlossene Benutzergruppe) unbekannt
- specified closed-user-group unknown
-
- a5 Kommunikationsbeziehung als SPV nicht freigegeben
- SPV not enabled for this number
-
- b5 Verbindung nicht aufbaubar wegen falscher Zieladresse,
- Dienste oder Dienstmerkmale
- ??
-
- b8 Rufnummer des gerufenen Teilnehmers hat sich geaendert
- number of called station has changed
-
- b9 ferne DEE nicht betriebsbereit
- remote station not ready
-
- ba Ruf wurde von keiner Datenstation beantwortet
- no station responding
-
- bb gerufene Datenstation besetzt
- called station busy
-
- bb Gerufener Teilnehmer hat Sperre gegen ankommende Rufe oder
- angeforderter Dienst vom gerufenen Teilnehmer nicht beantragt
- ??
-
- be Ruf wurde von gerufener Datenstation abgewiesen
- Call was rejected by called station
-
- da Verbindung von ferner Datenstation ausgeloest oder abgelehnt
- Connection was terminated or rejected by called station
-
- f0 Im aktuellen Verbindundsstand keine Dienstmerkmalanforderung moeglich
- ??
-
- f1 Ausloesung wegen Fehler bei der gerufenen Station
- Disconneted due to an error at the remote station
-
- ---------------------------------
- Examples:
-
- 1. configuration for a dial-in server with calling line identification and
- disabled outgoing calls. Idle connection will be closed after 60 seconds.
-
- ispa -v -d0 -e4 -t60 0x60 0815712345
- pcroute
-
- 2. same as 1, but with remote loging in the syslog file of 141.61.1.32.
- The syslog messages will appear as coming from 141.61.2.3.
-
- ispa -e4 -t60 -r141.61.1.32,141.61.2.3 0x60 0815712345
- pcroute
-
- 3. dynamic Loadsharing. The second link will be established after 10 seconds
- of a load higher than 6000 Bytes/sec and will be closed after 20 seconds
- of a load lower than 6000 Bytes/sec.
-
- ispa -h2 -e4 -m10,20 -t90 0x60 0815712345
- pcroute
-
- 4. set up of ISPA with configuration file. For incoming call from unkown
- numbers the -h2 protocol will be used. If outgoing packets, no matching
- entry is found in the configuration file, the first entry will be used.
-
- ispa -e4 -w -h2 -t60 0x60 ip2isdn
-
- ip2isdn(ISPA configuration file):
- 2.0.0.1 089.89512301 -f100i -t200,30 -x
- 2.0.0.2 089.89512301 089.89512303 -p -t20,5 -x -m8,30
- 2.0.0.3 0815711111 -d0 -h0 -t40
- 2.0.0.5 04518789123 -p -t60,10
-
- An example of a wattcp.cfg for the first entry of the configuration
- file:
- my_ip=2.0.0.4
- netmask=255.255.255.0 # netmask
- nameserver=141.61.1.32 # nameserver
- nameserver=141.61.1.23 # alt nameserver
- gateway=2.0.0.2 # gateway
- domainslist="biochem.mpg.de"
-
- ---------------------------------
-
- The latest version of ISPA is available on ftp.biochem.mpg.de.
-
- Please mail comments, questions, problems to heha@biochem.mpg.de.
- ---------------------------------
- Warranty:
- There is NO WARRANTY, expressed or implied with this software.
- Use at your own risk.
-
- ---------------------------------
- Copyright:
- ISPA 1.8 may be used freely, however it is copyrighted and it is not in the
- public domain. It may not be distributed for profit or included in any CD-ROM
- or diskette software collection without permission. This applies in particular
- to commercial PD libraries.
-
- ---------------------------------
- Appendix A
- Dataformats (without bit- or byte-stuffing):
-
- -h0 : 1 n 2 1 Byte
- -------------------------------------------------------------------
- | flag | IP-Data | CRC-CCITT | flag |
- -------------------------------------------------------------------
-
- -h1 : 1 1 1 n 2 1 Byte
- -------------------------------------------------------------------
- | flag | address | control | IP-Data | CRC-CCITT | flag |
- -------------------------------------------------------------------
-
- -h2 : 1 4 n 2 1 Byte
- -------------------------------------------------------------------
- | flag | Cisco-Header | IP-Data | CRC-CCITT | flag |
- -------------------------------------------------------------------
-
- -h3 : 1 6 6 2 n 2 1 Byte
- -------------------------------------------------------------------
- | flag | Dst-Addr | Src-Addr | type | Data | CRC-CCITT | flag |
- -------------------------------------------------------------------
-
- -h4 : same as -h3, but only type = 0x0800 to 0x0806
-
-
- -l0 : 1 2 n 2 1 Byte
- -------------------------------------------------------------------
- | flag | X.75 | IP-Data |CRC-CCITT | flag |
- -------------------------------------------------------------------
-
- -l1 : 1 2 n 2 1 Byte
- -------------------------------------------------------------------
- | flag | type | Data | CRC-CCITT | flag |
- -------------------------------------------------------------------
-
- -l3 : 1 2 6 6 2 n 2 1 Byte
- -------------------------------------------------------------------
- | flag | X.75 |Dst-Addr|Src-Addr| type | Data | CRC-CCITT | flag |
- -------------------------------------------------------------------
-
- -l4 : same as -l3, but only type = 0x0800 to 0x0806
-
- SLIP : 1 n 1 Byte
- -------------------------------------------------------------------
- | 0xC0 | IP-Data | 0xC0 |
- -------------------------------------------------------------------
- Byte-stuffing: 0xC0 -> 0xDB 0xDC, 0xDB -> 0xDB 0xDD
-
- SLX : 1 6 6 2 1 Byte
- -------------------------------------------------------------------
- | 0xC0 |Dst-Addr|Src-Addr| type | Data | 0xC0 |
- -------------------------------------------------------------------
- Byte-stuffing: 0xC0 -> 0xDB 0xDC, 0xDB -> 0xDB 0xDD
-
- ---------------------------------
- Glossary:
-
- 1TR6 the name of the signalling system in German ISDN
-
- SPV semi permanent circuit. A B-channel connection to a predefined
- station. The customer has to pay for such a connection a fixed charge
- per month independent of is real use. The B-channel can be disconnected
- at any time and used for normal dial connection to other sites as well.
-
-