idnits 2.17.1 draft-martini-ethernet-encap-mpls-00.txt: Checking boilerplate required by RFC 5378 and the IETF Trust (see https://trustee.ietf.org/license-info): ---------------------------------------------------------------------------- ** Looks like you're using RFC 2026 boilerplate. This must be updated to follow RFC 3978/3979, as updated by RFC 4748. Checking nits according to https://www.ietf.org/id-info/1id-guidelines.txt: ---------------------------------------------------------------------------- == No 'Intended status' indicated for this document; assuming Proposed Standard Checking nits according to https://www.ietf.org/id-info/checklist : ---------------------------------------------------------------------------- ** The document seems to lack an IANA Considerations section. (See Section 2.2 of https://www.ietf.org/id-info/checklist for how to handle the case when there are no actions for IANA.) ** The document seems to lack separate sections for Informative/Normative References. All references will be assumed normative when checking for downward references. ** There is 1 instance of too long lines in the document, the longest one being 8 characters in excess of 72. ** The document seems to lack a both a reference to RFC 2119 and the recommended RFC 2119 boilerplate, even if it appears to use RFC 2119 keywords -- however, there's a paragraph with a matching beginning. Boilerplate error? RFC 2119 keyword, line 139: '...otocols this word is REQUIRED, and for...' RFC 2119 keyword, line 140: '... others OPTIONAL. For protocols whe...' RFC 2119 keyword, line 141: '... implementations MUST support sending ...' RFC 2119 keyword, line 158: '... They MUST be set to 0 when transmit...' RFC 2119 keyword, line 164: '... The next 2 bits MUST be set to 0 when...' (28 more instances...) Miscellaneous warnings: ---------------------------------------------------------------------------- == Line 121 has weird spacing: '...oss the netwo...' -- The document seems to lack a disclaimer for pre-RFC5378 work, but may have content which was first submitted before 10 November 2008. If you have contacted all the original authors and they are all willing to grant the BCP78 rights to the IETF Trust, then this is fine, and you can ignore this comment. If not, you may need to add the pre-RFC5378 disclaimer. (See the Legal Provisions document at https://trustee.ietf.org/license-info for more information.) -- The document date (April 2002) is 8048 days in the past. Is this intentional? Checking references for intended status: Proposed Standard ---------------------------------------------------------------------------- (See RFCs 3967 and 4897 for information about using normative references to lower-maturity documents in RFCs) == Outdated reference: A later version (-19) exists of draft-martini-l2circuit-trans-mpls-09 ** Downref: Normative reference to an Historic draft: draft-martini-l2circuit-trans-mpls (ref. '1') -- Possible downref: Non-RFC (?) normative reference: ref. '3' == Outdated reference: A later version (-01) exists of draft-martini-atm-encap-mpls-00 -- Possible downref: Normative reference to a draft: ref. '4' == Outdated reference: A later version (-01) exists of draft-martini-frame-encap-mpls-00 -- Possible downref: Normative reference to a draft: ref. '5' -- Possible downref: Normative reference to a draft: ref. '6' Summary: 6 errors (**), 0 flaws (~~), 5 warnings (==), 6 comments (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 2 Network Working Group Luca Martini 3 Internet Draft Nasser El-Aawar 4 Expiration Date: October 2002 Level 3 Communications, LLC. 6 Giles Heron Steve Vogelsang 7 PacketExchange Ltd. Laurel Networks, Inc. 9 Chris Liljenstolpe Vasile Radoaca 10 Cable & Wireless Nortel Networks 12 Daniel Tappan Kireeti Kompella 13 Eric C. Rosen Juniper Networks 14 Cisco Systems, Inc. 16 Andrew G. Malis 17 Vinai Sirkay 18 Vivace Networks, Inc. 19 April 2002 21 Encapsulation Methods for Transport of Ethernet Frames Over IP and MPLS Networks 23 draft-martini-ethernet-encap-mpls-00.txt 25 Status of this Memo 27 This document is an Internet-Draft and is in full conformance with 28 all provisions of Section 10 of RFC2026. 30 Internet-Drafts are working documents of the Internet Engineering 31 Task Force (IETF), its areas, and its working groups. Note that other 32 groups may also distribute working documents as Internet-Drafts. 34 Internet-Drafts are draft documents valid for a maximum of six months 35 and may be updated, replaced, or obsoleted by other documents at any 36 time. It is inappropriate to use Internet-Drafts as reference 37 material or to cite them other than as "work in progress." 39 The list of current Internet-Drafts can be accessed at 40 http://www.ietf.org/ietf/1id-abstracts.txt. 42 The list of Internet-Draft Shadow Directories can be accessed at 43 http://www.ietf.org/shadow.html. 45 Abstract 47 This document describes methods for encapsulating the Protocol Data 48 Units (PDUs) of Ethernet for transport across an MPLS or IP network. 50 Table of Contents 52 1 Specification of Requirements .......................... 2 53 2 Introduction ........................................... 2 54 3 General encapsulation method ........................... 3 55 3.1 The Control Word ....................................... 4 56 3.1.1 Setting the sequence number ............................ 5 57 3.1.2 Processing the sequence number ......................... 5 58 3.2 MTU Requirements ....................................... 6 59 4 Protocol-Specific Details .............................. 6 60 4.1 Ethernet VLAN .......................................... 6 61 4.2 Ethernet ............................................... 7 62 5 Using an MPLS Label as the Demultiplexer Field ......... 7 63 5.1 MPLS Shim EXP Bit Values ............................... 7 64 5.2 MPLS Shim S Bit Value .................................. 7 65 5.3 MPLS Shim TTL Values ................................... 8 66 6 Security Considerations ................................ 8 67 7 Intellectual Property Disclaimer ....................... 8 68 8 References ............................................. 8 69 9 Author Information ..................................... 9 71 1. Specification of Requirements 73 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 74 "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this 75 document are to be interpreted as described in RFC 2119 77 2. Introduction 79 In an MPLS or IP network, it is possible to use control protocols 80 such as those specified in [1] to set up "emulated virtual circuits" 81 that carry the the Protocol Data Units of layer 2 protocols across 82 the network. A number of these emulated virtual circuits may be 83 carried in a single tunnel. This requires of course that the layer 2 84 PDUs be encapsulated. We can distinguish three layers of this 85 encapsulation: 87 - the "tunnel header", which contains the information needed to 88 transport the PDU across the IP or MPLS network; this is header 89 belongs to the tunneling protocol, e.g., MPLS, GRE, L2TP. 91 - the "demultiplexer field", which is used to distinguish 92 individual emulated virtual circuits within a single tunnel; this 93 field must be understood by the tunneling protocol as well; it 94 may be, e.g., an MPLS label or a GRE key field. 96 - the "emulated VC encapsulation", which contains the information 97 about the enclosed layer 2 PDU which is necessary in order to 98 properly emulate the corresponding layer 2 protocol. 100 This document specifies the emulated VC encapsulation for the 101 ethernet protocols. Although different layer 2 protocols require 102 different information to be carried in this encapsulation, an attempt 103 has been made to make the encapsulation as common as possible for all 104 layer 2 protocols. Other layer 2 protocols are described in separate 105 documents. [4] [5] [6] 107 This document also specifies the way in which the demultiplexer field 108 is added to the emulated VC encapsulation when an MPLS label is used 109 as the demultiplexer field. 111 QoS related issues are not discussed in this draft 113 For the purpose of this document R1 will be defined as the ingress 114 router, and R2 as the egress router. A layer 2 PDU will be received 115 at R1, encapsulated at R1, transported, decapsulated at R2, and 116 transmitted out of R2. 118 3. General encapsulation method 120 In most cases, it is not necessary to transport the layer 2 121 encapsulation across the network; rather, the layer 2 header can be 122 stripped at R1, and reproduced at R2. This is done using information 123 carried in the control word (see below), as well as information that 124 may already have been signaled from R1 to R2. 126 3.1. The Control Word 128 There are three requirements that may need to be satisfied when 129 transporting layer 2 protocols over an IP or MPLS backbone: 131 -i. Sequentiality may need to be preserved. 132 -ii. Small packets may need to be padded in order to be 133 transmitted on a medium where the minimum transport unit is 134 larger than the actual packet size. 135 -iii. Control bits carried in the header of the layer 2 frame may 136 need to be transported. 138 The control word defined here addresses all three of these 139 requirements. For some protocols this word is REQUIRED, and for 140 others OPTIONAL. For protocols where the control word is OPTIONAL 141 implementations MUST support sending no control word, and MAY support 142 sending a control word. 144 In all cases the egress router must be aware of whether the ingress 145 router will send a control word over a specific virtual circuit. 146 This may be achieved by configuration of the routers, or by 147 signaling, for example as defined in [1]. 149 The control word is defined as follows: 151 0 1 2 3 152 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 153 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 154 | Rsvd | Flags |0 0| Length | Sequence Number | 155 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 157 In the above diagram the first 4 bits are reserved for future use. 158 They MUST be set to 0 when transmitting, and MUST be ignored upon 159 receipt. 161 The next 4 bits provide space for carrying protocol specific flags. 162 These are defined in the protocol-specific details below. 164 The next 2 bits MUST be set to 0 when transmitting. 166 The next 6 bits provide a length field, which is used as follows: If 167 the packet's length (defined as the length of the layer 2 payload 168 plus the length of the control word) is less than 64 bytes, the 169 length field MUST be set to the packet's length. Otherwise the length 170 field MUST be set to zero. The value of the length field, if non- 171 zero, can be used to remove any padding. When the packet reaches the 172 service provider's egress router, it may be desirable to remove the 173 padding before forwarding the packet. 175 The next 16 bits provide a sequence number that can be used to 176 guarantee ordered packet delivery. The processing of the sequence 177 number field is OPTIONAL. 179 The sequence number space is a 16 bit, unsigned circular space. The 180 sequence number value 0 is used to indicate an unsequenced packet. 182 3.1.1. Setting the sequence number 184 For a given emulated VC, and a pair of routers R1 and R2, if R1 185 supports packet sequencing then the following procedures should be 186 used: 188 - the initial packet transmitted on the emulated VC MUST use 189 sequence number 1 190 - subsequent packets MUST increment the sequence number by one for 191 each packet 192 - when the transmit sequence number reaches the maximum 16 bit 193 value (65535) the sequence number MUST wrap to 1 195 If the transmitting router R1 does not support sequence number 196 processing, then the sequence number field in the control word MUST 197 be set to 0. 199 3.1.2. Processing the sequence number 201 If a router R2 supports receive sequence number processing, then the 202 following procedures should be used: 204 When an emulated VC is initially set up, the "expected sequence 205 number" associated with it MUST be initialized to 1. 207 When a packet is received on that emulated VC, the sequence number 208 should be processed as follows: 210 - if the sequence number on the packet is 0, then the packet passes 211 the sequence number check 213 - otherwise if the packet sequence number >= the expected sequence 214 number and the packet sequence number - the expected sequence 215 number < 32768, then the packet is in order. 217 - otherwise if the packet sequence number < the expected sequence 218 number and the expected sequence number - the packet sequence 219 number >= 32768, then the packet is in order. 221 - otherwise the packet is out of order. 223 If a packet passes the sequence number check, or is in order then, it 224 can be delivered immediately. If the packet is in order, then the 225 expected sequence number should be set using the algorithm: 227 expected_sequence_number := packet_sequence_number + 1 mod 2**16 228 if (expected_sequence_number = 0) then expected_sequence_number := 1; 230 Packets which are received out of order MAY be dropped or reordered 231 at the discretion of the receiver. 233 If a router R2 does not support receive sequence number processing, 234 then the sequence number field MAY be ignored. 236 3.2. MTU Requirements 238 The network MUST be configured with an MTU that is sufficient to 239 transport the largest encapsulation frames. If MPLS is used as the 240 tunneling protocol, for example, this is likely to be 12 or more 241 bytes greater than the largest frame size. Other tunneling protocols 242 may have longer headers and require larger MTUs. If the ingress 243 router determines that an encapsulated layer 2 PDU exceeds the MTU of 244 the tunnel through which it must be sent, the PDU MUST be dropped. If 245 an egress router receives an encapsulated layer 2 PDU whose payload 246 length (i.e., the length of the PDU itself without any of the 247 encapsulation headers), exceeds the MTU of the destination layer 2 248 interface, the PDU MUST be dropped. 250 4. Protocol-Specific Details 252 4.1. Ethernet VLAN 254 For an Ethernet 802.1q VLAN the entire Ethernet frame without the 255 preamble or FCS is transported as a single packet. The control word 256 is OPTIONAL. If the control word is used then the flag bits in the 257 control word are not used, and MUST be set to 0 when transmitting, 258 and MUST be ignored upon receipt. The 4 byte VLAN tag is transported 259 as is, and MAY be overwritten by the egress router. 261 The ingress router MAY consider the user priority field [3] of the 262 VLAN tag header when determining the value to be placed in the 263 Quality of Service field of the encapsulating protocol (e.g., the EXP 264 fields of the MPLS label stack). In a similar way, the egress router 265 MAY consider the Quality of Service field of the encapsulating 266 protocol when queuing the packet for egress. Ethernet packets 267 containing hardware level CRC errors, framing errors, or runt packets 268 MUST be discarded on input. 270 4.2. Ethernet 272 For simple Ethernet port to port transport, the entire Ethernet frame 273 without the preamble or FCS is transported as a single packet. The 274 control word is OPTIONAL. If the control word is used then the flag 275 bits in the control word are not used, and MUST be set to 0 when 276 transmitting, and MUST be ignored upon receipt. As in the Ethernet 277 VLAN case, Ethernet packets with hardware level CRC errors, framing 278 errors, and runt packets MUST be discarded on input. 280 5. Using an MPLS Label as the Demultiplexer Field 282 To use an MPLS label as the demultiplexer field, a 32-bit label stack 283 entry [2] is simply prepended to the emulated VC encapsulation, and 284 hence will appear as the bottom label of an MPLS label stack. This 285 label may be called the "VC label". The particular emulated VC 286 identified by a particular label value must be agreed by the ingress 287 and egress LSRs, either by signaling (e.g, via the methods of [1]) or 288 by configuration. Other fields of the label stack entry are set as 289 follows. 291 5.1. MPLS Shim EXP Bit Values 293 If it is desired to carry Quality of Service information, the Quality 294 of Service information SHOULD be represented in the EXP field of the 295 VC label. If more than one MPLS label is imposed by the ingress LSR, 296 the EXP field of any labels higher in the stack SHOULD also carry the 297 same value. 299 5.2. MPLS Shim S Bit Value 301 The ingress LSR, R1, MUST set the S bit of the VC label to a value of 302 1 to denote that the VC label is at the bottom of the stack. 304 5.3. MPLS Shim TTL Values 306 The ingress LSR, R1, SHOULD set the TTL field of the VC label to a 307 value of 2. 309 6. Security Considerations 311 This document specifies only encapsulations, and not the protocols 312 used to carry the encapsulated packets across the network. Each such 313 protocol may have its own set of security issues, but those issues 314 are not affected by the encapsulations specified herein. 316 7. Intellectual Property Disclaimer 318 This document is being submitted for use in IETF standards 319 discussions. 321 8. References 323 [1] "Transport of Layer 2 Frames Over MPLS", draft-martini- 324 l2circuit-trans-mpls-09.txt. ( work in progress ) 326 [2] "MPLS Label Stack Encoding", E. Rosen, Y. Rekhter, D. Tappan, G. 327 Fedorkow, D. Farinacci, T. Li, A. Conta. RFC3032 329 [3] "IEEE 802.3ac-1998" IEEE standard specification. 331 [4] "Encapsulation Methods for Transport of ATM Cells/Frame Over IP 332 and MPLS Networks", draft-martini-atm-encap-mpls-00.txt. ( work in 333 progress ) 335 [5] "Encapsulation Methods for Transport of Frame-Relay Over IP and 336 MPLS Networks", draft-martini-frame-encap-mpls-00.txt. ( work in 337 progress ) 339 [6] "Encapsulation Methods for Transport of PPP/HDLC Frames Over IP 340 and MPLS Networks", draft-martini-ppp-hdlc-encap-mpls-00.txt. ( work 341 in progress ) 343 9. Author Information 345 Luca Martini 346 Level 3 Communications, LLC. 347 1025 Eldorado Blvd. 348 Broomfield, CO, 80021 349 e-mail: luca@level3.net 351 Nasser El-Aawar 352 Level 3 Communications, LLC. 353 1025 Eldorado Blvd. 354 Broomfield, CO, 80021 355 e-mail: nna@level3.net 357 Giles Heron 358 PacketExchange Ltd. 359 The Truman Brewery 360 91 Brick Lane 361 LONDON E1 6QL 362 United Kingdom 363 e-mail: giles@packetexchange.net 365 Dan Tappan 366 Cisco Systems, Inc. 367 250 Apollo Drive 368 Chelmsford, MA, 01824 369 e-mail: tappan@cisco.com 371 Eric Rosen 372 Cisco Systems, Inc. 373 250 Apollo Drive 374 Chelmsford, MA, 01824 375 e-mail: erosen@cisco.com 377 Steve Vogelsang 378 Laurel Networks, Inc. 379 Omega Corporate Center 380 1300 Omega Drive 381 Pittsburgh, PA 15205 382 e-mail: sjv@laurelnetworks.com 383 Andrew G. Malis 384 Vivace Networks, Inc. 385 2730 Orchard Parkway 386 San Jose, CA 95134 387 e-mail: Andy.Malis@vivacenetworks.com 389 Vinai Sirkay 390 Vivace Networks, Inc. 391 2730 Orchard Parkway 392 San Jose, CA 95134 393 e-mail: sirkay@technologist.com 395 Vasile Radoaca 396 Nortel Networks 397 600 Technology Park 398 Billerica MA 01821 399 e-mail: vasile@nortelnetworks.com 401 Chris Liljenstolpe 402 Cable & Wireless 403 11700 Plaza America Drive 404 Reston, VA 20190 405 e-mail: chris@cw.net 407 Kireeti Kompella 408 Juniper Networks 409 1194 N. Mathilda Ave 410 Sunnyvale, CA 94089 411 e-mail: kireeti@juniper.net