📄 rfc2834.txt
字号:
8 | AA | AA | 03 | 00 |
+---------------+---------------+---------------+---------------+
9 | 00 | 00 | Ethertype (2054) |
+---------------+---------------+-------------------------------+
10 |Message byte 0 |Message byte 1 |Message byte 2 | . . . |
+---------------+---------------+---------------+--- |
| . . . |
+ ------------+---------------+---------------+---------------+
| . . . | byte (n-2) | byte (n-1) | FILL |
+---------------+---------------+---------------+---------------+
N-1| FILL | FILL | FILL | FILL |
+---------------+---------------+---------------+---------------+
HIPPI Message Format
Words 0-1: HIPPI-FP Header
Words 2-7: D1_Area (HIPPI-LE Header)
Words 8-9: D2_Area (IEEE 802.2 LLC/SNAP)
Words 10-(N-1): D2_Area (HARP message)
(n+8) is the nb of bytes in the HARP message, incl. LLC/SNAP.
+====+ denotes the boundary between D1_Area and D2_Area.
[LA] fields are zero unless used otherwise locally.
Abbreviations:
"W" = Double_Wide field SHALL be 0
"M_Type" = Message_Type field SHALL be set according to
HIPPI-LE
"D_A_T" = Destination_Address_Type SHALL be 2
Pittet Standards Track [Page 17]
RFC 2834 ARP and IP Broadcast over HIPPI-800 May 2000
"S_A_T" = Source_Address_Type SHALL be 2
[FILL] bytes complete the HIPPI message to an even
number of 32 bit words. The number of fill bytes
is not counted in the data length.
6.2 HIPPI Hardware Address Formats and Requirements
For HIPPI-800, the Hardware Address is a 10-byte unit that SHALL
contain the Switch Address AND the ULA. The format of a hardware
address is:
31 23 15 7 0
+---------------+---------------+-------+-------+---------------+
| Mode Byte | 00 | 0 | X | XX |
+---------------+---------------+-------+-------+---------------+
| ULA byte 0 | ULA byte 1 | ULA byte 2 | ULA byte 3 |
+---------------+---------------+---------------+---------------+
| ULA byte 4 | ULA byte 5 |
+---------------+---------------+
Where "XXX" is the 12 bit HIPPI logical address defined in HIPPI-SC
[4]. Details on ULA see next section.
Two switch addresses are considered to be the same when they have the
same 12 bit destination HIPPI logical address.
NOTE: In the case of HIPPI-6400, the hardware address is ONLY the 6-
byte ULA. Therefore the length of the hardware address clearly
defines which version of HIPPI is being used.
6.2.1 48-bit Universal LAN MAC Addresses
IEEE Standard 802.1A [11] specifies the Universal LAN MAC Address
format. The globally unique part of the 48-bit space is administered
by the IEEE. Each port on a HIPPI-SC LAN SHOULD be assigned a ULA.
Multiple ULAs may be used if a port contains more than one IEEE 802.2
LLC protocol entity.
The format of the HIPPI hardware address within its HARP message
follows IEEE 802.1A canonical bit order and HIPPI-FP bit and byte
order. For example the requester's ULA part of the HIPPI hardware
address would decompose to:
Pittet Standards Track [Page 18]
RFC 2834 ARP and IP Broadcast over HIPPI-800 May 2000
31 23 15 7 0
+---------------+---------------+---------------+---------------+
|ULA byte 0 |L|G| ULA byte 1 | ULA byte 2 | ULA byte 3 |
+---------------+---------------+---------------+---------------+
| ULA byte 4 | ULA byte 5 |
+---------------+---------------+
Universal LAN MAC Address Format
L (U/L bit) = 1 for Locally administered addresses,
0 for Universal.
G (I/G bit) = 1 for Group addresses,
0 for Individual.
The use of ULAs is OPTIONAL, but RECOMMENDED. The use of ULAs is
REQUIRED if a port wishes to interoperate with a conventional
network.
ULAs may also be used by bridging devices that replace HIPPI hardware
headers with the MAC headers of other LANs.
6.3 HARP and InHARP Message Formats
The HARP protocols use the HIPARP hardware type (ar$hrd) [16],
protocol type (ar$pro), and operation code (ar$op) data formats as
the ARP, and InARP protocols [15,7]. In addition, HARP makes use of
an additional operation code for ARP_NAK introduced with [12]. The
remainder of the HARP/InHARP message format is different than the
ARP/InARP message format defined in [15,7,10] and it is also
different from the format defined in the first "IP and ARP on HIPPI"
RFC-1374 [14].
HARP messages SHALL be transmitted with the HIPARP hardware type code
of 28 (decimal). Furthermore, HARP messages SHALL be accepted if
received with hardware type codes of either 28, 1 or 6 (decimal).
The HARP message has several fields that have the following format
and values:
Data sizes and field meaning:
ar$hrd 16 bits Hardware type
ar$pro 16 bits Protocol type of the protocol fields below
ar$op 16 bits Operation code (request, reply, or NAK)
ar$pln 8 bits byte length of each protocol address
ar$rhl 8 bits requester's HIPPI hardware address length (q)
ar$thl 8 bits target's HIPPI hardware address length (x)
ar$rpa 32 bits requester's protocol address
ar$tpa 32 bits target's protocol address
Pittet Standards Track [Page 19]
RFC 2834 ARP and IP Broadcast over HIPPI-800 May 2000
ar$rha qbytes requester's HIPPI Hardware address
ar$tha xbytes target's HIPPI Hardware address
Where :
ar$hrd - SHALL contain 28. (HIPARP)
ar$pro - SHALL contain the IP protocol code 2048 (decimal).
ar$op - SHALL contain the operational value (decimal):
1 for HARP_REQUESTs
2 for HARP_REPLYs
8 for InHARP_REQUESTs
9 for InHARP_REPLYs
10 for HARP_NAK
ar$pln - SHALL contain 4.
ar$rln - SHALL contain 10 IF this is a HIPPI-800 HW address
ELSE, for HIPPI-6400, it SHALL contain 6.
ar$thl - SHALL contain 10 IF this is a HIPPI-800 HW address
ELSE, for HIPPI-6400, it SHALL contain 6.
ar$rha - in requests and NAKs it SHALL contain the requester's
HW address. In replies it SHALL contain the target
port's HW address.
ar$rpa - in requests and NAKs it SHALL contain the requester's IP
address if known, otherwise zero.
In other replies it SHALL contain the target
port's IP address.
ar$tha - in requests and NAKs it SHALL contain the target's
HW address if known, otherwise zero.
In other replies it SHALL contain the requester's
HW addressA.
ar$tpa - in requests and NAKs it SHALL contain the
target's IP address if known, otherwise zero.
In other replies it SHALL contain the requester's
IP address.
The format of the six bytes of the ULA SHALL be the same as required
in the HIPPI-LE header (see section 6.2), except for the alignment of
the ULAs with respect to the 32-bit HIPPI word, which is different
between ARP and HIPPI-LE. No bit reversal is necessary as is
required with FDDI.
Pittet Standards Track [Page 20]
RFC 2834 ARP and IP Broadcast over HIPPI-800 May 2000
31 28 23 21 15 10 7 2 0
+-----+---------+-+-+-----------+---------+-----+---------+-----+
0 | 04 |1|0| 000 | 03 | 0 |
+---------------+-+-+---------------------+---------------+-----+
1 | 45 |
+-----+-+-------+-----------------------+-----------------------+
2 |[LA] |W|MsgT= 0| 000 | Dest. Switch Addr |
+-----+-+-------+-----------------------+-----------------------+
3 | 2 | 2 | 000 | Source Switch Addr |
+---------------+---------------+-------+-----------------------+
4 | 00 00 | |
+-------------------------------+ |
5 | Destination ULA |
+-------------------------------+-------------------------------+
6 | [LA] | |
+-------------------------------+ |
7 | Source ULA |
+===============+===============+===============+===============+
8 | AA | AA | 03 | 00 |
+---------------+---------------+---------------+---------------+
9 | 00 | 00 | Ethertype (2054) |
+---------------+---------------+-------------------------------+
10 | hrd (28) | pro (2048) |
+---------------+---------------+---------------+---------------+
11 | op (ar$op) | pln (6) | rhl (q) |
+---------------+---------------+---------------+---------------+
12 | thl = (x) | Requester IP Address upper (24 bits) |
+---------------------------------------------------------------+
13 | Req. IP lower | Target IP Address upper (24 bits) |
+---------------+-----------------------------------------------+
14 | Tgt. IP lower | Requester HIPPI Hardware Address bytes 0 - 2 |
+---------------+-----------------------------------------------+
15 | Requester HIPPI Hardware Address bytes 3 - 6 |
+-----------------------------------------------+---------------+
16 | Requester HW Address bytes 7 - q | Tgt HW byte 0 |
+---------------+---------------+---------------+---------------+
17 | Target HIPPI Hardware Address bytes 1 - 4 |
+---------------------------------------------------------------+
18 | Target HIPPI Hardware Address bytes 5 - 8 |
+---------------+---------------+---------------+---------------+
19 |Tgt HW byte 9-x| FILL | FILL | FILL |
+---------------+---------------+---------------+---------------+
HARP - InHARP Message
Pittet Standards Track [Page 21]
RFC 2834 ARP and IP Broadcast over HIPPI-800 May 2000
6.3.1 Example Message encodings:
HARP_REQUEST message
HARP ar$op = 1 (HARP_REQUEST)
HARP ar$rpa = IPy HARP ar$tpa = IPa
HARP ar$rha = SWy ULAy HARP ar$tha = 0 **
** is what we would like to find out
HARP_REPLY message format
HARP ar$op = 2 (HARP_REPLY)
HARP ar$rpa = IPa HARP ar$tpa = IPy
HARP ar$rha = SWa ULAa * HARP ar$tha = SWy ULAy
* answer we were looking for
InHARP_REQUEST message format
HARP ar$op = 8 (InHARP_REQUEST)
HARP ar$rpa = IPy HARP ar$tpa = 0 **
HARP ar$rha = SWy ULAy HARP ar$tha = SWa ULAa
** is what we would like to find out
InHARP_REPLY message format
HARP ar$op = 9 (InHARP_REPLY)
HARP ar$rpa = IPs * HARP ar$tpa = IPy
HARP ar$rha = SWa ULAa HARP ar$tha = SWy ULAy
* answer we were looking for
6.3.2 HARP_NAK message format
The HARP_NAK message format is the same as the received HARP_REQUEST
message format with the operation code set to HARP_NAK; i.e. the
HARP_REQUEST message data is copied byte for byte for transmission
with the HARP_REQUEST operation code changed to the HARP_NAK value.
HARP makes use of an additional operation code for HARP_NAK. Hence,
HARP_NAK MUST be implemented.
6.3.3 Combined HIPPI-LE and HARP message addresses
The combined HIPPI-LE/HARP message contains ten addresses, two for
the destination and two for the source of the message, three for the
requester and three for the target:
Destination Switch Address (HIPPI-LE)
Destination ULA (HIPPI_LE)
Source Switch Address (HIPPI-LE)
Source ULA (HIPPI-LE)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -