summaryrefslogtreecommitdiff
path: root/doc/rfc/rfc2734.txt
diff options
context:
space:
mode:
Diffstat (limited to 'doc/rfc/rfc2734.txt')
-rw-r--r--doc/rfc/rfc2734.txt1627
1 files changed, 1627 insertions, 0 deletions
diff --git a/doc/rfc/rfc2734.txt b/doc/rfc/rfc2734.txt
new file mode 100644
index 0000000..50c4e30
--- /dev/null
+++ b/doc/rfc/rfc2734.txt
@@ -0,0 +1,1627 @@
+
+
+
+
+
+
+Network Working Group P. Johansson
+Request for Comments: 2734 Congruent Software, Inc.
+Category: Standards Track December 1999
+
+
+ IPv4 over IEEE 1394
+
+Status of this Memo
+
+ This document specifies an Internet standards track protocol for the
+ Internet community, and requests discussion and suggestions for
+ improvements. Please refer to the current edition of the "Internet
+ Official Protocol Standards" (STD 1) for the standardization state
+ and status of this protocol. Distribution of this memo is unlimited.
+
+Copyright Notice
+
+ Copyright (C) The Internet Society (1999). All Rights Reserved.
+
+ABSTRACT
+
+ This document specifies how to use IEEE Std 1394-1995, Standard for a
+ High Performance Serial Bus (and its supplements), for the transport
+ of Internet Protocol Version 4 (IPv4) datagrams; it defines the
+ necessary methods, data structures and codes for that purpose. These
+ include not only packet formats and encapsulation methods for
+ datagrams, but also an address resolution protocol (1394 ARP) and a
+ multicast channel allocation protocol (MCAP). Both 1394 ARP and MCAP
+ are specific to Serial Bus; the latter permits management of Serial
+ Bus resources when used by IP multicast groups.
+
+TABLE OF CONTENTS
+
+ 1. INTRODUCTION.....................................................2
+ 2. DEFINITIONS AND NOTATION.........................................4
+ 2.1 Conformance..................................................4
+ 2.2 Glossary.....................................................4
+ 2.3 Abbreviations................................................6
+ 2.4 Numeric values...............................................6
+ 3. IP-CAPABLE NODES.................................................6
+ 4. LINK ENCAPSULATION AND FRAGMENTATION.............................7
+ 4.1 Global asynchronous stream packet (GASP) format..............8
+ 4.2 Encapsulation header.........................................9
+ 4.3 Link fragment reassembly....................................11
+ 5. SERIAL BUS ADDRESS RESOLUTION PROTOCOL (1394 ARP)...............11
+ 6. CONFIGURATION ROM...............................................14
+ 6.1 Unit_Spec_ID entry..........................................14
+ 6.2 Unit_SW_Version entry.......................................14
+
+
+
+Johansson Standards Track [Page 1]
+
+RFC 2734 IPv4 over IEEE 1394 December 1999
+
+
+ 6.3 Textual descriptors.........................................15
+ 7. IP UNICAST......................................................16
+ 8. IP BROADCAST....................................................17
+ 9. IP MULTICAST....................................................17
+ 9.1 MCAP message format.........................................18
+ 9.2 MCAP message domain.........................................21
+ 9.3 Multicast receive...........................................21
+ 9.4 Multicast transmit..........................................22
+ 9.5 Advertisement of channel mappings...........................23
+ 9.6 Overlapped channel mappings.................................23
+ 9.7 Transfer of channel ownership...............................24
+ 9.8 Redundant channel mappings..................................25
+ 9.9 Expired channel mappings....................................25
+ 9.10 Bus reset..................................................26
+ 10. IANA CONSIDERATIONS............................................26
+ 11. SECURITY CONSIDERATIONS........................................27
+ 12. ACKNOWLEDGEMENTS...............................................27
+ 13. REFERENCES.....................................................28
+ 14. EDITOR'S ADDRESS...............................................28
+ 15. Full Copyright Statement.......................................29
+
+1. INTRODUCTION
+
+ This document specifies how to use IEEE Std 1394-1995, Standard for a
+ High Performance Serial Bus (and its supplements), for the transport
+ of Internet Protocol Version 4 (IPv4) datagrams. It defines the
+ necessary methods, data structures and codes for that purpose and
+ additionally defines methods for an address resolution protocol (1394
+ ARP) and a multicast channel allocation protocol (MCAP)---both of
+ which are specific to Serial Bus.
+
+ The group of IEEE standards and supplements, draft or approved,
+ related to IEEE Std 1394-1995 is hereafter referred to either as 1394
+ or as Serial Bus.
+
+ 1394 is an interconnect (bus) that conforms to the CSR architecture,
+ ISO/IEC 13213:1994. Serial Bus permits communications between nodes
+ over shared physical media at speeds that range, at present, from 100
+ to 400 Mbps. Both consumer electronic applications (such as digital
+ VCRs, stereo systems, televisions and camcorders) and traditional
+ desktop computer applications (e.g., mass storage, printers and
+ tapes), have adopted 1394. Serial Bus is unique in its relevance to
+ both consumer electronic and computer domains and is EXPECTED to form
+ the basis of a home or small office network that combines both types
+ of devices.
+
+
+
+
+
+
+Johansson Standards Track [Page 2]
+
+RFC 2734 IPv4 over IEEE 1394 December 1999
+
+
+ The CSR architecture describes a memory-mapped address space that
+ Serial Bus implements as a 64-bit fixed addressing scheme. Within the
+ address space, ten bits are allocated for bus ID (up to a maximum of
+ 1,023 buses), six are allocated for node physical ID (up to 63 per
+ bus) while the remaining 48 bits (offset) describe a per node address
+ space of 256 terabytes. The CSR architecture, by convention, splits a
+ node's address space into two regions with different behavioral
+ characteristics. The lower portion, up to but not including 0xFFFF
+ F000 0000, is EXPECTED to behave as memory in response to read and
+ write transactions. The upper portion is more like a traditional IO
+ space: read and write transactions in this area usually have side
+ effects. Control and status registers (CSRs) that have FIFO behavior
+ customarily are implemented in this region.
+
+ Within the 64-bit address, the 16-bit node ID (bus ID and physical
+ ID) is analogous to a network hardware address---but 1394 node IDs
+ are variable and subject to reassignment each time one or more nodes
+ are added to or removed from the bus.
+
+ NOTE: Although the 16-bit node ID contains a bus ID, at present there
+ is no standard method to connect separately enumerated Serial Buses.
+ Active development of a standard for Serial Bus to Serial Bus bridges
+ is underway in the IEEE P1394.1 working group. Unless extended by
+ some future standard, the IPv4 over 1394 protocols specified by this
+ document may not operate correctly across bridges.
+
+ The 1394 link layer provides a packet delivery service with both
+ confirmed (acknowledged) and unconfirmed packets. Two levels of
+ service are available: "asynchronous" packets are sent on a best-
+ effort basis while "isochronous" packets are guaranteed to be
+ delivered with bounded latency. Confirmed packets are always
+ asynchronous but unconfirmed packets may be either asynchronous or
+ isochronous. Data payloads vary with implementations and may range
+ from one octet up to a maximum determined by the transmission speed
+ (at 100 Mbps, named S100, the maximum asynchronous data payload is
+ 512 octets while at S400 it is 2048 octets).
+
+ NOTE: Extensions underway in IEEE P1394b contemplate additional
+ speeds of 800, 1600 and 3200 Mbps.
+
+
+
+
+
+
+
+
+
+
+
+
+Johansson Standards Track [Page 3]
+
+RFC 2734 IPv4 over IEEE 1394 December 1999
+
+
+2. DEFINITIONS AND NOTATION
+
+2.1 Conformance
+
+ When used in this document, the keywords "MAY", "OPTIONAL",
+ "RECOMMENDED", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD" and "SHOULD
+ NOT" differentiate levels of requirements and optionality and are to
+ be interpreted as described in RFC 2119.
+
+ Several additional keywords are employed, as follows:
+
+ EXPECTED: A keyword used to describe the behavior of the hardware or
+ software in the design models assumed by this standard. Other
+ hardware and software design models may also be implemented.
+
+ IGNORED: A keyword that describes bits, octets, quadlets or fields
+ whose values are not checked by the recipient.
+
+ RESERVED: A keyword used to describe either objects---bits, octets,
+ quadlets and fields---or the code values assigned to these objects;
+ the object or the code value is set aside for future standardization.
+ A RESERVED object has no defined meaning and SHALL be zeroed by its
+ originator or, upon development of a future standard, set to a value
+ specified by such a standard. The recipient of a RESERVED object
+ SHALL NOT check its value. The recipient of an object whose code
+ values are defined by this standard SHALL check its value and reject
+ RESERVED code values.
+
+2.2 Glossary
+
+ The following terms are used in this standard:
+
+ address resolution protocol: A method for a requester to determine
+ the hardware (1394) address of an IP node from the IP address of the
+ node.
+
+ bus ID: A 10-bit number that uniquely identifies a particular bus
+ within a group of multiple interconnected buses. The bus ID is the
+ most significant portion of a node's 16-bit node ID. The value 0x3FF
+ designates the local bus; a node SHALL respond to requests addressed
+ to its 6-bit physical ID if the bus ID in the request is either 0x3FF
+ or the bus ID explicitly assigned to the node.
+
+ encapsulation header: A structure that precedes all IP data
+ transmitted over 1394. See also link fragment.
+
+ IP datagram: An Internet message that conforms to the format
+ specified by STD 5, RFC 791.
+
+
+
+Johansson Standards Track [Page 4]
+
+RFC 2734 IPv4 over IEEE 1394 December 1999
+
+
+ link fragment: A portion of an IP datagram transmitted within a
+ single 1394 packet. The data payload of the 1394 packet contains both
+ an encapsulation header and its associated link fragment. It is
+ possible to transmit datagrams without link fragmentation.
+
+ multicast channel allocation protocol: A method for multicast groups
+ to coordinate their use of Serial Bus resources (channels) if
+ multicast datagrams are transmitted on other than the default
+ broadcast channel.
+
+ multicast channel owner: A multicast source that has allocated a
+ channel for one or more multicast addresses and transmits MCAP
+ advertisements to communicate these channel mapping(s) to other
+ participants in the IP multicast group. When more than one source
+ transmits MCAP advertisements for the same channel number, the source
+ with the largest physical ID is the owner.
+
+ node ID: A 16-bit number that uniquely identifies a Serial Bus node
+ within a group of multiple interconnected buses. The most significant
+ ten bits are the bus ID and the least significant six bits are the
+ physical ID.
+
+ node unique ID: A 64-bit number that uniquely identifies a node among
+ all the Serial Bus nodes manufactured worldwide; also known as the
+ EUI-64 (Extended Unique Identifier, 64-bits).
+
+ octet: Eight bits of data.
+
+ packet: Any of the 1394 primary packets; these may be read, write or
+ lock requests (and their responses) or stream data. The term "packet"
+ is used consistently to differentiate Serial Bus primary packets from
+ 1394 ARP requests/responses, IP datagrams or MCAP
+ advertisements/solicitations.
+
+ physical ID: On a particular bus, this 6-bit number is dynamically
+ assigned during the self-identification process and uniquely
+ identifies a node on that bus.
+
+ quadlet: Four octets, or 32 bits, of data.
+
+ stream packet: A 1394 primary packet with a transaction code of 0x0A
+ that contains a block data payload. Stream packets may be either
+ asynchronous or isochronous according to the type of 1394 arbitration
+ employed.
+
+
+
+
+
+
+
+Johansson Standards Track [Page 5]
+
+RFC 2734 IPv4 over IEEE 1394 December 1999
+
+
+2.3 Abbreviations
+
+ The following are abbreviations that are used in this standard:
+
+ 1394 ARP Address resolution protocol (specific to 1394)
+ CSR Control and status register
+ CRC Cyclical redundancy checksum
+ EUI-64 Extended Unique Identifier, 64-bits
+ GASP Global asynchronous stream packet
+ IP Internet protocol (within this document, IPv4)
+ MCAP Multicast channel allocation protocol
+
+2.4 Numeric values
+
+ Decimal and hexadecimal numbers are used within this standard. By
+ editorial convention, decimal numbers are most frequently used to
+ represent quantities or counts. Addresses are uniformly represented
+ by hexadecimal numbers, which are also used when the value
+ represented has an underlying structure that is more apparent in a
+ hexadecimal format than in a decimal format.
+
+ Decimal numbers are represented by Arabic numerals or by their
+ English names. Hexadecimal numbers are prefixed by 0x and represented
+ by digits from the character set 0 - 9 and A - F. For the sake of
+ legibility, hexadecimal numbers are separated into groups of four
+ digits separated by spaces.
+
+ For example, both 42 and 0x2A represent the same numeric value.
+
+3. IP-CAPABLE NODES
+
+ Not all Serial Bus devices are capable of the reception and
+ transmission of 1394 ARP requests/responses or IP datagrams. An IP-
+ capable node SHALL fulfill the following minimum requirements:
+
+ - it SHALL implement configuration ROM in the general format
+ specified by ISO/IEC 13213:1994 and SHALL implement the bus
+ information block specified by IEEE P1394a and a unit directory
+ specified by this standard;
+
+ - the max_rec field in its bus information block SHALL be at least 8;
+ this indicates an ability to accept block write requests and
+ asynchronous stream packets with data payload of 512 octets. The
+ same ability SHALL also apply to read requests; that is, the node
+ SHALL be able to transmit a block response packet with a data
+ payload of 512 octets;
+
+
+
+
+
+Johansson Standards Track [Page 6]
+
+RFC 2734 IPv4 over IEEE 1394 December 1999
+
+
+ - it SHALL be isochronous resource manager capable, as specified by
+ IEEE P1394a;
+
+ - it SHALL support both reception and transmission of asynchronous
+ streams as specified by IEEE P1394a; and
+
+4. LINK ENCAPSULATION AND FRAGMENTATION
+
+ All IP datagrams (broadcast, unicast or multicast), 1394 ARP
+ requests/responses and MCAP advertisements/solicitations that are
+ transferred via 1394 block write requests or stream packets SHALL be
+ encapsulated within the packet's data payload. The maximum size of
+ data payload, in octets, is constrained by the speed at which the
+ packet is transmitted.
+
+ Table 1 - Maximum data payloads (octets)
+
+ Speed Asynchronous Isochronous
+ +------------------------------------+
+ | S100 | 512 | 1024 |
+ | S200 | 1024 | 2048 |
+ | S400 | 2048 | 4096 |
+ | S800 | 4096 | 8192 |
+ | S1600 | 8192 | 16384 |
+ | S3200 | 16384 | 32768 |
+ +------------------------------------+
+
+ NOTE: The maximum data payloads at speeds of S800 and faster may be
+ reduced (but will not be increased) as a result of standardization by
+ IEEE P1394b.
+
+ The maximum data payload for asynchronous requests and responses may
+ also be restricted by the capabilities of the sending or receiving
+ node(s); this is specified by max_rec in either the bus information
+ block or 1394 ARP response.
+
+ For either of these reasons, the maximum data payload transmissible
+ between IP-capable nodes may be less than the default 1500 octet
+ maximum transmission unit (MTU) specified by this document. This
+ requires that the encapsulation format also permit 1394 link-level
+ fragmentation and reassembly of IP datagrams.
+
+ NOTE: IP-capable nodes may operate with an MTU size larger than the
+ default, but the means by which a larger MTU is configured are beyond
+ the scope of this document.
+
+
+
+
+
+
+Johansson Standards Track [Page 7]
+
+RFC 2734 IPv4 over IEEE 1394 December 1999
+
+
+4.1 Global asynchronous stream packet (GASP) format
+
+ Some IP datagrams, as well as 1394 ARP requests and responses, may be
+ transported via asynchronous stream packets. When asynchronous stream
+ packets are used, their format SHALL conform to the global
+ asynchronous stream packet (GASP) format specified by IEEE P1394a.
+ The GASP format illustrated below is INFORMATIVE and reproduced for
+ ease of reference, only.
+
+ 1 2 3
+ 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | data_length |tag| channel | 0x0A | sy |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | header_CRC |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | source_ID | specifier_ID_hi |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ |specifier_ID_lo| version |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | |
+ +--- data ---+
+ | |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | data_CRC |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
+ Figure 1 - GASP format
+
+ The source_ID field SHALL specify the node ID of the sending node and
+ SHALL be equal to the most significant 16 bits of the sender's
+ NODE_IDS register.
+
+ The specifier_ID_hi and specifier_ID_lo fields together SHALL contain
+ the value 0x00 005E, the 24-bit organizationally unique identifier
+ (OUI) assigned by the IEEE Registration Authority (RA) to IANA.
+
+ The version field SHALL be one.
+
+ NOTE: Because the GASP format utilizes the first two quadlets of data
+ payload in an asynchronous stream packet format, the maximum payloads
+ cited in Table 1 are effectively reduced by eight octets. In the
+ clauses that follow, references to the first quadlet of data payload
+ mean the first quadlet usable for an IP datagram or 1394 ARP request
+ or response. When the GASP format is used, this is the third quadlet
+ of the data payload for the packet.
+
+
+
+
+
+Johansson Standards Track [Page 8]
+
+RFC 2734 IPv4 over IEEE 1394 December 1999
+
+
+4.2 Encapsulation header
+
+ All IP datagrams transported over 1394 are prefixed by an
+ encapsulation header with one of the formats illustrated below.
+
+ If an entire IP datagram may be transmitted within a single 1394
+ packet, it is unfragmented and the first quadlet of the data payload
+ SHALL conform to the format illustrated below.
+
+ 1 2 3
+ 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | lf| reserved | ether_type |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
+ Figure 2 - Unfragmented encapsulation header format
+
+ The lf field SHALL be zero.
+
+ The ether_type field SHALL indicate the nature of the datagram that
+ follows, as specified by the following table.
+
+ ether_type Datagram
+ +-------------------------+
+ | 0x0800 | IPv4 |
+ | 0x0806 | 1394 ARP |
+ | 0x8861 | MCAP |
+ +-------------------------+
+
+ NOTE: Other network protocols, identified by different values of
+ ether_type, may use the encapsulation formats defined herein but such
+ use is outside of the scope of this document.
+
+ In cases where the length of the datagram exceeds the maximum data
+ payload supported by the sender and all recipients, the datagram
+ SHALL be broken into link fragments; the first two quadlets of the
+ data payload for the first link fragment SHALL conform to the format
+ shown below.
+
+ 1 2 3
+ 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | lf|rsv| datagram_size | ether_type |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | dgl | reserved |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
+ Figure 3 - First fragment encapsulation header format
+
+
+
+Johansson Standards Track [Page 9]
+
+RFC 2734 IPv4 over IEEE 1394 December 1999
+
+
+ The second and subsequent link fragments (up to and including the
+ last) SHALL conform to the format shown below.
+
+ 1 2 3
+ 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | lf|rsv| datagram_size | rsv | fragment_offset |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | dgl | reserved |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
+ Figure 4 - Subsequent fragment(s) encapsulation header format
+
+ The definition and usage of the fields is as follows:
+
+ The lf field SHALL specify the relative position of the link
+ fragment within the IP datagram, as encoded by the following
+ table.
+
+ lf Position
+ +------------------------+
+ | 0 | Unfragmented |
+ | 1 | First |
+ | 2 | Last |
+ | 3 | Interior |
+ +------------------------+
+
+ datagram_size: The encoded size of the entire IP datagram. The
+ value of datagram_size SHALL be the same for all link fragments of
+ an IP datagram and SHALL be one less than the value of Total
+ Length in the datagram's IP header (see STD 5, RFC 791).
+
+ ether_type: This field is present only in the first link fragment
+ and SHALL have a value of 0x0800, which indicates an IPv4
+ datagram.
+
+ fragment_offset: This field is present only in the second and
+ subsequent link fragments and SHALL specify the offset, in octets,
+ of the fragment from the beginning of the IP datagram. The first
+ octet of the datagram (the start of the IP header) has an offset
+ of zero; the implicit value of fragment_offset in the first link
+ fragment is zero.
+
+
+
+
+
+
+
+
+
+Johansson Standards Track [Page 10]
+
+RFC 2734 IPv4 over IEEE 1394 December 1999
+
+
+ dgl: The value of dgl (datagram label) SHALL be the same for all
+ link fragments of an IP datagram. The sender SHALL increment dgl
+ for successive, fragmented datagrams; the incremented value of dgl
+ SHALL wrap from 65,535 back to zero.
+
+ All IP datagrams, regardless of the mode of transmission (block write
+ requests or stream packets) SHALL be preceded by one of the above
+ described encapsulation headers. This permits uniform software
+ treatment of datagrams without regard to the mode of their
+ transmission.
+
+4.3 Link fragment reassembly
+
+ The recipient of an IP datagram transmitted via more than one 1394
+ packet SHALL use both the sender's source_ID (obtained from either
+ the asynchronous packet header or the GASP header) and dgl to
+ identify all the link fragments from a single datagram.
+
+ Upon receipt of a link fragment, the recipient may place the data
+ payload (absent the encapsulation header) within an IP datagram
+ reassembly buffer at the location specified by fragment_offset. The
+ size of the reassembly buffer may be determined from datagram_size.
+
+ If a link fragment is received that overlaps another fragment
+ identified by the same source_ID and dgl, the fragment(s) already
+ accumulated in the reassembly buffer SHALL be discarded. A fresh
+ reassembly may be commenced with the most recently received link
+ fragment. Fragment overlap is determined by the combination of
+ fragment_offset from the encapsulation header and data_length from
+ the 1394 packet header.
+
+ Upon detection of a Serial Bus reset, recipient(s) SHALL discard all
+ link fragments of all partially reassembled IP datagrams and
+ sender(s) SHALL discard all not yet transmitted link fragments of all
+ partially transmitted IP datagrams.
+
+5. SERIAL BUS ADDRESS RESOLUTION PROTOCOL (1394 ARP)
+
+ Methods to determine the hardware address of a device from its
+ corresponding IP address are inextricably tied to the transport
+ medium utilized by the device. In the description below and
+ throughout this document, the acronym 1394 ARP pertains solely to an
+ address resolution protocol whose methods and data structures are
+ specific to 1394.
+
+ 1394 ARP requests SHALL be transmitted by the same means as broadcast
+ IP datagrams; 1394 ARP responses MAY be transmitted in the same way
+ or they MAY be transmitted as block write requests addressed to the
+
+
+
+Johansson Standards Track [Page 11]
+
+RFC 2734 IPv4 over IEEE 1394 December 1999
+
+
+ sender_unicast_FIFO address identified by the 1394 ARP request. A
+ 1394 ARP request/response is 32 octets and SHALL conform to the
+ format illustrated by Figure 5.
+
+ 1 2 3
+ 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | hardware_type (0x0018) | protocol_type (0x0800) |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | hw_addr_len | IP_addr_len | opcode |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | |
+ +--- sender_unique_ID ---+
+ | |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | sender_max_rec| sspd | sender_unicast_FIFO_hi |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | sender_unicast_FIFO_lo |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | sender_IP_address |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | target_IP_address |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
+ Figure 5 - 1394 ARP request/response format
+
+ 1394 ARP requests and responses transported by asynchronous stream
+ packets SHALL be encapsulated within the GASP format specified by
+ IEEE P1394a (see also 4.1). The recipient of a 1394 ARP request or
+ response SHALL ignore it unless the most significant ten bits of the
+ source_ID field (whether obtained from the GASP header of an
+ asynchronous stream packet or the packet header of a block write
+ request) are equal to either 0x3FF or the most significant ten bits
+ of the recipient's NODE_IDS register.
+
+ Field usage in a 1394 ARP request/response is as follows:
+
+ hardware_type: This field indicates 1394 and SHALL have a value of
+ 0x0018.
+
+ protocol_type: This field SHALL have a value of 0x0800; this
+ indicates that the protocol addresses in the 1394 ARP
+ request/response conform to the format for IP addresses.
+
+ hw_addr_len: This field indicates the size, in octets, of the
+ 1394-dependent hardware address associated with an IP address and
+ SHALL have a value of 16.
+
+
+
+
+Johansson Standards Track [Page 12]
+
+RFC 2734 IPv4 over IEEE 1394 December 1999
+
+
+ IP_addr_len: This field indicates the size, in octets, of an IP
+ version 4 (IPv4) address and SHALL have a value of 4.
+
+ opcode: This field SHALL be one to indicate a 1394 ARP request and
+ two to indicate a 1394 ARP response.
+
+ sender_unique_ID: This field SHALL contain the node unique ID of
+ the sender and SHALL be equal to that specified in the sender's
+ bus information block.
+
+ sender_max_rec: This field SHALL be equal to the value of max_rec
+ in the sender's configuration ROM bus information block.
+
+ sspd: This field SHALL be set to the lesser of the sender's link
+ speed and PHY speed. The link speed is the maximum speed at which
+ the link may send or receive packets; the PHY speed is the maximum
+ speed at which the PHY may send, receive or repeat packets. The
+ table below specifies the encoding used for sspd; all values not
+ specified are RESERVED for future standardization.
+
+ Table 2 - Speed codes
+
+ Value Speed
+ +---------------+
+ | 0 | S100 |
+ | 1 | S200 |
+ | 2 | S400 |
+ | 3 | S800 |
+ | 4 | S1600 |
+ | 5 | S3200 |
+ +---------------+
+
+ sender_unicast_FIFO_hi and sender_unicast_FIFO_lo: These fields
+ together SHALL specify the 48-bit offset of the sender's FIFO
+ available for the receipt of IP datagrams in the format specified
+ by section 6. The offset of a sender's unicast FIFO SHALL NOT
+ change, except as the result of a power reset.
+
+ sender_IP_address: This field SHALL specify the IP address of the
+ sender.
+
+ target_IP_address: In a 1394 ARP request, this field SHALL specify
+ the IP address from which the sender desires a response. In a 1394
+ ARP response, it SHALL be IGNORED.
+
+
+
+
+
+
+
+Johansson Standards Track [Page 13]
+
+RFC 2734 IPv4 over IEEE 1394 December 1999
+
+
+6. CONFIGURATION ROM
+
+ Configuration ROM for IP-capable nodes SHALL contain a unit directory
+ in the format specified by this standard. The unit directory SHALL
+ contain Unit_Spec_ID and Unit_SW_Version entries, as specified by
+ ISO/IEC 13213:1994.
+
+ The unit directory may also contain other entries permitted by
+ ISO/IEC 13213:1994 or IEEE P1212r.
+
+6.1 Unit_Spec_ID entry
+
+ The Unit_Spec_ID entry is an immediate entry in the unit directory
+ that specifies the organization responsible for the architectural
+ definition of the Internet Protocol capabilities of the device.
+
+ 1 2 3
+ 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | 0x12 | unit_spec_ID (0x00 005E) |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
+ Figure 6 - Unit_Spec_ID entry format
+
+ The value of unit_spec_ID SHALL be 0x00 005E, the registration ID
+ (RID) obtained by IANA from the IEEE RA. The value indicates that the
+ IETF and its technical committees are responsible for the maintenance
+ of this standard.
+
+6.2 Unit_SW_Version entry
+
+ The Unit_SW_Version entry is an immediate entry in the unit directory
+ that, in combination with the unit_spec_ID, specifies the document
+ that defines the software interface of the unit.
+
+ 1 2 3
+ 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | 0x13 | unit_sw_version (0x00 0001) |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
+ Figure 7 - Unit_SW_Version entry format
+
+ The value of unit_sw_version SHALL be one, which indicates that the
+ device complies with the normative requirements of this standard.
+
+
+
+
+
+
+Johansson Standards Track [Page 14]
+
+RFC 2734 IPv4 over IEEE 1394 December 1999
+
+
+6.3 Textual descriptors
+
+ Textual descriptors within configuration ROM are OPTIONAL; when
+ present they provide additional descriptive information intended to
+ be intelligible to a human user. IP-capable nodes SHOULD associate a
+ textual descriptor with a content of "IANA" with the Unit_Spec_ID
+ entry and a textual descriptor with a content of "IPv4" for the
+ Unit_SW_Version entry.
+
+ The figure below illustrates a unit directory implemented by an IP-
+ capable node; it includes OPTIONAL textual descriptors. Although the
+ textual descriptor leaves are not part of the unit directory, for the
+ sake of simplicity they are shown immediately following the unit
+ directory.
+
+ 1 2 3
+ 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | directory_length (4) | CRC |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | 0x12 | unit_spec_ID (0x00 005E) |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | 0x81 | textual descriptor offset (3) |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | 0x13 | unit_sw_version |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | 0x81 | textual descriptor offset (5) |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | textual_descriptor_length (3) | CRC |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | |
+ +--- zeros ---+
+ | |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | "I" | "A" | "N" | "A" |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | textual_descriptor_length (3) | CRC |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | |
+ +--- zeros ---+
+ | |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | "I" | "P" | "v" | "4" |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
+ Figure 9 - Sample unit directory and textual descriptors
+
+
+
+
+
+Johansson Standards Track [Page 15]
+
+RFC 2734 IPv4 over IEEE 1394 December 1999
+
+
+7. IP UNICAST
+
+ A unicast IP datagram may be transmitted to a recipient within a 1394
+ primary packet that has one of the following transaction codes:
+
+ tcode Description Arbitration
+ +--------------------------------------+
+ | 0x01 | Block write | Asynchronous |
+ | 0x0A | Stream packet | Isochronous |
+ | 0x0A | Stream packet | Asynchronous |
+ +--------------------------------------+
+
+ Block write requests are suitable when 1394 link-level
+ acknowledgement is desired but there is no need for bounded latency
+ in the delivery of the packet (quality of service).
+
+ Isochronous stream packets provide quality of service guarantees but
+ no 1394 link-level acknowledgement.
+
+ The last method, asynchronous stream packets, is mentioned only for
+ the sake of completeness. This method SHOULD NOT be used for IP
+ unicast, since it provides for neither 1394 link-level acknowledgment
+ nor quality of service---and consumes a valuable resource, a channel
+ number.
+
+ Regardless of the IP unicast method employed, asynchronous or
+ isochronous, it is the responsibility of the sender of a unicast IP
+ datagram to determine the maximum data payload that may be used in
+ each packet. The necessary information may be obtained from:
+
+ - the SPEED_MAP maintained by the 1394 bus manager, which provides
+ the maximum transmission speed between any two nodes on the local
+ Serial Bus. The bus manager analyzes bus topology in order to
+ construct the speed map; the maximum transmission speed between
+ nodes reflects the capabilities of the intervening nodes. The speed
+ in turn implies a maximum data payload (see Table 1);
+
+ - the sender_max_rec field in a 1394 ARP response; or
+
+ - other methods beyond the scope of this standard.
+
+ The maximum data payload SHALL be the minimum of the largest data
+ payload implemented by the sender, the recipient and the PHYs of all
+ intervening nodes (the last is implicit in the SPEED_MAP entry
+ indexed by sender and recipient).
+
+
+
+
+
+
+Johansson Standards Track [Page 16]
+
+RFC 2734 IPv4 over IEEE 1394 December 1999
+
+
+ NOTE: The SPEED_MAP is derived from the self-ID packets transmitted
+ by all 1394 nodes subsequent to a bus reset. An IP-capable node may
+ observe the self-ID packets directly.
+
+ Unicast IP datagrams whose quality of service is best-effort SHALL be
+ contained within the data payload of 1394 block write transactions
+ addressed to the source_ID and sender_unicast_FIFO obtained from a
+ 1394 ARP response.
+
+ If no acknowledgement is received in response to a unicast block
+ write request it is uncertain whether or not the data payload was
+ received by the target.
+
+ NOTE: An acknowledgment may be absent because the target is no longer
+ functional, may not have received the packet because of a header CRC
+ error or may have received the packet successfully but the
+ acknowledge sent in response was corrupted.
+
+ Unicast IP datagrams that require quality of service other than
+ best-effort are beyond the scope of this standard.
+
+8. IP BROADCAST
+
+ Broadcast IP datagrams are encapsulated according to the
+ specifications of section 4 and are transported by asynchronous
+ stream packets. There is no quality of service provision for IP
+ broadcast over 1394. The channel number used for IP broadcast is
+ specified by the BROADCAST_CHANNEL register.
+
+ All broadcast IP datagrams SHALL use asynchronous stream packets
+ whose channel number is equal to the channel field from the
+ BROADCAST_CHANNEL register.
+
+ Although 1394 permits the use of previously allocated channel
+ number(s) for up to one second subsequent to a bus reset, IP-capable
+ nodes SHALL NOT transmit asynchronous stream packets at any time the
+ valid bit in their BROADCAST_CHANNEL register is zero. Since the
+ valid bit is automatically cleared to zero by a bus reset, this
+ prohibits the use of 1394 ARP or broadcast IP until the IRM allocates
+ a channel number.
+
+9. IP MULTICAST
+
+ Multicast IP datagrams are encapsulated according to the
+ specifications of section 4 and are transported by stream packets.
+ Asynchronous streams are used for best-effort IP multicast; quality
+ of service other than best-effort is beyond the scope of this
+ standard.
+
+
+
+Johansson Standards Track [Page 17]
+
+RFC 2734 IPv4 over IEEE 1394 December 1999
+
+
+ By default, all best-effort IP multicast SHALL use asynchronous
+ stream packets whose channel number is equal to the channel field
+ from the BROADCAST_CHANNEL register. In particular, datagrams
+ addressed to 224.0.0.1 and 224.0.0.2 SHALL use this channel number.
+ Best-effort IP multicast for other IP multicast group addresses may
+ utilize a different channel number if such a channel number is
+ allocated and advertised prior to use, as described below.
+
+ IP-capable nodes may transmit best-effort IP multicast only if one of
+ the following two conditions is met:
+
+ - the channel number in the stream packet is equal to the channel
+ number field in the BROADCAST_CHANNEL register and the valid bit in
+ the same register is one; or
+
+ - for other channel number(s), some source of IP multicast has
+ allocated and is advertising the channel number used.
+
+ The remainder of this section describes a multicast channel
+ allocation protocol (MCAP) employed by both IP multicast sources and
+ recipients whenever a channel number other than the default is used.
+ MCAP is a cooperative protocol; the participants exchange messages
+ over the broadcast channel used by all IP-capable nodes on a
+ particular Serial Bus.
+
+ CAUTION: This document does not define facilities and methods for
+ shared use of a single channel number (other than the default channel
+ number specified by the BROADCAST_CHANNEL register) by more than one
+ IP multicast address.
+
+9.1 MCAP message format
+
+ MCAP messages, whether sent by a multicast channel owner or
+ recipient, are transported as the data portion of a GASP packet and
+ have the format illustrated below. The first four octets of the
+ message are fixed; the remainder consists of variable-length tuples,
+ each of which encodes information about a particular IP multicast
+ group. Individual MCAP messages SHALL NOT be fragmented and SHALL be
+ encapsulated within a stream packet as ether_type 0x8861.
+
+
+
+
+
+
+
+
+
+
+
+
+Johansson Standards Track [Page 18]
+
+RFC 2734 IPv4 over IEEE 1394 December 1999
+
+
+ 1 2 3
+ 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | length | reserved | opcode |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | |
+ + message data +
+ | |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
+ Figure 10 - MCAP message format
+
+ Field usage in an MCAP message is as follows:
+
+ length: This field SHALL contain the size, in octets, of the
+ entire MCAP message.
+
+ opcode: This field SHALL have one of the values specified by the
+ table below.
+
+ opcode Name Comment
+ +----------------------------------------------------------------+
+ | 0 | Advertise | Sent by a multicast channel owner to |
+ | | | broadcast the current mapping(s) from one |
+ | | | or more group addresses to their |
+ | | | corresponding channel number(s). |
+ | 1 | Solicit | Sent to request multicast channel owner(s) |
+ | | | to advertise the indicated channel |
+ | | | mapping(s) as soon as possible. |
+ +----------------------------------------------------------------+
+
+ message data: The remainder of the MCAP message is variable in
+ length and SHALL consist of zero or more group address descriptors
+ with the format illustrated below.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Johansson Standards Track [Page 19]
+
+RFC 2734 IPv4 over IEEE 1394 December 1999
+
+
+ 1 2 3
+ 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | length | type | reserved |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | expiration | channel | speed | reserved |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | bandwidth |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | |
+ + group_address +
+ | |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
+ Figure 11 - MCAP group address descriptor format
+
+ length: This field SHALL contain the size, in octets, of the MCAP
+ group address descriptor.
+
+ type: This field SHALL have a value of one, which indicates a
+ group address descriptor.
+
+ expiration: The usage of this field varies according to opcode.
+ For solicit messages the expiration field SHALL be IGNORED.
+ Otherwise, for advertisements, this field SHALL contain a time-
+ stamp, in seconds, that specifies a future time after which the
+ channel number specified by channel may no longer be used.
+
+ channel: This field is valid only for advertise messages, in which
+ case it SHALL specify an allocated channel number, in the range
+ zero to 63 inclusive. All other values are RESERVED.
+
+ speed: This field is valid only for advertise messages, in which
+ case it SHALL specify the speed at which stream packets for the
+ indicated channel are transmitted. Table 2 specifies the encoding
+ used for speed.
+
+ bandwidth: This field SHALL be zero; it is allocated in the group
+ address descriptor to accommodate future extensions to MCAP that
+ specify quality of service and utilize the isochronous
+ capabilities of Serial Bus.
+
+ group_address: This variable length field SHALL specify the IP
+ address of a particular IP multicast group. The length of
+ group_address, in octets, is derived from the length of the group
+ address descriptor by subtracting 12 from the length field.
+
+
+
+
+
+Johansson Standards Track [Page 20]
+
+RFC 2734 IPv4 over IEEE 1394 December 1999
+
+
+9.2 MCAP message domain
+
+ MCAP messages carry information valid only for the local Serial Bus
+ on which they are transmitted. Recipients of MCAP messages SHALL
+ IGNORE all MCAP messages from other than the local bus, as follows.
+ The source_ID of the sender is contained in the GASP header that
+ precedes the encapsulated MCAP message. A recipient of an MCAP
+ message SHALL examine the most significant ten bits of source_ID from
+ the GASP header; if they are not equal to either 0x3FF or the most
+ significant ten bits of the recipient's NODE_IDS register, the
+ recipient SHALL IGNORE the message.
+
+ Within an MCAP message domain, the owner of a channel mapping is
+ identified by the source_ID field in the GASP header of an MCAP
+ advertisement. The owner is the node with the largest physical ID,
+ the least significant six bits of source_ID.
+
+9.3 Multicast receive
+
+ An IP-capable device that wishes to receive multicast data SHALL
+ first ascertain the channel mapping (if any) that exists between a
+ group address and a channel number other than the default channel
+ specified by the BROADCAST_CHANNEL register. Such a device may
+ observe the MCAP advertisements on the broadcast channel for the
+ desired channel mapping(s).
+
+ An intended multicast recipient may transmit MCAP solicitation
+ requests in order to request multicast channel owner(s) to broadcast
+ advertisements sooner than the next ten second interval. Originators
+ of MCAP solicitation requests SHALL limit the rate at which they are
+ transmitted. Subsequent to sending a solicitation request, the
+ originator SHALL NOT send another MCAP solicitation request until ten
+ seconds have elapsed.
+
+ In either case, if a mapping exists for the group address for other
+ than the default channel, an MCAP advertise message is EXPECTED
+ within ten seconds. Upon receipt of an MCAP advertise message that
+ describes one or more channel mappings, the intended multicast
+ recipient may receive IP datagrams on the indicated channel number(s)
+ until the expiration time.
+
+ If multiple MCAP advertise messages are observed that specify the
+ same group address, the channel number SHALL be obtained from the
+ advertisement message with the largest physical ID, which SHALL be
+ obtained from the least significant six bits of source_ID from the
+ GASP header.
+
+
+
+
+
+Johansson Standards Track [Page 21]
+
+RFC 2734 IPv4 over IEEE 1394 December 1999
+
+
+ If no MCAP advertise message is received for a particular group
+ address within ten seconds, no multicast source(s) are active for
+ channel(s) other than the default. Either there is there is no
+ multicast data or it is being transmitted on the default channel.
+
+ Once a multicast recipient has observed an advertisement for the
+ desired group address, it MAY receive multicast data on either the
+ default broadcast channel or the channel number(s) indicated but it
+ SHALL continue to monitor the default broadcast channel for MCAP
+ advertisements for the same group address in order to refresh the
+ expiration time of channel number(s) in use.
+
+9.4 Multicast transmit
+
+ An IP-capable device that wishes to transmit multicast data on other
+ than the default channel SHALL first ascertain whether or not another
+ multicast source has already allocated a channel number for the group
+ address. The intended multicast source may transmit an MCAP
+ solicitation request with one or more group address descriptors.
+
+ Whether or not a solicitation request has been transmitted, the
+ intended multicast source SHALL monitor the broadcast channel for
+ MCAP advertisements. If a channel mapping already exists for the
+ group address, an MCAP advertisement SHOULD be received within ten
+ seconds. In this case the intended multicast source may commence
+ transmission of IP datagrams on the indicated channel number(s) and
+ may continue to do so until their expiration time. The multicast
+ source SHALL monitor MCAP advertisements in order to refresh the
+ expiration time of channel number(s) in use.
+
+ When no other multicast source has established a channel mapping for
+ the group address, the intended multicast source may attempt to
+ allocate a channel number from the isochronous resource manager's
+ CHANNELS_AVAILABLE register according to the procedures described in
+ IEEE P1394a. If the channel number allocation is successful, the
+ multicast source SHALL advertise the new channel mapping(s) as soon
+ as possible. Once 100 ms elapses subsequent to the initial
+ advertisement of a newly allocated channel number , the multicast
+ source may transmit IP datagrams using the channel number advertised.
+
+ Multicast IP datagrams may be transmitted on the default channel
+ until the sender observes (or transmits) an advertisement that
+ specifies non- default channel mapping(s) for the multicast
+ addresses. This permits the smooth transition of multicast from the
+ default channel to an explicitly allocated channel.
+
+
+
+
+
+
+Johansson Standards Track [Page 22]
+
+RFC 2734 IPv4 over IEEE 1394 December 1999
+
+
+ Once a multicast source has advertised a channel mapping, it SHALL
+ continue to transmit MCAP advertisements for the channel mapping
+ unless it either a) transfers ownership to another multicast source,
+ b) permits the channel mapping to expire without transfer or c) in
+ the case of overlapped channel mappings, relinquishes control of the
+ channel mapping to another multicast source.
+
+9.5 Advertisement of channel mappings
+
+ Each multicast source SHALL periodically broadcast an advertisement
+ of all IP multicast group addresses for which it has allocated a
+ channel number different from the default multicast channel number.
+ An advertisement SHALL consist of a single MCAP message with an
+ opcode of zero that contains one or more group address descriptors
+ (one for each group address assigned a channel number other than that
+ specified by the BROADCAST_CHANNEL register).
+
+ Within each group address descriptor, the group_address and channel
+ fields associate an IP multicast group address with a Serial Bus
+ channel number. The speed field specifies the maximum 1394 speed at
+ which any of the senders within the IP multicast group is permitted
+ to transmit data. The expiration field specifies the current time or
+ a future time after which the channel mapping(s) are no longer valid.
+ Except when a channel owner intends to relinquish ownership (as
+ described in 9.7 below), the expiration time SHALL be at least 60
+ seconds in the future measured from the time the advertisement is
+ transmitted.
+
+ No more than ten seconds SHALL elapse from the transmission of its
+ most recent advertisement before the owner of a channel mapping
+ initiates transmission of the subsequent advertisement. The owner of
+ a channel mapping SHOULD transmit an MCAP advertisement in response
+ to a solicitation as soon as possible after the receipt of the
+ request.
+
+9.6 Overlapped channel mappings
+
+ When two intended multicast sources wish to transmit to the same IP
+ multicast group and no channel mapping exists for the group address,
+ there is a chance that both will allocate channel numbers and both
+ will advertise the channel mappings. These channel mappings overlap,
+ i.e., the same group address is mapped to more than one channel
+ number in MCAP advertisements with nonzero expiration times.
+
+ Multicast channel owners SHALL monitor MCAP advertisements in order
+ to detect overlapped channel mappings. MCAP advertisements whose
+ expiration field has a value less than 60 SHALL be ignored for the
+ purpose of overlapped channel detection. When an overlapped channel
+
+
+
+Johansson Standards Track [Page 23]
+
+RFC 2734 IPv4 over IEEE 1394 December 1999
+
+
+ mapping is detected, the owner with the largest physical ID (as
+ determined by the least significant six bits of source_ID from the
+ GASP header) is NOT REQUIRED to take any action. The channel numbers
+ advertised by owners with smaller physical IDs are invalid; their
+ owners SHALL cease transmission of both IP datagrams and MCAP
+ advertisements that use the invalid channel numbers. As soon as these
+ channel mappings expire , their owners SHALL deallocate any unused
+ channel numbers as described in 9.8 below.
+
+ Recipients of MCAP advertisements that detect overlapped channel
+ mappings SHALL ignore the advertisements from multicast channel
+ owner(s) with the smaller physical IDs and SHALL NOT transmit IP
+ datagrams that use the invalid channel number. It is possible for
+ some channel mappings in a single MCAP advertisement to be valid even
+ if others SHALL be IGNORED as a result of overlap.
+
+9.7 Transfer of channel ownership
+
+ The owner of a channel mapping may cease multicast transmission on a
+ particular channel, in which case it SHOULD invalidate the channel
+ mapping and in some cases deallocate the channel number. Because
+ other multicast sources may be using the same channel mapping, an
+ orderly process is defined to transfer channel ownership.
+
+ The owner of an existing channel mapping that wishes to release the
+ mapping SHALL commence a timer to measure the time remaining before
+ the anticipated release of the mapping and its associated channel.
+ Until the timer counts down to zero, the owner SHOULD continue to
+ transmit MCAP advertisements for the affected channel but SHALL
+ adjust expiration in each advertisement to reflect the time remaining
+ until the channel is to be deallocated. If the owner is unable to
+ transmit MCAP advertisements until the timer reaches zero, it SHALL
+ initiate a bus reset. Otherwise, the sequence of expiration times
+ transmitted by the owner intending to release the mapping SHALL
+ decrease with each succeeding advertisement. If other multicast
+ source(s) are using the same channel mapping and observe an
+ expiration time less than or equal to 60 seconds, they SHALL commence
+ transmitting MCAP advertisements for the channel mapping with
+ refreshed expiration times greater than or equal to 60 seconds that
+ maintain the channel mapping. Any contention that occurs between
+ multiple sources that attempt to claim ownership of the channel
+ mapping SHALL be resolved as described in 9.8. If the original owner
+ observes an MCAP advertisement for the channel to be relinquished
+ before its own timer has expired, it SHALL NOT deallocate the channel
+ number.
+
+
+
+
+
+
+Johansson Standards Track [Page 24]
+
+RFC 2734 IPv4 over IEEE 1394 December 1999
+
+
+ Otherwise, if the owner's timer expires without the observation of a
+ MCAP advertisement by another node, the owner of the channel number
+ SHALL subsequently deallocate the channel as described in 9.8. If the
+ intended owner of the channel mapping observes an MCAP advertisement
+ whose expiration field is zero, orderly transfer of the channel(s)
+ from the former owner has failed. The intended owner SHALL either
+ stop reception and transmission on the expired channel number(s) or
+ allocate different channel number(s) as specified by 9.4.
+
+9.8 Redundant channel mappings
+
+ When ownership of a channel mapping is transferred from one multicast
+ source to another, it is possible for more than one device to claim
+ ownership. This results in redundant MCAP advertisements, transmitted
+ by different sources, each of which specifies the same multicast
+ group address and channel. A procedure similar to that of 9.6 SHALL
+ resolve the contention for channel ownership.
+
+ Multicast channel owners SHALL monitor MCAP advertisements in order
+ to detect redundant channel mappings. MCAP advertisements whose
+ expiration field has a value less than 60 SHALL be ignored for the
+ purpose of redundant channel detection. When a redundant channel
+ mapping is detected, the owner with the largest physical ID (as
+ determined by the least significant six bits of source_ID from the
+ GASP header) is NOT REQUIRED to take any action. The owner(s) with
+ smaller physical IDs SHALL cease transmission of MCAP advertisements
+ for the redundant channel number but SHALL NOT deallocate the channel
+ number.
+
+9.9 Expired channel mappings
+
+ A channel mapping expires when expiration seconds have elapsed since
+ the most recent MCAP advertisement. At this time, multicast
+ recipients SHALL stop reception on the expired channel number(s).
+ Also at this time, the owner of the channel mapping(s) SHALL transmit
+ an MCAP advertisement with expiration cleared to zero and SHALL
+ continue to transmit such advertisements until 30 seconds have
+ elapsed since the expiration of the channel mapping. Once this
+ additional 30-second period has elapsed, the owner of the channel
+ mapping(s) SHALL deallocate the channel number(s) and indicate their
+ availability in the isochronous resource manager's CHANNELS_AVAILABLE
+ register.
+
+ If an IP-capable device observes an MCAP advertisement whose
+ expiration field is zero, it SHALL NOT attempt to allocate any of the
+ channel number(s) specified until 30 seconds have elapsed since the
+ most recent such advertisement.
+
+
+
+
+Johansson Standards Track [Page 25]
+
+RFC 2734 IPv4 over IEEE 1394 December 1999
+
+
+9.10 Bus reset
+
+ A bus reset SHALL invalidate all multicast channel mappings and SHALL
+ cause all multicast recipients and senders to zero all MCAP
+ advertisement interval timers.
+
+ Prior owners of multicast channel mappings may reallocate a channel
+ number from the isochronous resource manager's CHANNELS_AVAILABLE
+ register and resume broadcast of MCAP advertisements as soon as a
+ channel is allocated. If channel reallocation is attempted, the prior
+ owner SHOULD use the same channel number allocated prior to the bus
+ reset and may commence reallocation immediately upon completion of
+ the bus reset so long as the same channel number is reused. If the
+ prior owner elects to allocate a different channel number, it SHALL
+ wait until at least one second has elapsed since the completion of
+ the bus reset before attempting to allocate a new channel number.
+
+ Intended or prior recipients or transmitters of multicast on other
+ than the default channel SHALL NOT transmit MCAP solicitation
+ requests until at least ten seconds have elapsed since the completion
+ of the bus reset. Multicast data on other than the default channel
+ SHALL NOT be received or transmitted until an MCAP advertisement is
+ observed or transmitted for the IP multicast group address.
+
+ Intended or prior transmitters of multicast on other than the default
+ channel that did not own a channel mapping for the IP multicast group
+ address prior to the bus reset SHALL NOT attempt to allocate a
+ channel number from the isochronous resource manager's
+ CHANNELS_AVAILABLE register until at least ten seconds have elapsed
+ since the completion of the bus reset. Subsequent to this ten second
+ delay, intended or prior transmitters of multicast may follow the
+ procedures specified by 9.4 to allocate a channel number and
+ advertise the channel mapping.
+
+10. IANA CONSIDERATIONS
+
+ This document necessitates the creation and management of a new name
+ space (registry) by IANA. The need for such a registry arises out of
+ the method by which protocol interfaces are uniquely identified by
+ bus standards compliant with ISO/IEC 13213:1994, CSR Architecture.
+ This is explained in more detail in section 6; the essence is that a
+ globally unique 48-bit number SHALL identify the document that
+ specifies the protocol interface. The 48-bit number is the
+ concatenation of 0x00 005E (a registration ID, or RID, granted to
+ IANA by the IEEE Registration Authority) and a second 24-bit number
+ administered by IANA.
+
+
+
+
+
+Johansson Standards Track [Page 26]
+
+RFC 2734 IPv4 over IEEE 1394 December 1999
+
+
+ The IEEE RA RECOMMENDS that the policy for management of the second
+ 24-bit number be chosen to maximize the quantity of usable numbers
+ with the range of possible values. In particular, the IEEE RA
+ RECOMMENDS that the assignment scheme not apply a structure to the
+ number (e.g., the allocation of a version field within the number)
+ since this would tend to waste large portions of the range.
+
+ The new name space is "CSR Protocol Identifiers". The values zero and
+ 0xFF FFFF are reserved and SHALL NOT be allocated by IANA. The value
+ one is allocated to this document. The remaining numbers SHALL be
+ managed by IANA and allocated as necessary to identify Internet-
+ Drafts that become IESG standards track documents.
+
+ Regardless of the assignment method elected by IANA, a registry of
+ all assigned version numbers SHOULD be maintained at one or more
+ Internet sites and should clearly identify the relevant standard
+ identified by the combination of the RID and version number.
+
+11. SECURITY CONSIDERATIONS
+
+ This document specifies the use of an unsecured link layer, Serial
+ Bus, for the transport of IPv4 datagrams. Serial Bus is vulnerable to
+ denial of service attacks; it is also possible for devices to
+ eavesdrop on data or present forged identities. Implementers who
+ utilize Serial Bus for IPv4 SHOULD consider appropriate counter-
+ measures within application or other layers.
+
+12. ACKNOWLEDGEMENTS
+
+ This document represents the efforts of the IP/1394 Working Group.
+ The editor wishes to acknowledge the contributions made by all the
+ active participants, either on the reflector or at face-to-face
+ meetings, which have advanced the technical content.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Johansson Standards Track [Page 27]
+
+RFC 2734 IPv4 over IEEE 1394 December 1999
+
+
+13. REFERENCES
+
+ Normative reference to standards under development at the time of
+ this document's publication shall utilize the most current draft
+ until such time as it is replaced by an approved standard.
+
+ [1] IEEE Std 1394-1995, Standard for a High Performance Serial Bus
+
+ [2] ISO/IEC 13213:1994, Control and Status Register (CSR)
+ Architecture for Microcomputer Buses
+
+ [3] IEEE Project P1394a, Draft Standard for a High Performance Serial
+ Bus (Supplement)
+
+ [4] IEEE Project P1394b, Draft Standard for a High Performance Serial
+ Bus (Supplement)
+
+ [5] Postel, J., "Internet Protocol Darpa Internet Program Protocol
+ Specification", RFC 791, September 1981.
+
+ [6] Bradner, S., "Key words for use in RFCs to Indicate Requirement
+ Levels", RFC 2119, March 1997.
+
+14. EDITOR'S ADDRESS
+
+ Peter Johansson
+ Congruent Software, Inc.
+ 98 Colorado Avenue
+ Berkeley, CA 94602
+
+ Phone: (510) 527-3926
+ Fax: (510) 527-3856
+ EMail: pjohansson@aol.com
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Johansson Standards Track [Page 28]
+
+RFC 2734 IPv4 over IEEE 1394 December 1999
+
+
+15. Full Copyright Statement
+
+ Copyright (C) The Internet Society (1999). All Rights Reserved.
+
+ This document and translations of it may be copied and furnished to
+ others, and derivative works that comment on or otherwise explain it
+ or assist in its implementation may be prepared, copied, published
+ and distributed, in whole or in part, without restriction of any
+ kind, provided that the above copyright notice and this paragraph are
+ included on all such copies and derivative works. However, this
+ document itself may not be modified in any way, such as by removing
+ the copyright notice or references to the Internet Society or other
+ Internet organizations, except as needed for the purpose of
+ developing Internet standards in which case the procedures for
+ copyrights defined in the Internet Standards process must be
+ followed, or as required to translate it into languages other than
+ English.
+
+ The limited permissions granted above are perpetual and will not be
+ revoked by the Internet Society or its successors or assigns.
+
+ This document and the information contained herein is provided on an
+ "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING
+ TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING
+ BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION
+ HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF
+ MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
+
+Acknowledgement
+
+ Funding for the RFC Editor function is currently provided by the
+ Internet Society.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Johansson Standards Track [Page 29]
+