pup(4f) Unsupported pup(4f)Namepup - Xerox PUP-I protocol family
Syntax
#include <sys/types.h>
#include <netpup/pup.h>
Description
The PUP-I protocol family is a collection of protocols layered atop the
PUP Level-0 packet format, and utilizing the PUP Internet address for‐
mat. The PUP family is currently supported only by a raw interface.
Addressing
PUP addresses are composed of network, host, and port portions. The
include file <netpup/pup.h> defines this address as,
struct pupport {
u_char pup_net;
u_char pup_host;
u_char pup_socket[4];
};
Sockets bound to the PUP protocol family utilize the following address‐
ing structure,
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];
};
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,
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];
};
The sender should fill in the pup_tcontrol, pup_type, and 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 check‐
sum 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_NOCK‐
SUM.
The pup_tcontrol field is restricted to be 0 or PUP_TRACE; PUP_TRACE
indicates packet tracing should be performed. The pup_type field may
not be 0.
On input, the entire packet, including header, is provided the user.
No checksum validation is performed.
See Alsointro(4n), pup(4p), en(4)
VAX pup(4f)