Transmission of IPv6 Packets over Frame Relay Networks
Posted on |
Transmission of IPv6 Packets over Frame Relay Networks
This memo describes mechanisms for the transmission of IPv6 packets over Frame Relay networks. This document specifies the frame format for transmission of IPv6 packets over Frame Relay networks, the method of forming IPv6 link-local addresses on Frame Relay links, and the mapping of the IPv6 addresses to Frame Relay addresses. It also specifies the content of the Source/Target link-layer address option used in Neighbor Discovery [ND] and Inverse Neighbor Discovery [IND] messages when those messages are transmitted over a Frame Relay link. It is part of a set of specifications that define such IPv6 mechanisms for Non-Broadcast Multi-Access (NBMA) media [IPv6-NBMA], [IPv6-ATM], and a larger set that defines such mechanisms for specific link layers [IPv6-ETH], [IPv6-FDDI], [IPv6-PPP], [IPv6-ATM], etc…
The information in this document applies to Frame Relay devices which serve as end stations (DTEs) on a public or private Frame Relay network (for example, provided by a common carrier or PTT.) Frame Relay end stations can be IPv6 hosts or routers. In this document, they are referred to as nodes.
In a Frame Relay network, a number of virtual circuits form the connections between the attached stations (nodes). The resulting set of interconnected devices forms a private Frame Relay group which may be either fully interconnected with a complete “mesh” of virtual circuits, or only partially interconnected. In either case, each virtual circuit is uniquely identified at each Frame Relay interface (card) by a Data Link Connection Identifier (DLCI). In most circumstances, DLCIs have strictly local significance at each Frame Relay interface.
A Frame Relay virtual circuit acts like a virtual-link (also referred to as logical-link), with its own link parameters, distinct from the parameters of other virtual circuits established on the same wire or fiber. Such parameters are the input/output maximum frame size, incoming/outgoing requested/agreed throughput, incoming/outgoing acceptable throughput, incoming/outgoing burst size, incoming/outgoing frame rate.
By default, a DLCI is 10 bits in length. Frame Relay specifications define also 16, 17, or 23 bit DLCIs. The former is not used, while the latter two are suggested for use with SVCs.
Frame Relay virtual circuits can be created administratively as Permanent Virtual Circuits — PVCs — or dynamically as Switched Virtual Circuits — SVCs. The mechanisms defined in this document are intended to apply to both permanent and switched Frame Relay virtual circuits, whether they are a point to point or point to multi-point.
2. Maximum Transmission Unit
The IPv6 minimum MTU is defined in [IPv6]. In general, Frame Relay devices are configured to have a maximum frame size of at least 1600 octets. Therefore, the default IPv6 MTU size for a Frame Relay interface is considered to be 1592.
A smaller than default frame size can be configured but of course not smaller than the minimum IPv6 MTU. An adequate larger than default IPv6 MTU and Frame Relay frame size can be configured to avoid fragmentation. The maximum frame size is controlled by the CRC generation mechanisms employed at the HDLC level. CRC16 will protect frames up to 4096 bytes in length, which reduces the effective maximum frame size to approximately 4088 bytes. A larger desired frame size (such as that used by FDDI or Token Ring), would require the CRC32 mechanism, which is not yet widely used and is not mandatory for frame relay systems conforming to Frame Relay Forum and ITU-T standards.
In general, if upper layers provide adequate error protection/detection mechanisms, implementations may allow configuring a Frame Relay link with a larger than 4080 octets frame size but with a lesser error protection/detection mechanism at the link layer. However, because IPv6 relies on the upper and lower layer error detection, configuring the IPv6 MTU to a value larger than 4080 is strongly discouraged.
Although a Frame Relay circuit allows the definition of distinct maximum frame sizes for input and output, for simplification purposes, this specification assumes symmetry, i.e. the same MTU for both input and output.
Furthermore, implementations may limit the setting of the Frame Relay maximum frame size to the interface (link, or card) level, which then is enforced on all of the PVCs or SVCs on that interface (on that link, or card). For an SVC, the maximum frame size parameter negotiated during circuit setup will not exceed the configured maximum frame size.
3. IPv6 Frame Format
“n” is the length of the Q.922 address which can be 2 or 4 octets.
The Q.922 representation of a DLCI (in canonical order – the first bit is stored in the least significant, i.e., the right-most bit of a byte in memory) [CANON] is the following:
4. Stateless Autoconfiguration
An interface identifier [AARCH] for an IPv6 Frame Relay interface must be unique on a Frame Relay link [AARCH] and must be unique on each of the virtual links represented by the VCs terminated on the interface.
The interface identifier for the Frame Relay interface is locally generated by the IPv6 module. Each virtual circuit in a Frame Relay network is uniquely identified on a Frame Relay interface by a DLCI. Furthermore, a DLCI can be seen as an identification of the endpoint of a virtual circuit on a Frame Relay interface. Since each Frame Relay VC is configured or established separately, and acts like an independent virtual-link from other VCs in the network, or on the interface, link, wire or fiber, it seems beneficial to view each VC’s termination point on the Frame Relay interface as a “pseudo-interface” or “logical interface” overlaid on the Frame Relay interface. Furthermore, it seems beneficial to be able to generate and associate an IPv6 autoconfigured address (including an IPv6 link-local address) to each “pseudo-interface”, i.e. end-point of a VC, i.e. to each DLCI on a Frame Relay interface.
In order to achieve the benefits described above, the mechanisms specified in this document suggest constructing the Frame Relay interface identifier from 3 distinct fields (Fig.1):
- The “EUI bits” field. Bits 6 and 7 of the first octet, representing the EUI-64 “universal/local” and respectively “individual/group” bits converted to IPv6 use. The former is set to zero to reflect that the 64-bit interface identifier value has local significance [AARCH]. The latter is set to 0 to reflect the unicast address [AARCH].
- The “Mid” field. A 38-bit field which is generated with the purpose of adding uniqueness to the interface identifier.
- The “DLCI” field. A 24-bit field that MAY hold a 10, 17, or 23-bit DLCI value which MUST be extended with 0’s to 24 bits. A DLCI based interface identifier — which contains a valid DLCI — SHOULD be generated as a result of successfully establishing a VC — PVC or SVC.If a DLCI is not known, the field MUST be set to the “unspecified DLCI” value which consists of setting each of the 24 bits to 1.
4.1 Generating the “Mid” field.
- “Use of Local Administrative Numbers”
The “Mid” is filled with the result of merging:
- A random number of 6 bits in length (Fig.2).
- The Frame Relay Node Identifier — 16 bits — is a user administered value used to locally identify a Frame Relay node (Fig.2).
- The Frame Relay Link Identifier — 16 bits — is a numerical representation of the Frame Relay interface or link (Fig.2).
- “Use of The Frame Relay address – E.164 [E164], X.121 [X25] numbers, or NSAP [NSAP] address”If a Frame Relay interface has an E.164 or an X.121 number, or a NSAP address, the “Mid” field MUST be filled in with a number resulted from it as follows: the number represented by the BCD encoding of the E.164 or X.121 number, or the binary encoding of the NSAP address is truncated to 38 bits (Fig.3). Since the Frame Relay interface identifier has a “local” significance, the use of such a value has no real practical purposes other than adding to the uniqueness of the interface identifier on the link. Therefore the truncation can be performed on the high order or low order bits. If the high order bits truncation does not provide uniqueness on the link — perhaps the DLCI value is not unique — this most likely means that the VC spans more for instance than a national and/or international destination area for an E.164 number, and therefore the truncation of the low order bits should be performed next, which most likely will provide the desired uniqueness.
5. Link-Local Addresses
6. Address Mapping — Unicast, Multicast
The procedure for mapping IPv6 addresses to link-layer addresses is described in [IPv6-ND]. Additionally, extensions to Neighbor Discovery (ND) that allow the mapping of link-layer addresses to IPv6 addresses are defined as Inverse Neighbor Discovery (IND) in [IND]. This document defines the formats of the link-layer address fields used by ND and IND. This specification does not define an algorithmic mapping of IPv6 multicast addresses to Frame Relay link-layer addresses.
The Source/Target Link-layer Address option used in Neighbor Discovery and Inverse Neighbor Discovery messages for a Frame Relay link follows the general rules defined by [IPv6-ND]. IPv6 addresses can map two type of identifiers equivalent to link-layer addresses:
DLCIs, and Frame Relay Addresses. Therefore, for Frame Relay, this document defines two distinct formats for the ND and IND messages Link-Layer Address field:
- DLCI Format — used in ND and/or IND messages on VCs that were established prior to the ND or IND message exchange — mostly PVCs. The use on SVCs makes sense with Inverse Neighbor Discovery [IND] messages if IND is employed after the successful establishing of an SVC to gather information about other IPv6 addresses assigned to the remote node and that SVC.
- Frame Relay Address Format — used mostly prior to establishing a new SVC, to get the Frame Relay remote node identifier (link-layer address) mapping to a certain IPv6 address.
Note: An implementation may hold both types of link layer identifiers in the Neighbor Discovery cache. Additionally, in case of multiple VCs between two nodes, one node’s Neighbor Discovery cache may hold a mapping of one of the remote node’s IPv6 addresses to each and every DLCI identifying the VCs.
The mechanisms which in such an implementation would make the distinction between the Neighbor Discovery Cache mapping of an IPv6 address to a “Frame Relay Address Format” and a “DLCI Format” link-layer address, or among several mappings to a “DLCI Format” addresses are beyond the scope of this specification.
The use of the override “O” bit in the advertisement messages that contain the above Link-Layer Address formats SHOULD be consistent with the [ND] specifications. Additionally, there should be consistency related to the type of Link-Layer Address format: an implementation should override one address format in is Neighbor Discovery cache with the same type of address format.
The “DLCI Format” is defined as follows:
- Address Type — encoded in the first two bits of the first two bits are set to 1 to indicate the DLCI format. The rest of the bits in the two first octets are not used — they MUST be set to zero on transmit and MUST be ignored by the receiver.
- DLCI — encoded as a Q.922 address padded with zeros to the last octet of the 6 octets available for the entire Link-Layer Address field of this format.
Type 1 for Source Link-layer address. 2 for Target Link-layer address.
- Address Type — encoded in the first two bits of the first octet. The first bit is set to 0, the second bit is set to 1.
- Size — encoded in the last (high order) 6 bits of the first octet. The maximum value of the field is the maximum size of the E.164, X.121, or NSAP addresses.
- Address Family Number — the number assigned for the E.164, X.121, or NSAP address family [ASSNUM].
- E.164, X.121, number — encoded in BCD (two digits per octet). If the E.164 or X.121 has an even number of digits the encoding will fill all encoding octets — half the number of digits. If the E.164 or X.121 number has an odd number of digits, the lowest order digit fills only half of an octet — it is placed in the first 4 bits of the last octet of the E.164, or X.121 BCD encoding. The rest of the field up to the last octet of the 11 octets available is padded with zeros.NSAP address — the NSAP address. It is padded with zeros if the NSAP address does not fit in a number of octets that makes the length of the option an even number of 8 octets.
7. Sending Neighbor Discovery Messages
Frame Relay networks do not provide link-layer native multicasting mechanisms. For the correct functioning of the Neighbor Discovery mechanisms, link-layer multicasting must be emulated.
To emulate multicasting for Neighbor Discovery (ND) the node MUST send frames carrying ND multicast packets to all VCs on a Frame Relay interface. This applies to ND messages addressed to both all-node and solicited-node multicast addresses. This method works well with PVCs. A mesh of PVCs MAY be configured and dedicated to multicast traffic only. An alternative to a mesh of PVCs is a set of point-to-multipoint PVCs.
8. Receiving Neighbor Discovery Messages
If a Neighbor Discovery Solicitation message received by a node contains the Source link-layer address option with a DLCI, the message MUST undergo Frame Relay specific preprocessing required for the correct interpretation of the field during the ND protocol engine processing. This processing is done before the Neighbor Discovery message is processed by the Neighbor Discovery (ND) protocol engine.
The motivation for this processing is the local significance of the DLCI fields in the Neighbor Discovery message: the DLCI significance at the sender node is different than the DLCI significance at the receiver node. In other words, the DLCI that identifies the Frame Relay virtual circuit at the sender may be different than the DLCI that identifies the virtual circuit at the receiver node. Furthermore, the sender node may not be aware of the DLCI value at the receiver. Therefore, the Frame Relay specific preprocessing consists in modifying the Neighbor Discovery Solicitation message received, by storing into the Source link-layer address option the DLCI value of the virtual circuit on which the frame was received, as known to the receiver node. The DLCI value being stored must be encoded in the appropriate format (see previous sections). The passing of the DLCI value from the Frame Relay module to the Neighbor Discovery preprocessing module is an implementation choice.
Books you may interested