!+ 

! NDB - NETWORK NODE DESCRIPTOR BLOCK 

!- 

 

!...$NDBDEF	

	 

MACRO		NDB$L_NEXT	= 0,0,32,0%; 			! THREAD TO NEXT NDB 

MACRO		NDB$L_LINE_NAME	= 4,0,32,0%; 		! 4-CHARACTER PHYSICAL LINE NAME 

MACRO		NDB$W_SIZE	= 8,0,16,0%; 			! SIZE OF THIS CONTROL BLOCK 

MACRO		NDB$B_TYPE	= 10,0,8,0%; 			! TYPE OF THIS CONTROL BLOCK 

MACRO		NDB$B_NUMBUF	= 11,0,8,0%; 		! NUMBER OF PREALLOCATED BUFFERS 

MACRO		NDB$Q_AST	= 12,0,0,0%; 			! DUMMY AST CALL AREA 

LITERAL	NDB$S_AST	= 8; 

MACRO		NDB$W_CHANNEL	= 20,0,16,0%; 		! ASSOCIATED CHANNEL NUMBER 

MACRO		NDB$B_STATE	= 22,0,8,0%; 			! NODE STATE (NSP INITIALIZTION) 

MACRO		NDB$B_STATUS	= 23,0,8,0%; 		! NODE STATUS (E.G. LOOPBACK) 

MACRO		NDB$W_NODEADDR	= 24,0,16,0%; 		! NETWORK NODE ADDRESS 

MACRO		NDB$T_NAME	= 26,0,0,0%; 		! NODENAME (COUNTED ASCII STRING) 

LITERAL	NDB$S_NAME	= 7; 

MACRO		NDB$B_FUNC	= 33,0,8,0%; 			! SUPPORTED FUNCTIONS 

MACRO		NDB$W_BLKSIZE	= 34,0,16,0%; 		! MAX NSP MSG BLOCK SIZE 

MACRO		NDB$W_NSPSIZE	= 36,0,16,0%; 		! MAX NSP MSG SIZE 

MACRO		NDB$W_MAXLNK	= 38,0,16,0%; 		! MAX NO. OF INBOUND LINKS 

MACRO		NDB$B_RTEVER	= 40,0,24,0%; 		! NSP ROUTING VERSION   ****Z*** 

MACRO		NDB$B_COMMVER	= 43,0,24,0%; 		! COMM PROTOCOL VERSION   ****Z**** 

MACRO		NDB$T_SYSVER	= 46,0,0,0%; 		! SYSTEM VERSION DESC (COUNTED ASCII) 

LITERAL	NDB$S_SYSVER	= 33; 

MACRO		NDB$B_CONNTMO	= 79,0,8,0%; 		! CONNECT TIMEOUT IN SECONDS 0=INFINITY 

MACRO		NDB$B_NONPRVACC	= 80,0,8,0%; 		! FLAG NONPRV DEFAULT ACCESS INFO 

MACRO		NDB$B_PRVACC	= 124,0,8,0%; 		! FLAG PRV DEFAULT ACCESS INFO 

MACRO		NDB$W_BUFSIZE	= 168,0,16,0%; 		! SIZE OF PREALLOCATED BUFFERS 

MACRO		NDB$W_CHAR	= 170,0,16,0%; 			! PHYSICAL LINE CHARACTERISTICS 

MACRO		NDB$Q_ZEROTIME	= 172,0,0,0%; 		! TIME WHEN COUNTS WERE ZEROED 

LITERAL	NDB$S_ZEROTIME	= 8; 

MACRO		NDB$W_RCVBLKS	= 180,0,16,0%; 		! NO. OF BLOCKS RCVD (2^15-1 MAX) 

MACRO		NDB$W_XMTBLKS	= 182,0,16,0%; 		! NO. OF BLOCKS XMTD (2^15-1 MAX) 

MACRO		NDB$W_HISBLKSIZ	= 184,0,16,0%; 		! PARTNER'S BLK SIZE 

MACRO		NDB$W_HISNSPSIZ	= 186,0,16,0%; 		! PARTNER'S NSP SIZE 

LITERAL	NDB$C_LENGTH	= 188; 

LITERAL	NDB$K_LENGTH	= 188; 	 

LITERAL	NDB$C_ON	= 0; 				! ON STATE 

LITERAL	NDB$C_OFF	= 1; 				! OFF STATE 

LITERAL	NDB$C_SHUT	= 2; 				! SHUT STATE 

LITERAL	NDB$C_LOOP	= 3; 				! LOOP STATE 

LITERAL	NDB$C_MAINT	= 4; 				! MAINT STATE 

LITERAL	NDB$C_CTL_LOOP	= 5; 			! CONTROLLER LOOP STATE 

							! NDB LOOPBACK BIT FOR NDB$B_STATUS 

MACRO		NDB$V_LOOPBACK	= 188,0,1,0%; 		! LINE FOR NODE IS IN LOOPBACK 

LITERAL	NDB$M_LOOPBACK	= 1^1 - 1^0; 

MACRO		NDB$V_OFF	= 188,1,1,0%; 			! LINE (OR NODE) OFF 

LITERAL	NDB$M_OFF	= 1^2 - 1^1; 

MACRO		NDB$V_SHUT	= 188,2,1,0%; 		! NODE IS SHUT 

LITERAL	NDB$M_SHUT	= 1^3 - 1^2; 

MACRO		NDB$V_CTL_LOOP	= 188,3,1,0%; 		! CONTROLLER LOOPBACK 

LITERAL	NDB$M_CTL_LOOP	= 1^4 - 1^3; 

			

LITERAL	

$EQULST (NDB$C_,GBL,1,1 		! MESSAGE CODES FOR OPCOM 

	,(MSG_START,) 			! LINE STARTING 

	,(MSG_MAINT,) 			! LINE ENTERED MAINTENANCE MODE 

	,(MSG_DOWN,) 			! LINE DOWN DUE TO ERROR 

	,(MSG_NGINI,) 			! UNSUCCESSFUL NODE INIT 

	,(MSG_OKINI,) 			! SUCCESSFUL NODE INIT 

	,(MSG_SHUT,) 			! LINE SHUTTING DOWN 

	,(MSG_DSRCH,) 			! DSR ON-TO-OFF TRANSITION 

	,(MSG_LOOPB,) 			! LINE ILLEGALLY SWITCHED TO LOOPBACK 

	,(MSG_DCHK,) 			! ERROR THRESHOLD EXCEEDED 

	); 



 

 

!+ 

! NFB DEFINITIONS - CODES FOR USE IN NFB (FIB) IN NET ACPCONTROL I/O FUNCTIONS 

!- 

 

!...$NFBDEF	

LITERAL	

$EQULST (NFB$C_,GBL,1,1 		! FUNCTIONS CODES FOR NFB 

	,(SETLINSTA,) 			! SET LINE STATE 

	,(GETLINSTA,) 			! GET LINE STATE 

	,(GETLINCTR,) 			! GET LINE COUNTERS 

	,(CLRLINCTR,) 			! CLEAR LINE COUNTERS 

	,(UPDOBJECT,) 			! UPDATE OBJECT RECORD 

	,(UPDREMOTE,) 			! UPDATE REMOTE RECORD 

	,(GETLOCNAM,) 			! GET LOCAL NODE NAME 

	,(GETLNBYND,) 			! GET LINE BY NODE 

	,(GETLOGLNK,) 			! GET LOGICAL LINKS 

	,(SETLOCSTA,) 			! SET LOCAL STATE 

	,(GETLOCSTA,) 			! GET LOCAL STATE 

	,(GETLOCCTR,) 			! GET LOCAL COUNTERS 

	,(CLRLOCCTR,) 			! CLEAR LOCAL COUNTERS 

	,(GETNODNAM,) 			! GET NODE NAMES 

	,(GETLINNAM,) 			! GET LINE NAMES 

	,(DISCLINK,) 			! DISCONNECT LINK 

	,(GETNAMNUM,) 			! GET NODE NAME BY NODE NUMBER 

	,(GETNUMNAM,) 			! GET NODE NUMBER BY NODE NAME 

	,(GETVER,) 				! GET VERSIONS 

	,(GETNDBYLN,) 			! GET NODE BY LINE 

	,(DECLNAME,) 			! DECLARE NAME 

	); 



 

 

!+ 

! SSB - NETWORK LOGICAL LINK SUBCHANNEL STATUS BLOCK 

!_ 

 

!...$SSBDEF	

MACRO		SSB$L_XQFL	= 0,0,32,0%; 			! TRANSMIT QUEUE FORWARD LINK 

MACRO		SSB$L_XQBL	= 4,0,32,0%; 			! TRANSMIT QUEUE BACKWARD LINK 

MACRO		SSB$W_SIZE	= 8,0,16,0%; 			! BLOCK SIZE 

MACRO		SSB$B_TYPE	= 10,0,8,0%; 			! TYPE 

MACRO		SSB$L_WACKQFL	= 12,0,32,0%; 		! WAITING FOR ACK QUEUE FWD LINK 

MACRO		SSB$L_WACKQBL	= 16,0,32,0%; 		! WAITING FOR ACK QUEUE BWD LINK 

MACRO		SSB$L_UCB	= 20,0,32,0%; 			! BACK POINTER TO UCB 

MACRO		SSB$W_RCVSEGNUM	= 24,0,16,0%; 		! SEGNUM EXPECTED FROM PARTNER (1) 

MACRO		SSB$W_RCVSEGACK	= 26,0,16,0%; 		! LAST SEGNUM I ACKED (0) 

MACRO		SSB$W_XMTSEGNUM	= 28,0,16,0%; 		! LAST SEGNUM I SENT (0) 

							! BITS FOR ACK/NAK FIELD IN SEGNUM 

							! DUMMY 

MACRO		SSB$V_NAKP	= 28,12,3,0%; 			! NAK PENDING 

LITERAL	SSB$M_NAKP	= 1^15 - 1^12; 

MACRO		SSB$V_ACKP	= 28,15,1,0%; 			! ACK PENDING 

LITERAL	SSB$M_ACKP	= 1^16 - 1^15; 

			

MACRO		SSB$W_XMTSEGACK	= 30,0,16,0%; 		! LAST SEGNUM PARTNER ACKED (0) 

MACRO		SSB$B_TIPC	= 32,0,8,0%; 			! TRANSMITS IN PROGRESS COUNTER 

MACRO		SSB$B_FCVAL	= 33,0,8,0%; 			! FCVAL TO GO IN NEXT LS MSG 

MACRO		SSB$B_REQCNT	= 34,0,8,0%; 		! PARTNER'S DATA REQUEST COUNT 

MACRO		SSB$B_PNDCNT	= 35,0,8,0%; 		! MY DATA REQUEST COUNT (PENDING) 

LITERAL	SSB$C_LENGTH	= 36; 

LITERAL	SSB$K_LENGTH	= 36; 				! LENGTH OF SSB 



! 

! DISCONNECT REASONS 

! 

!...$DRDEF	

LITERAL	

$EQULST (NET$C_,GBL,0,1  

	,(DR_NORMAL,0) 			! NO ERROR (SYNCH DISCONNECT) 

	,(DR_RSU,1) 			! COULDN'T ALLOCATE UCB ADDRESS 

	,(DR_SHUT,3) 			! NODE OR LINE SHUTTING DOWN 

	,(DR_NOBJ,4) 			! UNKNOWN OBJECT TYPE OR PROCESS 

	,(DR_FMT,5) 			! ILLEGAL PROCESS NAME FIELD 

	,(DR_PROTCL,7) 			! GENERAL PROTOCOL ERROR 

	,(DR_THIRD,8) 			! THIRD PARTY DISCONNECT 

	,(DR_ABORT,9) 			! DISCONNECT ABORT 

	,(DR_NONZ,21) 			! NON-ZERO DST ADDRESS 

	,(DR_BADLNK,22) 			! INCONSISTENT DSTLNK 

	,(DR_ZERO,23) 			! ZERO SOURCE ADDRESS 

	,(DR_BADFC,24) 			! FCVAL ILLEGAL 

	,(DR_NOCON,32) 			! NO CONNECT SLOTS AVAILABLE 

	,(DR_ACCESS,34) 			! INVALID ACCESS CONTROL 

	,(DR_BADSRV,35) 			! LOGICAL LINK SERVICES MISMATCH 

	,(DR_ACCNT,36) 			! INVALID ACCOUNT INFORMATION 

	,(DR_SEGSIZ,37) 			! SEGSIZE TOO SMALL 

	,(DR_EXIT,38) 			! USER EXIT OR TIMEOUT 

	,(DR_NOPATH,39) 			! NO PATH TO DESTINATION NODE 

	,(DR_LOSS,40) 			! LOSS OF DATA HAS OCCURRED 

	,(DR_NOLINK,41) 			! ILLEGAL MSG FOR LINK NOLINK STATE 

	,(DR_CONF,42) 			! REAL DISCONNECT CONFIRM 

	,(DR_IMLONG,43) 			! IMAGE DATA FIELD TOO LONG 

	); 



!...$NETDEF	

LITERAL	

$EQULST (NET$C_,GBL,0,1  

	,(MSGFLG,0) 			! MSGFLG INDICATOR BITS 

	,(NSPOVH,11) 			! NSP MSG OVERHEAD 

	,(MAXNSPOVH,24) 			! MAX (WITH RTHDRS) NSP OVERHEAD 

	,(DATAM,0) 				! DATA MESSAGE TYPE 

	,(ACKM,1) 				! ACK MESSAGE TYPE 

	,(CTRLM,2) 				! CONTROL MESSAGE TYPE 

	); 

							! BITS FOR ACK/NAK FIELD IN SEGNUM 

MACRO		NET$V_MSGID	= 0,0,2,0%; 			! BITS TO DISTINGUISH RTHDR, COUNT, AND MSGFLG 

MACRO		NET$V_MSGFLG	= 0,2,5,0%; 		! MSGFLG FIELD 

			

			 

							! DUMMY 

MACRO		NET$V_MSGTYP	= 0,2,2,0%; 		! MSGTYP BITS 

MACRO		NET$V_SUBTYP	= 0,4,3,0%; 		! SUBTYP BITS 

			

			 

							! DUMMY 

MACRO		NET$V_INTLS	= 0,4,1,0%; 			! INTERRUPT/LINKSERVICE SUBCHANNEL 

LITERAL	NET$M_INTLS	= 1^5 - 1^4; 

MACRO		NET$V_BOM	= 0,5,1,0%; 			! BEGINNING-OF-MSG 

LITERAL	NET$M_BOM	= 1^6 - 1^5; 

MACRO		NET$V_EOM	= 0,6,1,0%; 			! END-OF-MSG 

LITERAL	NET$M_EOM	= 1^7 - 1^6; 

			

			 

							! DUMMY 

MACRO		NET$V_INTMSG	= 0,5,1,0%; 		! INTERRUPT MESSAGE 

LITERAL	NET$M_INTMSG	= 1^6 - 1^5; 

			



