|
|
1.1 root 1: .TH PUP 4P "7 July 1983"
2: .UC 4
3: .SH NAME
4: pup \- raw PUP socket interface
5: .SH SYNOPSIS
6: .B #include <sys/socket.h>
7: .br
8: .B #include <netpup/pup.h>
9: .PP
10: .B socket(AF_PUP, SOCK_RAW, PUPPROTO_BSP);
11: .SH DESCRIPTION
12: A raw pup socket provides PUP-I access to an
13: Ethernet network. Users send packets using the
14: .I sendto
15: call, and receive packets with the
16: .IR recvfrom
17: call. All outgoing packets must have space present at
18: the front of the packet to allow the PUP header to be
19: filled in. The header format is described in
20: .IR pup (4F).
21: Likewise, packets received
22: by the user will have the PUP header on the front. The
23: PUP header and legal values for the various fields
24: are defined in the include file
25: .RI < netpup/pup.h >.
26: .PP
27: The raw pup interface automatically installs the length
28: and source and destination addresses in the PUP header of all
29: outgoing packets; these need not be filled in by the user.
30: The only control bit that may be set in the
31: .I tcontrol
32: field of outgoing packets is the \*(lqtrace\*(rq bit.
33: A checksum is calculated unless the sender sets the checksum
34: field to PUP_NOCKSUM.
35: .SH DIAGNOSTICS
36: A socket operation may fail and one of the following will be returned:
37: .TP 15
38: [EISCONN]
39: when trying to establish a connection on a socket which
40: already has one, or when trying to send a datagram with the destination
41: address specified and the socket is already connected;
42: .TP 15
43: [ENOTCONN]
44: when trying to send a datagram, but
45: no destination address is specified, and the socket hasn't been
46: connected;
47: .TP 15
48: [ENOBUFS]
49: when the system runs out of memory for
50: an internal data structure;
51: .TP 15
52: [EADDRNOTAVAIL]
53: when an attempt is made to create a
54: socket with a network address for which no network interface
55: exists.
56: .PP
57: A
58: .I sendto
59: operation may fail if one of the following is true:
60: .TP 15
61: [EINVAL]
62: Insufficient space was left by the user for the PUP header.
63: .TP 15
64: [EINVAL]
65: The
66: .I pup_type
67: field was 0 or the
68: .I pup_tcontrol
69: field had a bit other than PUP_TRACE set.
70: .TP 15
71: [EMSGSIZE]
72: The message was not an even number of bytes, smaller than
73: MINPUPSIZ, or large than MAXPUPSIZ.
74: .TP 15
75: [ENETUNREACH]
76: The destination address was on a network which was not
77: directly reachable (the raw interface provides no routing support).
78: .SH SEE ALSO
79: send(2), recv(2), intro(4N), pup(4F)
80: .SH BUGS
81: The interface is untested against other PUP implementations.
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.