Specifications

Ethernet Loop ~esting Page E-3
Every Ethernet station must implement the Loop Server module. This
module contains procedures which respond to Loop Requester inquiries
and performs general communications service for remote Loop Requester
modules for system tests and diagnostics.
The relationship between the various modules are shown in the
figure.
Vertical arrows indicate flow of control at data interfaces. The
horizontal arrow indicates control at a network management interface.
E.l.4 Conformance Requirements
In order to guarantee the availability of these functions and to
provide for communication checking
by
a network management station,
all Ethernet stations must implement the Loop Server.
The Loop Server receives datagrams addressed to Ethernet physical
addresses, the broadcast address, and, optionally, the
loopback
assistance multicast address. The Loop Server is not required to
receive datagrams addressed to any other multicast address.
Systems may implement the Loop Requester as desired. The allowed
range of functions is between none at all to the full capability
specified below. However, those stations that do not provide the full
interface capability, proportionately limit their capacity for
self-diagnosis and become more dependent on some centralized test
facility.
E.2
Interfaces
This section describes the Loop Test functions using Pascal as a
notational technique. These Pascal descriptions are to be understood
as abstract, functional representations. Actual implementations may
vary, for example in synchronization techniques, as long as they
provide the same functions.
The functional descriptions use the following common declarations:
const
addresssize
=
48;
{48 bit address
=
6
octets}
datasize
=
12000; {12000 bit data field
=
1500 octets}
receiptsize
=
16;
(16 bit receipt
=
2
octets}
type
Bit
=
0..1;
Addressvalue
=
array [l..address~izeI of Bit;
Datavalue
=
array [l..dataSize] of Bit;
Buffervalue
=
record {A general purpose buffer]
BufferMaximum: O..dataSize; {~uffer maximum contents)
BufferLength: O..dataSize; {Buffer actual contents]
BufferData: array [l..data~ize] of Bit; {~uffer contents}
end;