|
|
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.