Network Working Group Arthur Lin Internet Draft Cisco Systems, Inc. Expiration Date: June 1997 Bruce Davie Cisco Systems, Inc. Fred Baker Cisco Systems, Inc. December 1996 Tag Switching Support for Classes of Service draft-lin-tags-cos-00.txt Status of this Memo This document is an Internet-Draft. Internet-Drafts are working documents of the Internet Engineering Task Force (IETF), its areas, and its working groups. Note that other groups may also distribute working documents as Internet-Drafts. Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress." To learn the current status of any Internet-Draft, please check the "1id-abstracts.txt" listing contained in the Internet-Drafts Shadow Directories on ftp.is.co.za (Africa), nic.nordu.net (Europe), munnari.oz.au (Pacific Rim), ds.internic.net (US East Coast), or ftp.isi.edu (US West Coast). Abstract A tag switching architecture is described in [1]. This document describes how classes of service can be provided in the tag switching architecture. The cases of frame-based tag switching routers (TSRs) and ATM-based TSRs are considered. Lin, et al. [Page 1] Internet Draft draft-lin-tags-cos-00.txt December 1996 1. Introduction A tag switching architecture is described in [4]. This document describes the support of class of service (COS) in a tag switched network. COS is a relatively simple way to provide a range of qualities of service. An alternative scheme involving RSVP is described in [6]. The basic idea behind COS support is to sort traffic into a small number of classes, e.g. premium and standard, and to tag the packets appropriately. The tags are then used to determine the appropriate handling for packets in different classes, so that different qualities of service can be provided to each class. The policies that are used to determine how packets are sorted into the classes are largely outside the scope of this proposal, but we provide some examples here for illustrative purposes. Some example policies might be `all packets from customer X go in the premium class' or `at most 1Mbps of traffic from customer Y goes in the premium class'. At any multiplexing point in the network (e.g. a switch or router), the packet scheduling and dropping policies of switches or routers are determined by the class to which packets belong. In the example above, one would expect that the overall service given to packets in the premium class would be `better' than that given to the standard class; for example, the premium class might experience lower loss rate or delay. We propose the following process of providing different classes of service in a network: - classify packets according to some local policy as they enter the network; - identify the class of the packet in a way that switches and routers will be readily able to use as the packets traverse the network; - use scheduling and buffer management algorithms in the switches and routers that are dependent on the class of the packets. Three main capabilities are required to support this process: - a way to classify packets Lin, et al. [Page 2] Internet Draft draft-lin-tags-cos-00.txt December 1996 - a way to encode the class in the packet - queueing disciplines. Tag switching primarily helps us with the second. It also provides a means by which we can take advantage of the queueing disciplines of `layer 2' switches to support COS at layer 3. The actual mechanisms used for scheduling and discarding packets are largely orthogonal to the use of tag switching. By way of illustration, we consider the example of class-based weighted fair queuing (WFQ) - this is essentially the idea of controlled link- sharing in [2]. Assume we have 2 classes again, and that the offered load for premium traffic is less than that for standard traffic. We could use class-based WFQ to assign 50% of the link bandwidth to each class. Class-based WFQ ensures that, under congestion, each class gets its allotted share of the link bandwidth, but it doesn't prevent another class from using that capacity if it is available. The effect during times of congestion is as if the premium traffic is running on a more lightly loaded network. Clearly the example above is rather simplistic. The network operator would need to assign weights to the different classes based on offer load for the classes. Assigning the weights is very similar to engineering a single class network (there needs to be enough bandwidth to carry the offered load at acceptable performance) which is challenging, but moderately well understood. However, there are at least two advantages in a multiple class network. First, it is much easier to change the weight of a class (configuration rather than trench digging). Also, it is possible to share bandwidth between the classes - for example, the standard class can use 100% of the link if there is no premium traffic at some point in time [2]. The major contribution of tag switching to the COS problem is to provide a simple way to encode the class of a packet so that it can be scheduled appropriately. In the following sections, we discuss two cases of COS support which exhibit some significant differences: frame-based tag switching routers (TSRs), and ATM TSRs. Lin, et al. [Page 3] Internet Draft draft-lin-tags-cos-00.txt December 1996 1.1. Definitions A Tag Switching Router (TSR) is a device which implements the tag switching control and forwarding components described in [4]. A tag switching controlled ATM (TC-ATM) interface is an ATM interface controlled by the tag switching control component. Packets traversing such an interface carry tags in the VCI and/or VPI field. An ATM-TSR is a TSR with a number of TC-ATM interfaces which forwards cells between these interfaces using tags carried in the VCI and/or VPI field. An ATM-TSR which is capable of taking cells from several incoming VCs (tags) and transitting them on a single outgoing VC (tag) while preserving correct packet boundaries is said to perform `VC-merge'. An ATM-TSR cloud is a set of ATM-TSRs which are mutually interconnected by TC-ATM interfaces. A frame-based TSR is a TSR which forwards complete frames between its interfaces. Note that such a TSR may have zero, one or more TC-ATM interfaces. 2. Frame-based TSRs For frame-based TSRs, the tag encapsulation includes a precedence or class of service (COS) field [3]. Thus, it is simple to use this field to represent the class of the packet and to perform appropriate scheduling and buffer management on it. Since it is not expected that tag switching will be universally deployed, it is worth considering the case where tag switching is deployed in some part of an IP network. Since the IP header contains a precedence field that could also be used to convey the class of a packet, it is possible that COS capabilities could be provided on both the tag-switched and non-tag-switched parts of the network. There are at least two cases to consider: - IP Precedence is set before the packet arrives at an edge TSR which will apply the first tag (i.e. the packet has already been classified when it reaches the first TSR). In this case, it needs to be possible to (a) copy the precedence value from the IP header into the COS field of the tag header; (b) use the COS value in the tag header and the IP precedence in identical ways to drive the packet scheduling and buffer management mechanisms in the routers. Lin, et al. [Page 4] Internet Draft draft-lin-tags-cos-00.txt December 1996 - Classification is performed at the same router which is applying the first tag. In this case, it is possible that one would want to put the appropriate COS value in both the IP header and the tag header, so that appropriate packet handling can be performed after the tag is removed; alternatively, one might wish to preserve the original precedence value in the IP header, which may have meaning to the end systems. This would be an administrative choice. 3. ATM Switches There is a significant difference between ATM TSRs and frame-based TSRs in the context of COS. This is because we cannot readily put a precedence field in the tag header for ATM, the only useful space for the tag header being the ATM VPI/VCI field. In addition, there may be other differences depending on the scheduling and queue management mechanisms that a switch can support. These two aspects are discussed in the following sections. 3.1. Precedence encoding The most straightforward way to encode precedence values in a tag- switched ATM environment is to use multiple tags per destination prefix. Note that in an ATM environment where the TSRs are not VC- merge capable, tag allocation is driven primarily by routers or frame-based TSRs at the edges of the ATM-TSR cloud (the `edge set' of the cloud). While it would be possible to allocate 8 tags per prefix corresponding to the 8 possible values of the COS field, it is preferable to conserve tags by allocating only as many as are needed. We propose two methods to conserve tag space: 1. The members of the edge set of the ATM-TSR cloud are configured to support some number of COS classes (8 or fewer). Using the downstream-on-demand allocation of tags [7], they will then request an appropriate number of tags per destination prefix; this will percolate though the ATM-TSR cloud, establishing the correct number of tags at each ATM-TSR. No special configuration of the ATM-TSRs is needed. 2. The members of the edge set of the ATM-TSR cloud request one tag per destination prefix, as described in [7]. All traffic would be initially forwarded using this tag, but the arrival of data traffic with multiple COS values would cause the edge TSR to request additional tags corresponding to the number of COS classes Lin, et al. [Page 5] Internet Draft draft-lin-tags-cos-00.txt December 1996 that are active. In either approach, there is a need for TDP bind request messages and the responses to include the precedence to which the tag will be bound. This modification will be included in the next release of tag distribution protocol internet draft [5]. 3.2 COS mechanisms Clearly the packet scheduling and buffer management mechanisms available in an ATM-TSR will vary widely among implementations. Some ATM switches may be able to support class-based WFQ as described above. Note that the desired behavior for a ATM-TSR is to group all the traffic of a particular precedence value together as a single WFQ class. Thus, for example, in the 2-class example in which each class has equal weight, we want to group all traffic with `premium' tags together and make sure that, under congestion, this aggregate gets at least 50% of the link. This is very different from the per-VC WFQ provided in some switches. 4. Security Considerations Security considerations are not addressed in this document. 5. References [1] S. Floyd, V. Jacobsen, "Random Early Detection Gateways for Congestion Avoidance," ftp://ftp.ee.lbl.gov/papers/early.ps.gz [2] R. Braden, D. Clark, S. Shenker, "Integrated Services in the Internet Architecture: an Overview", RFC 1633, June 1994. [3] E. Rosen, et al., "Tag Switching: Tag Stack Encodings," draft- rosen-tag-stack-00.txt. [4] Y. Rekhter, et al., "Tag Switching Architecture Overview," draft-rfced-tag-switching-overview-00.txt. [5] P. Doolan, et al., "Tag Distribution Protocol," draft-doolan- tdp-spec-00.txt. [6] F. Baker and Y. Rekhter. "Tag Switching with RSVP", draft-baker- tags-rsvp-00.txt Lin, et al. [Page 6] Internet Draft draft-lin-tags-cos-00.txt December 1996 [7] B. Davie et al., "Use of Tag Switching With ATM", draft-davie- tag-switching-atm-00.txt 6. Acknowledgments Significant contributions to this work have been made by David Hughes, Jeremy Lawrence, Joe Lawrence, and Eric Rosen. 7. Authors' Addresses Arthur Lin Cisco Systems, Inc. 170 Tasman Drive San Jose, CA 95134 E-mail: alin@cisco.com Bruce Davie Cisco Systems, Inc. 250 Apollo Drive Chelmsford, MA 01824 E-mail: bsd@cisco.com Fred Baker Cisco Systems, Inc. 519 Lado Drive Santa Barbara, CA 93111 E-mail: fred@cisco.com Lin, et al. [Page 7]