Internet Draft                                 M. Pullen
draft-pullen-qos-sim-models-05.txt             Y. Huang
Expires: August 2004                           L. Huang
                                                 George Mason University
                                               P. Singh
                                                 OPNET Technologies
                                               February 2004


       Expanded Simulation Models for IntServ and DiffServ with MPLS


Status of this Memo

   This document is an Internet-Draft and is subject to all provisions
   of Section 10 of RFC2026.

   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."

   The list of current Internet-Drafts can be accessed at
   http://www.ietf.org/1id-abstracts.html

   The list of Internet-Draft Shadow Directories can be accessed at
   http://www.ietf.org/shadow.html


Abstract

   This document describes detailed models for analysis of proposed
   protocols for Quality of Service (QoS) delivery with IPv4 (including
   simulation multicast).  The models have been developed using the
   OPNET package.  They are intended to allow investigation of
   performance using proposed protocols and should have wide
   applicability in the Internet QoS community.  We are making these
   models publicly available with the intention that they can be used
   to provide expanded studies of QoS delivery for both unicast and
   multicast, using IntServ, DiffServ, and MPLS.  This Internet-Draft
   is intended to form the basis for an Informational RFC that extends
   the previous RFC2490.


Pullen                      Expires: August 2004               [Page 1]


Internet Draft       draft-pullen-qos-sim-models-05.txt   February 2004


Table of Contents

1. Background

2. The OPNET Simulation Environment
   2.1 MOSPF
   2.2 IP and Multicast Models
   2.3 IGMP Process Models
   2.4 RSVP Process Model
   2.5 Multicast Application Models
   2.6 Creation of Multicast Routing Processor Node
   2.7 MOSPF Interaction with Other Protocols

3. OSPF and MOSPF Models
   3.1 Init
   3.2 Idle
   3.3 BCOspfLsa
   3.4 BCMospfLsa
   3.5 arr
   3.6 hello_pks
   3.7 cospfspfcalc
   3.8 ospfspfcal
   3.9 upstrNode
   3.10 DABRA
   3.11 QOSPF

4. Modeling DiffServ-Enabled Multicast over MPLS Tunnels
    4.1 Architectural Changes in OPNET 8.0
    4.2 OPNET 8.0 MPLS Model
    4.3 DiffServ Features
    4.3 Traffic Marker
    4.4 Simulation Models

5. Example of Use
    5.1 Network models
    5.2 IntServ simulation
    5.3 DiffServ simulation

6. Future Work

7. Security Considerations

8. IANA considerations

9. Authors' Addresses

10. References

11. Full Copyright Statement



Pullen                      Expires: August 2004               [Page 2]


Internet Draft       draft-pullen-qos-sim-models-05.txt   February 2004


1. Background

   The successful deployment of IP multicasting (IPmc)[1] in parts of
   the Internet and its availability in the Mbone has led to continuing
   increase in real-time multimedia internet applications.  Because the
   Internet traditionally supported only a best-effort quality of
   service, there is considerable interest to create mechanisms that
   will allow adequateresources to be reserved in networks using the
   Internet protocol suite, such that the quality of real-time traffic
   such as video, voice, and distributed simulation can be sustained at
   specified quality of service (Qos) levels.  The Integrated Services
   (IntServ)[2] and Differentiated Services [3] frameworks were
   developed for this purpose. The RSVP protocol [4,5] and MPLS protocol
   [5] that provide important facilities for IntServ and DiffServ are
   now progressing in the Internet standards process.

   The ability to simulate the performance of a proposed new protocol or
   feature is very important to the work of the IETF. However, no open
   modelsof RSVP and IPmc were available in the late 1990s.  Therefore a
   group at George Mason University (GMU) developed an open source
   family of models that work in the OPNET commercial simulation
   environment, and documented these models in RFC 2490 [6].  Since that
   time, much progress has been made in IntServ and DiffServ deployment
   and standardization.  However, theassociated protocols are still on
   the leading edge of Internet technology and thus the need for the
   ability to simulate them as part of the IETF'sdesign and development
   work remains.  Also, since publication of RFC 2490 the commercial
   OPNET models have been expanded to include more protocols of interest
   in IntServ and DiffServ.  By making use of the OPNET versions, it is
   possible to make the modeling process easier for potential users and
   also to improve the performance of the resulting simulations.  We
   havetherefore prepared an updated version of the models described in
   RFC 2490,which once again is open source and also works with the
   latest version of OPNET.  Our revised models are presented in this
   document. They are available for download at
   http://netlab.gmu.edu/qosip.


2.  The OPNET Simulation Environment

   The OPNET Modeler (OPNET) is a commercial simulation product of OPNET
   Technologies, Inc. of Bethesda, Maryland.  It employs, among other
   techniques, a Discrete Event Simulation approach that allows large
   numbers of closely-spaced events in a sizable network to be
   represented accurately and efficiently.  OPNET uses a modeling
   approach where networks are built of components interconnected by
   perfect links that can be degraded at will.  Each component's
   behavior is modeled as a state-transition diagram.  The process that
   takes place in each state is described by a program in the C/C++
   language. We believe this makes the OPNET-based models relatively
   easy to port to other modeling environments.  Use of this environment

Pullen                      Expires: August 2004               [Page 3]


Internet Draft       draft-pullen-qos-sim-models-05.txt   February 2004


   also is attractive for unsponsored academic research in that the
   OPNET Modeler is available at no charge for educational purposes.
   Thus makes it graduate students can afford to pursue analysis of
   leading-edge Internet protocols.

   The family of models described here is compatible with OPNET. The
   following sections describe the new models from OPNET that replace
   models presented in RFC 2490, and new state-transition models and
   process code we have created to analyze IntServ and DiffServ
   proposals using RSVP and MPLS.  Please note that an OPNET layer is
   not necessarily equivalent to a layer in a network stack, but
   shares with a stack layer the property that it is a highly modular
   software element with welldefined interfaces. Details of OPNET
   modeling can be found in [8,9].

2.1 MOSPF

   OPNET supports the PIM-SM multicast protocol and uses it for
   multicast applications by default.  It also provides a "hook" that
   facilitates user development of multicast protocols, which our MOSPF
   process model uses. In the remainder of this section, we discuss the
   OPNET process models that collectively perform multicast.  We give
   special attention to the interfaces by means of which a custom-built
   multicast routing protocol interacts with the OPNET processes.  We
   also discuss the enhancements required for these process models to
   work with multicast routing protocols, such as DVMRP and MOSPF, that
   do not explicitly establish multicast routes a priori by means of
   control messages but rather trigger route computations by the
   arrival of multicast messages.  All the enhancements discussed here
   are included in our simulation model for public download.

2.2 IP and Multicast Models

   In OPNET, two process models implement IP layer functions:
   ip_dispatch and ip_encap_v4.  The former performs typical network
   layer functions such as routing and packet forwarding.  The latter
   provides mainly a multiplexing/demultiplexing interface between
   ip_dispatch and higher-level protocols.  For sake of brevity, we
   describe a high-level protocol "connected to IP," meaning the
   configuration where the protocol process accesses ip_dispatch by
   connecting to ip_encap_v4 using packet streams. In particular,
   multicast routing processes must connect to IP to exchange Control
   messages with their counterparts on peer routers.

   Many multicast-related features in OPNET are implemented as child
   processes of ip_dispatch.  Such a process will be referred to as an
   "IP child process" hereafter.  For example, custom-built multicast
   protocols are supported via the ip_custom_mrp IP child process.
   For a simulation model configured to use a custom multicast protocol,
   ip_dispatch invokes the ip_custom_mrp child process to perform
   multicast routing for any packet destined for a class D address,

Pullen                      Expires: August 2004               [Page 4]


Internet Draft       draft-pullen-qos-sim-models-05.txt   February 2004


   that is, to search for the address in the multicast routing table
   and return the interface(s) on which the packet must be forwarded.
   However, the ip_custom_mrp process model does not perform multicast
   routing computations by itself.  We have revised the ip_custom_mrp
   process so that when the destination group is not found, the process
   produces a remote interrupt to the MOSPF process for routing
   computations.  The current multicast packet is discarded in this
   case. It is the responsibility of the MOSPF process (or any multicast
   routing protocol other than PIM-SM) to add the group to the routing
   table.

2.3 IGMP Process Models

   IGMP is implemented as two IP child process models in OPNET:
   ip_igmp_rte_intf and ip_igmp_rte_grp.  For each multicast-enabled
   network attached to a router, an ip_igmp_rte_intf child process is
   created to perform IGMP functions on the interface to that network.
   For a multicast address that has members on a multicast-enabled
   interface, an ip_igmp_rte_grp child process is created.  IGMP
   processes communicate with PIM-SM multicast protocol by default.
   We have revised the ip_igmp_rte_grp implementation so that it also
   communicates using remote interrupts with a custom multicast process
   (namely, MOSPF) for the generation of new groups and destruction of
   existing groups.

2.4 RSVP Process Model

   The RSVP protocol is implemented by the rsvp process model in OPNET
   (please notice the use of upper case letters in the protocol
   name and the use of lower case letters in the process name).  The
   rsvp process communicates with IP to exchange RSVP control messages
   with peer routers.  To reserve bandwidth on a local link, the rsvp
   process communicates with the ip_output_iface process of the link.
   An ip_output_iface process is an IP child process created for each
   output interface of the router to manage the buffers/queues and
   bandwidth of that interface.  The rsvp process model provided in
   OPNET communicates only with the default multicast protocol,
   PIM-SM, for information about bandwidth availability.  We have
   revised the process model so that it will also inform the MOSPF
   process of dynamics in resource availability, enabling QoS-aware
   multicast routing in the future.

2.5 Multicast Application Models

   OPNET includes a general-purpose client-server application
   process model, called gna_clsrv_mgr, that supports many application
   layer protocols, such as FTP, HTTP, Telnet, etc.  The model supports
   multicast in its voice and video applications.  The two multicast-
   enabled applications communicate with IGMP and RSVP processes on
   the local workstation and does not deal directly with multicast
   routing processes on routers.

Pullen                      Expires: August 2004               [Page 5]


Internet Draft       draft-pullen-qos-sim-models-05.txt   February 2004


   The video application of gna_clsrv_mgr supports the following
   configuration parameters: the distribution of frame interarrival
   times, the distribution of frame sizes, type of service, and RSVP
   parameters.  The voice application supports the following
   configuration parameters: the distribution of silence length, the
   distribution of talk spurt length, voice encoding scheme (GSM,
   g.723.1, etc.), type of service, and RSVP parameters.  In either
   case, RSVP parameters include bandwidth (in bytes/second) and
   buffer size.

   Both voice and video applications of the gna_clsrv_mgr process
   model employ a simple handshaking process.  In this process, a
   voice/video source sends a SETUP message to the destination
   address, which could be of class D, and expects at least one
   CONNECT message from a receiver.  If the destination address is of
   class D, each receiver must reply with a CONNECT message.
   However, one CONNECT message is sufficient to enable the source to
   start the transmission of voice/video packets; subsequent CONNECT
   messages are discarded by the source.

   This handshaking process, however, is incompatible with the MOSPF
   protocol, where multicast routing computations are triggered by the
   arrival of multicast packets.  With MOSPF, when a packet destined
   for a multicast group arrives at a router that does not have
   routing entries corresponding to the group, the router performs the
   OSPF Dijkstra's algorithm to compute a multicast tree rooted at the
   source of the packet and spanning all member interfaces of the
   group.  The packet itself is discarded in this case.  Because the
   very first multicast packet, the SETUP message, is bound to
   encounter routers without routing entries corresponding to its
   newly created multicast group, the message will be discarded, and
   the handshaking process cannot be completed.  To deal with this
   problem, we revised the gna_clsrv_mgr model so that a voice/video
   source periodically retransmits its SETUP message until a CONNECT
   message is received.

2.6 Creation of Multicast Routing Processor Node

   Interfacing a multicast routing protocol using the OPNET
   Simulation package requires the creation of a new routing process
   in the node editor and linking it via packet streams.  Packet
   streams are unidirectional or bidirectional links used to
   interconnect processors, queue nodes, transmitters and receivers.

   A multicast routing processor is created in the node editor and
   links are created to and from the processor (duplex connection)
   that interact with this module ip_encap_v4.  Communication
   between the multicast routing processor and IGMP/RSVP is achieved
   through remote interruptions; no packet streams are used for this
   purpose.  Within the node editor, a new processor can be created by
   selecting the button for processor creation (plain gray node on the

Pullen                      Expires: August 2004               [Page 6]


Internet Draft       draft-pullen-qos-sim-models-05.txt   February 2004


   node editor control panel) and by clicking on the desired location
   in the node editor to place the node.  Upon creation of the
   processor in OPNET, the name of the processor can be specified by
   right clicking on the mouse button and entering the name value in
   the attribute box presented.  Links to and from this node are
   generated by selecting the packet stream button (represented by two
   gray nodes connected with a solid arrow on the node editor control
   panel), left clicking on the mouse button first to specify the
   source of the link and second to mark the destination of the link.

2.7 MOSPF Interaction with Other Protocols

   The interrupt mechanism of the OPNET simulation environment forms
   the foundation of the interface between the MOSPF process and its
   surrounding processes.  Using OPNET's paradigm, the arrival of a
   packet at a process via a packet stream also constitutes an
   interrupt to the process; such interrupts are called stream
   interrupts.  Other important types of interrupts include self-
   interrupts, whereby a process schedules an event for itself,
   and remote interrupts, whereby a process schedules an event for
   another process.  Stream interrupts are distinguished by the the
   index of the stream through which the interrupt/packet arrives.
   Self-interrupts and remote interrupts are distinguished by an
   integer type code that is delivered with the interrupt.  Each
   interrupt is further associated with a set of attributes,
   collectively called the Interface Control Information (ICI) of the
   interrupt.  The particular set of attributes associated with a
   given type of interrupt is defined by the creator of the simulation
   model using the ICI editor.

   In this section, we discuss the interrupts that the MOSPF process
   model is programmed to understand.  However, we do not include
   stream interrupts in the discussion because the information delivered
   by such interrupts are contained in the associated packets, which
   are MOSPF control messages in our simulation model.  The formats and
   uses of MOSPF control messages are defined in [11].

2.7.1 IGMP to MOSPF Interrupts

   Upon the creation of an ip_igmp_rte_grp process pertaining to a
   particular multicast group on a multicast-enabled interface, the
   process sends to MOSPF a remote interrupt with type code
   QospfC_Intrpt_Group_Activated to inform MOSPF of the activation of
   the group on that interface.  This happens when the first host
   member on that interface joins the group.  Upon its destruction,
   the ip_igmp_rte_grp process sends a remote interrupt with type code
   QospfC_Intrpt_Group_Deactivated to inform MOSPF of the deactivation
   of the group on that interface.  This happens after all host
   members on that interface have left the group.  The ICI of the
   above two types of interrupts comprises the "group_addr" and
   "interface_index" attributes.

Pullen                      Expires: August 2004               [Page 7]


Internet Draft       draft-pullen-qos-sim-models-05.txt   February 2004


2.7.2 RSVP to MOSPF Interrupts

   When the rsvp process reserves/releases network resources on an
   (output) interface, it informs MOSPF of the changes in resource
   availability by sending a remote interrupt with type code
   QospfC_intrpt_Resource_Reserved/QospfC_intrpt_Resource_Released. The
   ICI of the two types of interrupts comprises the "src addr", "dest
   addr", "src port", "req bandwidth", and "req link delay" attributes.

2.7.3 IP to MOSPF Interrupts

   As described earlier, in a simulation model configured to use
   custom multicast protocols, the ip_dispatch process invokes the
   ip_custom_mrp child process to perform routing table lookup
   operations for packets destined for class D addresses.  If the
   given multicast address is not found in the multicast routing
   table, the ip_custom_mrp process sends a remote interrupt to MOSPF
   with type code QospfC_Intrpt_Ip_Notif.  The ICI associated with
   such an interrupt comprises the "source addr", "dest group addr",
   "in major port", and "in minor port" attributes.


3.  OSPF and MOSPF Models

   OSPF and MOSPF [9] protocols are implemented in the OSPF model,
   containing fourteen states. They only exist on routers. Figure 1
   shows the process model. The following processing takes place in the
   indicated modules.

3.1 init

   This state initializes all the router variables. Default transition
   to idle state.

3.2 idle

   This state has several transitions. If a packet arrives or a remote
   interrupt is received from IGMP or RSVP, it transits to arr state.
   For remote interrupts from ip_custom_mrp and self interrupts,
   depending on the type and code of the interrupt, it will transit to
   BCOspfLsa, BCMospfLsa, or hello_pks state.  In future versions, links
   coming up or down will also cause a transition.

3.3 BCOspfLsa

   Transition to this state from idle state is executed whenever the
   condition send_ospf_lsa is true, which happens when the network is
   being initialized, and when ospf_lsa_refresh_timout occurs (causing
   a self interrupt). This state will create Router, Network, and
   Summary Link State Advertisements and pack all of them into an Link
   State Update packet. The Link State Update Packet is sent to the IP
   layer with a destination address of AllSPFRouters.

Pullen                      Expires: August 2004               [Page 8]


Internet Draft       draft-pullen-qos-sim-models-05.txt   February 2004



             [Figure 1: OSPF and MOSPF process model on routers]

3.4 BCMospfLsa

   Transition to this state from idle state is executed whenever the
   condition send_mospf_lsa is true. This state will create Group
   Membership Link State Advertisement and pack them into MOSPF Link
   State Update Packet. This MOSPF Link State Update Packet is sent to
   IP layer with a destination address of AllSPFRouters.

3.5 arr

   The arr (arrival) state is entered upon the arrival of a packet
   or interrupt.  Thus we have two cases:

   Case A. The function OspfPkPro is called if the state is entered
   due to the arrival of a packet.  The packet must be OSPF/MOSPF
   control message.  Depending on the type of the packet, OspfPkPro
   further calls one of the following functions.

   1. HelloPk_pro: This function is called whenever a hello packet is
      received. This function updates the router's neighbor information,
      which is later used while sending the different LSAs.
   2. OspfLsUpdatePk_pro: This function is called when an OSPF LSA
      update packet is received (router LSA, network LSA, or summary
      LSA). If the Router is an Area Border Router or if the LSA belongs
      to the Area whose Area Id is the Routers Area Id, then it is
      searched to determine whether this LSA already exists in the Link
      State database. If it exists and if the existing LSA's LS Sequence
      Number is less than the received LSA's LS Sequence Number the
      existing LSA was replaced with the received one. The function
      processes the Network LSA only if it is a designated router or
      Area Border Router.  It processes the Summary LSA only if the
      router is a Area Border Router.  The function also turns on the
      trigger ospfspfcalc which is the condition for the transition from
      arr state to ospfspfcalc.
   3. MospfLsUpdatePk_pro: This function is called when a MOSPF LSA
      update packet is received. It updates the group membership link
      state database of the router.

   Case B. An interrupt is received.  One of the following procedure
   is invoked according to the code of the interrupt.

   1. IgmpICI_pro:
      This code segment processes the interrupts from IGMP
      (specifically, from an ip_igmp_grp process with code
      QospfC_Intrpt_Group_Activated/Deactivated).  It first marks the
      corresponding entry in the multicast routing table, causing a
      recomputation of the multicast tree for the group.  Then it

Pullen                      Expires: August 2004               [Page 9]


Internet Draft       draft-pullen-qos-sim-models-05.txt   February 2004


      schedules a self-interrupt for the broadcasting of MOSPF LSAs.
   2. RsvpPk_pro:
      This function is called when a remote interrupt from the rsvp
      process is received (by QospfC_intrpt_Resource_Reserved/Released).
      Currently, it only updates the local network image of the router
      for changes in resource availability.  In the future, the function
      can trigger multicast routing recomputations for QoS-aware
      multicast applications.

3.6 hello_pks

   Hello packets are created and sent with destination address of
   AllSPFRouters. Default transition to idle state.

3.7 mospfspfcalc

   The following functions are used to calculate the shortest path tree
   and routing table. This state transit to upstr_node upon detupstrnode
   condition.

   a. CandListInit: Depending upon the SourceNet of the datagram, the
   candidate lists are initialized.

   b. MospfCandAddPro: The vertex link is examined and if the other end
   of the link is not a stub network and is not already in the candidate
   list it is added to the candidate list after calculating the cost to
   that vertex. If this other end of the link is already on the shortest
   path tree and the calculated cost is less than the one that shows in
   the shortest path tree entry update the shortest path tree to show
   the calculated cost.

   c. MospfSPFTreeCalc: The vertex that is closest to the root that is
   in the candidate list is added to the shortest path tree and its link
   is considered for possible inclusions in the candidate list.

   d. MCRoutetableCalc: Multicast routing table is calculated using the
   information of the MOSPF shortest Path tree.

3.8 ospfspfcalc

   In this state, the following functions are used to calculate the
   shortest path tree.  This information is used in the routing table.
   Transition to ospfspfcalc state on ospfcalc condition, which is set to
   one after processing all functions in the state.

   a. OspfCandidateAddPro: This function initializes the candidate list
   by examining the link state advertisement of the Router. For each
   link in this advertisement, if the other end of the link is a router
   or transit network and if it is not already in the shortest-path tree
   then calculate the distance between these vertices. If the other end
   of this link is not already on the candidate list or if the distance

Pullen                      Expires: August 2004              [Page 10]


Internet Draft       draft-pullen-qos-sim-models-05.txt   February 2004


   calculated is less than the value that appears for this other end add
   the other end of the link to candidate list.

   b. OspfSPTreeBuild: This function pulls each vertex from the candidate
   list that is closest to the root and adds it to the shortest path tree.
   In doing so it deletes the vertex from the candidate list. This
   function continues to do this until the candidate list is empty.

   c. OspfStubLinkPro: In this procedure the stub networks are added to
   shortest path tree.

   d. OspfSummaryLinkPro: If the router is an Area Border Router the
   summary links that it has received is examined. The route to the Area
   border router advertising this summary LSA is examined in the routing
   table. If one is found a routing table update is done by adding the
   route to the network specified in the summary LSA and the cost to
   this route is sum of the cost to area border router advertising this
   and the cost to reach this network from that area border router.

   e. RoutingTableCalc: This function updates the routing table by
   examining the shortest path tree data structure.

3.9 upstr_node

   This state does not do anything in the present model. It transitions
   to DABRA state.

3.10 DABRA

   If the router is an Area Border Router and the area is the source
   area then a DABRA message is constructed and send to all the
   downstream areas. Default transition is to idle state.

3.11 QOSPF

   The models described in RFC 2490 were developed originally in the
   context of studying performance of a proposed QoS version of OSPF
   (QOSPF). We have retained only those functions of QoSPF necessary to
   compare performance of our new models with those described in RFC 2490.


4. Modeling DiffServ-Enabled Multicast over MPLS Tunnels

   We built a set of simulation models for the study of DiffServ + MPLS
   + Multicast networking environments.  These models integrate PIM-SM
   multicasting with expedited services over MPLS tunnels.  They are
   based on OPNET 8.0, which is the first OPNET version that supports MPLS.





Pullen                      Expires: August 2004              [Page 10]


Internet Draft       draft-pullen-qos-sim-models-05.txt   February 2004


4.1 Architectural Changes in OPNET 8.0

   In OPNET 8.0, IP layer functions have been reorganized extensively.
   Unlike OPNET 7.0 where a central process (namely ip_dispatch)
   implements most of the IP functions, in the new version a new central
   process, called ip_dispatch, serves only to spawn processes that
   implement the features (MPLS, traffic markers, etc.) configured by
   the users; all IP functions are now implemented in the child
   processes of ip_dispatch. This new architecture allows for greater
   efficiency, modularization, flexibility, and easy accommodation of
   new Internet technologies such as MPLS.  In this section, the term
   "IP child process" refers to those processes spawned by ip_dispatch.

4.2 OPNET MPLS Model

   Multi-Protocol Label Switching (MPLS) uses labels to determine how
   packets are forwarded through a network.  The MPLS model is part of
   OPNET model library and is implemented collectively by the
   following process models: mpls_mgr, mpls_ldp_mgr, mpls_discovery_mgr,
   mpls_session_mgr and mpls_lsp_mgr.

   An instance of mpls_mgr is spawned by ip_dispatch on each MPLS enabled
   router. It represents the forwarding component of MPLS and the
   forwarding control plane.  When the IP module of an LSR receives
   labeled packets or packets with matching FEC descriptions, it performs
   no IP processing on the packet. Instead, the packet is redirected to
   the mpls_mgr process for MPLS forwarding.  The mpls_mgr process is the
   only MPLS process directly related to the simulation models described
   in this section.  The other models are introduced briefly below.

   The mpls_ldp_mgr IP child process implements the LDP control plane in
   the LDP module of all routers.  It also spawns the mpls_discovery_mgr,
   mpls_session_mgr, and mpls_lsp_mgr processes, if the features provided
   by these processes are needed.  The mpls_discovery_mgr process sends
   periodic broadcast hello messages over UDP to discover MPLS enabled
   neighboring routers.  The mpls_session_mgr process, based on RFC 3036,
   negotiates, opens and maintains TCP sessions to neighboring LDP
   routers.  The mpls_lsp_mgr process controls the exchange to label
   mapping between LDP peers.  Communication with LDP peers occurs
   through the session established by the mpls_session_mgr process.


4.2.2 MPLS Configuration

   MPLS configuration can be made through global MPLS attributes, router-
   specific MPLS attributes, and LSP attributes.  Global MPLS attributes,
   which are used to configure network-wide MPLS parameters, are grouped
   in the MPLS configuration object.  Important attributes include:

   a. FEC Specifications: Each FEC is specified source/destination
   addresses/ports and ToS.

Pullen                      Expires: August 2004              [Page 12]


Internet Draft       draft-pullen-qos-sim-models-05.txt   February 2004


   b. Traffic Trunk Profiles: A traffic trunk profile is specified by
   maximum bit rate, average bit rate, maximum burst size, traffic
   class, and out-of-profile action (unchanged, discarded, and degraded
   (change of traffic classes).

   c. Exp bits to drop precedence mappings

   d. Exp bits to PHB mappings: Router-specific attributes include LDP
   Parameters Discovery Configuration, Session Configuration, Recovery
   profile defines a packet-to-queue mapping to classify outgoing
   packets.  For MPLS forwarded packets, DSCP-based queueing profile is
   employed at the output interface.  Each interface of a router can be
   configured one of profiles described above.

4.4 Traffic Marker

   Traffic markers are used in routers to control and shape incoming
   traffic.  Two kinds of markers, Single Rate Three Color Marker
   (srTCM) and Two Rate Three Color Marker (trTCM), based on RFC 2697
   [12] and RFC 2698 [13] respectively, are implemented as two IP child
   process models: ip_rte_srtcm and ip_rte_trtcm.  The two process
   models are extensions implmented by GMU to the OPNET Model library
   and are available for public download.

   Parameters of traffic markers are configured for each router
   independently.  All of the parameters fall in two categories: Flow
   Specification and Traffic Specification.  When a packet arrives at a
   srTCM or trTCM enabled router and matches a flow specification, the
   marker configured for the flow is invoked to process the packet.

4.4.1 ip_rte_srtcm

   This process meters an incoming IP packet stream and marks its
   packets green, yellow, or red. Marking is based on a Committed
   Information Rate (CIR) and two associated burst sizes, a Committed
   Burst Size (CBS) and an Excess Burst Size (EBS).  A packet is marked
   green if it doesn't exceed the CBS, yellow if it exceeds the CBS,
   but not the EBS, and red otherwise. Red packets are discarded
   immediately, while green and yellow packets are further processed,
   queued and forwarded. Yellow packets will have higher drop precedence
   than green ones when congestion occurs in the downstream path. The
   ip_rte_srtcm process model has three states:

   init: The process enters this state when it is created and invoked
   for the first time. Process parameters such as CIR, CBS, EBS and the
   flow index are passed from the parent process.  Various statistics






Pullen                      Expires: August 2004              [Page 13]


Internet Draft       draft-pullen-qos-sim-models-05.txt   February 2004


   handles are registered. Token buckets are set to the initial values.
   The process then enters the "idle" state

   idle: The process awaits packets in the idle state.  Upon the arrival
   of a packet, the process enters the "mark" state.

   mark: To mark a packet, the token buckets are updated first according
   to the srTCM parameters (CIR, CBS and EBS) and the simulation time
   elapsed since last update. Second, the packet is marked according to
   RFC 2697, and statistics are updated.  The process then returns to
   the Idle state.

4.4.2 ip_rte_trtcm

   This process meters an IP packet stream and marks its packets based
   on two rates, Peak Information Rate (PIR) and Committed Information
   Rate (CIR), and their associated burst sizes to be either green,
   yellow, or red.  A packet is marked red if it exceeds the PIR.
   Otherwise it is marked either yellow or green depending on whether
   it exceeds or doesn't exceed the CIR. The marked packets are treated
   exactly same as those in ip_rte_srtcm process.  The ip_rte_srtcm
   process model also has three states:

   init: The process enters this state when it is created and invoked
   for the first time. Process parameters such as CIR, CBS, PIR, PBS,
   and the flow index are passed from the parent process.  Various
   statistics handles are registered. Token buckets are set to the
   initial values.  The process then enters the "idle" state

   idle: The process awaits packets in the idle state.  Upon the arrival
   of a packet, the process enters the mark state.

   mark: To mark a packet, the token buckets are updated first according
   to the srTCM parameters (CIR, CBS PIR, and PBS) and the simulation
   time elapsed since last update. Second, the packet is marked
   according to RFC 2698, and statistics are updated.  The process then
   returns to the idle state.

4.5 Simulation Models

   We have built two simulation models (called Projects in OPNET
   terminology) using the above features for the study of DiffServ-
   enabled PIM-SM multicast over MPLS tunnel.  They are DebugModel and
   Routers42.  Shown in the above figure is the DebugModel.  The node
   models at the top layer are either LERs (Label Edge Router) or LSRs
   (Label Switched Router).  Two static LSPs are configured:
   LER 3 --> LSR 1 --> LER 1, and LER 3 --> LSR 2 --> LER 2. LER 3 are
   configured with traffic marker and MPLS traffic engineering so that
   video conferencing streams in the model are bound to a flow
   specification that uses LSPs with PHB = EF (EXP = 6 or 7) for
   transmission.  The model we have provided supports two scenarios to

Pullen                      Expires: August 2004              [Page 14]


Internet Draft       draft-pullen-qos-sim-models-05.txt   February 2004


   study the effects of DiffServ/MPLS features.(The "scenario" feature
   of OPNET enables different predefined configurations and event
   sequences within one simulation model).

   The first scenario supports both DiffServ and MPLS with PIM-SM
   multicast.  All outgoing interfaces of LERs and LSRs along the LSPs
   use DSCP-based priority queueing.  Packets with PHB = EF are queued
   in queue 4 (queue 0 is for best effort traffic, queues 1 to 3 not
   used) which is configured in the QoS Configuration object.  Queues
   with higher index have higher priority.

   Two applications are used in the simulation. One is video
   conferencing; the other is file transfer which provides background
   traffic.  File transfer packets do not enter LSPs and are of lower
   priority; they are queued in queue 0 along LSRs.  The total traffic
   is set such that the utilization of backbone links is almost 100%.

   For purposes of comparison, a second scenario is included. This
   version operates without DiffServ, MPLS and priority queueing, so
   that videoconferencing packets and file transfer packets compete for
   capacity equally. This model shows the expected impact on video QoS,
   caused by competition for network capacity.


5. Example of Use

5.1 Network Models

   Here we give an example of using the QoS protocol models. We have
   developed three network configuration that exercise the models.
   Figure 2 shows the Debug model, which is too small for practical
   performance predictions but can be used to test whether protocols are
   working correctly, with minimum run time. Figure 3 shows the
   Intermediate model, which is large enough to draw some conclusions
   about performance, while Figure 4 shows the Large model, which is
   intended to be typical of a sizable corporate Intranet or regional
   ISP operation. While the Large model takes significantly longer to
   run, we believe its results are the most credible in terms of
   depicting QoS network performance.


                      [Figure 2: Debug Network Model]


                   [Figure 3: Intermediate Network Model]


                      [Figure 4: Large Network Model]



Pullen                      Expires: August 2004              [Page 15]


Internet Draft       draft-pullen-qos-sim-models-05.txt   February 2004


5.2 IntServ Simulation

   We applied the IntServ protocols to a situation where
   videoconferencing is taking place over a network heavily loaded with
   background traffic. Hosts join and leave the conferences at random.
   Each connected host produces a video packet every 10 milliseconds in
   addition to the background FTP traffic. The resulting network
   performance is shown in Figures 5 through 8. Figure 5 shows the
   traffic volume of an FTP transfer from a server in LAN F5 to a client
   in LAN F1.  The transfer starts at time 340 second and continues
   throughout the simulation.  The video multicast traffic starts at 400
   seconds.  With the TCP congestion control mechanisms, FTP traffic
   was scaled back after appearance of video traffic at time 400. As
   shown in Figure 6, video traffic, protected by RSVP-based IntServ,
   suffers few packet losses in the presence of FTP traffic.  The
   utilization of the ABR1-BBR1 link throughout the simulation is
   plotted in Figure 7.  As shown, the FTP traffic is not able to use
   all the residual bandwidth both before and after the emergence of
   video traffic.  This is owing to the standard, but insufficiently
   large in this case, receiver window size of 8760 bytes. In Figure 8,
   it can be seen that QoS traffic delay is controlled under IntServ in
   the presence of background traffic, when the link in question is
   heavily but not fully loaded.


                   [Figure 5: Background Traffic Loading]


                      [Figure 6: QoS Traffic Loading]


                      [Figure 7: Network Utilization]


                       [Figure 8: QoS Traffic Delay]


   Our simulations of three network models with MOSPF routing showed the
   Simulation to have good scalability. The simulation platform we used
   is a Sun Ultra 60 Workstation with 512 MB main memory an UltraSparc
   440 MHz  processor. The performance is greatly improved from that
   reported in RFC 2490. Here we list the real running time of each
   model along with its major elements and the packet inter-arrival
   times for the streams generated in the hosts.  Please notice that
   the simulation times of 100 or 200 seconds are the elapsed times
   since the beginning of video traffic, rather than from time 0.
   Our experience shows that the events before video traffic, mainly
   composed of routing control traffic and a short period of FTP
   traffic, require little computation. Thus the majority of the
   simulation time is spent in video activities.  Table 1 below should
   give a better estimate of scalability, compared to measuring times
   from zero.

Pullen                      Expires: August 2004              [Page 16]


Internet Draft       draft-pullen-qos-sim-models-05.txt   February 2004


   Simulated     Debug Model      Intermediate Model      Large Model
     Time        11 Routers          42 routers            86 routers
                  12 Hosts            48 hosts              96 hosts
   ---------     ----------       ------------------      -----------

    100 sec        11 min              35 min               119 min
    200 sec        22 min              87 min               229 min

         [Table 1: IntServ Simulation Run Times on Ultra 60]

5.3 DiffServe Simulation

   To demonstrate modeling DiffServ, we adopted a similar scenario
   adapted to the differences in the emerging QoS environment for
   DiffServ. Specifically, we made use of MPLS for backbone trunks, and
   employed traffic marking as described in section 4 above.  Figure 9
   shows the Debug model for this case (the Intermediate and Large
   models were scaled up using the same MPLS substitution). The
   resulting network performance is shown in Figures 10 through 13.
   Figure 10 shows the traffic volume of an FTP transfer from a server
   in LAN F5 to a client in LAN F1.  The transfer starts at time 340
   seconds and continues throughout the simulation.  The video multicast
   traffic starts at 400 seconds.  With the TCP congestion control
   mechanisms, FTP traffic was scaled back after appearance of video
   traffic at time 400 seconds.  Compared to the scenario where video
   traffic is not supported by DiffServ/MPLS, the FTP transfer suffers
   long delays (see Figure 11).  In terms of bandwidth usage, video
   traffic shows little differences with or without DiffServ/MPLS, as
   seen in Figure 12.  However, Figure 13 shows that  the use of
   DiffServ/MPLS does improve video end-to-end delays significantly
   and thus provide a consistent, low delay for the QoS video traffic.


            [Figure 9: DiffServ Debug Model with MPLS Trunks]

               [Figure 10: Background (ftp) Traffic Load]

               [Figure 11: Background (ftp) Traffic Delay]

                 [Figure 12: QoS (video) Traffic Load]

                  [Figure 13: QoS (video) Traffic Delay]

   We used the same computer configuration (Ultra 60) for the DiffServ
   Simulation, however the simulation times must be considered somewhat
   differently. In this simulation there is considerable network setup
   activity in the beginning, which does not impose much of a load
   on the simulation computer. The background traffic (file transfer
   starts at 340 seconds and the video application starts at 400
   seconds, with a transmit rate of 80 kB/sec. Therefore, in table 2
   the Simulation Time is measured from 400 seconds onward.

Pullen                      Expires: August 2004              [Page 17]


Internet Draft       draft-pullen-qos-sim-models-05.txt   February 2004


   Simulated     Debug Model      Intermediate Model      Large Model
     Time        11 Routers          42 routers            86 routers
                  12 Hosts            48 hosts              96 hosts
   ---------     ----------       ------------------      -----------

    400 sec       .67 min               .70 min              1.0 min
    600 sec        18 min                89 min              212 min
    800 sec        35 min               179 min              425 min

         [Table 2: DiffServ Simulation Run Times on Ultra 60]


6.  Future work

   We hope to receive feedback and assistance from the Internet QoS
   Development community within the IETF in validating and refining
   these models.  We believe they will be useful tools for predicting
   the behavior of IntServ and DiffServ QoS systems, using new protocol
   and traffic engineering proposals.


7.  Security Considerations

   This RFC raises no security considerations.


8.  IANA Considerations

   This RFC raises no IANA considerations.


9.  Authors' Addresses

   J. Mark Pullen
   C3I Center/Computer Science Dept
   Mail Stop 4A5
   George Mason University
   Fairfax, VA 22032

   EMail: mpullen@gmu.edu


   Yih Huang
   Computer Science Dept
   Mail Stop 4A5
   George Mason University
   Fairfax, VA 22032

   EMail: huangyih@gmu.edu



Pullen                      Expires: August 2004              [Page 18]


Internet Draft       draft-pullen-qos-sim-models-05.txt   February 2004


   Pradeep Singh
   OPNET Technologies Inc
   7255 Woodmont Avenue
   Bethesda, MD 20814

   EMail: psingh@opnet.com


   Leijun Huang
   Computer Science Dept
   Mail Stop 4A5
   George Mason University
   Fairfax, VA 22032

   EMail: lhuang2@gmu.edu


10. References

   [1] Deering, S., "Host Requirements for IP Multicasting", STD 5,
       RFC 1112, August 1989.

   [2] Braden, R., Clark, D. and Shenker, S., "Integrated Services in
       the Internet Architecture: an Overview." June 1994.

   [3] Blake, S. et. al., "An Architecture for Differentiated Services",
       RFC 2475, December 1998.

   [4] Braden, R., Zhang, L., Berson, S., Herzog, S. and S. Jamin,
       "Resource Reservation Protocol (RSVP) -- Version 1 Functional
       Specification", RFC 2205, September 1997.

   [5] Wroclawski, J., "The Use of RSVP with IETF Integrated Services",
       RFC 2210, September 1997.

   [6] Rosen, E., Viswanathan, A., and Callon, R., "Multiprotocol Label
       Switching Architecture, " RFC 3031, January 2001.

   [7] Pullen, M., et. al., "A Simulation Model for IP Multicast with
       RSVP," RFC 2490, January 1999.

   [8] OPNET Technologies Inc., "OPNET Modeler Modeling Manual",
       Bethesda, MD, release 8.0.c, June 2001

   [9] OPNET Technologies Inc., "OPNET Protocol Model Documentation",
       Bethesda, MD, release 8.0.c, June 2001

   [10] Moy, J., "OSPF Version 2", RFC 2328, April 1998.

   [11] Davie, B., et. al., "MPLS Support of Differentiated Services,"
        RFC  3270, May 2002

Pullen                      Expires: August 2004              [Page 19]


Internet Draft       draft-pullen-qos-sim-models-05.txt   February 2004


   [12] Heinanen, J. and Guerin, R., "A Single Rate Three Color Marker,"
        RFC2697, September 1999

   [13] Heinanen, J. and Guerin, R., "A Two Rate Three Color Marker,"
        RFC2698, September 1999



11. Full Copyright Statement

   Copyright (C) The Internet Society (2003).  All Rights Reserved.

   This document and translations of it may be copied and furnished to
   others, and derivative works that comment on or otherwise explain it
   or assist in its implementation may be prepared, copied, published
   and distributed, in whole or in part, without restriction of any
   kind, provided that the above copyright notice and this paragraph are
   included on all such copies and derivative works.  However, this
   document itself may not be modified in any way, such as by removing
   the copyright notice or references to the Internet Society or other
   Internet organizations, except as needed for the purpose of
   developing Internet standards in which case the procedures for
   copyrights defined in the Internet Standards process must be
   followed, or as required to translate it into languages other than
   English.

   The limited permissions granted above are perpetual and will not be
   revoked by the Internet Society or its successors or assigns.

   This document and the information contained herein is provided on an
   "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING
   TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING
   BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION
   HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF
   MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.

















Pullen                      Expires: August 2004              [Page 20]