Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ udp(4spp) — UMIPS/BSD System Programmer's Package 2.1

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

printf(3spp)

UDP(4spp)

NAME

udp − UDP/IP, ARP protocols on top of CMC ENP-10 ethernet controller

SYNOPSIS

{
"udp",_cmcinit,_cmcopen,
_cmcstrategy,_cmcclose,_cmcioctl,
DTTYPE_CHAR,
DTFS_NONE,"UDP/IP on CMC ethernet"
}

DESCRIPTION

Udp provides UDP/IP datagram service via an ENP-10 ethernet controller.  Udp also provides ARP internet address resolution, but does not support internet routing or ip packet fragments.  Udp packets can be no larger than the ethernet maximum transfer unit, 1500 bytes. 

Udp normally formats packets for compatability with 4.2 BSD UNIX implementations.  4.3 BSD systems will also accept these packets.  Full UDP functionality with 4.3 BSD systems may be obtained by setting the prom monitor environment variable $UDPCKSUM non-zero. 

Udp is currently only used internally by the bfs(4spp) boot file server protocol, it is not configured for external use.

REGISTERS

Udp supports two ethernet controllers with control registers in A24 supervisor address space.  Controller 0 has its control registers based at 0xde0000, controller 1 has its control registers based at 0xf00000.  The user may access cmc ethernet controllers with control registers based differently than these by specifying the controller number as the negative of the control register base. 

IOCTLS

Udp supports the following ioctl’s:

ioctl(fd, NIOCBIND, port_num)

Bind this UDP connection to UDP port port_num.

ioctl(fd, FIOCSCAN, 0)

Scan the cmc ethernet controller for received packets and transfer any found to the socket buffer. 

DIAGNOSTICS

The following diagnostics are printed by the udp driver:

bad size in iob for cmc
The constant IOB_INODE is incorrectly defined, seek out an SPP guru.

cmc bad controller number
A controller number other than 0 or 1 was specified

$netaddr not set or incorrect
The prom monitor environment variable $netaddr was not set or is not in Internet standard "." format

already bound
An attempt was made to bind a connection that has already been bound to a UDP port

out of socket buffers
Too many simultaneous UDP connections

socket not bound
An attempt was made to do i/o over a UDP connection before the descriptor was bound to a UDP port with the NIOCBIND ioctl

socket screw-up
Internal error in the socket allocation code

out of mbufs
No message buffer was available to copy a packet to for transmission

cmc bad function
Internal error detected in cmc driver

no cmc controller at 0x%x
No cmc controller was found at address shown; controller either not in backplane, malfunctioning, or has incorrect switch settings

cmc detected error on reset
Cmc controller detected error during power-up tests

timed out waiting for cmc to reset
Cmc controller never indicated it was ready

cmc application firmware failed
Cmc application firmware never indicated it was ready

cmc_output -- no space in mbuf

NAME

showchar − print character in visible form

SYNOPSIS

showchar(c)
char c;

DESCRIPTION

Showchar prints its argument on the console in a visible manner.  All printable ASCII characters are printed as is, all other characters are printed as C backslash escapes. 

SEE ALSO

printf(3spp) on pc, contents of the cause and status registers.  The R2000 bad virtual address register and the R2300 syste header

cmc: recvd bad packet, stat %R
Cmc received garbled packet

ARP couldn’t resolve network address
Address resolution protocol failed to convert Internet address to physical ethernet address

duplicate IP address!! set from ethernet address: %x
Two nodes on network have same internet address

The following error messages are only printed if the environment variable $VERBOSE is non-zero. 

ip hdr len error
Received packet shorter than length of an ip header

ip cksum error
IP checksum failed

ip len error
Con

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