RFC 2427
RFC 2427
Brown
Request for Comments: 2427 Consultant
STD: 55 A. Malis
Obsoletes: 1490, 1294 Ascend Communications, Inc.
Category: Standards Track September 1998
Copyright Notice
Abstract
Acknowledgments
This document could not have been completed without the support of
Terry Bradley of Avici Systems, Inc.. Comments and contributions
from many sources, especially those from Ray Samora of Proteon, Ken
Rehbehn of Visual Networks, Fred Baker and Charles Carvalho of Cisco
Systems, and Mostafa Sherif of AT&T have been incorporated into this
document. Special thanks to Dory Leifer of University of Michigan for
his contributions to the resolution of fragmentation issues (though
it was deleted in the final version) and Floyd Backes and Laura
Bridge of 3Com for their contributions to the bridging descriptions.
This document could not have been completed without the expertise of
the IP over Large Public Data Networks and the IP over NBMA working
groups of the IETF.
The keywords MUST, MUST NOT, REQUIRED, SHALL, SHALL NOT, SHOULD,
SHOULD NOT, RECOMMENDED, MAY, and OPTIONAL, when they appear in this
document, are to be interpreted as described in [16].
All drawings in this document are drawn with the left-most bit as the
high order bit for transmission. For example, the drawings might be
labeled as:
0 1 2 3 4 5 6 7 bits
+---+---+---+---+---+---+---+
+---------------------------+
| flag (7E hexadecimal) |
+---------------------------+
| Q.922 Address* |
+-- --+
| |
+---------------------------+
: :
: :
+---------------------------+
Drawings that would be too large to fit onto one page if each octet
were presented on a single line are drawn with two octets per line.
These are also drawn with the left-most bit as the high order bit for
transmission. There will be a "+" to distinguish between octets as
in the following example.
+--------------------------------------------+
| Organizationally Unique |
+-- +--------------------+
| Identifier | Protocol |
+-----------------------+--------------------+
| Identifier |
+-----------------------+
2. Introduction
3. Frame Format
+---------------------------+
| flag (7E hexadecimal) |
+---------------------------+
| Q.922 Address* |
+-- --+
| |
+---------------------------+
| Control (UI = 0x03) |
+---------------------------+
| Pad (when required) (0x00)|
+---------------------------+
| NLPID |
+---------------------------+
| . |
| . |
| . |
| Data |
| . |
| . |
+---------------------------+
| Frame Check Sequence |
+-- . --+
| (two octets) |
+---------------------------+
| flag (7E hexadecimal) |
+---------------------------+
The control field is the Q.922 control field. The UI (0x03) value is
used unless it is negotiated otherwise. The use of XID (0xAF or
0xBF) is permitted and is discussed later.
The pad field is used to align the data portion (beyond the
encapsulation header) of the frame to a two octet boundary. If
present, the pad is a single octet and must have a value of zero.
Explicit directions of when to use the pad field are discussed later
in this document.
The minimum frame size allowed for Frame Relay is five octets between
the opening and closing flags assuming a two octet Q.922 address
field. This minimum increases to six octets for three octet Q.922
address and seven octets for the four octet Q.922 address format.
4. Interconnect Issues
There are two basic types of data packets that travel within the
Frame Relay network: routed packets and bridged packets. These
packets have distinct formats and therefore, must contain an
indicator that the destination may use to correctly interpret the
contents of the frame. This indicator is embedded within the NLPID
and SNAP header information.
+--------------------------------------------+
| Organizationally Unique |
+-- +--------------------+
| Identifier | Protocol |
+-----------------------+--------------------+
| Identifier |
+-----------------------+
Some protocols will have an assigned NLPID, but because the NLPID
numbering space is limited, not all protocols have specific NLPID
values assigned to them. When packets of such protocols are routed
over Frame Relay networks, they are sent using the NLPID 0x80 (which
indicates the presence of a SNAP header) followed by SNAP. If the
protocol has an Ethertype assigned, the OUI is 0x00-00-00 (which
indicates an Ethertype follows), and PID is the Ethertype of the
protocol in use.
In the few cases when a protocol has an assigned NLPID (see Appendix
A), 48 bits can be saved using the format below:
When using the NLPID encapsulation format as described above, the pad
octet is not used.
In addition, the PID value 0x00-0E, when used with OUI 0x00-80-C2,
identifies Bridge Protocol Data Units (BPDUs) as defined by
802.1(d) or 802.1(g) [12], and the PID value 0x00-0F identifies
Source Routing BPDUs.
A packet bridged over Frame Relay will, therefore, have one of the
following formats:
Note that in bridge 802.6 PDUs, there is only one choice for the PID
value, since the presence of a CRC-32 is indicated by the CIB bit in
the header of the MAC frame.
The Common Protocol Data Unit (CPDU) Header and Trailer are conveyed
to allow pipelining at the egress bridge to an 802.6 subnetwork.
Specifically, the CPDU Header contains the BAsize field, which
contains the length of the PDU. If this field is not available to
the egress 802.6 bridge, then that bridge cannot begin to transmit
the segmented PDU until it has received the entire PDU, calculated
the length, and inserted the length into the BAsize field. If the
field is available, the egress 802.6 bridge can extract the length
from the BAsize field of the Common PDU Header, insert it into the
corresponding field of the first segment, and immediately transmit
the segment onto the 802.6 subnetwork. Thus, the bridge can begin
transmitting the 802.6 PDU before it has received the complete PDU.
One should note that the Common PDU Header and Trailer of the
encapsulated frame should not be simply copied to the outgoing 802.6
subnetwork because the encapsulated BEtag value may conflict with the
previous BEtag value transmitted by that bridge.
+-----------------------+-----------------------+
| Q.922 Address |
+-----------------------+-----------------------+
| Control (UI) 0x03 | pad 0x00 |
+-----------------------+-----------------------+
| NLPID 0x80 | | SNAP Header
+-----------------------+ OUI 0x00-00-00 + Indicating
| | ARP
+-----------------------+-----------------------+
| PID 0x0806 |
+-----------------------+-----------------------+
| ARP packet |
| . |
| . |
| . |
+-----------------------+-----------------------+
Where the ARP packet has the following format and values:
Data:
ar$hrd 16 bits Hardware type
ar$pro 16 bits Protocol type
ar$hln 8 bits Octet length of hardware address (n)
ar$pln 8 bits Octet length of protocol address (m)
ar$op 16 bits Operation code (request or reply)
ar$sha noctets source hardware address
ar$spa moctets source protocol address
ar$tha noctets target hardware address
ar$tpa moctets target protocol address
Because DLCIs within most Frame Relay networks have only local
significance, an end station will not have a specific DLCI assigned
to itself. Therefore, such a station does not have an address to put
into the ARP request or reply. Fortunately, the Frame Relay network
does provide a method for obtaining the correct DLCIs. The solution
proposed for the locally addressed Frame Relay network below will
work equally well for a network where DLCIs have global significance.
~~~~~~~~~~~~~~~
( )
+-----+ ( ) +-----+
| |-50------(--------------------)---------70-| |
| A | ( ) | B |
| |-60-----(---------+ ) | |
+-----+ ( | ) +-----+
( | )
( | ) <---Frame Relay
~~~~~~~~~~~~~~~~ network
80
|
+-----+
| |
| C |
| |
+-----+
Figure 1
8 7 6 5 4 3 2 1
+------------------------+---+--+
| DLCI (high order) |C/R|EA|
+--------------+----+----+---+--+
| DLCI (lower) |FECN|BECN|DE |EA|
+--------------+----+----+---+--+
For ARP and its variants, the FECN, BECN, C/R and DE bits are
assumed to be 0.
Because station A will not have a source address associated with it,
the source hardware address field is not valid. Therefore, when the
ARP packet is received, it must extract the correct address from the
Frame Relay header and place it in the source hardware address field.
This way, the ARP request from A will become:
Station B's ARP will then be able to store station A's protocol
address and Q.922 address association correctly. Next, station B
will form a reply message. Many implementations simply place the
source addresses from the ARP request into the target addresses and
then fills in the source addresses with its addresses. In this case,
the ARP response would be:
Again, the source hardware address is unknown and when the response
is received, station A will extract the address from the Frame Relay
header and place it in the source hardware address field. Therefore,
the response will become:
Reverse ARP (RARP) [8] works in exactly the same way. Still using
figure 1, if we assume station C is an address server, the following
RARP exchanges will occur:
This means that the Frame Relay interface must only intervene in the
processing of incoming packets.
Stations must be able to map more than one IP address in the same IP
subnet (CIDR address prefix) to a particular DLCI on a Frame Relay
interface. This need arises from applications such as remote access,
where servers must act as ARP proxies for many dial-in clients, each
assigned a unique IP address while sharing bandwidth on the same DLC.
The dynamic nature of such applications result in frequent address
association changes with no affect on the DLC's status as reported by
Frame Relay PVC Status Signaling.
As with any other interface that utilizes ARP, stations may learn the
associations between IP addresses and DLCIs by processing unsolicited
("gratuitous") ARP requests that arrive on the DLC. If one station
(perhaps a terminal server or remote access server) wishes to inform
its peer station on the other end of a Frame Relay DLC of a new
association between an IP address and that PVC, it should send an
unsolicited ARP request with the source IP address equal to the
destination IP address, and both set to the new IP address being used
on the DLC. This allows a station to "announce" new client
connections on a particular DLCI. The receiving station must store
the new association, and remove any old existing association, if
necessary, from any other DLCI on the interface.
Internet Protocol [9] (IP) datagrams sent over a Frame Relay network
conform to the encapsulation described previously. Within this
context, IP could be encapsulated in two different ways.
+-----------------------+-----------------------+
| Q.922 Address |
+-----------------------+-----------------------+
| Control (UI) 0x03 | NLPID 0xCC |
+-----------------------+-----------------------+
| IP packet |
| . |
| . |
| . |
+-----------------------+-----------------------+
+-----------------------+-----------------------+
| Q.922 Address |
+-----------------------+-----------------------+
| Control (UI) 0x03 | pad 0x00 |
+-----------------------+-----------------------+
| NLPID 0x80 | | SNAP Header
+-----------------------+ OUI = 0x00-00-00 + Indicating
| | IP
+-----------------------+-----------------------+
| PID 0x0800 |
+-----------------------+-----------------------+
| IP packet |
| . |
| . |
| . |
+-----------------------+-----------------------+
As an example of how this works, ISO CLNP has a NLPID defined (0x81).
Therefore, the NLPID field will indicate ISO CLNP and the data packet
will follow immediately. The frame would be as follows:
+---------------------------------------------+
| Q.922 Address |
+----------------------+----------------------+
| Control (UI) 0x03 | NLPID 0x81 (CLNP) |
+----------------------+----------------------+
| remainder of CLNP packet |
| . |
| . |
+---------------------------------------------+
+---------------------------------------------+
| Q.922 Address |
+----------------------+----------------------+
| Control (UI) 0x03 | pad 0x00 |
+----------------------+----------------------+
| NLPID 0x80 (SNAP) | OUI - 0x00 00 00 |
+----------------------+ |
| |
+---------------------------------------------+
| PID 0x8137 |
+---------------------------------------------+
| IPX packet |
| . |
| . |
+---------------------------------------------+
In a Frame Relay network there must be a full mesh of Frame Relay VCs
between bridges of a remote bridge group. If the frame relay network
is not a full mesh, then the bridge network must be divided into
multiple remote bridge groups.
The frame relay VCs that interconnect the bridges of a remote bridge
group may be combined or used individually to form one or more
virtual bridge ports. This gives flexibility to treat the Frame
Relay interface either as a single virtual bridge port, with all VCs
in a group, or as a collection of bridge ports (individual or grouped
VCs).
+-------+
-------------------| B |
/ -------| |
/ / +-------+
/ |
+-------+/ \ +-------+
| A | -------| C |
| |-----------------------| |
+-------+\ +-------+
\
\ +-------+
\ | D |
-------------------| |
+-------+
Since there is less than a full mesh of VCs between the bridges in
this example, the network must be divided into more than one remote
bridge group. A reasonable configuration is to have bridges A, B,
and C in one group, and have bridges A and D in a second.
Using the same drawing, one could construct a remote bridge scenario
with three bridge groups. This would be an example of the point-to-
point case. Here, the VC connecting A and B, the VC connecting A and
C, and the VC connecting A and D are all bridge groups with a single
virtual port.
It also specifies the use of ARP and RARP with Frame Relay, and is
subject to the same security constraints that affect ARP and similar
address resolution protocols. Because authentication is not a part
of ARP, there are known security issues relating to its use (e.g.,
host impersonation). No additional security mechanisms have been
added to ARP or RARP for use with Frame Relay networks.
- end-to-end systems or
- LAN to LAN bride and routers or
- a combination of the above.
Q.922 control
|
|
--------------------------------------------
| |
UI I Frame
| |
--------------------------------- --------------
| 0x08 | 0x81 |0xCC | 0x80 |..01.... |..10....
| | | | | |
Q.933 CLNP IP SNAP ISO 8208 ISO 8208
| | Modulo 8 Modulo 128
| |
-------------------- OUI
| | |
L2 ID L3 ID -------
| User | |
| Specified | |
| 0x70 802.3 802.6
|
---------------------------
|0x51 |0x4E | |0x4C |0x50
| | | | |
7776 Q.922 Others 802.2 User
Specified
For those protocols which do not have a NLPID assigned or do not have
a SNAP encapsulation, the NLPID value of 0x08, indicating ITU
Recommendation Q.933 should be used. The four octets following the
NLPID include both layer 2 and layer 3 protocol identification. The
code points for most protocols are currently defined in ITU Q.933 low
layer compatibility information element. The code points for "User
Specified" are described in Frame Relay Forum FRF.3.1 [15]. There is
also an escape for defining non-standard protocols.
RFC 1490 has been widely implemented and used, and has been adopted
by the Frame Relay Forum in FRF.3.1 [15] and by the ITU in Q.933 [2].
This section describes updates to RFC 1490 that have been made as a
result of this implementation and interoperability experience, and
which reflect current implementation practice.
d) The encapsulation for Source Routing BPDUs was added, and the
lists in Appendix A were augmented.
14. References
[4] Baker, F., and R. Bowen, "PPP Bridging Control Protocol (BCP)",
RFC 1638, June 1994.
[7] Reynolds, J., and J. Postel, "Assigned Numbers", STD 2, RFC 1700,
October 1994. See also: http://www.iana.org/numbers.html
[8] Finlayson, R., Mann, R., Mogul, J., and M. Theimer, "A Reverse
Address Resolution Protocol", STD 38, RFC 903, June 1984.
[9] Postel, J., and J. Reynolds, "A Standard for the Transmission of
IP Datagrams over IEEE 802 Networks", RFC 1042, February 1988.
[10] IEEE, "IEEE Standard for Local and Metropolitan Area Networks:
Overview and architecture", IEEE Standard 802-1990.
[12] IEEE, "IEEE Standard for Local and Metropolitan Networks: Media
Access Control (MAC) Bridges", IEEE Standard 802.1D-1990.
[16] Bradner, S., "Key words for use in RFCs to Indicate Requirement
Levels", BCP 14, RFC 2119, March 1997.
[17] Simpson, W., "PPP in Frame Relay", RFC 1973, June 1996.
[19] Frame Relay Forum, "Frame Relay PVC Multicast Service and
Protocol Implementation Agreement", FRF.7, October 21, 1994.
Caralyn Brown
Consultant
EMail: [email protected]
Andrew Malis
Ascend Communications, Inc.
1 Robbins Road
Westford, MA 01886
The limited permissions granted above are perpetual and will not be
revoked by the Internet Society or its successors or assigns.