|
|
1.1 ! root 1: .TH PUP 4F "7 July 1983 ! 2: .UC 4 ! 3: .SH NAME ! 4: pup \- Xerox PUP-I protocol family ! 5: .SH SYNOPSIS ! 6: .B #include <sys/types.h> ! 7: .br ! 8: .B #include <netpup/pup.h> ! 9: .SH DESCRIPTION ! 10: .de _d ! 11: .if t .ta .6i 2.1i 2.6i ! 12: .\" 2.94 went to 2.6, 3.64 to 3.30 ! 13: .if n .ta .84i 2.6i 3.30i ! 14: .. ! 15: .de _f ! 16: .if t .ta .5i 1.25i 2.5i ! 17: .\" 3.5i went to 3.8i ! 18: .if n .ta .7i 1.75i 3.8i ! 19: .. ! 20: The PUP-I protocol family is a collection of protocols ! 21: layered atop the PUP Level-0 packet format, and ! 22: utilizing the PUP Internet address format. ! 23: The PUP family is currently supported only by a raw interface. ! 24: .SH ADDRESSING ! 25: PUP addresses are composed of network, host, and port ! 26: portions. ! 27: The include file ! 28: .RI < netpup/pup.h > ! 29: defines this address as, ! 30: .PP ! 31: .nf ! 32: ._f ! 33: struct pupport { ! 34: u_char pup_net; ! 35: u_char pup_host; ! 36: u_char pup_socket[4]; ! 37: }; ! 38: .fi ! 39: .PP ! 40: Sockets bound to the PUP protocol family utilize ! 41: the following addressing structure, ! 42: .PP ! 43: .nf ! 44: ._f ! 45: struct sockaddr_pup { ! 46: short spup_family; ! 47: short spup_zero1; ! 48: u_char spup_net; ! 49: u_char spup_host; ! 50: u_char spup_sock[4]; ! 51: char spup_zero2[4]; ! 52: }; ! 53: .fi ! 54: .SH HEADERS ! 55: The current PUP support provides only raw access to the ! 56: 3Mb/s Ethernet. Packets sent through this interface ! 57: must have space for the following packet header present at the ! 58: front of the message, ! 59: .sp 1 ! 60: .nf ! 61: ._f ! 62: struct pup_header { ! 63: u_short pup_length; ! 64: u_char pup_tcontrol; /* transport control */ ! 65: u_char pup_type; /* protocol type */ ! 66: u_long pup_id; /* used by protocols */ ! 67: u_char pup_dnet; /* destination */ ! 68: u_char pup_dhost; ! 69: u_char pup_dsock[4]; ! 70: u_char pup_snet; /* source */ ! 71: u_char pup_shost; ! 72: u_char pup_ssock[4]; ! 73: }; ! 74: .fi ! 75: .PP ! 76: The sender should fill in the ! 77: .IR pup_tcontrol , ! 78: .IR pup_type , ! 79: and ! 80: .IR pup_id ! 81: fields. The remaining fields are filled in by the system. ! 82: The system checks the message to insure its size is valid ! 83: and, calulates a checksum for the message. If no checksum ! 84: should be calculated, the checksum field (the last 16-bit ! 85: word in the message) should be set to PUP_NOCKSUM. ! 86: .PP ! 87: The ! 88: .I pup_tcontrol ! 89: field is restricted to be 0 or PUP_TRACE; PUP_TRACE ! 90: indicates packet tracing should be performed. The ! 91: .I pup_type ! 92: field may not be 0. ! 93: .PP ! 94: On input, the entire packet, including header, is provided the user. ! 95: No checksum validation is performed. ! 96: .SH SEE ALSO ! 97: intro(4N), pup(4P), en(4) ! 98: .SH BUGS ! 99: The only interface which currently supports use of pup's ! 100: is the Xerox 3 Mb/s ! 101: .IR en (4) ! 102: interface. ! 103: .PP ! 104: With the release of the second generation, PUP-II, protocols ! 105: it is not clear what future PUP-I has. Consequently, there ! 106: has been little motivation to provide extensive kernel support.
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.