draft-ietf-softwire-lb-01.txt   draft-ietf-softwire-lb-02.txt 
Network Working Group C. Filsfils Network Working Group C. Filsfils
Internet-Draft P. Mohapatra Internet-Draft P. Mohapatra
Intended status: Standards Track C. Pignataro Intended status: Standards Track C. Pignataro
Expires: August 31, 2009 Cisco Systems Expires: October 4, 2009 Cisco Systems
February 27, 2009 April 2, 2009
Load Balancing for Mesh Softwires Load Balancing for Mesh Softwires
draft-ietf-softwire-lb-01 draft-ietf-softwire-lb-02
Status of this Memo Status of this Memo
This Internet-Draft is submitted to IETF in full conformance with the This Internet-Draft is submitted to IETF in full conformance with the
provisions of BCP 78 and BCP 79. provisions of BCP 78 and BCP 79.
Internet-Drafts are working documents of the Internet Engineering Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF), its areas, and its working groups. Note that Task Force (IETF), its areas, and its working groups. Note that
other groups may also distribute working documents as Internet- other groups may also distribute working documents as Internet-
Drafts. Drafts.
skipping to change at page 1, line 33 skipping to change at page 1, line 33
and may be updated, replaced, or obsoleted by other documents at any and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress." material or to cite them other than as "work in progress."
The list of current Internet-Drafts can be accessed at The list of current Internet-Drafts can be accessed at
http://www.ietf.org/ietf/1id-abstracts.txt. http://www.ietf.org/ietf/1id-abstracts.txt.
The list of Internet-Draft Shadow Directories can be accessed at The list of Internet-Draft Shadow Directories can be accessed at
http://www.ietf.org/shadow.html. http://www.ietf.org/shadow.html.
This Internet-Draft will expire on August 31, 2009. This Internet-Draft will expire on October 4, 2009.
Copyright Notice Copyright Notice
Copyright (c) 2009 IETF Trust and the persons identified as the Copyright (c) 2009 IETF Trust and the persons identified as the
document authors. All rights reserved. document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents in effect on the date of Provisions Relating to IETF Documents in effect on the date of
publication of this document (http://trustee.ietf.org/license-info). publication of this document (http://trustee.ietf.org/license-info).
Please review these documents carefully, as they describe your rights Please review these documents carefully, as they describe your rights
skipping to change at page 2, line 29 skipping to change at page 2, line 29
Table of Contents Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.1. Requirements Language . . . . . . . . . . . . . . . . . . . 3 1.1. Requirements Language . . . . . . . . . . . . . . . . . . . 3
2. Load Balancing Block sub-TLV . . . . . . . . . . . . . . . . . 3 2. Load Balancing Block sub-TLV . . . . . . . . . . . . . . . . . 3
2.1. Applicability to Tunnel Types . . . . . . . . . . . . . . . 4 2.1. Applicability to Tunnel Types . . . . . . . . . . . . . . . 4
2.2. Encapsulation Considerations . . . . . . . . . . . . . . . 5 2.2. Encapsulation Considerations . . . . . . . . . . . . . . . 5
3. IANA Considerations . . . . . . . . . . . . . . . . . . . . . . 5 3. IANA Considerations . . . . . . . . . . . . . . . . . . . . . . 5
4. Security Considerations . . . . . . . . . . . . . . . . . . . . 5 4. Security Considerations . . . . . . . . . . . . . . . . . . . . 5
5. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 5 5. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 5
6. Normative References . . . . . . . . . . . . . . . . . . . . . 5 6. Normative References . . . . . . . . . . . . . . . . . . . . . 6
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 6 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 6
1. Introduction 1. Introduction
Consider the case of a router R1 which encapsulates a packet P into a Consider the case of a router R1 which encapsulates a packet P into a
Softwire bound to router R3. R2 is a router on the shortest path Softwire bound to router R3. R2 is a router on the shortest path
from R1 to R3. R2's shortest path to R3 involves equal cost multiple from R1 to R3. R2's shortest path to R3 involves equal cost multiple
paths (ECMPs). The goal is for R2 to be able to choose which path to paths (ECMPs). The goal is for R2 to be able to choose which path to
use on the basis of the full entropy of packet P. use on the basis of the full entropy of packet P.
This is achieved by carrying in the encapsulation header a signature This is achieved by carrying in the encapsulation header a signature
of the inner header, hence enhancing the entropy of the flows as seen of the inner header, hence enhancing the entropy of the flows as seen
by the core routers. The signature is carried as part of one of the by the core routers. The signature is carried as part of one of the
fields of the encapsulation header. To aid with better description fields of the encapsulation header. To aid with better description
in the document, we define the generic term "load balancing field" to in the document, we define the generic term "load balancing field" to
mean such a value that is specific to an encapsulation type. For mean such a value that is specific to an encapsulation type. For
example, for L2TPv3-over-IP [RFC3931] encapsulation, the load example, for L2TPv3-over-IP [RFC3931] encapsulation, the load
balancing field is the Session Identifier (Session ID). For GRE balancing field is the Session Identifier (Session ID). For GRE
[RFC2784] encapsulation, the key field [RFC2890], if present, [RFC2784] encapsulation, the key field [RFC2890], if present,
represents the load balancing field. This mechanism assumes that represents the load balancing field. This mechanism assumes that
core routers base their load-balancing decisions on a flow definition core routers base their load balancing decisions on a flow definition
that includes the load balancing field. This is an obvious and that includes the load balancing field. This is an obvious and
generic functionality as, for example, for L2TPv3-over-IP tunnels, generic functionality as, for example, for L2TPv3-over-IP tunnels,
the Session ID is at the same well-known constant offset as the TCP/ the Session ID is at the same well-known constant offset as the TCP/
UDP ports in the encapsulating header. UDP ports in the encapsulating header.
The "Encapsulation SAFI" [I-D.ietf-softwire-encaps-safi] is extended The "Encapsulation SAFI" [I-D.ietf-softwire-encaps-safi] is extended
such that a contiguous block of the load balancing field is bound to such that a contiguous block of the load balancing field is bound to
the Softwire advertised by a BGP next-hop. On a per-inner flow the Softwire advertised by a BGP next-hop. On a per-inner flow
basis, the ingress PE selects one value of the load balancing field basis, the ingress PE selects one value of the load balancing field
from the block to preserve per-flow ordering, and at the same time to from the block to preserve per-flow ordering, and at the same time to
skipping to change at page 4, line 10 skipping to change at page 4, line 10
load balancing is desired. load balancing is desired.
The sub-TLV type of the Load Balancing Block sub-TLV is 5. The sub- The sub-TLV type of the Load Balancing Block sub-TLV is 5. The sub-
TLV length is 2 octets. The value represents the length of the block TLV length is 2 octets. The value represents the length of the block
in bits and it MUST NOT exceed the size of the load balancing field. in bits and it MUST NOT exceed the size of the load balancing field.
This format is very similar to the variable-length subnet masking This format is very similar to the variable-length subnet masking
(VLSM) used in IP addresses to allow arbitrary length prefixes. The (VLSM) used in IP addresses to allow arbitrary length prefixes. The
block is determined by extracting the initial sequence of 'block block is determined by extracting the initial sequence of 'block
size' bits from the load balancing field. size' bits from the load balancing field.
The smaller the value field of the Load Balancing Block sub-TLV, the
larger the space for per-flow identification, and hence the better
entropy for potential load-balancing in the core; in addition, the
lower the polarization when mapping flows to ECMP paths. However,
reducing the load balancing block size consumes more L2TPv3 Session
IDs or GRE keys, resulting in potentially less number of supported
services. A typical deployment would need to arbitrate between this
trade-off.
As an example, Assume that there is a Softwire set up between R1 and As an example, Assume that there is a Softwire set up between R1 and
R3 with L2TPv3-over-IP tunnel type. Assume that R3 encodes the R3 with L2TPv3-over-IP tunnel type. Assume that R3 encodes the
Session ID with value 0x1234ABCD in the encapsulation sub-TLV. It Session ID with value 0x1234ABCD in the encapsulation sub-TLV. It
also includes the load balancing block sub-TLV and encodes the value also includes the load balancing block sub-TLV and encodes the value
24. This should be interpreted as follows: 24. This should be interpreted as follows:
o If an ingress router does not understand Load Balancing block sub- o If an ingress router does not understand Load Balancing Block sub-
TLV, it continues to use the Session ID 0x1234ABCD and TLV, it continues to use the Session ID 0x1234ABCD and
encapsulates all packets with that Session ID, encapsulates all packets with that Session ID,
o If an ingress router understands Load Balancing Block sub-TLV, it o If an ingress router understands Load Balancing Block sub-TLV, it
picks the first 24 bits out of the Session ID (0x1234AB) to be picks the first 24 bits out of the Session ID (0x1234AB) to be
used as the block and fills in the lower-order 8 bits with a per- used as the block and fills in the lower-order 8 bits with a per-
flow identifier (e.g. it can be determined based on the inner flow identifier (e.g. it can be determined based on the inner
packet's source, destination addresses and TCP/UDP ports). This packet's source, destination addresses and TCP/UDP ports). This
selection preserves per-flow ordering of packets. selection preserves per-flow ordering of packets.
skipping to change at page 5, line 34 skipping to change at page 5, line 43
Sub-TLV name Type Sub-TLV name Type
------------- ----- ------------- -----
Load Balancing Block 5 Load Balancing Block 5
4. Security Considerations 4. Security Considerations
There are no additional security risks introduced by this design. There are no additional security risks introduced by this design.
5. Acknowledgements 5. Acknowledgements
The authors would like to thank Stewart Bryant, Mark Townsley, and The authors would like to thank Stewart Bryant, Mark Townsley, Rajiv
Rajiv Asati for their review and comments. Asati, and Kireeti Kompella for their review and comments.
6. Normative References 6. Normative References
[I-D.ietf-softwire-encaps-safi] [I-D.ietf-softwire-encaps-safi]
Mohapatra, P. and E. Rosen, "BGP Encapsulation SAFI and Mohapatra, P. and E. Rosen, "BGP Encapsulation SAFI and
BGP Tunnel Encapsulation Attribute", BGP Tunnel Encapsulation Attribute",
draft-ietf-softwire-encaps-safi-05 (work in progress), draft-ietf-softwire-encaps-safi-05 (work in progress),
February 2009. February 2009.
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
 End of changes. 8 change blocks. 
9 lines changed or deleted 18 lines changed or added

This html diff was produced by rfcdiff 1.35. The latest version is available from http://tools.ietf.org/tools/rfcdiff/