Systems File Format for BNU
Purpose
Lists and describes remote systems accessible to a local system, using the Basic Networking Utilities (BNU).
Description
BNU Systems files, /etc/uucp/Systems by default, list the remote computers with which users of a local system can communicate using the Basic Networking Utilities (BNU) program. Other files specified in the /etc/uucp/Sysfiles file can be configured and BNU Systems files. Each entry in a Systems file represents a remote system, and users on the local system cannot communicate with a remote system unless that system is listed in the local Systems file. A Systems file must be present on every computer at your site that uses the BNU facility.
Each entry in a Systems file contains:
- Name of the remote system
- Times when users can connect to the remote system
- Type of link (direct line or modem link)
- Speed of transmission over the link
- Information needed to log in to the remote system Note:
- When a remote system not listed in a Systems file attempts to contact the remote system, the BNU program calls the /usr/sbin/uucp/remote.unknown shell procedure.
- Only someone with root user authority can edit a Systems file, which is owned by the uucp program login ID.
Fields in a Systems File
Each entry in a Systems file is a logical line containing fields and optional subfields. These fields appear in the following order:
SystemName Time[;RetryTime] Type[,ConversationProtocol] Class Phone Login
There must be an entry in every field of a line in a Systems file. If a field does not apply to the particular remote system (for example, a hardwired connection would not need a telephone number in the Phone field), use a - (minus sign) as a placeholder.
Lines in a Systems file cannot wrap. In addition, each entry must be on only one line in the file. However, a Systems file can contain blank lines and comment lines. Comment lines begin with a # (pound sign). Blank lines are ignored.
System Name
The SystemName field contains the name of the remote system. You can list an individual remote system in a Systems file more than once. Each additional entry for a system represents an alternate communication path that the BNU program uses in sequential order when trying to establish a connection between the local and the remote system.
Time
The Time field contains a string that indicates the days of the week and the times of day during which users on the local system can communicate with the specified remote system. For example, the MoTuTh0800-1730 string indicates that local users can contact the specified remote system on Mondays, Tuesdays, and Thursdays from 8 a.m. until 5:30 p.m.
The day part of the entry can be a list including any day or days represented by Mo, Tu, We, Th, Fr, Sa, or Su. The day entry may also be Wk if users can contact the remote system on any weekday, or Any if they can use the remote system on any day of the week including Saturday and Sunday.
Enter the time at which users can contact the remote system as a range of times, using the 24-hour clock notation. For example, if users can communicate with the specified remote system only during the morning hours, type a range such as 0800-1200. If users can contact the remote computer at any time of day or night, simply leave the time range blank.
It is also possible to specify times during which users cannot communicate with the remote system by specifying a time range that spans 0000. For example, typing 0800-0600 means that users can contact the specified system at any time except between 6 a.m and 8 a.m. This is useful if a free line is needed at a certain time of day in order to use the remote system for administrative purposes.
If the remote system calls the local system, but users on the local system cannot call the remote system, the time entry may be Never.
Multiple Time fields are separated by a , (comma). For example, Wk1800-0600,Sa,Su means that users can contact the remote system on any weekday at any time except between the hours of 6 p.m. and 6 a.m. and at any time on Saturday and Sunday.
RetryTime Subfield
The RetryTime subfield is an optional subfield that specifies the minimum time in minutes between an unsuccessful attempt to reach the remote system and the retry time when the BNU program again attempts to communicate with that system. This subfield is separated from the rest of the string by a ; (semicolon). For example, Wk1800-0600,Sa,Su;2 indicates that if the first attempt to establish communications fails, BNU should continue to attempt to contact the remote system at no less than 2-minute intervals.
- This subfield, when present, overrides the default retry time of 5 minutes.
- The retry time does not cause BNU to attempt contact with the system once the time has elapsed. It specifies the minimum time BNU must wait before attempting to contact the remote system.
Type
The Type field identifies the type of connection used to communicate with the remote system. The available types of connections are ACU for a telephone connection using a modem, the remote system name (as in the SystemName field) for a hardwired connection, and TCP for a connection using TCP/IP. There must be a corresponding entry for the type of connection in either the /etc/uucp/Devices file or the Devices file specified in the /etc/uucp/Sysfiles file.
Conversation Protocol Subfield
If you use the TCP entry in the Type field, the ConversationProtocol subfield, associated with the caller, specifies a conversation protocol. The default is the g protocol. To use a different subfield, enter a , (comma) and the letter representing one of the other conversation protocols, either t or e. These protocols are faster and more efficient than the g protocol.
Protocol | Explanation |
---|---|
g | This is the default. The g protocol is preferred for modem connections, but it involves a large overhead in running BNU commands because it uses the checksumming and packetizing functions. |
t | The t protocol presumes an error-free channel and
is essentially the g protocol without the checksumming and
packetizing functions. Use the t protocol:
The t protocol cannot be used when the Type field is ACU or when a modem connection is being used. |
e | Use the e protocol:
The e protocol is not reliable for modem connections. Use either the t or e protocol to communicate with a site running the operating system version of the BNU program. Use the e protocol for a site running a non-operating system version of the BNU program. Use the t protocol for sites running the Berkeley version of the UNIX-to-UNIX Copy Program (UUCP). |
Class
The Class field typically specifies the speed at which the specified hardwired or telephone line transmits data. It is generally 300, 1200, 2400, or higher for a hardwired device, and 300, 1200, or 2400 for a telephone connection.
This field can also contain a letter with a speed (for example, C1200, D1200) to differentiate between classes of dialers. For example, some offices have more than one telephone network, one for internal use and one for external communications. In such a case, it is necessary to distinguish which lines should be used for each connection.
If the entry in the Type field is ACU, the Class field in a Systems file is matched against the Class field in a Devices file to find the device to use for connections. For example, if a Systems file entry for system hera is:
hera Any ACU 1200 3-3-5-2 ogin: nuucp ssword: oldoaktree
BNU searches for an entry in the Devices file with a Type of ACU and a Class of 1200 and connects to system hera using the first available device that meets these specifications.
If the device can match any speed, enter the word Any in the Class field. Note that the word Any begins with an uppercase A.
Do not include a transmission rate for a TCP/IP connection. If you do not type a transmission rate in the Class field, use a - (minus sign) as a placeholder.
Phone
For a telephone connection over a modem, the Phone field specifies the telephone number used to reach the remote modem. If this entry represents a hardwired connection, type a - (minus sign) as a placeholder. If this entry represents a telephone connection using a modem, type the remote modem's phone number.
The Phone field for a telephone connection must include all of the following items that apply, in the following order:
- Outside line code
- Long-distance access codes
- Number 1 (one) plus the area code (if the modem is out of the local area)
- Three-digit exchange number
- Four-digit modem number
Entering a complete phone number is the most efficient method of including phone numbers if your site uses only a relatively small number of telephone connections. However, if your site includes a large number of remote connections established using a phone line and a modem, you may prefer to use the /etc/uucp/Dialcodes file to set up dial-code abbreviations.
For example, if your site communicates regularly using modems to other systems at the same remote site, it is more efficient to use a dial-code abbreviation in a Systems file than to type the complete phone number of each remote modem.
The dial-code entry in the /etc/uucp/Dialcodes file defines an alphabetic abbreviation that represents the following portions of the phone number:
- Outside line code
- Long-distance access code
- Number 1 (one) plus the area code (if the modem is out of the local area)
- Three-digit exchange number
In the Phone field in a Systems file entry, type the alphabetic abbreviation followed by the four-digit modem number.
For callers that are actually switches, the Phone field is the token the switch requires to get to the particular computer. The token you enter here is used by the functions specified in the Type field of the /etc/uucp/Dialcodes file.
Login
The Login field specifies login information that the remote system must receive before allowing the calling local system to establish a connection. The Login field is a series of fields and subfields called expect-send characters.
Expect-Send Characters in Login Fields
Enter the required login information as:
[Expect Send] ...
The Expect subfield contains characters that the local system expects to receive from the remote system. Once the local system receives those characters, it sends another string of characters that comprise the Send subfield.
For example, the first Expect subfield generally contains the remote system's login prompt, and the first Send subfield generally contains the remote system login ID. The second Expect subfield contains the remote password prompt, and the second Send subfield contains the remote system password.
The Expect subfield may include subfields entered in the following form:
Expect[-Send-Expect] ...
In this case, the first Expect subfield still represents the string that the local system expects to receive from the remote system. However, if the local system does not receive (or cannot read) the first Expect string, it sends its own string (the Send string within brackets) to the remote system. The local system then expects to receive another Expect string from the remote system.
For example, the Expect string may contain the following characters:
login:--login:
The local system expects to receive the login: string. If the remote system sends that string and the local system receives it correctly, the BNU program goes on to the next field in the expect-send sequence. However, if the local system does not receive the login: string, it sends a null character followed by a new line, and then expects to receive a second login: string from the remote computer.
If the remote system does not send an Expect string to the local system, type "" (two double quotation marks), representing a null string, in the first Expect subfield.
Every time the local system sends a field, it automatically transmits a new line following that Send subfield. To disable this automatic new line, type \c (backslash and the letter c) as the last two characters in the Send string.
Two special strings can be included in the login sequence. The EOT string sends an ASCII EOT (end of transmission) character, and the BREAK string attempts to send an ASCII BREAK character.
Valid Expect-Send Sequences
Following are the valid expect-send strings for the Login field:
String | Explanation |
---|---|
\N | Null character. |
\b | Backspace character. |
\c | At the end of a field, suppress the new line that normally follows the characters in a Send subfield. Otherwise, ignore this string. |
\d | Delay 2 seconds before sending or reading more characters. |
\p | Pause for approximately .25 to .50 seconds. |
\E | Turn on the echo check. |
\e | Turn off the echo check. |
\K | Send a BREAK character. This is the same as entering BREAK. This character can be used to cycle a modem's speed. |
\n | New-line character. |
\r | Carriage return. |
\s | Space character. |
\t | Tab character. |
\\ | Backslash character. |
EOT | EOT character. When you enter this string, the system sends two EOT new-line characters. |
BREAK | BREAK character. This character can be used to cycle the modem speed. |
\ddd | Collapse the octal digits (ddd) into a single character and send that character. |
Using the BREAK Character to Cycle a Modem
A BREAK or \K character is usually sent to cycle the line speed on computers that have a multispeed modem. For example, if you are using a 2400 baud modem to contact a remote system with a multi speed modem that normally answers the phone at 9600 baud, you can begin the chat script for that system with a \K character to cause the remote system modem to cycle down to 2400 baud.
Entries for Use with TCP/IP
If your site is using TCP/IP, include the relevant TCP/IP entries in a Systems file. For a remote system connected to the local system using TCP/IP, the entries in the SystemName, Time, and Login fields are the same as for a remote system using any other type of connection. For the Type field, decide on the appropriate TCP/IP conversation protocol to enter in the TCP ConversationProtocol subfield. Enter TCP followed by a ,(comma) followed by the letter representing the protocol. In the Class and Phone fields, enter a - (minus sign) as a placeholder.
Examples
Setting Up Entries Using Modems
- A standard entry for a telephone connection using a modem looks
like this:
merlin 0830-1730 ACU 1200 123-4567 in:--in: uucp1 word: rainday
This entry allows users to contact system merlin daily between 8:30 a.m. and 5:30 p.m., using an ACU at 1200 bps. The telephone number is 123-4567. The login name on merlin is uucp1 and the password is rainday. The local system expects the phrase in: before it sends the login name. If the local system does not receive the phrase in:, it sends a null character and a new-line character and expects the phrase again.
- To use a 1200 baud modem to contact a system with a multispeed
modem, make an entry similar to the following:
athena Any ACU 1200 123-7654 \K\K in:--in: uucpa word: shield
The \K prefacing the login script instructs the remote modem to cycle down one speed. If the modem has three speeds, 9600, 2400, and 1200, the first \K character causes it to cycle to the 2400 baud setting, and the second \K character causes it to use the 1200 baud setting. (A third \K causes the modem to start the cycle over by returning to 9600 baud.)
Setting Up Entries Using Direct Connections
A standard entry for a hardwired connection between a local and a remote system looks like this:
hera Any hera 1200 - login:--login: uzeus word: thunder
The remote system is hera, which can be called at any time. The entry in the Type field is also hera, indicating a directory connection at 1200 bps (the Class field). There is a placeholder in the Phone field since no telephone number is necessary.
Setting Up Entries Using TCP/IP Connections
venus Any TCP - - in:--in: uzeus word: lamplight
Replace the send and expect characters in the sample login field with the login prompt, login, password prompt, and password appropriate to the remote system for which you are establishing a connection.
Using Dialcode Abbreviations
To use a dialcode abbreviation defined in the /etc/uucp/Dialcodes file, enter the following in a Systems file:
merlin Any ACU 1200 local8784 in:--in: uucp1 word: magic
This assumes that an entry for the dial code local exists in the Dialcodes file. For example, the following entry:
local 9=445
in the Dialcodes file would cause BNU to expand the telephone number as 9=4458784.
Setting Up Entries for Both Local and Remote Systems
For a direct connection between two systems, a Systems file on system zeus contains the following entry for the remote system hera:
hera Any hera 1200 - "" \r\d\r\d\r in:--in: uzeus word: thunder
A Systems file on system hera contains the following entry for system zeus:
zeus Any zeus 1200 - "" \r\d\r\d\r in:--in: uhera word: lostleaf
Files
Item | Description |
---|---|
/etc/uucp directory | Contains all the configuration files for BNU, including a Systems file. |
/etc/uucp/Sysfiles file | Specifies possible alternative foles for the /etc/uucp/Systems file. |
/etc/uucp/Devices file | Contains information about available devices. |
/etc/uucp/Dialcodes file | Contains dialing code abbreviations. |
/etc/uucp/Permissions file | Describes access permissions for remote systems. |
/usr/sbin/uucp/remote.unknown file | Records contacts from unknown systems. |