|
|
1.1 ! root 1: /* ! 2: * Copyright (c) 1999 Apple Computer, Inc. All rights reserved. ! 3: * ! 4: * @APPLE_LICENSE_HEADER_START@ ! 5: * ! 6: * Portions Copyright (c) 1999 Apple Computer, Inc. All Rights ! 7: * Reserved. This file contains Original Code and/or Modifications of ! 8: * Original Code as defined in and that are subject to the Apple Public ! 9: * Source License Version 1.1 (the "License"). You may not use this file ! 10: * except in compliance with the License. Please obtain a copy of the ! 11: * License at http://www.apple.com/publicsource and read it before using ! 12: * this file. ! 13: * ! 14: * The Original Code and all software distributed under the License are ! 15: * distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, EITHER ! 16: * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, ! 17: * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, ! 18: * FITNESS FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT. Please see the ! 19: * License for the specific language governing rights and limitations ! 20: * under the License. ! 21: * ! 22: * @APPLE_LICENSE_HEADER_END@ ! 23: */ ! 24: ! 25: /* ! 26: * ! 27: * ORIGINS: 82 ! 28: * ! 29: * APPLE CONFIDENTIAL ! 30: * (C) COPYRIGHT Apple Computer, Inc. 1992-1996 ! 31: * All Rights Reserved ! 32: * ! 33: */ ! 34: ! 35: #ifndef __DDP__ ! 36: #define __DDP__ ! 37: ! 38: /* Header and data sizes */ ! 39: ! 40: #define DDP_HDR_SIZE 5 /* DDP (short) header size */ ! 41: #define DDP_X_HDR_SIZE 13 /* DDP extended header size */ ! 42: #define DDP_DATA_SIZE 586 /* Maximum DataGram data size */ ! 43: #define DDP_DATAGRAM_SIZE 599 /* Maximum DataGram size */ ! 44: ! 45: ! 46: /* DDP socket definitions */ ! 47: ! 48: #define DDP_SOCKET_1st_RESERVED 1 /* First in reserved range */ ! 49: #define DDP_SOCKET_1st_EXPERIMENTAL 64 /* First in experimental range */ ! 50: #define DDP_SOCKET_1st_DYNAMIC 128 /* First in dynamic range */ ! 51: #define DDP_SOCKET_LAST 253 /* Last socket in any range */ ! 52: ! 53: ! 54: /* DDP extended header packet format */ ! 55: ! 56: typedef struct { ! 57: unsigned unused:2, ! 58: hopcount:4, ! 59: length:10; /* Datagram length */ ! 60: ua_short checksum; /* Checksum */ ! 61: at_net dst_net; /* Destination network number */ ! 62: at_net src_net; /* Source network number */ ! 63: at_node dst_node; /* Destination node ID */ ! 64: at_node src_node; /* Source node ID */ ! 65: at_socket dst_socket; /* Destination socket number */ ! 66: at_socket src_socket; /* Source socket number */ ! 67: u_char type; /* Protocol type */ ! 68: char data[DDP_DATA_SIZE]; ! 69: } at_ddp_t; ! 70: ! 71: ! 72: #define DDPLEN_ASSIGN(ddp, len) ddp->length = len ! 73: #define DDPLEN_VALUE(ddp) ddp->length ! 74: ! 75: ! 76: /* DDP module statistics and configuration */ ! 77: ! 78: typedef struct { ! 79: /* General */ ! 80: ! 81: /* Receive stats */ ! 82: u_int rcv_bytes; ! 83: u_int rcv_packets; ! 84: u_int rcv_bad_length; ! 85: u_int rcv_unreg_socket; ! 86: u_int rcv_bad_socket; ! 87: u_int rcv_bad_checksum; ! 88: u_int rcv_dropped_nobuf; ! 89: ! 90: /* Transmit stats */ ! 91: u_int xmit_bytes; ! 92: u_int xmit_packets; ! 93: u_int xmit_BRT_used; ! 94: u_int xmit_bad_length; ! 95: u_int xmit_bad_addr; ! 96: u_int xmit_dropped_nobuf; ! 97: } at_ddp_stats_t; ! 98: ! 99: typedef struct { ! 100: u_short network_up; ! 101: u_short filler; ! 102: int flags; /* to indicate what type ! 103: * of network interface the ! 104: * default net is (ethertalk/ ! 105: * localtalk?) ! 106: */ ! 107: at_inet_t node_addr; ! 108: at_inet_t router_addr; ! 109: int netlo; ! 110: int nethi; ! 111: } at_ddp_cfg_t; ! 112: ! 113: union at_ddpopt { ! 114: struct { ! 115: unsigned char checksum; /* do checksum */ ! 116: unsigned char type; /* ddp type */ ! 117: } ct; ! 118: }; ! 119: ! 120: union at_adspopt { ! 121: struct { ! 122: u_short sendBlocking; /* quantum for data packets */ ! 123: u_char sendTimer; /* send timer in 10-tick intervals */ ! 124: u_char rtmtTimer; /* retransmit timer in 10-tick intervals */ ! 125: u_char badSeqMax; /* threshold for sending retransmit advice */ ! 126: u_char useCheckSum; /* use ddp packet checksum */ ! 127: u_short filler; ! 128: int newPID; /* ### Temp for backward compatibility 02/11/94 */ ! 129: } c; ! 130: }; ! 131: ! 132: #endif /* __DDP__ */
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.