// GateForward.decl

// Last modified July 9, 1982  10:03 AM by Taft

manifest
[
routeBcstInterval = 3000  //30 seconds

ptRouteError = 202b
ptStatsRequest = 203b
ptStatsReply = 204b

gfStatsVersion = 1

maxRouteInfoDataBytes = 128  // ptRouteReply Pups must be no larger than this
]

//----------------------------------------------------------------------------
structure Queue:	// Singly linked list, usually maintained FIFO
//----------------------------------------------------------------------------
[
head word		// -> first thing; 0 if queue is empty
tail word		// -> last thing; undefined if queue is empty
]

//----------------------------------------------------------------------------
structure Stats:
//----------------------------------------------------------------------------
[
version word		// = gfStatsVersion
routeReqs word 2	// number of route info requests
numNets word		// number of networks
numTMEs word		// number of TMEs in this packet
//numNets net numbers, one word each
//numTMEs TMEs, 3 words each
]
manifest lenStats = size Stats/16  //size of fixed part only

//----------------------------------------------------------------------------
structure GF:		// 'global frame' for Gateway Forwarder
//----------------------------------------------------------------------------
[
tm word			// -> Transit Matrix
stats @Stats
routeBcstTimer word	// timer for broadcasting routing info
iQ @Queue		// forwarder input queue
tQ @Queue		// forwarder transmitted queue
]
manifest lenGF = size GF/16

//----------------------------------------------------------------------------
structure TME:		// Transit Matrix Entry
//----------------------------------------------------------------------------
[
sdNet word = [ sNet byte; dNet byte ]
count word 2
]
manifest lenTME = size TME/16

//----------------------------------------------------------------------------
structure TM: [ @HTP; TME↑0,1:@TME ]  // Transit Matrix hash table
//----------------------------------------------------------------------------