4.2BSD/usr/man/man4/pup.4f

.TH PUP 4F "7 July 1983
.UC 4
.SH NAME
pup \- Xerox PUP-I protocol family
.SH SYNOPSIS
.B #include <sys/types.h>
.br
.B #include <netpup/pup.h>
.SH DESCRIPTION
.de _d
.if t .ta .6i 2.1i 2.6i
.\" 2.94 went to 2.6, 3.64 to 3.30
.if n .ta .84i 2.6i 3.30i
..
.de _f
.if t .ta .5i 1.25i 2.5i
.\" 3.5i went to 3.8i
.if n .ta .7i 1.75i 3.8i
..
The PUP-I protocol family is a collection of protocols
layered atop the PUP Level-0 packet format, and
utilizing the PUP Internet address format.
The PUP family is currently supported only by a raw interface.
.SH ADDRESSING
PUP addresses are composed of network, host, and port
portions.
The include file
.RI < netpup/pup.h >
defines this address as,
.PP
.nf
._f
struct	pupport {
	u_char	pup_net;
	u_char	pup_host;
	u_char	pup_socket[4];
};
.fi
.PP
Sockets bound to the PUP protocol family utilize
the following addressing structure,
.PP
.nf
._f
struct sockaddr_pup {
	short	spup_family;
	short	spup_zero1;
	u_char	spup_net;
	u_char	spup_host;
	u_char	spup_sock[4];
	char	spup_zero2[4];
};
.fi
.SH HEADERS
The current PUP support provides only raw access to the
3Mb/s Ethernet.  Packets sent through this interface
must have space for the following packet header present at the
front of the message,
.sp 1
.nf
._f
struct pup_header {
	u_short	pup_length;
	u_char	pup_tcontrol;		/* transport control */
	u_char	pup_type;		/* protocol type */
	u_long	pup_id;			/* used by protocols */
	u_char	pup_dnet;		/* destination */
	u_char	pup_dhost;
	u_char	pup_dsock[4];
	u_char	pup_snet;		/* source */
	u_char	pup_shost;
	u_char	pup_ssock[4];
};
.fi
.PP
The sender should fill in the 
.IR pup_tcontrol ,
.IR pup_type ,
and
.IR pup_id
fields.  The remaining fields are filled in by the system.
The system checks the message to insure its size is valid
and, calulates a checksum for the message.  If no checksum
should be calculated, the checksum field (the last 16-bit
word in the message) should be set to PUP_NOCKSUM.
.PP
The
.I pup_tcontrol
field is restricted to be 0 or PUP_TRACE; PUP_TRACE
indicates packet tracing should be performed.  The
.I pup_type
field may not be 0.
.PP
On input, the entire packet, including header, is provided the user.
No checksum validation is performed.
.SH SEE ALSO
intro(4N), pup(4P), en(4)
.SH BUGS
The only interface which currently supports use of pup's 
is the Xerox 3 Mb/s
.IR en (4)
interface.
.PP
With the release of the second generation, PUP-II, protocols
it is not clear what future PUP-I has.  Consequently, there
has been little motivation to provide extensive kernel support.