1 /* nsp.h 1.3 82/10/09 */ 2 3 /* 4 * DECnet Network Services Protocol definitions, 5 * per Network Services Protocol Functional Specification, 6 * Version 3.2.0, October 1980. 7 */ 8 9 /* 10 * NSP message types 11 */ 12 #define NSP_DATA 0x00 /* data segment message */ 13 #define NSP_LS 0x10 /* link service message */ 14 #define NSP_INTR 0x30 /* interrupt message */ 15 #define NSP_DATACK 0x04 /* data segment ack */ 16 #define NSP_OTHACK 0x14 /* other data ack */ 17 #define NSP_CONACK 0x24 /* connect ack */ 18 #define NSP_NOP 0x08 /* no op */ 19 #define NSP_CI 0x18 /* connect initiate */ 20 #define NSP_CC 0x28 /* connect confirm */ 21 #define NSP_DI 0x38 /* disconnect initiate */ 22 #define NSP_DC 0x48 /* disconnect confirm */ 23 24 /* flags for data segment messages */ 25 #define NSP_BOM 0x20 /* beginning-of-message segment */ 26 #define NSP_EOM 0x40 /* end-of-message segment */ 27 28 /* 29 * Data segment message 30 */ 31 struct nspd { 32 char nsp_msgflg; /* message type and flags */ 33 d_short nsp_dstaddr; /* destination address * 34 d_short nsp_srcaddr; /* source address */ 35 d_short nsp_acknum; /* number of ack'ed message */ 36 d_short nsp_segnum; /* this message's segment number */ 37 }; 38 39 /* 40 * Interrupt message 41 */ 42 struct nspi { 43 char nsp_msgflg; /* message type and flags */ 44 d_short nsp_dstaddr; /* destination address * 45 d_short nsp_srcaddr; /* source address */ 46 d_short nsp_acknum; /* number of ack'ed message */ 47 d_short nsp_segnum; /* this message's segment number */ 48 /* optional data follows */ 49 }; 50 51 /* 52 * Link Service message 53 */ 54 struct nspls { 55 char nsp_msgflg; /* message type and flags */ 56 d_short nsp_dstaddr; /* destination address * 57 d_short nsp_srcaddr; /* source address */ 58 d_short nsp_acknum; /* number of ack'ed message */ 59 d_short nsp_segnum; /* this message's segment number */ 60 char nsp_lsflags; /* link service flags */ 61 char nsp_fcval; /* flow control change value */ 62 }; 63 64 #define NSPLS_FCVALINT 0x0c /* fcval field interpretation: */ 65 #define NSPLS_DATREQ 0x00 /* data segment request */ 66 #define NSPLS_INTREQ 0x04 /* interrupt request */ 67 #define NSPLS_FCMOD 0x03 /* flow control modification: */ 68 #define NSPLS_NOCHANGE 0x00 /* no change */ 69 #define NSPLS_OFF 0x01 /* do not send data */ 70 #define NSPLS_ON 0x02 /* send data */ 71 72 /* 73 * Data or Other Data Ack 74 */ 75 struct nspack { 76 char nsp_msgflg; /* message type and flags */ 77 d_short nsp_dstaddr; /* destination address * 78 d_short nsp_srcaddr; /* source address */ 79 d_short nsp_acknum; /* number of ack'ed message */ 80 }; 81 82 #define NSPA_ACK 0x8000 /* ack flag for acknum */ 83 #define NSPA_NAK 0x9000 /* nak flag for acknum */ 84 #define NSPA_QUAL 0xf000 /* qual field for acknum */ 85 #define NSPA_NUM 0x0fff /* num field for acknum */ 86 87 /* 88 * Connect Ack 89 */ 90 struct nspcack { 91 char nsp_msgflg; /* message type and flags */ 92 d_short nsp_dstaddr; /* destination address * 93 }; 94 95 /* 96 * No Op message 97 */ 98 struct nspnop { 99 char nsp_msgflg; /* message type and flags */ 100 /* tstdata follows */ 101 }; 102 103 /* 104 * Connect Initiate message 105 */ 106 struct nspci { 107 char nsp_msgflg; /* message type and flags */ 108 d_short nsp_dstaddr; /* destination address * 109 d_short nsp_srcaddr; /* source address */ 110 char nsp_services; /* flow control options */ 111 char nsp_info; /* NSP version info */ 112 d_short nsp_segsize; /* requested segment size */ 113 /* connect data follows */ 114 }; 115 116 /* 117 * Connect Confirm message 118 */ 119 struct nspcc { 120 char nsp_msgflg; /* message type and flags */ 121 d_short nsp_dstaddr; /* destination address * 122 d_short nsp_srcaddr; /* source address */ 123 char nsp_services; /* flow control options */ 124 char nsp_info; /* NSP version info */ 125 d_short nsp_segsize; /* requested segment size */ 126 char nsp_cnt; /* size of optional data field */ 127 /* optional connect data follows */ 128 }; 129 130 /* 131 * Disconnect Initiate message 132 */ 133 struct nspdi { 134 char nsp_msgflg; /* message type and flags */ 135 d_short nsp_dstaddr; /* destination address * 136 d_short nsp_srcaddr; /* source address */ 137 d_short nsp_reason; /* reason for disconnect */ 138 char nsp_dcnt; /* size of optional data field */ 139 /* optional disconnect data follows */ 140 }; 141 142 /* 143 * Disconnect Confirm message 144 */ 145 struct nspdc { 146 char nsp_msgflg; /* message type and flags */ 147 d_short nsp_dstaddr; /* destination address * 148 d_short nsp_srcaddr; /* source address */ 149 d_short nsp_reason; /* disconnect reason */ 150 }; 151