Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ net(4) — GL2 W2.4

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

netload(1M)

NET(4)  —  Silicon Graphics

NAME

net − EXOS 8010 TCP/IP protocol module

SYNOPSIS

#include <sys/exosopt.h>

DESCRIPTION

net is an 8086-family object file containing the TCP/IP protocol module for Excelan’s EXOS 8010 package.  In a normal UNIX system installation, the netload(1M) utility downloads code and data from this file to an EXOS Ethernet front-end processor board. 

The file format is similar to Version 7 a.out format for the 8086 or PDP-11 families.  It begins with a 16-byte header:

struct exec86v7 {
unsigned short x7_magic;/* should be 0411 (octal) */
unsigned short x7_textsiz;/* size of code */
unsigned short x7_datasiz;/* size of initialized data */
unsigned short x7_bsssiz;/* size of uninitialized data */
unsigned short x7_symsiz;/* size of symbol table */
unsigned short x7_entry;/* not used */
unsigned short x7_pad1;/* not used */
unsigned short x7_reloc;/* not used */
};

Values in the above fields are (oddly enough) in 68000-family order:  high-order byte first, then low-order byte.  For portable access, use this macro:

#define EXECSHORT(x)\
((((*(char *)x)<<8)&0xFF00) | (*((char *)x+1)&0xFF))

For example,

textsize = EXECSHORT(&exec.x7_textsiz);

The file has four sections:  the header described above, program text, initialized data, and a symbol table.  The size of each section is given by values in the header. 

Currently (as of 8010 release 3.2) text should be downloaded into EXOS RAM starting at the highest possible paragraph-aligned address.  This can be calculated by subtracting the code size (in the object file header) from the highest available EXOS RAM address (as returned in the EXOS configuration reply message).  Execution should begin at the same address, adjusted so that its offset value is 0. 

OPTIONS

A structure defining initial options for the protocol module code is imbedded at the beginning of the net file’s initialized data segment.  This structure’s format is defined in sys/exosopt.h, shown below as of the 3.2 release (beware of possible changes is future releases):

#define XOBIN(1<<0) /* TELNET binary transmission option */
#define XOECHO(1<<1) /* TELNET echo option */
#define XOSGA(1<<3) /* TELNET suppress go-ahead option */

struct exosopt {
char xo_doarp;/* 1 = use ARP protocol */
char xo_docksum;/* 1 = do TCP/IP checksums */
char xo_useaddr;/* 1 = use Ethernet address below */
char xo_ntsconn;/* up to 16 TELNET connections, 0 disables */
char xo_iaddr[4];/* Internet address, in network order */
char xo_eaddr[6];/* Ethernet address, in network order */
char xo_tsoffer;/* bit map of TELNET options to offer */
char xo_tspermit;/* bit map of TELNET options to permit */
char xo_dolink;/* 1 = enable host access to link mode */
char xo_npending;/* number of outstanding host requests */
char xo_nxmbufs;/* number of extended memory buffers */
char xo_xptemp;/* priority level for PRINTF messages */
char xo_bufchain;/* 1 = use NX 5.0 buffer-chaining */
};

If ARP is enabled, then xo_iaddr must be specified.  xo_eaddr may be specified; otherwise, the board’s given address is used. 

If ARP is disabled, a Class A Internet address is derived from the Ethernet address.  The network number is taken from xo_iaddr[0]; if this value is 0xFF, the default value 89 is used.  In order to emulate other vendor’s boards, the Ethernet address may also be specified. 

If xo_npending is 0, then the TCP/IP configuration code decides how many outstanding host requests to support.  Currently, this is 66. 

If xo_nxmbufs is 0, then the TCP/IP configuration code decides how many extended memory buffers to use. 

xo_xptemp determines which printf messages are sent to the host system.  For details, see <exos/xp.h>. 

As currently released, the net file is configured with the following default option values:

struct exosopt exosopt = {
0,/* don’t use ARP protocol */
1,/* do checksums */
0,/* use given Ethernet address */
8,/* support 8 TELNET connections */
{89,0,0,0},/* default Class A network */
{0,0,0,0,0,0},
XOECHO,/* offer to echo */
XOBIN | XOECHO | XOSGA,/* agree to binary, echo, and SGA */
0,/* disable host link mode access */
0,/* default number of pending host requests */
0,/* default number of extended memory buffers */
XP_HOT,/* print only serious error messages */
1/* use buffer chaining, if NX >= 5.0 */
};

These values take effect when the protocol module is downloaded unless modified before the code is started.  Note that the EXOS 8010 netload(1M) program does modify the option vector and establishes its own set of default values. 

FILES

/etc/net/netdefault location for this file in UNIX system

SEE ALSO

netload(1M)

Version 2.4  —  May 08, 1986

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026