NetworkObject:
TYPE =
RECORD [
next: Network,
ip:
RECORD [
host: IP.Address,
getEncapsulation: PROC [Network, IP.Address] RETURNS [Encapsulation],
send: SendProc,
return: SendProc,
recv: RecvProc,
sendTranslate: SendProc,
recvTranslate: RecvProc,
translation: REF ANY ],
ns:
RECORD [
net: NS.Net,
getEncapsulation: PROC [Network, NS.Host] RETURNS [Encapsulation],
send: SendProc,
return: SendProc,
recv: RecvProc,
sendTranslate: SendProc,
recvTranslate: RecvProc,
translation: REF ANY ],
pup:
RECORD [
net: Pup.Net,
host: Pup.Host,
getEncapsulation: PROC [Network, Pup.Host] RETURNS [Encapsulation],
send: SendProc,
return: SendProc,
recv: RecvProc,
sendTranslate: SendProc,
recvTranslate: RecvProc,
translation: REF ANY ],
other:
RECORD [
netHostOther: REF ANY,
getEncapsulation: PROC [Network, REF ANY] RETURNS [Encapsulation],
send: SendProc,
return: SendProc,
recv: RecvProc,
sendTranslate: SendProc,
recvTranslate: RecvProc,
translation: REF ANY ],
raw:
RECORD [
send: SendProc ],
error:
RECORD [
recv: PROC [network: Network, buffer: Buffer, bytes: NAT] RETURNS [Buffer] ],
setPromiscuous: PROC [network: Network, promiscuous: BOOL],
isThisForMe: PROC [network: Network, buffer: Buffer] RETURNS [yes: BOOL],
toBroadcast: PROC [network: Network, buffer: Buffer] RETURNS [yes: BOOL],
moreBuffers: PROC [network: Network, total: NAT],
interceptor: Interceptor,
stats: REF ANY,
instanceData: REF ANY,
type: Type,
speed: INT, -- Bits per second
index: CARDINAL, -- first is 1 (for forwarder)
hearSelf: BOOL,
recvSick: BOOL,
sendSick: BOOL,
dead: BOOL