RFC 2105 INFORMATIONAL ROUTING · FORWARDING · ARCHITECTURE

Cisco Systems' Tag Switching Architecture Overview

A router design that forwards packets by swapping a short tag instead of looking up the destination address.

On rfc-editor.org ↗
PUBLISHED
February 1997
AUTHORS
Y. Rekhter, B. Davie, D. Katz, E. Rosen, G. Swallow
STREAM
Legacy
TAG ALLOCATION METHODS
Downstream, downstream on demand, upstream
WAYS A TAG CAN BE CARRIED
Shim header, layer 2 header, or network layer header
ATM FIELD CARRYING THE TAG
The VCI field
SECOND ATM FIELD FOR TWO LEVELS OF TAGS
The VPI field
PROTOCOL FOR DISTRIBUTING TAG BINDINGS
TDP, the Tag Distribution Protocol
DOI
10.17487/RFC2105

RFC text

Contents
Original text · RFC Editor View on rfc-editor.org ↗
Network Working Group                                         Y. Rekhter
Request for Comments: 2105                                      B. Davie
Category: Informational                                          D. Katz
                                                                E. Rosen
                                                              G. Swallow
                                                     Cisco Systems, Inc.
                                                           February 1997


           Cisco Systems' Tag Switching Architecture Overview

Status of this Memo

   This memo provides information for the Internet community.  This memo
   does not specify an Internet standard of any kind.  Distribution of
   this memo is unlimited.

IESG Note:

   This protocol is NOT the product of an IETF working group nor is it a
   standards track document.  It has not necessarily benefited from the
   widespread and in depth community review that standards track
   documents receive.

Abstract

   This document provides an overview of a novel approach to network
   layer packet forwarding, called tag switching. The two main
   components of  the tag switching architecture - forwarding and
   control - are described.  Forwarding is accomplished using simple
   label-swapping techniques, while the existing network layer routing
   protocols plus mechanisms for binding and distributing tags are used
   for control. Tag switching can retain the scaling properties of IP,
   and can help improve the scalability of IP networks. While tag
   switching does not rely on ATM, it can straightforwardly be applied
   to ATM switches. A range of tag switching applications and deployment
   scenarios are described.

Table of Contents

   1      Introduction  ...........................................   2
   2      Tag Switching components  ...............................   3
   3      Forwarding component  ...................................   3
   3.1    Tag encapsulation  ......................................   4
   4      Control component  ......................................   4
   4.1    Destination-based routing  ..............................   5
   4.2    Hierarchy of routing knowledge  .........................   7
   4.3    Multicast  ..............................................   8
   4.4    Flexible routing (explicit routes)  .....................   9
   5      Tag switching with ATM  .................................   9
   6      Quality of service  .....................................  11
   7      Tag switching migration strategies  .....................  11
   8      Summary  ................................................  12
   9      Security Considerations  ................................  12
   10     Intellectual Property Considerations  ...................  12
   11     Acknowledgments  ........................................  12
   12     Authors' Addresses  .....................................  13

1. Introduction

   Continuous growth of the Internet demands higher bandwidth within the
   Internet Service Providers (ISPs). However, growth of the Internet is
   not the only driving factor for higher bandwidth - demand for higher
   bandwidth also comes from emerging multimedia applications.  Demand
   for higher bandwidth, in turn, requires higher forwarding performance
   (packets per second) by routers, for both multicast and unicast
   traffic.

   The growth of the Internet also demands improved scaling properties
   of the Internet routing system. The ability to contain the volume of
   routing information maintained by individual routers and the ability
   to build a hierarchy of routing knowledge are essential to support a
   high quality, scalable routing system.

   We see the need to improve forwarding performance while at the same
   time adding routing functionality to support multicast, allowing more
   flexible control over how traffic is routed, and providing the
   ability to build a hierarchy of routing knowledge. Moreover, it
   becomes more and more crucial to have a routing system that can
   support graceful evolution to accommodate new and emerging
   requirements.

   Tag switching is a technology that provides an efficient solution to
   these challenges. Tag switching blends the flexibility and rich
   functionality provided by Network Layer routing with the simplicity
   provided by the label swapping forwarding paradigm.  The simplicity
   of the tag switching forwarding paradigm (label swapping) enables
   improved forwarding performance, while maintaining competitive
   price/performance.  By associating a wide range of forwarding
   granularities with a tag, the same forwarding paradigm can be used to
   support a wide variety of routing functions, such as destination-
   based routing, multicast, hierarchy of routing knowledge, and
   flexible routing control. Finally, a combination of simple
   forwarding, a wide range of forwarding granularities, and the ability
   to evolve routing functionality while preserving the same forwarding
   paradigm enables a routing system that can gracefully evolve to
   accommodate new and emerging requirements.

   The rest of the document is organized as follows. Section 2
   introduces the main components of tag switching, forwarding and
   control. Section 3 describes the forwarding component.  Section 4
   describes the control component. Section 5 describes how tag
   switching could be used with ATM. Section 6 describes the use of tag
   switching to help provide a range of qualities of service.  Section 7
   briefly describes possible deployment scenarios. Section 8 summarizes
   the results.

2. Tag Switching components

   Tag switching consists of two components: forwarding and control.
   The forwarding component uses the tag information (tags) carried by
   packets and the tag forwarding information maintained by a tag switch
   to perform packet forwarding. The control component is responsible
   for maintaining correct tag forwarding information among a group of
   interconnected tag switches.

3. Forwarding component

   The fundamental forwarding paradigm employed by tag switching is
   based on the notion of label swapping. When a packet with a tag is
   received by a tag switch, the switch uses the tag as an index in its
   Tag Information Base (TIB). Each entry in the TIB consists of an
   incoming tag, and one or more sub-entries of the form (outgoing tag,
   outgoing interface, outgoing link level information). If the switch
   finds an entry with the incoming tag equal to the tag carried in the
   packet, then for each (outgoing tag, outgoing interface, outgoing
   link level information) in the entry the switch replaces the tag in
   the packet with the outgoing tag, replaces the link level information
   (e.g MAC address) in the packet with the outgoing link level
   information, and forwards the packet over the outgoing interface.

   From the above description of the forwarding component we can make
   several observations. First, the forwarding decision is based on the
   exact match algorithm using a fixed length, fairly short tag as an
   index. This enables a simplified forwarding procedure, relative to
   longest match forwarding traditionally used at the network layer.
   This in turn enables higher forwarding performance (higher packets
   per second). The forwarding procedure is simple enough to allow a
   straightforward hardware implementation.

   A second observation is that the forwarding decision is independent
   of the tag's forwarding granularity. For example, the same forwarding
   algorithm applies to both unicast and multicast - a unicast entry
   would just have a single (outgoing tag, outgoing interface, outgoing
   link level information) sub-entry, while a multicast entry may have
   one or more (outgoing tag, outgoing interface, outgoing link level
   information) sub-entries. (For multi-access links, the outgoing link
   level information in this case would include a multicast MAC
   address.) This illustrates how with tag switching the same forwarding
   paradigm can be used to support different routing functions (e.g.,
   unicast, multicast, etc...)

   The simple forwarding procedure is thus essentially decoupled from
   the control component of tag switching. New routing (control)
   functions can readily be deployed without disturbing the forwarding
   paradigm.  This means that it is not necessary to re-optimize
   forwarding performance (by modifying either hardware or software) as
   new routing functionality is added.

3.1. Tag encapsulation

   Tag information can be carried in a packet in a variety of ways:

      - as a small "shim" tag header inserted between the layer 2 and
      the Network Layer headers;

      - as part of the layer 2 header, if the layer 2 header provides
      adequate semantics (e.g., ATM, as discussed below);

      - as part of the Network Layer header (e.g., using the Flow Label
      field in IPv6 with appropriately modified semantics).

   It is therefore possible to implement tag switching over virtually
   any media type including point-to-point links, multi-access links,
   and ATM.

   Observe also that the tag forwarding component is Network Layer
   independent. Use of control component(s) specific to a particular
   Network Layer protocol enables the use of tag switching with
   different Network Layer protocols.

4. Control component

   Essential to tag switching is the notion of binding between a tag and
   Network Layer routing (routes). To provide good scaling
   characteristics, while also accommodating diverse routing
   functionality, tag switching supports a wide range of forwarding
   granularities. At one extreme a tag could be associated (bound) to a
   group of routes (more specifically to the Network Layer Reachability
   Information of the routes in the group). At the other extreme a tag
   could be bound to an individual application flow (e.g., an RSVP
   flow). A tag could also be bound to a multicast tree.

   The control component is responsible for creating tag bindings, and
   then distributing the tag binding information among tag switches.
   The control component is organized as a collection of modules, each
   designed to support a particular routing function. To support new
   routing functions, new modules can be added. The following describes
   some of the modules.

4.1. Destination-based routing

   In this section we describe how tag switching can support
   destination-based routing. Recall that with destination-based routing
   a router makes a forwarding decision based on the destination address
   carried in a packet and the information stored in the Forwarding
   Information Base (FIB) maintained by the router. A router constructs
   its FIB by using the information the router receives from routing
   protocols (e.g., OSPF, BGP).

   To support destination-based routing with tag switching, a tag
   switch, just like a router, participates in routing protocols (e.g.,
   OSPF, BGP), and constructs its FIB using the information it receives
   from these protocols.

   There are three permitted methods for tag allocation and Tag
   Information Base (TIB) management: (a) downstream tag allocation, (b)
   downstream tag allocation on demand, and (c) upstream tag allocation.
   In all cases, a switch allocates tags and binds them to address
   prefixes in its FIB. In downstream allocation, the tag that is
   carried in a packet is generated and bound to a prefix by the switch
   at the downstream end of the link (with respect to the direction of
   data flow). In upstream allocation, tags are allocated and bound at
   the upstream end of the link. `On demand' allocation means that tags
   will only be allocated and distributed by the downstream switch when
   it is requested to do so by the upstream switch.  Methods (b) and (c)
   are most useful in ATM networks (see Section 5). Note that in
   downstream allocation, a switch is responsible for creating tag
   bindings that apply to incoming data packets, and receives tag
   bindings for outgoing packets from its neighbors. In upstream
   allocation, a switch is responsible for creating tag bindings for
   outgoing tags, i.e. tags that are applied to data packets leaving the
   switch, and receives bindings for incoming tags from its neighbors.

   The downstream tag allocation scheme operates as follows: for each
   route in its FIB the switch allocates a tag, creates an entry in its
   Tag Information Base (TIB) with the incoming tag set to the allocated
   tag, and then advertises the binding between the (incoming) tag and
   the route to other adjacent tag switches. The advertisement could be
   accomplished by either piggybacking the binding on top of the
   existing routing protocols, or by using a separate Tag Distribution
   Protocol [TDP]. When a tag switch receives tag binding information
   for a route, and that information was originated by the next hop for
   that route, the switch places the tag (carried as part of the binding
   information) into the outgoing tag of the TIB entry associated with
   the route. This creates the binding between the outgoing tag and the
   route.

   With the downstream tag allocation on demand scheme, operation is as
   follows. For each route in its FIB, the switch identifies the next
   hop for that route. It then issues a request (via TDP) to the next
   hop for a tag binding for that route. When the next hop receives the
   request, it allocates a tag, creates an entry in its TIB with the
   incoming tag set to the allocated tag, and then returns the binding
   between the (incoming) tag and the  route to the switch that sent the
   original request. When the switch receives the binding information,
   the switch creates an entry in its TIB, and sets the outgoing tag in
   the entry to the value received from the next hop.

   The upstream tag allocation scheme is used as follows. If a tag
   switch has one or more point-to-point interfaces,  then for each
   route in its FIB whose next hop is reachable via one of these
   interfaces, the switch allocates a tag, creates an entry in its TIB
   with the outgoing tag set to the allocated tag, and then advertises
   to the next hop (via TDP) the binding between the (outgoing) tag and
   the route. When a tag switch that is the next hop receives the tag
   binding information, the switch places the tag (carried as part of
   the binding information) into the incoming tag of the TIB entry
   associated with the route.

   Once a TIB entry is populated with both incoming and outgoing tags,
   the tag switch can forward packets for routes bound to the tags by
   using the tag switching forwarding algorithm (as described in Section
   3).

   When a tag switch creates a binding between an outgoing tag and a
   route, the switch, in addition to populating its TIB, also updates
   its FIB with the binding information. This enables the switch to add
   tags to previously untagged packets.

   To understand the scaling properties of tag switching in conjunction
   with destination-based routing, observe that the total number of tags
   that a tag switch has to maintain can not be greater than the number
   of routes in the switch's FIB. Moreover, in some cases a single tag
   could be associated with a group of routes, rather than with a single
   route. Thus, much less state is required than would be the case if
   tags were allocated to individual flows.

   In general, a tag switch will try to populate its TIB with incoming
   and outgoing tags for all routes to which it has reachability, so
   that all packets can be forwarded by simple label swapping. Tag
   allocation is thus driven by topology (routing), not traffic - it is
   the existence of a FIB entry that causes tag allocations, not the
   arrival of data packets.

   Use of tags associated with routes, rather than flows, also means
   that there is no need to perform flow classification procedures for
   all the flows to determine whether to assign a tag to a flow. That,
   in turn, simplifies the overall scheme, and makes it more robust and
   stable in the presence of changing traffic patterns.

   Note that when tag switching is used to support destination-based
   routing, tag switching does not completely eliminate the need to
   perform normal Network Layer forwarding. First of all, to add a tag
   to a previously untagged packet requires normal Network Layer
   forwarding. This function could be performed by the first hop router,
   or by the first router on the path that is able to participate in tag
   switching. In addition, whenever a tag switch aggregates a set of
   routes (e.g., by using the technique of hierarchical routing), into a
   single tag, and the routes do not share a common next hop, the switch
   needs to perform Network Layer forwarding for packets carrying that
   tag. However, one could observe that the number of places where
   routes get aggregated is smaller than the total number of places
   where forwarding decisions have to be made.  Moreover, quite often
   aggregation is applied to only a subset of the routes maintained by a
   tag switch. As a result, on average a packet can be forwarded most of
   the time using the tag switching algorithm.

4.2. Hierarchy of routing knowledge

   The IP routing architecture models a network as a collection of
   routing domains. Within a domain, routing is provided via interior
   routing (e.g., OSPF), while routing across domains is provided via
   exterior routing (e.g., BGP). However, all routers within domains
   that carry transit traffic (e.g., domains formed by Internet Service
   Providers) have to maintain information provided by not just interior
   routing, but exterior routing as well. That creates certain problems.
   First of all, the amount of this information is not insignificant.
   Thus it places additional demand on the resources required by the
   routers. Moreover, increase in the volume of routing information
   quite often increases routing convergence time. This, in turn,
   degrades the overall performance of the system.

   Tag switching allows the decoupling of interior and exterior routing,
   so that only tag switches at the border of a domain would be required
   to maintain routing information provided by exterior routing, while
   all other switches within the domain would just maintain routing
   information provided by the domain's interior routing (which is
   usually significantly smaller than the exterior routing information).
   This, in turn, reduces the routing load on non-border switches, and
   shortens routing convergence time.

   To support this functionality, tag switching allows a packet to carry
   not one but a set of tags, organized as a stack. A tag switch could
   either swap the tag at the top of the stack, or pop the stack, or
   swap the tag and push one or more tags into the stack.

   When a packet is forwarded between two (border) tag switches in
   different domains, the tag stack in the packet contains just one tag.
   However, when a packet is forwarded within a domain, the tag stack in
   the packet contains not one, but two tags (the second tag is pushed
   by the domain's ingress border tag switch).  The tag at the top of
   the stack provides packet forwarding to an appropriate egress border
   tag switch, while the next tag in the stack provides correct packet
   forwarding at the egress switch.  The stack is popped by either the
   egress switch or by the penultimate (with respect to the egress
   switch) switch.

   The control component used in this scenario is fairly similar to the
   one used with destination-based routing. In fact, the only essential
   difference is that in this scenario the tag binding information is
   distributed both among physically adjacent tag switches, and among
   border tag switches within a single domain. One could also observe
   that the latter (distribution among border switches) could be
   trivially accommodated by very minor extensions to BGP (via a
   separate Tag Binding BGP attribute).

4.3. Multicast

   Essential to multicast routing is the notion of spanning trees.
   Multicast routing procedures (e.g., PIM) are responsible for
   constructing such trees (with receivers as leafs), while multicast
   forwarding is responsible for forwarding multicast packets along such
   trees.

   To support a multicast forwarding function with tag switching, each
   tag switch associates a tag with a multicast tree as follows.  When a
   tag switch creates a multicast forwarding entry (either for a shared
   or for a source-specific tree), and the list of outgoing interfaces
   for the entry, the switch also creates local tags (one per outgoing
   interface).  The switch creates an entry in its TIB and populates
   (outgoing tag, outgoing interface, outgoing MAC header) with this
   information for each outgoing interface, placing a locally generated
   tag in the outgoing tag field.  This creates a binding between a
   multicast tree and the tags.  The switch then advertises over each
   outgoing interface associated with the entry the binding between the
   tag (associated with this interface) and the tree.

   When a tag switch receives a binding between a multicast tree and a
   tag from another tag switch, if the other switch is the upstream
   neighbor (with respect to the multicast tree), the local switch
   places the tag carried in the binding into the incoming tag component
   of the TIB entry associated with the tree.

   When a set of tag switches are interconnected via a multiple-access
   subnetwork, the tag allocation procedure for multicast has to be
   coordinated among the switches. In all other cases tag allocation
   procedure for multicast could be the same as for tags used with
   destination-based routing.

4.4. Flexible routing (explicit routes)

   One of the fundamental properties of destination-based routing is
   that the only information from a packet that is used to forward the
   packet is the destination address. While this property enables highly
   scalable routing, it also limits the ability to influence the actual
   paths taken by packets. This, in turn, limits the ability to evenly
   distribute traffic among multiple links, taking the load off highly
   utilized links, and shifting it towards less utilized links. For
   Internet Service Providers (ISPs) who support different classes of
   service, destination-based routing also limits their ability to
   segregate different classes with respect to the links used by these
   classes.  Some of the ISPs today use Frame Relay or ATM to overcome
   the limitations imposed by destination-based routing. Tag switching,
   because of the flexible granularity of tags, is able to overcome
   these limitations without using either Frame Relay or ATM.

   To provide forwarding along the paths that are different from the
   paths determined by the destination-based routing, the control
   component of tag switching allows installation of tag bindings in tag
   switches that do not correspond to the destination-based routing
   paths.

5. Tag switching with ATM

   Since the tag switching forwarding paradigm is based on label
   swapping, and since ATM forwarding is also based on label swapping,
   tag switching technology can readily be applied to ATM switches by
   implementing the control component of tag switching.

   The tag information needed for tag switching can be carried in the
   VCI field. If two levels of tagging are needed, then the VPI field
   could be used as well, although the size of the VPI field limits the
   size of networks in which this would be practical. However, for most
   applications of one level of tagging the VCI field is adequate.

   To obtain the necessary control information, the switch should be
   able (at a minimum) to participate as a peer in Network Layer routing
   protocols (e.g., OSPF, BGP). Moreover, if the switch has to perform
   routing information aggregation, then to support destination-based
   unicast routing the switch should be able to perform Network Layer
   forwarding for some fraction of the traffic as well.

   Supporting the destination-based routing function with tag switching
   on an ATM switch may require the switch to maintain not one, but
   several tags associated with a route (or a group of routes with the
   same next hop).  This is necessary to avoid the interleaving of
   packets which arrive from different upstream tag switches, but are
   sent concurrently to the same next hop. Either the downstream tag
   allocation on demand or the upstream tag allocation scheme could be
   used for the tag allocation and TIB maintenance procedures with ATM
   switches.

   Therefore, an ATM switch can support tag switching, but at the
   minimum it needs to implement Network Layer routing protocols, and
   the tag switching control component on the switch. It may also need
   to support some network layer forwarding.

   Implementing tag switching on an ATM switch would simplify
   integration of ATM switches and routers - an ATM switch capable of
   tag switching would appear as a router to an adjacent router. That
   could provide a viable, more scalable alternative to the overlay
   model. It also removes the necessity for ATM addressing, routing and
   signalling schemes. Because the destination-based forwarding approach
   described in section 4.1 is topology driven rather than traffic
   driven, application of this approach to ATM switches does not high
   call setup rates, nor does it depend on the longevity of flows.

   Implementing tag switching on an ATM switch does not preclude the
   ability to support a traditional ATM control plane (e.g., PNNI) on
   the same switch. The two components, tag switching and the ATM
   control plane, would operate in a Ships In the Night mode (with
   VPI/VCI space and other resources partitioned so that the components
   do not interact).

6. Quality of service

   Two mechanisms are needed for providing a range of qualities of
   service to packets passing through a router or a tag switch. First,
   we need to classify packets into different classes. Second, we need
   to ensure that the handling of packets is such that the appropriate
   QOS characteristics (bandwidth, loss, etc.) are provided to each
   class.

   Tag switching provides an easy way to mark packets as belonging to a
   particular class after they have been classified the first time.
   Initial classification would be done using information carried in the
   network layer or higher layer headers. A tag corresponding to the
   resultant class would then be applied to the packet. Tagged packets
   can then be efficiently handled by the tag switching routers in their
   path without needing to be reclassified. The actual packet scheduling
   and queueing is largely orthogonal - the key point here is that tag
   switching enables simple logic to be used to find the state that
   identifies how the packet should be scheduled.

   The exact use of tag switching for QOS purposes depends a great deal
   on how QOS is deployed. If RSVP is used to request a certain QOS for
   a class of packets, then it would be necessary to allocate a tag
   corresponding to each RSVP session for which state is installed at a
   tag switch. This might be done by TDP or by extension of RSVP.

7. Tag switching migration strategies

   Since tag switching is performed between a pair of adjacent tag
   switches, and since the tag binding information could be distributed
   on a pairwise basis, tag switching could be introduced in a fairly
   simple, incremental fashion. For example, once a pair of adjacent
   routers are converted into tag switches, each of the switches would
   tag packets destined to the other, thus enabling the other switch to
   use tag switching. Since tag switches use the same routing protocols
   as routers, the introduction of tag switches has no impact on
   routers. In fact, a tag switch connected to a router acts just as a
   router from the router's perspective.

   As more and more routers are upgraded to enable tag switching, the
   scope of functionality provided by tag switching widens. For example,
   once all the routers within a domain are upgraded to support tag
   switching, in becomes possible to start using the hierarchy of
   routing knowledge function.

8. Summary

   In this document we described the tag switching technology. Tag
   switching is not constrained to a particular Network Layer protocol -
   it is a multiprotocol solution.  The forwarding component of tag
   switching is simple enough to facilitate high performance forwarding,
   and may be implemented on high performance forwarding hardware such
   as ATM switches. The control component is flexible enough to support
   a wide variety of routing functions, such as destination-based
   routing, multicast routing, hierarchy of routing knowledge, and
   explicitly defined routes. By allowing a wide range of forwarding
   granularities that could be associated with a tag, we provide both
   scalable and functionally rich routing. A combination of a wide range
   of forwarding granularities and the ability to evolve the control
   component fairly independently from the forwarding component results
   in a solution that enables graceful introduction of new routing
   functionality to meet the demands of a rapidly evolving computer
   networking environment.

9. Security Considerations

   Security issues are not discussed in this memo.

10. Intellectual Property Considerations

   Cisco Systems may seek patent or other intellectual property
   protection for some or all of the technologies disclosed in this
   document. If any standards arising from this document are or become
   protected by one or more patents assigned to Cisco Systems, Cisco
   intends to disclose those patents and license them on reasonable and
   non-discriminatory terms.

11. Acknowledgments

   Significant contributions to this work have been made by Anthony
   Alles, Fred Baker, Paul Doolan, Dino Farinacci, Guy Fedorkow, Jeremy
   Lawrence, Arthur Lin, Morgan Littlewood, Keith McCloghrie, and Dan
   Tappan.

12. Authors' Addresses

   Yakov Rekhter
   Cisco Systems, Inc.
   170 Tasman Drive
   San Jose, CA, 95134

   EMail: yakov@cisco.com


   Bruce Davie
   Cisco Systems, Inc.
   250 Apollo Drive
   Chelmsford, MA, 01824

   EMail: bsd@cisco.com


   Dave Katz
   Cisco Systems, Inc.
   170 Tasman Drive
   San Jose, CA, 95134

   EMail: dkatz@cisco.com


   Eric Rosen
   Cisco Systems, Inc.
   250 Apollo Drive
   Chelmsford, MA, 01824

   EMail: erosen@cisco.com


   George Swallow
   Cisco Systems, Inc.
   250 Apollo Drive
   Chelmsford, MA, 01824

   EMail: swallow@cisco.com

ISO Plain Language

On this page
PROBLEMRouters have to look up a destination address on every packet, and that lookup gets slower as the routing table grows and as more traffic has to be handled.
MECHANISMTag switching gives each packet a short tag. A switch looks the tag up in a table, replaces it with the outgoing tag, and sends the packet, while the routing protocols that already exist work out which tags mean what.
WHY IT MATTERSThe forwarding step becomes a fixed-length lookup that can be built into hardware, and the control part stays separate from it, so new routing functions can be added without changing how packets are forwarded.

§1Introduction and the Two Components

Continuous growth of the Internet demands higher bandwidth within the Internet service providers, and demand for higher bandwidth also comes from emerging multimedia applications. Higher bandwidth in turn requires higher forwarding performance, measured in packets per second, by routers, for both multicast and unicast traffic. Growth also demands improved scaling properties of the Internet routing system: the ability to contain the volume of routing information maintained by individual routers, and the ability to build a hierarchy of routing knowledge.

Tag switching is offered as a technology that provides an efficient solution to these challenges. It blends the flexibility and rich functionality of network layer routing with the simplicity of the label swapping forwarding paradigm. The simplicity of label swapping enables improved forwarding performance while maintaining competitive price and performance, and by associating a wide range of forwarding granularities with a tag, the same forwarding paradigm can support destination-based routing, multicast, a hierarchy of routing knowledge and flexible routing control. A combination of simple forwarding, a wide range of forwarding granularities and the ability to evolve routing functionality while preserving the same forwarding paradigm is what enables a routing system to evolve gracefully.

Tag switching consists of two components. The forwarding component uses the tag information carried by packets, and the tag forwarding information maintained by a tag switch, to perform packet forwarding. The control component is responsible for maintaining correct tag forwarding information among a group of interconnected tag switches. An IESG note records that this protocol is not the product of an IETF working group and is not a standards track document, and that it has not necessarily benefited from the widespread and in depth community review that standards track documents receive.

The split between forwarding and control is the central idea. Forwarding is the quick per-packet decision; control is the slower work of deciding what the forwarding table should say.

§3Forwarding by Label Swapping

WHERE THE TAG SITS IN THE PACKET
  1. Network layerIP or another network layer protocol
  2. TagA short shim header between the network layer and link layer headers
  3. Link layerThe frame that carries the packet over the link

The fundamental forwarding paradigm is based on label swapping. When a packet with a tag arrives at a tag switch, the switch uses the tag as an index in its Tag Information Base (TIB). Each entry in the TIB consists of an incoming tag and one or more sub-entries of the form outgoing tag, outgoing interface and outgoing link level information. If the switch finds an entry whose incoming tag equals the tag in the packet, then for each such sub-entry the switch replaces the tag in the packet with the outgoing tag, replaces the link level information in the packet with the outgoing link level information, and forwards the packet over the outgoing interface.

Two observations follow. First, the forwarding decision is based on an exact match using a fixed length, fairly short tag as an index, rather than the longest match forwarding traditionally used at the network layer. That simplifies the forwarding procedure and enables higher forwarding performance, and the procedure is simple enough for a straightforward hardware implementation. Second, the forwarding decision is independent of the tag's forwarding granularity: the same algorithm applies to unicast and to multicast, a unicast entry simply having a single sub-entry while a multicast entry may have one or more.

The tag can be carried in a packet in several ways: as a small shim tag header inserted between the layer 2 and the network layer headers; as part of the layer 2 header, if that header provides adequate semantics, as with ATM; or as part of the network layer header, for example using the Flow Label field in IPv6 with appropriately modified semantics. So tag switching can be implemented over virtually any media type, including point-to-point links, multi-access links and ATM. The forwarding component is also network layer independent, so using a control component specific to a particular network layer protocol lets tag switching work with different network layer protocols.

One table lookup replaces the address lookup, and the lookup is on a fixed-length value rather than a prefix, so the hardware can do it the same way every time.

THE SAME LOOKUP ON EVERY HOP
SenderSwitch ASwitch BReceiver
  1. PACKET WITH TAG 1
  2. PACKET WITH TAG 2Switch A looks tag 1 up, swaps it for tag 2, and sends the packet out.
  3. PACKET WITH TAG 3The same lookup happens again at the next switch.

§4.1The Control Component and Tag Allocation

Essential to tag switching is the binding between a tag and network layer routing. To provide good scaling characteristics while accommodating diverse routing functionality, tag switching supports a wide range of forwarding granularities: at one extreme a tag could be bound to a group of routes, more specifically to the network layer reachability information of the routes in the group, and at the other extreme a tag could be bound to an individual application flow such as an RSVP flow. A tag could also be bound to a multicast tree. The control component creates those bindings and then distributes the binding information among the tag switches, and it is organized as a collection of modules, each supporting a particular routing function, so that new modules can be added.

For destination-based routing, a tag switch participates in routing protocols such as OSPF and BGP and builds its FIB from what those protocols tell it. There are three permitted methods for tag allocation and TIB management: downstream tag allocation, downstream tag allocation on demand, and upstream tag allocation. In all cases a switch allocates tags and binds them to address prefixes in its FIB. In downstream allocation the tag carried in a packet is generated and bound to a prefix by the switch at the downstream end of the link, with respect to the direction of data flow; in upstream allocation the tags are allocated and bound at the upstream end of the link. On demand allocation means that tags are only allocated and distributed by the downstream switch when the upstream switch asks for it. The memo notes that the on demand and upstream methods are most useful in ATM networks.

Under downstream allocation, for each route in its FIB the switch allocates a tag, creates a TIB entry with the incoming tag set to that tag, and advertises the binding between the incoming tag and the route to adjacent tag switches, either by piggybacking the binding on the existing routing protocols or by using a separate Tag Distribution Protocol (TDP). When a switch receives tag binding information for a route that was originated by the next hop for that route, it puts the tag into the outgoing tag of the TIB entry, creating the binding between the outgoing tag and the route. Under on demand allocation the switch identifies the next hop for each route and requests a binding for it, and the next hop allocates a tag, creates its own TIB entry and returns the binding. Under upstream allocation a switch with point-to-point interfaces allocates a tag for each route reachable over such an interface, creates a TIB entry with the outgoing tag set to it, and advertises the binding to the next hop, which places the tag into the incoming tag of its own entry.

Once a TIB entry has both an incoming and an outgoing tag, the switch can forward packets for the bound routes using the forwarding algorithm. When a switch creates a binding it also updates its FIB, which lets it add tags to previously untagged packets. The scaling comes from the fact that the total number of tags a switch must maintain cannot be greater than the number of routes in its FIB, and in some cases a single tag can be associated with a group of routes. Tag allocation is driven by topology rather than traffic: it is the existence of a FIB entry that causes an allocation, not the arrival of data packets. Using tags for routes rather than flows also removes the need to classify every flow, which makes the scheme more robust and stable when traffic patterns change.

The routing protocols stay as they are, and a separate mechanism says which tag stands for which route. Who picks the tag is a choice: the far end of the link, the far end when asked, or the near end.

THE THREE WAYS A TAG CAN BE ALLOCATED
MethodWho allocates the tagHow it works
DownstreamThe switch at the downstream end of the linkThe switch creates the binding for incoming packets and tells its neighbours
Downstream on demandThe downstream switch, when askedThe upstream switch requests the binding it needs
UpstreamThe switch at the upstream end of the linkThe switch creates the binding for outgoing packets and tells the next hop

§4.2Hierarchy of Routing Knowledge

The IP routing architecture models a network as a collection of routing domains. Within a domain, routing is provided by interior routing such as OSPF, and across domains by exterior routing such as BGP. All routers within domains that carry transit traffic have to maintain information from exterior routing as well as interior routing, and that is a problem: the amount of information is not insignificant, it places additional demand on router resources, and an increase in routing information quite often increases convergence time, which degrades the overall performance of the system.

Tag switching allows the decoupling of interior and exterior routing, so that only tag switches at the border of a domain maintain the information provided by exterior routing, while all other switches in the domain maintain only what the domain's interior routing provides, which is usually significantly smaller. This reduces the routing load on non-border switches and shortens convergence time.

To support this, tag switching allows a packet to carry not one but a set of tags, organized as a stack. A tag switch can swap the tag at the top of the stack, pop the stack, or swap the tag and push one or more tags onto the stack. When a packet is forwarded between two border tag switches in different domains the stack contains just one tag; when it is forwarded within a domain the stack contains two, the second pushed by the domain's ingress border switch. The tag at the top provides forwarding to the appropriate egress border switch, and the next tag provides correct forwarding at the egress switch. The stack is popped by either the egress switch or the penultimate switch. The control component here is similar to the one used with destination-based routing; the only essential difference is that the tag binding information is distributed both among physically adjacent tag switches and among border tag switches within a domain, and the memo notes that the latter could be accommodated by minor extensions to BGP through a separate tag binding attribute.

Inside a network, a router only needs to know about that network. The outside world is handled at the edges, which keeps the tables small and the network quick to settle after a change.

§4.3Multicast and Flexible Routing

Essential to multicast routing is the notion of spanning trees. Multicast routing procedures such as PIM construct those trees with receivers as leaves, and multicast forwarding forwards the packets along them. To support multicast forwarding with tag switching, a tag switch associates a tag with a multicast tree. When the switch creates a multicast forwarding entry, for a shared tree or a source-specific tree, and the list of outgoing interfaces for the entry, it also creates local tags, one per outgoing interface. It creates an entry in its TIB and populates the outgoing tag, outgoing interface and outgoing MAC header for each outgoing interface, placing a locally generated tag in the outgoing tag field. That creates a binding between the multicast tree and the tags, and the switch then advertises, over each outgoing interface, the binding between the tag associated with that interface and the tree. When a switch receives a binding between a multicast tree and a tag from another switch, and that other switch is the upstream neighbour with respect to the tree, the local switch puts the tag into the incoming tag component of the TIB entry. When switches are interconnected via a multiple-access subnetwork, the tag allocation procedure for multicast has to be coordinated among them.

Flexible routing, or explicit routes, addresses a limitation of destination-based routing. The only information from a packet used to forward it is the destination address, which enables highly scalable routing but limits the ability to influence the actual paths packets take. That in turn limits the ability to even out traffic across multiple links, to take load off heavily used links and shift it towards less used ones, and, for providers who support different classes of service, to segregate those classes by the links they use. Some providers use Frame Relay or ATM to overcome these limits; tag switching, because of the flexible granularity of tags, can overcome them without either. To provide forwarding along paths different from the ones determined by destination-based routing, the control component allows tag bindings to be installed in tag switches that do not correspond to the destination-based routing paths.

Because a tag can mean different things, the same forwarding machinery can carry a multicast tree or a chosen path across the network, not just a destination address.

§5ATM, Quality of Service and Deployment

Because the tag switching forwarding paradigm is based on label swapping, and ATM forwarding is also based on label swapping, tag switching can readily be applied to ATM switches by implementing the control component. The tag information can be carried in the VCI field; if two levels of tagging are needed the VPI field could be used as well, although the size of the VPI field limits the size of the networks in which that would be practical. To obtain the necessary control information the switch should be able, at a minimum, to participate as a peer in network layer routing protocols such as OSPF and BGP, and if the switch has to perform routing information aggregation it should also be able to perform network layer forwarding for some fraction of the traffic.

Supporting destination-based routing with tag switching on an ATM switch may require the switch to maintain not one but several tags associated with a route or a group of routes with the same next hop, to avoid interleaving packets that arrive from different upstream tag switches but are sent concurrently to the same next hop. Either the on demand or the upstream allocation scheme could be used. Implementing tag switching on an ATM switch would simplify integration between ATM switches and routers, since an ATM switch capable of tag switching would appear as a router to an adjacent router, and it removes the need for ATM addressing, routing and signalling schemes. It does not preclude supporting a traditional ATM control plane such as PNNI on the same switch, with the two components operating in what the memo calls a Ships In the Night mode, with the VPI and VCI space and other resources partitioned so the components do not interact.

For quality of service, two mechanisms are needed: classifying packets into classes, and ensuring that the handling of packets gives each class the right characteristics such as bandwidth and loss. Tag switching gives an easy way to mark packets as belonging to a class once they have been classified the first time. Initial classification uses information carried in the network layer or higher layer headers, and a tag corresponding to the resulting class is applied to the packet. Tagged packets can then be handled efficiently by the tag switching routers along their path without being reclassified. If RSVP is used to request a quality of service for a class of packets, a tag must be allocated for each RSVP session for which state is installed at a tag switch, which might be done by TDP or by an extension of RSVP.

For deployment, tag switching is performed between a pair of adjacent tag switches and the binding information could be distributed on a pairwise basis, so it can be introduced in a simple, incremental fashion. Once a pair of adjacent routers are converted into tag switches, each tags packets destined for the other. Because tag switches use the same routing protocols as routers, their introduction has no impact on routers, and a tag switch connected to a router acts just as a router from the router's point of view. As more routers are upgraded, the scope of functionality widens: once all the routers within a domain support tag switching, the hierarchy of routing knowledge function can be used. The memo's summary is that tag switching is not constrained to a particular network layer protocol, that its forwarding component is simple enough to allow high performance forwarding, and that its control component is flexible enough to support destination-based routing, multicast routing, a hierarchy of routing knowledge and explicitly defined routes.

Because ATM switches already swap labels, the same idea fits onto them. And because the two halves are separate, a network can be converted one router at a time without disturbing the routers that have not been converted.